簡體   English   中英

選擇正確的框架

[英]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。

我認為這完全取決於您作為開發人員的位置以及您想要做的事情。 至於成本 - 實體框架是免費的Visual Studio。 流暢的NHibernate與EF非常相似,它也適用於Oracle,MySql和MSSQL, 你可以通過nu get 獲得它

存儲庫模式只是用於獲取集合的模式。

我會說兩個ORM都有它們的優點和缺點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM