ツール:Mvc4、Sqlサーバ、NhibernateMvc4:N階層アーキテクチャ
私はNtierアーキテクチャを学習しており、これを小さな例で学習する予定です。これは、 のフォームを持つ学生登録アプリケーションになります。ファーストネーム b。姓は です。c。アドレス d。学生番号 アプリケーションは にできます。 Idで学生を得る b。すべての生徒を取得 c。新しい学生を登録する/学生を救う d。学生を編集する e。私は、次の階層に
プレゼンテーション層(別々のプロジェクトMVC 4アプリケーション)
を持っていることを計画学生
を削除---学生のフォームのHTMLをここに。私はここでjqueryなどを使用することができます ---私のコントローラはサービスを呼び出します
サービスレイヤー(別々のプロジェクト:クラスライブラリプロジェクトこの場合、Webのみがクライアントになります)webAPIまたはwcfを使用する方法を学びます)別のプロジェクトでは、この後
---ここ
StudentService --- IstudentServiceここ
ビジネス層:(別々のプロジェクト:クラスライブラリプロジェクト) ?
データ層:(別プロジェクト:クラスライブラリプロジェクト) ??
データベース:(SQL Serverデータベース)
今、私は混乱してしまったし、私の質問は次のとおりです(?層)私は私の学生のモデルを作成します
を
何だろう私が持っているこの生徒の例のために、私は自分のビジネスレイヤーに書いています。
データレイヤーにはどのようなものがありますか?どの方法を書いていますか? を直接データベースに伝達する方法ですか?
いくつかの例が優れています。私は良いIOCコンテナを探します。ここで
は、以下のサンプルコードです:
public interface IStudentService
{
IEnumerable<Student> GetStudents();
Student GetStudentById(int id);
void CreateStudent(Student student);
void UpdateStudent(Student student);
void DeleteStudent(int id);
void SaveStudent();
}
public class StudentService : IStudentService
{
private DataContext _datacontext;
public StudentService()
{
_datacontext = new DataContext();
}
public IEnumerable<Student> GetStudents()
{
var students = _datacontext.Students;
return students;
}
public Student GetStudentById(int id)
{
return _datacontext.Students.Find(id);
}
public void CreateStudent(Student student)
{
_datacontext.Students.Add(student);
_datacontext.SaveChanges();
}
public void UpdateStudent(Student student)
{
_datacontext.Entry(student).State = EntityState.Modified;
//_datacontext.Entry(student).State = EntityState.Modified;
_datacontext.SaveChanges();
}
public void DeleteStudent(int id)
{
var student = _datacontext.Students.Find(id);
_datacontext.Entry(student).State = EntityState.Deleted;
_datacontext.SaveChanges();
}
public void SaveStudent()
{
_datacontext.SaveChanges();
}
}
私は、様々な記事が多くの知識を引き受ける傾向があるので、タマネギの建築はちょうど学ぶ人には良いことだとは思いません。 OAは伝統的なレイヤード3層を行った後の良い「第2ステップ」だと思います。 –
IoCコンテナが言及されたので、私はある程度の知識を前提としていました。私はこれらのことを自分で覚えています。私は "古典的な" 3層のアプリの右の混乱を行いました。しかし、私がOAを試してみると、物事はちょうどいいところにあり、うまくいきました。 – trailmax
はい、それはあなたがOAをあなたに理にかなった「正しい混乱」から多くを学んだという事実です。私は、OAが取り組む問題を学んでいないなら、OAは「これを言ったので、これをやってください」と感じています。 –