Home >Backend Development >C#.Net Tutorial >Summarize some commonly used frameworks on the .NET platform
Microsoft Velocity: Microsoft’s own distributed cache service framework.
Memcahed: A distributed caching system that is currently used by many websites to improve website access speed.
Redis: It is a high-performance KV database. Its emergence largely compensates for the shortcomings of Memcached in some aspects.
EnyimMemcached: Access the best .NET client of Memcached, integrating a good distributed balancing algorithm.
OXITE: Microsoft ASP.NET MVC case demonstration framework.
PetShop: Microsoft ASP.Net pet store.
Orchard: A foreign MVC open source blog system.
SSCLI: Microsoft’s open source code in the NET Framework 2.0 era.
DasBlog: A foreign blog system based on ASP.NET.
BlogEngine.NET: A foreign free and open source blog system.
Dotnetnuke.NET: A very excellent open source portal program based on ASP.NET.
Discuz.NET: Domestic open source forum community system.
nopCommerce and Aspxcommerce: A high-quality foreign open source B2C website system.
JumboTCMS and DTCMS: Two domestic open source website management systems:
Log4Net.dll: Lightweight free open source .NET logging framework.
Enterprise Library Log Application Black: Microsoft Enterprise Library logging.
Elmah: Implements the most popular ASP.NET application exception logging framework.
NLog: It is a simple and flexible logging library with higher performance than Log4Net and is easier to use and maintain.
MongoDB: Distributed file storage database.
Membase: A new heavyweight member of the family.
Quartz.NET: Open source job scheduling and automatic task framework.
Topshelf: Another open source framework for creating Windows services
Unity: Microsoft The IOC dependency injection framework developed by the patterns&practicest team supports AOP cross-cutting concerns.
MEF (Managed Extensibility Framework): It is a framework used to extend .NET applications and can 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, with almost no intrusion into project code.
PostSharp: Implements static AOP cross-cutting concerns, is simple to use, powerful, and does not require any changes to the target interception method.
Ninject: Dependency injection IOC framework based on .NET lightweight open source
EF (ADO.NET Entity Framework): Microsoft's ORM framework developed based on ADO.NET.
Nhibernate: A lightweight ORM framework for .NET environment.
SqlMapper.cs: A common C# database access class for small projects.
AutoMapper: A popular object mapping framework that can reduce a lot of hard coding, is compact and flexible, and has acceptable performance.
SubSonic: An excellent open source ORM mapping framework, and also provides a code generator that meets your own needs.
FluentData: Open source chain query ORM lightweight framework based on Fluent API.
Dapper: A lightweight and high-performance ORM framework generated based on EMIT.
EmitMapper: A high-performance ORM framework that dynamically generates IL code through EMIT during runtime instead of using a reflection mechanism.
Newtonsoft.Json: Currently the most popular JSON serialization library in .NET development, providing the basis for the new version of the WebApi library.
System.JSON.dll: JSON serialization component developed by Microsoft (needs to be downloaded separately)
DataContractJsonSerializer and DataContractXmlSerializer: Microsoft in WCF The serializer used in .
JavaScriptSerializer: Microsoft’s default JSON formatter for WEB developers.
iTextSharp, PDFsharp and PDF.NET: Components for processing and generating PDF documents through .NET.
SharpZipLib.dll: Free and open source ZIP and GZIP file decompression component.
Math.NET: Powerful math operations, calculus, equation solving, and scientific operations.
DocX: No need to install word software, operate word files through C#.
SharpSerializer: Open source XML, binary, JSON, compression and optimization framework.
Clay dynamic: The open source dynamic language dynamic framework allows you to create objects in a JavaScript-like manner.
ExposedObject: Access private members outside the class through dynamic language.
PrivateObject: A class in the Microsoft unit testing framework that facilitates external calls to private members within a class.
MONO.NET: Cross-platform .NET running environment makes it possible to run .NET cross-platform.
DotGnu Portable.NET: A cross-platform runtime similar to MONO.NET.
Phalanger: Compile PHP into .NET to realize interoperability between PHP and .NET.
VMDotNet: The .NET runtime used by China Mobile Fetion.
Unity3D: A cross-platform game development framework for C# and JavaScript that is strongly supported by Microsoft.
Cassini, IIS Express and Cassinidev: Open source ASP.NET execution environment.
Katana: Microsoft's non-IIS hosting ASP.NET and MVC based on the OWIN specification.
IKVM.NET: A Java virtual machine based on .NET that allows JAVA to run on .NET.
Jumony Core: HTML engine developed based on .NET.
Microsoft.mshtml.dll, Winista.HtmlParser.dll and HtmlAgilityPack.dll: Framework for parsing and processing HTML documents.
JavaScript.NET and ClearScript (produced by Microsoft): JavaScript engine developed based on .NET.
NCrawler: Open source web crawler software with its HTML processing engine htmlagilitypack.
AntiXSS: Microsoft’s official open source library to prevent cross-site XSS script intrusion attacks. It encodes content through a whitelist mechanism.
YUICompressor.NET, Microsoft Ajax Minifier and Google Closure Compiler: JavaScript and CSS compressors.
NancyFx: It is a good lightweight open source .NET WEB framework. If you want to make a simple WEB application quickly.
AspNetPager: A well-known domestic ASP.NET paging control that supports multiple paging methods.
NOPI.dll: Plug-in for exporting Excel reports (implemented based on Microsoft OpenXml) (nopi.css.dl sets the style through css)
Enterprise Library: Microsoft’s best practice components for enterprise application development.
PowerCollections: An advanced open source collection written by a talented person abroad.
PushSharp: Push messages to various mobile platforms through .NET.
mono for Android: Use .NET language to develop Android applications:
MonoTouch: Use .NET language to develop iOS applications.
PhoneGap and AppCan: Cross-platform mobile development platform based on HTML5.
Cordova: The open source project that PhoneGap contributed to Apache is the core engine that drives PhoneGap.
SuperSocket: A lightweight and extensible Socket development framework based on .NET.
SuperWebSocket: Implement TML5 WebSocket framework through .NET.
XProxy: A basic proxy assembly that supports plug-ins, with built-in NAT, encryption and decryption, reverse, direct and indirect proxies.
Paint.NET: A small, flexible and powerful graphics processing open source project based on .NET.
Imagemagick.NET: Use C# to encapsulate the open source image processing component Imagemagick.
Skimpt: Screen capture software based on .NET open source.
ImageGlue.NET: Commercial image processing component, supporting a lot of formats.
Sprite and Image Optimization Framework: Microsoft CSS sprite, combine multiple images into one large image and CSS styles.
DevExpress: A world-renowned UI control library for desktop applications.
Prism: The MVVM framework developed by Microsoft for WPF and Silverlight uses the idea of functional modularization to separate complex business functions and UI coupling.
WPFToolkit and Fluent Ribbon Control Suite: Develop an Office-style Ribbon menu.
Faker.Net: A framework that facilitates the generation of large batches of test data.
Nunit: A lightweight unit testing framework.
Moq: A very popular Mock framework, supports LINQ, is flexible and high-performance.
xUnit: A better unit testing framework than NUnit, an upgraded and improved version of the Nunit framework.
MiniProfiler and Glimpse: Two performance event monitoring frameworks based on MVC.
KtmIntegration: A transactional open source class that supports the NTFS file system.
NET Transactional File Manager: Add transaction support for file system operations (copy, move and delete).
Lucene.net: A popular and high-performance full-text index library that can be used to provide powerful search functions for all types of information.
Lucene.Net.Analysis.PanGu: Supports the latest version of Lucene.Net’s Pangu Chinese word segmentation extension library.
FluentValidation for .NET: Fluent interface validation component based on LINQ expression method chain.
Microsoft.Practices.EnterpriseLibrary.Validation.dll: Microsoft Enterprise Library Validation block.
CuttingEdge.Conditions: A contract programming component based on the Fluent interface method.
DotNetOpenAuth: Let the website have the ability to support OpenID, OAuth, InfoCard and other authentication.
Visifire: A set of very good WPF chart controls that supports 3D drawing, curves, polylines, sectors, rings and trapezoids.
SparrowToolkit: A set of WPF chart controls that supports drawing dynamic curves and can draw oscilloscopes, CPU usage and waveforms.
DynamicDataDisplay: Microsoft’s open source WPF dynamic curve charts, line charts, bubble charts and heat maps.
Can expand the Message queue category, such as: Kafka is a distributed, publish/subscribe based messaging system. The main design goals are as follows:
Provide message persistence capabilities with a time complexity of O(1), and ensure constant time complexity access performance even for data above TB level.
High throughput rate. Even on very cheap commercial machines, a single machine can support the transmission of more than 100K messages per second.
Supports message partitioning and distributed consumption between Kafka Servers, while ensuring the sequential transmission of messages within each Partition.
Supports both offline data processing and real-time data processing.
Scale out: Support online horizontal expansion.
RabbitMQ
RabbitMQ is an open source message queue written in Erlang. It supports many protocols: AMQP, XMPP, SMTP, STOMP. Because of this, It is 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. It has good support for routing, load balancing or data persistence.
ZeroMQ is known as the fastest message queue system, especially for high throughput demand scenarios. ZeroMQ can implement advanced/complex queues that RabbitMQ is not good at, but developers need to combine multiple technical frameworks themselves. The technical complexity is a challenge to the successful application of MQ. ZeroMQ has a unique non-middleware model, you do not need to install and run a message server or middleware, because your application will play the role of this server. You just need to simply reference the ZeroMQ library, which can be installed using NuGet, and then you can happily send messages between applications. But ZeroMQ only provides non-persistent queues, which means that if it goes down, data will be lost. Among them, Twitter's Storm versions before 0.9.0 used ZeroMQ as the data stream transmission by default (Storm supports both ZeroMQ and Netty as transmission modules starting from version 0.9).
ActiveMQ
ActiveMQ is a sub-project under Apache. Similar to ZeroMQ, it can implement queues with broker and peer-to-peer technology. At the same time, similar to RabbitMQ, it can efficiently implement advanced application scenarios with a small amount of code.
Kafka/Jafka
Kafka is a sub-project under Apache. It is a high-performance cross-language distributed publish/subscribe message queue system, and Jafka is based on Kafka Incubated above, it is an upgraded version of Kafka. It has the following characteristics: fast persistence, which can persist messages with O(1) system overhead; high throughput, which can reach a throughput rate of 10W/s on an ordinary server; a completely distributed system, Broker , Producer, and Consumer all natively and automatically support distribution and automatically implement load balancing; support parallel loading of Hadoop data. This is a feasible solution for log data and offline analysis systems like Hadoop that require real-time processing limitations. . Kafka unifies online and offline message processing through Hadoop's parallel loading mechanism. Apache Kafka is a very lightweight messaging system compared to ActiveMQ. In addition to very good performance, it is also a well-working distributed system.
Redis
Redis is a NoSQL database based on Key-Value pairs and is actively developed and maintained. Although it is a Key-Value database storage system, it supports the MQ function itself, so it can be used as a lightweight queue service. For the enqueue and dequeue operations of RabbitMQ and Redis, each is executed 1 million times, and the execution time is recorded every 100,000 times. The test data is divided into four different sizes of 128Bytes, 512Bytes, 1K and 10K. Experiments show that when entering the queue, the performance of Redis is higher than that of RabbitMQ when the data is relatively small, but if the data size exceeds 10K, Redis is unbearably slow; when leaving the queue, Redis shows very good performance regardless of the size of the data. , and the dequeue performance of RabbitMQ is much lower than that of Redis.
ZeroMQ
The above is the detailed content of Summarize some commonly used frameworks on the .NET platform. For more information, please follow other related articles on the PHP Chinese website!