[英]Choosing the right framework
我將構建一個應用程序,但我不確定要使用什么框架。 在我工作的地方,他們使用了代碼匠的Ntiers,nettiers是免費的但不是代碼匠。 我發現了實體框架,但我也讀到了使用它的方法是使用一種叫做“存儲庫模式”的東西,但是對使用它有很多疑問。 我沒有很大的預算,只有我自己,無法負擔昂貴的工具,可以自動創建我的類,更新,刪除,創建功能,並留下一些代碼供我實施。 所以我不知道該怎樣走,我應該去實體框架(這是唯一一個免費的嗎?),或者那里有我可以使用的東西,也許不那么昂貴但可靠。
我非常感謝我對此的一個很好的建議,最終這個應用程序會增長和增長,並且希望易於維護。
PS:我會選擇實體框架和存儲庫模式,如果這是我最好的選擇。
使用C#,Asp.net和MSSQL 2008。
具有代碼優先和自動遷移的實體框架是您可以使用的最簡單的ORM之一。 它非常靈活,在Microsoft堆棧中得到了很好的支持,並且首先使用代碼,這是開發數據庫的最快方法之一。
首先使用Entity Framework代碼,將數據模型定義為普通的C#類。 這將對應於Product表:
public Product {
public int Id { get; set; }
public string Name { get; set; }
}
創建數據庫上下文。
public MyDbContext : DbContext {
public DbSet<Product> Products { get; set; }
}
將連接字符串添加到Web.config,並在包管理器控制台中運行命令:
>Enable-Migrations –EnableAutomaticMigrations
>Update-Database
現在,您擁有Products表的功能數據庫。 當您對類進行更改時,只需再次運行Update-Database,它就會為您遷移架構。
要添加新產品:
using (var db = new MyDbContex()
{
Product product = new Product() { Id = 1, Name = "Tablet" };
db.Products.Add(product);
db.SaveChanges();
}
查詢數據變得如此簡單:
using (var db = new MyDbContex()
{
// get product with id == 1
Product product = db.Products.Single(p => p.Id == 1);
}
至於存儲庫模式,它只是一種設計模式 。 存儲庫模式有很多不同的變體 ,但它實際上是將數據存儲與數據訪問層分開。 這使得單元測試更容易,而不必依賴於存在的外部數據庫。
從評論中編輯:有幾種方法可以使用EF和存儲過程。 請參閱實體框架代碼優先支持存儲過程嗎? 並使用存儲過程插入數據 。
您可以選擇的另一個列表是:
數據層:Ibatis.Net或NHibernate(我主要使用兩者,NHibernate用於CURD,IBatis.NET用於查詢必要,例如,調用SP,動態查詢)。
Spring.Net:IoC助手
Asp.NET MVC:MVC框架。
Benifit是:IBatis,NHibernate和Spring.Net與Java版本非常相似,所以你可以找到很多文檔。
我所說的是具有良好ORM(EF,Nhibernate或Ibatis)的3層是復雜項目的最佳實踐,它更易於維護和合作。 如果您的項目非常簡單,LINQ + WebForm可以在幾個小時內幫助您,您可以放棄MVC。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.