MMC_Development

Werbung
Entwicklung moderner
Anwendungen für Microsoft
Windows
Option.ch
1
Inhalt
Entwicklung moderner Anwendungen für MS Windows

Von Prozeduren über Objekte zu Diensten

Web-Forms, Web-Services und Windows-Forms

.NET Anwendung und "Managed Code“

Die Bedeutung von C#, XML und SOAP bei .NET

Chancen, Risiken und Kosten bei der Entwicklung mit .NET
Option.ch
2
Geschichte der
Softwareentwicklung
1. Sequenzielles Programmieren in monolithischen Programmen und
„Polling“ für die Abfrage der Peripheriegeräte
2. Entwicklung von GUI-Anwendungen mit Ereignissen und RückrufFunktionen (Callbacks bei X-Windows und Microsoft Windows)
3. Aufteilung der Programme in dynamische Bibliotheken (DLLs)
4. Auslagerung von Programmierlogik in Komponenten (z.B. COMKomponenten)
5. Entwicklung von zweischichtigen Client/Server-Programmen (z.B.
zur Anbindung von Datenbanken)
6. Einsatz von Middleware, wie DCOM oder CORBA
7. Verlagerung von Anwendungen auf das Web mit Client/ServerKonzepten unter Verwendung von HTML und XML
8. Web-Controls mit Ereignissen und Rückruflogik sowie Web-Services
Option.ch
3
Rückruffunktionen
(Callbacks)
Message Queue
Hauptspeicher
Notepad
 Zurück zur Übersicht
Option.ch
4
DLL- und DCOMKomponenten
COM-Komponente
DCOM
Lokale DLL
Stub
Proxy
 Zurück zur Übersicht
Option.ch
5
Entwicklung moderner Anwendungen für MS Windows

Von Prozeduren über Objekte zu Diensten

Web-Forms, Web-Services und Windows-Forms

.NET Anwendung und "Managed Code“

Die Bedeutung von C#, XML und SOAP bei .NET

Chancen, Risiken und Kosten bei der Entwicklung mit .NET
Option.ch
6
Web-Forms
Ältere Web-Anwendungen
Moderne Web-Anwendungen
(Web-Forms, Web-Controls)
Navigation zu
unterschiedlichen,
z.T. statischen Seiten
(Wizard)
Option.ch
Navigation bzw. Sprünge innerhalb
der Logik einer einzigen Seite
unter Berücksichtigung des
Zustands (View State)
7
Web-Anwendungen
und Web-Services
Web-Server
Web-Services
Anwendungslogik
Option.ch
Prozesslogik
8
Windows-Forms

Windows Forms
- Konventionelle 32-Bit-Anwendungen
- .NET Windows Forms-Anwendungen (Smart Client Anwendungen)

Vorteile von .NET Windows Forms
- Kontrolle des Zugriffs auf das Betriebssystem durch die Common
Language Runtime und XML-Dateien
- Einfache Installation ohne Modifikation der Registrierungsdatenbank
(Copy&Paste Deployment)
- Plattformunabhängigkeit und Sprachunabhängigkeit des Codes
- Mächtige Bibliotheken für die Entwickler
- Leichter Zugriff auf Web-Services
Option.ch
9
Windows-Forms
Terminalserver
UI-Logik
Option.ch
Web-Services
Anwendungslogik
10
...und nun alle zusammen

Vergleich der Anwendungsoptionen:
- Lokale Windows Forms-Anwendungen
- Web-Anwendungen über Web-Server
- Windows Forms-Anwendungen über Terminalserver

Vorteile von Windows Forms-Anwendungen
- Schnelle Maskenwechselzeiten
- Reichhaltige Benutzerschnittstelle
- Unproblematische Sitzungsverwaltung

Vorteile von Web-Anwendungen
- Plattformunabhängig (laufen im Browser)
- Tauglich für das Internet
Option.ch
11
Entwicklung moderner Anwendungen für MS Windows

Von Prozeduren über Objekte zu Diensten

Web-Forms, Web-Services und Windows-Forms

.NET Anwendung und "Managed Code“

Die Bedeutung von C#, XML und SOAP bei .NET

Chancen, Risiken und Kosten bei der Entwicklung mit .NET
Option.ch
12
.NET-Strategie

.NET beschreibt ein verändertes Architekturmodell und eine neue
Plattform

.NET bringt eine Transformation von klassischen Anwendungen und
Websites zu neuen Web-Services mit sich

.NET baut auf anerkannte Internet-Standards, wobei XML und SOAP
im Zentrum stehen

.NET basiert auf einer Laufzeitumgebung, die vorkompilierten Code
in der Intermediate Language verarbeitet
Option.ch
13
Neue Konzepte
für die Entwicklung
.NET stellt die Evolution von existierenden Komponentenmodellen dar

Frei in der Wahl der Programmiersprachen (C++, C#, Visual
Basic.NET, ...) mit gemeinsamem Typsystem und Klassen

Laufzeitmodell durch die Common Language Runtime (CLR)

Common Type System (= Unabhängigkeit von der Programmiersprache)

Just-in-Time-Compiler (JIT) in die Microsoft Intermediate Language
(MSIL) und Garbage Collection als moderne Konzepte

Erweiterung von COM+ und Microsoft Transaction Services (MTS)

HTTP, HTML, XML, SOAP und UDDI sind in .NET integriert
Option.ch
14
.NET Framework,
Sprachen und Werkzeuge
VB.NET
C++
C#
...
…
Common Language Specification
GUIAnwendungen
Data und XML
Visual Studio.NET
Web-Services
und -Anwendungen
Base Class Library
Common Language Runtime
Option.ch
15
Microsoft
.NET-Framework
Anwendung läuft auf
dem lokalen Desktop
oder auf Terminalservern
ASP.NET
Web-Forms
Web-Services
.NET Bibliotheken
Bibliotheken
MFC (C++)
Windows Forms
(Managed Code)
VB6
Common Language Runtime
Betriebssystem: Grafiksubsystem (GDI)
.NET-Framework 1.1
Windows
Anwendungen
(Unmanaged Code)
Anwendung läuft
im IIS bzw. Browser
Web Server (IIS)
Windows 2000/2003 Betriebssystemkern
Option.ch
16
Entwicklungsumgebungen

Verbreitetste .NET-Entwicklungsumgebungen
- Microsoft Visual Studio .NET
- Microsoft .NET Framework SDK (kostenfrei)

Zum Vergleich: Kommerzielle Java-Entwicklungsumgebungen
- Borland Jbuilder
- Oracle Jdeveloper

Open Source Projekte für Java-Entwicklungsumgebungen
- Eclipse initiiert von IBM
- Netbeans initiiert von Sun Microsystems
Option.ch
17
Entwicklung moderner Anwendungen für MS Windows

Von Prozeduren über Objekte zu Diensten

Web-Forms, Web-Services und Windows-Forms

.NET Anwendung und "Managed Code“

Die Bedeutung von C#, XML und SOAP bei .NET

Chancen, Risiken und Kosten bei der Entwicklung mit .NET
Option.ch
18
XML, SOAP, WSDL und UDDI

XML: Extensible Markup Language - Seitenbeschreibung

SOAP: Simple Object Access Protocol - Datenzugriff

WSDL: Web Services Description Language

UDDI: Universal Discovery, Description and Integration
Service Provider
finden (UDDI)
Service
Broker
Option.ch
Service
Client
Dienst registrieren,
Publish (WSDL)
Verbinden,
Bind (SOAP)
Service
Provider
19
Visual Basic .NET

Visual Basic .NET beseitigt Inkonsistenzen und
Kompatibilitätsprobleme, die durch die lange Historie von Visual
Basic entstanden

Visual Basic.NET besitzt jedoch noch die Einfachheit von Visual Basic

Visual Basic.NET besitzt nun die volle Unterstützung von
objektorientierten Programmiermerkmalen
- Vererbung (Inheritance)
- Überladen (Overload)
- Programmierschnittstellen (Interfaces)
- Gemeinsam verwendete Elemente (Shared Members)
- Konstruktoren und Intialisierer
- Objektorientiertes Ereignissystem
Option.ch
20
Managed C++

Managed C++ nutzt nicht die Microsoft Foundation Classes oder die
Active Template Library, sondern die .NET Framework Bibliothek

Was hat sich dafür geändert im Vergleich zu Unmanaged C++?
- Erweiterungen des Präprozessors
- Neue Schlüsselworte und Typen
- Deklarative Definition von Objekten auf Attributbasis (d.h. vereinfachte
COM-Programmierung)
- Auswertung von Ereignissen über Delegates (Objektorientierter
Funktionszeigern)

Anmerkung: Es können auch Anwendungen erstellt werden, die
gemeinsam mit Managed und Unmanaged Klassen arbeiten
Option.ch
21
Zum Vergleich:
Unmanaged C und C++

C und C++ werden zur Entwicklung von konventionellen WindowsProgrammen und COM-Komponenten genutzt

C nutzt die direkten API-Funktionen der Windows-Betriebssysteme

C++ nutzt die Microsoft Foundation Classes als Klassenbibliothek

COM, die Microsoft Foundation Classes und die Active Template
Library zur COM-Entwicklung werden seit der Einführung von .NET
nicht weiter unterstützt. Gründe hierfür sind:
- COM ist veraltet, da es auf verbindungsorientierten Mechanismen
basiert
- Probleme mit der „DLL-Hölle“ der bisherigen Anwendungen
- COM ist nicht unabhängig von der Programmiersprache
- Ständig wachsender API-Bestand
Option.ch
22
C#

C# wurde von Microsoft als Konkurrenz zu Java entwickelt

C# vereint die Leistungsfähigkeit von C mit der relativen Einfachheit
von Visual Basic

C# ist der „natürlichste“ Zugang zu .NET

C# ist sauberer strukturiert als C++ und Visual Basic, z.B. bei
Header-Dateien, der Einbindung von Komponenten und bei der
Referenzierung von Objekten

C# ermöglicht den Rückgriff auf vorhandene C-Codebestände

C# wird im Gegensatz von Java immer direkt auf dem Prozessor
ausgeführt und niemals interpretiert

C# bietet Properties, objektorientierte Funktionszeiger, Ereignisse,
ein Modell für Collections und Code-Versionierung, aber KEINE
Zeiger
Option.ch
23
Der Wettbewerber: Java

Java wurde Mitte der 90er Jahre von Sun Microsystems
entwickelt

Die Ausführung von Java basiert auf einer Java Virtual
Machine, die plattformunabhängig den Code interpretiert

Java-Code wird zumeist in der Form von Applets
angewendet, d.h. Java-Komponenten, die auch in HTMLCode eingebettet werden können

Für Sicherheit sorgt die Sandbox, in der Java-Code
entkoppelt von den restlichen Systemressourcen ausgeführt
wird

Java als Sprache ist objektorientiert und wurde als
Evolution von C++ gesehen (vereinfachte Syntax, keine
Zeiger)

Java ist die Basis der Java 2 Enterprise Edition (J2EE)
Option.ch
24
Entwicklung moderner Anwendungen für MS Windows

Von Prozeduren über Objekte zu Diensten

Web-Forms, Web-Services und Windows-Forms

.NET Anwendung und "Managed Code“

Die Bedeutung von C#, XML und SOAP bei .NET

Chancen, Risiken und Kosten bei der Entwicklung mit .NET
Option.ch
25
Der „Grenzkonflikt“
(Quelle: Gartner)
100 %
The war zone
.NET
50 %
New
Project
Starts
J2EE
25
250
1,000
3,000
10,000
Concurrent Users
Option.ch
26
Technologien in Projekten
(Quelle: Gartner)
100%
Precomponent Architectures
(CICS, Tuxedo, PL/SQL, AS/400, CGI, Scripts and 4GL)
.NET
50%
COM/COM+
J2EE
CORBA
1998
Option.ch
1999
2000
2001
2002
2003
2004
2005
2006
27
Einsparpotenziale
Kosteneinsparungen lassen sich durch folgendes Vorgehen
erreichen:

Zentralisierung von Diensten, Komponenten und Anwendungen

Reduktion der Komplexität und der Verwaltungsaufwände bei den
Client-Plattformen

Analyse der Kundenbedürfnisse und Konzentration auf die
Realisierung der zugehörigen Produkte bzw. Funktionalitäten
Fazit: Ein Produktanbieter oder ein Dienstleister benötigt
ausgeprägtes Wissen über Prozesse und Bedürfnisse des
Kunden. Nur dann lassen sich Produkte anbieten, die
erfolgreich Kosten einsparen können
Option.ch
28
Herunterladen