Introduction détaillée des frameworks couramment utilisés basés sur la plateforme .NET

黄舟
Libérer: 2017-03-09 15:37:37
original
1492 Les gens l'ont consulté

Depuis que j'ai appris .NET, le style de programmation élégant, l'évolutivité extrêmement simple, les outils de développement suffisamment puissants et la courbe d'apprentissage minimale m'ont rendu très intéressé par cette plate-forme, et j'ai également accumulé des connaissances open source dans mon travail et mes études sur les composants. Je vais les trier ici pour le moment. Si j'y repense, je continuerai à ajouter à ce journal au fil du temps, je formerai ma propre bibliothèque d'expériences de composants.

Framework de mise en cache distribué :

Microsoft Velocity : le propre framework de service de cache distribué de Microsoft.

Memcahed : Un système de mise en cache distribué qui est actuellement utilisé par de nombreux sites Web pour améliorer la vitesse d'accès aux sites Web.

Redis : Il s'agit d'une base de données KV hautes performances. Son émergence compense largement les lacunes de Memcached sur certains aspects.

EnyimMemcached : Accédez au meilleur client .NET de Memcached, intégrant un bon algorithme d'équilibrage distribué.

Système .NET open source recommandé :

OXITE : framework de démonstration de cas Microsoft ASP.NET MVC.

PetShop : animalerie Microsoft ASP.NET.

Orchard : un système de blog open source MVC étranger.

SSCLI : le code open source de Microsoft à l'ère du NET Framework 2.0.

DasBlog : Un système de blog étranger basé sur ASP.NET.

BlogEngine.NET : Un système de blogs étranger gratuit et open source.

Dotnetnuke.NET : Un très excellent programme de portail open source basé sur ASP.NET.

Discuz.NET : système communautaire de forum open source national.

nopCommerce et Aspxcommerce : un système de site Web B2C open source étranger de haute qualité.

JumboTCMS et DTCMS : Deux systèmes nationaux de gestion de sites Web open source :

Gestion des exceptions de journalisation :

Log4Net.dll : framework de journalisation .NET open source léger et gratuit.

Application de journal de bibliothèque d'entreprise noire : enregistrement du journal de bibliothèque d'entreprise Microsoft.

Elmah : implémente le framework de journalisation des exceptions d'application ASP.NET le plus populaire.

NLog : Il s'agit d'une bibliothèque de journalisation simple et flexible avec des performances supérieures à Log4Net et plus facile à utiliser et à maintenir.

À propos des bases de données NoSQL :

Mongodb : base de données de stockage de fichiers distribuée.

Membase : Un nouveau membre poids lourd de la famille.

Cadre de planification automatique des tâches

Quartz.NET : Un cadre open source de planification des tâches et de tâches automatiques.

Topshelf : Un autre framework open source pour créer des services Windows

Cadre de conteneur IOC d'injection de dépendances :

Unity : un framework d'injection de dépendances IOC développé par l'équipe Patterns&Practicest de Microsoft, prenant en charge les préoccupations transversales d'AOP.

MEF (Managed Extensibility Framework) : C'est un framework utilisé pour étendre les applications .NET et peut développer des systèmes de plug-ins.

Spring.NET : injection de dépendances, programmation orientée aspect (AOP), abstraction de l'accès aux données et intégration ASP.NET.

Autofac : le framework d'injection de dépendances et d'IOC le plus populaire, léger et performant, avec presque aucune intrusion dans le code du projet.

PostSharp : implémente les préoccupations transversales de l'AOP statique, est simple à utiliser et puissant, et ne nécessite aucune modification de la méthode d'interception cible.

Ninject : framework IOC d'injection de dépendances basé sur l'open source léger .NET

Plusieurs frameworks ORM couramment utilisés :

EF (ADO.NET Entity Framework) : framework ORM développé par Microsoft basé sur ADO.NET.

Nhibernate : Un framework ORM léger pour l'environnement .NET.

SqlMapper.cs : Une classe d'accès à la base de données C# commune pour les petits projets.

AutoMapper : un framework de mappage d'objets populaire qui peut réduire beaucoup de codage en dur, est compact et flexible et offre des performances acceptables.

SubSonic : Un excellent framework de cartographie ORM open source, et fournit également un générateur de code qui répond à vos propres besoins.

FluentData : un framework léger ORM de requêtes en chaîne open source basé sur l'API Fluent.

Dapper : Un framework ORM léger et performant généré sur la base d'EMIT.

EmitMapper : un framework ORM hautes performances qui génère dynamiquement du code IL via EMIT pendant l'exécution au lieu d'utiliser un mécanisme de réflexion.

Conversion de format et de type de données

Newtonsoft.Json : Actuellement la bibliothèque de sérialisation JSON la plus populaire dans le développement .NET, fournissant la base de la nouvelle version de la bibliothèque WebApi.

System.JSON.dll : composant de sérialisation JSON développé par Microsoft (doit être téléchargé séparément)

DataContractJsonSerializer et DataContractXmlSerializer : Les sérialiseurs utilisés par Microsoft dans WCF.

JavaScriptSerializer : le formateur JSON par défaut de Microsoft pour les développeurs WEB.

iTextSharp, PDFsharp et PDF.NET : composants pour le traitement et la génération de documents PDF via .NET.

SharpZipLib.dll : Composant de décompression de fichiers ZIP et GZIP gratuit et open source.

Math.NET : opérations mathématiques puissantes, calcul, résolution d'équations et opérations scientifiques.

DocX : Pas besoin d'installer un logiciel Word, exploitez les fichiers Word via C#.

SharpSerializer : Open source XML, binaire, JSON, framework de compression et d'optimisation.

Réflexion et langages dynamiques

Clay Dynamic : Le cadre dynamique du langage dynamique open source vous permet de créer des objets à la manière de JavaScript.

ExposedObject : accédez aux membres privés en dehors de la classe via un langage dynamique.

PrivateObject : une classe dans le cadre de tests unitaires Microsoft qui facilite les appels externes aux membres privés d'une classe.

Solutions multiplateformes et d'exécution

MONO.NET : Un environnement d'exploitation .NET multiplateforme, permettant d'exécuter .NET multiplateforme.

DotGnu Portable.NET : un runtime multiplateforme similaire à MONO.NET.

Phalanger : Compilez PHP en .NET pour obtenir l'interopérabilité entre PHP et .NET.

VMDotNet : runtime .NET utilisé par China Mobile Fetion.

Unity3D : un framework de développement de jeux multiplateforme pour C# et JavaScript fortement pris en charge par Microsoft.

Cassini, IIS Express et Cassinidev : environnement d'exécution ASP.NET open source.

Katana : hébergement non-IIS de Microsoft ASP.NET et MVC basé sur la spécification OWIN.

IKVM.NET : Machine virtuelle JAVA basée sur .NET, permettant à JAVA de s'exécuter sur .NET.

Développement et conception WEB

Jumony Core : moteur HTML développé basé sur .NET.

Microsoft.mshtml.dll, Winista.HtmlParser.dll et HtmlAgilityPack.dll : Framework d'analyse et de traitement des documents HTML.

JavaScript.NET et ClearScript (produits par Microsoft)  : Moteur JavaScript développé sur la base de .NET.

NCrawler : Logiciel de robot d'exploration de sites Web open source avec son moteur de traitement HTML htmlagilitypack.

AntiXSS : la bibliothèque open source officielle de Microsoft pour empêcher les attaques d'intrusion de scripts XSS intersites. Elle encode le contenu via un mécanisme de liste blanche.

YUICompressor.NET, Microsoft Ajax Minifier et Google Closure Compiler : compresseurs JavaScript et CSS.

NancyFx : C'est un bon framework WEB .NET open source léger. Si vous souhaitez réaliser une application WEB simple et rapide.

AspNetPager : un contrôle de pagination ASP.NET domestique bien connu qui prend en charge plusieurs méthodes de pagination.

NOPI.dll : Plug-in pour l'exportation de rapports Excel (implémenté sur la base de Microsoft OpenXml) (nopi.css.dl définit le style via CSS)

Enterprise Library : le composant des meilleures pratiques de Microsoft pour le développement d'applications d'entreprise.

PowerCollections : Une collection open source avancée écrite par une personne talentueuse à l'étranger.

Internet mobile et cloud computing

PushSharp : envoyez des messages vers diverses plates-formes mobiles via .NET.

mono pour Android : Développer des applications Android en utilisant le langage .NET :

MonoTouch : Utilisez le langage .NET pour développer des applications IOS.

PhoneGap et AppCan : plateformes de développement mobile multiplateformes basées sur HTML5.

Cordova : un projet open source apporté par PhoneGap à Apache. C'est le moteur principal de PhoneGap.

Communication réseau et protocoles réseau

SuperSocket : Un framework de développement Socket léger et extensible basé sur .NET.

SuperWebSocket : implémente le framework TML5 WebSocket via .NET.

XProxy : un assemblage de proxy de base qui prend en charge les plug-ins, avec NAT intégré, cryptage et déchiffrement, proxys inverses, directs et indirects.

Framework de traitement graphique et d'image

Paint.NET : Un petit projet open source de traitement graphique flexible et puissant basé sur .NET.

Imagemagick.NET : utilisez C# pour encapsuler le composant de traitement d'image open source Imagemagick.

Skimpt : Logiciel de capture d'écran basé sur l'open source .NET.

ImageGlue.NET : Composant de traitement d'image commercial, supportant de nombreux formats.

Sprite and Image Optimization Framework : sprite Microsoft CSS, combinez plusieurs images en une grande image et des styles CSS.

Cadre d'application de bureau

DevExpress : une bibliothèque de contrôle d'interface utilisateur de renommée mondiale pour les applications de bureau.

Prism : Le framework MVVM développé par Microsoft pour WPF et Silverlight utilise l'idée de modularisation fonctionnelle pour séparer les fonctions métier complexes et le couplage UI.

WPFToolkit et Fluent Ribbon Control Suite : Développez des menus du ruban de style Office.

Tests et évaluation des performances

Faker.Net : Un framework qui facilite la génération de grands lots de données de test.

Nunit : Un framework de tests unitaires léger.

Moq : un framework Mock très populaire, prend en charge LINQ, est flexible et performant.

xUnit : Un meilleur framework de tests unitaires que NUnit, une version mise à niveau et améliorée du framework Nunit.

MiniProfiler et Glimpse : deux frameworks de surveillance des événements de performances basés sur MVC.

Prise en charge des transactions et des transactions distribuées

KtmIntegration : Une classe open source transactionnelle qui prend en charge le système de fichiers NTFS.

NET Transactional File Manager : ajoutez la prise en charge des transactions pour les opérations du système de fichiers (copier, déplacer et supprimer).

Segmentation de mots, récupération de texte intégral et moteur de recherche

Lucene.net : une bibliothèque d'indexation de texte intégral hautes performances populaire qui peut être utilisée pour fournir de puissantes capacités de recherche pour tous les types d'informations.

Lucene.Net.Analysis.PanGu : prend en charge la dernière version de la bibliothèque d'extension de segmentation de mots chinois Pangu de Lucene.Net.

Organisation du composant de validation des données

FluentValidation pour .NET : composant de vérification d'interface fluide basé sur la chaîne de méthodes d'expression LINQ.

Microsoft.Practices.EnterpriseLibrary.Validation.dll : bloc de validation de la bibliothèque Microsoft Enterprise.

CuttingEdge.Conditions : Un composant de programmation contractuelle basé sur la méthode d'interface Fluent.

DotNetOpenAuth : Fournit au site Web la possibilité de prendre en charge l'authentification d'identité telle que OpenID, OAuth, InfoCard, etc.

Contrôle des statistiques de graphiques open source :

Visifire : Un ensemble de contrôles graphiques WPF très efficaces, prenant en charge le dessin 3D, les courbes, les polylignes, les secteurs, les anneaux et les trapèzes.

SparrowToolkit : un ensemble de contrôles graphiques WPF qui prennent en charge le dessin de courbes dynamiques et peuvent dessiner des oscilloscopes, l'utilisation du processeur et des formes d'onde.

DynamicDataDisplay : graphiques de courbes dynamiques WPF open source, graphiques linéaires, graphiques à bulles et cartes thermiques de Microsoft.

La catégorie Message Queue peut être étendue, par exemple : Kafka est un système de messagerie distribué, basé sur la publication/l'abonnement. Les principaux objectifs de conception sont les suivants :

Il offre une capacité de persistance des messages avec une complexité temporelle de O(1), garantissant des performances d'accès à complexité temporelle constante, même pour les données dépassant le niveau de la To.

Débit élevé. Même sur des machines commerciales très bon marché, une seule machine peut prendre en charge la transmission de plus de 100 000 messages par seconde.

Prend en charge le partitionnement des messages et la consommation distribuée entre les serveurs Kafka, tout en garantissant la transmission séquentielle des messages au sein de chaque partition.

Prend en charge à la fois le traitement des données hors ligne et le traitement des données en temps réel.

Scale-out : prend en charge l’expansion horizontale en ligne.

LapinMQ

RabbitMQ est une file d'attente de messages open source écrite en Erlang. Elle prend en charge de nombreux protocoles : AMQP, XMPP, SMTP, STOMP. De ce fait, elle est très lourde et plus adaptée au développement au niveau de l'entreprise. Parallèlement, l'architecture Broker est implémentée, ce qui signifie que les messages sont mis en file d'attente dans la file d'attente centrale avant d'être envoyés au client. Il prend en charge le routage, l’équilibrage de charge ou la persistance des données.

Redis

Redis est une base de données NoSQL basée sur des paires clé-valeur et est activement développée et maintenue. Bien qu'il s'agisse d'un système de stockage de base de données clé-valeur, il prend en charge la fonction MQ elle-même, il peut donc être utilisé comme service de file d'attente léger. Pour les opérations de mise en file d'attente et de retrait de RabbitMQ et Redis, chacune est exécutée 1 million de fois et le temps d'exécution est enregistré toutes les 100 000 fois. Les données de test sont divisées en quatre tailles différentes de 128 octets, 512 octets, 1 Ko et 10 Ko. Les expériences montrent que lors de l'entrée dans la file d'attente, les performances de Redis sont supérieures à celles de RabbitMQ lorsque les données sont relativement petites, mais si la taille des données dépasse 10 Ko, Redis est insupportablement lent à la sortie de la file d'attente, Redis affiche de très bonnes performances indépendamment ; la taille des données et les performances de sortie de file d'attente de RabbitMQ sont bien inférieures à celles de Redis.

ZéroMQ

ZeroMQ est connu comme le système de file d'attente de messages le plus rapide, en particulier pour les scénarios de demande à haut débit. ZeroMQ peut implémenter des files d'attente avancées/complexes pour lesquelles RabbitMQ n'est pas doué, mais les développeurs doivent eux-mêmes combiner plusieurs cadres techniques. La complexité technique est un défi pour l'application réussie de MQ. ZeroMQ a un modèle unique sans middleware, vous n'avez pas besoin d'installer et d'exécuter un serveur de messages ou un middleware, car votre application jouera le rôle de ce serveur. Il vous suffit de référencer la bibliothèque ZeroMQ, qui peut être installée à l'aide de NuGet, et vous pourrez ensuite facilement envoyer des messages entre applications. Mais ZeroMQ ne fournit que des files d'attente non persistantes, ce qui signifie qu'en cas de panne, les données seront perdues. Parmi elles, les versions Storm de Twitter antérieures à 0.9.0 utilisaient ZeroMQ comme transmission de flux de données par défaut (Storm prend en charge ZeroMQ et Netty comme modules de transmission à partir de la version 0.9).

ActiveMQ

ActiveMQ est un sous-projet sous Apache. Semblable à ZeroMQ, il peut implémenter des files d’attente avec une technologie de courtier et peer-to-peer. Dans le même temps, à l’instar de RabbitMQ, il peut implémenter efficacement des scénarios d’application avancés avec une petite quantité de code.

Kafka/Jafka

Kafka est un sous-projet sous Apache. Il s'agit d'un système de file d'attente de messages de publication/abonnement distribué multilingue hautes performances, incubé au-dessus de Kafka, qui est une version améliorée de Kafka. Il présente les caractéristiques suivantes : une persistance rapide, qui peut effectuer la persistance des messages avec une surcharge du système O(1) ; un débit élevé, qui peut atteindre un débit de 10 W/s sur un système entièrement distribué, un courtier, un producteur et ; Les consommateurs prennent tous en charge la distribution de manière native et automatique et implémentent automatiquement l'équilibrage de charge ; prennent en charge le chargement parallèle des données Hadoop. Il s'agit d'une solution réalisable pour les données de journal et les systèmes d'analyse hors ligne comme Hadoop qui nécessitent des limitations de traitement en temps réel. Kafka unifie le traitement des messages en ligne et hors ligne grâce au mécanisme de chargement parallèle de Hadoop. Apache Kafka est un système de messagerie très léger par rapport à ActiveMQ. En plus de très bonnes performances, c'est également un système distribué qui fonctionne bien.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal