Heim  >  Artikel  >  Backend-Entwicklung  >  Fassen Sie einige häufig verwendete Frameworks auf der .NET-Plattform zusammen

Fassen Sie einige häufig verwendete Frameworks auf der .NET-Plattform zusammen

零下一度
零下一度Original
2017-06-24 09:22:264182Durchsuche

Verteiltes Cache-Framework:

Microsoft Velocity: Microsofts eigenes verteiltes Cache-Service-Framework.

Memcahed: Ein verteiltes Caching-System, das derzeit von vielen Websites verwendet wird, um die Geschwindigkeit des Website-Zugriffs zu verbessern.

Redis: Es handelt sich um eine leistungsstarke KV-Datenbank. Seine Entstehung gleicht die Mängel von Memcached in einigen Aspekten weitgehend aus.

EnyimMemcached: Greifen Sie auf den besten .NET-Client von Memcached zu und integrieren Sie einen guten verteilten Balancing-Algorithmus.

Empfohlene Open-Source-.NET-Systeme:

OXITE: Microsoft ASP.NET MVC Case Demonstration Framework.

PetShop: Microsoft ASP.Net Zoohandlung.

Orchard: Ein ausländisches MVC-Open-Source-Blogsystem.

SSCLI: Microsofts Open-Source-Code in der NET Framework 2.0-Ära.

DasBlog: Ein fremdes Blogsystem basierend auf ASP.NET.

BlogEngine.NET: Ein ausländisches kostenloses und Open-Source-Blogging-System.

Dotnetnuke.NET: Ein sehr hervorragendes Open-Source-Portalprogramm basierend auf ASP.NET.

Discuz.NET: Inländisches Open-Source-Forum-Community-System.

nopCommerce und Aspxcommerce: Ein hochwertiges ausländisches Open-Source-B2C-Website-System.

JumboTCMS und DTCMS: Zwei inländische Open-Source-Website-Verwaltungssysteme:

Protokollierungsausnahmebehandlung:

Log4Net.dll: Ein leichtes, kostenloses und Open-Source-.NET-Protokollierungsframework.

Enterprise Library Log Application Black: Microsoft Enterprise Library-Protokollierung.

Elmah: Implementiert das beliebteste Framework zur Ausnahmeprotokollierung von ASP.NET-Anwendungen.

NLog: Es handelt sich um eine einfache und flexible Protokollierungsbibliothek mit höherer Leistung als Log4Net und einfacher zu verwenden und zu warten.

Über NoSQL-Datenbanken:

MongoDB: Verteilte Dateispeicherdatenbank.

Membase: Ein neues Schwergewichtsmitglied der Familie.

Automatisches Aufgabenplanungs-Framework

Quartz.NET: Ein Open-Source-Jobplanungs- und automatisches Aufgaben-Framework.

Topshelf: Ein weiteres Open-Source-Framework zum Erstellen von Windows-Diensten

Dependency-Injection-IOC-Container-Framework:

Unity: Microsoft The Das vom patterns&practicest-Team entwickelte IOC-Dependency-Injection-Framework unterstützt übergreifende AOP-Anliegen.

MEF (Managed Extensibility Framework): Es handelt sich um ein Framework zur Erweiterung von .NET-Anwendungen und zur Entwicklung von Plug-In-Systemen.

spring.NET: Abhängigkeitsinjektion, aspektorientierte Programmierung (AOP), Datenzugriffsabstraktion und ASP.NET-Integration.

Autofac: Das beliebteste Abhängigkeitsinjektions- und IOC-Framework, leichtgewichtig und leistungsstark, nahezu ohne Eingriff in den Projektcode.

PostSharp: Implementiert statische AOP-übergreifende Anliegen, ist einfach zu verwenden, leistungsstark und erfordert keine Änderungen an der Zielabfangmethode.

Ninject: Abhängigkeitsinjektions-IOC-Framework basierend auf .NET Lightweight Open Source

Mehrere häufig verwendete ORM-Frameworks:

EF (ADO.NET Entity Framework): Von Microsoft entwickeltes ORM-Framework auf Basis von ADO.NET.

Nhibernate: Ein leichtes ORM-Framework für die .NET-Umgebung.

SqlMapper.cs: Eine gängige C#-Datenbankzugriffsklasse für kleine Projekte.

AutoMapper: Ein beliebtes Objekt-Mapping-Framework, das viel harte Codierung reduzieren kann, kompakt und flexibel ist und eine akzeptable Leistung bietet.

SubSonic: Ein hervorragendes Open-Source-ORM-Mapping-Framework, das auch einen Codegenerator bietet, der Ihren eigenen Anforderungen entspricht.

FluentData: Ein leichtes ORM-Framework für Open-Source-Kettenabfragen basierend auf der Fluent-API.

Dapper: Ein leichtes und leistungsstarkes ORM-Framework, das auf EMIT basiert.

EmitMapper: Ein leistungsstarkes ORM-Framework, das zur Laufzeit dynamisch IL-Code über EMIT generiert, anstatt den Reflexionsmechanismus zu verwenden.

Format- und Datentypkonvertierung

Newtonsoft.Json: Derzeit die beliebteste JSON-Serialisierungsbibliothek in der .NET-Entwicklung, die die Grundlage für die neue Version der WebApi-Bibliothek bildet.

System.JSON.dll: Von Microsoft entwickelte JSON-Serialisierungskomponente (muss separat heruntergeladen werden)

DataContractJsonSerializer und DataContractXmlSerializer: Microsoft in WCF Der in . verwendete Serialisierer.

JavaScriptSerializer: Microsofts Standard-JSON-Formatierer für WEB-Entwickler.

iTextSharp, PDFsharp und PDF.NET: Komponenten zur Verarbeitung und Generierung von PDF-Dokumenten über .NET.

SharpZipLib.dll: Kostenlose und Open-Source-ZIP- und GZIP-Datei-Dekomprimierungskomponente.

Math.NET: Leistungsstarke mathematische Operationen, Analysis, Gleichungslösung und wissenschaftliche Operationen.

DocX: Keine Notwendigkeit, Word-Software zu installieren, Word-Dateien über C# bedienen.

SharpSerializer: Open-Source-XML-, Binär-, JSON-, Komprimierungs- und Optimierungs-Framework.

Reflexion und dynamische Sprache

Clay-Dynamik: Mit dem Open-Source-Dynamic-Language-Framework können Sie Objekte auf JavaScript-ähnliche Weise erstellen.

ExposedObject: Greifen Sie über dynamische Sprache auf private Mitglieder außerhalb der Klasse zu.

PrivateObject: Eine Klasse im Microsoft-Unit-Testing-Framework, die externe Aufrufe an private Mitglieder einer Klasse ermöglicht.

Plattformübergreifende und Laufzeitlösungen

MONO.NET: Eine plattformübergreifende .NET-Laufzeitumgebung, die es ermöglicht, .NET plattformübergreifend auszuführen.

DotGnu Portable.NET: Eine plattformübergreifende Laufzeit ähnlich wie MONO.NET.

Phalanger: Kompilieren Sie PHP in .NET, um Interoperabilität zwischen PHP und .NET zu erreichen.

VMDotNet: Die von China Mobile Fetion verwendete .NET-Laufzeit.

Unity3D: Ein plattformübergreifendes Spieleentwicklungs-Framework für C# und JavaScript, das von Microsoft stark unterstützt wird.

Cassini, IIS Express und Cassinidev: Open-Source-ASP.NET-Ausführungsumgebung.

Katana: Microsofts Nicht-IIS-Hosting von ASP.NET und MVC basierend auf der OWIN-Spezifikation.

IKVM.NET: Eine auf .NET basierende Java Virtual Machine, die die Ausführung von JAVA auf .NET ermöglicht.

WEB-Entwicklung und -Design

Jumony Core: HTML-Engine, entwickelt auf Basis von .NET.

Microsoft.mshtml.dll, Winista.HtmlParser.dll und HtmlAgilityPack.dll: Framework zum Parsen und Verarbeiten von HTML-Dokumenten.

JavaScript.NET und ClearScript (hergestellt von Microsoft) : JavaScript-Engine, die auf Basis von .NET entwickelt wurde.

NCrawler: Open-Source-Webcrawler-Software mit der HTML-Verarbeitungs-Engine htmlagilitypack.

AntiXSS: Microsofts offizielle Open-Source-Bibliothek zur Verhinderung standortübergreifender XSS-Skriptangriffe. Sie kodiert Inhalte über einen Whitelist-Mechanismus.

YUICompressor.NET, Microsoft Ajax Minifier und Google Closure Compiler: JavaScript- und CSS-Kompressoren.

NancyFx: Es ist ein gutes, leichtes Open-Source-.NET-WEB-Framework. Wenn Sie schnell eine einfache WEB-Anwendung erstellen möchten.

AspNetPager: Eine bekannte inländische ASP.NET-Paging-Steuerung, die mehrere Paging-Methoden unterstützt.

NOPI.dll: Plug-in zum Exportieren von Excel-Berichten (implementiert auf Basis von Microsoft OpenXml) (nopi.css.dl legt den Stil über CSS fest)

Enterprise Library: Microsofts Best-Practice-Komponenten für die Entwicklung von Unternehmensanwendungen.

PowerCollections: Eine fortschrittliche Open-Source-Sammlung, geschrieben von einer talentierten Person im Ausland.

Mobiles Internet und Cloud Computing

PushSharp: Push-Nachrichten an verschiedene mobile Plattformen über .NET.

Mono für Android: Entwickeln Sie Android-Anwendungen mit der .NET-Sprache:

MonoTouch: Entwickeln Sie iOS-Anwendungen mit der .NET-Sprache.

PhoneGap und AppCan: plattformübergreifende mobile Entwicklungsplattformen basierend auf HTML5.

Cordova: Ein von PhoneGap für Apache bereitgestelltes Open-Source-Projekt. Es ist die Kern-Engine, die PhoneGap antreibt.

Netzwerkkommunikation und Netzwerkprotokolle

SuperSocket: Ein leichtes und erweiterbares Socket-Entwicklungsframework basierend auf .NET.

SuperWebSocket: Implementiert das TML5 WebSocket-Framework über .NET.

XProxy: Eine grundlegende Proxy-Assembly, die Plug-Ins mit integriertem NAT, Verschlüsselung und Entschlüsselung sowie umgekehrten, direkten und indirekten Proxys unterstützt.

Grafik- und Bildverarbeitungs-Framework

Paint.NET: Ein kleines, flexibles und leistungsstarkes Open-Source-Projekt zur Grafikverarbeitung auf Basis von .NET.

Imagemagick.NET: Verwenden Sie C#, um die Open-Source-Bildverarbeitungskomponente Imagemagick zu kapseln.

Skimpt: Bildschirmaufnahmesoftware basierend auf .NET Open Source.

ImageGlue.NET: Eine kommerzielle Bildverarbeitungskomponente mit einer langen Liste unterstützter Formate.

Sprite and Image Optimization Framework: Microsoft CSS-Sprite, kombiniert mehrere Bilder zu einem großen Bild und CSS-Stilen.

Desktop Application Framework

DevExpress: Eine weltbekannte UI-Steuerungsbibliothek für Desktop-Anwendungen.

Prism: Das von Microsoft für WPF und Silverlight entwickelte MVVM-Framework nutzt die Idee der funktionalen Modularisierung, um komplexe Geschäftsfunktionen und UI-Kopplung zu trennen.

WPFToolkit und Fluent Ribbon Control Suite: Entwickeln Sie Ribbon-Menüs im Office-Stil.

Testen und Leistungsbewertung

Faker.Net: Ein Framework, das die Generierung großer Testdatenmengen erleichtert.

Nunit: Ein leichtes Unit-Test-Framework.

Moq: Ein sehr beliebtes Mock-Framework, das LINQ unterstützt, flexibel und leistungsstark ist.

xUnit: Ein besseres Unit-Testing-Framework als NUnit, eine aktualisierte und verbesserte Version des Nunit-Frameworks.

MiniProfiler und Glimpse: zwei auf MVC basierende Frameworks zur Überwachung von Leistungsereignissen.

Unterstützung für Transaktionen und verteilte Transaktionen

KtmIntegration: Eine transaktionale Open-Source-Klasse, die das NTFS-Dateisystem unterstützt.

NET Transactional File Manager: Transaktionsunterstützung für Dateisystemvorgänge (Kopieren, Verschieben und Löschen) hinzufügen.

Wortsegmentierung, Volltextabfrage und Suchmaschine

Lucene.net: Eine beliebte und leistungsstarke Volltextindexbibliothek, die zur Bereitstellung leistungsstarker Suchfunktionen verwendet werden kann alle Arten von Informationen.

Lucene.Net.Analysis.PanGu: Unterstützt die neueste Version der Pangu-Erweiterungsbibliothek für chinesische Wortsegmentierung von Lucene.Net.

Organisation von Datenvalidierungskomponenten

FluentValidation für .NET: Fluent-Schnittstellenvalidierungskomponente basierend auf der LINQ-Ausdrucksmethodenkette.

Microsoft.Practices.EnterpriseLibrary.Validation.dll: Microsoft Enterprise Library-Validierungsblock.

CuttingEdge.Conditions: Eine Vertragsprogrammierungskomponente basierend auf der Fluent-Schnittstellenmethode.

DotNetOpenAuth: Bieten Sie der Website die Möglichkeit, OpenID, OAuth, InfoCard und andere Authentifizierungen zu unterstützen.

Open-Source-Diagrammstatistiksteuerung:

Visifire: Eine Reihe sehr guter WPF-Diagrammsteuerungen, die 3D-Zeichnungen, Kurven, Polylinien, Sektoren, Ringe und Trapeze unterstützen.

SparrowToolkit: Eine Reihe von WPF-Diagrammsteuerelementen, die das Zeichnen dynamischer Kurven, Oszilloskope, CPU-Auslastung und Wellenformen unterstützen.

DynamicDataDisplay: Microsofts Open-Source-WPF-dynamisches Kurvendiagramm, Liniendiagramm, Blasendiagramm und Wärmekarte.

kann die Kategorie Nachrichtenwarteschlange erweitern, z. B.: Kafka ist ein verteiltes, auf Veröffentlichungen/Abonnements basierendes Nachrichtensystem. Die wichtigsten Entwurfsziele lauten wie folgt:

Bereitstellen von Nachrichtenpersistenzfunktionen mit einer Zeitkomplexität von O(1) und Sicherstellen einer konstanten Zugriffsleistung mit Zeitkomplexität, selbst für Daten über TB-Ebene.

Hoher Durchsatz. Selbst auf sehr günstigen kommerziellen Maschinen kann eine einzelne Maschine die Übertragung von mehr als 100.000 Nachrichten pro Sekunde unterstützen.

Unterstützt die Nachrichtenpartitionierung und den verteilten Verbrauch zwischen Kafka-Servern und stellt gleichzeitig die sequentielle Übertragung von Nachrichten innerhalb jeder Partition sicher.

Unterstützt sowohl die Offline-Datenverarbeitung als auch die Echtzeit-Datenverarbeitung.

Skalieren: Unterstützt die horizontale Online-Erweiterung.

RabbitMQ

RabbitMQ ist eine in Erlang geschriebene Open-Source-Nachrichtenwarteschlange. Sie unterstützt viele Protokolle: AMQP, XMPP, SMTP, STOMP Schwergewichtig und besser für die Entwicklung auf Unternehmensebene geeignet. Gleichzeitig wird die Broker-Architektur implementiert, was bedeutet, dass Nachrichten in der zentralen Warteschlange eingereiht werden, bevor sie an den Client gesendet werden. Es bietet gute Unterstützung für Routing, Lastausgleich oder Datenpersistenz.

ZeroMQ gilt als das schnellste Nachrichtenwarteschlangensystem, insbesondere für Szenarien mit hohem Durchsatzbedarf. ZeroMQ kann erweiterte/komplexe Warteschlangen implementieren, in denen RabbitMQ nicht gut ist, aber Entwickler müssen selbst mehrere technische Frameworks kombinieren. Die technische Komplexität ist eine Herausforderung für die erfolgreiche Anwendung von MQ. ZeroMQ verfügt über ein einzigartiges Nicht-Middleware-Modell. Sie müssen keinen Nachrichtenserver oder Middleware installieren und ausführen, da Ihre Anwendung die Rolle dieses Servers übernimmt. Sie müssen lediglich auf die ZeroMQ-Bibliothek verweisen, die mit NuGet installiert werden kann, und können dann problemlos Nachrichten zwischen Anwendungen senden. Allerdings stellt ZeroMQ nur nicht persistente Warteschlangen bereit, was bedeutet, dass bei einem Ausfall Daten verloren gehen. Unter anderem verwendeten die Storm-Versionen von Twitter vor 0.9.0 standardmäßig ZeroMQ als Datenstromübertragung (Storm unterstützt ab Version 0.9 sowohl ZeroMQ als auch Netty als Übertragungsmodule).

ActiveMQ

ActiveMQ ist ein Unterprojekt unter Apache. Ähnlich wie ZeroMQ kann es Warteschlangen mit Broker- und Peer-to-Peer-Technologie implementieren. Gleichzeitig kann es, ähnlich wie RabbitMQ, komplexe Anwendungsszenarien mit wenig Code effizient implementieren.

Kafka/Jafka

Kafka ist ein Unterprojekt unter Apache. Es ist ein leistungsstarkes, sprachübergreifendes verteiltes Publish/Subscribe-Nachrichtenwarteschlangensystem, und Jafka ist es Basierend auf Kafka Incubated oben ist es eine aktualisierte Version von Kafka. Es verfügt über die folgenden Eigenschaften: schnelle Persistenz, die Nachrichten mit O(1)-System-Overhead beibehalten kann, was eine Durchsatzrate von 10 W/s auf einem normalen Server, Broker, Producer und Consumer erreichen kann; Alle unterstützen nativ und automatisch die Lastverteilung und unterstützen das parallele Laden von Hadoop-Daten. Dies ist eine praktikable Lösung für Protokolldaten und Offline-Analysesysteme wie Hadoop, die Einschränkungen bei der Echtzeitverarbeitung erfordern. Kafka vereinheitlicht die Online- und Offline-Nachrichtenverarbeitung durch den parallelen Lademechanismus von Hadoop. Apache Kafka ist im Vergleich zu ActiveMQ ein sehr schlankes Messaging-System. Neben einer sehr guten Leistung ist es auch ein gut funktionierendes verteiltes System.

Redis

Redis ist eine NoSQL-Datenbank, die auf Schlüssel-Wert-Paaren basiert und aktiv weiterentwickelt und gepflegt wird. Obwohl es sich um ein Schlüsselwert-Datenbankspeichersystem handelt, unterstützt es die MQ-Funktion selbst und kann daher als leichter Warteschlangendienst verwendet werden. Für die Ein- und Ausreihungsvorgänge von RabbitMQ und Redis wird jeder Vorgang 1 Million Mal ausgeführt und die Ausführungszeit wird alle 100.000 Mal aufgezeichnet. Die Testdaten sind in vier verschiedene Größen unterteilt: 128 Byte, 512 Byte, 1 KB und 10 KB. Experimente zeigen, dass die Leistung von Redis beim Eintritt in die Warteschlange höher ist als die von RabbitMQ, wenn die Datengröße relativ klein ist. Wenn die Datengröße jedoch 10 KB überschreitet, ist Redis beim Verlassen der Warteschlange unerträglich langsam und zeigt unabhängig davon eine sehr gute Leistung Die Datengröße und die Dequeue-Leistung von RabbitMQ sind viel geringer als die von Redis.

ZeroMQ


Das obige ist der detaillierte Inhalt vonFassen Sie einige häufig verwendete Frameworks auf der .NET-Plattform zusammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn