今天推荐的文章会谈到一些让你工作更轻松的开源.NET函数库。

即使业界有时候认为.NET开源社区不太健康,很多开发团队都更多依赖于微软提供的东西来开发。不过最近在.NET世界中还是诞生了一些优秀和有意思的开源函数库。

thomasvm就在他的博文中推荐了一些比较有代表性的开源函数库。这些函数库都是解决一些比较通用的问题,具备良好的文档,并非是一个强制你遵循某种规则和代码结构的框架,可以很好地嵌入到你的应用程序当中。当然,作者也给出了一些推荐理由:

  • Hangfire。这是一个运行在ASP.NET中的后台任务执行工具。之前我专门介绍过。它内置漂亮的控制面板,对后台执行的方法没有特殊要求,对托管应用没有要求,作者对社区反馈反应迅速。
  • Postal。借鉴了Razor的灵感,使用类似View的概念来实现邮件模板。也封装了邮件发送的常用接口。
  • Formo。用dynamic数据类型让读取配置文件的内容更加灵活,当然也支持额外定义的POCO。
  • CsvHelper。在导入CSV文件的时候,往往需要写一些特定的读取代码。而只需要自己定义好映射,CsvHelper就帮你搞定一切。
  • TopShelf。以常规的方式编写Windows Service的时候,需要太多步骤和代码;而用TopShelf,只需要简单的创建一个类,并传递到HostFactory.Run中就行。安装也简单到.\yourservice.exe install。

    更详细的内容,可”阅读原文“。

    原文链接:http://thomasvm.github.io/blog/2015/03/17/open-source-net-libraries-that-make-your-life-easier/

  • 人生维艰,何不利用开源.NET函数库让工作更轻松的更多相关文章

    1. 如何持续集成/交付一个开源.NET函数库到Nuget.org

      (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:这是一个简单的入门向导,涉及到GitHub.AppVeyor和Nuget.org. 最 ...

    2. 利用开源的TaskScheduler组件实现监控和管理windows计划任务

      对于计划任务的执行有很多种解决方案,如利用开源Quartz作业调度框架,在SQL Server的作业等等,同时Windows的任务计划程序功能也很强大,利用此可以很方便的实现很多计划任务,除了人工进行 ...

    3. 如何在我们项目中利用开源的图表(js chart)

              最近觉得应该把自己在技术上的一些心得记录在博客里面跟大家分享,一起讨论,一起成长!       这篇随笔主要为介绍chart在项目中的运用,因为在我们看到一些开源的chart时候,是使 ...

    4. IT观察】网络通信、图片显示、数据库操作……Android程序员如何利用开源框架

      每个Android 程序员都不是Android应用开发之路上孤军奋战的一个人,GitHub上浩如烟海的开源框架或类库就是前人为我们发明的轮子,有的轮子能提高软件性能,而有的轮子似乎是以牺牲性能为代价换 ...

    5. 第三百五十七节,Python分布式爬虫打造搜索引擎Scrapy精讲—利用开源的scrapy-redis编写分布式爬虫代码

      第三百五十七节,Python分布式爬虫打造搜索引擎Scrapy精讲—利用开源的scrapy-redis编写分布式爬虫代码 scrapy-redis是一个可以scrapy结合redis搭建分布式爬虫的开 ...

    6. iOS基本动画/关键帧动画/利用缓动函数实现物理动画效果

      先说下基本动画部分 基本动画部分比较简单, 但能实现的动画效果也很局限 使用方法大致为: #1. 创建原始UI或者画面 #2. 创建CABasicAnimation实例, 并设置keypart/dur ...

    7. 利用开源软件strongSwan实现支持IKEv2的企业级IPsec VPN,并结合FreeRadius实现AAA协议(下篇)

      续篇—— 利用开源软件strongSwan实现支持IKEv2的企业级IPsec VPN,并结合FreeRadius实现AAA协议(上篇) 上篇文章写了如何构建一个支持IKEv2的VPN,本篇记录的是如 ...

    8. php利用wsh突破函数禁用执行命令(安全模式同理)

      php利用wsh突破函数禁用执行命令(安全模式同理) 前提.需要服务器支持wsh.并知道php安装目录 但是php利用wsh执行命令是没有asp的权限高的.   突破代码 <?php $cmd= ...

    9. CocoaPods的安装及使用/利用开源库Diplomat实现分享及第三方登录/git的使用

      <<史上最简洁版本>> 1.gem sources -l查看 当前的源 //1.1 sudo -i..以下都是以管理员的身份来操作的 2.gem sources --remov ...

    随机推荐

    1. codejumper的跳转代码

      public void JumpToSource(vsCMPart location = vsCMPart.vsCMPartNavigate) { TextPoint startPoint = Ori ...

    2. pthread 学习系列 case2-- 使用互斥锁

      ref http://www.ibm.com/developerworks/cn/linux/thread/posix_thread1/index.html #include <pthread. ...

    3. mysql大表如何优化

      作者:哈哈链接:http://www.zhihu.com/question/19719997/answer/81930332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处 ...

    4. 找出现有Vector或ArrayList或数组中重复的元素&给现有Vector或ArrayList或数组去重

      //直接上代码: public static void main(String[] args) { List<Integer> list = new Vector<Integer&g ...

    5. iOS-自定义Log

      打印Log是一件非常消耗系统性能的事情,因此在发布时要把程序中的Log进行隐藏.以下是在iOS中自定义Log的代码 #ifdef DEBUG // 处于开发阶段 #define DJLog(...) ...

    6. linux学习笔记 2013-09-02

      1,解压一个tar.gz文件夹 tar -xvzf  filename.tar.gz 2,删除一个文件夹下所有的文件 rm -rf * 3,安装文件 sudo apt-get install XXX. ...

    7. 字符串模拟赛T1

      // source code from laekov for c0x17 #define PRID "bxjl" #include <cstdio> #include ...

    8. Rescue

      1039: Rescue Time Limit: 1 Sec  Memory Limit: 32 MBSubmit: 1320  Solved: 306 Description Angel was c ...

    9. HDU-1159 Common Subsequence 最长上升子序列

      Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...

    10. 解决ntp的错误 no server suitable for synchronization found

      当用ntpdate -d 来查询时会发现导致 no server suitable for synchronization found 的错误的信息有以下2个: 错误1.Server dropped: ...