Title-tribunes

L’adoption de l’innovation
Par Bernard Golden, Navica Software (en anglais)

Le Surplus cognitif : du gin et des sitcoms à Web 2.0 Expo !
Par Jean-Marie Chauvet

Microsoft : REMIX 08 dans la Silicon Valley par Jean-Marie Chauvet

Vos applications nous intéressent ! par Jean-Marie Chauvet

OOXML : My Crystal Ball is Cloudy
Par Bernard Golden, Navica Software (en anglais)

Toute les tribunes

Title-poll
Pensez-vous que le rachat d'EDS est une bonne chose pour les clients d'HP ?

Tous les sondages
Title-video
Microprocesseurs : comment c'est fait ?6462991Logo-itrtv
Title-themes Applat_menu_gauche2 Applat_menu_gauche_cmt

Skype part à l'assaut des PME

par Guide Collaboratif
le 15/05/2008 à 13:14

Windows Vista serait plus vulnérable que Windows 2000

par jack
le 15/05/2008 à 11:07

Le pilotage par les processus, un levier possible pour la performance de l’entreprise
Par Michel Raquin, président du Club des pilotes de processus

par Henri-Paul Soulodre - C2P Le Trésorier
le 06/05/2008 à 16:45

Tous les outils pour maitriser Vista!

par Bernard
le 05/05/2008 à 22:46

L'Internet de 2030 : allié, Big Brother ?

par Jean José SALA
le 02/05/2008 à 10:55

Rechercher
Services
Dossier-microsoftGrossiste en solutions de sécurité intégréesLogo_abonnNerimMaxdataItrmanager_site_assisesJobProposer un communiqué de presse
Fils RSS : Top 10 quotidien

Dossier Microsoft (Cinquième partie)
Le développement

jeudi 21 février 2008

20080221_25L'article qui suit constitue le cinquième volet d'un dossier consacré à Microsoft publié en cinq parties. Après les quatre premières parties faisant l'état des lieux de la situation de Microsoft en 2008, présentant la stratégie poste client et serveur de l'éditeur et le positionnement en matière de business productivity, le présent article traite du développement.
Par Hugo Lunardelli.

 

*     *

*

Le développement constitue pour Microsoft une activité particulière. Il s'agit en soi d'un business rentable, les revenus issus de la commercialisation de Visual Studio ou de MSDN ne sont pas négligeables, mais cette activité a ceci de particulier qu'elle est en relation directe avec le cœur de métier de l'éditeur, son histoire et son avenir.

 

Une perspective historique

 

20080221_26L'existence de Microsoft débute en 1975 lorsque Bill Gates et Paul Allen, deux étudiants passionnés de technologie, découvrent dans la presse la commercialisation du MITS Altair 8800, premier représentant de ce que l'on allait par la suite appeler PC pour Personal Computer.

 

 

En face de cette machine, les deux étudiants prennent conscience des bouleversements qui peuvent potentiellement découler de cette introduction (on parlerait aujourd'hui de changement de paradigme). Il s'agit en effet du premier ordinateur personnel dans l'histoire, c'est-à-dire d'une machine que chacun peut potentiellement acquérir et programmer en vue d'une utilisation personnelle, là où les ordinateurs existants (IBM, Dec...) étaient exclusivement dédiés à des applications scientifiques ou de gestion.

Oui, mais justement il n'existe pas de langage permettant de programmer l'Altair 8800 et c'est ce constat qui va pousser les deux étudiants à développer un outil permettant de programmer cette machine en Basic ; ce qui constitua l'acte de naissance de Microsoft et le début d'une saga qui continue à ce jour.

 

Les premières années de Microsoft furent dominées par la commercialisation de BASIC pour les ordinateurs personnels de l'époque, y compris l'Apple II. D'autres langages vinrent compléter cette offre et notamment des compilateurs C,  Fortran et Cobol.

Ce n'est qu'en 1981 que Microsoft devait licencier MS-DOS à IBM, en vue d'équiper son premier PC , devenant par cela un éditeur système.

 

La naissance de Windows

 

Très vite, Microsoft fût convaincu qu'il était nécessaire de doter le PC d'un environnement graphique similaire à celui qu'avaient développé les chercheurs de Xerox au PARC (Palo Alto Research Center) et qui allait également équiper les machines d'Apple. Après tout, Steve Jobs était venu rendre visite à Microsoft pour présenter le prototype de ce qui allait devenir le Macintosh (en 1984) et obtenir de l'éditeur qu'ils développe des outils et des applications pour cette machine.

 

Microsoft décida donc d'investir dans ce qui allait devenir Windows, annoncé en 1983 et commercialisé dans sa version 1.0 en 1985.

 

20080221_27

 

Compte tenu de ses origines, Microsoft était convaincu de la nécessité de proposer des outils de développement performants susceptibles de faciliter le développement d'applications pour Windows. C'est ce qui conduisit Microsoft à développer un Software Development Kit (puis un DDK pour faciliter le développement de drivers) contenant la documentation des API (Application Programming Interface) permettant de gérer les éléments d'une application Windows (emplacement et taille des fenêtres, gestion de la souris, de l'impression...).

 

Le paradigme du PC

 

Le développement de Windows devait conduire Microsoft à étoffer l'API de ce système, appelée Win16, qui devait évoluer en Win32 pour accompagner les versions 32 bits qu'étaient Windows 95 et Windows NT 3.1.

 

On notera la sortie de Visual Basic en 1991, destinée à ouvrir l'univers de la programmation Windows à des développeurs occasionnels, et l'arrivée en 1997 de la première version de Visual Studio dans lequel Microsoft regroupait pour la première fois la plupart de ses outils de développement ainsi que la documentation système qui les accompagne.

Au cours des années des années 90, Win32 devait intégrer des évolutions telles que COM et DCOM permettant de gérer les échanges entre applications Windows, y compris dans un environnement distribué, ces évolutions s'inscrivant dans une vision « PC centrique » de l'informatique.

 

L'avènement soudain de l'Internet au début des années 90, accompagné par l'annonce de Java, devait mettre un terme à cette vision.

 

La naissance de .NET

 

Face aux perspectives ouvertes par l'Internet, confronté à la menace que faisait peser Java sur le rôle du PC et l'importance de Windows, Microsoft se devait de remettre en cause sa vision d'un univers informatique dominé par des machines Windows.

La montée en puissance de l'Internet a pour corollaire l'avènement d'un environnement distribué dans lequel toute machine peut potentiellement communiquer avec n'importe quel autre équipement, du moment que ces deux machines utilisent le même protocole, IP en l'occurrence.

 

Microsoft devait donc faire évoluer sa plate-forme de développement pour prendre un compte un univers fondamentalement hétérogène, composé de terminaux divers (portable, smartphone, PDA, PC...) et devant pouvoir interagir avec des services hébergés sur des serveurs Unix, Linux ou Windows.

 

C'est cette perspective qui devait accompagner la conception d'un nouveau « Framework » introduit en 2001 sous le nom de .NET 1.0.

 

20080221_28 

 

Principes de .NET

 

.NET constitue un environnement de développement qui est indépendant du langage utilisé.

Il supporte le développement d'applications à travers plusieurs dizaines de langages, parmi lesquels on trouve des implémentations de Cobol, de Pascal, de C ++ de Fortran, ... ainsi que des langages de script comme Javascript ou IronPython. Les plus utilisés étant C#, développé pour .NET, et Visual Basic .NET. Chaque langage .NET respecte une spécification appelée CLS pour Common Language Specification.

 

Le code source de chacun de ces langages est compilé dans un langage intermédiaire, appelé MSIL (pour Microsoft Intermediate Language), qui est indépendant de la plateforme hardware cible.

 

Cette compilation sera ensuite exécutée dans une machine appelée CLR, pour Common Language Runtime, qui est installée sur chacune des plateformes cibles (Windows Vista, XP, Windows Server 2003 et 2008, Windows Mobile ou Mono qui représente l'adaptation de .NET sous Linux).

 

. NET permet au développeur de choisir le langage le plus adapté  à son projet, en garantissant une exécution cohérente sur l'ensemble des plate-formes ciblées.

 

De .NET 1.0 à .NET 3.5

 

.NET a connu un certain nombre d'itérations : une version 2.0 a été diffusée en 2005 qui introduisait une nouvelle CLR, devenu entre-temps un standard ECMA.

.NET devait connaître une évolution majeure avec la version 3.0 introduite avec Windows Vista fin 2006. Cette version comprenait des évolutions importantes telles que Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF) et Windows Workflow (WF) sur lesquelles nous reviendrons. La version courante de .NET est la version 3.5 qui fût livrée avec Visual Studio 2008 fin 2007.

 

RIA & SOA

 

Les évolutions récentes de .NET (3.0 & 3.5) ont pour objet d'adresser le développement de deux classes d'applications très différentes.

D'un côté, il s'agit de favoriser l'émergence d'une nouvelle classe d'applications « clientes » tirant parti de la richesse graphique de Vista avec WPF. Ces applications, qui sont destinées à s'exécuter sur le poste client, mais aussi à l'intérieur du navigateur, sont appelées RIA pour Rich Internet (une variante donne Interactive) Application. A noter que WPF est doté d'un sous ensemble, originellement appelé WPF/E (E pour everywhere), et heureusement rebaptisé Silverlight dont nous reparlerons plus loin.

 

De l'autre côté, WCF a pour objet le développement de services Web et vise donc le back office, la communication d'application à application, les mash-ups et donc d'une façon générale ce que l'on définit sous le terme de SOA.

 

.NET vs J2EE, la réponse à la menace Java

 

Les ambitions des deux Frameworks concurrents sont assez similaires même si les implémentations différent notablement.

 

L'arrivée de Java fût saluée comme la promesse d'une nouvelle catégorie d'applications qui seraient développées avec un nouveau langage (Java) et qui bénéficieraient de la caractéristique essentielle de pouvoir s'exécuter dans n'importe quel environnement qui dispose d'une machine virtuelle Java (JVM). Un principe appelé « write once run everywhere » qui fût par la suite détourné en « write once debug everywhere » étant donné la difficulté de développer des machines virtuelles homogènes sur l'ensemble des plate-formes ciblées.

 

Java devait adresser l'ensemble des plate-formes existantes: le poste client, le serveur, les équipements mobiles et enfin les cartes à puce. En pratique, Java a trouvé une place sur le serveur avec J2EE (Java 2, Enterprise Edition) et est beaucoup moins utilisé sur le poste client que ce que l'on envisageait il y a quelques années.

 

L'examen des deux modèles que sont .NET et J2EE rappelle en partie la comparaison entre un environnement dit propriétaire comme Windows et un système dit ouvert, par exemple Linux. Dans les deux cas, on est en présence d'une plate-forme dont le contrôle est assuré par une entreprise commerciale et d'une technologie qui est plus ou moins du domaine public se prêtant à de multiples développements indépendants qui sont à l'origine de divergences techniques et fonctionnelles. On a ainsi d'un côté, .NET dont les spécifications et les implémentations sont verrouillées par Microsoft (même si le code source est par ailleurs accessible) et de l'autre côté, une multitude d'implémentations de J2EE qui peuvent potentiellement poser des problèmes de portabilité. En pratique, faire un choix J2EE signifie faire le choix d'un vendeur et de ses outils.

 

Si l'on cherche à comparer l'adoption de ces différentes technologies on peut considérer les données d'utilisation des Frameworks ainsi que celui des outils de développement associés, en l'occurrence Eclipse et Visual Studio.

 

Sur le premier point, une étude de l'institut Forrester réalisée en 2007 donne l'avantage à .NET en tant que plate-forme la plus utilisée par les entreprises des deux côtés de l'atlantique. Microsoft France relève la même tendance sur le territoire national.

 

 20080221_29

 

Concernant les outils de développement, les chiffres qui nous ont été fournis par Microsoft font état d'une base de 47 % de développeurs utilisant Visual Studio contre 21 % ayant installé Eclipse, les deux outils n'étant pas exclusifs l'un de l'autre. Ce chiffre est à interpréter en prenant en compte le fait que Visual Studio est un outil généraliste touchant une cible plus large que celle d'Eclipse à finalité quasi exclusivement professionnelle.

Un des points forts de Microsoft étant le support actif de sa communauté de développeurs, à travers notamment le programme MSDN, Visual Studio jouit d'une visibilité et d'un marketing beaucoup plus conséquents.

 

Visual Studio et Expression Studio

 

20080221_30Visual Studio continue de représenter l'environnement de développement intégré (IDE) de Microsoft avec la version 2008 disponible depuis quelques semaines.

Cette version fournit des outils destinés à faciliter le développement d'applications sous Vista, notamment dans l'usage de WPF et de XAML décrit plus avant.

Il comporte en outre une technologie appelée LINQ qui permet de faciliter le développement de requêtes SQL en gérant la syntaxe du langage de requête ainsi que les champs à manipuler via Intellisense, de la même façon que le langage Visual Basic ou C#. Intellisense permet de vérifier la syntaxe du langage utilisé en utilisant des codes couleurs pour l'affichage des mots clés du langage.

 

20080221_31

 

20080221_32Enfin, Visual Studio comprend VSTO, Visual Studio Tools for Office destiné au développement applications basées sur Office, appelées OBA.

Expression Studio a vu le jour en En 2007 sous la forme d'une famille d'outils destinée aux développeurs et designers qui ont pour cible le développement d'applications web et multimédia interactives. Ces produits succèdent à FrontPage.

 

 

Les investissements de Microsoft sur le RIA

 

Prenant en considération la popularité d'Ajax dans le développement d'applications Web, Microsoft a implémenté un ensemble d'outils permettant l'utilisation de cette technologie dans la version 3.5 de .NET ainsi que dans Visual Studio. Mais les efforts de Microsoft se portent plus dans le développement d'une plateforme qui puisse représenter une alternative à la plateforme Flash d'Adobe qui jouit d'un monopole de fait dans le domaine du streaming media ainsi que des applets hébergées sur les sites Web. Flash est la technologie à l'œuvre dans des sites vidéos tels que Youtube ou Dailymotion et la pénétration de Flash sous la forme d'un plug-in intégré dans les navigateurs approche les 95 %.

 

20080221_33Microsoft annonçait en 2007 une technologie appelée Silverlight ainsi qu'une nouvelle famille de produits destinés aux designers appelée Expression Studio. Silverlight, dont le nom de code était WPF/E, a depuis été livré dans une version 1.0 qui permet de gérer le streaming vidéo en supportant les standards VC-1 et Windows Media très largement répandus. Le développement se faisant en Javascript.

 Conçu comme un plug-in multi-navigateurs et multi-plateformes, il supporte en pratique IE 7 et Firefox sur Windows et Safari sur Mac OS. Une version Linux est en cours de développement sous le nom de Moonlight.

Le véritable impact de Silverlight se fera sentir avec la version 2.0 qui intègrera un sous ensemble du Framework .NET permettant le développement en Visual Basic .NET et C#, mais aussi via des langages dynamiques tels que Python et Ruby. Le développement d'applications Silverlight tirera profit des outils de développement et de déboggage intégrés à Visual Studio.

 

 

En théorie, Silverlight 2.0 devrait constituer un environnement de développement accessible à l'ensemble de la communauté des développeurs .NET, là ou Flex, une technologie d'origine Macromedia racheté par Adobe, est employée avec Flash par une communauté plus restreinte et se prêtant moins facilement au développement d'applications sophistiquées. Cette différence de positionnement devrait jouer en faveur de Microsoft, notamment dans un environnement d'entreprise, compte tenu des compétences .NET que l'on peut y trouver.

En développant Silverlight, Microsoft cherche à faire du Web une plate-forme programmable en s'affranchissant des limitations  des applications reposant aujourd'hui sur HTML et HTTP. Même si Ajax représente un contournement de certaines restrictions induites par une application HTML, il n'en reste pas moins que ni HTML, ni HTTP n'avaient été conçus pour autre chose que de l'affichage d'informations  et du transport de données.

 

Offrir à des développeurs professionnels le choix de langages évolués et dynamiques s'appuyant sur une API moderne et cohérente, devrait déboucher sur une nouvelle génération d‘applications riches, tant du point de vue de la richesse fonctionnelle que de la qualité de l'interface utilisateur.

 

Un autre élément qui joue en faveur de Silverlight réside dans l'utilisation de XAML (Extensible Application Markup Language) en tant que langage déclaratif permettant à un designer de concevoir, sous Visual Studio ou Expression Studio, le canevas visuel d'une application avant que de transmettre celui-ci aux équipes de développement qui seront en charge de coder la logique métier correspondante.

 

Un développeur qui se voit confié une maquette XAML pourra intégrer directement ce fichier dans Visual Studio et commencer immédiatement son travail. Cette approche permet une collaboration inédite entre designer et développeurs à même d'accélérer significativement le développement des applications Intranet comme Internet.

 

OBA ou Office en tant que plate-forme de développement d'applications métiers

 

Comme déjà indiqué dans le précédent volet de ce dossier, Microsoft a pour ambition de faire d'Office le frontal préféré des futures applications métier en entreprise. L'interface d'Office étant généralement connue de la plupart des utilisateurs, la période d'apprentissage d'une application est à priori plus courte quand il s'agit d'appréhender les fonctions métiers intégrées dans un onglet du ruban d'Office 2007.

 

Ces applications appelées OBA, pour Office Business Application, vont s'appuyer sur les services d'Open XML qui permettent entre autres d'intégrer un schéma métier dans les fichiers qui sont générés par ces applications. On peut ainsi envisager, avec un minimum de développement, d'utiliser Word comme outil de saisie de documents comptables qui iront directement alimenter un ERP.

 

Ces applications OBA pourront tirer parti des services de la plate-forme .NET intégrée à Windows Server, en particulier pourront s'appuyer sur Workflow Foundation pour le développement de flux de travail, accéder aux données de production via le Business Data Catalog ou encore communiquer avec d'autres applications en utilisant Windows Communication Foundation.

 

20080221_34

 

Comme déjà indiqué, un exemple de ce type d'application se trouve dans Duet, un co-développement entre SAP et Microsoft  déjà commercialisé à plusieurs centaines de milliers d'exemplaires.

 

20080221_35

 

 

Développements SOA : Oslo

 

La plateforme SOA de Microsoft est basée sur plusieurs composantes et en particulier sur Windows Server (et donc sur les services du Framework .NET), sur SQL Server et sur un outil d'intégration appelé BizTalk Server.

 

20080221_36 

 

La notion de Web service faisait partie intégrante de la vision .NET d'origine, ce qui devait conduire Microsoft à développer, conjointement avec IBM et quelques autres, une série de spécifications collectivement appelées WS-*ayant pour objet de définir les mécanismes de sécurité, de gestion transactionnelle, ... nécessaires pour le déploiement d'applications métiers dans un contexte Web.

Ces spécifications sont supportées dans WCF, mais également dans BizTalk, lui-même employé pour l'intégration et la coordination de processus applicatifs à l'intérieur comme à l'extérieur de l'entreprise.

 

En fin d'année 2007, Microsoft annonçait Olso qui consiste en une roadmap stratégique en matière de SOA. Spécifiquement, ce qu'annonçait Microsoft consiste dans l'utilisation d'un langage de modélisation universel destiné à décrire les processus que BizTalk et les autres composants nécessaires seront amenés à exécuter. Ce langage pourra directement être utilisé par les responsables opérationnels en vue d'une représentation plus fidèle des processus de l'entreprise.

 

L'autre composante d'Oslo repose sur un référentiel unique dans lequel seront stockés l'ensemble des données de conception, d'exécution et de supervision des applications.

Un processus métier modélisé par l'intermédiaire de Visual Studio, sera accessible dans ce référentiel par BizTalk Server en vue de son exécution et pourra enfin être utilisé par un produit comme System Center Operation Manager pour surveiller ses paramètres de fonctionnement.

 

Oslo facilitera l'utilisation de services « hébergés » sur le Web et Microsoft compte étendre le concept d'ESB (Entreprise Service Bus) en forgeant le terme d'Internet Service Bus sur lequel seront disponibles des services d'intermédiation destinés à faciliter le développement d'applications inter entreprises, par exemple la communication entre applications d'un donneur d'ordre avec ses nombreux fournisseurs.

 

Le développement représente le cœur de l'activité de Microsoft

 

Le métier historique de Microsoft consiste à commercialiser des plate-formes extensibles.

La programmation a de tout temps constitué la caractéristique essentielle de la plupart des solutions de l'éditeur. Qu'il s'agisse des applications Office (avec leurs macros associées, VBA et maintenant OBA), de Windows bien sûr et de .NET aujourd'hui, la force de Microsoft a été de pouvoir s'appuyer sur une communauté active de développeurs qui confèrent leur valeur aux plate-formes que l'éditeur développe.

 

.NET, Visual Studio, MSDN, Expression Studio, XNSA, Silverlight, SQL Server ou BizTalk Server sont autant d'exemples de produits développés dans ce but.

 

20080221_37 

 

Première partie : Microsoft à la croisée des chemins

Deuxième partie : Le poste Client

Troisième partie : L'infrastructure serveur

Quatrième partie : La Business Productivity ou productivité organisationnelle

_______________
20080221_23Hugo Lunardelli a occupé différentes fonctions marketing au sein de Microsoft France et de Microsoft Europe avant de démarrer une activité de consultant, d'analyste et de journaliste.
Il co-anime, avec Bernard Laur, « Face à Microsoft : quels choix, quelles stratégies ? » un séminaire de deux jours visant à apporter une information complète sur Microsoft, sa stratégie, ses partenariats, son organisation au niveau mondial et national ; à présenter une vision complète de son offre présente et à venir et enfin à donner les clefs d'un choix de licence optimisé.

 

 

20080221_24

Printer Imprimer l'article
Email Transférer par mail

Les 10 derniers articles mis en ligne

On en a parlé
AJAX BORLAND Canon ECM ECONOCOM EMC Euriware INFOGERANCE KLC LG Lean Office MedPi OUTSOURCING SOA SUN acer amazon aol apibat apple archivage ares atos blackberry bmc bnp bpm brother bull cegid cibox computacenter crm csc dell dvd eds epson erp esker exalead fnac free ged google gps hp ibm ilog itil itrtv lacie landesk lenovo lexmark logitech micro application microsoft nauges nec nokia nortel open source oracle orange osiatis prodware rfid rsa rss sage samsung sap scc sfr skype sony sopra symantec synthèse klc teradata toshiba unilog virtualisation vista voip web 2.0 wimax xbox xerox