工具:Mvc4,SQL SERVER,NHibernate的Mvc4:N層架構
我學習n層架構,並計劃用一個小例子來了解這一點。這將是一個學生註冊申請表,其格式爲 a。名字 b。姓氏 c。地址 d。學生證 應用程序將能夠 a。通過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是一個很好的「第二步」。 –
IoC容器被提及,所以我推定了一些知識水平。我記得自己學習這些東西。我做了一個正確的「經典」3層應用程序混亂。但是當我嘗試使用OA時,事情就在正確的地方,而且一切都很順利。 – trailmax
是的,但它是你從「亂七八糟」,使得OA是有意義的,你學到了很多事實。如果您還沒有學習到OA所解決的問題,我認爲OA有很多「這麼做是因爲我這麼說」。 –