This article is a mirror article of machine translation, please click here to jump to the original article.

View: 16182|Reply: 1

[ASP.NET] Based on. .NET platform

[Copy link]
Posted on 8/26/2016 4:20:18 PM | | |
Since learning. .NET, elegant programming style, extremely simple scalability, powerful enough development tools, and a very small learning curve, have made me have a strong interest in this platform, and I have also accumulated some open source components in my work and study.
Distributed caching 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: is a high-performance KV database. Its appearance largely compensates for Memcached's shortcomings in some aspects.
EnyimMemcached: Access Memcached's best .NET client with a good distributed equalization algorithm.
Open source. .NET System Recommendation:
OXITE: Microsoft ASP.NET MVC case presentation 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 ASP.NET-based blogging system abroad.
BlogEngine.NET: A free and open source blogging system abroad.
Dotnetnuke.NET: A very good set of ASP.NET-based open source portal programs.
Discuz.NET: Domestic open source forum community system.
nopCommerce and Aspxcommerce: A set of high-quality open source B2C website systems abroad.
JumboTCMS and DTCMS: Two open source website management systems in China:
Logging exception handling:
Log4Net.dll: A lightweight free and 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: is a simple and flexible logging library with higher performance than Log4Net and low difficulty in use and maintenance.
About NoSQL Databases:
Mongodb: Distributed file storage database.
Membase: A new heavyweight member of the family.
Automated task scheduling framework
Quartz.NET: Open-source job scheduling and automated task framework.
Topshelf: Another open source framework for creating Windows services
Dependency injection IOC container framework:
Unity: An IOC dependency injection framework developed by Microsoft's patterns & practicest team that supports AOP cross-cutting concerns.
MEF (Managed Extensibility Framework): is a framework for extending .NET applications and enabling the development of 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, virtually non-intrusive to project code.
PostSharp: Implements static AOP cross-cutting of concerns, is simple to use, powerful, and does not require any changes to the method of target interception.
Ninject: A dependency injection IOC framework based on .NET lightweight and open source
Several commonly used ORM frameworks:
EF (ADO.NET Entity Framework): An ORM framework developed by Microsoft based on ADO.NET.
Nhibernate: A lightweight ORM framework for .NET environments.
SqlMapper.cs: A generic C# database access class for small projects.
AutoMapper: A popular object mapping framework that reduces a lot of hardcoding, is compact and flexible, and has acceptable performance.
SubSonic: An excellent open-source ORM mapping framework that provides a code generator that meets your needs.
FluentData: An open-source Fluent API-based chained query ORM lightweight framework.
Dapper: Lightweight, high-performance, based on EMIT-generated ORM framework.
EmitMapper: A high-performance ORM framework that dynamically generates IL code through EMIT at runtime, rather than using a reflection mechanism.
Format and data type conversion
Newtonsoft.Json: The most popular JSON serialization library currently in .NET development, providing the basis for the new version of the WebApi library.
System.JSON.dll: Microsoft's own JSON serialization component (needs to be downloaded separately)
DataContractJsonSerializer and DataContractXmlSerializer: Serializers used by Microsoft in WCF.
Javascrip{filter}tSerializer: Microsoft's default JSON formatter for WEB developers.
iTextSharp, PDFsharp, and PDF.NET: Through. .NET to process and generate PDF documents.
SharpZipLib.dll: Free and open-source ZIP and GZIP file decompression components.
Math.NET: Strong mathematical operations, calculus, solving equations, and scientific operations.
DocX: No need to install word software, operate word files through C#.
SharpSerializer: Open-source XML and, binary, JSON, compression, and optimization framework.
Reflective and dynamic language
Clay dynamic: The open-source dynamic framework allows you to create objects in the form of javascrip{filtering}t.
ExposedObject: Access private members outside of the class in a dynamic language way.
PrivateObject: A class in the Microsoft unit testing framework that is convenient for calling private members of the class externally.
Cross-platform and runtime solutions
MONO.NET: Cross-platform. .NET runtime environment, making .NET cross-platform operation possible.
DotGnu Portable.NET: Cross-platform runtime similar to MONO.NET.
Phalanger: Compiling PHP to .NET enables PHP and .NET interoperability.
VMDotNet: The .NET runtime used by China Mobile Feixin.
Unity3D: Microsoft's strong support for C# and Javascrip's cross-platform game development framework.
Cassini, IIS Express, and Cassinidev: Open-source ASP.NET execution environments.
Katana: Microsoft's non-IIS boarding ASP.NET and MVC based on the OWIN specification.
IKVM.NET: Based on. .NET is a JAVA virtual machine that allows JAVA to run on top of .NET.
WEB development and design
Jumony Core: An HTML engine developed based on .NET.
Microsoft.mshtml.dll, Winista.HtmlParser.dll, and HtmlAgilityPack.dll: Frameworks that parse and process HTML documents.
Javascrip{filtering}t.NET and Clearscrip{filtering}t (produced by Microsoft): Based on . .NET developed Javascrip{filter}t engine.
NCrawler: An open-source web crawler for its HTML processing engine, htmlagilitypack.
AntiXSS: Microsoft's official open-source library for preventing cross-site XSS script intrusion attacks, which encodes content through a whitelist mechanism.
YUICompressor.NET, Microsoft Ajax Minifier and Google Closure Compiler: JavaScrip and CSS Compressor.
NancyFx: is a nice lightweight open source .NET WEB framework. If you want to quickly make a simple WEB application.
AspNetPager: A well-known ASP.NET paging control in China, supporting multiple paging methods.
NOPI.dll: Plugin for exporting Excel reports (based on Microsoft OpenXml implementation) (nopi.css.dl styled via css)
Enterprise Library: Microsoft's best practice component for enterprise-grade application development.
PowerCollections: A high-level open source collection written by a foreign awesome.
Mobile Internet and cloud computing
PushSharp: Push messages to various mobile platforms via .NET.
Mono for Android: Use. .NET language development Android application:
MonoTouch: Develop IOS applications in .NET language.
PhoneGap and AppCan: Cross-platform HTML5-based mobile development platforms.
Cordova: An open source project after PhoneGap contributed to Apache, it is the core engine that drives PhoneGap.
Network communication and network protocols
SuperSocket: A lightweight and scalable socket development framework based on .NET.
SuperWebSocket: Implements the TML5 WebSocket framework via .NET.
XProxy: The basic agent assembly that supports plugins, with built-in NAT, encryption and decryption, reverse, direct and indirect proxies.
Graphics and image processing frameworks
Paint.NET: Based on. .NET is a compact, flexible, and powerful graphics processing open source project.
Imagemagick.NET: Encapsulation of the open-source image processing component Imagemagick in C#.
Skimpt: Open source screenshot software based on .NET.
ImageGlue.NET: Commercial image processing components have a large list of supported formats.
Sprite and Image Optimization Framework: Microsoft CSS Wizard, multi-image combining a large image and CSS style.
Desktop application framework
DevExpress: A world-renowned library of UI controls for desktop applications.
Prism: The MVVM framework developed by Microsoft for WPF and Silverlight, which separates complex business functions and UI coupling through the idea of functional modularity.
WPFToolkit and Fluent Ribbon Control Suite: Develop Office-style Ribbon menus.
Testing and performance evaluation
Faker.Net: A framework for generating large batches of test data.
Nunit: A lightweight unit testing framework.
Moq: A very popular Mock framework that supports LINQ, flexible and high-performance.
xUnit: A better unit testing framework than NUnit, an upgraded version of the Nunit framework.
MiniProfiler and Glimpse: Two MVC-based performance event monitoring frameworks.
Transactional and distributed transaction support
KtmIntegration: A transactional open-source class that supports the NTFS file system.
NET Transactional File Manager: Added transactional support for file system operations (copy, move, and delete).
Word segmentation, full-text search, and search engine
Lucene.net: A popular high-performance full-text index library that can be used to provide powerful search functions for all kinds of information.
Lucene.Net.Analysis.PanGu: Supports the latest version of the Pangu Chinese segmentation extension library Lucene.Net.
Data validation component organization
FluentValidation for . NET: Fluent interface verification component based on LINQ expression method chain.
Microsoft.Practices.EnterpriseLibrary.Validation.dll: The Microsoft Enterprise Library validation program block.
CuttingEdge.Conditions: A contract programming component based on the Fluent interface method.
DotNetOpenAuth: Enables websites to support authentication with OpenID, OAuth, InfoCard, and more.
Open Source Chart Statistics Controls:
Visifire: A very good set of WPF chart controls that support 3D drawing, curves, polylines, sectors, rings, and trapezoids.
SparrowToolkit: A set of WPF chart controls that support drawing dynamic curves, including oscilloscopes, CPU usage, and waveforms.
DynamicDataDisplay: Microsoft open-source WPF dynamic graphs, line charts, bubble charts, and heat maps.

Message queue categories can be extended, such as Kafka, which is a distributed, publish/subscribe-based messaging system. The main design objectives are as follows:
Message persistence is provided in the form of time complexity O(1), and access performance of constant time complexity can be guaranteed even for data above terabytes.
High throughput. Even on very inexpensive commercial machines, it can support the transmission of more than 100K messages per second on a single machine.
It supports message partitioning and distributed consumption between Kafka servers, and ensures the sequential transmission of messages in each partition.
It 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 that supports many protocols: AMQP, XMPP, SMTP, STOMP, which is why 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 first when sent to the client. There is good support for routing, load balancing or data persistence.
Redis
Redis is a NoSQL database based on Key-Value pairs, and it is actively developed and maintained. Although it is a key-value database storage system, it supports MQ functionality itself, so it can be used as a lightweight queue service. For the onboarding and out-queue operations of RabbitMQ and Redis, 1 million times each, and the execution time is recorded every 100,000 times. The test data is divided into four different sizes: 128Bytes, 512Bytes, 1K, and 10K. Experimental table: When joining the team, the performance of Redis is higher than that of RabbitMQ when the data comparison is small, and if the data size exceeds 10K, Redis is unbearably slow. When going out of the team, Redis showed very good performance regardless of the size of the data, while RabbitMQ's performance was much lower than Redis'.
ZeroMQ
ZeroMQ claims to be the fastest message queuing 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 by themselves, and the technical complexity is a challenge to the successful application of this MQ. ZeroMQ has a unique non-middleware mode where you don't need to install and run a message server or middleware because your application will play this server role. All you need to do is simply reference the ZeroMQ library, which can be installed using NuGet, and you can happily send messages between applications. However, ZeroMQ only provides non-persistent queues, which means that if it goes down, data will be lost. Among them, Twitter's Storm version before 0.9.0 uses ZeroMQ as the transmission of data streams by default (Storm supports both ZeroMQ and Netty as a transmission module from version 0.9).
ActiveMQ
ActiveMQ is a subproject under Apache. Similar to ZeroMQ, it enables queues with agent 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 subproject of Apache, a high-performance distributed publish/subscribe message queuing system across languages, and 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 under the system overhead of O(1); High throughput, which can reach a throughput rate of 10W/s on an ordinary server; Completely distributed system, Broker, Producer, and Consumer all natively support distributed and automatically realize load balancing; Supports parallel loading of Hadoop data, which is a viable solution for log data and offline analysis systems like Hadoop, but with the limitations of real-time processing. Kafka unifies online and offline message processing through Hadoop's parallel loading mechanism. Apache Kafka is a very lightweight messaging system relative to ActiveMQ, and in addition to very good performance, it is also a distributed system that works well.




Previous:.net ToString() formatting
Next:C#/.NET IP Port Scanner [Source Code]
Posted on 8/26/2016 4:22:42 PM |
Yes, I've used a few, some frames, and I haven't seen them yet
Disclaimer:
All software, programming materials or articles published by Code Farmer Network are only for learning and research purposes; The above content shall not be used for commercial or illegal purposes, otherwise, users shall bear all consequences. The information on this site comes from the Internet, and copyright disputes have nothing to do with this site. You must completely delete the above content from your computer within 24 hours of downloading. If you like the program, please support genuine software, purchase registration, and get better genuine services. If there is any infringement, please contact us by email.

Mail To:help@itsvse.com