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
