アーキテクチャをスマートに。

株式会社ネオジニア代表。ITアーキテクトとしてのお仕事や考えていることなどをたまに綴っています。(記事の内容は個人の見解に基づくものであり、所属組織を代表するものではありません)

SIでWebシステムやるなら Java? いやいや ASP.NET MVC でしょ

お仕事(つまりSI、企業向け受託開発)で Webシステムを開発する際に、どんなアーキテクチャにすべきか、どのフレームワークプログラミング言語)を採用すべきかを考えた時、最近では ASP.NET MVC が良い選択だと実感しています。

ではなぜそれが良いのか、またメディアやネット上で流行りの他のフレームワークRuby on RailsPHP, Struts, Play, Node.js などよりどこが良いと思っているのか、実際の開発現場にいるエンジニアとして考えていることを整理してみました。

続きを読む

ネオ富豪の開催にあたって(2)アーキテクチャが決まるまで

当初の構想

ナポレオンアプリを作った経験から、画面の構成はほとんど迷うことなく決まっていました。(なので自然と5人対戦という仕様になりました)
ゲームシステムも、マスタープログラムが1つあって、そこにプレイヤープログラムがいくつもつながって連携しながら動く、という考え方はそのまま採用しました。
でネポレオンで実現できていなかったネット対戦の構想を思い出しました。
マスターとプレイヤーをクラサバ方式にして、TCP/IP でセッション張ってプロトコル定義して通信するようにしてみよう、というアイデアです。

続きを読む

IIS Express で localhost 以外からアクセスする方法

Visual Studio 2012 で ASP.NET MVC 開発したとき、デバッグのためにリモートホストからアクセスする必要があったので、やり方を調べました。
検索用キーワード:IIS Express 外部からアクセス リモートアクセス 外部公開 他のPCからアクセス

続きを読む

ASP.NET MVC 4 ことはじめ(5)モデルと足場

ASP.NET MVC は、実はモデルに相当する部分を提供していません。既存のDBアクセス技術である Entity Framework を組み合わせて使用します。

Visual Studio 2012 で ASP.NET MVC 4 のプロジェクトを新規作成すると Entity Framework 5.0 がデフォルトで使えるようになってて、いま流行りのコードファーストが出来ます。Railsパクリ(!?)のお手軽 Scaffolding もバッチリやってくれます。
この辺がすごい強力で楽チンだと思います。

続きを読む

ViewBagに匿名型を入れるとRuntimeBinderException

ViewBag に匿名型を入れて View 側で使おうとすると、「'object' に 'Xxxxx' の定義がありません」みたいなエラー(RuntimeBinderException)になってしまいます。

開発環境は以下の通り。

この問題について調べていたところ、StackOverFlowのスレッド に同じ現象が投稿されており、それを参考にして解決できたのできたのですが、日本語の情報が全くなくだいぶ苦労したのでここに記録しておきます。

続きを読む

ASP.NET MVC 4 ことはじめ(4)ViewBag と ViewData

ViewBag ってなんだ?

自動生成されたビューのソースコードで、冒頭に ViewBag.Title ってやつが登場します。
この ViewBag も ViewData と同じくコントローラからビューにデータを受け渡すための入れ物として使用できます。
MVC 3 から登場したようで、Microsoftは従来の ViewData よりも新しい ViewBag の方を使用するように推奨しているようです。

続きを読む