私はASP.NETWebフォームの5年の経験から来ており、ASP.NETMVCを初めて使用します。私は現在、いくつかのチュートリアル、ビデオチュートリアル、および本でMVCを学習しようとしています。
VisualStudio2012と新しいASP.NETMVC4を使用して、投資信託のポートフォリオを管理するための小さなWebアプリケーションを構築しています。これにより、新しいパターンの内部に入り、多くの新しいことを学ぶことができます...
私のアプリケーションでは、他の友人にも同じことをさせる必要があります。したがって、さまざまなユーザーのポートフォリオを管理する必要があります。
私は最初にEntityFrameworkCodeを使用して小さなDBを構築したので、いくつかの基本的なモデルがあります:ファンド、ポートフォリオ、シェア、デポジット、ソース、ユーザー。1人のユーザーは、多くの資金を含む多くのポートフォリオを持つことができます。各ユーザーは独自の預金リストを持っています。各ファンドには多くの株式価値があります(1日1回)。
ソースモデルは、特定のファンドの株式データのWebサイトソースごとに1つのURLを配置した単なるテーブルです。したがって、1つのファンドには多くのソースがあります。次に、スクレーパークラスを使用して、これらのWebサイトから1日1回データを取得します。
これがアプリケーションの主な構造です。今、私は次のことを行うための最良の方法を知る必要があります。
1)ユーザーのアカウントを管理します。
ASP.NETメンバーシップDB構造をDBに統合し、カスタムUserテーブルの代わりにそれを使用してユーザーを管理する必要がありますか?
2)ユーザーコンテンツの管理:ポートフォリオ、資金など
。MVCパターンで最も簡単でエレガントな
方法は何ですか。認証とすべての承認検証を実装して、ユーザーが自分のデータを取得できるようにします。すべてのコントローラーのすべてのアクション内でこれを確認する必要がありますか?
つまり、コントローラーをどのように実装する必要があるのでしょうか。例えば:
[Authorize]
public class PortfolioController : Controller
{
private FundMonitorContext db = new FundMonitorContext();
public ActionResult Index()
{
// Check user ID and give back to the view only his portfolios...
var portfolio = db.Portfolios.List();
return View(portfolio.ToList());
}
...
public ActionResult Details(int id = 0)
{
...
}
//Other actions...
}
私は本当にすべての提案をいただければ幸いです!