Visual Basic und Visual Basic 6 .


126 views
Uploaded on:
Category: Music / Dance
Description
Visual Essential .NET und Visual Fundamental 6. Ralf Westphal MSDN Local Chief, freier Fachautor and Berater ralfw@ralfw.de. Allgm. Sprachen. .NET CLR. .NET Sprachen. VB.NET. Von VB6 zu VB.NET. VB6. Was macht VB6 aus?. Einfache GUI-Gestaltung Einfacher DB-Umgang
Transcripts
Slide 1

Visual Basic .NET und Visual Basic 6 Ralf Westphal MSDN Regional Director, freier Fachautor & Berater ralfw@ralfw.de

Slide 2

Allgm. Sprachen .NET CLR .NET Sprachen VB.NET Von VB6 zu VB.NET VB6

Slide 3

Was macht VB6 aus? Einfache GUI-Gestaltung Einfacher DB-Umgang Einfacher Umgang mit Strings Einfache APIs Intrinsische Funktionen, Declare , COM Einfache Erzeugung von Komponenten ActiveX-DLLs, UserControls Einfache Syntax „dot-Syntax", keine Zeiger, Kontrollstrukturen Einfache Semantik Klassen, Objekt-Destruktor, Eval. Logischer Ausdrücke

Slide 4

VB6 allgemein Syntax Semantik GUI RAD Datenbankzugriff Typsystem OO-/Komponententechnologie Standardbibliothek APIs

Slide 5

Sprachen allgm. .NET CLR .NET Sprachen VB.NET Von VB6 zu VB.NET VB6

Slide 6

Programmiersprachen allgemein Was gehört zu einer Sprache? Sentence structure Semantik Programmierparadigma Was gehört nicht zu einer Sprache? UI-Gestaltung Datenbankzugriff Typsystem Standardbibliothek APIs

Slide 7

Allgm. Sprachen .NET CLR .NET Sprachen VB.NET Von VB6 zu VB.NET VB6

Slide 8

Sprach-Integration Kontext Concurrency Transaktionen Class-Loader Remoting Warum eine Runtime? Einheitliches Integrationsmodell Layer (VBRUNxx.DLL) (ATL.DLL) Layer (VBRUNxx.DLL) (ATL.DLL) Common Language Runtime (MSCOREE.DLL) (MSCORLIB.DLL) Microsoft Transaction Server (MTXEX.DLL) COM+ Runtime (OLE32.DLL) COM Runtime (OLE32.DLL)

Slide 9

.NET Framework VB C++ C# JScript … Visual Studio.NET Common Language Specification Web Services User Interface Data and XML Base Class Library Common Language Runtime

Slide 10

Thread Support COM Marshaler Type Checker Exception Manager Security Engine Debug Engine IL to Native Compilers Code Manager Garbage Collector Common Language Runtime Class Loader

Slide 11

Basics Microsoft Intermediate Language Compiler erzeugen keinen local Code sondern eine prozessorunabhängige Zwischensprache Sprachintegration erfolgt auf IL-Codeebene MSIL – Microsoft Intermediate Language IL-Code wird vor der Ausführung immer (!) durch Compiler in echten Maschinencode übersetzt Unabhängigkeit von Hardwareplattformen Unter Windows CE bereits mit einem IL-Vorläufer im Einsatz

Slide 12

C# utilizing System; namespace HelloWorld { open class Class1 { open static void Main() { Console.WriteLine("Hello, World!"); } VB.NET Imports System Namespace HelloWorld Class Class1 Shared Sub Main() Console.WriteLine("Hello, World!") End Sub End Class End Namespace Hello, World! Alternativ: Module Module1 Sub Main() Console.WriteLine("Hello, World!") End Sub End Module

Slide 13

Hello, World: VB.NET IL .namespace Project3.HelloWorld { .class private auto ansi Class1 broadens [mscorlib]System.Object { .technique open specialname rtspecialname case void .ctor() il oversaw { .custom example void [mscorlib]System.Diagnostics.DebuggerStepThroughAttribute::.ctor() = ( 01 00 ) .maxstack 8 IL_0000: ldarg.0 IL_0001: call occasion void [mscorlib]System.Object::.ctor() IL_0006: ret } .strategy open static void Main() il oversaw { .maxstack 1 .local people init ([0] class System.Object[] _Vb_t_record_0) IL_0000: nop IL_0001: ldstr "Hello, World!" IL_0006: call void [mscorlib]System.Console::WriteLine(class System.String) IL_000b: nop IL_000c: ret } .namespace Project3 { .class private auto ansi _vbProject amplifies [mscorlib]System.Object { .custom case void [Microsoft.VisualBasic]Microsoft.VisualBasic.Globals/Globals$StandardModuleAttribute::.ctor() = ( 01 00 ) .strategy open static void _main(class System.String[] _s) il oversaw { .entrypoint .maxstack 8 IL_0000: call void Project3.HelloWorld.Class1::Main() IL_0005: ret }

Slide 14

Hello, World: C# IL .namespace HelloWorld { .class open auto ansi Class1 augments [mscorlib]System.Object { .strategy open hidebysig static void Main() il oversaw { .entrypoint .maxstack 8 IL_0000: ldstr "Hello, World!" IL_0005: call void [mscorlib]System.Console::WriteLine(class System.String) IL_000a: ret } .technique open hidebysig specialname rtspecialname case void .ctor() il oversaw { .maxstack 8 IL_0000: ldarg.0 IL_0001: call case void [mscorlib]System.Object::.ctor() IL_0006: ret }

Slide 15

Hello, World: VB.NET IL (Alternativ) .namespace HelloWorld { .class private auto ansi Module1 develops [mscorlib]System.Object { .custom case void [Microsoft.VisualBasic]Microsoft.VisualBasic.Globals/Globals$StandardModuleAttribute::.ctor() = ( 01 00 ) .technique open static void Main() il oversaw { .maxstack 1 .local people init ([0] class System.Object[] _Vb_t_record_0) IL_0000: nop IL_0001: ldstr "Hello, World!" IL_0006: call void [mscorlib]System.Console::WriteLine(class System.String) IL_000b: nop IL_000c: ret } .class private auto ansi _vbProject augments [mscorlib]System.Object { .custom case void [Microsoft.VisualBasic]Microsoft.VisualBasic.Globals/Globals$StandardModuleAttribute::.ctor() = ( 01 00 ) .strategy open static void _main(class System.String[] _s) il oversaw { .entrypoint .maxstack 8 IL_0000: call void ConsoleApplication9.Module1::Main() IL_0005: ret }

Slide 16

Basics Managed Code Sämtlicher Code wird unter Aufsicht der Common Language Runtime ausgeführt Runtime führt Sicherheitsüberprüfungen aus Runtime übernimmt Speicherverwaltung und Fehlerbehandlung (Garbage Collection) Runtime führt Versionsprüfungen aus Dieser Code wird als Managed Code bezeichnet

Slide 17

Allgm. Sprachen .NET CLR .NET Sprachen VB.NET Von VB6 zu VB.NET VB6

Slide 18

Basics Common Type System Das Typsystem wandert vom Compiler in pass on Runtime Typen werden eindeutig „ein String unter C# und ein String unter VB.NET sind identisch" Sprachen werden interoperabel, da sie das gleiche Typsystem benutzen CTS – Common Type System

Slide 19

Common Type System Das Objektmodell Object Value Type Boolean Int64 Byte Enum SByte Char Single Type Currency TimeSpan Typen im Namespace System DateTime String TypedRef. Decimal UInt16 Double Array UInt32 Guid UInt64 Exception Int16 Void Int32 Delegate

Slide 20

Dim i as number = 123 Dim s as string _ = "Hello world" 123 i "Hello world" s Dim j as whole number = i Dim t as string = s 123 j t Zwei Arten von Typen

Slide 21

123 i } o System.Int32 "Boxing" 123 } "Unpacking" 123 j Boxing und Unboxing Jeder Datentyp kann als Objekt gespeichert oder übergeben werden Dim i as number = 123 Dim o as protest = i Dim j as number = Ctype(o, Integer)

Slide 22

.NET Framework Windows API ASP VB Forms MFC & ATL Warum ein Framework? Einheitliches Programmiermodell

Slide 23

Base Class Library System.Web System.WinForms Services UI Design ComponentModel Description HtmlControls Discovery WebControls Protocols System.Drawing Caching Security Drawing2D Printing Configuration SessionState Imaging Text System.Data System.Xml ADO SQL XSLT Serialization Design SQLTypes XPath System Collections IO Security Runtime InteropServices Configuration Net ServiceProcess Remoting Diagnostics Reflection Text Serialization Globalization Resources Threading

Slide 24

Gemeinsamer Nenner aller .NET Sprachen Codeerzeugung Optimierung durch JITer Common Type System Garbage Collection COM-Interop, P/Invoke Sicherheitsinfrastruktur Attribute Ausnahmebehandlung Multithreading Standardbibliothek

Slide 25

Basics Implikationen Sprachen werden gleichwertig, da alle Compiler MSIL-Code erzeugen „eine C# Klasse kann von einer VB.NET Klasse abgeleitet sein" einheitliche Fehlerbehandlung Compilerbau wird einfacher kein eigenes Typsystem Sprachen sind „per Definition" interoperabel keine Standardbibliothek kein Codeoptimierungspass

Slide 26

Allgm. Sprachen .NET CLR .NET Sprachen VB.NET Von VB6 zu VB.NET VB6

Slide 27

VB.NET Die gute und pass on schlechte Nachricht  Mit nook .NET Sprachen cap das VB-Konzept „gewonnen" speck Syntax Einfache Stringbehandlung uvm.  Mit VB.NET verliert VB seine Alleinstellungsmerkmale

Slide 28

VB.NET Was gehört zu VB.NET? Punctuation Semantik Programmierparadigma Was gehört zum .NET Framework? UI-Gestaltung Datenbankzugriff Typsystem Standardbibliothek APIs

Slide 29

Was ist neu durch VB.NET? Tiefgreifende, „echte" OO-Konzepte Namespaces Strukturierte Ausnahmebehandlung Multithreading uvm.

Slide 30

Public Class Arbeiter End Interface Inherits Mitarbeiter Public Property Zulage() As Double ... End Property Implementation Inheritance Public Class Mitarbeiter End Interface Public Function Gehalt() As Double ... End Function

Slide 31

Implementation Inheritance Nur Einfachvererbung Parametrierte Konstruktoren Instanz-und Klassen-Member ( shared ) Alle Methoden virtuell per default Abstrakte und finale Klassen/Member

Slide 32

Overloading Implementation einer Methode mehrfach mit dem selben Namen, aber immer eindeutiger Signatur Overloads Public Sub Display (ByVal theString As String ) Overloads Public Sub Display (ByVal theDouble As Double ) Overloads Public Sub Display (byVal theInteger As Integer ) Alternative zu optionalen Parametern.

Slide 33

Public Class Mitarbeiter End Interface Overridable Public Function Gehalt() As Double Gehalt = Stunden * Stundenlohn End Function Public

Recommended
View more...