Accueil
 > Rapports de TEC > Blogue de TEC > . Microsoft Enablement NET: Analyse et mises en garde

. Microsoft Enablement NET: Analyse et mises en garde

Écrit par : Predrag Jakovljevic
Date de publication : juillet 18 2013

analyse

Comme indiqué précédemment dans cette série, de développer et de déployer une technologie de l'information liée au service Web (IT), l'architecture, plusieurs éléments sont nécessaires : clients intelligents, les serveurs pour héberger des services Web, des outils de développement pour créer, et des applications pour les utiliser. Le Microsoft. NET Framework inclut ces éléments, ainsi que d'un réseau mondial de plus de 35.000 organisations Microsoft Certified Partner de fournir toute aident les utilisateurs pourraient avoir besoin. Pour une définition de la façon dont le Microsoft . Environnement NET traite de la situation, voir subtiles nuances (ou pas si subtile) de Microsoft. NET Enablement .

trois de la série Nuances de Microsoft Subtil (ou pas si subtile) Part. Enablement NET.

Pour une discussion générale sur l'évolution de l'architecture du système, voir architecture Evolution: des grands systèmes vers une architecture orientée services .

Seuls quelques vendeurs Microsoft innovantes centrées ou courageux (ou les deux) se sont engagés dans un effort tripes (mais potentiellement enrichissante) de fournir tout nouveau logiciel écrit en gérée. NET Framework basée sur le code, où la plupart des tâches de base du système sont supprimés à partir du code et «géré» par le. NET Framework. Cette fonctionnalité, qui a été complètement réécrit, ou nouvellement créés en utilisant uniquement le. NET Framework, peut alors être utilisé et accessible via des services Web, comme les exemples de. ("Wrappered") logiciel de contrepartie NET compatible cité dans Exemples de Microsoft. NET Enablement .

Précautions

Toutefois, si l'histoire nous aide à prédire l'avenir, il est extrêmement difficile d'exécuter efficacement cette stratégie de transformation des cadres de logiciels, et seuls les vendeurs les plus débrouillards ou ferme sont inclinés comme gagnants sur le long terme. Ainsi, il faut être conscient de la façon dont la technologie pourrait se développer à l'avenir, tout en menant l'alignement de l'entreprise et de son fonctionnement. L'ensemble du cycle de vie des applications, le coût élevé du développement, du soutien et des améliorations en termes d'argent, de temps et limite de qualité de la capacité des logiciels d'ancienne génération installés pour répondre aux nombreuses demandes des entreprises. Autres points d'achoppement possibles pourraient provenir des faits que la fonctionnalité de l'héritage ne peut pas être accessibles pour des modifications, et que ces environnements peuvent nécessiter une couche supplémentaire de code pour être développée et maintenue pour l'emballage (où le programmeur doit continuer à gérer les tâches du système). En outre, ce saut technologique pourrait ne pas être bien positionné pour l'avenir les progrès technologiques Microsoft, tels que Windows Vista .

fois que d'autres technologies propriétaires sont introduits dans la recherche et le développement (R & D) équation, tout fournisseur doit faire face à la traduction, l'interface et les problèmes de performance, sans parler de la douleur de la migration ou de fidéliser les clients existants à jour, ou de maintenir de multiples versions du produit. En fait, certains fournisseurs retardataires voient même l'architecture orientée services (SOA) et train de services Web comme une occasion de dépeindre des systèmes existants comme «un trésor» des actifs logiciels. Bien que cela puisse vrai pour certaines applications où il n'y a aucune justification économique à «réinventer la roue» (en d'autres termes, pour reproduire ce qui existe déjà, en développant une nouvelle masse salariale ou d'un système de comptabilité générale, par exemple), les utilisateurs et les fournisseurs doivent faire un effort rigoureux pour trier ce trésor et de séparer les «diamants» des «strass». Ils auront à mener un processus de découverte approfondie pour savoir quels sont les actifs fonctionnels qu'ils ont vraiment, et puis prendre des décisions difficiles sur ce qu'il faut garder, ce qu'il faut moderniser, et ce qu'il faut jeter, car le code qui est maintenu servira de fondement d'un référentiel fonctionnel des services qui seront utilisés pour les années à venir.

nombreux fournisseurs, en particulier ceux avec une certaine longévité sur le marché (et même les racines mainframe), aiment créer la conviction que sous SOA, aucun ancien code est mauvais ancien code. Mais la vérité peut être très différente. Certains anciens systèmes ont été autour depuis plus de quarante ans, et même si elles peuvent encore travailler, et faire quelque chose d'utile, tous ne sont utile de garder tels quels. Dans de nombreux cas, les entreprises peuvent s'en tirer avec wrappering comme une mesure temporaire. Finalement, cependant, et contrairement à ce que beaucoup de vendeurs disent, les vendeurs et les entreprises utilisatrices seront obligés de moderniser et de transformer une grande partie de leur code existant. Pour plus d'informations, voir Rewrite ou Wrap-Around ancien logiciel? .

À cette fin, en fait, Epicor Vantage est un exemple d'une application qui est essentiellement positionnée entre l'approche. NET compatible et la réécriture dans le plus pur. NET code managé (ce qui est la prochaine étape de l'évolution, comme on le verra sous peu). Autrement dit, environ 60 pour cent de la Vantage est dans le code. NET gérés (en d'autres termes, un C-base # client intelligent, des outils d'extensibilité, de personnalisation, et ainsi de suite), et toute la logique métier est exposé en tant que services Web (pas wrappered, mais plutôt des services Web générés à partir Progress OpenEdge ). Dans l'effort de réécriture, Epicor recréé une grande partie de la logique métier d'une manière beaucoup plus par composants et granulaire, afin de soutenir les appels de service Web. Par exemple, la capacité de vérification de promettre (CTP) appel que les utilisateurs exigent Vantage ne peut pas fonctionner correctement sans l'. NET Framework.

Certes, la présence de progrès signifie que Vantage n'est pas complètement dans le code. NET géré. Cependant, avec Epicor Vantage n'a pas prévu d'être à 100 pour cent. NET, mais plutôt 100 pour cent SOA. Le vendeur a simplement utilisé. NET pour la majorité de la solution où il fait sens, comme par bibliothèque de liens dynamiques côté client (DLL) de gestion, et a fourni un standard plate-forme de portail d'Epicor basé sur le " dernière et meilleure "technologies Microsoft SharePoint (voir Epicor pour donner à tous ses applications plus qu'un joli lifting ). Lorsque le vendeur n'a pas utilisé. NET, il était d'assurer le choix et la flexibilité pour les clients sur le système d'exploitation de (OS) et sur le côté de la base. À savoir, pure. NET long signifie seulement une pile Microsoft, alors que Epicor peut prendre en charge Microsoft et Linux / Unix OS et Microsoft SQL Server, le progrès et Oracle bases de données (Oracle n'est pas actuellement pris en charge, mais l'intention est de soutenir à l'avenir). Cette décision était importante pour soutenir les gros clients qui tort ou à raison maintiennent une perception que les plates-formes Microsoft ne peut pas évoluer.

SYSPRO s 'design a également été dans le même sens, et le SYSPRO Reporting Services ( SRS ), Analytics , et les applications Web mentionnés dans subtiles nuances (ou pas si subtile) de Microsoft. NET Enablement ont toutes été écrites en utilisant le code. NET géré, alors que le SYSPRO Cyberstore 's. capacité NET compatible est également en vedette dans le SYSPRO BarCode et SYSPRO Système de gestion de l'entreposage ( WMS ), systèmes qui sont intégrés totalement à la planification de base des ressources d'entreprise (ERP) via le. NET Framework.

Est. NET gérés de la bonne façon?

Toutefois, les produits logiciels. NET gérées sont construits entièrement homogène. NET "code managé" composants, ce qui signifie sans emballages. En d'autres termes, gérée. NET est un code qui possède son exécution gérée par une machine virtuelle. NET, comme le . NET Framework Common Language Runtime ( CLR ). Géré se réfère à un procédé d'échange d'informations entre le programme et l'environnement d'exécution, ou à un «contrat de coopération» entre le code exécuté nativement et le moment de l'exécution. Ce contrat stipule que, à tout moment de l'exécution, le temps d'exécution peut arrêter une unité centrale de traitement de exécution (CPU) et de récupérer des informations spécifiques à l'adresse d'instruction de CPU. Les renseignements qui doivent être en mesure requête concerne généralement à l'état moment de l'exécution, comme enregistrer ou empiler contenu de la mémoire.

Les informations nécessaires sont ainsi encodées dans un Microsoft Common Intermediate Language (MCIL ou MSDIL) et les métadonnées associées, ou de l'information symbolique qui décrit tous les points d'entrée et les constructions exposé dans le MCIL (telles que les méthodes et propriétés) et leurs caractéristiques. L'infrastructure du langage commun (CLI) standard (par lequel le CLR est la mise en œuvre commerciale de Microsoft primaire) décrit comment l'information doit être encodé, et les langages de programmation qui cible le temps d'exécution émettent l'encodage correct. Tout un développeur doit savoir, c'est que l'un des langages qui ciblent le temps d'exécution de produire du code managé émis sous forme de exécutable portable fichiers (PE) qui contiennent MCIL et métadonnées.

Comme l'a souligné plus tôt, il ya beaucoup de ces langues au choix, car il ya plus de trente langues fournis par des tiers-tout de COBOL à chameau, en plus de Visual C #, J #, VB. NET, JScript et C + + de Microsoft. Le CLR inclut le système Common Language (CLS), qui fixe les règles et règlements relatifs à la syntaxe de la langue et de la sémantique, ainsi que le système de type commun (CTS), qui définit les types de données qui peuvent être utilisées. Parce que tous les programmes utilisent les services communs dans le CLR, peu importe la langue dans laquelle ils ont été écrits dans de telles applications sont censés utiliser "code managé." Dans un environnement Microsoft Windows, tous les autres codes est venu à être connu comme "le code non managé», alors que dans des environnements non-Windows et mixtes, le code managé est parfois utilisé plus généralement pour désigner n'importe quel langage de programmation interprété.

Avant que le code géré est exécuté, le MCIL est compilé en natif exécutable (machine) du code. En outre, puisque cette compilation se passe dans l'environnement d'exécution managé (ou, plus exactement, par un juste-à-temps [JIT] compilateur qui sait comment cibler l'environnement d'exécution géré), l'environnement d'exécution géré peut donner des garanties au sujet de ce que le code va faire. On peut insérer des pièges et des crochets appropriés de collecte des ordures, la gestion des exceptions, la sécurité de type, les limites du tableau et la vérification des index, et ainsi de suite. Par exemple, un tel compilateur s'assure de disposer des cadres de pile et tout «juste», afin que le garbage collector peut fonctionner en arrière-plan sur un thread séparé, sans cesse remonter la pile d'appel actif, de trouver toutes les racines, et courir vers le bas tous les objets vivants. En outre, parce que le MCIL a une notion de sécurité de type, le moteur d'exécution sera de maintenir la garantie de la sécurité de type, ce qui élimine toute une classe d'erreurs de programmation qui conduisent souvent à des failles de sécurité.

Ceci est traditionnellement considéré comme la compilation JIT, bien que contrairement à la plupart des compilateurs JIT traditionnel, le fichier qui contient le code machine pseudo que la machine virtuelle compile en code machine natif peuvent également contenir des pré-binaires compilés pour différents machines indigènes (comme x86 et PowerPC ). Il s'agit d'un concept similaire à la d'Apple Universal format binaire, qui est perçu par beaucoup comme le système que «jamais accidents." Inversement, les fichiers exécutables non gérés sont essentiellement une image binaire, code x86, chargé en mémoire, dans lequel le compteur de programme obtient mis là, et qui est le dernier système d'exploitation sait. Il ya des protections mises en place autour de la gestion de la mémoire et le port I / O et ainsi de suite, mais le système ne sait pas réellement ce que fait l'application. Par conséquent, il ne peut faire aucune garantie sur ce qui se passe lorsque l'application s'exécute.

Cela signifie que. logiciel NET géré devrait bénéficier de la performance et de nombreux avantages en matière de sécurité du code. NET géré, depuis le CLR gère la plupart des tâches de base qui étaient gérés auparavant par un programmeur dans l' code de l'application, y compris les contrôles de sécurité et la gestion de la mémoire. NET. Produits gérés seront aussi probablement plus facilement fonctionner comme "code natif" sur Microsoft Vista et le futur OS de Microsoft et les progrès technologiques, en fournissant un autre avantage important. Enfin, les développeurs. NET qui ont une expérience avec du code managé confirmeront que ce nouveau paradigme de programmation leur permet de développer et d'étendre les applications en un temps record et avec une amélioration significative de la qualité. Cela est dû à la capacité de créer un nouveau logiciel "maigre" avec beaucoup moins de lignes de code, qui fonctionne nativement sur. NET Framework.

utilisant des technologies qui sont compatibles intrinsèquement devrait se traduire par le développement plus rapide et moins coûteuse. En conséquence, toute suite de l'application, une fois qu'il a été complètement réécrit dans le cadre du code NET géré Microsoft., Ne devraient pas avoir à composer avec les conflits de la technologie, les compromis, ou d'inefficacité résultant du mélange ou de conditionnement technologies. En revanche, aucun fournisseur qui couvre de multiples plateformes passe souvent plus de la moitié de son budget de R & D sur les problèmes de portage, ainsi, une solution multi-plateforme reste largement l'apanage (et la charge conséquente) de ne plus gros vendeurs.

 
comments powered by Disqus

Recherches récentes :
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Others

©2014 Technology Evaluation Centers Inc. All rights reserved.