在开源中国社区,简单整理了下比较好的.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框架开源软件》