search
HomeBackend DevelopmentC#.Net TutorialDetailed introduction of commonly used frameworks based on .NET platform

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!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
C# .NET Development: A Beginner's Guide to Getting StartedC# .NET Development: A Beginner's Guide to Getting StartedApr 18, 2025 am 12:17 AM

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.

C# and .NET: Understanding the Relationship Between the TwoC# and .NET: Understanding the Relationship Between the TwoApr 17, 2025 am 12:07 AM

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).

The Continued Relevance of C# .NET: A Look at Current UsageThe Continued Relevance of C# .NET: A Look at Current UsageApr 16, 2025 am 12:07 AM

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.

From Web to Desktop: The Versatility of C# .NETFrom Web to Desktop: The Versatility of C# .NETApr 15, 2025 am 12:07 AM

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

C# .NET and the Future: Adapting to New TechnologiesC# .NET and the Future: Adapting to New TechnologiesApr 14, 2025 am 12:06 AM

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.

Is C# .NET Right for You? Evaluating its ApplicabilityIs C# .NET Right for You? Evaluating its ApplicabilityApr 13, 2025 am 12:03 AM

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

C# Code within .NET: Exploring the Programming ProcessC# Code within .NET: Exploring the Programming ProcessApr 12, 2025 am 12:02 AM

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# .NET: Exploring Core Concepts and Programming FundamentalsC# .NET: Exploring Core Concepts and Programming FundamentalsApr 10, 2025 am 09:32 AM

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.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Have Crossplay?
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

DVWA

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

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

SecLists

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

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment