2016年03月くりーむわーかープログラムとか。・試しててハマった事など。誰かのお役に立てば幸いかと。その他、いろいろエトセトラ。MVCのアプリを作りたい場合にとりあえずできたこと。ある程度、大きくなる想定のWebアプリを作る場合に、単一のプロジェクトで構成するとえらいこっちゃになる。プロジェクト分けたいのです。一発プロジェクトは漢らしくていいんだけど、複数チームで作業する場合は機能とかもろもろ考慮で分業しておきたいの。複数のプロジェクトで一個のWebアプリにしたい場合にどうやるかを試したメモ。いきあたらないのはなんでなんでしょ。この程度は当たり前の事なのかな・・・。サンプルとして以下の感じにする。調べてみると、一つのソリューションの中に複数のプロジェクトがある感じのものは見るけど、ソリューションごと別の奴は見たことないのでソリューションも分ける。分割しておくプロジェクトまず、MainWebのプロジェクトを作る。簡素な感じにしたいので、空MVCで作る。↓の感じそしたら、コントローラーとViewを適当に追加しておく。出来たら、「Areas」っていうフォルダをプロジェクト直下に追加しておく。SubWebも同じ感じで作る。SubWebの直下にAreaRegistrationのクラスを作る。ファイルの名前(クラスの名前)は何でもいいっぽいけど、「SubWebAreaRegistration」にしておいた。中身は以下にして、SubWebをビルドしておく。}}次はMainWeb側の参照にSubWeb.dllへの参照を追加して、ビルドしておく。したら、IISの設定をする。新しくサイトを作るで、MainWebでサイトを作っておく。出来たら、中のフォルダの「Areas」を右クリして、仮想ディレクトリの追加でSubWebを追加する。これで、とりあえず動くようになる。サイトのアクセスは下の感じ。これで、プロジェクトを分割したMVCの作りが出来そう。基本はこれでいいのだろうか・・・。ついでに、今回は仮想ディレクトリで持ってきたけど、MainWebのViewsの中にcshtmlだけコピーしても普通に動く。仮想ディレクトリを追加する前に、SubWebにアクセスしようとすると、cshtmlとかの探してる順番がエラーログに出るので参考に見てみてもいいかも。結局のところは、ルーティングの設定をどうするかっていう事なんだろうか。単一プロジェクトだと、「Global.asax」の「RouteConfig.RegisterRoutes(RouteTable.Routes);」ってところで、「RegisterRoutes」呼び出してやってるけど、Areaを使う感じにすると、「Global.asax」の「AreaRegistration.RegisterAllAreas();」って呼び出しのところでAreaRegistrationを全部やるみたいな動きになる模様。「RegisterAllAreas()」の中で、参照に登録さているアセンブリの中から「AreaRegistration」を継承して作ってあるクラス(今回の例だと「SubWebAreaRegistration」)を全部探し出して勝手にやってくれるみたい。次は認証とDB回りをこの構成で試す。あと、ルートの書き方は多分足りてない。)2016年03月30日22:06カテゴリその他もろもろWindows7でIISのASP.NETを有効にしようとするとエラーになる場合ASP.NETを有効にしようとすると「エラーが発生しました、正しく変更されなかった機能があります。」っていうエラーで有効化できない場合の対処。レジストリに以下のキーを追加すると上手くいった。HKLM\System\CurrentControlSet\Services\ASP.NET_64\Performance参考にしたサイトはココ。このサイトでは以下のキーをレジストリに追加してる模様。・HKLM\System\CurrentControlSet\Services\ASP.NET_2.0.50727\Names・HKLM\System\CurrentControlSet\Services\ASP.NET_2.0.50727\Performance・HKLM\System\CurrentControlSet\Services\ASP.NET_64_2.0.50727\Names・HKLM\System\CurrentControlSet\Services\ASP.NET_64_2.0.50727\Performance・HKLM\System\CurrentControlSet\Services\ASP.NET_64\Performance上の4つのキーは自分のPCには最初から登録されていたので、一番最後だけ追加。なんでこれでいいのかは不明。)2016年03月15日01:32カテゴリプログラムRedmineとGitbucketを連携する自前サーバで動かしてるGitbucketとRedmineを連携させたくなった。gitbucketとRedmineは同じサーバで同居してる状態でやる。同居してる場合はgitbucketのリポジトリのディレクトリをRedmineで直指定するだけでいける。いままでgitbucketはそのまま動かしてたけど、リポジトリの場所がデフォルトで、ユーザーのドキュメントにできちゃうのが嫌。起動コマンドで↓のオプションつけてホームディレクトリを変える。--gitbucket.home=X:\****\*****\reposポートも変えてるのでポート変更するオプションと合わせてホームの場所を↑で変える。あとは、Redmineで↑で指定したディレクトリに出来たリポジトリのパスを指定するだけ。追記----------Redmine側はとりあえず、まずGit使えるようにどうにかする。したら、リポジトリ入れたいプロジェクトのリポジトリを選んで、gitbucketで作ったリポジトリのパスを指定する。「***.git」ってなってるフォルダ名をフルパスで入れる。ベアリポジトリ?はディレクトリ名に.gitをつける慣習があるらしい。