Professional Documents
Culture Documents
Franois MERAND
.NET : la 3
me
2
1
PC
Mode
Caractre
Interface
Graphique
Terminal
rvolution ! ?
.net
Navigation
web
De nouveaux concepts :
Des freins ?
Oui, peut-tre dans les quipes dexploitation
.NET, bilan et perspective Univ-Bordeaux - vendredi 18 novembre 2005
Systmes supports
Fonctions croissantes
Pocket PC
Tablet PC
Windows CE
Objets
personnels
Smartphone
Portable
.NET Framework
Le challenge
Systme dinformation
en production
Pressions
mtier,
politiques
et commerciales
Pressions
technologiques
ROI,
Economie connecte,
Collaborateurs nomades,
Fusions, acquisitions, syndications
Acclration de lconomie,
Scurit, respect vie prive,
Des comptences
mtiers,
des systmes
htrognes,
des savoir faire,
des postes clients,
des applications,
Nouveaux logiciels,
Nouveaux priphriques,
Nouvelles architectures,
Nouvelles technologies,
Disponibilit, scurit,
Diminution des cots,
Comptitions,
Comptences,
Le mouvement
vers des
systmes de
plus en plus
communicants
reflte le besoin
des entreprises
PC
Web
PC
POP3, IMAP
systme
HTML / HTTP
PC
Site Web
Connecter
les personnes
aux personnes
Connecter
les personnes
aux applications
XML / SOAP
systme
Connecter
les services aux services
Petits rappels
LeWSDL
serveur
dcrit
le
UDDI
peut
service
localiserweb
les
(Design time)
services
web
disponibles
XM
L
WSDL
Re
qu
t
Votre socit
e
R
po
Web Service description
ns
Language
e
UDDI
9
SOAP en action
Consommateur
SOAP Extensions
Donnes
structures
Cadre logistique
Ro
ut
ag
Tr
an
sa
ct
io
ns
Fi
ab
ilit
S
cu
r
it
SOAP Extensions
Fournisseur
10
SOAP Extensions
RETOUR
ALLER
RETOUR
ALLER
DESERIALIZE
(XML
SERIALIZE
XML)
DESERIALIZE
(XML
natif)
natif)
SERIALIZE(natif
(natif
XML)
Interception
(avant
et
aprs)
! !!!
Interception
(avant
et
aprs)
Interception(avant
(avant et
et aprs)
Interception
aprs)
Client
Client WS
WS
RETOUR
ALLER
RETOUR
ALLER
SERIALIZE
(natif
XML)
DESERIALIZE
SERIALIZE
(XML
(natif
XML)
DESERIALIZE
(XML
natif)
natif)
Interception
(avant
et
Interception
Interception
(avant
(avant
et
etaprs)
aprs)
!! !!
Interception
(avant
etaprs)
aprs)
Fournisseur
Fournisseur WS
WS
FlightInfo
serialize
serialize
deserialize
deserialize
<FlightInfo>
<FlightInfo>
<flightNo/>
<flightNo/>
<departTime/>
<departTime/>
<.../>
<.../>
</FlightInfo>
</FlightInfo>
FlightInfo
deserialize
deserialize
serialize
serialize
11
.NET
Visual
Studio.NET
<s:element
name="GetAllFlights">
<s:element name="GetAllFlights">
<s:complexType>
<s:complexType>
<s:sequence>
<s:sequence>
[System.Web.Services.Protocols.SoapDocumentMet
<s:element minOccurs="1" maxOccurs="1"
[System.Web.Services.Protocols.SoapDocumentMet
<s:element minOccurs="1" maxOccurs="1"
hodAttribute(/*ommited*/)]
name="fromDate"
hodAttribute(/*ommited*/)]
name="fromDate"
type="s:dateTime"
/>
public dsFlights
GetAllFlights(System.DateTime
type="s:dateTime"
/>
public
dsFlights
GetAllFlights(System.DateTime
<s:element
minOccurs="1"
maxOccurs="1"
fromDate,
<s:element minOccurs="1" maxOccurs="1"
fromDate,
name="toDate"
System.DateTime toDate)
name="toDate"
System.DateTime
toDate)
type="s:dateTime"
/>
{ object[] results
= this.Invoke("GetAllFlights",
new
type="s:dateTime"
/>
{ object[]
results = this.Invoke("GetAllFlights",
new
</s:sequence>
object[]
</s:sequence>
</s:complexType>
object[]
</s:complexType>
{ fromDate,
</s:element>
{ fromDate,
</s:element>
toDate});
[WebMethod]
public dsFlights GetAllFlights(
DateTime fromDate,
DateTime toDate)
{
...
}
toDate});
((dsFlights)(results[0]));
...return
return ((dsFlights)(results[0]));
}...
}
}<message name="GetAllFlightsSoapIn">
<message name="GetAllFlightsSoapIn">
}<part
name="parameters"
<part name="parameters"
element="s0:GetAllFlights" />
element="s0:GetAllFlights" />
</message>
</message>
Proxy
WSDL
SOAP
Class=Flights" %>
WSDL
<s:element name="GetAllFlights">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1"
name="fromDate"
<s:element
type="s:dateTime"
name="GetAllFlights">
/>
<s:element
<s:complexT
minOccurs="1"
ype> maxOccurs="1"
name="toDate"
<s:sequence>
type="s:dateTime"
/>
<s:element minOccurs="1"
maxOccurs="1"
</s:sequence>
name="fromDate"
</s:complexTy pe>
type="s:dateTime" />
</s:element> <s:element minOccurs="1" maxOccurs="1"
name="toDate"
...
type="s:dateTime" />
</s:sequence>
<message name="GetAllFlightsSoapIn">
</s:complexType>
<part name="parameters"
</s:element>
element="s0:GetAllFlights" />
</message>...
<message name="GetAllFlightsSoapIn">
<part name="parameters"
element="s0:GetAllFlights" />
</message>
Code
crire
.NET, bilan et perspective Univ-Bordeaux - vendredi 18 novembre 2005
12
SOAP
WSDL
.NET
<%@ WebService
Language=VB" Class="
AddSvc " %>
.
.
.
.
.
.
.
.
End Class
Composant
mtier
namespace NameSpc {
// C#
Public Class Math_Impl {
Public int AddInt(int a,int b)
{
Return a + b;
}
}
}
MSMQ / MQSeries
BizTalk
HIS
13
Votre socit
Securit
Fiabilit
Transactions
14
15
Un socle technologique
Modle
de dveloppement
Infrastructure
pour
Outils de
Applications Dveloppement
distribues
16
Un socle technologique
Modle
de dveloppement
Infrastructure
pour
Outils de
Applications Dveloppement
distribues
17
Un socle technologique
Infrastructure
pour
Applications
distribues
18
Innovation
19
Une Plate-forme
Introprable
Outils de
Management
tiers
Apps
Web
Services
390/AS400
Clients
Windows
RDBMS
Mobiles
VPN
LDAP
UNIX
Pare-feu
Macintosh
Infrastructure
Netware
20
Du composant au serveur
dapplication
Objets
mtiers
Client
webweb
Client
Objets
techniques
Donnes
Donnes
A
A
(DAL)
Objets
Serveurde
de
facades Serveur
composants
composants
Serveur
de
ClientClient Workflow
Application
mono-poste
composants
EXE
Client
Client
richeriche
EXE
DLL
EXE
DLL
Objets
mtiers
DLL
DLL
Donnes
Serveur
Objets
techniques
(DAL)
Donnes
Donnes
B
Donnes
B
Donnes
DLL
Services de
Services de coopration
coopration
21
Rle du Serveur
En phase de dveloppement
dApplication
Mettre disposition un cadre de dveloppement pour
concevoir des applications avec une architecture en
couches:
Modle de programmation
Services applicatifs
Outils de dveloppement
En phase dexploitation
Faciliter le dploiement dapplications distribues sur
diffrentes topologies
Garantir la qualit de services
Fiabilit
Scurit
Evolutivit (monte en charge)
22
Services Mtier:
composants
23
24
Pensez MSMQ !
Le
Leconsommateur
consommateurappelle
appelle
un
composant
ou
un composant ouun
un
service
service
MessageQueue
MessageQueue
25
Application B
AC
AB
BC
AD
Application C
AC
BC
CD
Application D
AD
CD
Application E
Application F
Solution 1
Protocole A
Solution 2
Protocole B
Solution 3
Protocole C
Solution 4
Solution 5
26
Web Service
Web Service
Application E
Application C
Web Service
Web Service
Application D
Application F
Web Service
Web Service
SOAP
27
Application A
Application B
Application C
Application Adapter
Technology Adapter
Business
Process
HTTP
HTTP
SMTP
SMTP
MSMQ
MSMQ
MQSeries
MQSeries
File
File
Web
Web
Service
Service
Bus de messages
Services de livraison
Application Adapter
Application D
Application E
Application F
28
Une architecture oriente services est un modle applicatif bas sur une
agrgation de services autonomes interconnects via un couplage lche.
Un Service est
Autonome
Un Service expose un
Contrat
in
<Conditions
Gnrales
de Vente/>
out
Lesservices
services
communiquentpar
parmessages
messages
Les
communiquent
Les Frontires
entre
services sont
Explicites
<Rglement
Intrieur/>
Un<Rglement
ServiceIntrieur/>
impose des
<Vosdroits/>
droits/>
<Vos
Rgles<Vos
dedevoirs/>
<Vos devoirs/>
fonctionnement
29
SOA : Evolution
Depuis
Vers
Orient
fonctionnalits
Conu pour durer
Cycle de
dveloppement long
Orient processus
Conu pour changer
Dveloppement et
dploiement interactif
Silos applicatifs
Couplage fort
Orient Objet
Orchestration de
Services
Couplage faible
Orient message
30
Un socle technologique
Modle
de dveloppement
31
Appli
Services Web
COM+
Services
ASP.NET
Appli
Locale
Autres
Applis
ADO.NET
Autres
32
C++
C#
J#
XML Web
services
Web Forms
Windows Forms
Donnes et XML
Framework Class Library
CLR
CLI
Spcification
ouvertes
Soumis
lECMA
Bas XML,
SOAP
Accs aux
donnes bas XML
Soumis
l ECMA
33
Un peu de rangement
System.Windows.Forms
System.Web
Services
Description
Discovery
Protocols
UI
HtmlControls
WebControls
Caching
Configuration
Security
SessionState
Design
ComponentModel
System.Drawing
Drawing2D
Imaging
System.Xml
System.Data
ADO
Design
Printing
Text
XSLT
XPath
SQL
SQLTypes
Serialization
System
Collections
Configuration
Diagnostics
Globalization
IO
Net
Reflection
Resources
Security
ServiceProcess
Text
Threading
Runtime
InteropServices
Remoting
Serialization
34
Dvelopper
DEVELOPPEMENT
publi c st at ic void Main( Str i ng[ ] ar gs )
{ Str ing usr ; Fi leSt ream f ; St r eamWr it er w;
tr y {
usr =Envir onment .GetEnvi r onment Var iable("USERNAME") ;
f=new FileSt r eam( C:\\ test .t xt ", Fil eM ode.Cr eate);
w=new Str eamWr
publi citst
er(
at
f );
ic void Main( Str i ng[ ] ar gs )
w.Wr i teLi ne(usr)
{ Str ;ing usr ; Fi leSt ream f ; St r eamWr it er w;
w.Close( );
tr y {
} cat ch ( Except ion
usr e){
=Envir onment .GetEnvi r onment Var iable("USERNAME") ;
Console.Wri teLi
f=new
ne( "Except
FileStion:
r eam(
"+e.ToSt
C:\\ test
r ing(
.t xt
))",
; Fil eM ode.Cr eate);
w=new Str eamWr it er( f );
}
w.Wr i teLi ne(usr) ;
}
w.Close( );
} cat ch ( Except ion e){
Console.Wri teLi ne( "Except ion: "+e.ToSt r ing( )) ;
}
}
Source code
Compiler
Assembly
C#
J#
VB
Cobol
MSIL
Metadata
Resources
35
Dployer
DEVELOPPEMENT
DEVELOPMENT
publi c st at ic void Main( Str i ng[ ] ar gs )
{ Str ing usr ; Fi leSt ream f ; St r eamWr it er w;
tr y {
usr =Envir onment .GetEnvi r onment Var iable("USERNAME") ;
f=new FileSt r eam( C:\\ test .t xt ", Fil eM ode.Cr eate);
w=new Str eamWr
publi citst
er(
at
f );
ic void Main( Str i ng[ ] ar gs )
w.Wr i teLi ne(usr)
{ Str ;ing usr ; Fi leSt ream f ; St r eamWr it er w;
w.Close( );
tr y {
} cat ch ( Except ion
usr e){
=Envir onment .GetEnvi r onment Var iable("USERNAME") ;
Console.Wri teLi
f=new
ne( "Except
FileStion:
r eam(
"+e.ToSt
C:\\ test
r ing(
.t xt
))",
; Fil eM ode.Cr eate);
w=new Str eamWr it er( f );
}
w.Wr i teLi ne(usr) ;
}
w.Close( );
} cat ch ( Except ion e){
Console.Wri teLi ne( "Except ion: "+e.ToSt r ing( )) ;
}
}
Assembly
Source code
DEPLOIEMENT
Compiler
Install Assembly
C#
J#
VB
Cobol
MSIL
Setup
Copy Metadata
BrowserResources
Global
Assembly
Cache (GAC)
Application
Directory
Download
Cache
36
DEVELOPMENT
Excuter
DEPLOIEMENT
Install
Assembly
Native .exe
+ GC table
Setup
Copy
Browser
EXECUTION
IL to Native
Compiler
Assembly
Global
on Target Policy
Assembly
Machine
Cache
(GAC)
Class
Loader
Code
Manager
Debug Engine
Application
Directory
Security
Assembly
Loader
Download
Cache
Garbage Collection
Exception Manager
Thread Support
COM Interop
37
XSL/T, X-Path,
Validation, etc
DataSet
Sync
DataAdapter
DataReader
Commande
Connexion
Fournisseur manag
XMLDataDocument
XMLReader
XMLText- XMLNodeReader
Reader
38
ADO.NET
Cache de donnes
Web Form
IExplore
XML
Windows Form
App.Exe
Data Tier
DataSet
Business Tier
Presentation
Tier
39
ASP.NET : Contenu//Code
Sparation du code et du contenu
Les dveloppeurs et les designers
peuvent travailler indpendamment
ASP
ASP .NET
Un seul fichier
code
<tags>
Fichiers spars
<tags>
Form1.asp
code
Form1.aspx Form1.vb
40
ASP.NET
Serveur Web Puissant et Extensible
Config.xml
Dploiement xcopy
Scurit (passport, NT, custom)
Extensibilit Applications Web: Web Forms
Avec nimporte quel langage .Net
Prsentation (HTML) et code (VB, C# ) spars
Gestion dtat automatique
Contrles riches (databinding, adaptation au browser)
Fonctions de contrle dclaratives
Pages compiles et non plus interprtes
Fonctions de cache avances
Gestion dtat souple
Services Web
Aucune ncessit de manipuler XML / SOAP
41
42
Subclassing,
Power,
Expressiveness
VB Forms
MFC/ATL
Stateless,
Code embedded
in HTML pages
ASP
Windows API
.NET, bilan et perspective Univ-Bordeaux - vendredi 18 novembre 2005
43
Disponibilit de .NET
Le framework .NET est disponible
pour les OS
Windows NT, 98, Me, XP, 2000, 2003
Windows XP Embedded
Windows CE
44
2005 : Ajouts et
amliorations
IDE VS2005
Windows Form
ASP.NET v2
ADO.NET 2.0
Framework
BCL
SQL Server
2005
CLR 2.0
Performances
Scurit
45
Un socle technologique
Outils de
Dveloppement
46
47
48
49
50
Visual Studio
Visual Studio
Visual Studio
Team Architect
Team Developer
Team Test
Application Modeling
Load Testing
Manual Testing
Deployment Modeling
Code Profiler
Visual Studio
Team Foundation
Change Management
Reporting
Integration Services
Project Site
Project Management
51
Gestion des
sources
Rapports
Automatisation
de la
construction
Pilotage et
communication de
lquipe
52
53
Guides darchitecture
Configuration
management
Rich Client
DNA Interop
Instrumentation
UI Components
Web Client
UI Process Components
User Interface Process
Data
Exchange
&
Business
Format
Workflows
Exception Mgmt
Caching
Service Interfaces
Improve
Dist App Perf
Business
Business Entities
Components
Service
Data Aggregation
& Caching
DataAccess
Access Components
Data
Data
Sources
Security
Application updater
Operational Management
Users
Communication
Persistent
J2EE
Service Agents
Asynch
Interop
Invocation
Authentication
Secure ASP.NET
Application AuthZ
Configuration
Logging
Services
: Achevs
D: En cours
Team Dev
Debugging
Profiling
Deployment
Development
Lifecycle
.NET Ops
54
Meilleures pratiques
Revu et test: scurit, performance.
Approbation des groupes produits
Cohrent dans lapproche et la smantiques avec des
apis futures
Feedback sur les PAG influencent le design des produits.
Support
Implication de PSS
55
Enterprise Library
version 1
Exception
Handling
Caching
Security
Data
Access
Logging &
Instrumentation
Crypto
Config
Tooling
Config
Run-Time
56
Le concept Enterprise
Une librairie dlments logiciels rutilisables
Library
pour grer les problmes de base du
dveloppement
Un modle cohrent
Extensible
Extention des applications blocks, design et
documentation, test unitaires inclus, guide de cration
de nouveaux blocks
simple et intgr
v1 en partenariat avec Avanade, (retour
dexprience ACA.NET)
Un guide, pas un produit ! (pas de support)
En constante
volution
.NET, bilan et perspective Univ-Bordeaux - vendredi 18 novembre 2005
57
58
Vista ?
Le prochain OS Microsoft
Un version MAJEURE, aprs Win32 et
.NET :
Code manag
Nouveau systme de stockage (WinFS)
Technologie Natural UI
Le 1er OS trustworthy computing
Une nouvelle faon dcrire les applications
59
Dploiement
Infrastructure de composants
Outils de dploiement
Intgration des applications et de
limage du systme
Infrastructure de migration
SuperFetch
Ordonnancement
CPU et E/S glitchfree
Fiabilit
Diagnostics disque dur et mmoire
Amlioration des drivers
Installation et mise jour de logiciels
sans redmarrage
Gestion des impacts sur les
applications (StrongBox)
60
Context
Windows Vista
WinFX, the
managed APIs for
Windows Vista
Win32, the
unmanaged APIs
for Windows
Down-level
Windows XP &
Windows Server
2003
.NET, bilan et perspective Univ-Bordeaux - vendredi 18 novembre 2005
62
WinFX et le framework.NET
Application
WinFX
WPF
WinFS
WCF
Win16
Win32
COM
63
64
Acrylic
Graphics Designer
Sparkle
Quartz
Interactive
Web Designer
.NET, bilan et perspective
Univ-Bordeaux - vendredi 18 novembre 2005
65
Designer
66
Et aussi
Visual Studio Tools for Applications (VSTA)
Linq (C# 3.0)
WinFS
IIS7
IE 7
Longhorn Server
Biztalk 2006
Host Integration Server 2006
Office 12 / Office Server / SharePoint
Exchange 12 / WM 5.0
Communicator
Mendocino
PLK ;-)
XBOX 360 / Live
.NET, bilan et perspective Univ-Bordeaux - vendredi 18 novembre 2005
67
68
Infos en ligne
http://www.microsoft.com/net
http://www.microsoft.com/france
http://www.dotnet-fr.org/
http://communities.microsoft.com/ne
wsgroups/default.asp?icp=France_msd
n&slcid=fr-fr
Microsoft.public.fr.dotnet.*
http://www.thedotnetmag.com/
http://www.aspnetpro.com/
.NET, bilan et perspective Univ-Bordeaux - vendredi 18 novembre 2005
69
70