文档章节

笔记【2015/08/14】最火的.NET开源项目

李朝强
 李朝强
发布于 2015/08/14 13:10
字数 1948
阅读 213
收藏 7
综合类

    微软企业库 微软官方出品,是为了协助开发商解决企业级应用开发过程中所面临的一系列共性的问题, 如安全(Security)、日志(Logging)、数据访问(Data Access)、配置管理(Configuration Manage)等,并将这些广泛使用的应用程序块集成封装至一个叫企业库的程序包中
    CommonLibrary.net 一个帮助类库,包含了ActiveRecord, Csv, Command Line Parsing, Configuration, Validation, Logging, Collections, Authentication等等
    Castle 一个传统的综合类库,包含IOC容器,基于ActiveRecord模式的ORM,类MVC框架,核心,现在用的比较多的是核心Castle.Core, 里面包含了基于虚拟工厂的日志抽象,动态代理DynamicProxy,Dictionary Adapter(可以将一个接口转化为强类型的Dictionary对象,具体大家可以查一查,某些场景下很有用)


IOC容器

    Autofac 我最喜欢的一个IOC容器,特性丰富,除了IOC的基本功能外,还提供模块化和程序集扫描,内置了很多有用的扩展(Lazy,Func,Owned,IEnumrable)等等,而且对asp.net,mvc,mef,wcf,dynamicProxy等等提供了集成.
    Unity 微软企业库的基础,功能简单,扩展方便,微软官方提供一个EventBus的扩展例子,值得一看
    Ninject 主打特性简单易用,很多讲MVC的书中都用这个做例子
    StructureMap 一个传统的IOC容器,很早就出来了,性能优越,功能稳定,已经不更新了(在一个IOC容器的性能测试中性能最佳)


ORM框架

    NHibernate 一个传统的ORM,移植于java的Hibernate,3.0后发展迅速,提供FluentMap和FluentConfig,支持Linq,支持 HQL和NativeSQL,支持一级缓存和二级缓存,丰富的ID生成策略,更多的拦截事件暴露,支持常见的所有数据库,缺点就是配置选项有点多,初学者 无处下手
    EntityFramework 微软官方出的ORM,配置简单,比NH更好的Linq支持,工具支持和较低的学习门槛,命名约定配置,支持CodeFirst DbMigration(在开发时,不能用在生产环境中),缺点就是不支持批量操作(第三方库EntityFramework.Extension扩展了 这一点,还做了缓存),无原生的二级缓存,,单调的ID生成方式,不支持多数据库(很多数据库如MySql都对EF提供了支持,但是bug多多,有稳定的 商业库可以选择),还有单一的配置方式(当你想从程序集动态加载model到DbContext中时,你就会知道就多捉鸡)
    Dapper StackOverflow开源的一个MiniOrm,性能和原生ado.net相近,0配置,强类型支持.缺点同样是有小bug,较弱的LINQ支持 (只找到一个MSSQL的linq插件)有两个关于Dapper的扩展,一个叫Dapper.Extension,一个叫 Dapper.Rainbow.Mysql.这两个扩展可能更接近传统意义上的ORM
    ServiceStack.OrmLite 另外一个MiniORM,性能仅次于Dapper,支持大部分的数据库,比Dapper丰富的多的API和更好的强类型lambda表达式查询条件支持,映射0配置,也支持以Attribute配置,支持表的创建和删除,好东西.我最喜欢~~

文档操作

    EppPlus 使用xlsx协议读写Excel2007/2010,功能非常多
    DocX 读写Word2007/2010文件,无需安装office
    PdfSharp 操作pdf

基础类

    AutoMapper 对象映射,常用来做DTO/ViewModel和Model之间的映射,功能丰富远超你想象
    Html Agility PackHtml解析库
    Json.net Json序列化和反序列化,基本支持所有的json特性,性能也很好,MVC4的默认引用程序集中已包含.(支持4.0的动态对象,这个很好用)
    FluentValidation 类似于4.0新出的代码契约,用于对业务对象创建验证规则.其本身已经内置了很多的规则
    DotNetZip 创建,压缩,解压Zip文件
    SharpZipLib 创建,压缩,解压Zip文件
    SevenZipSharp 支持7zip所有格式的压缩和解压缩
    Rx 使用可观测对象(IObservable)的序列和 LINQ 风格的查询操作来编写异步和基于事件的程序。开发人员可通过 Rx 使用可观测对象来表示异步数据流,并使用 LINQ 操作来查询异步数据流。简而言之:Rx = Observables + LINQ + Schedulers.
    Microsoft.Bcl.Async 可以在4.0中使用4.5中新增的async和await两个关键字

辅助开发

    Autoupdate 为你的程序一键增加更新功能
    NetSparkle 一个独立的升级框架,不依赖于你的程序和代码
    MailSystem.NET 功能强大的电子邮件组件,提供对SMTP, POP3, IMAP4, NNTP, MIME, S/MIME, OpenPGP, DNS, vCard, vCalendar, Anti-Spam (Bayesian , RBL, DomainKeys), Queueing, Mail Merge and WhoIs的支持
    FluentMigrator 一个类似于RubyMigrations的数据库Migration框架
    GMap.Net 一个强大的.NET地图控件,可以用于Winform和WPF,跨平台,支持 Coogle, Yahoo!, Bing, OpenStreetMap, ArcGIS, Pergo, SigPac, Yandex, Mapy.cz, Maps.lt, iKarte.lv, NearMap, OviMap, CloudMade, WikiMapia, MapQuest ,同学们可以根据需求扩展国内的版本.


企业总线

    Shuttle ESB 一个开源的企业总线,C#编写,不依赖第三方程序集,支持MSMQ和table-based queue
    NServiceBus 最流行的.NET开源总线,不依赖于xml配置,支持MSMQ, RabbitMQ, ActiveMQ, WebSphereMQ, Azure,其次配套设施十分齐全,比如对autofac的集成

服务器

    Katana 包含一系列的服务器组件,用来创建自包含的web应用程序.
    CassiniDev 开源的asp.net服务器,IIS的替代品
    IISTuner IIS配置优化工具


图形图像

    SharpGL OpenGL的C#封装,更新很

    快,基本可以与Glew保持一致.
    Magick.NET 强大的图片处理库,可以处理超过100种格式,无需安装ImageMagick
    DotNet.Highcharts Highcharts的封装,用于asp.net,强类型和智能提示,渣前端开发者的福音.

日志

    日志框架如何选择如果你使用了微软企业库,就用企业库自带的,如果你引入的程序集中有的使用了Log4net,那就最好使用Log4net,如果都没有,看个人喜好

    Log4net 传统的日志框架,移植于log4jV1.2,高效,稳定
    NLog 官方介绍为高级日志框架,与Log4net相比,有比较强的配置文件自纠错能力,更加丰富的LogAppender.
    Logging Application Block 微软企业库自带的日志记录模块

    Semantic Logging Application Block 微软企业库新出的日志记录框架,理念上不同于前面三个,具体可以参考http://blogs.msdn.com/b/agile/archive/2013/02/07/embracing-semantic-logging.aspx


CMS

    Orchard CMS的新起之秀,基于Asp.net MVC.扩展很多.非常值得作为源码学习(值得学习的模块有IOC的深度应用,基于IOC的EventBus,高度抽象的模板系统,Cache,插件化体系,基于NH的数据迁移框架)
    DotNetNuke DotNetNuke 是微软支持的一套非常优秀的基于asp.net的开源门户网站程序,功能强大,地位类似于PHP中的WordPress
    Umbraco Umbraco 是一种基于.NET技术的开源的CMS(Content Management System),使用SQL Server或MySQL进行存储数据。Umbraco最大的特色是简单、灵活、易用,不管对于开发者还是网站管理者。 Umbraco还提供了WYSIWYG 编辑器几乎与Microsoft Word完全一样

工具篇

    nuget vs必备插件第一,项目依赖文件管理.也可以在部门内部架设自己的nuget服务器,用于协作开发中的程序集发布.
    Sandcastle Help File Builder Sandcastle本身是微软出品的一个文档生成工具,用来代替NDoc,SHFB基于SandCastle,提供了更多的选项,工具支持和vs集成,推荐使用

本文转载自:http://www.open-open.com/lib/view/open1393838784177.html

李朝强
粉丝 91
博文 297
码字总数 149962
作品 0
郑州
产品经理
私信 提问
老男孩51CTO博客博文列表整理版20170620更新

老男孩51CTO博客博文列表整理版 (本文原自于一道考试题http://oldboy.blog.51cto.com/2561410/1860985) 老男孩教育运维脱产班35期 刘同学 2017-06-14 17:44:41 老男孩的MySQL私房菜新书视频1...

老男孩oldboy
2016/10/14
0
0
【IOS开发笔记02】学生管理系统

端到端的机会 虽然现在身处大公司,但是因为是内部创业团队,产品、native、前端、服务器端全部坐在一起开发,大家很容易做零距离交流,也因为最近内部有一个前端要转岗过来,于是手里的前端...

范大脚脚
2017/11/17
0
0
PHP缓存 远程服务器页面

A是我们自己的服务器 Linux 部署的Laravel B是网建公司的IIS+php5,2 给的一个虚拟主机 只有FTP权限 【神兽】新人 2015-1-14 18:08 现在域名指向的是B服务器IP 网建公司的备案 18:08 【神兽】...

eechen的粉丝
2015/01/14
217
3
大数据日报 2015-02-14

Spark SQL 数据源 API:Spark平台的统一数据接入 @网路冷眼 市民眼中的绿地为何没那么多?用大数据讲述城市意象 @市政厅官微 Fig部署Docker @Easy HIVE的CTAS用法探究 @IT技术博客大学习 Do...

Airship
2015/02/15
96
0
eclipse下启动服务器报错

java.lang.Exception: DEBUG STACK TRACE for PoolBackedDataSource.close(). at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.close(AbstractPoolBackedDataSource.java:417) at......

時間會抹平那些皺褶遺
2015/04/08
586
2

没有更多内容

加载失败,请刷新页面

加载更多

前端技术之:Prisma Demo服务部署过程记录

安装前提条件: 1、已经安装了docker运行环境 2、以下命令执行记录发生在MackBook环境 3、已经安装了PostgreSQL(我使用的是11版本) 4、Node开发运行环境可以正常工作 首先需要通过Node包管...

popgis
今天
5
0
数组和链表

数组 链表 技巧一:掌握链表,想轻松写出正确的链表代码,需要理解指针获引用的含义: 对指针的理解,记住下面的这句话就可以了: 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指...

code-ortaerc
今天
4
0
栈-链式(c/c++实现)

上次说“栈是在线性表演变而来的,线性表很自由,想往哪里插数据就往哪里插数据,想删哪数据就删哪数据...。但给线性表一些限制呢,就没那么自由了,把线性表的三边封起来就变成了栈,栈只能...

白客C
今天
43
0
Mybatis Plus service

/** * @author beth * @data 2019-10-20 23:34 */@RunWith(SpringRunner.class)@SpringBootTestpublic class ServiceTest { @Autowired private IUserInfoService iUserInfoS......

一个yuanbeth
今天
5
0
php7-internal 7 zval的操作

## 7.7 zval的操作 扩展中经常会用到各种类型的zval,PHP提供了很多宏用于不同类型zval的操作,尽管我们也可以自己操作zval,但这并不是一个好习惯,因为zval有很多其它用途的标识,如果自己...

冻结not
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部