Based on the common framework and open source code of the. NET platform

Source: Internet
Author: User
Tags imagemagick rabbitmq log4net microsoft c

Based on the common framework and open source code of the. NET platform

Since learning. since the beginning of NET, the elegant programming style, extremely simple scalability, powerful enough development tools, and a very small learning curve have made me very interested in this platform, I have accumulated some open-source components in my work and study. Now I want to sort them out first. If I think about it again, I will continue to add this log, to form a component experience library.

Distributed cache framework:

Microsoft Velocity: Microsoft's own distributed cache service framework.

Memcahed: a distributed high-speed cache system that 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.

SSCLI: the 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 ASP. NET-based open source portal programs.

Discuz. NET: an open-source forum Community system in China.

NopCommerce and Aspxcommerce: a set of high-quality open-source B2C website systems outside China.

JumboTCMS and DTCMS: two open-source website management systems in China:

Log exception handling:

Log4Net. dll: lightweight and free open-source. NET logging framework.

Enterprise Library Log Application Black: Log record of the Microsoft Enterprise Library.

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, which 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 AOP cross-cutting concerns.

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, with almost no intrusion to project code.

PostSharp: Implements static AOP cross-cutting concerns. It is easy to use and powerful, and does not need to be modified to intercept the target.

Ninject: A. 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: the C # Database category for small projects.

AutoMapper: a popular Object ing framework that can reduce a large amount of hard coding, be small and flexible, and provide acceptable performance.

SubSonic: an excellent open-source ORM ing framework and a code generator that meets your own needs.

FluentData: a lightweight open-source chain query ORM framework based on Fluent APIs.

Dapper: lightweight, high-performance EMIT-based ORM framework.

EmitMapper: An ORM framework with high performance. IL code is dynamically generated through EMIT during 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: The serializer used by Microsoft in WCF.

JavaScriptSerializer: The JSON formatter provided by Microsoft for WEB developers by default.

ITextSharp, PDFsharp, and PDF. NET: components that process and generate PDF documents through. NET.

SharpZipLib. dll: a free open-source ZIP and GZIP file extraction component.

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 a private member outside the class by using the dynamic language dynamic.

PrivateObject: A class of Private Members in the external call class in the Microsoft unit test framework.

Cross-platform and runtime solutions:

MONO. NET: a cross-platform. NET runtime environment makes it possible for. NET to run across platforms.

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 and process the HTML document framework.

JavaScript. NET and ClearScript: A JavaScript engine developed based on. NET.

NCrawler: open-source web crawler software of its HTML processing engine htmlagilitypack.

AntiXSS: an 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: it is a good lightweight open-source. net web framework. If you want to quickly create a simple WEB application.

AspNetPager: a well-known ASP. NET paging Control in China. It supports multiple paging methods.

NOPI. dll: The plug-in for guiding the excel (based on the soft openxml ((nopi.css. dl)

Enterprise Library: The best practice component developed by Microsoft for Enterprise-level applications.

PowerCollections: an advanced open source set written by a foreign cool.

Mobile Internet and cloud computing:

PushSharp: pushes messages to various mobile platforms through. NET.

Mono for android: android applications developed in. NET:

MonoTouch: Develop IOS applications in. NET language.

PhoneGap and AppCan: a 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: a lightweight and scalable Socket development framework based on. NET.

SuperWebSocket: implements the TML5 WebSocket framework through. NET.

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: a small, flexible, and powerful Open-Source Project Based on. NET.

Imagemagick. NET: uses C # To encapsulate Imagemagick, an open source image processing component.

Skimpt: Open-Source Screen Software Based on. NET.

ImageGlue. NET: A commercial image processing component that supports 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: a mvvm framework developed by Microsoft for WPF and Silverlight. It separates complex business functions from UI coupling by means of modular functions.

WPFToolkit and Fluent Ribbon Control Suite: Develop Ribbon menus similar to Office.

Test 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 MVC-based performance event monitoring frameworks.

Transaction and distributed transaction support:

KtmIntegration: an open-source transaction class that supports NTFS file systems.

NET Transactional File Manager: supports adding File system operations (copying, moving, and deleting) to transactions.

Word Segmentation, full-text retrieval, and search engines:

Lucene.net: a popular high-performance full-text index library that provides powerful search functions for various types of information.

Lucene. Net. Analysis. PanGu: supports the latest PanGu Chinese Word Segmentation extension library of Lucene. Net.

Data Verification components:

FluentValidation for. NET: The Fluent Interface Verification component based on the method chain of the LINQ expression.

Microsoft. Practices. EnterpriseLibrary. Validation. dll: The verification program block of the Microsoft Enterprise Library.

CuttingEdge. Conditions: A contract programming component based on the Fluent interface method.

DotNetOpenAuth: enables websites 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 waveform.

DynamicDataDisplay: Microsoft open-source WPF dynamic graph, line chart, bubble chart, and heat map.

Message Queue categories can be expandedFor example, Kafka is a distributed Message System Based on publishing/subscription. 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.

Articles you may be interested in:
  • Several changes in the ASP. NET 2.0 page framework
  • Asp.net learning path: simple construction of the overall project framework
  • Extends the ASP. net mvc three-layer framework and uses StructureMap to implement dependency injection on the 1-Model layer.
  • . NET Web development-Introduction to the. net mvc Framework
  • Implementation of the. Net Framework Drawing Technology for Windows Forms
  • ASP. net mvc + EF framework + EasyUI permission management series
  • Use ASP. NET.4.5.1 + MVC5.0 to build a project that contains the Ninject framework
  • ASP. NET MVC5 website development project framework (2)
  • ASP. NET MVC5 website development framework model, data storage, and business logic (3)

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.