net som infrastruktur platform kim vestergaard

42
1 .NET som infrastruktur platform .NET som infrastruktur platform Kim Vestergaard Kim Vestergaard .NET Arkitekterne, Teknologisk Institut .NET som infrastruktur platform Kim Vestergaard, [email protected] Chefkonsulent, .NET Arkitekterne, Teknologisk Institut

Upload: zubin67

Post on 04-Jul-2015

272 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: NET som infrastruktur platform Kim Vestergaard

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

Page 2: NET som infrastruktur platform Kim Vestergaard

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

Page 3: NET som infrastruktur platform Kim Vestergaard

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

Page 4: NET som infrastruktur platform Kim Vestergaard

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

Page 5: NET som infrastruktur platform Kim Vestergaard

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

Page 6: NET som infrastruktur platform Kim Vestergaard

66 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut

Visionen – er den realistisk?

?

Page 7: NET som infrastruktur platform Kim Vestergaard

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

Page 8: NET som infrastruktur platform Kim Vestergaard

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

Page 9: NET som infrastruktur platform Kim Vestergaard

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)

+++

Page 10: NET som infrastruktur platform Kim Vestergaard

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

Page 11: NET som infrastruktur platform Kim Vestergaard

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

Page 12: NET som infrastruktur platform Kim Vestergaard

1212 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut

.NET i praksis: Fokus på XML Web Services

Page 13: NET som infrastruktur platform Kim Vestergaard

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!

Page 14: NET som infrastruktur platform Kim Vestergaard

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

Page 15: NET som infrastruktur platform Kim Vestergaard

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# …

Page 16: NET som infrastruktur platform Kim Vestergaard

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

Page 17: NET som infrastruktur platform Kim Vestergaard

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

Page 18: NET som infrastruktur platform Kim Vestergaard

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

Page 19: NET som infrastruktur platform Kim Vestergaard

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

Page 20: NET som infrastruktur platform Kim Vestergaard

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.

Page 21: NET som infrastruktur platform Kim Vestergaard

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

Page 22: NET som infrastruktur platform Kim Vestergaard

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, …

Page 23: NET som infrastruktur platform Kim Vestergaard

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

Page 24: NET som infrastruktur platform Kim Vestergaard

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

Page 25: NET som infrastruktur platform Kim Vestergaard

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!

Page 26: NET som infrastruktur platform Kim Vestergaard

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

Page 27: NET som infrastruktur platform Kim Vestergaard

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

Page 28: NET som infrastruktur platform Kim Vestergaard

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

Page 29: NET som infrastruktur platform Kim Vestergaard

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

Page 30: NET som infrastruktur platform Kim Vestergaard

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

Page 31: NET som infrastruktur platform Kim Vestergaard

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

Page 32: NET som infrastruktur platform Kim Vestergaard

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!

Page 33: NET som infrastruktur platform Kim Vestergaard

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

Page 34: NET som infrastruktur platform Kim Vestergaard

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

Page 35: NET som infrastruktur platform Kim Vestergaard

3535 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut

MS Developers Roadmap

Page 36: NET som infrastruktur platform Kim Vestergaard

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

Page 37: NET som infrastruktur platform Kim Vestergaard

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()

Page 38: NET som infrastruktur platform Kim Vestergaard

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

Page 39: NET som infrastruktur platform Kim Vestergaard

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

Page 40: NET som infrastruktur platform Kim Vestergaard

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)

Page 41: NET som infrastruktur platform Kim Vestergaard

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)

+++

Page 42: NET som infrastruktur platform Kim Vestergaard

4242 .NET som infrastruktur platform.NET som infrastruktur platformKim VestergaardKim Vestergaard.NET Arkitekterne, Teknologisk Insti tut

Spørgsmål?