Heim >Backend-Entwicklung >C#.Net-Tutorial >Detaillierte Einführung häufig verwendeter Frameworks basierend auf der .NET-Plattform
Seit ich .NET gelernt habe, haben mich der elegante Programmierstil, die extrem einfache Skalierbarkeit, die ausreichend leistungsstarken Entwicklungstools und die minimale Lernkurve sehr interessiert. Außerdem habe ich in meiner Arbeit und meinem Studium einige Open-Source-Kenntnisse gesammelt Ich werde sie hier vorerst aussortieren. Wenn ich noch einmal darüber nachdenke, werde ich dieses Protokoll mit der Zeit weiter ergänzen und meine eigene Komponentenerfahrungsbibliothek erstellen.
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.
OXITE: Microsoft ASP.NET MVC-Falldemonstrationsframework.
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:
Log4Net.dll: leichtes, kostenloses und Open-Source-.NET-Protokollierungsframework.
Enterprise Library Log Application Black: Protokollaufzeichnung der Microsoft Enterprise Library.
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.
Mongodb: verteilte Dateispeicherdatenbank.
Membase: Ein neues Schwergewichtsmitglied der Familie.
Quartz.NET: Ein Open-Source-Jobplanungs- und automatisches Aufgaben-Framework.
Topshelf: Ein weiteres Open-Source-Framework zum Erstellen von Windows-Diensten
Unity: Ein IOC-Abhängigkeitsinjektions-Framework, das vom Patterns&Practicest-Team von Microsoft entwickelt wurde und übergreifende AOP-Anliegen unterstützt.
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 und leistungsstark und erfordert keine Änderungen an der Zielabfangmethode.
Ninject: Abhängigkeitsinjektions-IOC-Framework basierend auf .NET Lightweight Open Source
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 leichtgewichtiges Open-Source-ORM-Framework für Kettenabfragen basierend auf der Fluent-API.
Dapper: Ein leichtes und leistungsstarkes ORM-Framework basierend auf EMIT.
EmitMapper: Ein leistungsstarkes ORM-Framework, das IL-Code durch EMIT zur Laufzeit dynamisch generiert, anstatt einen Reflexionsmechanismus zu verwenden.
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: Die von Microsoft in WCF verwendeten 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.
Clay Dynamic: 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.
MONO.NET: Eine plattformübergreifende .NET-Betriebsumgebung, 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: .NET-Laufzeit, die von China Mobile Fetion verwendet wird.
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: Virtuelle JAVA-Maschine basierend auf .NET, die die Ausführung von JAVA auf .NET ermöglicht.
Jumony Core: HTML-Engine, die auf Basis von .NET entwickelt wurde.
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: Die offizielle Open-Source-Bibliothek von Microsoft zur Verhinderung von Cross-Site-Angriffen durch XSS-Skripte. 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-Komponente für die Entwicklung von Unternehmensanwendungen.
PowerCollections: Eine fortschrittliche Open-Source-Sammlung, die von einer talentierten Person im Ausland geschrieben wurde.
PushSharp: Push-Nachrichten über .NET an verschiedene mobile Plattformen senden.
Mono für Android: Entwickeln Sie Android-Anwendungen mit der .NET-Sprache:
MonoTouch: Verwenden Sie die .NET-Sprache, um IOS-Anwendungen zu entwickeln.
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 von PhoneGap.
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.
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: Kommerzielle Bildverarbeitungskomponente, die viele Formate unterstützt.
Sprite and Image Optimization Framework: Microsoft CSS-Sprite, kombiniert mehrere Bilder zu einem großen Bild und CSS-Stilen.
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.
Faker.Net: Ein Framework, das die Generierung großer Testdatenmengen erleichtert.
Nunit: Ein leichtes Unit-Test-Framework.
Moq: Ein sehr beliebtes Mock-Framework, unterstützt LINQ, ist flexibel und leistungsstark.
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.
KtmIntegration: Eine transaktionale Open-Source-Klasse, die das NTFS-Dateisystem unterstützt.
NET Transactional File Manager: Transaktionsunterstützung für Dateisystemvorgänge hinzufügen (Kopieren, Verschieben und Löschen).
Lucene.net: Eine beliebte Hochleistungs-Volltextindizierungsbibliothek, mit der leistungsstarke Suchfunktionen für alle Arten von Informationen bereitgestellt werden können.
Lucene.Net.Analysis.PanGu: Unterstützt die neueste Version der Pangu-Erweiterungsbibliothek für chinesische Wortsegmentierung von Lucene.Net.
FluentValidation für .NET: Fluent-Schnittstellenüberprüfungskomponente basierend auf der LINQ-Ausdrucksmethodenkette.
Microsoft.Practices.EnterpriseLibrary.Validation.dll: Microsoft Enterprise Library-Validierungsblock.
CuttingEdge.Conditions: Eine Vertragsprogrammierungskomponente basierend auf der Fluent-Schnittstellenmethode.
DotNetOpenAuth: Bietet der Website die Möglichkeit, Identitätsauthentifizierung wie OpenID, OAuth, InfoCard usw. zu unterstützen.
Visifire: Eine Reihe sehr effektiver WPF-Diagrammsteuerelemente, die 3D-Zeichnungen, Kurven, Polylinien, Sektoren, Ringe und Trapeze unterstützen.
SparrowToolkit: Eine Reihe von WPF-Diagrammsteuerelementen, die das Zeichnen dynamischer Kurven unterstützen und Oszilloskope, CPU-Auslastung und Wellenformen zeichnen können.
DynamicDataDisplay: Microsofts Open-Source-WPF-dynamische Kurvendiagramme, Liniendiagramme, Blasendiagramme und Heatmaps.
Die Kategorie Nachrichtenwarteschlange kann erweitert werden, z. B.: Kafka ist ein verteiltes, auf Veröffentlichungen/Abonnements basierendes Nachrichtensystem. Die wichtigsten Designziele sind wie folgt:
Es bietet Nachrichtenpersistenzfähigkeit mit einer Zeitkomplexität von O(1) und gewährleistet so eine konstante Zugriffsleistung mit Zeitkomplexität, selbst für Daten über der 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 gewährleistet gleichzeitig die sequentielle Übertragung von Nachrichten innerhalb jeder Partition.
Unterstützt sowohl die Offline-Datenverarbeitung als auch die Echtzeit-Datenverarbeitung.
Scale-Out: 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. Aus diesem Grund ist sie sehr schwer 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.
Redis
Redis ist eine NoSQL-Datenbank, die auf Schlüssel-Wert-Paaren basiert und aktiv entwickelt 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 Enqueue- und Dequeue-Vorgä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 Redis zeigt trotzdem eine sehr gute Leistung Die Datengröße und die Dequeue-Leistung von RabbitMQ sind viel geringer als die von Redis.
ZeroMQ
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 handelt sich um ein leistungsstarkes, sprachübergreifendes Publish/Subscribe-Nachrichtenwarteschlangensystem, das auf Kafka basiert, einer aktualisierten 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 leichtes Messaging-System. Neben einer sehr guten Leistung ist es auch ein gut funktionierendes verteiltes System.
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung häufig verwendeter Frameworks basierend auf der .NET-Plattform. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!