原文地址
本文列出了 .NET 开源开发项目(open source developer projects)。意在包括对开发过程的所有方面有所帮组的项目。对于消费项目(consumer projects),请参阅 .NET开源消费项目清单。
下面按字母排序,并提供一行文字说明。GitHub/CodePlex(或其他)链接优先。
-
.NET 实现
- .NET Core - Core .NET 框架
- C# Native – 把 C# 编译成本地代码。
- Cosmos - C# 开源的管理操作系统,一个操作系统是“construction kit”。
- Fling OS - C# 操作系统 designed for people to learn low-level development from.
- Mono - .NET Framework 跨平台(Cross-platform)的实现。
- MOSA Project - 管理操作系统联盟项目 - C# Operating System.
- SharpLang – 把 C# & .NET 编译成本地机器码,使用 LLVM 作为后台。
-
平台
- Castle Project - Umbrella project for ActiveRecord, DynamicProxy, MonoRail, Windsor
- Catel - Application platform with IoC, logging, reflection and much more that serves as a base for applications that must be ready for future growth.
- Enterprise Web Library (EWL) - An extremely opinionated platform for web applications that trades off performance, scalability, and development flexibility for an ease of maintenance you won't find anywhere else. Enterprise Web Library site.
- KonfDB - Configuration Management as a Service for cross-platform, multi-tenant enterprise/hobby applications.
-
语言
- Boo - 一个类似 Python 的 .NET 语言,但它是静态类型(static typing),以及很多元编程(meta-programming)功能。
- ClojureCLR - Clojure 编程语言的 .NET 实现,构建在 DLR。
- Cobra - 整洁、高级语法(Boo/Python-like)。静态和动态绑定(Static and dynamic binding)。一级类支持单元测试和契约。用脚本执行编译的便利性。Lambda 表达式和闭包(closures)。扩展(Extensions)和混入(mixins)。
- Dynamic Language Runtime – 用 .NET 构建动态语言的工具。
- Eagle - Tcl 编程语言的一个 .NET 实现,构建在 CLR。
- Essence# - Essence# is a fully dynamic and highly polymorphic programming language which features pervasive message passing, pervasive dynamic and strong typing, pervasive and deep reflection and pervasive object orientation.
- F# - 一个成熟、开源、跨平台、functional-first 编程语言。是 ocaml 语言在 .NET 下的实现。
- F* - An ML-like language with a type system for program verification.
- IronPython - Python 编程语言的一个 .NET 实现,构建在 DLR。IronPython Site.
- IronRuby - Ruby 编程语言的一个 .NET 实现。构建在 DLR。IronRuby Site.
- IronScheme - A R6RS conforming Scheme-like implementation based on the Microsoft DLR.
- Irony - a development kit for implementing languages on .NET platform
- MoonSharp - A Lua interpreter and remote debugger, written entirely in C#, easily embeddable in any application running on .NET 3.5+ and Mono.
- Nemerle - A high-level statically-typed programming language which offers functional, object-oriented and imperative features and has a simple C# like syntax and a powerful meta-programming system.
- NiL.JS - A .NET implementation of the ECMAScript language and runtime.
- Phalanger - full-featured PHP runtime & compiler for .NET/Mono frameworks. Phalanger is modern open-source implementation of PHP, compatible with the vast array of existing PHP code.
- Roslyn (.NET Compiler Platform) - Open-source C# and Visual Basic compilers with rich code analysis APIs.
-
安全/ 识别管理
- Thinktecture IdentityManager
- Thinktecture IdentityServer
- SKGL - Serial Key Generating Library
-
Web CMS
- DNN (formerly DotNetNuke) - Web 内容管理平台(CMS)。
- N2CMS - Open source, lightweight, code-first CMS able to seamlessly integrate into any MVC project.
- Orchard - 一个聚焦社区内容的管理系统(community-focused Content Management System),构建在 ASP.NET MVC 平台。
- Piranha CMS - 对新的和现存的 ASP.NET MVC & WebPage 应用程序的轻量级 CMS 库。
- Suave - 一个轻量级 Web 服务以及一套操作路线流(route flow)和任务组合(task composition)的组合器。
- Umbraco - Web 内容管理平台(CMS)。
- WebSharper - Web 编程平台,包括一个把 F# 代码编译成 JavaScript 的编译器。
-
Web 框架
- Nancy - A lightweight, low-ceremony, framework for building HTTP based services on .NET and Mono.
- NemerleWeb - Web MVVM library for .Net. It uses reactive data model which allows creating rich internet applications.
-
ADO.NET 提供者
- Firebird .NET client - Firebird
- Npgsql - PostgreSQL
- System.Data.SQLite - SQLite
-
消息队列
- AzureNetQ - An easy to use .NET API for Azure Service Bus.
- EasyNetQ - An easy to use .NET API for RabbitMQ.
- Lime - 一个轻量级的消息队列库。
- RestBus - 一个 .NET 的简单异步消息和队列。
-
库
- Albedo - A .NET library targeted at making Reflection programming more consistent, using a common set of abstractions and utilities.
- Algorithmia - 算法和数据结构(Algorithms and Data structures)。
- AngleSharp - 尖括号解析库(Ultimate angle brackets parser library)。它解析 HTML5、MathML、SVG 和 CSS 以构造基于官方 W3C 规范的 DOM。
- ArcGIS.PCL - 调用 ArcGIS Server REST API 资源。也可以在 ArcGIS 功能与 GeoJSON 之间转换。
- Argument - Argument validation microframework that does one thing in the simplest way possible.
- AshMind.Extensions - A set of very conservative extension methods most of which closely follow naming and design patterns of .NET Base Class Library.
- AsyncCollections - A set of lock-free thread-safe collections designed to be used asynchronously.
- Bing.RestClient - 从一个统一的客户端访问 Bing REST APIs。
- BoxKite.Twitter – 针对 1.1 Twitter的API 的 Twitter .NET 客户端库,结合 REST API,用户流和搜索流。使用 Rx(Reactive Extensions)。
- Brighter - A Command Dispatcher and Command Processor library with support for Work or Task Queues over different MoM implementations such as RabbitMQ
- Cimbalino Toolkit - A set of useful and powerful tools that will help you build your Windows Platform applications.
- Coding4Fun Toolkit
- ColoredConsole - 向你的控制台添加一些颜色。
- ColorSharp - 处理颜色空间(color spaces )和光频谱(light spectrums)的库。
- ComparerExtensions - 使用自然语言语法(natural language syntax)构建 IComparer 和 IEqualityComparer 对象。
- Cricket - Actor 库。
- DiffSharp - 自动化差异库(Automatic Differentiation Library)。
- DotNetOpenAuth - Library that adds support for your site visitors to login with their OpenIDs by just dropping an ASP.NET control onto your page.
- DropboxRestAPI - DropBox .Net 客户端库。
- DynamicData – 赋予集合 Rx 的强大功能。
- ExtraLINQ – .NET 集合的各种扩展方法。
- FeatureToggle - Simple, reliable feature toggles in .NET.
- FluentBootstrap
- FluentConsole - 向控制台添加颜色的另一个方法(
FluentConsole.Red.Text().Green.Text())。
- FluentValidation - A small validation library for .NET that uses a fluent interface and lambda expressions for building validation rules.
- GongSolutions.Wpf.DragDrop - A drag'n'drop framework for WPF.
- GeckoFX - Mozilla's Gecko layout engine wrapper in .NET.
- HudlFfmpeg - A/V transcoding framework that helps build complex FFmpeg commands.
- JSON.NET - Popular high-performance JSON framework for .NET
- Kentor.AuthServices - A SAML2 Service Provider for .NET.
- LibGit2Sharp
- Lucene.Net
- MahApps.Metro - 创建 metro-style WPF 应用程序的一个工具。
- Math.NET Numerics - 提供科学和工程以及每天使用的数字计算的方法和算法。
- Mathos Core Libary - 提供金融、统计、模式识别(pattern recognition)等等方面数字计算的一个算法库。
- Mathos Parser - A simple parser for mathematical expressions before and at runtime.
- Mjolnir - Hystrix-inspired fault tolerance with circuit breakers and thread pools.
- MoreLINQ - LINQ to Objects is missing a few desirable features. This project will enhance LINQ to Objects with extra methods, in a manner which keeps to the spirit of LINQ.
- NAudio - 一个开源 .NET 音频(audio)和 MIDI 库。
- NetTopologySuite - A .NET port of the JTS Topology Suite.
- NHunspell - Spell Checker, Hyphenation an Theasaurus
- NModbus4 - Modbus 协议的实现。
- NodaTime - 针对 .NET 一个更好的日期和时间 API。
- NPOI - 针对 .NET 一个 Office 文件格式(xls, xlsx, docx)读/写库。
- OneDriveRestAPI - OneDrive .Net 客户端库,使用 REST API。
- OsmSharp - Mapping & Routing 库。
- PocketSharp
- PortableRest - Portable library for building cross-platform REST API Clients for .NET and Xamarin.
- RestSharp - 针对 .NET 简单的 REST 和 HTTP API 客户端。
- SharpMap - An easy-to-use mapping library for use in web and desktop applications
- SharpSnmpLib - An easy-to-use SNMP library for use on all platforms (.NET/Mono/Xamarin)
- Splat - A library to make things cross-platform that should be.
- SSH.NET - 一个 SSH, SCP 和 SFTP 客户端库。
- SuperSocket - An extensible socket server engine which supports .NET and Mono
- WebApiProxy - An automatic proxy provider for RESTful services built on ASP.NET Web API. Includes JavaScript & C# client generation.
- WebSocket4Net - 一个针对 .NET, Mono 和 Xamarin 的 C# websocket 客户端。
- WpfToolkit - Fork of the MS WPF Toolkit
- XamlEssentials - Collection of helpers for Microsoft's XAML platforms.
- Zlib.Portable - A Portable Class Library port of the Zlib library from http://dotnetzip.codeplex.com.
-
数据挖掘 / 数据提取 / 机器学习 / 人工智能
- AForge.NET – 为计算机视觉(Computer Vision)和人工智能(Artificial Intelligence)领域的开发人员和研究者设计的 C# 框架,包括图像处理(image processing)、神经网络(neural networks)、遗传算法(genetic algorithm)、机器学习(machine learning)、机器人(robotics )。
- Nepy - A collection of NLP parsers for .NET
- SharpNLP - SharpNLP is a collection of natural language processing tools written in C#
- Toxy - An data/text extraction framework for .NET, similar to Tika in Java.
-
图像 & 服务端图像处理
- DynamicImage - WPF-based server-side image rendering system - lots of visual effects implemented as high-performance shaders. Has URL api, several plugins available.
- ImageProcessor - A .NET Library For On-The-Fly Processing Of Images (GDI+ based).
- ImageResizer - Add commands to image URLs to get altered versions in milliseconds. Edit, filter, touch-up images in real-time. (multiple backends - FreeImage, C++/CLI, GDI+, WIC). 45+ plugins available.
- King.Azure.Imaging - Scalable image uploading and processing for Azure.
- MonoGame - MonoGame is a cross-platform, open-source implementation of the XNA Game Framework.
- .NET Image Processor - Extensible, chainable image processing library (GDI+ based).
- OpenTK - OpenTK is a low-level, cross-platform binding to OpenGL, OpenGL ES, OpenCL and OpenAL, available for Windows, Linux, Mac OS X, BSD, Android and iOS.
- SharpDX - SharpDX is a project delivering the full DirectX API for .NET on all Windows platforms.
-
日志
- Exceptionless - Provides real-time .NET error reporting for your ASP.NET, Web API, WebForms, WPF, Console, and MVC apps. It organizes the gathered information into simple actionable data that will help your app become exceptionless!
- ELMAH - ELMAH (Error Logging Modules and Handlers) is an application-wide error logging facility that is completely pluggable. It can be dynamically added to a running ASP.NET web application, or even all ASP.NET web applications on a machine, without any need for re-compilation or re-deployment.
- log4net - A tool to help the programmer output log statements to a variety of output targets.
- LogMaster4Net - It is a central log server which can organize your logs in different applications in a same place but have same log behaviors (loggers, appenders, levels and rules) like in the indepedent applications before.
-
Model-View-ViewModel (MVVM) 框架
- Caliburn Micro - A small, yet powerful framework, designed for building applications across all XAML platforms.
- Catel.MVVM - Catel is an application development platform with the focus on MVVM.
- MVVM Cross - A cross-platform mobile MVVM development framework.
- MVVM Extensions - MVVM cross platform (.NET FW 4.5, WPF, Windows Runtime/Phone) extensions for .NET with support for async commands, MVVM-friendly Object and Task with support for UI notification.
- MVVM Light Toolkit - A cross-platform desktop and mobile MVVM development framework.
- Okra App Framework - An MVVM framework for Windows Store applications including MVVM templates for Visual Studio.
- Radical - An infrastructure framework whose primary role is to help in the development of composite WPF/Silverlight/WP/WinRT applications based on the Model View ViewModel pattern.
- ReactiveUI - An MVVM framework that integrates with the Reactive Extensions for .NET to create elegant, testable User Interfaces that run on any mobile or desktop platform.
- Simple Mvvm Toolkit - Provides a simple framework and set of tools for getting up to speed quickly with applications based on the MVVM design pattern.
- WPF Application Framework (WAF) - A lightweight Framework that helps you to create well structured WPF Applications. It supports you in applying a Layered Architecture and the Model-View-ViewModel pattern.
-
工具
- Cake (C# Make) - A build automation system with C#/Roslyn driven build scripts.
- CppSharp - C/C++ bindings generation for .NET.
- CInject - A tool to inject your C#/VB.NET code into existing .NET assemblies and executables
- FAKE - Build automation system with capabilities which are similar to make and rake.
- Fody - Extensible tool for weaving .NET assemblies.
- Crawler-Lib Build Tools - A PowerShell based toolbox for automating the software build process, autmated testing and integration.
- FsEye - A visual object tree inspector for the F# Interactive.
- FsharpLint - Lint tool for F#.
- FsPickler - Serialization library that facilitates the distribution of .NET objects.
- GitLink - Command-line tool to make .NET open source accessible without the need for a symbols server
- GitVersion - Use convention to derive a SemVer product version from a GitFlow based repository.
- Glimpse - Providing real time diagnostics & insights to the fingertips of hundreds of thousands of developers daily.
- ILSpy - ILSpy is the open-source .NET assembly browser and decompiler.
- Mini Profiler - A simple but effective mini-profiler for .NET.
- Obfuscar - MSIL obfuscation utility for .NET assemblies.
- Outcomes.Net - Fluent wrapper that eliminates plumbing code around failure-prone functions.
- Paket - Dependency manager for .NET and Mono projmects, which is designed to work well with NuGet packages and also enables referencing files directly from GitHub repositories.
- Protobuf-net - A .NET implementation of protobuf, allowing you to serialize your .NET objects efficiently and easily.
- scriptcs - scriptcs makes it easy to write and execute C# with a simple text editor.
- Snoop WPF - Snoop - The WPF Spy Utility
- Sql Bulk Copy Sync
- Vagrant - Automated dependency resolution and dynamic assembly compilation framework.
- Waf DotNetPad - The Waf DotNetPad is a simple and fast code editor that makes fun program with C# or Visual Basic.
- Weighted Selector - Easy to use (but high performance!) weighted selection implementation.
- XDav - A .net server mudole for webdav standard.
- ZeroToNine - A tool for maintaining .NET Assembly versions across multiple files.
-
测试
- AutoFixture - An open source framework for .NET designed to minimize the 'Arrange' phase of your unit tests. Its primary goal is to allow developers to focus on what is being tested rather than how to setup the test scenario, by making it easier to create object graphs containing test data.
- canopy - A web testing framework.
- FakeItEasy - The easy mocking library for .NET.
- Fixie - A low-ceremony, convention-based testing framework with flexible customization.
- FsCheck - A tool for testing .NET programs automatically.
- moq - The most popular and friendly mocking framework for .NET
- NSubstitute - A friendly substitute for .NET mocking frameworks.
- NUnit - NUnit is a unit-testing framework for all .NET languages.
- tickspec - A lightweight Behaviour Driven Development (BDD) framework.
- TestStack.BDDfy - BDDfy is the simplest BDD framework to use, customize and extend!
- TestStack.FluentMvcTesting - Simple, terse, fluent unit testing for ASP.NET MVC Controllers.
- TestStack.Seleno - Seleno helps you write automated UI tests in the right way by implementing Page Objects and Page Components and by reading from and writing to web pages using strongly typed view models.
- TestStack.White - White is a framework for automating rich client applications based on Win32, WinForms, WPF, Silverlight and SWT (Java) platforms.
- xUnit - xUnit.net is a community-focused unit testing tool for the .NET Framework.
-
依赖注入
- Autofac - Autofac is an addictive Inversion of Control container for .NET 4.5, Silverlight 5, Windows Store apps, and Windows Phone 8 apps.
- Castle Windsor - A mature Inversion of Control container available for .NET and Silverlight
- DI Feature Tests - Tests that track commmon DI features among multiple containers
- dI.Hook - DI container that allows invocation using AOP
- DryIoc - DryIoc is small, fast, capable IoC Container for .NET
- fFastInjector - fFastInjector is a high-performing dependency injector, service locator, and/or IOC (inversion of control) container.
- Funq - A fast DI container you can understand.
- Grace - Grace is a feature rich Dependency Injection container in a portable class library
- Griffin - Inversion of control container with (almost) zero configuration
- HaveBox - HaveBox is a very fast and lightweight IoC containter. The goal is to keep it fast and light, and at the same time easy to use.
- Hiro - An ultra-lightweight, inversion of control container compiler framework
- IfInjector - High performance mobile micro-IoC container.
- LightCore - A lightweight dependency injection container that can be used as a service locator and despite its simplicity and ease boasts numerous features.
- LightInject - A ultra lightweight IoC container
- MicroSliver - MicroSliver is a micro, non-bloat, non-intimidating and speedy .NET (ASP.NET, Silverlight, RIA Services, WPF, Forms and Metro!)
- Mugen Injection - The MugeniInjection is a lightweight and fast managed IoC (Inversion of Control) and DI (Dependency Injection) with support for constructor, property and method call injection
- Ninject for Desktop - Dependency injector for .NET
- Ninject for Portable Class Libraries, Universal apps and Xamarin
- QuickInject - QuickInject is a Unity 3.5 based IoC container that aims to give the Unity container a performance advantage in basic scenarios.
- Simple Injector - Simple Injector is an easy-to-use Dependency Injection library for .NET 4+ that supports Silverlight 4+, Windows Phone 8, Windows 8 including Universal apps and Mono.
- Spring.NET - Spring.NET is an open source application framework that makes building enterprise .NET applications easier.
- StructureMap - StructureMap is a Dependency Injection / Inversion of Control tool for .Net that can be used to improve the architectural qualities of an object oriented system by reducing the mechanical costs of good design techniques.
- StyleMVVM - Style MVVM is a toolkit designed for the Windows Store platform around the idea of being light weight and fast.
- TinyIoC - An easy to use, hassle free, Inversion of Control Container for small projects, libraries and beginners alike.
- Unity Container - The Unity Container (Unity) is a lightweight, extensible dependency injection container with optional support for instance and type interception.
-
数据访问
- Dapper - Dapper is a single file you can drop in to your project that will extend your IDbConnection interface.
- Eggado - Eggado takes generics, lambdas, expression trees, dynamic methods and DLR and uses them to breathe new life into data access using good old ADO.NET. It's for folks who can live with a SQL dialect.
- King.Mapper - High performance model mapping.
- linq2db - Lightweight ORM and LINQ provider with support for various databases including MS SQL, PostgreSQL, Oracle and MySQL
- NHibernate - Object Relational Mapper
- Simple Data - A light-weight, dynamic data access component for C# 4.0.
- Sqlite-net - Simple, powerful, cross-platform SQLite client and ORM.
- NMEA Parser - Library for handling NMEA message in Windows Desktop, Store, Phone and Xamarin (Android + iOS), coming from files, Bluetooth, serial port or any stream.
- Neyro.Data - Tiny, simple and fast ORM.
- StackExchange.Redis
- SQL LocalDB Wrapper - SQL LocalDB Wrapper is an assembly providing interop with the SQL LocalDB native API from managed code using .NET APIs.
- LINQ2DynamoDB - A type-safe data context for AWS DynamoDB with LINQ, in-memory caching and OData support.
-
游戏
- Duality - An Open Source 2D Game Engine + Visual Editor written entirely in C#.
- MonoGame - One framework for creating powerful cross-platform games.
- OpenRA - An open-source implementation of the Command & Conquer: Red Alert engine using .NET/Mono and OpenGL.
- Paradox - Paradox is a versatile and engaging game engine.
- WaveEngine - A powerful component based game engine for desktop and mobile platforms using C#.
-
UI 和 Control 库
- Callisto - 针对 WinRT 应用程序的 UI 控制工具。
- Dragablz - A tearable TabControl for WPF which also provides easy-to-use and implement docking features.
- Eto - Cross platform GUI Toolkit for desktop and mobile apps
- Material Design in XAML Toolkit - WPF/XAML resources, styles & templates for creating applications using Material Design
- Mono XWT - A cross-platform UI toolkit for creating desktop apps
-
Windows 服务
- King.Service - 针对 Azure 和 Windows 的任务调度。
- TopShelf - An easy service hosting framework for building Windows services using .NET.
-
调度
- Hangfire - An easy way to perform fire-and-forget, delayed and recurring tasks inside ASP.NET applications.
- Quartz.Net - A full-featured, open source job scheduling system that can be used from smallest apps to large scale enterprise systems.
-
部署
- DropkicK - A fluent deployment library for Windows applications
- RoundHouse - RoundhousE is a Database Migration Utility for .NET using sql files and versioning based on source control
-
服务总线(Services Bus)
- King.Service.ServiceBus - 针对 Azure 和 Windows Servers 的任务调度:服务总线(Service Bus)。
- Warewolf Easy Service Bus - An open source easy to use service bus, built on numerous .Net technologies including WF (Windows Workflow Foundation), SignalR and WPF.
-
分布式缓存和计算
- CacheAdapter - a .Net library allows developers to use unified-implemented cahce provider
- Dache - An open source distributed caching service, built on .NET 4.0 and using TCP sockets for communication.
-
Windows 工作流
- Workflow Extractor - Document Windows Workflow logic into a Word document or Excel sheet.
This list is just a starting point - also take a look at all the projects on CodePlex and on GitHub Trending C#.
@quozd hosts an Awesome .NET! list. Also worth checking out.
Thanks to @slodge for providing the initial list.