在開源中國社區,簡單整理了下比較好的.NET通用開發框架。一個好的通用框架大概包括:
開源、擴展性好、靈活性好、復用性好、維護性好、易測試、易發布、易部署、快速業務搭建(或業務集成)、通用性強、參考資料多、持續技術支持、社區疑難問題建設。
.NET通用開發框架 :
0.ASP.NET MVC
ASP.NET MVC,在現有的ASP.NET 3.5運行時的基礎上提供了一個新的MVC框架。開發人員可以用MVC設計模式來構建Web應用,做到清晰的概念分離(UI或者視圖與業務應用邏輯分離, 應用邏輯和后端數據分離),同時還可以使用測試驅動開發。ASP.NET MVC框架為Web應用的目錄結構定義了一個專用的模式,還提供了一個controller基類,用來處理發動到“action”的請求。開發人員還可以 用上這個版本中所特有的Visual Studio 2008 MVC模板,利用模板所提供的單元測試結構來輔助Web應用開發。
1.Entity Framework
ADO.NET Entity Framework,是微軟以 ADO.NET 為基礎所發展出來的對象關系對應 (O/R Mapping) 解決方案,早期被稱為 ObjectSpace,現已經包含在 Visual Studio 2008 Service Pack 1 以及 .NET Framework 3.5 Service Pack 1 中發表。
2.Enterprise Library
Enterprise Library for .Net Framework 3.5 – EntLib v4.1,是patterns & practices 小組為.NET Framework 3.5 開發一套企業庫,目前最新版本為v4.1,共包括9個Application Block,包括數據訪問(Data Access Application Block)、異常管理(Exception Handling Application Block)、數據驗證(Validation Application Block)等等,對企業應用開發非常有幫助,也非常實用。
3.NHibernate
NHibernate,是一個基於.Net 的針對關系型數據庫的對象持久化類庫。Nhibernate 來源於非常優秀的基於Java的Hibernate 關系型持久化工具。NHibernate 從數據庫底層來持久化你的.Net 對象到關系型數據庫。NHibernate 為你處理這些,遠勝於你不得不寫SQL去從數 據庫存取對象。你的代碼僅僅和對象關聯,NHibernat 自動產生SQL語句,並確保對象提交到正確的表和字段中去。
4.SpringNet
Spring.NET,是一個關注於.NET企業應用開發的應用程序框架。它能夠提供寬廣范圍的功能,例如依賴注入、面向方面編程(AOP)、數據訪問抽象, 以及ASP.NET集成等。基於java的spring框架的核心概念和價值已被應用到.NET。Spring.Core 庫是框架的基礎, 提供依賴注入功能。Spring.NET中大多數類庫依賴或擴展了Spring.Core的功能。
5.Bridge.NET
Bridge.NET,通過將 C# 轉換成 JavaScript 來構建跨平台的移動應用、Web應用和桌面應用。通過 Visual Studio 插件,它為開發者提供了項目模版和編譯器。它提供了對很多流行的 JavaScript 框架的支持,如 jQuery,Bootstrap,PhoneGap,AngularJS ……。只需在項目中安裝對應的 NuGet Package,就可以引用相關的 JavaScript API。
6.Castle
Castle,是針對.NET平台下的一個非常優秀的開源項目,從數據訪問框架 ORM到依賴注入容器,再到WEB層的MVC框架、AOP,基本包括了整個開發過程中的所有東西,為我們快速的構建企業級的應用程序提供了很好的服務。
7.CSLA.NET
CSLA .NET,是一個.NET軟件開發框架,幫助開發者“為Windows、Web、面向服務和工作流等應用構建強大和可維護的業務邏輯層”。CSLA是Component-based, Scalable, Logical Architecture的簡寫,CSLA . NET是Rockford Lhotka基於.Net設計的一套N-tier分布式框架。
8.LLBL Gen
LLBLGen Pro,是LLBLGen的數據庫訪問解決方案,她包含兩個部分:設計器(LLBLGen Pro designer)和運行時框架(LLBLGen Pro runtime framework)。支持多種數據庫;設計器生成的源碼除支持自身的運行時框架外,還支持另外三種數據庫映射框架產品:EF 1.0和4.0、NHibernate 2.x、LINQ TO SQL;設計器的代碼生成自動將各種表視圖存儲過程等對於的視圖模型Entidy、接口Interface、操作類等完整生成;LLBLGen框架的使用可以基本使你完全脫離繁瑣的數據存儲及展現查詢的各種操作過程,而專心於業務邏輯的開發。
9.NBear
NBear,是一個.Net 2.0下的快速開發框架。它提供了包括可視化實體設計、代碼生成、持久化、SOA、MVP等一系列組件。 NBear的設計目標是盡最大可能減少程序員的重復勞動、提高開發效率、提升代碼的可維護性和整體質量。
10.OpenWebFrame
OpenWebFrame,開源web統一開發框架提供二次web開發所需工具集及可以直接使用的開發包。產品開發采用開源與付費相結合的模式進行。開源WEB統一開發框架針對中等規模的交互式網站產品,主要包括底層分布式框架以及源代碼管理、日志分析等工具集和可以直接使用的公共開發包如注冊登錄部分、權限管理部分、緩存區、配置節以及分頁等前端表現。最主要的關注點是能夠在此框架基礎上方便、快捷地擴展服務性應用,同時核心部分的運行要求高質量、高安全、高效率.
11.Subsonic
SubSonic,是一個類似Rails的開源.NET項目。你可以把它看作是一把瑞士軍刀,它可以用來構建Website和通過ORM方式來訪問數據。
12.FuBuMVC
FubuMVC,是一個前端的控制器,等同於 MVC 模式中的 Controller ,基於 .NET 框架開發,可以再 ASP.NET 項目中使用。
13.ThinkWide
ThinkWide,是一個基於.Net 3.5、C#2.0的軟件開發框架類庫。ThinkWide的設計目標是盡最大努力減少開發人員的工作量,最大程度提升開發效率,同時兼顧性能及可伸縮性,是一種完整的軟件應用解決方案涉及全面的軟件技術包含數據訪問,數據部署,業務層邏輯,以及配置層,界面表示層等。靈活的O/R映射,更加簡潔的代碼。
提供實體類生成工具,免除手寫實體的工作量。動態實體類工廠,運行時動態對象及緩存實體類接口的實現類。支持多數據庫源。基於容器的分布式服務工廠,透明的分布式服務調用和分發 可切換的分布式服務,支持WebService,Remoting,WCF數據隊列,而無需修改任何代碼
14.FastSprint.NET
FastSpring.NET,是一個集成了Spring.NET & NHibernate & Ajax 的WEB開發框架。是國內第一個支持Spring.NET、NHibernate 及Ajax的開源的Framework。
15.XCore
XCore,是一款.NET平台下的免費開源框架,XCore的設想是為廣大碼農提供一款上手快、使用簡單、開發效率又高的框架,經過上百個項目實戰的檢驗,已是一款非常適用於商業項目及創業團隊的開發框架。特點:簡潔易用、從實戰出發、高度集成、類庫豐富、零配置、低依賴、多數據庫支持。
16.WebSharp
WebSharp,是國人開源的一款開源持久層框架,它的目標是設計一個基於.Net的通用的應用軟件系統的框架,以簡化基於.Net平台的企業應用軟件的開發。Websharp關注於企業應用軟件的以下幾個方面:數據庫訪問、O/R映射、AOP、分布式訪問。
17.Nancy
Nancy,是一個輕量級用於構建基於 HTTP 的 Web 服務,基於 .NET 和 Mono 平台。Nancy 設計用於處理 DELETE
, GET
, HEAD
, OPTIONS
, POST
, PUT
和 PATCH
等請求方法,並提供簡單優雅的 DSL 以返回響應。
18.WebADNuke
WebADNuke! (以下簡稱ADN),是基於Asp.Net平台、采用面向業務模塊技術實現企業級B/S結構應用開發、運行、管理、監控、維護的中間件平台。它將.Net 體系規范、開源技術、跨數據庫技術和面向業務開發技術的完美結合起來,為企業級Web應用系統的開發帶來了卓越的價值。ADN 是Web2.0開源技術體系基於Asp.Net平台的完整實現, 是用於Web業務應用開發而生的.Net Web 2.0開源架構,支持多數據庫且跨數據庫特性,支持在線安裝和Zip格式文件安裝,支持系統級的無縫集成,Window桌面的操作風格,超凡的用戶體驗, 可伸縮性擴展應用,有效整合現有的系統,同時又能保護團隊現有成果,規范化團隊成員的開發。
19.Manos
Manos,是一個易用、易於測試、高性能的 .NET 的 Web 框架。
20.Jessica
Jessica,靈感來自 Ruby 的微型框架 Sinatra ,采用 C# 開發。
另注:其他開發語言(Java、PHP、Python、Ruby、Node.js、JavaScript等)通用開發框架見《Web框架開源軟件》