.net開源框架簡介和通用技術選型建議

.net體系

.net core

.net 類庫

asp.net mvc

asp.net webapi

asp.net core

EF

跨平臺和運行時解決方案(解決方案)

Katana:微軟基於OWIN規範實現的非IIS寄宿ASP.NET和MVC等。

MONO.NET:跨平臺的.NET運行環境,讓.NET跨平臺運行成為可能。

Unity3D:微軟大力支持的機遇C#和JavaScript的跨平臺遊戲開發框架。

Cassini、IIS Express和Cassinidev:開源的ASP.NET執行環境。

IKVM.NET:基於.NET的JAVA虛擬機,讓JAVA運行在.NET之上。

Enterprise Library:微軟針對企業級應用開發的最佳實踐組件。

架構思想框架

PetShop:微軟ASP.NET寵物商店。 分層思想的代表

ABP ASP.NET Boilerplate Project (ASP.NET樣板項目) 。 領域驅動思想代表

eShopOnContainers:微服務架構和Docker容器的一個簡單的.Net Core的應用。微服務思想代表

依賴注入IOC容器框架(解耦)

Unity:微軟patterns&practicest團隊開發的IOC依賴注入框架,支持AOP橫切關注點。

Spring.NET:依賴注入、面向方面編程(AOP)、數據訪問抽象,、以及ASP.NET集成。

Autofac:最流行的依賴注入和IOC框架,輕量且高性能,對項目代碼幾乎無任何侵入性。

Ninject:基於.NET輕量級開源的依賴注入IOC框架

數據訪問和ORM框架(數據訪問層,持久化層)

EF(ADO.NET Entity Framework):微軟基於ADO.NET開發的ORM框架。

Dapper:輕量級高性能基於EMIT生成的ORM框架。

EmitMapper:性能較高的ORM框架,運行時通過EMIT動態生成IL代碼,並非採用反射機制。

FluentData:開源的基於Fluent API的鏈式查詢ORM輕量級框架。

SqlMapper.cs:用於小項目的通用的C#數據庫訪問類。

SqlHelper.cs:用於小項目的通用的C#數據庫訪問類。

EnterpriseLibray:微軟企業庫,特點是快速開發,融合了微軟工程師多年的經驗。

Nhibernate:面向.NET環境的輕量級的ORM框架。

數據間格式轉換

Newtonsoft.Json:目前.NET開發中最流行的JSON序列化庫,為新版的WebApi庫提供基礎。

AutoMapper:流行的對象映射框架,可減少大量硬編碼,很小巧靈活,性能表現也可接受。

實體類和DataTable的轉換 :反射,表達式樹,emit三種中,三選一。

Redis和數據連接驅動框架

ServiceStack.Redis:

StackExchange.Redis:

csredis:

MySQL Connector:完全託管的 MySQL ADO.NET 數據庫提供程序、連接器

中間件與消息隊列

RabbitMQ.NET:AMQP 客戶端的 C# 實現

NServiceBus:.NET 平臺下最流行的服務總線

全文搜索和爬蟲框架

Lucene.net:流行高性能的全文索引庫,可用於為各類信息提供強大的搜索功能。

Elasticsearch.Net:操作ES

日誌記錄框架

Log4Net.dll:輕量級的免費開源.NET日誌記錄框架。

NLog:是一個簡單靈活的日誌記錄類庫,性能比Log4Net高,使用和維護難度低。

任務計劃調度

Quartz.NET:開源的作業調度和自動任務框架。

辦公系列框架(文檔操作)

NPIO.dll:該項目是 .NET 版本的 POI 項目,原始的 Java 版本位於http://poi.apache.org/ 。

DocX:不需要安裝word軟件,通過C#操作word文件。

Open XML SDK:Open XML SDK 是一個開源庫,用於處理 Open XML 文檔

ITextSharp:iText 是一個PDF庫,用於創建、修改、檢查和維護 (PDF)格式的文檔

語法解析和模板引擎(Template Engine)

RazorEngine:基於微軟 Razor 解析器引擎的開源模板引擎。官網

Nustache:無邏輯模板的開源庫。官網

DotLiquid:Ruby Liquid 模板語言的 C# 移植版本

MarkdownSharp:C# 實現的開源 Markdown 處理器,在 Stack Overflow 中使用

JavaScript.NET和ClearScript(微軟出品):基於.NET開發的JavaScript引擎

ExCSS:C# 的 CSS3 解析器開發庫

HtmlAgilityPack:一個靈活的 HTML 解析器,可以對 DOM 進行讀寫,支持 XPATH 和 XSLT

通訊框架(網絡)

SignalR:ASP.NET 庫,開發者可以通過它在 web 應用程序中非常簡單地實現實時功能

Helios:一套高性能的Socket通信中間件

壓縮框架

SharpZipLib:一個 Zip、GZip、Tar 和 BZip2 的類庫,完全由 C# 編寫,面向 .NET 平臺

安全性框架

OAuth:超輕量級 OAuth 1.0a 簽名生成庫,C# 編寫

ASP.NET Identity:用於 ASP.NET 應用程序的新身份系統。

IdentityServer:可擴展的 OAuth2 和 OpenID 連接提供程序框架

HashLib:HashLib 包含了幾乎所有你見過的哈希算法,它幾乎支持所有東西並且非常容易使用

圖像處理框架

Paint.NET:基於.NET小巧靈活強大的圖形處理開源項目。

NGraphics:NGraphics 是一個 .NET 跨平臺矢量圖形渲染庫

DynamicImage:高性能開源圖片處理庫,用於 ASP.NET

人工智能與數學框架

Math.NET:強大的數學運算、微積分、解方程和科學運算。

Accord.NET:機器學習框架,包含了音頻和圖像處理的庫(計算機視覺、計算機聽覺、信號處理和統計)

移動互聯網和雲計算

PushSharp:通過.NET向各種移動平臺推送消息。

mono for android:用.NET語言開發安卓應用:

MonoTouch:用.NET語言開發IOS應用。

PhoneGap和AppCan:跨平臺基於HTML5的移動開發平臺。

Cordova:PhoneGap貢獻給Apache後的開源項目,是驅動PhoneGap的核心引擎。

桌面程序框架

DevExpress:一個全球知名的桌面應用程序UI控件庫。

Prism:微軟開發的針對WPF和Silverlight的MVVM框架,通過功能模塊化的思想,來講複雜的業務功能和UI耦合性進行分離。

WPFToolkit 和 Fluent Ribbon Control Suite:開發類似於Office風格的Ribbon菜單。

測試(Testing)

Faker.Net:方便生成大批量測試數據的框架。

包管理

NuGet:.NET 包管理器。官網

MyGet:為 NuGet、NPM、Bower 和 VSIX 提供程序包倉庫宿主,同樣提供 CI 服務。

Paket:.NET 的一個包依賴管理器,支持 NuGet 包和 GitHub 倉庫。

編譯器和IDE框架

ILSpy:ILSpy 是一個開源的 .NET 程序集查看器和反編譯器

Visual Studio Code:非常棒的編輯器,來自微軟,基於 GitHub Atom

MSBuild也是一個MIT License的開源軟件,可以在Github上看到它的 倉庫 。

Visual Studio 插件

Resharper:Visual Studio 開發人員生產力工具

打包發佈和自動構建持續集成和升級框架

Wix Toolset:強大的工具集,用於創建你自己的 Windows 安裝程序

Squirrel:Squirrel 即是一套工具也是一個類庫,可以無安全管理 Windows 桌面程序的安裝和更新

MSBuild:微軟構建引擎(MSBuild)是 .NET 和 Visual Studio 的構建平臺

Psake:基於 .NET 的自動化構建工具,使用 PowerShell 編寫

成品應用系統框架

Orchard:國外一個MVC開源的博客,內容管理CMS系統。

.net開源框架簡介和通用技術選型建議

技術選型或技術預研

選型考慮三要素:功能性,性能,穩定性

功能性:滿足現在和可預期的未來

性能:考慮現在和未來,明白上限

穩定性

  • 1.主流,團隊中詢問大家用過的多不
  • 2.坑少,資料多,千錘百煉
  • 3.不要讓本已滿負荷的小小團隊,再去趟雷,你和你的技術團隊有那個實力嗎第一個吃螃蟹。

如果有多個優秀待選?

團隊人員:

有很多優秀的可選,看團隊的熟練度

個人素質:

廣度決定能知道

深度決定知道好

不用並不代表不關注

選不好,會造成進退兩難,人馬疲憊

關於以後

不要讓以後,忽略了當下。

太多的以後可能讓你走不出當下。

真的有以後嗎。

想做好,少不了以後。

相關推薦

推薦中...