. NET platform framework,. net platform framework
Distributed cache framework:
Microsoft Velocity: Microsoft's own distributed cache service framework.
Memcahed: A distributed high-speed cache system is currently used by many websites to speed up Website access.
Redis: A high-performance KV database. The emergence of Memcached largely compensates for some shortcomings of Memcached.
EnyimMemcached: Access Memcached's best. NET client and integrate a good distributed balancing algorithm.
Recommended open-source. NET systems:
OXITE: Microsoft ASP. net mvc Case demonstration framework.
PetShop: Microsoft ASP. Net pet store.
Orchard: An open-source MVC Blog system outside China.
SSCLI: Open Source Code of Microsoft in the NET Framework 2.0 era.
DasBlog: A foreign Blog system based on ASP. NET.
BlogEngine. NET: A free and open-source blog system outside China.
Dotnetnuke. NET: A set of excellent open-source portal website Programs Based on ASP. NET.
Discuz. NET: Open-Source Forum community system in China.
NopCommerce and Aspxcommerce: A high-quality open-source B2C website system outside China.
JumboTCMS and DTCMS: Two open-source website management systems in China:
Log exception handling:
Log4Net. dll: Lightweight free open-source. NET logging framework.
Enterprise Library Log Application Black: Microsoft enterprise database log record.
Elmah: Implements the most popular ASP. NET application exception logging framework.
NLog: It is a simple and flexible log recording library with higher performance than Log4Net, and is difficult to use and maintain.
About NoSQL databases:
MongoDB: Distributed File storage database.
Membase: A new heavyweight member of the family.
Automatic task scheduling framework
Quartz. NET: Open-source Job Scheduling and automatic job framework.
Topshelf: Another open-source framework for creating Windows Services
Dependency injection IOC container framework:
Unity: The IOC dependency injection framework developed by the Microsoft patterns & practicest team and supports cross-cutting concerns of AOP.
MEF(Managed Extensibility Framework): A Framework used to expand. NET applications. It can be used to develop plug-in systems.
Spring. NET: Dependency injection, Aspect-oriented programming (AOP), data access abstraction, and ASP. NET integration.
Autofac: The most popular dependency injection and IOC framework, lightweight and high-performance, has almost no intrusion into project code.
PostSharp: Implements static AOP cross-cutting concerns. It is easy to use and has powerful functions, so there is no need to change the method for intercepting the target.
Ninject:. NET-based lightweight open-source dependency injection IOC framework
Common ORM frameworks:
EF(ADO. NET Entity Framework): An ORM Framework developed by Microsoft Based on ADO. NET.
Nhib.pdf: A lightweight ORM framework for. NET environments.
SqlMapper. cs: Common C # Database category for small items.
AutoMapper: The popular Object ing framework can reduce a lot of hard coding, be small and flexible, and provide acceptable performance.
SubSonic: Excellent open-source ORM ing framework, and provides code generators that meet your own needs.
FluentData: Open-source lightweight ORM framework for chained query based on Fluent APIs.
Dapper: Lightweight, high-performance, EMIT-based ORM framework.
EmitMapper: The high-performance ORM framework uses EMIT to dynamically generate IL code at runtime, rather than reflection.
Format and data type conversion
Newtonsoft. Json: Currently, the most popular JSON serialization library in. NET development provides the foundation for the new WebApi library.
System. JSON. dll: JSON serialization component developed by Microsoft (which needs to be downloaded separately)
DataContractJsonSerializer and DataContractXmlSerializer: Serialization tool used by Microsoft in WCF.
JavaScriptSerializer: By default, Microsoft provides a JSON Formatter for WEB developers.
ITextSharp, PDFsharp, and PDF. NET: A component that processes and generates PDF documents through. NET.
SharpZipLib. dll: Free open-source ZIP and GZIP file extraction components.
Math. NET: Powerful mathematical operations, Calculus, solving equations, and scientific operations.
DocX: You do not need to install the word software. Use C # To operate the word file.
SharpSerializer: Open source XML and, binary, JSON, compression and Optimization Framework.
Reflection and Dynamic Language
Clay dynamic: The open-source dynamic Language dynamic framework allows you to create objects in JavaScript format.
ExposedObject: Access private members outside the class through dynamic Language dynamic.
PrivateObject: A class of private members inside the external call class in the Microsoft unit test framework.
Cross-platform and runtime Solutions
MONO. NET: Cross-platform. NET runtime environment makes cross-platform. NET runtime possible.
DotGnu Portable. NET: Similar to MONO. NET cross-platform runtime.
Phalanger: Compile PHP into. NET to implement PHP and. NET interoperability.
VMDotNet: The. NET runtime used by China Mobile Feixin.
Unity3D: Opportunities supported by Microsoft C # And the JavaScript cross-platform game development framework.
Cassini, IIS Express, and Cassinidev: Open-source ASP. NET execution environment.
Katana: Non-IIS-hosted ASP. NET and MVC implemented by Microsoft Based on the OWIN specification.
IKVM. NET: A. NET-based java vm that allows JAVA to run on. NET.
WEB Development and Design
Jumony Core: HTML engine developed Based on. NET.
Microsoft. mshtml. dll, Winista. HtmlParser. dll, and HtmlAgilityPack. dll: Parse the HTML document processing framework.
JavaScript. NET and ClearScript (Microsoft): JavaScript engine developed Based on. NET.
NCrawler: Open-source web crawler software of its HTML processing engine htmlagilitypack.
AntiXSS: The open-source class library officially used by Microsoft to prevent cross-site XSS script intrusion attacks. It uses the whitelist mechanism for content encoding.
YUICompressor. NET, Microsoft Ajax Minifier, and Google Closure Compiler: JavaScrip and CSS compressors.
NancyFx: Is a good lightweight open-source. net web framework. If you want to quickly create a simple WEB application.
AspNetPager: Well-known ASP. NET paging controls in China, supporting multiple paging methods.
NOPI. dll: Export the plug-in of the excel (based on the soft openxml (nopi.css. dl set the style through css)
Enterprise Library: Best Practice Components developed by Microsoft for enterprise-level applications.
PowerCollections: A collection of advanced open-source sources written by a foreign cool-man.
Mobile Internet and cloud computing
PushSharp: Push messages to various mobile platforms through. NET.
Mono for Android: Use the. NET language to develop Android applications:
MonoTouch: Use the. NET language to develop iOS applications.
PhoneGap and AppCan: Cross-platform HTML5-based mobile development platform.
Cordova: The open-source project contributed by PhoneGap to Apache is the core engine driving PhoneGap.
Network communication and network protocols
SuperSocket: Based on the. NET lightweight and scalable Socket development framework.
SuperWebSocket: Use. NET to implement the TML5 WebSocket framework.
XProxy: Supports the basic proxy assembly of plug-ins, built-in NAT, encryption and decryption, reverse, direct and indirect proxy.
Graphics and Image Processing Framework
Paint. NET: Small, flexible, and powerful Open-Source graphics processing projects based on. NET.
Imagemagick. NET: C # is used to encapsulate Imagemagick, an open-source image processing component.
Skimpt: Screen Software Based on. NET open source.
ImageGlue. NET: Commercial image processing components support a large number of formats.
Sprite and Image Optimization Framework: Microsoft CSS genie, which combines a large image and CSS style with multiple images.
Desktop Application Framework
DevExpress: A world-renowned desktop application UI control library.
Prism: The MVVM framework developed by Microsoft for WPF and Silverlight is separated from the UI coupling for complex business functions by means of modular functions.
WPFToolkit and Fluent Ribbon Control Suite: Development of Ribbon menus similar to Office.
Testing and Performance Evaluation
Faker. Net: A framework for generating large volumes of test data.
Nunit: A lightweight unit test framework.
Moq: A very popular Mock framework that supports LINQ and is flexible and high-performance.
XUnit: Better unit test framework than NUnit. Upgrade Nunit framework of release version.
MiniProfiler and Glimpse: Two performance event monitoring frameworks based on MVC.
Transaction and distributed transaction support
KtmIntegration: An open-source transaction class that supports NTFS file systems.
NET Transactional File Manager: Added transaction support for file system operations (copy, move, and delete.
Word Segmentation, full-text retrieval, and search engines
E.net: Popular high-performance full-text index library, which can be used to provide powerful search functions for various types of information.
Lucene. Net. Analysis. PanGu: Supports the latest version of Lucene. Net pangu Chinese Word Segmentation extension library.
Data verification component arrangement
FluentValidation for. NET: The component is verified by the Fluent interface based on the method chain of the LINQ expression.
Microsoft. Practices. EnterpriseLibrary. Validation. dll: Microsoft Enterprise Library verification block.
CuttingEdge. Conditions: A contract programming component based on the Fluent interface method.
DotNetOpenAuth: Enable the website to support authentication such as OpenID, OAuth, and InfoCard.
Open-source chart statistics control:
Visifire: A set of well-performing WPF chart controls that support 3D drawing, curves, line lines, slice, ring, and trapezoid.
SparrowToolkit: A set of WPF chart controls that support drawing dynamic curves and oscilloscope, CPU usage, and waveforms.
DynamicDataDisplay: Microsoft open-source WPF dynamic graph, line chart, bubble chart, and heatmap.
ScalableMessage QueueCategory. For example, Kafka is a distributed Message System Based on publish/subscribe. The main design objectives are as follows:
The time complexity is O (1) to provide message persistence capabilities. Even for TB-level or higher data, it can ensure constant time complexity access performance.
High throughput. Even on very cheap commercial machines, a single machine can support transmission of over messages per second.
Supports message partitioning and distributed consumption between Kafka servers, and ensures ordered message transmission within each Partition.
Supports both offline and real-time data processing.
Scale out: supports Horizontal Online scaling.
RabbitMQ
RabbitMQ is an open-source Message Queue written in Erlang. It supports many protocols, such as AMQP, XMPP, SMTP, and STOMP. It is also very heavyweight and more suitable for enterprise-level development. At the same time, the Broker architecture is implemented, which means that messages are queued in the central queue before being sent to the client. Good support for routing, Server Load balancer, and data persistence.
Redis
Redis is a Key-Value-based NoSQL database, which is very active in development and maintenance. Although it is a Key-Value database storage system, it supports the MQ function, so it can be used as a lightweight queue service. For RabbitMQ and Redis, 1 million operations are performed each time, and the execution time is recorded every 0.1 million operations. The test data is divided into four data sizes: 128 Bytes, 512 Bytes, 1 K, and 10 K. The experiment shows that when the data is in the queue, the Redis performance is higher than RabbitMQ when the data volume is relatively small, and if the data size exceeds 10 K, Redis is slow and unbearable; when the team is out, regardless of the data size, redis has excellent performance, while RabbitMQ's team-out performance is far lower than Redis.
ZeroMQ
ZeroMQ claims to be the fastest message queue system, especially for scenarios requiring high throughput. ZeroMQ can implement advanced/complex queues that RabbitMQ is not good at, but developers need to combine multiple technical frameworks by themselves. The technical complexity is a challenge to the success of this MQ application. ZeroMQ has a unique non-middleware mode. You do not need to install or run a Message Server or middleware because your application will assume this server role. You only need to reference the ZeroMQ library, you can use NuGet to install, and then you can happily send messages between applications. However, ZeroMQ only provides non-persistent queues. That is to say, if the server goes down, data will be lost. In versions earlier than Storm 0.9.0 of Twitter, ZeroMQ is used by default for data stream transmission (Storm 0.9 supports both ZeroMQ and Netty as transmission modules ).
ActiveMQ
ActiveMQ is a subproject under Apache. Similar to ZeroMQ, ZeroMQ can implement queues by proxy and point-to-point technology. Similar to RabbitMQ, it can efficiently implement advanced application scenarios with a small amount of code.
Kafka/Jafka
Kafka is a subproject under Apache and a high-performance cross-language distributed publishing/subscription Message Queue System. Jafka is incubated on Kafka, an upgraded version of Kafka. It has the following features: Fast persistence, message persistence under the system overhead of O (1); high throughput, on a common server, the throughput can reach/s. In a fully distributed system, brokers, Producer, and Consumer automatically support distributed and load balancing; it supports parallel loading of Hadoop data. It is a feasible solution to limit the real-time processing of log data and offline analysis systems like Hadoop. Kafka unifies online and offline message processing through the parallel loading mechanism of Hadoop. Compared with ActiveMQ, Apache Kafka is a lightweight message system. In addition to its excellent performance, it is also a distributed system that works well.