1a03-teil 1.ppt [schreibgesch.tzt] - decus.de · uddi xml, http, smtp microsoft & standards...
TRANSCRIPT
1
Microsoft.NETMicrosoft.NET““Business AgilityBusiness Agility””
““Empower peopleEmpower people
through great softwarethrough great software
at any time, at any place,at any time, at any place,
and on any device”and on any device”
Bill Gates, 2000Bill Gates, 2000
Evolution oder Revolution ?Evolution oder Revolution ?
Martin Vach, Systems [email protected]
Agenda Teil 1Agenda Teil 1
Internetbasierte Softwarelandschaft heuteInternetbasierte Softwarelandschaft heute.NET.NET -- VisionVision.NET.NET –– Grundlagen: Webservices und XMLGrundlagen: Webservices und XML.NET.NET –– die vier Säulendie vier Säulen
.NET Framework.NET Framework
.NET Enterprise Server.NET Enterprise Server
.NET Foundation Services.NET Foundation Services
.NET Device Software.NET Device Software
Microsoft.NET Kommentare, Kunden,Microsoft.NET Kommentare, Kunden,EmpfehlungenEmpfehlungen
2
Microsoft.NETMicrosoft.NET
InternetbasierteInternetbasierteSoftwarelandschaftSoftwarelandschaft
heuteheute
Internet heuteInternet heuteWebsites sind InselnWebsites sind Inseln –– sie kommunizierensie kommunizierennicht miteinandernicht miteinander
WebWeb
3
GeschäftsprozessGeschäftsprozess--Integration heuteIntegration heute
InkassoInkasso
B2CB2CWebsiteWebsite
KundeKunde
LogistikLogistik
KreditKreditPrüfungPrüfung
ManuellManuell
EE--Mail
TelefonTelefon
FA
XF
AX
HTMLHTML
Nachteile: Manueller Aufwand durchMedienbrüche in der Kommunikation, hohe Prozeßkosten, geringe Effizienz
Die Antwort: Microsoft.NETDie Antwort: Microsoft.NETein Begriffein Begriff –– drei Ausprägungendrei Ausprägungen
.NET: Strategie und Vision.NET: Strategie und Vision
.NET: Markenname (z.B. für Produkte).NET: Markenname (z.B. für Produkte)
.NET: Architektur, Plattform und Softwaremodell.NET: Architektur, Plattform und Softwaremodell
4
Microsoft.NETMicrosoft.NET
Vision & StrategieVision & Strategie
Microsoft.NET: Vision & StrategieMicrosoft.NET: Vision & Strategieneues Architekturmodell für Anwendungenneues Architekturmodell für Anwendungen
basierend auf offenen Standards, z.B. XML, HTTP, SOAPbasierend auf offenen Standards, z.B. XML, HTTP, SOAP
Drastische Vereinfachung der EntwicklungsDrastische Vereinfachung der Entwicklungs-- undundIntegrationsprozesseIntegrationsprozesse
Evolutionär:Evolutionär:längerer Prozess, kein einzelnes Produkt oder Technologielängerer Prozess, kein einzelnes Produkt oder Technologie
Revolutionär:Revolutionär:vergleichbar Übergang von DOS zu Windowsvergleichbar Übergang von DOS zu Windows
prägt Microsoft’s gesamte Produktstrategieprägt Microsoft’s gesamte Produktstrategie
Microsoft’s Ausrichtung als strategischer BusinessMicrosoft’s Ausrichtung als strategischer Business--PartnerPartner
„We‘ve bid the Company on this“, Steve Ballmer, Sep.2000
5
Microsoft .NETMicrosoft .NET –– “Agility”“Agility”UnterstüztUnterstüzt IhrIhr UnternehmenUnternehmen dabeidabei,,sichsich dynamischdynamisch aufauf veränderndeveränderndeRahmenbedingungenRahmenbedingungen einzustelleneinzustellenundund neueneue WertschöpfungspotenzialeWertschöpfungspotenzialedes Internetdes Internet zuzu nutzennutzen..
„So wie in den 80er Jahren die Qualitätund in 90er Jahren die Umstrukturierungim Mittelpunkt standen, wird es imnächsten Jahrhundert vor allem um dieGeschwindigkeit von Arbeitsprozessengehen.“ (Bill Gates / Digitales Business)
Prozessintegration mit .NETProzessintegration mit .NET
WebWebServiceService
IdentifiIdentifikkationationMessagingMessaging
FoundationFoundationServicesServices
WebWebServiceServiceProduktionProduktion
WebWebServiceService
LogistikLogistik
WebWebServiceService
InkassoInkasso
HTMLHTML
Business toBusiness toConsumerConsumer
Web ServiceWeb Service
XMLXML
XMLXML
XMLXML
XM
LX
MLXML
XML
HTMLHTMLIntranetIntranet
InternetInternet
6
.NET Grundlagen.NET Grundlagen ––XML und Web ServicesXML und Web Services
Das neue ProgrammiermodellDas neue Programmiermodellfür das Internetzeitalterfür das Internetzeitalter
XMLXMLSchlüsseltechnologieSchlüsseltechnologie
für Computing imfür Computing imInternetzeitalterInternetzeitalter
7
XMLXML –– einein BeispielBeispielHerkHerköömmlichesmmliches ASCIIASCII--Format (CSV)Format (CSV)……
XMLXML bietetbietet mehrmehr …… selbstbeschreibendselbstbeschreibendbeliebigebeliebige Inhalte/DatenInhalte/Daten
KatalogeKataloge,, AufträgeAufträge,,WetterberichtWetterbericht,, FormulareFormulare,,MethodenaufrufeMethodenaufrufe,,SuchergebnisseSuchergebnisse,, KalenderKalender
NurNur InhaltInhalt,, keinekeine DarstellungDarstellung
DatenmodellierungDatenmodellierungeinfachste Syntaxeinfachste Syntax--RegelnRegelnoffeneroffener Standard (W3C)Standard (W3C)
TextbasiertTextbasiertPlattformPlattform-- undund SprachSprach--NeutralNeutral
XMLXML -- SchlüsseltechnologieSchlüsseltechnologie
Lingua Franca des InternetLingua Franca des Internet--ZeitaltersZeitaltersXMLXML machtmacht dasdas WebWeb programmierbarprogrammierbarUniversellesUniverselles FormatFormat fürfür DatenaustauschDatenaustausch
einfacheinfach,, offenoffen,, weitweit verbreitetverbreitet
InteraktionenInteraktionen zwischenzwischen ServicesServicesErmöglichtErmöglicht “stark”“stark” verteilteverteilte ApplikationenApplikationenSowohlSowohl engeenge,, wiewie auchauch loselose KopplungKopplung
DürfteDürfte die Evolutiondie Evolution jedwederjedweder SoftwareSoftwarebeeinflussenbeeinflussen
8
XMLXML -- Nutzen und VorteileNutzen und VorteileEntwickler konzentrieren sich auf InhalteEntwickler konzentrieren sich auf Inhalte
Einfacher Datencontainer für strukturierte DatenEinfacher Datencontainer für strukturierte DatenSyntax, Tools und Protokolle sind vorgegebenSyntax, Tools und Protokolle sind vorgegeben
Jeder „spricht“ in Zukunft XML:Jeder „spricht“ in Zukunft XML:Anwendungen, Web Sites, DevicesAnwendungen, Web Sites, Devices
Berufsbild des XMLBerufsbild des XML--ProgrammierersProgrammierers
Anwendungen arbeiten mit korrekten DatenAnwendungen arbeiten mit korrekten DatenOptional Validierung gegen SchemaOptional Validierung gegen Schema
Verarbeitung ist ebenfalls standardisiertVerarbeitung ist ebenfalls standardisiertDOM/Parser, XPath, SOAP, UDDI, ...DOM/Parser, XPath, SOAP, UDDI, ...XML ist international (Unicode)XML ist international (Unicode)
BasisBasis fürfür EAEA--Integration, Web Services und .NETIntegration, Web Services und .NETIntelligenteIntelligente InteraktionInteraktion vonvon SystemenSystemen
XML ist eine strategische Technologie, ähnlich wieTCP/IP, SQL, oder HTML
Web ServicesWeb Services
Das neue ProgrammiermodellDas neue Programmiermodellfür das Internetzeitalterfür das Internetzeitalter
9
Entwicklung derEntwicklung derProgrammiermodelleProgrammiermodelle
Assembler (Machine Code)Assembler (Machine Code)
Unstructured CodeUnstructured Code
Structured CodeStructured Code
ObjectObject--OrientationOrientation
ComponentsComponents
WEB ServicesWEB Services
Was ist ein Web Service?Was ist ein Web Service?Eine Komponente, die mittels offenerEine Komponente, die mittels offenerInternetprotokolle aufgerufen werden kannInternetprotokolle aufgerufen werden kannund die …und die …… eine geschäftsspezifische Funktion zur… eine geschäftsspezifische Funktion zurVerfügung stellt, z.B.:Verfügung stellt, z.B.:
Anfrage eines Preises für PaketversandAnfrage eines Preises für PaketversandVereinbarung eines Liefertermins im EingangVereinbarung eines Liefertermins im EingangÜberprüfung & Speichern von PersonendatenÜberprüfung & Speichern von PersonendatenGenehmigung von SofortkreditenGenehmigung von SofortkreditenReservierungen: Reisen, Restaurants, …Reservierungen: Reisen, Restaurants, …
Web Services gebaut für ProgrammeWeb Services gebaut für Programmemachen das Web programmierbarmachen das Web programmierbarWeb Pages für Menschen (Websurfer)Web Pages für Menschen (Websurfer)
Alle Daten werden via XML transportiertAlle Daten werden via XML transportiert
10
ServicesServices
XML Web Services EvolutionXML Web Services Evolution
XMLXMLSOAPSOAPUDDIUDDI……
InfrastructureInfrastructureFoundationFoundation
Microsoft .NETMicrosoft .NETToolsToolsServerServer
……
.NET.NETMyServicesMyServices……
Universal Description DiscoveryUniversal Description Discoveryand Integration (UDDI)and Integration (UDDI)
Simple Object Access Protocol (SOAP)Simple Object Access Protocol (SOAP)
eXtensibleeXtensible Markup Language (XML)Markup Language (XML)
InternetInternet
Web Services &Web Services & ProtokolleProtokolle
VerbindenVerbindenVerbindung über das WebVerbindung über das Web
11
Web Services &Web Services & ProtokolleProtokolle
Universal Description DiscoveryUniversal Description Discoveryand Integration (UDDI)and Integration (UDDI)
Simple Object Access Protocol (SOAP)Simple Object Access Protocol (SOAP)
eXtensibleeXtensible Markup Language (XML)Markup Language (XML)
InternetInternet
KommunizierenKommunizierenUniv. DatenaustauschformatUniv. Datenaustauschformat
VerbindenVerbindenVerbindung über das WebVerbindung über das Web
Web Services &Web Services & ProtokolleProtokolle
Universal Description DiscoveryUniversal Description Discoveryand Integration (UDDI)and Integration (UDDI)
Simple Object Access Protocol (SOAP)Simple Object Access Protocol (SOAP)
eXtensibleeXtensible Markup Language (XML)Markup Language (XML)
InternetInternet
InteragierenInteragierenGemeinsame Sprache für dieGemeinsame Sprache für dieAbwicklung von TransaktionenAbwicklung von Transaktionen
KommunizierenKommunizierenUniv. DatenaustauschformatUniv. Datenaustauschformat
VerbindenVerbindenVerbindung über das WebVerbindung über das Web
12
Web Services &Web Services & ProtokolleProtokolle
Universal Description DiscoveryUniversal Description Discoveryand Integration (UDDI)and Integration (UDDI)
Simple Object Access Protocol (SOAP)Simple Object Access Protocol (SOAP)
eXtensibleeXtensible Markup Language (XML)Markup Language (XML)
InternetInternet
„„Gelbe Seiten“Gelbe Seiten“Auffinden & Publizieren vonAuffinden & Publizieren vonProdukten & DienstenProdukten & Diensten
InteragierenInteragierenGemeinsame Sprache für dieGemeinsame Sprache für dieAbwicklung von TransaktionenAbwicklung von Transaktionen
KommunizierenKommunizierenUniv. DatenaustauschformatUniv. Datenaustauschformat
VerbindenVerbindenVerbindung über das WebVerbindung über das Web
WebWebServicesServicesBeispieleBeispiele
Interne GeschäftsServices
Microsoft BuildingBlock Services(FoundationServices)
.NET MyServices
Web Services von Dritt-anbietern
Ihr Geschäftsdaten - Service
Ihr interner Abrechnungs - Service
……Kreditkartenabrechnungs - Service
Greenwich Mean Time - Service
Währungsumrechnungs - Service
Passport – Identitäts - Service
Directory- und Such - Service
Personalisations - Service
Softwareverteil - Service
Kalender - Service
Datenspeicher - Service
Bekanntmachungs - Service1. Firewalls können Zugriff zuWeb Services erlauben.
2. Firmen können Web Services im Internet anbieten.
13
Web Services & XML im ZusammenspielWeb Services & XML im Zusammenspielwichtigste Initiative: WSwichtigste Initiative: WS--I (mit IBM u.A.)I (mit IBM u.A.)
Globales Verzeichnis der Dienste:Globales Verzeichnis der Dienste:UDDIUDDI-- Universal Description,Universal Description,Discovery and IntegrationDiscovery and Integration
Beschreibung der EinBeschreibung der Ein-- undundAusgabe:Ausgabe:
WSDLWSDL –– Web Service DescriptionWeb Service DescriptionLanguageLanguage
Aufruf eines Web Services:Aufruf eines Web Services:SOAP: Simple Object AccessSOAP: Simple Object AccessProtocolProtocol
NutzNutz-- und Protokolldaten:und Protokolldaten:XMLXML –– Extensible Markup LanguageExtensible Markup Language„Lingua franca“ des Internets„Lingua franca“ des Internets
SOAPSOAP
Web ServicesWeb ServicesDescription LanguageDescription Language
UDDIUDDI
XML, HTTP, SMTPXML, HTTP, SMTP
Microsoft & StandardsMicrosoft & Standards
Corporate on Standards,Corporate on Standards,
Compete on ImplementationCompete on Implementation
14
Die vier Säulen vonDie vier Säulen vonMicrosoft.NETMicrosoft.NET
Plattform undPlattform undArchitekturArchitektur
WebWebServiceService
XMLXML
HTMLHTML
ClientClient
WebWebServiceService
XMLXML
WebWebServiceService
XMLXML
XM
LX
ML
Die Microsoft .NET PlattformDie Microsoft .NET Plattform
WebWebServiceService
.NET Enterprise.NET EnterpriseServersServers
.NET Framework.NET FrameworkVisual Studio.NETVisual Studio.NET
.NET Device.NET DeviceSoftwareSoftware
.NET Foundation.NET FoundationServicesServices
15
33.. GenerationGeneration –– die .NET Plattformdie .NET Plattform
HeuteHeuteim Einsatzim Einsatz
Mit .NETMit .NETErweiterungenErweiterungen
NeueNeueMöglichkeitenMöglichkeiten
COM+COM+
Internet
22.. GenerationGeneration
DNA
DNA
Serv
ers
Serv
ers
Windows 2000Windows 2000
Visual Studio 6.0Visual Studio 6.0
.NETFramework
Internet
COM+COM+
Windows 2000, XP, .NETWindows 2000, XP, .NET
.NET .NET EnterpriseEnterprise
ServersServers
FoundationServices
Visual Studio.NETVisual Studio.NET
.NET: Framework und Visual Studio.NET: Framework und Visual StudioEvolution: von DNA und COM zu .NETEvolution: von DNA und COM zu .NET
.NET Framework.NET Framework
Base Classes
Data & XML (ADO+)
User Interface:WinForms
Common Language Runtime
ASP.NETWeb Services &
WebForms
Bas
eF
ram
e
16
.NET Framework im Überblick.NET Framework im ÜberblickCLRCLR -- Common Language RuntimeCommon Language Runtime
Portable & performante Ablaufumgebung mit JITPortable & performante Ablaufumgebung mit JIT--CompilerCompilerDurchgängig: alles ist ein Objekt (Typen, Compiler, …)Durchgängig: alles ist ein Objekt (Typen, Compiler, …)Base Class Library, z.B. System.XML und ADO.NETBase Class Library, z.B. System.XML und ADO.NET
kapselt Win32kapselt Win32--API und COMAPI und COMDeployment extrem einfach durch automatische KontrollenDeployment extrem einfach durch automatische Kontrollen
Assemblies, keine DLLAssemblies, keine DLL--Konflikte, keine RegistryKonflikte, keine RegistryECMAECMA -- Standardisierung von C# und CLI erfolgte im Dez. 2001Standardisierung von C# und CLI erfolgte im Dez. 2001„Managed Code“: garbage collection, Threading, Exceptions,„Managed Code“: garbage collection, Threading, Exceptions,
Debugging, Common Type SystemDebugging, Common Type System
ASP.NET: Entwicklung von WebASP.NET: Entwicklung von Web--Anwendung mit .NETAnwendung mit .NETEff. Entwicklung von WebEff. Entwicklung von Web--Services &Services & --AnwendungenAnwendungenRevolution: neues ProgrammiermodellRevolution: neues Programmiermodell
.NET erzeugt browser.NET erzeugt browser--neutralen HTML 3.2neutralen HTML 3.2--CodeCodeEvolution: bestehende ASPEvolution: bestehende ASP--Seiten ablauffähigSeiten ablauffähigIntegrale Unterstützung für SOAP, WSDL und UDDIIntegrale Unterstützung für SOAP, WSDL und UDDI
frei verfügbar als .NET Framework SDKfrei verfügbar als .NET Framework SDKInkl. Compiler, Tools, Demos etcInkl. Compiler, Tools, Demos etcRuntime ab Win98,integriert in neue WindowsRuntime ab Win98,integriert in neue Windows--VersionenVersionen
heuteverfügbar
Visual Studio.NETVisual Studio.NET –– ÜberblickÜberblickBasiert durchgängig auf dem .NET FrameworkBasiert durchgängig auf dem .NET Frameworkeinheitliche & offene IDE für alle .NETeinheitliche & offene IDE für alle .NET--AnwendungenAnwendungen
WindowsWindows--, Web, Web--, PDA, PDA-- und WAPund WAP-- AnwendungenAnwendungen
“Drag and Drop” Web“Drag and Drop” Web--EntwicklungEntwicklungWebServices:WebServices: Nutzung&BereitstellungNutzung&Bereitstellung via SOAP, WSDLvia SOAP, WSDL uswusw
WebFormsWebForms: so einfach wie mit Visual Basic 6: so einfach wie mit Visual Basic 6
Höchste Produktivität für EntwicklerHöchste Produktivität für EntwicklerDebugger, Server Explorer, UML, Reporting, Modellierung,Debugger, Server Explorer, UML, Reporting, Modellierung,Reverse Engineering, XMLReverse Engineering, XML--Toolset, …Toolset, …
Multi Language Support durch CLRMulti Language Support durch CLRUnterstützung für „beliebig“ viele ProgrammiersprachenUnterstützung für „beliebig“ viele ProgrammiersprachenVC++, VB, C#, J#, PERL, Fortran, COBOL, Ada, Eiffel, …VC++, VB, C#, J#, PERL, Fortran, COBOL, Ada, Eiffel, …
Vererbung über Sprachgrenzen hinwegVererbung über Sprachgrenzen hinweg –– freie Sprachwahlfreie Sprachwahl
Heuteverfügbar
„„dodo moremorewithwith lessless““
17
.NET.NET--ProgrammiersprachenProgrammiersprachenFrom Microsoft: C#, Visual Basic, Visual C++, JscriptFrom Microsoft: C#, Visual Basic, Visual C++, JscriptJUMP: converting tool JavaJUMP: converting tool Java --> C#> C#From 3From 3rdrd Parties:Parties:
PerlPerl –– http://http://www.activestate.comwww.activestate.com/.net/.netPythonPython –– http://http://www.activestate.comwww.activestate.com/.net/.netCobolCobol –– http://http://www.adtools.com/info/whitepaper/net.htmlwww.adtools.com/info/whitepaper/net.htmlPascalPascal –– http://http://www.plasrc.qut.edu.au/ComponentPascalwww.plasrc.qut.edu.au/ComponentPascalEiffelEiffel –– http://http://www.eiffel.com/doc/comtechwww.eiffel.com/doc/comtechHaskellHaskell –– http://http://haskell.cs.yale.edu/ghchaskell.cs.yale.edu/ghcMercuryMercury –– http://http://www.cs.mu.oz.auwww.cs.mu.oz.au/research/mercury/research/mercuryAPLAPL –– http://www.dyadic.comhttp://www.dyadic.comSchemeScheme –– http://http://rover.cs.nwu.edurover.cs.nwu.edu/~scheme/~schemeSmallTalkSmallTalk –– http://http://www.qks.comwww.qks.comOberonOberon –– http://http://www.oberon.ethz.chwww.oberon.ethz.ch/lightning/lightningStandard MLStandard ML ––http://research.microsoft.com/Projects/SML.NEThttp://research.microsoft.com/Projects/SML.NETAlso:Also: AdaAda, Fortran, Oz, and Objective, Fortran, Oz, and Objective CamlCaml
O
Einfacher Übergang zu .NETEinfacher Übergang zu .NETKoexistenz von COM und .NETKoexistenz von COM und .NET
Aufrufe in beiden Richtungen durchAufrufe in beiden Richtungen durch WrapperWrapperWeiternutzung aller bestehenderWeiternutzung aller bestehender COMCOM--ObjekteObjekte
Z.B. für Einbindung in neue WebZ.B. für Einbindung in neue Web--ServicesServices
Portierung und MigrationPortierung und MigrationC++: „C++: „itit justjust worksworks““„alte“ ASP„alte“ ASP--Seiten mit JScript undSeiten mit JScript und VBScriptVBScript mitmitkleineren Quellcodekleineren Quellcode--Anpassungen ablauffähigAnpassungen ablauffähig
erhebliche Performanceerhebliche Performance--SteigerungenSteigerungenMigrationsMigrations -- Assistenten für VB 6Assistenten für VB 6 –– AnwendungenAnwendungenVB 6 wird voraussichtlich bis 2008 unterstütztVB 6 wird voraussichtlich bis 2008 unterstützt
JUMP: KonvertierungsJUMP: Konvertierungs--Tool JavaTool Java --> C#> C#
18
WebWebServiceService
XMLXML
HTMLHTML
ClientClient
WebWebServiceService
XMLXML
WebWebServiceService
XMLXML
XM
LX
ML
Die Microsoft .NET PlattformDie Microsoft .NET Plattform
WebWebServiceService
.NET Enterprise.NET EnterpriseServersServers
.NET Framework.NET FrameworkVisual Studio.NETVisual Studio.NET
.NET Device.NET DeviceSoftwareSoftware
.NET Foundation.NET FoundationServicesServices
.NET Enterprise Server.NET Enterprise Server
Server Farm ManagementServer Farm Management
NextNext--Generation EGeneration E--CommerceCommerce
Business Process IntegrationBusiness Process Integration
Works with What You HaveWorks with What You Have
MicrosoftMicrosoft
RDBMS & XML Store & Data WarehouseRDBMS & XML Store & Data Warehouse
Firewall and Web CacheFirewall and Web Cache
Email and CollaborationEmail and Collaboration
Access from everywhereAccess from everywhere
Operations and Management Operations and Management
Managing Web ContentManaging Web Content
Portal, Document ManagementPortal, Document Managementand Searchand Search
Remote Management, Remote Management, Software Distribution & InventorySoftware Distribution & Inventory
schnellster Weg,schnellster Weg,um Firmenum Firmen WebWeb--fähigfähig zu machenzu machen
Skalierbarkeit,Skalierbarkeit,Verfügbarkeit,Verfügbarkeit,ManagementManagement
.NET:.NET: DurchDurch--gehendegehende XMLXMLUnterstützungUnterstützung
Fastest Time toFastest Time toMarketMarket
Alle heuteverfügbar
19
WebWebServiceService
XMLXML
HTMLHTML
ClientClient
WebWebServiceService
XMLXML
WebWebServiceService
XMLXML
XM
LX
ML
Die Microsoft .NET PlattformDie Microsoft .NET Plattform
WebWebServiceService
.NET Enterprise.NET EnterpriseServersServers
.NET Framework.NET FrameworkVisual Studio.NETVisual Studio.NET
.NET Device.NET DeviceSoftwareSoftware
.NET Foundation.NET FoundationServicesServices
.NET Foundation Services.NET Foundation Services(aka .NET Building Block Services)(aka .NET Building Block Services)
.NET My Services.NET My Services(aka Hailstorm)(aka Hailstorm)
20
.NET Foundation Services.NET Foundation ServicesHosted Services sind überall und auf jedem Gerät verfügbarHosted Services sind überall und auf jedem Gerät verfügbar
Verteilte,Verteilte, BenutzerBenutzer--bezogenebezogene,, XMLXML--StandarddiensteStandarddiensteUnternehmensintern oder über das InternetUnternehmensintern oder über das InternetNeue Form der SoftwareNeue Form der Software--BereitstellungBereitstellungOffen:Offen: HostingHosting durch Partner und Microsoftdurch Partner und Microsoft
AuthentifizierungAuthentifizierung
Benachrichtigung, Mail, Personalisierung, XMLStorage, Kalender, Directory und Suche,
Software Verteilung, …
myLocationmyLocation
.NET.NET MyServicesMyServices BeispieleBeispiele
myCalendarmyCalendarmyContactsmyContacts
myInboxmyInbox
myWalletmyWallet
myMusicmyMusic
myNotificationsmyNotifications
myDocumentsmyDocuments
myAddressmyAddress
myApplicationmyApplicationSettingsSettings
myFavoritemyFavoriteWebSitesWebSitesHeute
verfügbar
21
WebWebServiceService
XMLXML
HTMLHTML
ClientClient
WebWebServiceService
XMLXML
WebWebServiceService
XMLXML
XM
LX
ML
Die Microsoft .NET PlattformDie Microsoft .NET Plattform
WebWebServiceService
.NET Enterprise.NET EnterpriseServersServers
.NET Framework.NET FrameworkVisual Studio.NETVisual Studio.NET
.NET Device.NET DeviceSoftwareSoftware
.NET Foundation.NET FoundationServicesServices
konsistentes Programmierkonsistentes Programmier--ModellModell
konsistente Werkzeugekonsistente Werkzeugekonsistente Anwendungskonsistente Anwendungs--
ArchitekturArchitektur
.NET mobile Anwendungen.NET mobile Anwendungen
Code auf ServerCode auf Server
ThinThin Client AnwendungenClient AnwendungenVisual Studio .NETVisual Studio .NETMobile Internet ToolkitMobile Internet ToolkitÜber 75 Gerätemodelle mitgeliefertÜber 75 Gerätemodelle mitgeliefert
ThickThick Client AnwendungenClient AnwendungenSmartSmart DeviceDevice ExtensionsExtensionsfor Visual Studio .NETfor Visual Studio .NET.NET Compact Framework.NET Compact Framework
Code auf Code auf GerätGerät
22
.NET Device Software.NET Device Software.NET.NET CompactCompact FrameworkFramework
Echte ClientEchte Client--Anwendungen für beliebige GeräteAnwendungen für beliebige Geräte
Abgespeckte, kompatible Variante des .NET FrameworkAbgespeckte, kompatible Variante des .NET FrameworkBreite VerfügbarkeitBreite Verfügbarkeit
Für Windows CE und weitere BetriebssystemeFür Windows CE und weitere Betriebssysteme
Für eine Vielzahl vonFür eine Vielzahl von CPU‘sCPU‘s und Gerätenund Geräten
NETNET Mobile InformationMobile Information Toolkit (MIT)Toolkit (MIT)BrowserBrowser--Anwendungen für beliebige mobile GeräteAnwendungen für beliebige mobile Geräte
Unterstützung für WAP und WMLUnterstützung für WAP und WML
WriteWrite onceonce –– run anywhere: Geräte unabhängigrun anywhere: Geräte unabhängigAls SDK heute für VS 6 verfügbarAls SDK heute für VS 6 verfügbar
Völlig integriert in Visual Studio.NETVöllig integriert in Visual Studio.NETJeder VSJeder VS--Entwickler kann WAPEntwickler kann WAP-- Anwendungen erstellenAnwendungen erstellen
heuteverfügbar
verfügbarab Mitte 02
Demo Visual Studio.NETDemo Visual Studio.NETmit Mobile Internet Toolkitmit Mobile Internet Toolkit
Einfache mobile Browser AnwendungEinfache mobile Browser AnwendungWriteWrite onceonce –– run inrun in everyevery browserbrowserServer erzeugt das passende Layout fürServer erzeugt das passende Layout fürdas aktuelle Ausgabegerätdas aktuelle AusgabegerätErstellung so einfach wie mit VisualErstellung so einfach wie mit VisualBasic 6Basic 6
23
Microsoft.NETMicrosoft.NET
Kommentare,Kommentare,Kunden,Kunden,
EmpfehlungenEmpfehlungen
Microsoft.NETMicrosoft.NET –– dasdas AngebotAngebotMicrosoftMicrosoft bietetbietet vollständigevollständige LösungenLösungengemeinsamgemeinsam mitmit PartnerunternehmenPartnerunternehmenFokusFokus istist das Internetdas Internet alsals PlattformPlattform zurzurAbbildungAbbildung IhrerIhrer GeschäftsprozesseGeschäftsprozesseÜbergangÜbergang vomvom ProduktvertriebProduktvertrieb hinhin zurzurImplementierungImplementierung vonvon WertschöpfungWertschöpfungdurchdurch ITITLösungenLösungen zurzur Integration vonIntegration vonGeschäftsprozessenGeschäftsprozessen auchauch überüber UnterUnter--nehmensgrenzennehmensgrenzen hinaushinaus
24
AnalystenAnalysten--Kommentare zu .NETKommentare zu .NET““.NET is a leading example of what we believe.NET is a leading example of what we believewill be the dominant architectural model forwill be the dominant architectural model forthe third generation of Internet applications”the third generation of Internet applications”
“.NET has obviously ominous implications“.NET has obviously ominous implicationsfor a large number of Microsoft competitors”for a large number of Microsoft competitors”-- Patricia Seybold GroupPatricia Seybold Group
“Everyone should build on the XML/SOAP foundation”“Everyone should build on the XML/SOAP foundation”-- Meta GroupMeta Group
“With an uncharacteristically stable and feature“With an uncharacteristically stable and feature--richrichprepre--beta, relationships already in place with thirdbeta, relationships already in place with third--partypartytools suppliers, and even books on .NET topics,tools suppliers, and even books on .NET topics,Microsoft could drive .NET to market with headMicrosoft could drive .NET to market with head--spinning speed”spinning speed”–– InfoWorldInfoWorld
Open SourceOpen Source ProjekteProjekte implementierenimplementieren .NET & CLR.NET & CLRFa.XimiamFa.Ximiam mitmit ProjektProjekt “Mono”,“Mono”, Fa.HalcyonFa.Halcyon mitmit ““INetINet””
KundenKunden--Kommentare zu .NETKommentare zu .NETIntegration imperativeIntegration imperative
“Xerox has used XML Web services to integrate“Xerox has used XML Web services to integrateapplications in ways that we could not do before.”applications in ways that we could not do before.”-- KirkKirk PothosPothos, Software Development Manager, Xerox, Software Development Manager, Xerox
Do more with lessDo more with less“With .NET, we can bring new solutions to market at“With .NET, we can bring new solutions to market atleast twice as fast with the same number of people,least twice as fast with the same number of people,and at significantly higher initial quality levels.”and at significantly higher initial quality levels.”-- Art Hyde, Development Manager, AONArt Hyde, Development Manager, AON
It just worksIt just works“Based on the .NET platform, our infrastructure will“Based on the .NET platform, our infrastructure willsave millions of dollars per year in applicationsave millions of dollars per year in applicationdeployment costs.”deployment costs.”-- Andrew K. Smith, Vice President, Credit Suisse First BostonAndrew K. Smith, Vice President, Credit Suisse First Boston
25
VergleichVergleich zuzu J2EEJ2EEJavaJava PetstorePetstore is Sun’s primary blueprintis Sun’s primary blueprintapplication for J2EEapplication for J2EE
Source:Source: http://java.sun.com/j2ee/blueprintshttp://java.sun.com/j2ee/blueprintsIllustrates best coding practices for J2EEIllustrates best coding practices for J2EEShips as a sample application in IBM WebSphere,Ships as a sample application in IBM WebSphere,Oracle App Server 9i, SunOracle App Server 9i, Sun iPlanetiPlanet, BEA, BEA WebLogicWebLogic
The .NETThe .NET PetshopPetshop is a port of the J2EE Javais a port of the J2EE JavaPetstorePetstore to .NETto .NET
Source:Source: http://www.gotdotnet.com/comparehttp://www.gotdotnet.com/compareImplements same functionality as JavaImplements same functionality as Java PetstorePetstoreIllustrates best coding practices for the .NETIllustrates best coding practices for the .NETFrameworkFramework
DerDer .NET.NET VorteilVorteilProductivity:Productivity: One quarter of the codeOne quarter of the codePerformance:Performance: 28 times faster28 times fasterScalability:Scalability: 6 times more users6 times more users
26
FallbeispielFallbeispiel MS MarketMS Market
WirdWird in 45in 45 LändernLändern betriebenbetriebenVerbindungVerbindung mit SAP R/3mit SAP R/399,8%99,8% alleraller BestellungenBestellungen$3,1$3,1 MrdMrd.. AusgabenAusgaben propro JahrJahrKostenKosten einereiner BestellungBestellung: $60: $60 $5$5EntwicklungEntwicklung: 3: 3 MitarbeiterMitarbeiter, 4, 4 MonateMonateSupport: 1,5Support: 1,5 MitarbeiterMitarbeiter
InterneInterne BestellwesenBestellwesen--AnwendungAnwendung
.NET.NET KundenKunden
27
FragenFragen??
Uff...
Vielen Dank für IhreVielen Dank für IhreAufmerksamkeit !Aufmerksamkeit !
28
Zum Schluss ...Zum Schluss ...WhereWhere ......
Nützliche Links (1) ...Nützliche Links (1) ...http://www.microsoft.com/nethttp://www.microsoft.com/nethttp://msdn.microsoft.com/xmlhttp://msdn.microsoft.com/xmlhttp://msdn.microsoft.com/http://msdn.microsoft.com/soapsoaphttp://www.microsoft.com/http://www.microsoft.com/biztalkbiztalkhttp://http://www.biztalk.orgwww.biztalk.orghttp://http://www.uddi.orgwww.uddi.orghttp://www.microsoft.com/http://www.microsoft.com/applicationcenterapplicationcenterhttp://www.tpc.orghttp://www.tpc.orghttp://http://www.ecma.chwww.ecma.chhttp://www.w3.orghttp://www.w3.orghttp://http://www.gotdotnet.comwww.gotdotnet.com
29
Nützliche Links (2) ...Nützliche Links (2) ...UDDIUDDI::http://www.uddi.org/community.htmlhttp://www.uddi.org/community.htmlhttp://http://uddi.microsoft.comuddi.microsoft.com//helphelp//default.aspxdefault.aspxhttp://http://uddi.microsoft.comuddi.microsoft.com/developer//developer/http://http://uddi.microsoft.com/register.aspuddi.microsoft.com/register.aspPassportPassport::http://http://www.passport.com/devinfowww.passport.com/devinfo//.NET.NET MyServicesMyServices::http://www.microsoft.com/nethttp://www.microsoft.com/netWeb ServicesWeb Services::http://http://msdn.microsoft.com/webservicesmsdn.microsoft.com/webserviceshttp://www.wshttp://www.ws--i.orgi.orgVisual Studio.NET BetaVisual Studio.NET Beta zurzur EntwicklungEntwicklung von Webvon WebServices:Services:http://http://msdn.microsoft.com/vstudio/nextgen/beta.aspmsdn.microsoft.com/vstudio/nextgen/beta.aspMEC/PDCMEC/PDC::http://http://msdn.microsoft.commsdn.microsoft.com/events/events
This document is for informational purposes only. MICROSOFT MAKES NOWARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT.
2001,2002 Microsoft Corporation. All rights reserved.
Companies, names, and/or data used in screens and sample output are fictitious, unlessotherwise noted.
Microsoft, Windows, and Windows NT are either registered trademarks or trademarks ofMicrosoft Corporation in the United States and/or other countries. Other product andcompany names mentioned herein may be the trademarks of their respective owners
Copyrights ...Copyrights ...
1
Autor: Michael Willers, mAutor: Michael Willers, [email protected]@microsoft.com
Referent: Martin Vach, [email protected]: Martin Vach, [email protected]
Januar 2002Januar 2002
Die Microsoft .NET PlattformDie Microsoft .NET PlattformÜberblick und technischer EinstiegÜberblick und technischer Einstieg
AgendaAgenda
Teil 1Teil 1Windows DNA und Microsoft .NETWindows DNA und Microsoft .NET
Teil 2Teil 2Common Language RuntimeCommon Language RuntimeCommon Type SystemCommon Type System
Teil 3Teil 3Webservices und ASP.NETWebservices und ASP.NET
2
Teil 1Teil 1
Windows DNA und MicrosoftWindows DNA und Microsoft.NET.NET
Die Microsoft .NET PlattformDie Microsoft .NET PlattformÜberblick und technischer EinstiegÜberblick und technischer Einstieg
firmeninterneDienste
und Daten
AppCode
Browser
InternetAbbilden von(Unternehmens-)Prozessen
Datenhaltung
User InterfaceWin32Clients
HTML
Windows DNAWindows DNA –– Komponenten für WindowsKomponenten für Windows
DNA ist fürs WindowsDNA ist fürs Windows--Netz konzipiertNetz konzipiertServerServer--Dienste sind (nur) im FirmennetzDienste sind (nur) im FirmennetzerreichbarerreichbarAufwand:Aufwand:
ImplementierungsImplementierungs--DetailsDetails(COM+, API, Security ,...je nach OS)(COM+, API, Security ,...je nach OS)Umwege für heterogene InfrastrukturUmwege für heterogene Infrastruktur(z.B. COM+ zu CORBA)(z.B. COM+ zu CORBA)ggf. Lowggf. Low--LevelLevel--ProgrammierungProgrammierung(Interprozesskommunikation über(Interprozesskommunikation über SocketsSockets))
DNA für Webanwendungen und loseDNA für Webanwendungen und losegekoppelte Systeme nur bedingt geeignetgekoppelte Systeme nur bedingt geeignet
3
Windows DNA ist fürs WindowsWindows DNA ist fürs Windows--Netz konzipiertNetz konzipiertServerServer--Dienste sind (nur) im FirmennetzDienste sind (nur) im FirmennetzerreichbarerreichbarAufwand:Aufwand:
ImplementierungsImplementierungs--DetailsDetails(COM+, API, Security ,...je nach OS)(COM+, API, Security ,...je nach OS)Umwege für heterogene InfrastrukturUmwege für heterogene Infrastruktur(z.B. COM+ zu CORBA)(z.B. COM+ zu CORBA)ggf. Lowggf. Low--LevelLevel--ProgrammierungProgrammierung(Interprozesskommunikation über(Interprozesskommunikation über SocketsSockets))
Windows DNA für Webanwendungen und loseWindows DNA für Webanwendungen und losegekoppelte Systeme nur bedingt geeignetgekoppelte Systeme nur bedingt geeignet
Windows DNA DesignWindows DNA Design -- ProblemeProbleme
OS undlokaleDienste
App Code
WebService
WebService
WebService
DevicesBrowser
InternetSOAP
Microsoft .NET DesignMicrosoft .NET Design ––Komponenten für Web & Client/ServerKomponenten für Web & Client/Server
• .NET ist von Anfang Web-orientiert• Verlagerung von Diensten ins Internet
• .NET unterstützt aber genauso jedesandere Modell, wie z.B. C/S
• Einheitliche Schnittstellenstandards(XML, SOAP, WSDL)
4
Programmatischer Zugriff auf Dienste imProgrammatischer Zugriff auf Dienste imWebWebKommunikation von WebKommunikation von Web--AnwendungenAnwendungenuntereinanderuntereinanderXML als Standard fürXML als Standard für Daten(beschreibungDaten(beschreibung))
plattformplattform-- und sprachunabhängigund sprachunabhängig
SOAP als Protokoll für FunktionsaufrufeSOAP als Protokoll für Funktionsaufrufeplattformplattform-- und sprachunabhängigund sprachunabhängig
Metabeschreibung der Dienste per XMLMetabeschreibung der Dienste per XMLWeb Service Description Language WSDLWeb Service Description Language WSDLAuffindung per UDDIAuffindung per UDDI
Microsoft .NET DesignMicrosoft .NET Design -- WebServicesWebServices
UDDIUDDI stehtsteht fürfürUniversal DescriptionUniversal DescriptionDiscoveryDiscoveryIntegrationIntegration
ZielZiel:: InteroperabiliträtInteroperabiliträt undund AkzeptanzAkzeptanzvonvonWebServicesWebServices beschleunigenbeschleunigen
Auf StandardsAuf Standards basierendebasierende SpezfikationSpezfikationfürfür diedie BeschreibungBeschreibung undund dasdas AuffindenAuffindenvon WebServicesvon WebServices
UDDIUDDI –– Repository für WebRepository für Web--ServicesServices
5
Die 4 Säulen der .NET PlattformDie 4 Säulen der .NET Plattform
Infrastruktur
Framework & Tools
.NET My Services
Common Language RuntimeEinheitliche KlassenbibliothekVisual Studio.NET
Ständig verfügbare Internet-Dienste(Code-Updates, Suchdienste, Messenger)
Heutige „2000-Produktfamilie“(.NET Enterprise Servers)
DevicesMobile Geräte, auf denen .NET Anwendungenlaufen (Handy, Handheld)
Windows DNA ist für Webanwendungen und loseWindows DNA ist für Webanwendungen und losegekoppelte Systeme nur bedingt geeignetgekoppelte Systeme nur bedingt geeignet
Die Microsoft .NET Plattform istDie Microsoft .NET Plattform istvon vornherein auf das Web ausgerichtetvon vornherein auf das Web ausgerichtetErlaubt aber ebenso die (WeiterErlaubt aber ebenso die (Weiter--) Entwicklung von) Entwicklung vonklassischen C/Sklassischen C/S--AnwendungenAnwendungen
WebWeb--Services ermöglichen den Zugriff auf DiensteServices ermöglichen den Zugriff auf Diensteüber das Internetüber das Internet
ZusammenfassungZusammenfassung
6
Teil 2Teil 2
CLI: Common LanguageCLI: Common LanguageInfrastructureInfrastructure
CLR: Common Language RuntimeCLR: Common Language RuntimeCTS: Common Type SystemCTS: Common Type System
Die Microsoft .NET PlattformDie Microsoft .NET PlattformÜberblick und technischer EinstiegÜberblick und technischer Einstieg
COM Runtime(OLE32.DLL)
MicrosoftTransaction
Server(MTXEX.DLL)
Sprachenlayer(VBRUNxx.DLL)(MSVCRT.DLL)
LoaderRemoting
Dienstefür verteilte
Anwendungen
Typsystem
COM+ Runtime(OLE32.DLL)
Sprachenlayer(VBRUNxx.DLL)(MSVCRT.DLL)
CommonLanguageRuntime
(MSCOREE.DLL)(MSCORLIB.DLL)
Einheitliches IntegrationsmodellEinheitliches Integrationsmodell
COM COM+ .NET
7
EinheitlichesEinheitlichesProgrammiermodellProgrammiermodell
.NET Klassen
Windows API
VB MFC,ATL ASP
Vereinheitlichung durch .NETVereinheitlichung durch .NET
Windows API
.NET Framework
konsistentes API – unabhängig von derSprache und dem Programmiermodell
ASPMFC/ATLVB Forms
RAD,Composition,Delegation
Sub classing, Power,Expressiveness
Stateless,Code embeddedin HTML pages
8
System
System.Data System.Xml
System.Web
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security
Common
OleDb
SqlTypes
SqlClient
XPath
XSLT
RuntimeInteropServices
Remoting
Serialization
Configuration SessionState
Caching Security
ServicesDescription
Discovery
Protocols
UIHtmlControls
WebControls
System.Drawing
Imaging
Drawing2D
Text
Printing
System.Windows.Forms
Design ComponentModel
Schema
Serialization
.NET Namensraum „System“.NET Namensraum „System“
VB
Compiler
IL Code
ASM Code
Übersicht JITÜbersicht JIT--CompilerCompilerIL (Intermediate Language)IL (Intermediate Language)
C#
Compiler
IL Code
C++
Compiler
IL Code
JIT Compiler
Common Language Runtime (CLR)
Betriebssystem
9
ILIL--Code wird vor der AusführungCode wird vor der Ausführungimmer (!) durch Compiler in echtenimmer (!) durch Compiler in echtenMaschinencode übersetztMaschinencode übersetzt
Unabhängigkeit vonUnabhängigkeit vonHardwareplattformenHardwareplattformenunter Windows CE bereits mit einemunter Windows CE bereits mit einemVorläufer der IL im EinsatzVorläufer der IL im Einsatz
Code wird mit JIT kompiliertCode wird mit JIT kompiliert
Sprachen werden gleichwertig, da alleSprachen werden gleichwertig, da alleCompiler ILCompiler IL--Code erzeugenCode erzeugen
eine C# Klasse kann von einer VB.NETeine C# Klasse kann von einer VB.NETKlasse abgeleitet sein und umgekehrtKlasse abgeleitet sein und umgekehrteinheitliche Fehlerbehandlungeinheitliche Fehlerbehandlung
Integration erfolgt auf Codeebene (!)Integration erfolgt auf Codeebene (!)Prüfung mittels Metadaten aber zurPrüfung mittels Metadaten aber zurCompileCompile--ZeitZeit
Implikationen IL & JITImplikationen IL & JIT
10
Das Typsystem wandert vom CompilerDas Typsystem wandert vom Compilerin die Runtimein die Runtime
Typen werden einheitlichTypen werden einheitlichein String unter C# und ein String unterein String unter C# und ein String unter
VB.NET sind identischVB.NET sind identischSprachen werden „per Konstruktion“Sprachen werden „per Konstruktion“interoperabel, da sie das gleicheinteroperabel, da sie das gleicheTypsystem benutzenTypsystem benutzen
Compilerbau wird einfacherCompilerbau wird einfacher
Common Type System (CTS)Common Type System (CTS)
Alles ist ein Objekt!Alles ist ein Objekt!Object
ValueType
Enum
Struct
Typen imNamespace
System
Boolean
Char
Int32
Single
. . .
Double
Type
String
Array
Exception
. . .
11
Boxing und UnboxingBoxing und UnboxingBoxing: Objekt erstellen und WertBoxing: Objekt erstellen und WertkopierenkopierenUnboxing:Unboxing: Typ überprüfen und WertTyp überprüfen und Wertaus Objekt herauskopierenaus Objekt herauskopieren
// implizitstring s = 7.GetType().ToString()
// explizitint i = 123;object o = i;int j = (int)o;123i
o
123
System.Int32
123j
class vs. structclass vs. struct
class CPoint { int x, y; ... } // Reference typestruct SPoint { int x, y; ... } // Value type
CPoint cp = new CPoint(10, 20);SPoint sp = new SPoint(10, 20);
10
20sp
cp
10
20
CPoint
12
Die Common Language RuntimeDie Common Language Runtimeermöglicht unabhängig vonermöglicht unabhängig vonProgrammiersprachen eine durchgängigProgrammiersprachen eine durchgängigobjektobjekt-- und komponentenorientierteund komponentenorientierteProgrammierungProgrammierungDie Programmierung erfolgt mit einerDie Programmierung erfolgt mit einerKlassenbibliothek, die auch die ZugriffeKlassenbibliothek, die auch die Zugriffeauf das Betriebssystem kapseltauf das Betriebssystem kapseltDie Integration verschiedener SprachenDie Integration verschiedener Sprachenerfolgt auf Codeebene (!)erfolgt auf Codeebene (!)Sprachen werden gleichwertig !Sprachen werden gleichwertig !
ZusammenfassungZusammenfassung
Metadaten und ReflectionMetadaten und Reflection
Die Microsoft .NET PlattformDie Microsoft .NET PlattformÜberblick und technischer EinstiegÜberblick und technischer Einstieg
13
Compiler
(C#, VB.NET, etc.)
Typ A {…}
Source Code
Typ B {…}
Typ C {…}
Metadaten für die Typen A, B und C
MSIL-Codefür Typ A
MSIL-Codefür Typ B
MSIL-Codefür Typ C
Modul
Übersetzen von SourcenÜbersetzen von Sourcen --MetadatenMetadaten
public class Person{
public string firstName;public string lastName;
public bool Save() {System.Type t = this.GetType();foreach(FieldInfo f in t.GetFields()){ ... }
}}
System.Type
Felder
Methoden
. . .
Person p = new Person("Michael","Willers");
p
Michael
Willers
Person
Metadaten und ReflectionMetadaten und Reflection
14
ZusammenfassungZusammenfassung
Typen beschreiben sich selbstTypen beschreiben sich selbstEntsprechende Metadaten werden beimEntsprechende Metadaten werden beimKompilieren erzeugtKompilieren erzeugtBeschreibungsformat ist einheitlichBeschreibungsformat ist einheitlichüber alle Sprachenüber alle Sprachen
Assemblies und VersionierungAssemblies und Versionierung
Die Microsoft .NET PlattformDie Microsoft .NET PlattformÜberblick und technischer EinstiegÜberblick und technischer Einstieg
15
AssembliesAssemblies(deutsch: „Montagen“)(deutsch: „Montagen“)
.NET Anwendungen bestehen aus.NET Anwendungen bestehen ausAssembliesAssemblies
Assembly = KomponenteAssembly = Komponente= eine DLL oder EXE= eine DLL oder EXE
Sämtliche SicherheitsSämtliche Sicherheits-- undundVersionsüberprüfungen durch die CLRVersionsüberprüfungen durch die CLRerfolgen auf der Basis von Assemblies !erfolgen auf der Basis von Assemblies !Auslieferung und Verteilung per FilecopyAuslieferung und Verteilung per Filecopy
Compiler
(C#, VB.NET, etc.)
Typ A {…}
Source Code
Typ B {…}
Typ C {…}
Metadaten für die Typen A, B und C
MSIL-Codefür Typ A
MSIL-Codefür Typ B
MSIL-Codefür Typ C
Modul
(app1.vb)
Manifest
Assembly (app1.dll)
Übersetzen von SourcenÜbersetzen von Sourcen ––Assemblies mit ManifestAssemblies mit Manifest
16
Private AssemblyPrivate AssemblyAssembly kann nur von genau einerAssembly kann nur von genau einerAnwendung benutzt werdenAnwendung benutzt werden
Shared AssemblyShared AssemblyAssembly kann global von allenAssembly kann global von allenAnwendungen benutzt werdenAnwendungen benutzt werden
AssembliesAssemblies -- KategorienKategorien
Identifikation anhand eines einfachenIdentifikation anhand eines einfachenNamens, z.B. “Reverse”Namens, z.B. “Reverse”Keine VersionsüberprüfungKeine VersionsüberprüfungInstallation per FilecopyInstallation per Filecopy
Standardmäßig befinden sich AssemblyStandardmäßig befinden sich Assemblyund Anwendung im gleichen Verzeichnisund Anwendung im gleichen VerzeichnisVerzeichnis kann per CFGVerzeichnis kann per CFG--Datei definiertDatei definiertwerdenwerden
Private AssemblyPrivate Assembly
17
Was bestimmt einen Assembly/Typ?Was bestimmt einen Assembly/Typ?
Identität eines Assembly:Identität eines Assembly:Name z.B. Pudel (= Klassenname)Name z.B. Pudel (= Klassenname)Version 1.2.3.4 (Version 1.2.3.4 (zBzB Automatisch durchAutomatisch durchVS)VS)
AssemblyInfo.csAssemblyInfo.csGilt für alle Klassen des AssembliesGilt für alle Klassen des Assemblies
Ländercode (Ländercode (cultureculture)) zbzb.. dede--DEDE (ISO(ISO--Standard) (hängt nur am Assembly)Standard) (hängt nur am Assembly)
Public Key Token zur Signierung (darfPublic Key Token zur Signierung (darfleer sein)leer sein)
Identifikation über einenIdentifikation über einen Strong NameStrong NameEindeutig per PublicEindeutig per Public--KeyKey--VerschlüsselungVerschlüsselungStrong Name = Identität + Public Key TokenStrong Name = Identität + Public Key TokenGarantie der CodeGarantie der Code--IntegritätIntegrität
Versionsüberprüfung durch dieVersionsüberprüfung durch dieRuntimeRuntimeInstallation im Global Assembly CacheInstallation im Global Assembly Cache(( SDKSDK--Tool gacutil.exe)Tool gacutil.exe)
systemweiter “Speicherbereich”systemweiter “Speicherbereich”basiert auf dem Filesystem, normalebasiert auf dem Filesystem, normaleDateienDateienkeine Registrykeine Registry--EinträgeEinträge
Shared AssemblyShared Assembly
18
1.1. Keyfile erstellen (Keyfile erstellen ( SDKSDK--Tool sn.exe)Tool sn.exe)2.2. Compiler mit Keyfile und VersionsnummerCompiler mit Keyfile und Versionsnummer
aufrufenaufrufen3.3. Beim Erstellen des Assemblies wird derBeim Erstellen des Assemblies wird der
Public Key im Manifest eingetragenPublic Key im Manifest eingetragen4.4. Nach dem Erstellen wird das Modul, in demNach dem Erstellen wird das Modul, in dem
sich das Manifest befindet, mit dem Privatesich das Manifest befindet, mit dem PrivateKey signiertKey signiert
5.5. Client, der das Assembly referenziert,Client, der das Assembly referenziert,erhält beim Kompilieren den Public Key (erhält beim Kompilieren den Public Key (AttributAttribut publickeytokenpublickeytoken in seinem Manifest)in seinem Manifest)
Shared AssemblyShared Assembly –– SignverfahrenSignverfahrenCode IntegritätCode Integrität
VersionierungVersionierungMajorMajor –– MinorMinor –– BuildBuild -- RevisionRevision
19
Ein Shared Assembly istEin Shared Assembly istgrundsätzlichgrundsätzlich inkompatibelinkompatibel zumzumClient, wenn sich die MajorClient, wenn sich die Major--oder Minoroder Minor -- Version ändertVersion ändert
Beispiel: neues ProduktreleaseBeispiel: neues ProduktreleaseRuntime wirft eine Type LoadRuntime wirft eine Type LoadExceptionException
VersionierungVersionierung
Ein Shared AssemblyEin Shared Assembly kannkannkompatibelkompatibel zum Client sein, wennzum Client sein, wennsich die Buildsich die Build--Nummer bei gleichNummer bei gleichbleibender Majorbleibender Major-- und Minorund Minor--Version ändertVersion ändert
Beispiel: ServicepackBeispiel: ServicepackRuntime lässt Aufruf zuRuntime lässt Aufruf zuSignaturen werden nicht geprüft!Signaturen werden nicht geprüft!
VersionierungVersionierung
20
Ein Shared Assembly istEin Shared Assembly istgrundsätzlichgrundsätzlich kompatibelkompatibel zum Client,zum Client,wenn sich nur die Revisionwenn sich nur die Revision -- NummerNummerändertändert
In diesem Fall liegt ein so genannterIn diesem Fall liegt ein so genannterQuick Fix Engineering (QFE) vorQuick Fix Engineering (QFE) vorBeispiel: Security HotfixBeispiel: Security HotfixRuntime lässt Aufruf zuRuntime lässt Aufruf zuSignaturen werden nicht geprüft!Signaturen werden nicht geprüft!
VersionierungVersionierung
Versionierung per CFGVersionierung per CFG--DateiDatei<configuration>
<runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="[Assembly Name]"publicKeyToken="[public key token]“culture="" />
<bindingRedirect oldVersion="[Versionsnummer]"newVersion="[Versionsnummer]" />
</dependentAssembly></assemblyBinding>
</runtime></configuration>
21
Beispiel für die OptionBeispiel für die OptionbindingRedirectbindingRedirect
Version 2.0.0.0 wurde installiert, hatVersion 2.0.0.0 wurde installiert, hataber einen Fehleraber einen FehlerDie Version 1.0.0.0 funktionierteDie Version 1.0.0.0 funktioniertehingegen reibungsloshingegen reibungslosohne neu zu kompilieren könnenohne neu zu kompilieren könnensämtliche Aufrufe auf die Versionsämtliche Aufrufe auf die Version1.0.0.0 “umgeleitet” werden1.0.0.0 “umgeleitet” werden
Versionierung per CFGVersionierung per CFG--DateiDatei
Teil 3Teil 3
ASP.NETASP.NET
Die Microsoft .NET PlattformDie Microsoft .NET PlattformÜberblick und technischer EinstiegÜberblick und technischer Einstieg
22
IIS
WebForms
WebServices
Common Language Runtime
ASP.NET in der ÜbersichtASP.NET in der Übersicht
SOAP
app.aspx
<HTML><script>…</script>…</HTML>
app.asmx
class class1 {[WebMethod]public intmethod1(){ … }
}
HTTP
GET
Web Services unter ASP.NETWeb Services unter ASP.NETEinfaches ProgrammiermodellEinfaches Programmiermodell
Erstellen Sie eine ASMXErstellen Sie eine ASMX--Datei, die eineDatei, die eineKlasse mit den Methoden enthält, die SieKlasse mit den Methoden enthält, die Siezur Verfügung stellen möchtenzur Verfügung stellen möchtenDas Hinzufügen des AttributsDas Hinzufügen des Attributs WebMethodWebMethodzu einer Publiczu einer Public--Methode macht sieMethode macht sieautomatisch zu einem WebServiceautomatisch zu einem WebServiceASP.NET macht den "Rest"ASP.NET macht den "Rest"
Erzeugen der ServiceErzeugen der Service--Beschreibung alsBeschreibung alsWSDLWSDL--DateiDatei (WebService Description(WebService DescriptionLanguage)Language)Compile on demandCompile on demand
23
Web FormsWeb FormsKeine Scriptsprachen mehr!Keine Scriptsprachen mehr!
„echte“ Sprachen: VB.NET, C#, ...„echte“ Sprachen: VB.NET, C#, ...Seite wird beim ersten Aufruf komplett aufSeite wird beim ersten Aufruf komplett aufdem Server kompiliertdem Server kompiliertServer sendet dann die kompilierte Seite alsServer sendet dann die kompilierte Seite alsHTML an den Browser („HTML an den Browser („RenderingRendering“)“)
Seiten können serverseitige UISeiten können serverseitige UI--ControlsControlsverwendenverwenden
Diese Controls werdenDiese Controls werden WebControlsWebControls genanntgenanntBrowserneutral: erzeugen HTMLBrowserneutral: erzeugen HTML--3.23.2--Code!Code!Verstecken das HTTPVerstecken das HTTP--Protokoll vor demProtokoll vor demEntwicklerEntwickler
WebControlsWebControlsErzeugen serverseitig HTML 3.2Erzeugen serverseitig HTML 3.2--OutputOutputWebControls merken sich IhrenWebControls merken sich IhrenZustandZustand
nach einem POST stehen dienach einem POST stehen dieeingegebenen Werte automatischeingegebenen Werte automatischwieder in den Controlswieder in den Controls
Einheitliches ObjektmodellEinheitliches ObjektmodellEventgesteuertesEventgesteuertesProgrammiermodellProgrammiermodell
VB for the WebVB for the Web
24
1.1. Filecopy der Komponente in dasFilecopy der Komponente in dasbinbin--Verzeichnis der AnwendungVerzeichnis der Anwendung
2.2. Aufrufen dieser KomponenteAufrufen dieser Komponenteinnerhalb einer ASP.NETinnerhalb einer ASP.NETAnwendungAnwendung
3.3. Sourcecode der Komponente ändernSourcecode der Komponente ändernund neue Version erstellenund neue Version erstellen
4.4. Filecopy der neuen Komponente inFilecopy der neuen Komponente indas bindas bin--Verzeichnis der AnwendungVerzeichnis der Anwendung
ASP.NET DeploymentASP.NET Deployment -- UpdatesUpdates
ASP.NET setzt auf der Common LanguageASP.NET setzt auf der Common LanguageRuntime aufRuntime auf
Seiten werden immer (!) kompiliert und erst beimSeiten werden immer (!) kompiliert und erst beimAufruf „rendert“ der Server eine Seite für dieAufruf „rendert“ der Server eine Seite für dieAusgabeAusgabe
Über ASP.NET WebServices könnenÜber ASP.NET WebServices könnenMethoden auf einfache Weise per SOAPMethoden auf einfache Weise per SOAPangesprochen werdenangesprochen werden
Detaillierte Kenntnisse über HTTP und SOAP sindDetaillierte Kenntnisse über HTTP und SOAP sindnicht notwendignicht notwendig
WebControls erleichtern die ProgrammierungWebControls erleichtern die Programmierungvergleichbar mit ActiveXvergleichbar mit ActiveX--ControlsControls
Zusammenfassung ASP.NETZusammenfassung ASP.NET
25
MIT Microsoft Internet ToolkitMIT Microsoft Internet ToolkitVollständig in VS.NET integriertVollständig in VS.NET integriert
Ersatz für „embedded Tools“ eVB,Ersatz für „embedded Tools“ eVB, eVCeVCeinheitliche IDE für Windows, Web undeinheitliche IDE für Windows, Web undMobileMobile
Write OnceWrite Once –– Run AnywhereRun AnywhereIntelligente Controls passen sich demIntelligente Controls passen sich demAusgabegerät anAusgabegerät anEinfachste Unterstützung einer großer ZahlEinfachste Unterstützung einer großer Zahlvon WAPvon WAP--GerätenGeräten
Zum Schluss …Zum Schluss …
Die Microsoft .NET PlattformDie Microsoft .NET PlattformÜberblick und technischer EinstiegÜberblick und technischer Einstieg
26
Zukunft & Stand der Dinge!Zukunft & Stand der Dinge!??
• Lösungs-Design sollteVerlagerung von Services ausdem Firmennetz nach außenund umgekehrt berücksichtigen!
• WebServices werden zum großen Geschäft?
• SOAP ersetzt DCOM-Protokoll (bei COM)bzw. IIOP (bei CORBA)?
• Mehr asynchrone/verteilte Programmierung
Service
AppCode
Service
FragenFragen??
Uff...
27
Danke für Ihre AufmerksamkeitDanke für Ihre Aufmerksamkeit
☺☺Besuchen Sie unsere SystemcenterBesuchen Sie unsere Systemcenter--
Veranstaltungen!Veranstaltungen!
https://https://www.microsoft.comwww.microsoft.com//germanygermany/ms//ms/systemcenterprogrammsystemcenterprogramm//veranstalveranstaltungentungen
Vielen Dank fürVielen Dank fürIhreIhreAufmerksamkeit!Aufmerksamkeit!
28
Mehr InformationenMehr InformationenWillers, Michael: Die Common LanguageWillers, Michael: Die Common LanguageRuntimeRuntimeOBJEKTSpektrumOBJEKTSpektrumAusgabe 4/2001,Ausgabe 4/2001, S. 90S. 90--95,95, JuliJuli/August/August20012001Willers, Michael: ReportWillers, Michael: Report –– Microsoft‘sMicrosoft‘sWeg zu. NETWeg zu. NETc‘tc‘t Magazin für ComputertechnikMagazin für ComputertechnikAusgabe 6/2001, S. 252Ausgabe 6/2001, S. 252--259, Februar 2001259, Februar 2001msdnmsdn online:online: msdn.microsoft.commsdn.microsoft.com/net/netStandardisierung:Standardisierung:msdn.microsoft.commsdn.microsoft.com/net//net/ecmaecma
This document is for informational purposes only. MICROSOFT MAKES NOWARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT.
2001,2002 Microsoft Corporation. All rights reserved.
Companies, names, and/or data used in screens and sample output are fictitious, unlessotherwise noted.
Microsoft, Windows, and Windows NT are either registered trademarks or trademarks ofMicrosoft Corporation in the United States and/or other countries. Other product andcompany names mentioned herein may be the trademarks of their respective owners
Copyrights ...Copyrights ...
29
Zum Schluss ...Zum Schluss ...WhereWhere ......