1. 2 microsoft.net Überblick dirk primbs technologieberater developer platform & strategy group...
TRANSCRIPT
11
22
Microsoft .NET ÜberblickMicrosoft .NET Überblick
Dirk PrimbsDirk PrimbsTechnologieberater Technologieberater Developer Platform & Strategy GroupDeveloper Platform & Strategy GroupMicrosoft Deutschland GmbHMicrosoft Deutschland GmbH
33
AgendaAgenda
Microsoft .NETMicrosoft .NET .NET Framework.NET Framework
Common Language RuntimeCommon Language Runtime .NET Class Libraries.NET Class Libraries ADO.NETADO.NET Windows FormsWindows Forms ASP.NETASP.NET
.NET My Services.NET My Services
44
Microsoft’s Microsoft’s VisionVision
Empower peopleEmpower people
through great through great softwaresoftware
any time, any place,any time, any place,
and on any deviceand on any device
55
Microsoft .NETMicrosoft .NET
66
Common Language Common Language RuntimeRuntime
Verwaltet ausgeführten CodeVerwaltet ausgeführten Code Filigrane Filigrane
SicherheitseinstellungenSicherheitseinstellungen Deployment ohne “.dll Hölle”Deployment ohne “.dll Hölle” ““Object remoting” durch Object remoting” durch
SOAPSOAP
Win32Win32
MSMQMSMQ(Message(MessageQueuing)Queuing)
COM+COM+(Transactions, Partitions, (Transactions, Partitions,
Object Pooling)Object Pooling)IISIIS WMIWMI
Common Language RuntimeCommon Language Runtime
Das .NET FrameworkDas .NET Framework
Base FrameworkBase Framework
ADO.NET: Data and XMLADO.NET: Data and XML
Web ServicesWeb Services User InterfaceUser Interface
VBVB C++C++ C#C#
ASP.NETASP.NET
PerlPerl PythonPython ……
77
Common Language RuntimeCommon Language Runtime
Class Loader
IL to NativeCompilers
CodeManager
GarbageCollector
Security Engine Debug Engine
Type Checker Exception Manager
Thread Support COM Marshaler
Base Class Library Support
88
Common Language RuntimeCommon Language RuntimeAusführungsmodellAusführungsmodell
VB.NETVB.NETSource Source codecode
VC++.NETVC++.NETVC#.NETVC#.NET
Operating System ServicesOperating System Services
Common Language RuntimeCommon Language Runtime
Native CodeNative Code
ManagedManagedcodecode
UnmanagedUnmanagedComponentComponent
JIT CompilerJIT Compiler
AssemblyAssemblyIL CodeIL Code
AssemblyAssemblyIL CodeIL Code
AssemblyAssemblyIL CodeIL Code
CompilerCompiler CompilerCompilerCompilerCompiler
99
// File: simple.cs
using System;
class Simple
{
public static void Main()
{
for (int i = 1; i <= 5; i++)
Console.WriteLine(i);
}
}
csc simple.cscsc simple.csildasm simpl.exeildasm simpl.exe
Common Language RuntimeCommon Language RuntimeMSIL BeispielMSIL Beispiel
1010
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 !!!
1111
.NET Security (1).NET Security (1)Security Levels für .NET ApplikationenSecurity Levels für .NET Applikationen
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
1212
.NET Security (2).NET Security (2)Role-Based and Code Access SecurityRole-Based and Code Access Security
Role-Based SecurityRole-Based Security Role based security erlaubt es dem Code Role based security erlaubt es dem Code
Sicherheitsentscheidungen zu treffen, Sicherheitsentscheidungen zu treffen, welche auf der Rolle des Users basieren, der welche auf der Rolle des Users basieren, der den Code ausführt.den Code ausführt.
Code Access SecurityCode Access Security Code access security trifft Code access security trifft
Sicherheitsentscheidungen für den Code auf Sicherheitsentscheidungen für den Code auf der Basis seiner Herkunft.der Basis seiner Herkunft.
1313
Framework ClassesFramework Classes Verfügbar für alle Verfügbar für alle
ProgrammiersprachenProgrammiersprachen Objektorientiert und Objektorientiert und
konsistentkonsistent Einheitliches TypensystemEinheitliches Typensystem ErweiterbarErweiterbar
Win32Win32
MSMQMSMQ(Message(MessageQueuing)Queuing)
COM+COM+(Transactions, Partitions, (Transactions, Partitions,
Object Pooling)Object Pooling)IISIIS WMIWMI
Common Language RuntimeCommon Language Runtime
Das .NET FrameworkDas .NET Framework
Base FrameworkBase Framework
ADO.NET: Data and XMLADO.NET: Data and XML
Web ServicesWeb Services User InterfaceUser Interface
VBVB C++C++ C#C#
ASP.NETASP.NET
PerlPerl PythonPython ……
1414
System
System.Data System.Xml
System.Web
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security
Design
ADO
SQLTypes
SQL
XPath
XSLT
RuntimeInteropServices
Remoting
Serialization
Serialization
Configuration SessionState
Caching Security
ServicesDescription
Discovery
Protocols
UIHtmlControls
WebControls
System.Drawing
Imaging
Drawing2D
Text
Printing
System.WinForms
Design ComponentModel
.NET Framework: .NET Framework: KlassenbibliothekenKlassenbibliotheken
1515
ADO.NETADO.NET Um datenrelevante Um datenrelevante
Anwendungen auf XML-Basis Anwendungen auf XML-Basis zu erstellenzu erstellen
Erleichtert den Erleichtert den Datenaustausch zwischen Datenaustausch zwischen PlattformenPlattformen
Programmieren gegen selbst Programmieren gegen selbst erstellte Objekteerstellte Objekte
Zugriff auf relationale und Zugriff auf relationale und semistrukturierte Datensemistrukturierte Daten
Win32Win32
MSMQMSMQ(Message(MessageQueuing)Queuing)
COM+COM+(Transactions, Partitions, (Transactions, Partitions,
Object Pooling)Object Pooling)IISIIS WMIWMI
Common Language RuntimeCommon Language Runtime
Das .NET FrameworkDas .NET Framework
Base FrameworkBase Framework
ADO.NET: Data and XMLADO.NET: Data and XML
Web ServicesWeb Services User InterfaceUser Interface
VBVB C++C++ C#C#
ASP.NETASP.NET
PerlPerl PythonPython ……
1616
Windows Forms (1)Windows Forms (1)Was sind Windows Forms?Was sind Windows Forms?
Ein Klassenbibliothek innerhalb des .NET Ein Klassenbibliothek innerhalb des .NET Frameworks zur Entwicklung von GUIFrameworks zur Entwicklung von GUI Namespace: System.Windows.FormsNamespace: System.Windows.Forms
Ersetzt (und verbessert) das traditionelle Win32 Ersetzt (und verbessert) das traditionelle Win32 GUI und die Microsoft Foundation Classes GUI und die Microsoft Foundation Classes (MFC)(MFC)
MFC kann aber weiterhin genutzt werdenMFC kann aber weiterhin genutzt werden
1717
Windows Forms (2)Windows Forms (2)EigenschaftenEigenschaften
Konsistente und reichhaltige KlassenbibliothekKonsistente und reichhaltige Klassenbibliothek Komplett objektorientiert – keine Handles mehrKomplett objektorientiert – keine Handles mehr Leicht erweiterbar, einfach anpassbarLeicht erweiterbar, einfach anpassbar Mit dem restlichen .NET Framework integriertMit dem restlichen .NET Framework integriert GUI Entwurf mit GUI Entwurf mit Windows FormsWindows Forms ist in Visual ist in Visual
Studio .NET eingebautStudio .NET eingebaut
1818
Windows Forms (3)Windows Forms (3)EigenschaftenEigenschaften
HWND hwndMain = CreateWindowEx(HWND hwndMain = CreateWindowEx( 0, "MainWinClass", "Main Window",0, "MainWinClass", "Main Window", WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL,WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL, CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,, (HWND)NULL, (HMENU)NULL, hInstance, NULL); (HWND)NULL, (HMENU)NULL, hInstance, NULL); ShowWindow(hwndMain, SW_SHOWDEFAULT); ShowWindow(hwndMain, SW_SHOWDEFAULT); UpdateWindow(hwndMain);UpdateWindow(hwndMain);
Form form = new Form();form.Text = "Main Window";form.Show();
Windows API
.NET Framework
1919
Windows Forms (4)Windows Forms (4)Ausschnitt aus der KlassenhierachieAusschnitt aus der Klassenhierachie
System.Object
System.MarshallByRefObject
System.ComponentModel.Component
Control
ButtonBase
Button
TextBoxBase
TextBox
ContainerControl
Form
2020
Windows Forms (5)Windows Forms (5)Einfaches BeispielEinfaches Beispiel
// File: winformdemo.cs
using System;using System.Windows.Forms;
namespace WinFormDemo { public class SimpleForm : Form { public SimpleForm() { Text = “Hello From WinFormDemo”; } public static void Main() { Application.Run(new SimpleForm()); } }}
2121
ASP.NETASP.NET Serverseitige “Web Forms” Serverseitige “Web Forms”
und “Web Services” und “Web Services” Trennung von Code und Trennung von Code und
SeiteninhaltSeiteninhalt KompiliertKompiliert Deployment ohne “.dll Hölle”Deployment ohne “.dll Hölle” Intelligentes “State Intelligentes “State
Management”Management” ““Backwards compatible” Backwards compatible”
mit ASPmit ASP Steuerelemente passen die Steuerelemente passen die
Ausgabe an den Klienten Ausgabe an den Klienten automatisch an: HTML, automatisch an: HTML, DHTML, WMLDHTML, WML
Win32Win32
MSMQMSMQ(Message(MessageQueuing)Queuing)
COM+COM+(Transactions, Partitions, (Transactions, Partitions,
Object Pooling)Object Pooling)IISIIS WMIWMI
Common Language RuntimeCommon Language Runtime
Das .NET FrameworkDas .NET Framework
Base FrameworkBase Framework
ADO.NET: Data and XMLADO.NET: Data and XML
Web ServicesWeb Services User InterfaceUser Interface
VBVB C++C++ C#C#
ASP.NETASP.NET
PerlPerl PythonPython ……
2222
Visual Studio HauptsprachenVisual Studio Hauptsprachen
Visual Basic.NETVisual Basic.NET Objektorientiert – Wiederverwendung des CodesObjektorientiert – Wiederverwendung des Codes Skalierbar – „Free Threading“Skalierbar – „Free Threading“ Wartbar – Strukturierte AusnahmebehandlungWartbar – Strukturierte Ausnahmebehandlung
Visual C++.NETVisual C++.NET „„Attribute based programming“Attribute based programming“ „„Managed Extensions“ für C++Managed Extensions“ für C++
Visual C#Visual C# Komplett komponentenorientiertKomplett komponentenorientiert
Klassen, Methoden, Eigenschaften, EventsKlassen, Methoden, Eigenschaften, Events
Typsichere SpracheTypsichere Sprache RAD für den C++ EntwicklerRAD für den C++ Entwickler
2323
Die Welt ist mehrsprachigDie Welt ist mehrsprachig
APLAPLCobolCobolEiffelEiffel
FortranFortran
PascalPascal PerlPerl PythonPythonAdaAda
CC
C++C++ C#C#
HaskellHaskell
JavaJava
JscriptJscriptVisual BasicVisual Basic
MercuryMercury
MLML
OzOz
Objective CamlObjective Caml
OberonOberon SmalltalkSmalltalkSchemeScheme
26 Sprachen26 Sprachen
einheitliche einheitliche IDEIDE
Ein FrameworkEin Framework
Hohe IntegrationHohe Integration
Ein DebuggerEin Debugger
2525
Microsoft .NETMicrosoft .NET
2626
XML Web services XML Web services Was ist ein Web service?Was ist ein Web service?
E-mail und WWW E-mail und WWW verbinden Menschen verbinden Menschen und Informationen und Informationen plattformunabhängigplattformunabhängig
XML Web services XML Web services ermöglichen plattform-ermöglichen plattform-unabhängige unabhängige SystemintegrationSystemintegration
"The potential for a "The potential for a computer program to computer program to communicate with most communicate with most any other program, any other program, anywhere, anytime is anywhere, anytime is arguably the most arguably the most revolutionary change revolutionary change brought about by Web brought about by Web Services"Services"
VerbindetMenschen
WWW
Verbindet Menschen
undInformationen
Web Services
VerbindenApplikationen
2828
Ab
i li t
y t
o E
xecu
t eA
bi l
i ty
to
Exe
cut e
Completeness of VisionCompleteness of Vision
IBMIBM
MicrosoftMicrosoft
Leading The Industry Web Services EffortLeading The Industry Web Services EffortGartner Group: “Major Vendor Web Services Platform Gartner Group: “Major Vendor Web Services Platform Influence Magic Quadrant”Influence Magic Quadrant”
HPHP
SunSun
OracleOracle
ChallengersChallengers LeadersLeaders
Niche PlayersNiche Players VisionariesVisionaries
*CIO Magazine Poll Jan 03*CIO Magazine Poll Jan 03
CIOs: which platform is preferred CIOs: which platform is preferred in building Web services*in building Web services*
Microsoft .NET 46.5%Microsoft .NET 46.5%IBM WebSphere 19%IBM WebSphere 19%Sun ONE 8.2%Sun ONE 8.2%
BEA
20020022
2929
Microsoft .NETMicrosoft .NET
3030
.NET Geräteunterstützung.NET Geräteunterstützung
3131
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 Visual Studio® .NET und DrittanbieterVisual Studio® .NET und Drittanbieter Anpassbar an AnwendungsbedürfnisseAnpassbar an Anwendungsbedürfnisse
Verfügbarkeit geplant für:Verfügbarkeit geplant für: Verschiedene CPUsVerschiedene CPUs Windows CE und andere OSWindows CE und andere OS Unterschiedliche FormfaktorenUnterschiedliche Formfaktoren
3232© 2001 Microsoft Corporation. All rights reserved.© 2001 Microsoft Corporation. All rights reserved.