Inhalt
Vorwort
1 Wie .NET und ASP.NET funktionieren
2 Installation
3 Hinweise zu VB.NET
4 »Hallo, Welt!« – Ein ASP.NET-Crashkurs
5 Die Page-Klasse
6 HTML-Serversteuerelemente
7 Validierung von Anwendereingaben
8 Webserversteuerelemente
9 Webserversteuerelemente für die Darstellung von Listen
10 Webserversteuerelemente selbst erstellen
11 Der Status von Seiten, Sitzungen und Applikationen
12 ASP.NET und Datenbanken
13 »Wer darf was?« ASP.NET und Sicherheit
14 Webanwendungen erstellen und konfigurieren
15 Leistungssteigerung durch Caching
16 Web Services
A Anhang
Index
Download (ca 14,3 MB)
Buch bestellen (29,90 EUR)
Ihre Meinung?@
<< zurück | Galileo Computing / <openbook> / Einstieg in ASP.NET | vor >>
Einstieg in ASP.NET von Matthias Lohrer
| Kapitel 3 Hinweise zu VB.NET
|  | 3.1 Eine Testumgebung
|  | 3.2 Variablen
|  |  | 3.2.1 Bezeichner
|  |  | 3.2.2 VB.NET-Datentypen
|  | 3.3 Konstanten
|  | 3.4 Typkonvertierungen
|  | 3.5 Kontrollstrukturen
|  |  | 3.5.1 Entscheidungen mit If
|  |  | 3.5.2 Select Case
|  |  | 3.5.3 Zählschleife mit For Next
|  |  | 3.5.4 Schleife mit Do Loop
|  |  | 3.5.5 Schleife mit While
|  | 3.6 Funktionen und Prozeduren
|  |  | 3.6.1 Aufbau
|  |  | 3.6.2 Übergabe von Parametern
|  | 3.7 Klassen erstellen
|  |  | 3.7.1 Eigenschaften einer Klasse über Felder realisieren
|  |  | 3.7.2 Eigenschaften mit Property-Prozeduren realisieren
|  |  | 3.7.3 Schreibgeschützte Eigenschaften
|  |  | 3.7.4 Methoden erstellen
|  |  | 3.7.5 Konstruktor erstellen
|  |  | 3.7.6 Klassen vererben
|  | 3.8 Mit Objekten arbeiten
|  |  | 3.8.1 Objekte vergleichen
|  |  | 3.8.2 Den Typ eines Objekts bestimmen
|  |  | 3.8.3 Objekte in andere Klassen konvertieren
|  | 3.9 Arbeiten mit Arrays
|  | 3.10 Dateizugriffe
|  | 3.11 Fehlerbehandlung mit Try ... Catch ... Finally ... End Try
## 3.7 Klassen erstellen Da VB.NET eine vollständig objektorientierte Programmiersprache ist, sollten Sie die Grundlagen der objektorientierten Programmierung beherrschen. Die Deklaration einer eigenen Klasse ist denkbar einfach:
    Class Klassenname
    ' ...
    End Class
Wenn Sie eine Klasse definieren, dann definieren Sie im Prinzip so etwas wie einen eigenen Datentyp. Dieser Datentyp kann jedoch nicht nur über Eigenschaften, sondern auch über eigene Methoden verfügen. Mit dem Schlüsselwort New erzeugen Sie eine Instanz einer Klasse.
    Dim a As Testklasse   ' Variable deklarieren
    a = New Testklasse()  ' Instanz der Klasse erstellen
    Dim b As Testklasse = New Testklasse() ' abküzende
                                           ' Schreibweise
### 3.7.1 Eigenschaften einer Klasse über Felder realisieren Die einfachste Methode, um einer Klasse eine Eigenschaft zu geben, besteht darin, in der Klasse eine entsprechende Variable mit dem Schlüsselwort Public zu definieren. Anschließend können Sie bei jeder Klasseninstanz diese Eigenschaft zuweisen. Variablen, die innerhalb der Klasse mit Private deklariert werden, sind demgegenüber nur innerhalb der Klasse zugänglich. Die Testumgebung, die in Abschnitt 3.1, vorgestellt wurde, können Sie auch für die Arbeit mit Klassen verwenden. vb_06.aspx enthält ein zusammenhängendes Beispiel.
    <!-- vb_06.aspx -->
    <%@ Page Language="VB" Debug="True" Strict="True" %>
    <script runat="server">
    Sub Page_Load (ByVal Sender As Object, _
                   ByVal E As EventArgs)
       Dim c As CBackware
       c = New CBackware()
       c.Name ="Brötchen"
       'b.interneNummer = 25  ' nicht möglich
       ausgabe.innerHTML = c.Name ' Brötchen
    End Sub

    Class CBackware
       Private interneNummer As Integer
       Public Name As String
    End Class
    </script>
    <html><head><title>
    Einstieg in VB.NET
    </title></head>
    <body>
    <h3>Einstieg in VB.NET</h3>
    <p id="ausgabe" runat="server"></p>
    </body></html>
Wenn Sie eine Variable auf diese Weise über das Schlüsselwort Public zugänglich machen, handelt es sich um ein so genanntes Feld. ### 3.7.2 Eigenschaften mit Property-Prozeduren realisieren Es gibt eine zweite Möglichkeit, für eine Klasse eine Eigenschaft zu definieren, und zwar über Property-Prozeduren. Die Klasse CBackware definiert in vb_07.aspx auf diese Weise die Eigenschaft Rezept:
    Sub Page_Load (ByVal Sender As Object, _
                   ByVal E As EventArgs)
       Dim c As CBackware = New CBackware()
       c.Name ="Brötchen"
       c.Rezept = "Wasser und Mehl"
       ausgabe.innerHTML = c.Name & ": " & c.Rezept
                        ' Brötchen: Wasser und Mehl
    End Sub

    Class CBackware
       Private meinrezept As String
       Public Name As String
       Property Rezept() As String
          Get
             Return meinrezept
          End Get
          Set(ByVal inRezept As String)
             meinrezept = inRezept
          End Set
       End Property
    End Class
Auf den ersten Blick wirkt das Verfahren umständlich. Die Klasse enthält eine als Private deklarierte Variable meinrezept, auf die von außen nicht direkt zugegriffen werden kann. Stattdessen gibt es jetzt eine Prozedur Property Rezept(). Der aufrufende Code kann mit c.Rezept="Wasser und Mehl" diese Eigenschaft setzen. Innerhalb der Klasse läuft beim Zugriff auf diese Eigenschaft der betreffende Teil der Property-Prozedur ab. Bei einer Zuweisung wird der Get-Teil ausgeführt. Beim Abruf der Rezept-Eigenschaft wird der Set-Teil ausgeführt. Innerhalb der Property-Prozedur können Sie beliebigen Code erstellen. Auf diese Weise können Sie beispielsweise komplexere Gültigkeitsüberprüfungen realisieren. ### 3.7.3 Schreibgeschützte Eigenschaften Mit Hilfe des Schlüsselwortes ReadOnly können Sie schreibgeschützte Eigenschaften realisieren. Bei einer schreibgeschützten Eigenschaft erstellen Sie nur den Get-Teil der Prozedur und lassen den Set-Teil weg.
    Private meinpreis As Single = 0.37
    ' ...
    ReadOnly Property Preis() As Single
       Get
          Return meinpreis
       End Get
    End Property
### 3.7.4 Methoden erstellen Auch das Erstellen einer Methode für eine Klasse ist nicht weiter schwierig.
    Public Function backen() As String
       backen = "Fertig!"
    End Function
Beim Aufruf etwa von c.backen() wird im Beispiel mit dem Brötchen die Meldung Fertig! ausgegeben. ### 3.7.5 Konstruktor erstellen Mit dem Schlüsselwort New erstellen Sie eine neue Instanz einer Klasse. Häufig wissen Sie bereits beim Erstellen einer neuen Instanz, über welche speziellen Eigenschaften dieses konkrete Objekt verfügen soll. Mit Hilfe eines speziellen Konstruktors können Sie solche Eigenschaften bereits beim Instanzieren mit angeben. Im Beispiel mit den Backwaren wissen Sie beispielsweise bereits beim Erstellen einer solchen Variablen, ob Sie ein Brötchen oder ein Brot haben möchten. vb_08.aspx definiert innerhalb der Klasse CBackware mit der Prozedur Public Sub New (ByVal inName As String) einen Konstruktor, dem Sie den Namen des neu zu erstellenden Objekts gleich mit übergeben können.
    Sub Page_Load (ByVal Sender As Object, _
                   ByVal E As EventArgs)
       Dim s As String
       Dim a As CBackware = New CBackware("Roggenbrot")
       s = a.Name
       ausgabe.innerHTML = s   ' Roggenbrot
    End Sub
    Class CBackware
       Public Name As String
       ' ...
       Public Sub New(ByVal inName As String)
          Name = inName
       End Sub
       ' ...
    End Class
### 3.7.6 Klassen vererben Diese kleine Einführung kann nicht auf die Details der Vererbung von Klassen eingehen. Lediglich das Prinzip soll kurz erläutert werden. Bislang wurde als Beispiel eine Klasse CBackware erstellt. Wenn der Entwickler es nun oft mit verschiedenen Typen von Backwaren zu tun hat, die sich jeweils nur in einigen wenigen Aspekten voneinander unterscheiden, dann kann er für jeden Backwarentyp eine eigene Klasse erstellen. Dabei muss er aber nicht den gesamten Code von CBackware etwa in eine Klasse CBrot übernehmen. Mittels Vererbung kann er statt dessen festlegen, dass die Klasse CBrot zunächst einmal genauso funktionieren soll wie die Klasse CBackware. Wenn eine Anwendung für eine Variable vom Typ CBrot beispielsweise die Funktion backen() aufruft, wird ebenfalls die Meldung Fertig! ausgegeben. Dabei muss die Methode backen() gar nicht in der Klasse CBrot implementiert sein. Es reicht, wenn die Basisklasse CBackware über diese Methode verfügt. Dann wird der Code der Basisklasse ausgeführt. Auf diese Weise kann Code optimal wiederverwendet werden. Wenn eine Eigenschaft oder eine Prozedur geringfügig anders funktionieren soll als in der Basisklasse, können diese Eigenschaften und Prozeduren überschrieben werden. Auf diese Weise entstehen ganze Klassenhierarchien. Am Anfang steht meistens eine Klasse, die über relativ allgemeine und unspezifische Fähigkeiten verfügt. Von einer solchen Basisklasse werden speziellere Klassen vererbt, von denen noch speziellere Klassen abgeleitet sind. Das beste Beispiel dafür sind die Klassen des .NET-Frameworks. Sämtliche Klassen des .NET-Frameworks stammen von der Basisklasse System.Object ab. Diese Klasse kennt nur wenige Eigenschaften und Methoden. System.Object hat beispielsweise die Methode Equals, die feststellt, ob zwei Objekte identisch sind. Die Methode ToString lässt sich gut für Debugging-Zwecke einsetzen. Sie gibt einen String aus, der das aktuelle Objekt beschreibt. Meistens gibt ToString lediglich den Namen der Klasse selbst aus. Von System.Object stammen zahlreiche speziellere Klassen ab. Ein Beispiel ist die Klasse System.Web.UI.Control. Aber auch diese Control-Klasse ist noch recht allgemein gehalten. Von ihr stammt etwa die Klasse System.Web. UI.HtmlControls.HtmlControl ab. Von dieser Klasse stammt unter anderem System.Web.UI.HtmlControls.HtmlContainerControl ab. Und von HtmlContainerControl stammt System.Web.UI.HtmlControls.HtmlForm ab. HtmlForm repräsentiert ein Formular in einer HTML- beziehungsweise einer aspx-Seite. Selbst HtmlForm kennt aber noch die Methode ToString, die ursprünglich bereits System.Object zur Verfügung gestellt hat. Die Klassen werden also immer spezieller, bis am Schluss eine Klasse für eine ganz konkrete Aufgabe steht. Bei der täglichen Arbeit haben Sie es hauptsächlich mit solchen spezialisierten Klassen zu tun, während die allgemeineren Klassen für die tägliche Programmierpraxis eine geringere Bedeutung haben. Das ist nicht anders als in der realen Welt. Es ließe sich eine allgemeine Klasse für Fahrzeuge konstruieren. In der Praxis wird man es aber meistens nicht mit einem abstrakten »Fahrzeug« zu tun haben, sondern mit einem Bus, einer Bahn, einem Fahrrad oder einem Lastwagen.
<< zurück | <top> | vor >>
Zum Katalog
Einstieg in ASP.NET bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung

.NET-Bibliothek
| Einstieg in VB.NET
| VB.NET
| Einstieg in C#
| Visual C#
| VB.NET und Datenbanken

Empfehlung
| Einstieg in XML

Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

MyGalileo
Der Service für registrierte Leser: Info

Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de