INFOTEL, The web-to-database company

Rechercher :  Imprimer Plan du site Contact Version française Version anglaise Version américaine

Dossiers L’œil du spécialiste .NET : le multi-plates-formes Microsoft

Ouvrir et faire évoluer le S.I.

.NET : le multi-plates-formes Microsoft

Une plate-forme plus qu’un framework

Au travers des différentes publications d’Infotel, le terme « framework » vous est devenu familier. Que l’on parle de framework Java comme « Struts » de la communauté Jakarta ou « Infosocle » réalisé par Infotel, les objectifs de ces produits sont identiques : fournir aux concepteurs un cadre technique structurant et aux développeurs des outils simplifiant leurs travaux. Dans ces deux cas, nous parlerons de framework de développement.
Avec le framework .NET, Microsoft apporte davantage : il s’agit d’une véritable plate-forme de développement et d’exécution d’applications de nouvelle génération (comprenez « architecture distribuée multi-plates-formes »).

Les concepts de base du framework

L’architecture du framework .NET, aussi complexe qu’en soit son implémentation, est relativement facile à appréhender.
L’ambition de ce framework est d’exécuter n’importe où des applications écrites une seule fois dans n’importe quel langage évolué.
Ainsi, pour exécuter des applications sur tout OS, les règles d’implémentation à respecter lors de la création des librairies d’exécution spécifiques à chaque OS doivent être définies. Pour que ces applications disposent des mêmes possibilités quel que soit l’OS, un ensemble de services de base indépendants de l’OS, dit « sans adhérence à l’OS », et bénéficiant de l’approche objet doit être défini. Pour écrire ces applications dans n’importe quel langage, il faut un langage intermédiaire unique et des règles strictes de transcodage doivent être définies. Ils serviront de base à la réalisation de transcodeurs spécifiques à chaque langage source.

L’implémentation .NET

Concernant le framework .NET, la réponse de Microsoft est la suivante :

  • Common Language Runtime (CLR) : définit les règles d’implémentation de librairies d’exécution pour .NET ;
  • Framework Class Library (FCL) : ensemble de classes (objets) implémentant les services de base de .NET et fonctionnant sur tous les OS car compilées dans le langage intermédiaire de .NET ;
  • Microsoft Intermediate Language (MsIL) : langage intermédiaire de .NET, le seul compréhensible par les librairies d’exécution de .NET ;
  • Common Language Specification (CLS) : ensemble de règles permettant de créer des transcodeurs de n’importe quel langage, à quelques concessions et figures imposées près, vers MsIL et inversement.

Vous noterez que la CLS permet de passer d’un langage évolué au MsIL et inversement ! Ceci permet, en particulier, de disposer d’un unique environnement de test dynamique (débogueur) quel que soit le langage de développement utilisé. Ainsi, il est possible de définir des points d’arrêts, visualiser les variables dynamiques, consulter la pile d’appels, faire s’exécuter le code ligne à ligne manuellement… Un confort sans équivalent à ce jour.

Qui peut programmer en .NET ?

Toute personne connaissant au moins un langage « transcodable » en MsIL peut programmer en .NET. En voici une liste non exhaustive : Ada, APL, C++ (dans sa version « Managed »), C#, Cobol, Delphi, Eiffel, Fortran, J#, JScript, ML, Pascal, Perl, Python, SmallTalk, Visual basic et bien d’autres. À noter que la liste s’allonge régulièrement (plusieurs dizaines effectifs ou prévus).
Afin de simplifier la tâche des développeurs, tous ces langages sont utilisables dans un même environnement de développement : Visual Studio .NET. Il est également possible de les utiliser simultanément dans le développement des différents modules d’une même application ! En effet, la CLS permettant la réversibilité du code MsIL, les développements écrits en Cobol pourront, par exemple, être relus en Visual Basic ou en C# ! Pratique pour intégrer au sein de projets nouvelles technologies des profils mainframe ou apprendre un nouveau langage par comparaison des sources.

. Comment déployer du .NET ?

Si vous évoluez au sein du monde mainframe, la problématique de déploiement vous est sans doute peu familière. Mais au sein du monde client-serveur ou Internet, vous avez inévitablement été confronté aux conflits de versions, incompatibilités ascendantes, descendantes et au final exaspérantes !
Sur ce point, .NET nous simplifie une nouvelle fois la tâche en fournissant :

  • des services permettant aux applications de signaler à la CLR les ressources dont elles ont besoin pour fonctionner (version minimale, maximale ou spécifique du framework ou des librairies) ;
  • des services d’interopérabilité (via la FCL) permettant aux applications .NET d’interagir avec les applications natives présentes sur le poste ;
  • un repository (référentiel de stockage) contenant les modules partagés entre les applications .NET, leurs différentes versions cohabitant sans conflit.

Tout ceci permet d’installer votre application .NET par une simple copie de ses fichiers dans un répertoire banalisé ! Et si vous souhaitez partager vos modules entre vos applications, copiez-les simplement dans le repository .NET.

Et la mobilité ?

Que ce soit PocketPC, TabletPC ou SmartPhone, tous disposent du .NET Compact Framework.
Ce sous-ensemble du framework .NET permet de mutualiser les développements entre les versions desktop et mobiles de vos applications. En effet, une application .NET s’exécutant sur un PDA pourra communiquer indifféremment avec une base de données SQL Server lors d’une connexion directe au réseau de l’entreprise ou avec une version allégée appelée SQL CE en mode déconnecté. La synchronisation s’effectuant de manière transparente pour l’utilisateur.
Le .NET Compact Framework apporte également un grand confort pour le développeur. Des émulateurs sont disponibles et il est possible de déboguer une application que celle-ci s’exécute en local sur le desktop ou au sein d’un émulateur, ou à distance sur un PDA !

Figure 1 : Application .NET mobile

Faisons preuve d’objectivité

Quelques restrictions sont, tout de même, à apporter à ce qui vient d’être exposé. La principale faiblesse de .NET réside dans le nombre d’OS supportés. À ce jour, seules les plates-formes Windows sont concernées (Windows 98, Windows Me, Windows NT4, Windows XP, Windows 2000, PocketPC).
Son concurrent direct, la plate-forme J2EE ou plutôt les plates-formes basées sur l’architecture J2EE, possèdent plusieurs années d’avance sur le plan de la portabilité : elles fonctionnent sur tous les OS. De plus, selon Microsoft, .NET a encore des difficultés à se faire accepter par les grandes entreprises, par le manque de maturité, le côté propriétaire et la réputation de vulnérabilité de ses solutions. Un challenge que Microsoft, lors des derniers DevDays 2003, s’est dit prêt à relever.

Karim REFEYTON

Dossiers Infotel
Michel KOUTCHOUK
Tél. +33 (0)1 48 97 38 38
dossiers@infotel.com

retour au sommaire




© Infotel 2009. Dernière mise à jour le 2 janvier 2009
http://www.infotel.com - Tél. + 33 (0)1 48 97 38 38 - Informations légales