


Since learning .NET, the elegant programming style, extremely simple scalability, sufficiently powerful development tools, and minimal learning curve have made me very interested in this platform, and I have also accumulated some open source knowledge in my work and study. Components, I will sort them out here for now. If I think of them again, I will continue to add to this log. Over time, I will form my own component experience library.
Distributed cache framework:
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.
Open source .NET system recommendation:
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:
Logging exception handling:
Log4Net.dll: lightweight free open source .NET logging framework.
Enterprise Library Log Application Black: Microsoft Enterprise Library Log Recording.
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 easier 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 task framework.
Topshelf: Another open source framework for creating Windows services
Dependency injection IOC container framework:
Unity: The IOC dependency injection framework developed by Microsoft's 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 and powerful, and does not require any changes to the target interception method.
Ninject: Dependency injection IOC framework based on .NET lightweight open source
Several commonly used ORM frameworks:
EF(ADO.NET Entity Framework): ORM framework developed by Microsoft based on ADO.NET.
Nhibernate: A lightweight ORM framework for .NET environment.
SqlMapper.cs: 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.
Format and data type conversion
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: The serializer used by Microsoft in WCF.
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.
Reflection and dynamic languages
Clay dynamic: The open source dynamic language dynamic framework allows you to create objects in a javascript-like way.
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.
Cross-platform and runtime solutions
MONO.NET: Cross-platform .NET operating environment makes it possible for .NET to run 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: JAVA virtual machine based on .NET, allowing 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: 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: The well-known domestic ASP.NET paging control 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.
Mobile Internet and Cloud Computing
PushSharp: Push messages to various mobile platforms through .NET.
mono for android:Develop Android applications using .NET language:
MonoTouch: Use .NET language to develop IOS applications.
PhoneGap and AppCan: Cross-platform mobile development platform based on HTML5.
Cordova: The open source project after PhoneGap was contributed to Apache is the core engine driving PhoneGap.
Network communication and network protocols
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.
Graphics and image processing framework
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.
Desktop Application Framework
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 Office-style Ribbon menus.
Testing and performance evaluation
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.
Transaction and distributed transaction support
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).
Word segmentation, full text retrieval and search engine
Lucene.net: A popular high-performance full-text index library that can be used to provide powerful search capabilities for all types of information.
Lucene.Net.Analysis.PanGu: Supports the latest version of Lucene.Net's Pangu Chinese word segmentation extension library.
Data validation component organization
FluentValidation for .NET: Fluent interface verification 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.
Open source chart statistics control:
Visifire: A set of WPF chart controls with very good effects, supporting 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.
The Message Queue category can be expanded, such as: Kafka is a distributed, publish/subscribe based messaging system. The main design goals are as follows:
It provides message persistence capability with a time complexity of O(1), ensuring constant time complexity access performance even for data above TB level.
High throughput. 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 sequential transmission of messages within each Partition.
Supports both offline data processing and real-time data processing.
Scale out: supports 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.
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
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. Jafka is incubated on top of Kafka, which 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.
The above is the detailed content of Detailed introduction of commonly used frameworks based on .NET platform. For more information, please follow other related articles on the PHP Chinese website!

To start C#.NET development, you need to: 1. Understand the basic knowledge of C# and the core concepts of the .NET framework; 2. Master the basic concepts of variables, data types, control structures, functions and classes; 3. Learn advanced features of C#, such as LINQ and asynchronous programming; 4. Be familiar with debugging techniques and performance optimization methods for common errors. With these steps, you can gradually penetrate the world of C#.NET and write efficient applications.

The relationship between C# and .NET is inseparable, but they are not the same thing. C# is a programming language, while .NET is a development platform. C# is used to write code, compile into .NET's intermediate language (IL), and executed by the .NET runtime (CLR).

C#.NET is still important because it provides powerful tools and libraries that support multiple application development. 1) C# combines .NET framework to make development efficient and convenient. 2) C#'s type safety and garbage collection mechanism enhance its advantages. 3) .NET provides a cross-platform running environment and rich APIs, improving development flexibility.

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

C# and .NET adapt to the needs of emerging technologies through continuous updates and optimizations. 1) C# 9.0 and .NET5 introduce record type and performance optimization. 2) .NETCore enhances cloud native and containerized support. 3) ASP.NETCore integrates with modern web technologies. 4) ML.NET supports machine learning and artificial intelligence. 5) Asynchronous programming and best practices improve performance.

C#.NETissuitableforenterprise-levelapplicationswithintheMicrosoftecosystemduetoitsstrongtyping,richlibraries,androbustperformance.However,itmaynotbeidealforcross-platformdevelopmentorwhenrawspeediscritical,wherelanguageslikeRustorGomightbepreferable.

The programming process of C# in .NET includes the following steps: 1) writing C# code, 2) compiling into an intermediate language (IL), and 3) executing by the .NET runtime (CLR). The advantages of C# in .NET are its modern syntax, powerful type system and tight integration with the .NET framework, suitable for various development scenarios from desktop applications to web services.

C# is a modern, object-oriented programming language developed by Microsoft and as part of the .NET framework. 1.C# supports object-oriented programming (OOP), including encapsulation, inheritance and polymorphism. 2. Asynchronous programming in C# is implemented through async and await keywords to improve application responsiveness. 3. Use LINQ to process data collections concisely. 4. Common errors include null reference exceptions and index out-of-range exceptions. Debugging skills include using a debugger and exception handling. 5. Performance optimization includes using StringBuilder and avoiding unnecessary packing and unboxing.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 English version
Recommended: Win version, supports code prompts!

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment