2011-12-29 10 views
2

これは少し曖昧かもしれませんが、私は正直なところ、他にどこに問い合わせるか分かりません。私はPHPでいくつかの歴史を持っており、私は自分自身にASP.NET MVC3を教えようとしています。MVCサイトを構成する方法の詳細は、どこで知ることができますか?

私は様々な部分の構文とチュートリアルで多くのソース資料を見つけることができますが、私はそれを始めました、そして、私はかなり行きましたが、私は物事を置く場所に関して全部をどのように設計するかを正確に理解するのはちょっと難しいと思っています。聞くことができますか、私はこれらのものを見つけることができますか?

自分自身を教えようと努力しているプロジェクトは、オンラインRPGゲームサイトの一種です。ユーザー登録とログインができました。私は、既存のデータベース構造に合わせてカスタムメンバーシッププロバイダを作成しました。しかし、データベースのルックアップやデータの保存方法などを知っているのが難しいです。たとえば、ログインすると、一定量の金があります。 _layoutページのステータスバーの右側には常にこの値が表示されます。これはどこを見ますか?どのように覚えていますか?コントローラーで?どのコントローラ?その他

アドバンスドチュートリアルや、これが議論できるフォーラムのいずれかをお勧めしますか?

ありがとうございます!

答えて

2

MSDNおよびASP.NETサイトは、MVC3に提供するためにたくさん持っています。また、Phil HaackとSteve Sandersonの2つのMVC3の本を購入することをお勧めします。

http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3

http://www.asp.net/mvc/tutorials/overview/creating-a-mvc-3-application-with-razor-and-unobtrusive-javascript

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

http://msdn.microsoft.com/en-us/library/gg416514%28v=vs.98%29.aspx

http://weblogs.asp.net/jgalloway/archive/2011/03/17/asp-net-mvc-3-roundup-of-tutorials-videos-labs-and-other-assorted-training-materials.aspx

これらはすべての良いリンクとチュートリアルです。また、データとデータベースの認証と認可を別々のデータベースにする必要があります。これにより、デカップリングとより良いセキュリティが可能になります。データをデータベースに格納する必要があります。モデルは、通常、DALのインスタンス化されたリポジトリを保持するコントローラを使用して、DAL(データアクセスレイヤ)を介してそのデータベースへのアクセスを保持します。この意味で、コントローラはモデルからオブジェクトを作成し、データベースからオブジェクトを作成し、ユーザーインターフェイスで使用するために強く型付けされたオブジェクトを通してビューに送信することができます。

+0

ありがとう、私はそれらを見てみましょう。 – Alex

1

Nerd Dinnerは、画像全体のかなり良いサンプルです。サンプルコードをダウンロードして再生することができます。

http://nerddinner.codeplex.com/

+0

私はNerd Dinnerのチュートリアルをやっています。しかし、ありがとう! – Alex

3

はスティーブによって素晴らしい本をチェックアウト必見>をSanderson - Iveは、前の2つのエディションを使用してMVCの速度を上げました。

Pro ASP.NET MVC 3

あなたは、私もお勧めできるエンティティフレームワークを使用するために探している場合。

Programming Entity Framework

1

私が見つける問題は、チュートリアルの読み込みのシンプルさと使いやすさの賛成でMVCのためのベストプラクティスを使用していない例がたくさんあります。だから、私は難しい方法を見つけ出し、それが私のために働くことのいくつかを概説します。

あなたのコントローラは、ビジネスロジックとビューの間のデータ転送オブジェクト(DTO)として機能するViewModelsを介して情報を処理する責任を負います。私はコントローラにビジネスロジックを持たず、代わりに独自の責任のグループを扱うように設計された一連のサービスクラスを選択します(IoCは、サービスが持つ可能性のあるほとんどの懸念事項を処理します)。 これは、ビジネスロジックDRYを維持し、サイトのモバイル版を後で作成することを決定したり、公開WebService/APIをデータに公開したりする場合に便利です。

ビューは、ビューごとに具体的に使用されるViewModelsを使用する必要があります。これらのビューは、プリミティブ型または他のビューモデルでのみ構成する必要があります。 ORMのデータエンティティを直接使用することはありませんが、正直なところ私は自分のルールを破ることが知られていますが、これは情報を表示するビューには当てはまりますが、通常は後で支払います。データモデルに課せられた検証ルールは、フォームには必ずしも適用されません。エンティティに読み込まれたデータは、ビューにも関係しない可能性があります。 Lazy Loading複雑なデータエンティティをサポートするORMは、MVCで使用できる便利なサードパーティ製ライブラリー(MiniProfilerおよびGlimpseなど)と混乱を招く可能性があります。後でポストするためのフォームでこれらのオブジェクトをレンダリングする際には、したがって、可能であればフラットViewModelsに固執しようとします。

私は、通常、私のViewModelsの用途に応じて名前を付けます。私の登録ページにはAccountsRegisterViewModelというモデルが使われるかもしれません。しかし、私がポストバックするときは、普通はAccountsRegisterFormModelという別のモデルを使用します。これは、ビューにレンダリングするために渡す必要のある情報が何回もあるためですが、ポストバックを受け入れるアクションについては、実際には気にしません(ほとんどの場合はそれが気になりません)。また、MVCでは、さまざまなパラメータを使用して同じ名前を使用するアクションを明確にする必要があるため、さまざまなビューモデルを使用すると、そこで役立ちます。たとえば、CreateAccount()はアカウント作成ページを表示し、CreateAccount()はフォームからの投稿を受け入れます。明示的に各フォームの投稿場所を変更することはできますが、MVCの主な焦点は構成オーバーの慣習なので、フォームの投稿先を変更しないようにします。

関連情報(ゴールドバランス)を表示する具体的な例では、独自のデータアクセスを担当する独自のビューを持つチャイルドアクションを作成する可能性があります。 ajaxに手を差し伸べると、バランスがJSONを返すパブリックアクションを呼び出すsmiple部分ビューで処理されるようになります。

これはこれまで私が働いていたことがわかっている習慣です。

+0

ありがとう、これはまさに私が探していた情報の種類です。 – Alex

関連する問題