.Net platform common framework

For a knowledge seekers, it becomes strong is his only reason, we must continue to move forward step by step. . .

Distributed caching framework:

Microsoft Velocity: Microsoft's own services distributed caching framework.

Memcahed: a distributed cache system, currently used by many websites to enhance access speed of the site.

Redis: KV is a high-performance database. It appears to a large extent compensate for the lack of Memcached in some respects.

EnyimMemcached: access to the best .NET Memcached client, integrated distributed good balancing algorithm.

Open source .NET system Recommended:

OXITE: Microsoft ASP.NET MVC framework for case presentations.

PetShop: Microsoft ASP.NET pet store.

Orchard: a foreign MVC open source blog system.

SSCLI: Microsoft NET Framework 2.0 times revenue code.

DasBlog: a foreign system based on ASP.NET blog.

BlogEngine.NET: foreign a free open source blog system.

Dotnetnuke.NET: a very good open source ASP.NET-based web portal program.

Discuz.NET: domestic open source community forum system.

nopCommerce and Aspxcommerce: foreign B2C website set of high-quality open-source system.

JumboTCMS and DTCMS: Both domestic open source website management system:

Logging Exception Handling:

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

Enterprise Library Log Application Black: Microsoft Enterprise Library logging.

Elmah: abnormal logging framework to achieve the most popular ASP.NET applications.

NLog: is a simple and flexible logging library, performance than Log4Net, use and maintenance of low difficulty.

About NoSQL database:

Mongodb: distributed file storage database.

Membase: a new heavyweight members of the family.

Automatic task scheduling framework

Quartz.NET: open source job scheduling framework and automated tasks.

Topshelf: open-source framework to create another Windows service

IOC dependency injection container frame:

Unity: Microsoft patterns & practicest team developed the IOC dependency injection framework that supports AOP crosscutting concerns.

MEF (Managed Extensibility Framework): an extensible framework for .NET applications, plug-in system can be developed.

Spring.NET: dependency injection, aspect-oriented programming (the AOP), abstract data access ,, and ASP.NET integration.

Autofac: The most popular IOC and dependency injection frame, lightweight and high performance of the project code is almost no invasive.

PostSharp: Static achieve AOP crosscutting concerns, the use of simple, powerful methods for target intercept without any changes.

Ninject: IOC injected lightweight framework based on open source .NET dependency

Several commonly used ORM framework:

EF (ADO.NET Entity Framework): ORM framework based on Microsoft ADO.NET development.

Nhibernate: lightweight ORM framework for the .NET environment.

SqlMapper.cs: C # for common database access classes of small projects.

AutoMapper: popular object mapping framework, can reduce a lot of hard-coded, very small and flexible, the performance is acceptable.

SubSonic: Excellent open source ORM mapping framework, in line with their needs while providing the code generator.

FluentData: open source ORM chain queries based on lightweight framework Fluent API.

Dapper: ORM-based high-performance lightweight frame EMIT generated.

EmitMapper: high performance ORM framework to dynamically generate runtime EMIT IL code, not using reflection.

Format and data type conversion

Newtonsoft.Json: .NET developer currently the most popular JSON serialization library that provides the foundation for the new version of WebApi library.

System.JSON.dll: Microsoft's own development of JSON serialization component (separate download)

DataContractJsonSerializer and DataContractXmlSerializer: Microsoft uses the serializer in WCF.

JavaScriptSerializer: Microsoft default JSON formatter for WEB developers to offer.

iTextSharp, PDFsharp and PDF.NET: .NET assemblies through processing and generate PDF documents.

SharpZipLib.dll: free open source file ZIP and GZIP decompression component.

Math.NET: strong math, calculus, solving equations and scientific computing.

DocX: no need to install software, word by word C # file operations.

SharpSerializer: Open source and XML, binary, JSON, compression and optimization framework.

Reflection and dynamic languages

Clay dynamic: the open source dynamic languages ​​such as dynamic framework allows you to shape javascript way to create an object.

ExposedObject: access private members through dynamic languages ​​dynamic way outside the class.

PrivateObject: a convenient unit testing frameworks like Microsoft internally calls outside class private members.

When cross-platform and run the solution

MONO.NET: cross-platform .NET runtime environment for .NET cross-platform operation possible.

DotGnu Portable.NET: MONO.NET similar cross-platform runtime.

Phalanger: .NET to compile PHP, and .NET PHP can achieve interoperability.

VMDotNet: China Mobile's Fetion ever used .NET runtime.

Unity3D: Microsoft support opportunities C # and JavaScript cross-platform game development framework.

Cassini, IIS Express and Cassinidev: open-source ASP.NET execution environment.

Katana: Microsoft-based OWIN norms to achieve non-IIS and ASP.NET MVC boarding and so on.

IKVM.NET: .NET-based JAVA virtual machine, so JAVA run on .NET.

WEB design and development

Jumony Core: HTML engine is based on .NET development.

Microsoft.mshtml.dll, Winista.HtmlParser.dll and HtmlAgilityPack.dll: analytical framework for dealing with HTML documents.

JavaScript.NET and ClearScript (Microsoft Publisher): JavaScript engine based on .NET development.

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

AntiXSS: Microsoft Official prevent cross-site scripting XSS intrusion of open-source library, it encodes the content whitelist mechanism.

YUICompressor.NET, Microsoft Ajax Minifier and Google Closure Compiler: JavaScrip and CSS compressor.

NancyFx: is a good lightweight open source .NET WEB framework. If you want to quickly make a simple WEB application.

AspNetPager: well-known ASP.NET pagination controls, support for multiple pagination.

NOPI.dll: export plug-Excel reports (Microsoft OpenXml Based) (nopi.css.dl styled by css)

Enterprise Library: Microsoft Best Practices components for enterprise-class application development.

PowerCollections: a high-level open-source collection of foreign cattle were written.

Mobile Internet and cloud computing

PushSharp: push message to a variety of mobile platforms via .NET.

mono for android: Android application development using .NET languages:

MonoTouch: application development using .NET languages ​​IOS.

PhoneGap and AppCan: cross-platform HTML5-based mobile development platform.

Cordova: PhoneGap contribution to the Apache open source project, is driven PhoneGap core engine.

And network communication network protocol

SuperSocket: .NET lightweight extensible development framework based on Socket.

SuperWebSocket: achieve TML5 WebSocket framework by .NET.

XProxy: supporting basic set of plug-in agents, built-in NAT, encryption and decryption, reverse, direct and indirect agents.

Graphics and image processing frame

Paint.NET: processing open source project based on .NET Compact flexible and powerful graphics.

Imagemagick.NET: C # with open source package of image processing components Imagemagick.

Skimpt: .NET-based open-source software screen shots.

ImageGlue.NET: commercial image processing component that supports the format of the column a lot.

Sprite and Image Optimization Framework: Microsoft CSS sprites, multi-map synthesis a large map and CSS styles.

Desktop application framework

DevExpress: a world-renowned desktop application UI control library.

Prism: MVVM framework developed by Microsoft for WPF and Silverlight through functional modular thinking in terms of complex business functions and UI coupling separation.

WPFToolkit and Fluent Ribbon Control Suite: development similar to Office-style Ribbon menu.

Testing and performance evaluation

Faker.Net: convenient framework to generate large quantities of test data.

Nunit: a lightweight unit testing framework.

Moq: very popular Mock framework that supports LINQ, flexible and high performance.

xUnit: better than NUnit unit testing framework, the upgrade framework Nunit improved version.

MiniProfiler and Glimpse: Both Performance-based event monitoring framework MVC.

Transactions and distributed transaction support

KtmIntegration: a NTFS file system transaction open class support.

NET Transactional File Manager: for file system operations (copy, move and delete) added transaction support.

Word, full-text search and search engine

Lucene.net: popular high-performance full-text indexing library, it can be used to provide powerful search capabilities for all types of information.

Lucene.Net.Analysis.PanGu: Lucene.Net support the latest version of Pangu Chinese word extensions.

Data validation component finishing

FluentValidation for .NET: LINQ expression based interface authentication method Fluent chain assembly.

Microsoft.Practices.EnterpriseLibrary.Validation.dll: Microsoft Enterprise Library Validation Block.

CuttingEdge.Conditions: Contract programming interface component Fluent interface method practiced on.

DotNetOpenAuth: Make a site with the ability to support OpenID, OAuth, InfoCard and other authentication.

Open source statistical control chart:

Visifire: a very good effect WPF chart control support 3D rendering, curve, polygonal line, fan-shaped, annular and trapezoidal.

SparrowToolkit: a WPF chart control set that supports dynamic curve drawn, draw oscilloscope, CPU usage and waveform.

DynamicDataDisplay: WPF open source Microsoft dynamic graph, diagram, and thermal bubble chart of FIG.

 

Message Queue can be expanded categories such as: Kafka is a distributed messaging system based publish / subscribe. The main design goals are as follows:

Time complexity is O (1) provides the message persistence ability, even above the level of the TB data can be guaranteed a constant time complexity of access performance.

High throughput. Even at very inexpensive commercial single machine can do more than 100K per second to support the transmission of messages.

Support Kafka news partition between the Server, and distributed consumption, while ensuring sequential transmission of messages within each Partition.

At the same time support for offline data processing and real-time data processing.

Scale out: the level of support online expansion.

RabbitMQ

RabbitMQ is written in Erlang using an open source message queue itself supports many protocols: AMQP, XMPP, SMTP, STOMP, because of this, it is very heavyweight, is more suitable for the development of enterprise-class. While achieving Broker architecture, which means that the message is queued in the first queue at the center sent to the client. Routing, load balancing or data persistence have very good support.

Redis

Redis NoSQL database is based on a Key-Value pairs, development and maintenance is very active. Although it is a Key-Value database storage system, but it does support the MQ function, it can use as a lightweight queue service to use. For the team and the operations team RabbitMQ and Redis, and implementing a million times, once every 100,000 recorded execution time. Test data is divided into data 128Bytes, 512Bytes, 1K 10K and four different sizes. Experiments show that: when the team, when performance data is relatively small Redis is higher than RabbitMQ, and if the data size exceeds 10K, Redis is slow can not stand; when the team, regardless of the data size, Redis have shown a very good performance , but the team performance RabbitMQ is much lower than Redis.

ZeroMQ

ZeroMQ known as the fastest message queuing systems, especially for high throughput demands scene. Advanced / complex queue ZeroMQ enable RabbitMQ not good, but developers need their own combination of technologies framework, the technical complexity of this MQ is able to apply successfully challenges. ZeroMQ has a unique non middleware mode, you do not need to install and run a messaging server or middleware, because your application server will play this role. You only need a simple reference to ZeroMQ library, you can use NuGet installed, then you can have fun send messages between applications. But ZeroMQ provide only non-persistent queues, that if downtime, data will be lost. Which, Twitter's Storm 0.9.0 previous versions as the default ZeroMQ transport streams (Storm and support ZeroMQ Netty as a transport module from version 0.9 to start at the same time).

ActiveMQ

ActiveMQ is a subproject of Apache. Similar ZeroMQ, it can queue as agent and peer to peer technology. At the same time like RabbitMQ, a small amount of code it can efficiently implement advanced application scenarios.

Kafka / Jafka

Kafka is a subproject of the Apache, is a high-performance cross-language distributed publish / subscribe message queuing systems, and Jafka is on Kafka hatch comes, that is an upgraded version of Kafka. Has the following characteristics: rapid persistence, the message may be persistent in O (1) overhead; high throughput, on a common server throughput rate can be achieved either 10W / s; a fully distributed system, Broker , Producer, Consumer automatic support for distributed are native, automatic load balancing; supports Hadoop data loaded in parallel, the same as for off-line analysis of log data and Hadoop system, the restriction but requires real-time processing, this is a viable solution . Kafka through parallel loading mechanism of Hadoop unified message processing online and offline. Apache Kafka relative to ActiveMQ is a very lightweight messaging system, in addition to very good performance outside, or a good work distributed systems.

 

Original: http://www.cnblogs.com/hgmyz/

Guess you like

Origin www.cnblogs.com/tianxujun/p/11345255.html