关闭

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

发表于:2016-4-06 10:30

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:天使不哭    来源:51Testing软件测试网采编

  网络通信和网络协议
  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是一个非常轻量级的消息系统,除了性能非常好之外,还是一个工作良好的分布式系统。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号