Maison  >  Article  >  développement back-end  >  Résumer quelques frameworks couramment utilisés sur la plateforme .NET

Résumer quelques frameworks couramment utilisés sur la plateforme .NET

零下一度
零下一度original
2017-06-24 09:22:264182parcourir

Framework de 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èmes .NET open source recommandés :

OXITE : cadre 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 NET Framework 2.0.

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

BlogEngine.NET : Un système de blogging é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 : Un framework de journalisation .NET léger, gratuit et open source.

Application de journal de bibliothèque d'entreprise noire : journalisation de la 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 est 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 de planification des tâches et de tâches automatique open source.

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

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

Unity : Microsoft The Le cadre d'injection de dépendances IOC développé par l'équipe patterns&practicest prend en charge les préoccupations transversales de l'AOP.

MEF (Managed Extensibility Framework) : Il s'agit d'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 d'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, 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 : Microsoft dans WCF Sérialiseur utilisé dans .

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.

Langage de réflexion et dynamique

Clay dynamique : Le framework dynamique de 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'exécution .NET multiplateforme qui permet 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 : Le 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 : Une machine virtuelle Java basée sur .NET qui permet à JAVA de s'exécuter sur .NET.

Développement et conception WEB

Jumony Core : moteur HTML développé sur la base de .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 : les composants 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éveloppez des applications Android en utilisant le langage .NET :

MonoTouch : Développez des applications iOS en utilisant le langage .NET.

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 qui pilote 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.

Cadre 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 : Un composant de traitement d'image commercial avec une longue liste de formats pris en charge.

Cadre d'optimisation de sprites et d'images : sprite Microsoft CSS, combinez plusieurs images en une seule grande image et des styles CSS.

Desktop Application Framework

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'index de texte intégral populaire et performante qui peut être utilisée pour fournir de puissantes capacités de recherche pour tous 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 des composants de validation des données

FluentValidation pour .NET : composant de validation d'interface Fluent 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 : Fournissez au site Web la possibilité de prendre en charge OpenID, OAuth, InfoCard et d'autres authentifications.

Contrôle des statistiques de graphiques open source :

Visifire : Un ensemble de très bons contrôles de graphiques WPF qui prennent 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, d'oscilloscopes, d'utilisation du processeur et de formes d'onde.

DynamicDataDisplay : graphique de courbes dynamiques WPF open source, graphique linéaire, graphique à bulles et carte thermique de Microsoft.

peut étendre la catégorie file d'attente de messages , par exemple : Kafka est un système de messagerie distribué, basé sur la publication/l'abonnement. Les principaux objectifs de conception sont les suivants :

Fournir des capacités de persistance des messages avec une complexité temporelle de O(1) et garantir des performances d'accès à complexité temporelle constante, même pour les données supérieures au 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.

Évolutivité : prise en charge de l'expansion horizontale en ligne.

RabbitMQ

RabbitMQ est une file d'attente de messages open source écrite en Erlang. Elle prend en charge de nombreux protocoles : AMQP, XMPP, SMTP, STOMP. Pour cette raison, elle est très. lourd et plus adapté 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.

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 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, et Jafka l'est. basé sur Kafka Incubated ci-dessus, il s'agit d'une version améliorée de Kafka. Il présente les caractéristiques suivantes : une persistance rapide, qui peut conserver les 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é, courtier, producteur et consommateur ; tous prennent en charge de manière native et automatique la distribution 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 journaux 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.

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


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!

Déclaration:
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