net som infrastruktur platform kim vestergaard
TRANSCRIPT
11 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
.NET som infrastruktur platform
Kim Vestergaard, [email protected], .NET Arkitekterne, Teknologisk Institut
22 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Agenda
Microsoft’s .NET platform vision
Drømmen om SOA
.NET i praksis
Teknologien
Komponentmodellen
Sammenhæng til den ”gamle” verden
Arkitektur på .NET platformen
Middleware teknologierne
.NET i morgen
33 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Microsoft’s .NET platform vision – et citat
.NET is the next evolutionary step for the Microsoft platform
Biggest platform shift since move from DOS to Windows NT
Departure from Win32, classic C++ and MSVBVM60.DLL
Departure from COM and DCOM
Internet standards used from cross-machine integration
Common Language Runtime (CLR) used from same-machine integration
CLR raises programming model to new level of abstraction
Citat: Don Box, Microsoft
44 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Microsoft’s .NET platform vision
Et radikalt skift væk fra den tidligere infrastruktur platform
Arkitekturer sammensættes via distribuerede (og uafhængige) services (SOA)
Stor fokus på XML webservices til at implementere SOA klisteret
.NET platformen som ”total” fundament for ”alt” fra Microsoft.
”Backoffice”, udvikling, andre produkter – alt skal kunne interface mod XML Web Services
55 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Visionen (eller drømmen) om SOA
Services
Servere
Klienter
66 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Visionen – er den realistisk?
?
77 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
.NET platformen – ved lancering
.NET Servers
Winows Server 2000,
SQL 2000
mfl.
.NET My Services
.NET FrameWork
88 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
.NET platformen – nu
.NET Servers
Windows Server 2003 !?
”.NET” Passport
.NET FrameWork 1.1
99 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
.NET platformen – fremtid
.NET Servers:
Windows Server 2005
SQL 2005
BizTalk
SharePoint
m.fl.
Alt mulig med services
SOA
.NET
FrameWork 2.0
(WhidBey)
+++
1010 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
UML
Use Cases
Design Patterns
Objekter/Klasser
Komponentisering
Interfaces
Genbrug
Presentation
Business
Data
Components
Components
Object
Object
Components
.NET i praksis: Fokus på OO
1111 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
.NET i praksis: Fokus på lagdelt arkitektur
Op
eration
al Man
agem
ent
Secu
rity
Co
mm
un
ication
UI Components
UI Process Components
Data Access Logic Components
User Devices
Data Sources
Business Process
Components
Business Components
Business Entities
Users
Presentation
BusinessLogic
DataLayer
Data
Service Interfaces/Façades
Service Agents
Services
1212 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
.NET i praksis: Fokus på XML Web Services
1313 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
ALT den fokus på Web Services?!
Web Services som vidunder universal ”klister”?!
Tjaa, vi har ikke nogensinde været tættere på.
Der er vel et ”men”?
Standardisering, standardisering og endnu mere standardisering!
TANSTAAFL!
1414 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Teknologien i hovedtræk
Sproguafhængig – den eneste gyldige kode er MSIL kode
MSIL eksekveres af CLR’en – en virtuel maskine (som i Java)
JIT kompilering
CLR’en implementerer Garbage Collection
Et GC miljø er ikke altid så ”sikkert” som det ser ud på overfladen.
Fælles stærkt typesystem
Selvbeskrivende typer - via attributter og refleksion
Designet efter OO(P) principper
Meget stort klassebibliotek - sproguafhængigt
1515 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Hvad indeholder teknologien?
Win32Win32
MessageMessageQueuingQueuing
COM+COM+(Transactions, Partitions, (Transactions, Partitions,
Object Pooling)Object Pooling)IISIIS WMIWMI
Common Language RuntimeCommon Language Runtime
.NET Framework Class Library.NET Framework Class Library
ADO.NET: Data and XMLADO.NET: Data and XML
Web ServicesWeb Services User InterfaceUser Interface
ASP.NETASP.NET
Common Language Specification
C++ VB C# …
1616 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Common Language Runtime (CLR)
.NET Framework Class Library Support.NET Framework Class Library Support
Thread SupportThread Support COM MarshalerCOM Marshaler
Type CheckerType Checker Exception ManagerException Manager
MSIL to NativeMSIL to NativeCompilersCompilers
CodeCodeManagerManager
GarbageGarbageCollectionCollection
Security EngineSecurity Engine DebuggerDebugger
Class LoaderClass Loader
1717 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
.NET’s komponentmodel
Baseret på assemblies
Løser det velkendte DLL Helvede
Versionering styres via Strong Naming
Manifest indeholder bl.a. beskrivelse af eksterne afhængigheder, beskrivelse af filerne der udgør assemblyet, beskrivelse af typerne, strong name, mm.
Mindste deployerbare enhed
Fælles (Strong Named) assemblies installeres i GAC’en
1818 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Strong Naming for Assemblies
Navn, versionsnummer, culture og public key token
Signering baseret på private/public key kryptering
Understøtter delayed signing
Hashværdi
digitalsignatur
Public Key
Public Key& public key token
AssemblyManifest
Hash
Signering
digitalsignatur
Kopieres
Private Key
1919 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Understøttelse af mange sprog
Object Orienteret framework
Procedurale sprog er velunderstøttede
Funktionelle sprog er mulige
…
Mange sprog har været inddraget …også akademiske sprog
I praksis benyttes primært C# og VB.NET
2020 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Mange applikationstyper
Web applikationer
via ASP.NET – et framework i frameworket
Windows applikationer
via WinForms – ”traditionelt” Win32 GUI
Smart Clients
WinForm applikationer der bl.a. kan distribueres via en webserver.
2121 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
ADO.NET: Data og XML
Native understøttelse af XML
Understøttelse af disconnected programmeringsmodel
Typed DataSets
in-memory buffer af databasestrukturer
Bygger på Managed Data Providere
...men ikke kun.
Gyngerne og karusellerne
Fleksibilitet kontra overhead
2222 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Interoperabilitet mellem gammelt og nyt
COM interop – integration mellem COM og .NET
Via CCW og RCW
Vær opmærksom på typer og hastighed
Platform Invoke (PInvoke) – integration mellem Win32 og .NET
Attributstyret
IJW – integration til legacykode via C++ME
MFC, ATL, …
2323 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
.NET Arkitektur
God software arkitektur – hvad er det?
? Det kan have noget at gøre med:
Fleksibilitet
Overskuelighed
Robusthed
Skalérbarhed
2424 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
.NET Arkitektur
Visionen siger SOA
Dvs noget med services, løs kobling, stateless, frigørelse af data logik og gui, …
Der er ikke bred enighed om detaljerne og opbygningen af en sådan.
For mange handler det pt. stadig om modeller for Client/Server, lagdelte arkitekturer osv.
Hint: Microsoft’s P&P serie
UI Components
UI Process Components
Data Access Logic
User Devices
Data Sources
Business Pro. Comp.
Business Comp.
Business Entities
Service Interfaces/Façades
Service Agents
Services
2525 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
.NET Arkitektur - forretnings laget
Microsofts har ikke et produkt der kan kaldes en applikations server...
...funktionaliteten er istedet repræsenteret i et sæt af ”produkter”:
COM+, MSMQ, BizTalk HIS & .NET FW.
Middleware teknologierne er vigtige som aldrig før!
2626 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
COM+
MSMQ
WS
RemotingDCOM
...BizTalk
COM+ anvendes gennem Enterprise Services:
• Transaktioner
• Rollebaseret sikkerhed
• Løst koblede komponenter
• Asynkrone kald
• Objekt pooling
.NET Arkitektur - forretnings laget
2727 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Middleware teknologier iForretnings laget
COM+
MSMQ
WS
RemotingDCOM
...BizTalk
Anvendes gennem COM interoperabilitet
.NET Arkitektur - forretnings laget
2828 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Middleware teknologier iForretnings laget
COM+
MSMQ
WS
RemotingDCOM
...BizTalk
•Messaging Services
•(Dataformat) Mapper
•Business Process Orchestration
.NET Arkitektur - forretnings laget
2929 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Middleware teknologier iForretnings laget
COM+
MSMQ
WS
RemotingDCOM
...BizTalk
•Løs kobling
•Kommunik. med SOA
•Cross platform scenarier
•Integration mod legacy
.NET Arkitektur - forretnings laget
3030 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Middleware teknologier iForretnings laget
COM+
MSMQ
WS
RemotingDCOM
...BizTalk
•Serverside activation
•Client activation - lease
•Performance
•Type Fidelity
.NET Arkitektur - forretnings laget
3131 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Middleware teknologier iForretnings laget
COM+
MSMQ
WS
RemotingDCOM
...BizTalk
COM Interop. mod legacy
.NET Arkitektur - forretnings laget
3232 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
.NET Arkitektur – Design Patterns
Først: Patterns er ikke en silver bullet!
Dernæst: Patterns er et værdifuldt værktøj (i de rigtige hænder)
Findes i mange nuancer:
Arkitektur: Layers, Pipes&Filters, …
GOF: Observer, Strategy, Factory, …
.NET Patterns: God bog fra Christian Thilmany
Pitfall #1: Det er sååå let at komme til at dreje arkitekturen hen så den passer ned i et pattern!
3333 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Hvad siger erfaringen?
.NET frameworket er stort – forvent en “Aha oplevelse”
...men det er oftest indsatsen værd!
Discipliner som anvendere skal mestre helt eller delvist:
Objekt Orientering – specielt omkring design og implementation
Træning med og forståelse for arkitektur og flerlagsmodeller
Forståelse for SOA, XML og Web Services
3434 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
.NET i morgen
Developers Roadmap
Whidbey
Orcas
.NET servere
Yukon
BizTalk 2004
…
Longhorn
Indigo, Avalon, WinFS
3535 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
MS Developers Roadmap
3636 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
MS Developers Roadmap
Visual Studio 2005 (formerly known as VS 2004 Whidbey ;-)
IDE opgradering•Refactoring•RAD fokus•…
Framework 2.0•Generics•No-Touch deployment•Bedre WSE integration•Generelle forbedringer over hele linien
3737 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
MS Developers Roadmap
Visual Studio 2005 (formerly known as VS 2004 Whidbey ;-)
C# 2.0•Generics•Anonyme metoder•Partielle typer (stærkt sammen med Generics).•Et forbedret iterator begreb
C++ ME•Generel bedre support for CLR kode•Support for Generics & nyt STL•Ny type Handle: MinRefClass ^mr = gcnew MinRefClass()
3838 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
MS Developers Roadmap
Visual Studio ”Orcas”
Support for Longhorn features•Web Service understøttelse: Indigo•Avanceret UI understøggelse: Avalon (XAML)•Storage Services: WinFS
3939 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
.NET servere Yukon – SQL Server
Overskrift: .NET/CLR integration Stored procedures, functions, triggers and user defined types can be
implemented in a .NET language. T-SQL can still be chosen, and will be enhanced. Full .NET support avaliable: OO, exception handling, arrays, namespaces &
classes
Assembly handling Support for WS in database-tier: Yukon can expose WS interfaces without using
IIS High-level support for XML, through new XML types
There will be a lot of new stuff in the next version of ADO.NET
4040 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Longhorn
Longhorn – det næste MS OS
Indigo: The new service oriented programming framework for Longhorn.Indigo is a set of .NET technologies for building and running connected systems.
Quote: ” Indigo marries the best features of .NET Remoting, ASMX, and .NET Enterprise Services into a unified programming and administration model”.
New UI declarative capabilities (codename Avalon - XAML)
Storage services (WinFS)
4141 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
.NET i morgen - resume
.NET Servers:
Windows Server 2005
SQL 2005
BizTalk
SharePoint
m.fl.
Alt mulig med services
SOA
.NET
FrameWork 2.0
(WhidBey)
+++
4242 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut
Spørgsmål?