1 Microsoft .NET Microsoft .NET Eine neue Generation der Eine neue Generation der Softwareentwicklung Softwareentwicklung Klaus Rohe ( Klaus Rohe ( [email protected][email protected]) ) .Net Strategy & Developer Group .Net Strategy & Developer Group Microsoft GmbH Microsoft GmbH
49
Embed
1 Microsoft.NET Eine neue Generation der Softwareentwicklung Klaus Rohe ([email protected]).Net Strategy & Developer Group Microsoft GmbH [email protected].
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
11
Microsoft .NETMicrosoft .NET Eine neue Generation der Eine neue Generation der
SoftwareentwicklungSoftwareentwicklung
Klaus Rohe (Klaus Rohe ([email protected]@microsoft.com)).Net Strategy & Developer Group .Net Strategy & Developer Group Microsoft GmbHMicrosoft GmbH
AgendaAgenda Microsoft .NETMicrosoft .NET Das Windows .NET FrameworkDas Windows .NET Framework
Common Language Runtime (CLR)Common Language Runtime (CLR) Assemblies, Security, DeploymentAssemblies, Security, Deployment
Windows .NET Framework KlassenbibliothekenWindows .NET Framework Klassenbibliotheken ADO.NETADO.NET Windows FormsWindows Forms ASP.NETASP.NET .NET Enterprise Services.NET Enterprise Services .NET Remoting.NET Remoting
XML Web-Services XML Web-Services Gegenüberstellung Microsoft .NET - J2EE Gegenüberstellung Microsoft .NET - J2EE Demo mit Visual Studio .NETDemo mit Visual Studio .NET
33
Microsoft .NETMicrosoft .NETSoftware for connecting information, people, systems and devicesSoftware for connecting information, people, systems and devices
Connected Connected DevelopmentDevelopment
Quickly build solutions Quickly build solutions that interoperate that interoperate
across languages, across languages, platforms and devicesplatforms and devices
Connected SystemsConnected SystemsIntegrate new and existing systems Integrate new and existing systems
across the organization, across the organization, and externally with partners. and externally with partners.
Connected BusinessConnected BusinessAgility to connect more deeply with Agility to connect more deeply with customers, integrate with partners customers, integrate with partners
and empower employeesand empower employees
Connected Connected ExperiencesExperiences
Information Information anytime, anywhere, anytime, anywhere,
any deviceany device
Built on a foundation of XML Web servicesBuilt on a foundation of XML Web services
v-paulaw
Crop out the white square and "premium" from around the arrows. Leave the white in the oval inside the arrows.Make the arrows wrap around the outside of the big XML oval. We need to show the 4 areas of the .NET nicely. One idea I had was to do the aperture idea we're currently using for Deborah Tom and swirl 4 quadrants in at the center to show they all get swooshed in to the centeral .net connection. Whatever we do on this slide, needs to be supported on teh next slide.
Standards Standards ECMA-334ECMA-334, C# (C sharp) , C# (C sharp) Language Specification, and Language Specification, and ECMA-335ECMA-335, , Common Language Infrastructure, Common Language Infrastructure, approved by the ECMA General approved by the ECMA General Assembly of 13th December 2001.Assembly of 13th December 2001.
http://www.ecma.ch HP, Intel & Microsoft
Microsoft Expands Commitment to Open Microsoft Expands Commitment to Open Standards and Interoperability. Standards and Interoperability. Teams With Corel to Develop Shared Teams With Corel to Develop Shared Source Implementation of ECMA Source Implementation of ECMA Standards C# and CLI For FreeBSD and Standards C# and CLI For FreeBSD and Windows. REDMOND, Wash. - June 27, Windows. REDMOND, Wash. - June 27, 2001. 2001. Beta availability expected: H1 2002Beta availability expected: H1 2002
Common Language RuntimeCommon Language RuntimeMSIL BeispielMSIL Beispiel
1111
Common Language RuntimeCommon Language RuntimeAssembliesAssemblies
.NET Anwendungen bestehen aus .NET Anwendungen bestehen aus AssembliesAssemblies Assembly = KomponenteAssembly = Komponente
Ein Assembly ist ein Container für ModuleEin Assembly ist ein Container für ModuleSämtliche Sicherheits- und Sämtliche Sicherheits- und
Versionsüberprüfungen durch die CLR Versionsüberprüfungen durch die CLR erfolgen auf der Basis von Assemblies !!!erfolgen auf der Basis von Assemblies !!!
Metadata for Classes X, Y and ZMetadata for Classes X, Y and Z
MSIL CodeMSIL Codefor Class Yfor Class Y
MSIL CodeMSIL Codefor Class Zfor Class Z
Class X { … }Class X { … }Class Y { … }Class Y { … }Class Z { … }Class Z { … }
1313
Private AssemblyPrivate Assembly Assembly kann nur von genau einer Assembly kann nur von genau einer
Anwendung benutzt werdenAnwendung benutzt werden
Shared AssemblyShared Assembly Assembly kann global von allen Assembly kann global von allen
Anwendungen benutzt werdenAnwendungen benutzt werden
Dynamic AssembliesDynamic Assemblies Zur Laufzeit erzeugte AssembliesZur Laufzeit erzeugte Assemblies
AssembliesAssembliesKategorienKategorien
1414
Identifikation anhand eines einfachen Identifikation anhand eines einfachen Namens, z.B. “MyAssembly” Namens, z.B. “MyAssembly”
Keine Versionsüberprüfung durch die Keine Versionsüberprüfung durch die CLR, Versionierung durch den CLR, Versionierung durch den EntwicklerEntwickler
Installation per File copy Installation per File copy Standardmäßig befinden sich Assembly Standardmäßig befinden sich Assembly
und Anwendung im gleichen Verzeichnisund Anwendung im gleichen Verzeichnis Verzeichnis kann per config-Datei definiert Verzeichnis kann per config-Datei definiert
Identifikation über einen Identifikation über einen Strong NameStrong Name Versionsüberprüfung durch die Versionsüberprüfung durch die
RuntimeRuntime Installation im Global Assembly CacheInstallation im Global Assembly Cache
Systemweiter “Speicherbereich” für .NET Systemweiter “Speicherbereich” für .NET AssembliesAssemblies Windows .NET Framework Assemblies Windows .NET Framework Assemblies keine Registry-Einträge für die Assemblieskeine Registry-Einträge für die Assemblies
Role-Based SecurityRole-Based SecurityEnforced by application on itselfEnforced by application on itself
Code Access SecurityCode Access SecurityEnforced by the common language runtime on the assemblyEnforced by the common language runtime on the assembly
Windows User SecurityWindows User SecurityEnforced by the OS on all the codeEnforced by the OS on all the code
Role-Based SecurityRole-Based Security Role based security erlaubt es dem Code Role based security erlaubt es dem Code
Sicherheitsentscheidungen zu treffen, welche auf der Sicherheitsentscheidungen zu treffen, welche auf der Rolle des Users basieren, der den Code ausführt.Rolle des Users basieren, der den Code ausführt.
für den Code auf der Basis seiner Herkunft.für den Code auf der Basis seiner Herkunft.
1818
Deployment von .NET ApplikationenDeployment von .NET Applikationen
Beim ersten Start der Windows Forms Beim ersten Start der Windows Forms Applikation werden die benötigten Applikation werden die benötigten Assemblies vom Server geladen und lokal Assemblies vom Server geladen und lokal gecached.gecached.
Beim erneuten Start der Applikation wird Beim erneuten Start der Applikation wird geprüft, ob sich die Assemblies auf dem geprüft, ob sich die Assemblies auf dem Server geändert haben. Nur dann werden Server geändert haben. Nur dann werden sie vom Server geladen.sie vom Server geladen.
Betrieb, Pflege und Wartung genauso Betrieb, Pflege und Wartung genauso einfach, wie bei Web-Applikationen.einfach, wie bei Web-Applikationen.
Windows Forms Applikation
Assembly1
Assembly2
Assembly3
Windows ServerWindows Forms Applikation,lädt Assemblies zur Laufzeit vom Server.
Zentraler Punkt zur Administration der Applikation
1919
Windows .NET FrameworkWindows .NET Framework NamensräumeNamensräume
ADO.NET (1)ADO.NET (1)Datenbankzugriff, XMLDatenbankzugriff, XML
Warum eine neue Schnittstelle für den Warum eine neue Schnittstelle für den Datenzugriff?Datenzugriff? Web Applikationen benötigen andere ArchitekturWeb Applikationen benötigen andere Architektur Lose Kopplung zwischen Applikation und Lose Kopplung zwischen Applikation und
DatenbankDatenbank Komfortabele Unterstützung von XML Komfortabele Unterstützung von XML
entwickelt sich zum universellen Datenformatentwickelt sich zum universellen Datenformat
Problem mit bestehenden APIsProblem mit bestehenden APIs ADO, OLE DB und ODBC: wurden für enge ADO, OLE DB und ODBC: wurden für enge
Kopplung und dauerhafte Verbindung zwischen Kopplung und dauerhafte Verbindung zwischen Client und Datenbank konzipiertClient und Datenbank konzipiert
ADO.NET unterstützt explizit enge und lose ADO.NET unterstützt explizit enge und lose Kopplung zwischen Client und Datenbank Kopplung zwischen Client und Datenbank
2222
ADO.NET (2)ADO.NET (2)
Managed CodeManaged Code
.NET Data Provider.NET Data Provider
DBMSDBMS
ClientClient
DataSet
RowsRows
Connection
Command
DataReader
DataAdapter
Enge Kopplung
Lose Kopplung
2323
Windows Forms (1)Windows Forms (1)Was ist Windows Forms?Was ist Windows Forms?
Eine Klassenbibliothek innerhalb des Eine Klassenbibliothek innerhalb des Windows .NET Frameworks zur Entwicklung Windows .NET Frameworks zur Entwicklung von GUI-Applikationenvon GUI-Applikationen Namespace: System.Windows.FormsNamespace: System.Windows.Forms
Ersetzt die Microsoft Foundation Classes Ersetzt die Microsoft Foundation Classes (MFC)(MFC)
GUI Entwurf mit GUI Entwurf mit Windows FormsWindows Forms ist in Visual ist in Visual Studio.NET eingebautStudio.NET eingebaut
MFC kann aber weiterhin genutzt werdenMFC kann aber weiterhin genutzt werden
2424
Windows Forms (2)Windows Forms (2)Ausschnitt aus der KlassenhierachieAusschnitt aus der Klassenhierachie
System.Object
System.MarshallByRefObject
System.ComponentModel.Component
Control
ButtonBase
Button
TextBoxBase
TextBox
ContainerControll
Form
2525
.NET Enterprise Services.NET Enterprise Services
API zur Entwicklung und Nutzung von API zur Entwicklung und Nutzung von COM+ Komponenten mit Microsoft .NET: COM+ Komponenten mit Microsoft .NET: Distributed TransactionsDistributed Transactions SecuritySecurity Object PoolingObject Pooling Just in time activationJust in time activation Queued ComponentsQueued Components EventsEvents
2626
ASP.NETASP.NET Saubere Trennung von Programmlogik und Saubere Trennung von Programmlogik und
Erheblich verbesserte AusführungsgeschwindigkeitErheblich verbesserte Ausführungsgeschwindigkeit Deployment während des laufenden Deployment während des laufenden
Servererweiterungen ohne ISAPIServererweiterungen ohne ISAPI WebForms, WebControls, StatemanagementWebForms, WebControls, Statemanagement XML Web ServicesXML Web Services
2727
ASP.NET Architektur
ASP.NETASP.NET Web ControlsWeb Controls
XML Web-ServiceXML Web-Service
Web Clients / Web Service ClientWeb Clients / Web Service Client
Windows Operating SystemWindows Operating System
IISIIS(Web-Server)(Web-Server)
HTTP / SOAPHTTP / SOAP
ASP.NETASP.NETapplicationsapplications
.NET.NETFrameworkFramework
2828
Das .NET Das .NET CompactCompact Framework Framework
.NET Framework für “Smart Devices”.NET Framework für “Smart Devices” Ziel: Software als Service für GeräteZiel: Software als Service für Geräte ““Lightweight” Runtime-ArchitekturLightweight” Runtime-Architektur Kompatible Teilmenge der Desktop Kompatible Teilmenge der Desktop
PlattformPlattform
Verfügbar für:Verfügbar für: Windows CE Windows CE Unterschiedliche FormfaktorenUnterschiedliche Formfaktoren
2929
.NET Remoting.NET Remoting
RemotingRemoting ist der Zugriff auf Objekte ist der Zugriff auf Objekte über Grenzen hinweg.über Grenzen hinweg. Grenzen können unterschiedliche Grenzen können unterschiedliche
Maschinen, Prozesse oder Application Maschinen, Prozesse oder Application Domains sein.Domains sein.
Die CLR abstrahiert OS-Prozesse und Die CLR abstrahiert OS-Prozesse und arbeitet mit „virtuellen Prozessen“ den arbeitet mit „virtuellen Prozessen“ den so genannten so genannten Application Domains Application Domains (Appdomains)(Appdomains)..
3030
Appdomains und RemotingAppdomains und Remoting
Eine Appdomain existiert in genau einem ProzessEine Appdomain existiert in genau einem Prozess Ein Prozess kann mehrere AppDomains beinhaltenEin Prozess kann mehrere AppDomains beinhalten Aufrufe über AppDomain-Grenzen hinweg erfordern Aufrufe über AppDomain-Grenzen hinweg erfordern
RemotingRemoting Marshal-By-Value Objects und Marshal-By-Reference Marshal-By-Value Objects und Marshal-By-Reference
Web Services mit Windows .NET Web Services mit Windows .NET FrameworkFramework Web Services mit ASP.NETWeb Services mit ASP.NET
Die Web Services werden vom IIS gehostetDie Web Services werden vom IIS gehostet Dies ist die Bevorzugte Art mit Microsoft .NET Web Dies ist die Bevorzugte Art mit Microsoft .NET Web
Services zu implementierenServices zu implementieren Komplette Infrastruktur, welche IIS bietet, wird Komplette Infrastruktur, welche IIS bietet, wird
automatisch genutztautomatisch genutzt
Web Services mit RemotingWeb Services mit Remoting Serverprozess, welche die Web Services hostet, Serverprozess, welche die Web Services hostet,
muss vom Programmierer implementiert werden.muss vom Programmierer implementiert werden.
3434
Support von Web Service durch Support von Web Service durch Visual Studio .NETVisual Studio .NET
Eigene Projektart für Web Services, die unter Eigene Projektart für Web Services, die unter ASP.NET entwickelt werdenASP.NET entwickelt werden
Automatische Generierung von Code-Frames Automatische Generierung von Code-Frames für Web-Services.für Web-Services.
Automatische Generierung von Proxies aus Automatische Generierung von Proxies aus WSDL-BeschreibungenWSDL-Beschreibungen
Integrierter UDDI-BrowserIntegrierter UDDI-Browser Erzeugt automatisch Test-Clients für Web Erzeugt automatisch Test-Clients für Web
ServicesServices
3535
Global XML Web Services Architecture (GXA)Global XML Web Services Architecture (GXA)““Secure, Reliable, Transacted servicesSecure, Reliable, Transacted services””
SOAP (Logical Messaging)SOAP (Logical Messaging)
TransportsTransports
MessagingMessagingMessagingMessaging
WSDL, UDDI, InspectionWSDL, UDDI, Inspection
Quality Quality of Serviceof ServiceQuality Quality
of Serviceof Service
TransactionsTransactions
Business Business ProcessesProcessesBusiness Business ProcessesProcessesBPEL4WSBPEL4WS
Unterstützung von GXA durch das Unterstützung von GXA durch das Windows .NET FrameworkWindows .NET Framework Microsoft stellt Microsoft stellt Web Services Enhancements Web Services Enhancements
for Microsoft .NET (WSE)for Microsoft .NET (WSE) zur Verfügung zur Verfügung WSE unterstützt folgende Spezifikationen:WSE unterstützt folgende Spezifikationen:
DIME (Direct Internet Message Encapsulation) DIME (Direct Internet Message Encapsulation) WS-AttachmentsWS-Attachments WS-RoutingWS-Routing WS-SecurityWS-Security
Authentifizierung und IntegritätAuthentifizierung und Integrität
Optionaler Service, der mit Windows Server 2003 Optionaler Service, der mit Windows Server 2003 ausgeliefert wirdausgeliefert wird
Einfach zu installieren und zu verwaltenEinfach zu installieren und zu verwalten Entspricht der UDDI Spezifikation V1 & V2 API Entspricht der UDDI Spezifikation V1 & V2 API Sehr gut skalierbar, gleiche Code-Basis wie Sehr gut skalierbar, gleiche Code-Basis wie http://http://
uddi.microsoft.comuddi.microsoft.com Entwickelt mit dem Windows .NET Framework 1.1, Entwickelt mit dem Windows .NET Framework 1.1,
IIS 6.0 und SQL Server 2000IIS 6.0 und SQL Server 2000
Demo mit Visual Studio .NETDemo mit Visual Studio .NET1.1. Implementierung eines XML Web-Service mit Implementierung eines XML Web-Service mit
ASP.NETASP.NET
2.2. Implementierung eines Windows Forms Clients, der Implementierung eines Windows Forms Clients, der einen mit Java implementierten XML Web-Service einen mit Java implementierten XML Web-Service konsumiertkonsumiert Der XML Web-Service wurde mit GLUE 3.2.3 Standard Der XML Web-Service wurde mit GLUE 3.2.3 Standard
Edition von Edition von The Mind Electric implementiertThe Mind Electric implementiert (JDK 1.4.0.03). (JDK 1.4.0.03).
Danke für Ihre Aufmerksamkeit.Danke für Ihre Aufmerksamkeit.
Fragen ?Fragen ?
4444
Weitere Informationen (1)Weitere Informationen (1)http://www.gotdotnet.comhttp://www.gotdotnet.comhttp://www.asp.nethttp://www.asp.nethttp://http://dotnet.oreilly.comdotnet.oreilly.com Design Patterns in C#Design Patterns in C#
Weitere Informationen (2)Weitere Informationen (2)
Michael Stal, C#- und .NET Tutorial, Teil 1 - 3Michael Stal, C#- und .NET Tutorial, Teil 1 - 3IX Magazin für Professionelle InformationstechnikIX Magazin für Professionelle Informationstechnik
Teil 1: Heft 12, Dezember 2001, Seiten 122 - 129Teil 1: Heft 12, Dezember 2001, Seiten 122 - 129
Teil 2: Heft 1, Januar 2002, Seiten 130 - 135Teil 2: Heft 1, Januar 2002, Seiten 130 - 135
Teil 3: Heft 2, Februar 2002, Seiten 136 - 143Teil 3: Heft 2, Februar 2002, Seiten 136 - 143
Holger Schwichtenberg, Nette Vielfalt, Holger Schwichtenberg, Nette Vielfalt, Sprachen und Entwicklungstools für das .NET Sprachen und Entwicklungstools für das .NET FrameworkFrameworkIX Magazin für Professionelle Informationstechnik, IX Magazin für Professionelle Informationstechnik,
Heft 10, Oktober 2002, Seiten 38 - 50Heft 10, Oktober 2002, Seiten 38 - 50
4646
David ChappellUnderstanding .NETA tutorial and Analysis ISBN 0-201-74162-8