基于.NET平台常用的框架整理
转载:http://www.cnblogs.com/hgmyz/
自打学习.NET以来,优雅的编程风格,格外简单的可扩大性,丰硕强大开发工具,极小的学习曲线,让我对那个平台发出了深厚的兴趣,在办事和学习中也积累了一部分开源的组件,就当下想到的先收拾于此,假诺再想到,就继续补充那篇日记,有增无已,就能形成一个协调的零件经验库。
分布式缓存框架:
Microsoft Velocity:微软自身分布式缓存服务框架。
Memcahed:一套分布式的高速缓存系统,近年来被过多网站使用以进步网站的访问速度。
Redis:是一个高质量的KV数据库。 它的面世很大程度补偿了Memcached在某些方面的欠缺。
EnyimMemcached:访问Memcached最突出的.NET客户端,集成不错的分布式均衡算法。
开源的.NET系统推荐:
OXITE:微软ASP.NET MVC案例演示框架。
PetShop:微软ASP.NET宠物商店。
Orchard:国外一个MVC开源的博客系统。
SSCLI:微软在NET Framework 2.0时期的开源代码。
DasBlog:国外一个基于ASP.NET的博客系统。
BlogEngine.NET:国外一款免费开源的博客系统。
Dotnetnuke.NET:一套相当完美的基于ASP.NET的开源门户网站程序。
Discuz.NET:国内开源的论坛社区系列。
nopCommerce和Aspxcommerce:国外一套高质量的开源B2C网站系统。
JumboTCMS和DTCMS:国内七款开源的网站管理体系:
日记记录卓殊处理:
Log4Net.dll:轻量级的免费开源.NET日志记录框架。
Enterprise Library Log Application Black:微软公司库日志记录。
Elmah:达成最流行的ASP.NET应用万分日志记录框架。
NLog:是一个大致利落的日记记录类库,品质比Log4Net高,使用和有限支持难度低。
关于NoSQL数据库:
Mongodb:分布式文件存储数据库。
Membase:家族的一个新的重量级的成员。
活动职务调度框架
Quartz.NET:开源的功课调度和机动任务框架。
Topshelf:另一种创设Windows服务的开源框架
借助于注入IOC容器框架:
Unity:微软patterns&practicest团队开发的IOC器重注入框架,辅助AOP横切关心点。
MEF(Managed Extensibility
Framework):是一个用来扩充.NET应用程序的框架,可支付插件系统。
NoSQL,Spring.NET:珍重注入、面向方面编程(AOP)、数据访问抽象,、以及ASP.NET集成。
Autofac:最风靡的依赖注入和IOC框架,轻量且高质量,对品种代码大概无其他侵入性。
PostSharp:落成静态AOP横切关心点,使用简易,功用强大,对目的拦截的格局无需任何改变。
Ninject:基于.NET轻量级开源的依靠注入IOC框架
常用的多少个ORM框架:
EF(ADO.NET Entity Framework):微软按照ADO.NET开发的ORM框架。
Nhibernate:面向.NET环境的轻量级的ORM框架。
SqlMapper.cs:用于小项目标通用的C#数据库访问类。
AutoMapper:流行的对象映射框架,可裁减大气硬编码,很精致灵活,质量表现也可接受。
SubSonic:优异的开源的ORM映射框架,同时提供符合自身要求的代码生成器。
FluentData:开源的基于Fluent API的链式查询ORM轻量级框架。
Dapper:轻量级高质量基于EMIT生成的ORM框架。
EmitMapper:品质较高的ORM框架,运行时通过EMIT动态生成IL代码,并非选取反射机制。
格式和数据类型转换
Newtonsoft.Json:近来.NET付出中最风靡的JSON种类化库,为新版的WebApi库提供基础。
System.JSON.dll:微软协调支付的JSON种类化组件(须求独自下载)
DataContractJsonSerializer 和
DataContractXmlSerializer:微软在WCF中采取的种类化器。
JavaScriptSerializer:微软默许针对WEB开发者提供的JSON格式化器。
iTextSharp、PDFsharp 和 PDF.NET:通过.NET处理和生成PDF文档的机件。
SharpZipLib.dll:免费开源的ZIP和GZIP文件解压缩组件。
Math.NET:强大的数学运算、微积分、解方程和不错运算。
DocX:不必要安装word软件,通过C#操作word文件。
SharpSerializer:开源XML和、二进制、JSON、压缩和优化框架。
反射和动态语言
Clay dynamic:开源的动态语言dynamic框架让你形如javascript的艺术创设对象。
ExposedObject:在类的外部通过动态语言dynamic的方法访问私有成员。
PrivateObject:微软单元测试框架中便捷在表面调用类内部私有成员的一个类。
跨平台和运行时解决方案
MONO.NET:跨平台的.NET运行环境,让.NET跨平台运行成为可能。
DotGnu Portable.NET:类似于MONO.NET的跨平台运行时。
Phalanger:将PHP编译成.NET,可实现PHP与.NET互操作。
VMDotNet:中国联通飞信所运用过的.NET运行时。
Unity3D:微软努力支持的机遇C#和JavaScript的跨平台游戏支付框架。
Cassini、IIS Express和Cassinidev:开源的ASP.NET执行环境。
Katana:微软基于OWIN规范落到实处的非IIS寄宿ASP.NET和MVC等。
IKVM.NET:基于.NET的JAVA虚拟机,让JAVA运行在.NET之上。
WEB开发和设计
Jumony Core:基于.NET开发的HTML引擎。
Microsoft.mshtml.dll、Winista.HtmlParser.dll 和
HtmlAgilityPack.dll:解析处理HTML文档的框架。
JavaScript.NET和ClearScript(微软产品):基于.NET开发的JavaScript引擎。
NCrawler:其HTML处理引擎htmlagilitypack的的开源互联网爬虫软件。
AntiXSS:微软官方预防跨站XSS脚本侵略攻击的开源类库,它通过白名单机制举行内容编码。
YUICompressor.NET、Microsoft Ajax Minifier 和 Google Closure
Compiler:JavaScrip和CSS压缩器。
NancyFx:是一个科学的轻量级开源.NET
WEB框架。倘使想飞速做个简易的WEB应用。
AspNetPager:国内盛名的ASP.NET分页控件,辅助多样分页形式。
NOPI.dll:导出Excel报表的插件(基于微软OpenXml完毕)(nopi.css.dl通过css设置样式)
Enterprise Library:微软本着公司级应用开发的一流实践组件。
PowerCollections:国外一个牛人写的高档开源集合。
举手投足网络和云总结
PushSharp:通过.NET向种种运动平台推送新闻。
mono for android:用.NET语言开发安卓应用:
MonoTouch:用.NET语言开发IOS应用。
PhoneGap和AppCan:跨平台基于HTML5的位移支付平台。
Cordova:PhoneGap进献给Apache后的开源项目,是驱动PhoneGap的为主引擎。
网络通讯和互连网协议
SuperSocket:基于.NET轻量级的可伸张的Socket开发框架。
SuperWebSocket:通过.NET实现TML5 WebSocket框架。
XProxy:协理插件的根底代理程序集,内置NAT、加解密、反向、直接和直接代理。
图表和图像处理框架
Paint.NET:基于.NET小巧灵活有力的图形处理开源项目。
Imagemagick.NET:用C#对开源图像处理组件Imagemagick的卷入。
Skimpt:基于.NET开源的显示屏截图软件。
ImageGlue.NET:商业的图像处理组件,帮忙的格式列了一大堆。
Sprite and Image Optimization
Framework:微软CSS天使,多图合成一张大图和CSS样式。
桌面应用程序框架
DevExpress:一个名满天下的桌面应用程序UI控件库。
Prism:微软开发的对准WPF和Silverlight的MVVM框架,通过成效模块化的考虑,来讲复杂的政工职能和UI耦合性举办分离。
WPFToolkit 和 Fluent Ribbon Control
Suite:开发近乎于Office风格的Ribbon菜单。
测试和品质评估方面
Faker.Net:方便生成大量测试数据的框架。
Nunit:一个轻量级的单元测试框架。
Moq:万分流行的Mock框架,匡助LINQ,灵活且高品质。
xUnit:比NUnit更好的单元测试框架,升级立异版的Nunit框架。
MiniProfiler和Glimpse:基于MVC的五款质量事件监控框架。
作业和分布式事务支持
KtmIntegration:一个支撑NTFS文件系统的工作开源类。
NET Transactional File
Manager:对文件系统操作(复制、移动和删除)出席工作匡助。
分词、全文检索和摸索引擎
Lucene.net:流行高质量的全文索引库,可用于为种种信息提供强大的探寻效果。
Lucene.Net.Analysis.PanGu:协助Lucene.Net最新版的天神中文分词伸张库。
多少印证组件整理
FluentValidation for .NET:基于LINQ表明式方法链Fluent接口验证组件。
Microsoft.Practices.EnterpriseLibrary.Validation.dll:微软商家库验证程序块。
CuttingEdge.Conditions:基于Fluent接口方法练接口的契约编程组件。
DotNetOpenAuth:让网站有着协助OpenID、OAuth、InfoCard等身份验证的力量。
开源图表总结控件:
Visifire:一套效果极度好的WPF图表控件,协助3D绘制、曲线、折线、扇形、环形和梯形。
SparrowToolkit:一套WPF图表控件集,接济绘制动态曲线,可绘制示波器、CPU使用率和波形。
DynamicDataDisplay:微软开源的WPF动态曲线图,线图、气泡图和热力图。
能够伸张新闻队列品种,如:Kafka是一种分布式的,基于发表/订阅的音讯系统。紧要设计目的如下:
以时间复杂度为O(1)的主意提供音信持久化能力,尽管对TB级以上数据也能有限协理常数时间复杂度的访问品质。
高吞吐率。尽管在老大廉价的商用机器上也能不负众望单机匡助每秒100K条以上音信的传导。
支持Kafka
Server间的音讯分区,及分布式消费,同时确保每个Partition内的新闻顺序传输。
并且帮衬离线数据处理和实时数据处理。
Scale out:接济在线水平扩大。
RabbitMQ
RabbitMQ是应用Erlang编写的一个开源的音讯队列,本身协理广大的商事:AMQP,XMPP,
SMTP,
STOMP,也正因如此,它万分重量级,更符合于集团级的支出。同时落到实处了Broker构架,那表示新闻在发送给客户端时先在主题队列排队。对路由,负载均衡或者数额持久化都有很好的协助。
Redis
Redis是一个基于Key-Value对的NoSQL数据库,开发爱慕很活泼。尽管它是一个Key-Value数据库存储系统,但它自己帮衬MQ成效,所以完全能够用作一个轻量级的种类服务来选择。对于RabbitMQ和Redis的入队和出队操作,各执行100万次,每10万次记录一遍实施时间。测试数据分为128Bytes、512Bytes、1K和10K三个不一样大小的多少。实验评释:入队时,当数码比较小时Redis的特性要高于RabbitMQ,而只要数据大小领先了10K,Redis则慢的不能忍受;出队时,无论数额大小,Redis都突显出相当好的性质,而RabbitMQ的出队质量则远小于Redis。
ZeroMQ
ZeroMQ号称最快的音讯队列系统,更加针对大吞吐量的须求处境。ZeroMQ可以落实RabbitMQ不善于的高等级/复杂的队列,不过开发人员要求自己组合三种技艺框架,技术上的复杂度是对那MQ可以使用成功的挑衅。ZeroMQ具有一个极度的非中间件的形式,你不必要设置和周转一个音讯服务器或中间件,因为你的应用程序将扮演那些服务器角色。你只须要不难的引用ZeroMQ程序库,可以动用NuGet安装,然后您就足以春风得意的在应用程序之间发送音信了。不过ZeroMQ仅提供非持久性的行列,也就是说假若宕机,数据将会丢掉。其中,推特(Twitter)的Storm
0.9.0原先的版本中默许使用ZeroMQ作为数据流的传输(Storm从0.9版本开端还要襄助ZeroMQ和Netty作为传输模块)。
ActiveMQ
ActiveMQ是Apache下的一个子项目。
类似于ZeroMQ,它可以以代表和点对点的技能落成队列。同时类似于RabbitMQ,它少量代码就可以很快地落到实处高级应用场景。
Kafka/Jafka
Kafka是Apache下的一个子项目,是一个高品质跨语言分布式发表/订阅信息队列系统,而Jafka是在Kafka之上孵化而来的,即Kafka的一个升级版。具有以下特征:急忙持久化,可以在O(1)的系列开发下进展音信持久化;高吞吐,在一台一般的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统,Broker、Producer、Consumer都原生自动扶助分布式,自动落成负载均衡;支持Hadoop数据交互加载,对于像Hadoop的等同的日记数据和离线分析序列,但又要求实时处理的限制,这是一个灵光的解决方案。Kafka通过Hadoop的互相加载机制统一了在线和离线的消息处理。Apache
Kafka相对于ActiveMQ是一个百般轻量级的新闻系统,除了品质相当好之外,如故一个工作可以的分布式系统。