Grundlagen des Microsoft .NET Frameworks

Slides:



Advertisements
Ähnliche Präsentationen
Datenbankzugriff über ISAPI-Webservererweiterungen
Advertisements

C Sharp (C#) Martin Saternus Senior Student Partner
E-Commerce Shop System
der Universität Oldenburg
Semesterarbeit von Dieter Lorenz, Sebastian Galenski, Stephan Bury
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH
Was ist neu in VS 2003 ? Ein Überblick. Bernd Marquardt Software & Consulting
1. 2 Microsoft.NET Überblick Dirk Primbs Technologieberater Developer Platform & Strategy Group Microsoft Deutschland GmbH.
Grundlagen .NET Hilmar Salomo Tobias Richling
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Spec# Proseminar Assertions im SS 2007 Uni Paderborn Andreas Martens Betreuer: Dipl. Inform. Björn Metzler.
FH-Hof Einbindung von JavaScript Anweisungen
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Java: Grundlagen der Sprache
Java: Grundlagen der Objektorientierung
Seminar Sommersemester 2002 ASP.NET Andre Margousian.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
.NET Nico Orschel Microsoft Student Partner, TU-Ilmenau
Programmieren mit JAVA
Introducing the .NET Framework
Mono und andere freie.NET Implementierungen. Implementierungen Microsoft.NET Framework Win32, Win64? Microsoft.NET Compact Framework WinCE (Mobile, Phone)
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
DVG Klassen und Objekte
Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Björn Schmidt, Hoang Truong Nguyen
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Distributed Programming in.NET. Inhaltsverzeichnis 1) Einführung 2).NET Remoting 3) Web-Services 4) Vergleich.NET Remoting und Web- Services 5) Fazit.
Einführung in die Programmiersprache Java
1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller.
Web-HMI einbinden SPS-Technik mit Video, Multimedia und Entertainmentsystemen kombinieren I Peter Steib.
Die .NET Common Language Runtime
Die .NET Common Language Runtime
Web Services Die Zukunft netzbasierter Applikationen iternum GmbH Alexanderstraße Frankfurt/Main
1 Frey Jan Krcmar Boris Bühler Stefan Frey Jan Krcmar Boris Bühler Semesterpräsentation 15. April 2003.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
C# Einheitliches Typsystem
Die .NET Common Language Runtime
SQL Server 2005 CLR-Integration
1 Softwareentwicklung mit.NET Teil 1 Was ist.NET? Die.NET Common Language Runtime Dr. Ralph Zeller DI. Wolfgang Beer Michael Willers.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Consulting and Solutions.NET Vortragsreihe – Vorstellung der Referenten Happy Arts Software Markus Kämmerer IT-Erfahrung seit 1987,
Basiswissen für Partner und interessierte Kunden Technologie.
Bedeutung von Internet-Technologien
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Reiner Ganser Solution Architect 1stQuad Solutions GmbH Presentation Subtitle.
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
Vortrag: Visual Basic Neuerungen Autor : Dennis Hoyer
Datenanbindung in Webapplikationen
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
MSDN TechTalk Anwendungen integrieren in Microsoft Dynamics CRM 4.0.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
7.-8. März 2013, Rosenheim Brand my SharePoint grafische Gestaltung von SharePoint 2013-Webseiten Fabian Moritz | MVP SharePoint Server.
Microsoft.NET - Plattform Kurzer Überblick Vergleich mit Java Von Thomas Zahn Januar 2001.
Einführung in Java PING e.V. Weiterbildung Andreas Rossbacher 24. März 2005.
Microsoft Student Partner
Microsoft Silverlight Autor: Christian Pirker. Inhalt Einführung Silverlight Einführung XAML Silverlight 1.0 und 1.1 Silverlight 2.0 Silverlight 3.0 Ausblick.
Objektorientierte (OO) Programmierung
JAVA - Einführung. © Übersicht Hintergrund und Geschichte Wie sieht ein JAVA Programm aus ? Was ist ein JAVA Programm ? Wie schreibt/übersetzt.
Hello World! Javakurs 2013 Arne Kappen
 Präsentation transkript:

Grundlagen des Microsoft .NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003

Übersicht Die .NET Stategie Common Language Runtime (CLR) Programming in .NET (C#, VB.NET) .NET Framework Klassenbibliothek Datentechnik (ADO.NET) Web Forms (ASP.NET) Weitere Themen Fazit

.NET Strategie

Was ist .NET Framework für Software Entwicklung Interface zu Windows services und API Produktgruppen Entwicklungstools (Programmiersprachen, Visual Studio.NET, .NET Framework SDK) Spezialisierte Server (SQL, Exchange, BizTalk) WebServices Geräte (Windows CE, PocketPC)

.NET Strategie Verteiltes Rechnen (XML Web Services) Remoting Architektur basierend auf offene Internet Standards (HTTP, XML, SOAP) Komponenten Infrastruktur COM war zu komplex Enterprise services Web Technologie Einfaces Deployment, Zuverlässigkeit, Sicherheit, …

.NET Enterprise Servers Microsoft Application Center 2000 to deploy and manage highly available and scalable Web applications. Microsoft BizTalk Server 2002 to build XML-based business processes across applications and organizations. Microsoft Commerce Server 2002 for quickly building scalable e-commerce solutions. Microsoft Content Management Server 2001 to manage content for dynamic e-business Web sites. Microsoft Exchange Server 2000 to enable messaging and collaboration anytime, anywhere. Microsoft Host Integration Server 2000 for bridging to data and applications on mainframe legacy systems. Microsoft Internet Security and Acceleration Server 2000 for SSL-secured, fast Internet connectivity. Microsoft Mobile Information 2001 Server to enable application support by mobile devices like cell phones. Microsoft SharePoint™ Portal Server 2001 to find, share, and publish business information. Microsoft SQL Server™ 2000 to store, retrieve, and analyze structured XML data.

Component Infrastructure Vor COM existierte kein einfacher Weg um Bibliotheken ohne Source Code zu integrieren. COM Vorteil: Sprachunabhängig, Internet tauglich (DCOM) Nachteile: Kompliziert (COM identity, lifetime, binary layout rules…) Keine Sprachintegration (keine Vererbung, keine Exceptions, …)

Common Language Runtime (CLR) Wie: Java Virtual Machine Virtuelle Maschine für Intermediate Language IL Code. Aufgaben Ausführung von Code Typenkontrolle Sicherheitsüberprüfungen Garbage collection …

Ausführbare Dateien Datei-Endungen: EXE, DLL Windows Portable Executable (PE) Standard

CLR Ausführung Kein Interpreter! Verschiedene Compiler für die Erzeugung von Maschinencode Global Assembly Cache (GAC) Just-In-Time (JIT) Compiler Vergleich mit der JVM: Interpreter Erweiterungen: HotSpot Compiler

JVM vs. CLR CLR JVM Ausgerichtet für verschiedene Programmiersprachen Im Moment für Windows-Systeme (Mono Projekt  Linux) JVM Nur für Java Erhältlich auf den meisten Plattformen

Common Type System (CTS) Interoperabilität erfordert gemeinsame Typen Zwei Kategorien Referenz-Typen Werte-Typen

Referenz- vs. Werte-Typen Interne Behandlung der CLR

Referenz- vs. Werte-Typen Konsequenzen für Programmierer Zuweisung: a = b Gleichheit: a == b Initialisierung

Werte-Typen Unterkategorien Basis-Typen („build-in types“, „primitive types“) Werden von der CLR implementiert Benutzerdefinierte Wertetypen In C# mit dem Schlüsselwort struct (anstatt mit class) erzeugte Typen. Aufzählungstypen In C# mit dem Schlüsselwort enum erzeugt.

Basis-Typen Boolean (true oder false) Byte (0 .. 255) Char (Unicode Zeichen) DateTime (Zeit- und Datumswert) Decimal (28 signifikante Dezimalstellen) Double (64-Bit Fliesskomma Zahl) GUID (128-Bit) Int16 (16-Bit Zahl mit Vorzeichen) Int32 (32-Bit Zahl mit Vorzeichen) Int64 (64-Bit Zahl mit Vorzeichen) Sbyte (-128 .. 127) Single (32-Bit Fliesskomma Zahl) TimeSpan (Zeitspanne mit Vorzeichen)

Referenz-Typen Unterkategorien Selbstbeschreibende Typen Array Typen Klassen Benutzerdefinierte Klassen Gekapselte Wertetypen (boxed classes) Delegates Zeiger-Typen (Pointer) Interface-Typen

Boxing / Unboxing Boxing: Konvertierung von Wertetyp zu Referenztyp Beispiel int i = 20; // Wertetyp object box = i; // Referenztyp -> Boxing Unboxing: Umgekehrte Operation Beispiel int j = (int)box; // Unboxing Vergleich mit Java: Explizite Boxing Klassen

Objektorientiere Konzepte Die CLR unterstützt OO Konzepte (wie Kapselung, Vererbung und Polymorphismus) Klassen Methoden Felder Statische Felder/Methoden Innere Klassen Interfaces u.s.w.

Programmiersprachen C# Visual Basic.NET (auch: VB.NET) C++ Viele weitere Sprachen APL, COBOL, Delphi, Eiffel, Forth, Fortran, Haskel, J#, JScript.NET, Mercury, Mondrian, Oberon, Pascal, Perl, Python, RPG, Scheme, S# Viele sind aber noch in Beta-Phase http://www.oberon.ethz.ch/lightning/

C# Neue Programmiersprache Objekt-orientiert Nur einfache Vererbung (Mehrfache Vererbung nur über Interfaces) Designierter Nachfolger von C++. (Auch beeinflusst von Java) Ausgerichtet auf .NET Framework

C# vs. Java Viele Gemeinsamkeiten aber auch Unterschiede Syntax Java super base final class sealed class extends : package namespace (kein Schlüsselwort notwendig) overrides (Methoden sind bereits virtuell, d.h. überschreibbar) virtual weitere…

C# Aufzählungstypen Typen-Kontrolle public enum DayOfWeek { Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6 }

C# - Funktionsparameter public static void SwitchValues(ref int a, ref int b) { int c = a; a = b; b = c; } public static int Main(string[] args) int a = 10; int b = 20; SwitchValues(ref a, ref b); Console.WriteLine(a + " " + b); return 0; Ausgabe: 20 10

C# - foreach Schleife public static int Main(string[] args) { int[] aInt = {1, 2, 2, 3, 5, 7}; foreach (int j in aInt) Console.WriteLine(j); return 0; } Ausgabe: 1 2 3 5 7

C# - Properties Verwendung wie Felder, aber funktioniert wie Methoden Beispiel: Anstelle von zwei Methoden getVisible(), setVisible(…) public bool Visible { get { return _bVisible; } set { if (_bVisible != value) { if (_bVisible) Hide(); else Show(); _bVisible = value; }

C# - Indexers Zugriff auf Elemente eines Arrays: int[] a = {3, 4}; a[i] = 1; Console.Write(a[i]); // Ausgabe: 1 Indexer ermöglicht diesen Syntax auch für andere Klassen zu verwenden: string s = “Test“; Console.Write(s[0]); // Ausgabe: T

C# - Indexers (2) Wie ein Property mit dem Namen „this“ und mit Argument(e) in eckigen Klammern. public virtual int this[int row, int col] { get { … } set { … } }

C# - Operator overloading Bekannt in C++ In Java nicht vorhanden public struct Complex { public int real; public int imaginary; public Complex(int real, int imaginary) { this.real = real; this.imaginary = imaginary; } public static Complex operator +(Complex c1, Complex c2) { return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);

C# - Events / Delegates Delegate: Typensicherer Funktionszeiger public delegate void ClickHandler(int x, int y); public class Test { public event ClickHandler Click; public void Test() { this.Click += new ClickHandler(OnClick); } private void OnClick(int x, int y) //... Event behandeln

Visual Basic.NET Vollwertige Objekt-orientierte Programmiersprache Threading Windows Services Historische Überreste von DOS Zeiten wurden entfernt, Anpassungen für CTS Variant-Datentyp SET / LET / OPTION BASE / GOSUB / ON x GOTO / etc. Weitere Neuheiten (z.B. AndAlso, OrElse Operatoren)

Visual Basic.NET (1) Nachteile: Umstellung für Visual Basic Programmierer ist gross. Auch für Einsteiger ist der Lernaufwand grösser. Viele neue Schlüsselwörter Portierung von VB6 Projekten nur sehr beschränkt möglich.

.NET Klassenbibliothek Vorher: Win32 API, MFC, ATL, VB, … .NET Framework bietet OO-Bibliothek mit über viel Funktionalität verteilt in über 100 Namespaces

.NET Klassenbibliothek (1) Namespace Beschreibung System Allgemeine Klassen, die häufig verwendet werden. System.CodeDom Zum Parsen von Source-Code Dokumenten. System.CodeDom.Compiler Klassen zum Erzeugen von Compiler System.Collections Klassen zum Erzeugen von Listen, Hashtables, Warteschlagen etc. System.ComponentModel Klassen, die für die Implementation von Laufzeit- und Designzeit-Verhalten von Komponenten. System.Configuration Zum Abspeichern und Laden von Konfigurationseinstellungen System.Data Die zentralen Klassen von ADO.NET System.Data.Odbc Zugriff auf Daten via ODBC System.Data.OleDb Zugriff auf Daten via OleDb System.Data.OracleClient Für Oracle optimierte ADO.NET Schicht System.Data.SqlClient Für Microsoft SQL Server optimierte ADO.NET Schicht

.NET Klassenbibliothek (2) System.Diagnostics Erlaubt Interaktion mit Systemprozessen, Zugriff auf EventLogs und Perfomance Counters. System.DirectoryServices Ermöglicht den Zugriff auf ActiveDirectory System.Drawing GDI+ Grafikfunktionen System.Drawing.Drawing2D Bietet 2-dimensionale Vektorgrafik Funktionalitäten. System.Drawing.Printing Ermöglicht Zugriff zu Druck-Funktionalitäten. System.EnterpriseServices Bietet Grundstrukturen Unternehmenssoftware. System.Globalization Ermöglicht Implementation von Anwendungen für verschiedene Kulturen (Sprachen, Kalender, Währungen, Zahlenformate, String-Sortierordnung etc.) System.IO Klassen für synchrone und asynchrone Ein-/Ausgabefunktionen System.Net Bietet einfache Schnittstellen zu gängigen Kommunikationsprotokollen. System.Net.Sockets Erlaubt Programmierung von Netzwerkanwendungen, die auf Windows Sockets aufbauen. System.Reflection Bietet Reflection-Funktionalität für .NET Sprachen

.NET Klassenbibliothek (3) System.Runtime.InteropServices Bietet Zugang zu nicht .NET Bibliotheken, z.B. zu COM System.Runtime.Remoting Für die Erstellung von verteilten Anwendungen. System.Runtime.Serialization Bietet Unterstützung für die Serialisierung. System.Security .NET Sicherheitskonzept System.Security.Cryptography Ermöglicht die Verwendung von verschiedenen kryptographischen Diensten. System.ServiceProcess Erlaubt Windows Service Anwendungen zu entwickeln. System.Text Textfunktionalitäten, Codierungen (Unicode, UTF-8, …) System.Text.RegularExpression Reguläre Ausdrücke System.Threading Ermöglicht Multithreading-Anwendungen zu entwickeln. System.Web Grundklassen von ASP.NET System.Web.Services Ermöglicht die Erstellung von WebServices System.Web.UI ASP.NET WebForms System.Windows.Forms WinForms System.XML XML Parser

ADO.NET ADO (Microsoft Active-X Data Object) ADO.NET Windows Applikation ADO (Microsoft Active-X Data Object) Standardisiertes Modell für Datenzugriff ADO.NET DataSet Web Forms XML B2B DB DataSet DB Provider

ADO.NET - Dataset

ADO.NET - Designer DataSet Design basiert auf XML Schema Visual Studio.NET Import/Export von Datenbank Designer

Web Forms (ASP.NET) Vor .NET: ASP (Active Server Pages) Mit .NET Skriptsprache (keine Typen, kein Kompilieren) Keine Trennung von Darstellung und Code Mit .NET „Visual Programming“ Einfache Integration anderer .NET Bibliotheken Objekt-Orientiert XML/XSL

Web Forms - Server Controls Server Controls = Dynamische Komponenten, die auf dem Webserver laufen <form id="Form1" method="post" runat="server"> <asp:Button id="Button1" runat="server" Text="Button"/> </form>

Web Forms – „Codebehind“ „Codebehind“-Technik erlaubt Trennung von HTML/XHTML ASPX Header Codebehind Klasse wird kompiliert  DLL im Unterverzeichnis /bin <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Test1.WebForm1" %>

Web Forms – „Codebehind“ ASPX-Seite erbt Button1 von WebForm1 public class WebForm1 : System.Web.UI.Page { protected System.Web.UI.WebControls.Button Button1; private void Button1_Click(object sender, System.EventArgs e) // Code } // anderer Code

Web Forms - ViewState Problem: Kontext! Ansatz Application-Kontext Session-Kontext Implementiert durch Cookie (oder falls Cookie abgeleht wurde mit SessionID in URL) ViewState-Kontext Problem: Implementiert durch verstecktes HTML Formularfeld Verschlüsselt

Web Forms – User Controls Web User Control Wie gewöhnliches WebForm Beim Rendern wird kein HTML Header erzeugt z.B. für Navigationsleiste Custom Control Eigenes Server Control Eigene Events z.B. für spezielle Buttons

Localization & Globalization Was ist Localization? Sprache der Benutzeroberfläche Datum & Zeit Formate, String Indexing, … Cultures Beispiele: ”en-US”, ”de-CH”, ”fr-CH” Ressourcen Ressourcen (.resx) Sprachabhängige Ressourcen (.de.resx) Kompilierte Ressourcen (.dll, de-CH.dll) Fallback-Prinzip

Localization & Globalization Windows Form Design-Time Properties: Localizable, Language Windows Forms Resource Editor (Winres.exe)

Mobile Programming Software für .NET Framework Version 1.1 PDAs Mobiltelefone .NET Framework Version 1.1 SQL Server CE

Deployment Auslieferung von Software Vor .NET Mit .NET EXE-Datei DLLs in Windows\System32 (Versionsprobleme) ActiveX DLLs registrieren (regsvr32.exe) Tools wie InstallShield Mit .NET EXE-Datei und abhängige DLLs in ein Verzeichnis kopieren Für komplexere Dinge wie Webapplikationen oder Windows Services Setups (MSI-Datei) generieren.

Tools für .NET Entwickler Microsoft .NET Framework SDK Command-Line Tools Compiler Gratis [108 MB] http://www.microsoft.com/net/ Microsoft Visual Studio .NET verschiedene Editionen Alternativen Borland Delphi 7 Studio (nur für Delphi) Borland C# Builder (noch nicht fertig!)

Fazit Neue Dimension von Windows Programmierung Übergang zu .NET C++/MFC/COM… zu kompliziert Visual Basic 6 nicht OO Übergang zu .NET Radikale Änderungen Unterstützung für „unsafe“ Code, Einbindung von anderen Bibliotheken (z.B. COM) Neuer Komfort elegantes Konzept für Webapplikationen WebServices (Neues Konzept von Software)

Fertig! Fragen? Diskussion