友達のウェブサイトのフォーラムアプリケーションを書く必要があります。SQLServerデータベースを使用してASP.NETMVCフレームワークに対してC#3.0で記述したいと思います。
だから、私は2つの質問があります:
- データベースの抽象化としてLinqtoSQLまたはEntityFrameworkを使用する必要がありますか?
- ASP.NETメンバーシップAPIを使用するか、Usersテーブルを追加して自分で実装する必要がありますか?
ありがとう。
友達のウェブサイトのフォーラムアプリケーションを書く必要があります。SQLServerデータベースを使用してASP.NETMVCフレームワークに対してC#3.0で記述したいと思います。
だから、私は2つの質問があります:
ありがとう。
1)物事がどれほど複雑になるかに完全に依存します。テーブルをほぼ1:1でミラーリングするクイックDALが必要な場合は、L2S(または、より成熟したサポートされているものが必要な場合はSubSonic)を選択してください。テーブルとドメインモデルが完全に異なるn層タイプのものをさらに使用する場合は、EntityFrameworkのようなOR/ Mを使用します(または、あらゆる点ではるかに優れたものが必要な場合はNHibernateを使用します)。
2)ASP.netメンバーシップは非常に複雑であり、設計がかなり不十分な部分があります。しかし、それはあなたがこれらのものでどれだけの経験を持っているかに依存します。セッション固定攻撃を回避するための手順を十分に理解している場合は、缶詰のソリューションよりも優れている可能性があるため、自分でロールしてください。それが何であるかわからない場合は、時間をかけてデフォルトのものを学んでください。
考えてみれば、SubSonic3は非常に強力なデータアクセス生成ツールです。私が理解していることから、それは基本的にいくつかの非常に便利なラッパー内でLinqをSqlにラップし、Linqの使用をもう少し直感的にします。SubSonicを使用すると、非常に強力なアプリケーションをすぐに構築できます。ただし、小さな問題が1つあります。共有ホスティング(GoDaddyなど)を使用している場合は、中程度の信頼性の問題が発生します。その場合、コードベースに多くの変更を加えることなく、いつでもLinqToSqlにフォールバックできます。
Aspnet_Membershipについて。それが提供するツールの量だけのために、私はそれを使用することをお勧めします。
幸運を祈ります。これがお役に立てば幸いです。
私はユーザーテーブルを追加してメンバーシップを自分で実装する2番目の質問のnhibernateのファンなので、最初の質問には答えません。少なくとも正しい方法でそれを行うことはできないと思います(多くの人が試しました独自のメンバーシップAPIを作成しましたが、混乱しました!)
1) 両方ともどうですか? 抽象化を作成するだけで、どちらかを使用できます。リポジトリ パターンを使用することをお勧めします。
2) メンバーシップ プロバイダーには長所と短所があります。一部のプロジェクトでは、私のニーズに対して複雑すぎました。ただし、短時間で何かを実行する必要がある場合は最適です。