基于.NET平台常用的框架整理

2016-3-31 | 发布者:DotNet

(点击上方蓝字,可快速关注我们)


来源:天使不哭

链接:http://www.cnblogs.com/hgmyz/p/5313983.html


自从学习.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应用程序的框架,可开发插件系统。


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的Storm0.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是一个非常轻量级的消息系统,除了性能非常好之外,还是一个工作良好的分布式系统。


【今日微信公号推荐↓】


更多推荐请看值得关注的技术和设计公众号


其中推荐了包括技术设计极客 和 IT相亲相关的热门公众号。技术涵盖:Python、Web前端、Java、安卓、iOS、PHP、C/C++、.NET、Linux、数据库、运维、大数据、算法、IT职场等。点击《值得关注的技术和设计公众号》,发现精彩!



音乐节详情,请点阅读原文



热门文章

更多

潮人帮

10款今夏最夯防晒清单

10款今夏最夯防晒清单

北半球的夏天又野蛮粗暴无过度的来临了,前两天还是棉被裹身抱怨暖气停的早,现在屯儿里的姑娘们已经迫不及待的露胳膊露腿儿过夏天了,每年春夏都如此的猝不及防,但是护肤经们却早就开始新一季的防晒大作战了。...
美丽说HIGO • 
春天7个简单穿衣,十分耐看美丽

春天7个简单穿衣,十分耐看美丽

春季四月天,气温忽冷忽热,早晚温差大,穿衣要防冷御寒,就少不了小外套和开衫等单品。搭配要简单时尚,还要耐看美丽,那就穿浅色调款,让整个春季充满浪漫和甜美。下面7个春季穿衣搭配,供大家欣赏参考。  ...
穿衣搭配课堂 • 
你想知道的半永久纹眉全都在这里 魔法课堂

你想知道的半永久纹眉全都在这里 魔法课堂

小编今天终于要把文章内容和魔法课堂的内容统一了。废话不多说我们先来看片子!是的没错,今天我们要聊聊半永久纹眉的事情。说的直白一点,半永久就是不能永远有效嘛,就跟几千块的羊毛衫也会起球缩水,几千块的...
小P老师 • 
清明小假期 轻便出行搭配get起来~

清明小假期 轻便出行搭配get起来~

清明三天的小假期是否早已按耐不住,工作之余计划踏青小游呢!早晚的温差很大,天气也是阴晴不定,今天喵喵就为大家推荐几套适合外出游玩的搭配吧!希望大家有个愉快的出行。 蕾丝的吊带与高腰牛仔裙碰撞,提高...
喵兮兮 • 
春天是拍照的季节,高圆圆美,张天爱潮,可是汤...

春天是拍照的季节,高圆圆美,张天爱潮,可是汤...

► 春天是百花齐放的季节,压抑了一个冬天的时髦欲在这春意盎然的时光里喷薄而出,各路女星纷纷着最漂亮的衣服,拍最美的照片。►高圆圆是现在少有的天然美女,从《十七岁的单车》知晓她,到现在看她嫁为人妻,...
时尚女性潮流 • 
加载更多

 更多私房话