• <dw:daniel_walzenbach runat="server" />

    A Multipart Series on ASP.NET 2.0's Membership, Roles, and Profile

    • 1 Comments

    Interessante Serie über ASP.NET 2.0's Membership, Roles, and Profile auf http://www.4guysfromrolla.com/.

    • Part 1 - learn about how the membership features make providing user accounts on your website a breeze. This article covers the basics of membership, including why it is needed, along with a look at the SqlMembershipProvider and the security Web controls.
    • Part 2 - master how to create roles and assign users to roles. This article shows how to setup roles, using role-based authorization, and displaying output on a page depending upon the visitor's roles.
    • Part 3 - see how to add the membership-related schemas to an existing database using the ASP.NET SQL Server Registration Tool (aspnet_regsql.exe).
    • Part 4 - improve the login experience by showing more informative messages for users who log on with invalid credentials; also, see how to keep a log of invalid login attempts.
    • Part 5 - learn how to customize the Login control. Adjust its appearance using properties and templates; customize the authentication logic to include a CAPTCHA.
    • Part 6 - capture additional user-specific information using the Profile system. Learn about the built-in SqlProfileProvider.
    • Part 7 - the Membership, Roles, and Profile systems are all build using the provider model, which allows for their implementations to be highly customized. Learn how to create a custom Profile provider that persists user-specific settings to XML files.
    • Part 8 - learn how to use the Microsoft Access-based providers for the Membership, Roles, and Profile systems. With these providers, you can use an Access database instead of SQL Server.

    Daniel

  • <dw:daniel_walzenbach runat="server" />

    Coole Sache für VB 6.0 Entwickler: Die Microsoft Printer Compatibility Library 1.0

    • 0 Comments

    In einem vergangenen Artikel (Kostenlos und gut: Microsoft Visual Basic 2005 Power Packs) habe ich bereits über das Visual Basic 2005 Power Pack berichtet. Damals waren nur das Microsoft Interop Forms Toolkit 1.0 und die Microsoft PrintForm Component 1.0 verfügbar. Inzwischen wurde das Visual Basic 2005 Power Pack um das Microsoft Printer Compatibility Library 1.0 erweitert.

    Microsoft Printer Compatibility Library 1.0
    The Microsoft Printer Compatibility Library 1.0 allows projects that used the Printer and Printers Collection in Visual Basic 6.0 to be upgraded without having to re-write your printing logic.

    Happy Coding!

  • <dw:daniel_walzenbach runat="server" />

    Tutorial: 3-stufige Web-Architektur für ASP.NET (VB.NET oder C#)

    • 1 Comments

    Für Webentwickler ist auf MSDN ein super Tutorial (leider nur auf englisch) von Scott Mitchell, Autor von sechs ASP/ASP.NET Büchern und Gründer von 4GuysFromRolla.com, verfügbar. Es beschäftigt sich mit dem Zugriff auf Daten in einer Datenbank und deren Darstellung auf einer Webseite und ist incl. Beispielcode in VB.NET und C# verfügbar.

    Visual Basic .NET

    Introduction
    Tutorial 1: Creating a Data Access Layer
    Tutorial 2: Creating a Business Logic Layer
    Tutorial 3: Master Pages and Site Navigation

    Basis Reporting
    Tutorial 4: Displaying Data With the ObjectDataSource
    Tutorial 5: Declarative Parameters
    Tutorial 6: Programmatically Setting the ObjectDataSource's Parameter Values

    Master/Detail
    Tutorial 7: Master/Detail Filtering With a DropDownList
    Tutorial 8: Master/Detail Filtering With Two DropDownLists
    Tutorial 9: Master/Detail Filtering Across Two Pages
    Tutorial 10: Master/Detail Using a Selectable Master GridView with a Details DetailView

    C#

    Introduction
    Tutorial 1: Creating a Data Access Layer
    Tutorial 2: Creating a Business Logic Layer
    Tutorial 3: Master Pages and Site Navigation

    Basis Reporting
    Tutorial 4: Displaying Data With the ObjectDataSource
    Tutorial 5: Declarative Parameters
    Tutorial 6: Programmatically Setting the ObjectDataSource's Parameter Values

    Master/Detail (Visual C#)
    Tutorial 7: Master/Detail Filtering With a DropDownList
    Tutorial 8: Master/Detail Filtering With Two DropDownLists
    Tutorial 9: Master/Detail Filtering Across Two Pages
    Tutorial 10: Master/Detail Using a Selectable Master GridView with a Details DetailView

    Schöne Grüße von Daniel

  • <dw:daniel_walzenbach runat="server" />

    Talks auf BASTA! 2007 Spring Edition

    • 0 Comments

    BASTA! 2007 Spring Edition

    Inzwischen steht der Zeitplan :-) Ich spreche auf der diesjährigen Basta zum Thema "Wie viel OOP braucht man zum Überleben?", halte einen Power Workshop "Eine Einführung in VB.NET" und bin auf dem "VB Code Camp" mit Jay Schmelzer Lead Program Manager Visual Basic und Peter Monadjemi, Bestseller-Autor und VB-Guru zu treffen.

    Details finden sich auf http://www.basta.net. Schöne Grüße

    Daniel

  • <dw:daniel_walzenbach runat="server" />

    Philadelphiatorte mit Waldfrüchten und Himbeeren

    • 2 Comments

    Neben programmieren ist Backen eine meiner Leidenschaften. Heute war es mal wieder so weit und ich habe eine Philadelphiatorte mit Waldfrüchten und Himbeeren gebacken (obwohl man bei dieser Torte eigentlich nicht von Backen sprechen kann…).

    Philadelphiatorte mit Waldfrüchten und Himbeeren
    Bild in org. Auflösung (12,2 MB)

    Die Torte schmeckt tatsächlich so gut wie sie aussieht und ist super einfach :-)

    Philadelphiatorte mit Waldfrüchten und Himbeeren

    Für eine Torte (26cm Springform)

    Zutaten (für den Boden)

    • 200g Russisch Brot
    • 75g geschmolzene Butter

    Zutaten (für die Füllung)

    • 300g Joghurt, 0,1% Fett
    • 600g Philadelphia
    • 5 EL Himbeermarmelade
    • 250g TK-Beerenmischung
    • 6 Blatt weiße Gelatine
    • 75g Zucker

    Zugereitungszeit: 30min, danach mindestens 3 Stunden im Kühlschrank

    Zubereitung:

    • Das Russisch Brot mit einem Nudelholz gleichmäßig zerkleinern, mit der geschmolzenen Butter vermengen und in eine mit Backpapier ausgelegte Springform drücken.
    • Den Jogurt abtropfen lassen und danach mit dem Philadelphia und der Himbeermarmelade vermengen.
    • TK-Beerenmischung mit dem Zucker mischen und mit einem Stabmixer pürieren.
    • Die Gelatine ca. 5min in kaltem Wasser einweichen lassen, leicht ausdrücken und mit dem Fruchtpüree vorsichtig erwärmen bis sich die Gelatine gelöst hat. Anschließend das Fruchtpüree vorsichtig unter die Philadelphia-Joghurt-Creme heben und in die Springform füllen.
    • Die Torte daraufhin für mindestens 3 Stunden in den Kühlschrank stellen und danach mit Früchten und geraspelter Schokolade verzieren.

    Guten Appetit!

    Daniel

  • <dw:daniel_walzenbach runat="server" />

    multi-user electro-acoustic music instrument with a tabletop tangible user interface

    • 0 Comments

    Als Freund elektronischer Musik finde ich das mal echt abgefahren. Eine richtig fette GUI für einen Synthesizer!

    The reactable is a multi-user electro-acoustic music instrument with a tabletop tangible user interface. Several simultaneous performers share complete control over the instrument by moving physical artefacts on the table surface and constructing different audio topologies in a kind of tangible modular synthesizer or graspable flow-controlled programming language. (http://mtg.upf.edu/reactable/)

    reactable: basic demo #1
    reactable: basic demo #2
    reactable: improvisation demo

    Schöne Grüße

    Daniel

  • <dw:daniel_walzenbach runat="server" />

    IE und JavaScript Performance Empfehlungen

    • 1 Comments

    Peter Gurevich, Performance Programm Manager des IE7 Teams, hat seine dreiteilige Serie zu o.g. Thema fertiggestellt. Absolut empfehlenswert! Ein muss für alle Webentwickler!

    IE + JavaScript Performance Recommendations - Part 1
    IE+JavaScript Performance Recommendations Part 2: JavaScript Code Inefficiencies
    IE+JScript Performance Recommendations Part 3: JavaScript Code Inefficiencies

    Schöne Grüße

    Daniel

  • <dw:daniel_walzenbach runat="server" />

    Visual Studio 2005 Keyboard Shortcut Reference Poster

    • 4 Comments

    Für die populärsten .NET Sprachen Visual Basic 2005, Visual C# 2005 und Visual C++ 2005 gibt es von dem Visual Studio Team Poster mit den meistverwendeten Shortcuts :-)

    Visual Studio Keyboard Shortcut Reference VB.NET 2005
    Visual Studio Keyboard Shortcut Reference VB.NET 2005

    Visual Studio Keyboard Shortcut Reference C# 2005
    Visual Studio Keyboard Shortcut Reference C# 2005

    Visual Studio Keyboard Shortcut Reference C++ 2005
    Visual Studio Keyboard Shortcut Reference C++ 2005

    Äußerst cool!

  • <dw:daniel_walzenbach runat="server" />

    Demos zum Webcast „Get the BASICs, Teil 9“

    • 1 Comments

    Auf Anfrage die Demos (130 KB) des gestrigen Webcasts "Get the BASICs, VB.NET für Einsteiger und Umsteiger, Teil 9".

    Interessieren würde mich, in wie fern Sie mit Delegates und Events klar kamen.

    Viel Spaß beim Programmieren!

  • <dw:daniel_walzenbach runat="server" />

    Folien zur Serie "Get the BASICs, VB.NET für Einsteiger und Umsteiger", Teil 9

    • 0 Comments

    Die Folien zu dem gestrigen Webcast

    Folien VB.NET für Einsteiger und Umsteiger (Teil 9-10) – Zeichenketten, Delegates und Events (1.07 MB)

    Schöne Grüße von Daniel

  • <dw:daniel_walzenbach runat="server" />

    Übungsaufgabe zu „Get the BASICs, Visual Basic für Einsteiger und Umsteiger“, Teil 9

    • 0 Comments

    Aufgabe:

    Schreiben Sie ein Programm, welches eine "horizontale" Balkengrafik darstellen kann

    • Die Höhe der Balken liegt in einem Integer Array
    • ACHTUNG: Max. Länge des Balkens muss berücksichtigt werden (Breite des Fensters)
    • Die Balkenerzeugung und –verwaltung soll in einer eigenen Klasse implementiert werden
    • Das verwendete Zeichen für die Balken soll frei wählbar sein

    Sonstige Features:

    • Links neben dem Balken soll die Höhe ausgegeben werden
    • Die Balkendaten sollen von der Tastatur eigelesen werden
    • Implementieren Sie eine Sortierroutine

    Ausgabe:

    25:xxxxxxxxxxxxxxxxxxxxxxxxx
    18:xxxxxxxxxxxxxxxxxx
    12:xxxxxxxxxxxx
     6:xxxxxx
     2:xx

    Viel Erfolg!

  • <dw:daniel_walzenbach runat="server" />

    Übungsaufgabe und Lösung zu „Get the BASICs, Visual Basic für Einsteiger und Umsteiger“, Teil 8

    • 0 Comments

    Aufgabe:

    Berechnen Sie die Wurzeln von 1 bis n in einer for Schleife

    • n soll von dem Anwender frei eingegeben werden
    • Speichern Sie die Wurzeln in einem Array der richtigen Größe
    • Bilden Sie den Mittelwert aller Wurzeln in dem Array
      • Implementieren Sie Ausnahmebehandlung um potentielle Fehler abzufangen
    • Geben Sie alle Wurzeln und deren Mittelwert aus

    Lösung:

    Option Explicit On

    Option Strict On

     

    Imports System.Math

     

    Module Hausaufgabe8

     

        Sub Main()

     

            Dim anzahlWurzeln As Integer

     

            Console.WriteLine("Wurzeln berechnen")

            Console.WriteLine("=================")

            Console.WriteLine()

     

            Dim Eingabe As String

            Console.Write("Anzahl der Wurzeln eingeben: ")

            Eingabe = Console.ReadLine

     

            ' Überprüfen, ob

            ' (1) eine gültige Zahl eingegeben wurde und

            ' (2) die eingegebene Zahl > 0 ist

            If Integer.TryParse(Eingabe, anzahlWurzeln) = False _

                OrElse anzahlWurzeln <= 0 Then

                Console.WriteLine("Sie haben keine gültige Zahl eingegeben. Nur ganze Zahlen > 0 sind erlaubt.")

                Return

            End If

     

            ' Array für die Wurzelberechnung anlegen

            Dim Zahlen(anzahlWurzeln - 1) As Double

            Dim Zahl As Double

            For i As Integer = 0 To Zahlen.Length - 1

                Console.Write("Bitte Zahl {0} eingeben: ", (i + 1).ToString)

                Eingabe = Console.ReadLine

     

                ' überprüfen, ob eine gültige Zahl eingegeben wurde

                If Double.TryParse(Eingabe, Zahl) = False _

                    OrElse Zahl < 0 Then

     

                    Zahl = 0

     

                End If

     

                ' eine gültige Zahl >= 0 wurde eingegeben

                Zahlen(i) = Zahl

     

            Next

     

     

            Dim Mittelwert As Double

     

            ' Alle Wurzeln ausgeben und den Mittelwert berechnen

            For i As Integer = 0 To Zahlen.Length - 1

     

                ' Wurzel berechnen und ausgeben

                Console.WriteLine("Die Wurzel von {0} ist {1}.", _

                    Zahlen(i), Sqrt(Zahlen(i)))

     

                Try

                    ' alle Wurzeln für den Mittelwert addieren

                    Mittelwert += Sqrt(Zahlen(i))

                    ' Mittelwert = Mittelwert + Sqrt(Zahlen(i))

     

                Catch ex As OverflowException

                    Console.WriteLine("Overflow ist aufgetreten.")

     

                Catch ex As Exception

                    Console.WriteLine("Allgemeiner Fehler ist aufgetreten.")

     

                End Try

     

            Next

     

            ' Mittelwert berechnen

            Mittelwert /= Zahlen.Length

            'Mittelwert = Mittelwert / Zahlen.Length

     

            Console.WriteLine()

            Console.WriteLine("Der Mittelwert aller Wurzeln ist {0}.", _

                Mittelwert)

     

        End Sub

     

    End Module

  • <dw:daniel_walzenbach runat="server" />

    Slides und Demos zum TechTalk „Vista für Entwickler“

    • 0 Comments

    Schade! Nach unzähligen interessanten Gesprächen, vielen neuen Erkenntnissen, unzähligen Kilometern zu Land und in der Luft, viel Spaß und zehn interessanten Veranstaltungen ging der TechTalk "Vista für Entwickler" letzte Woche für meinen Kollegen Oliver und mich zu Ende.

    Wie versprochen möchten wir unsere Slides und Demos allen interessierten Teilnehmern zur Verfügung stellen (nach und nach werden wir außerdem die noch offenen Fragen beantworten) und hier sind sie:

    Slides zum TechTalk "Vista für Entwickler" (5,82 MB)
    Meine Demos zum TechTalk "Vista für Entwickler" (418 KB)

    Vielen lieben Dank an alle Teilnehmer für die interessanten Gespräche und die lebhaften Diskussionen! Es hat riesigen Spaß gemacht :-)

  • <dw:daniel_walzenbach runat="server" />

    Gute Nachrichten für Access Entwickler: „Runtime and Developer Extensions“ frei verfügbar.

    • 0 Comments

    Seit einigen Tagen sind die "Runtime and Developer Extensions" frei verfügbar. In der Vergangenheit mussten Access Entwickler die Visual Studio Tools for Microsoft Office System kaufen (ca. $800 für die Vollversion und $550 für das Update) um die Runtime verwenden und vertreiben zu können.

    Weitere Infos finden sich auf Clint Covingtons Blog.

  • <dw:daniel_walzenbach runat="server" />

    Cooler 3D Reader für historische Bücher!

    • 1 Comments

    Wer schon immer einmal Bücher wie Leonardo Da Vinci's "Codex Arundel", Mercator's "Altas of Europe", Mozart's "Musical Diary" oder viele andere in Farbe und 3D lesen wollte hat jetzt die Gelegenheit!

    Turning the Pages 2.0 

    Pünktlich zum Launch von Windows Vista am 30.01.2007 veröffentlichte die British Library "Turning the Pages™ 2.0" und machte somit einige der wertvollsten Bücher in 3D mit spektakulären Lichteffekten, Fließtext, Ton, etc. als XBAP (XAML Browser Application) Anwendung verfügbar. Die Ergebnisse sind absolut atemberaubend und können auf http://ttpdownload.bl.uk eingesehen werden!

    Viel Spaß beim Stöbern.

    Daniel

  • <dw:daniel_walzenbach runat="server" />

    JETZT ONLINE! Die ersten Bird´s eyes für Deutschland!

    • 0 Comments

    So langsam wird Virtual Earth seinem Namen gerecht… Auf www.local.live.com gibt es hochauflösende Bilder von diesen Städten (weitere folgen):

    Aalen, Aschaffenburg, Augsburg, Baden-Baden, Bamberg, Bayreuth, Binz, Brandenburg, Chemnitz, Cottbus, Dessau, Dresden, Erfurt, Erlangen, Freiburg im Breisgau, Gera, Goppingen, Goerlitz, Halle, Hanau, Heilbronn, Ingolstadt, Jena, Karslruhe, Kempten (Allgaeu), Konstanz, Landshut, Leipzig, Lubeck, Ludwigsburg, Magdeburg, Mannheim, Munchen, Neumeunster, Nurenburg and Fuerth, Offenburg, Pforzheim, Plauen, Potsdam, Reutlingen, Rosenheim, Rostock, Saarbruecken, Sassnitz, Schwaebisch Gmuend, Sindlefingen, Speyer, Stralsund, Stuttgart, Trier, Teubingen, Ulm, Villingen-Schwenningen, Waiblingen, Weimar, Wolfsburg, Wuerzburg

    Als kleines Beispiel zwei Bilder:

    Der Mannheimer Wasserturm

    München Viktualienmarkt und der "Alte Peter"

    Viel Spaß beim Surfen ;-)

  • <dw:daniel_walzenbach runat="server" />

    ASP.NET AJAX 1.0 Released

    • 2 Comments

    Seit gestern morgen ist es soweit :-) ASP.NET AJAX 1.0 ist veröffentlicht.

    Weitere Infos finden sich auf Scott Guthries Blog auf ASP.NET AJAX 1.0 Released.

    Meine Empfehlung: Sofort runterladen und installieren ;-)

    Schöne Grüße!

  • <dw:daniel_walzenbach runat="server" />

    Upgrade Ressourcen auf MSDN: Visual Basic 6.0 nach Visual Basic .NET

    • 0 Comments

    Patterns and Practices book: Upgrading Visual Basic 6.0 Applications to Visual Basic .NET and Visual Basic 2005
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/VB6ToVBNetUpgrade.asp

    Visual Basic 6.0 to Visual Basic .NET Upgrade Assessment Tool
    http://www.microsoft.com/downloads/details.aspx?FamilyId=10C491A2-FC67-4509-BC10-60C5C039A272&displaylang=en

    Designing an Application Migration Strategy for Visual Basic 6.0 to Visual Basic .NET
    http://msdn.microsoft.com/vbasic/reference/Migration/default.aspx?pull=/library/en-us/dv_vstechart/html/appmigrationstrat.asp

    Free Book - Upgrading Microsoft Visual Basic 6.0 to Microsoft Visual Basic .NET:
    http://msdn.microsoft.com/vbrun/staythepath/additionalresources/upgradingvb6/default.aspx

    Upgrading Applications in Visual Basic:
    http://msdn2.microsoft.com/en-us/library/dy163kx7(en-US,VS.80).aspx

    Upgrading Applications Created in Previous Versions of Visual Basic:
    http://msdn2.microsoft.com/en-us/library/47s4twtx

    VB6 Code Advisor: suggest changes and best practices to ease your migration from Visual Basic 6.0 to Visual Basic .NET
    http://www.microsoft.com/downloads/details.aspx?FamilyID=a656371a-b5c0-4d40-b015-0caa02634fae&DisplayLang=de

    Schöne Grüße

    Daniel

  • <dw:daniel_walzenbach runat="server" />

    Das Chamäleon ASP.NET

    • 1 Comments

    Ein beständiger Quell der Freude bei der Entwicklung von Webseiten ist, dass verschiedene Browser und verschiedene Versionen des gleichen Browsers jeweils unterschiedliche Features unterstützen. Als Resultat stellen verschiedene Browser die gleiche HTML-Seite unterschiedlich dar und Entwickler waren jahrelang gezwungen Ihre Seiten für verschiedene Browser zu optimieren, wollten Sie dem Besucher ihrer Seite eine optimale "User Experience" anbieten.

    Für ASP.NET Entwickler gehört dieses Problem sei der ersten Version von .NET (bis auf ein paar Ausnahmen) der Vergangenheit an. ASP.NET Webseiten setzen sich zu einem großen Teil aus ASP.NET Controls zusammen. Diese Controls sind anhand der Benutzeragenteninformationen in der Lage den Browser, der die Seite anfordert, zu erkennen und können daraufhin die Ausgabe auf die Darstellung des Browsers entsprechend anpassen. Die Benutzeragenteninformationen stehen übrigens als UserAgent-Eigenschaft oder als HttpRequest-Objekt zur Verfügung.

    Entsprechend der Fähigkeit von Browsern, bestimmte Inhalte darstellen zu können, werden Browser in zwei Klassen unterteilt: "uplevel"-Browser (neuere Versionen) und "downlevel"-Browser (frühere Versionen).

    Browser und Clientgeräte, die als "uplevel" bezeichnet werden, bieten in der Regel Unterstützung für:

    • ECMAScript (JScript, JavaScript), Version 1.2.
    • HTML, Version 4.0
    • Microsoft Document Object Model (MSDOM, Microsoft-Dokumentobjektmodell).
    • Cascading Stylesheets (CSS).

    Browser und Clientgeräte, die als "Downlevel" bezeichnet werden, unterstützen nur HTML, Version 3.2

    Um die Darstellung der Seite explizit zu steuern, anstatt sich auf die automatische Browsererkennung zu verlassen, kann die ClientTarget-Eigenschaft der Seite über die vordefinierten Standardeinstellungen ie5, ie4, uplevel und downlevel festgelegt werden. Mit der Angabe des downlevel-Alias kann die Darstellung einer Seite – unabhängig von dem eingesetzten Browser – mit HTML 3.2-kompatiblen Elementen erzwungen werden. Analog erzwingt die Angabe von uplevel die Ausgabe von CSS-Formatattributen, unabhängig davon, ob der Browser, der die Seite anfordert, diese verwenden kann oder nicht.

    Ein kleines Beispiel soll dieses Konzept illustrieren. Zu diesem Zweck wurde in diesem Codebeispiel die ClientTarget-Eigenschaft in der Seitendirektive der Webseite explizit auf uplevel gesetzt ist.

    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" ClientTarget="uplevel" %>

     

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

     

    <html xmlns="http://www.w3.org/1999/xhtml" >

    <head runat="server">

        <title>Benutzerverwaltung</title>

    </head>

        <body>

            <form id="form1" runat="server">

                <div>

                    <asp:Label

                        ID="Label1" runat="server" Text="Benutzerverwaltung"

                        Font-Bold="False" Font-Italic="True"

                        Font-Names="Verdana" ForeColor="DarkGray"

                        Font-Size="Larger" />

                    <br />

                    <br />

                    <asp:Label

                        ID="Label2" runat="server" Text="Name:"

                        Font-Names="Verdana" ForeColor="DarkGray"

                        Font-Bold="False" Font-Size="Small" />

                    <br />

                    <asp:TextBox ID="txtName" runat="server" />

                    <asp:RequiredFieldValidator

                        ID="RequiredFieldValidator1" runat="server"

                        ControlToValidate="txtName"

                        ErrorMessage="Bitte geben Sie einen Namen ein." />

                    <br />

                    <br />

                    <asp:Button ID="btnLaden" runat="server" Text="Laden" />

                </div>

            </form>

        </body>

    </html>

    Entsprechend dieser Einstellungen rendern die ASP.NET Server Controls (<asp:Label />, <asp:TextBox />, <asp:RequiredFieldValidator />, <asp:Button ID="btnLaden" />) in dem Beispiel den Inhalt der Seite unterschiedlich.

    ClientTarget="uplevel"

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

     

    <html xmlns="http://www.w3.org/1999/xhtml" >

    <head><title>

          Benutzerverwaltung

    </title></head>

        <body>

            <form name="form1" method="post" action="Default.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="form1">

    <div>

    <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />

    <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />

    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJMTQ5OTQxNDc3ZGSc409E/rebtnJIGPY4lpj9UKIcHg==" />

    </div>

     

    <script type="text/javascript">

    <!--

    var theForm = document.forms['form1'];

    if (!theForm) {

        theForm = document.form1;

    }

    function __doPostBack(eventTarget, eventArgument) {

        if (!theForm.onsubmit || (theForm.onsubmit() != false)) {

            theForm.__EVENTTARGET.value = eventTarget;

            theForm.__EVENTARGUMENT.value = eventArgument;

            theForm.submit();

        }

    }

    // -->

    </script>

     

     

    <script src="/ClientTarget/WebResource.axd?d=OF_ycAeEyoS1YxGgAoI3Fg2&amp;t=632969108944906146" type="text/javascript"></script>

     

     

    <script src="/ClientTarget/WebResource.axd?d=wFFdy1h0cE0vw88ojJditOq7o464AD3s8S-LqSeUmxk1&amp;t=632969108944906146" type="text/javascript"></script>

    <script type="text/javascript">

    <!--

    function WebForm_OnSubmit() {

    if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;

    return true;

    }

    // -->

    </script>

     

    <div>

        <span id="Label1" style="color:DarkGray;font-family:Verdana;font-size:Larger;font-weight:normal;font-style:italic;">Benutzerverwaltung</span>

        <br />

        <br />

        <span id="Label2" style="color:DarkGray;font-family:Verdana;font-size:Small;font-weight:normal;">Name:</span>

        <br />

        <input name="txtName" type="text" id="txtName" />

        <span id="RequiredFieldValidator1" style="color:Red;visibility:hidden;">Bitte geben Sie einen Namen ein.</span>

        <br />

        <br />

        <input type="submit" name="btnLaden" value="Laden" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;btnLaden&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="btnLaden" />

    </div>

     

    <script type="text/javascript">

    <!--

    var Page_Validators =  new Array(document.getElementById("RequiredFieldValidator1"));

    // -->

    </script>

     

    <script type="text/javascript">

    <!--

    var RequiredFieldValidator1 = document.all ? document.all["RequiredFieldValidator1"] : document.getElementById("RequiredFieldValidator1");

    RequiredFieldValidator1.controltovalidate = "txtName";

    RequiredFieldValidator1.errormessage = "Bitte geben Sie einen Namen ein.";

    RequiredFieldValidator1.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";

    RequiredFieldValidator1.initialvalue = "";

    // -->

    </script>

     

    <div>

     

          <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwLr3vKqCwLEhISFCwKct5SxA0qg7S78OUEVS+kzdJhDLF6zY2mx" />

    </div>

     

    <script type="text/javascript">

    <!--

    var Page_ValidationActive = false;

    if (typeof(ValidatorOnLoad) == "function") {

        ValidatorOnLoad();

    }

     

    function ValidatorOnSubmit() {

        if (Page_ValidationActive) {

            return ValidatorCommonOnSubmit();

        }

        else {

            return true;

        }

    }

    // -->

    </script>

            </form>

        </body>

    </html>

    ClientTarget="downlevel"

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

     

    <html xmlns="http://www.w3.org/1999/xhtml" >

    <head><title>

          Benutzerverwaltung

    </title></head>

        <body>

            <form name="form1" method="post" action="/ClientTarget/Default.aspx" id="form1">

    <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />

    <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />

    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJMTQ5OTQxNDc3ZGSc409E/rebtnJIGPY4lpj9UKIcHg==" />

     

    <script type="text/javascript">

    <!--

    var theForm = document.forms['form1'];

    if (!theForm) {

        theForm = document.form1;

    }

    function __doPostBack(eventTarget, eventArgument) {

        if (!theForm.onsubmit || (theForm.onsubmit() != false)) {

            theForm.__EVENTTARGET.value = eventTarget;

            theForm.__EVENTARGUMENT.value = eventArgument;

            theForm.submit();

        }

    }

    // -->

    </script>

     

     

    <script src="/ClientTarget/WebResource.axd?d=OF_ycAeEyoS1YxGgAoI3Fg2&amp;t=632969108944906146" type="text/javascript"></script>

     

    <div>

        <span id="Label1"><i><font face="Verdana" color="DarkGray">Benutzerverwaltung</font></i></span>

        <br />

        <br />

        <span id="Label2"><font face="Verdana" color="DarkGray" size="3">Name:</font></span>

        <br />

        <input name="txtName" type="text" id="txtName" />

        &nbsp;

        <br />

        <br />

        <input type="submit" name="btnLaden" value="Laden" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;btnLaden&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="btnLaden" />

    </div>

     

    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwLr3vKqCwLEhISFCwKct5SxA0qg7S78OUEVS+kzdJhDLF6zY2mx" /></form>

        </body>

    </html>

    Schöne Grüße

    Daniel

  • <dw:daniel_walzenbach runat="server" />

    Frohe Weihnachten…

    • 0 Comments

    … sowie einen guten und erfolgreichen Start in das neue Jahr wünsche ich allen Lesern meines Blogs!

    Frohe Weihnachten!

    Festliche Grüße

    Daniel Walzenbach

  • <dw:daniel_walzenbach runat="server" />

    Folien zur Serie "Get the BASICs, VB.NET für Einsteiger und Umsteiger", Teil 8

    • 0 Comments

    Anbei die Folien

    Folien VB.NET für Einsteiger und Umsteiger (Teil 8-10) – Arrays (1.51 MB)

    Schöne Grüße von Daniel

  • <dw:daniel_walzenbach runat="server" />

    Übungsaufgabe und Lösung zu „Get the BASICs, Visual Basic für Einsteiger und Umsteiger“, Teil 7

    • 0 Comments

    Aufgabe:

    Implementieren Sie Fehlerbehandlung für das Programm "Kreisinhalt berechnen" aus Webcast #2

    Schreiben Sie ein Programm welches den Kreisinhalt (A) berechnet.
    A = πr²

    Verwenden Sie Console.WriteLine() und/oder Console.Write() und/oder Console.ReadLine() und System.Math.PI

    Bitte geben Sie den Radius des Kreises in cm ein: 5
    Der Kreisinhalt eines Kreises mit Radius 5cm beträgt ca. 78,5cm².

    Lösung:

    Option Strict On

    Option Explicit On

     

    Module Module1

     

        Sub Main()

     

            Dim RadiusEingabe As String

            Dim Radius As Double

     

            Dim Kreisinhalt As Double

     

            Console.Write("Bitte geben Sie den Radius des Kreises in cm ein: ")

            RadiusEingabe = Console.ReadLine()

     

            Try

                Radius = Convert.ToDouble(RadiusEingabe)

     

            Catch ex As System.FormatException

                Console.WriteLine("Es wurde keine Zahl eingegeben.")

                Return

     

            Catch ex As Exception

                Console.WriteLine("Ein unbekannter Fehler ist aufgetreten.")

                Console.WriteLine(ex.Message)

                Return

     

            End Try

     

            ' Alternative Lösungsmöglichkeit

            '

            ' If Double.TryParse(RadiusEingabe, Radius) = False Then

            '    ' es wurde ein Wert eingegeben, der nicht

            '    ' in ein Double konvertiert werden kann

     

            '    ' Fehlermeldung ausgeben

            '    Console.WriteLine("Es wurde eine ungültige Zahl eingegeben.")

     

            '    ' Programm beenden

            '    Return

     

            'End If

     

     

            ' Kreisinhalt berechnen

            Try

                Kreisinhalt = Math.PI * Math.Pow(Radius, 2)

     

                Console.WriteLine("Der Kreisinhalt eines Kreises mit " & _

                "Radius {0}cm beträgt ca. {1}cm².", Radius, Kreisinhalt)

     

            Catch ex As Exception

                Console.WriteLine("Ein unbekannter Fehler ist aufgetreten.")

                Console.WriteLine(ex.Message)

     

            End Try

     

        End Sub

     

    End Module

  • <dw:daniel_walzenbach runat="server" />

    Übungsaufgabe zu „Get the BASICs, Visual Basic für Einsteiger und Umsteiger“, Teil 8

    • 0 Comments

    Berechnen Sie die Wurzeln von 1 bis n in einer for Schleife

    • n soll von dem Anwender frei eingegeben werden
    • Speichern Sie die Wurzeln in einem Array der richtigen Größe
    • Bilden Sie den Mittelwert aller Wurzeln in dem Array
      • Implementieren Sie Ausnahmebehandlung um potentielle Fehler abzufangen
    • Geben Sie alle Wurzeln und deren Mittelwert aus

    Viel Erfolg! Daniel

  • <dw:daniel_walzenbach runat="server" />

    Properties vs. Konstruktoren

    • 0 Comments

    Eine Frage, die im Zusammenhang mit der aktuellen Webcastserie "Get the BASICs, VB.NET für Einsteiger und Umsteiger" aufkam, war, wie sich Properties von Konstruktoren abgrenzen.

    Grundsätzlich dienen Properties dazu, Felder (Variablen) in einem Objekt kontrolliert setzen zu können indem sie die Ausführung von Code gestatten, wenn Eigenschaftenwerte festgelegt oder abgerufen werden.

    Mit Konstruktoren können Objekte aus Klassen instanziieren werden – sie steuern die Erstellung von Objekten. Sind diese überladen vorhanden (mehrere Konstruktoren mit unterschiedlichen Parametern) können schon bei der Instanziierung eines Objekts bestimmte Objekteigenschaften gesetzt werden.

    Zur Verdeutlichung ein kleines Beispiel:

    Option Strict On

    Option Explicit On

     

    Module Module1

     

        Sub Main()

     

            Dim Daniel As New Person("Daniel", "Walzenbach", 1976)

     

            Console.WriteLine(Daniel)

            Console.WriteLine()

     

     

            Dim Bernhard As New Person

            Bernhard.Vorname = "Bernhard"

            Bernhard.Nachname = "Frank"

            Bernhard.Geburtsjahr = 2007

     

            Console.WriteLine(Bernhard)

     

        End Sub

     

    End Module

     

    Public Class Person

     

    #Region "Variablen"

     

        Private _Nachname As String

        Private _Vorname As String

        Private _Geburtsjahr As Integer

     

    #End Region

     

    #Region "Properties"

     

        Public Property Nachname() As String

            Get

                Return _Nachname

            End Get

            Set(ByVal value As String)

                _Nachname = value

            End Set

        End Property

     

        Public Property Vorname() As String

            Get

                Return _Vorname

            End Get

            Set(ByVal value As String)

                _Vorname = value

            End Set

        End Property

     

        Public Property Geburtsjahr() As Integer

            Get

                Return _Geburtsjahr

            End Get

            Set(ByVal value As Integer)

     

                ' das Geburtsjahr überprüfen

                If value <= System.DateTime.Now.Year Then

                    ' alles ok

                    _Geburtsjahr = value

     

                Else

                    ' das Geburtsdatum darf nicht in der Zukunft liegen

                    Console.WriteLine("Das Geburtsdatum darf nicht in der Zukunft liegen.")

     

                End If

     

            End Set

        End Property

     

    #End Region

     

    #Region "Konstruktoren"

     

        Public Sub New()

     

        End Sub

     

        Public Sub New(ByVal Vorname As String, ByVal Nachname As String, ByVal Geburtsjahr As Integer)

            Me.Vorname = Vorname

            Me.Nachname = Nachname

            Me.Geburtsjahr = Geburtsjahr

        End Sub

     

    #End Region

     

    #Region "Methoden"

     

        Public Overrides Function ToString() As String

            Return String.Format("{0} {1}{2}Geburtsjahr: {3}" _

                , _Vorname, _Nachname, System.Environment.NewLine _

                , _Geburtsjahr)

        End Function

     

    #End Region

     

    End Class

    Referenzen:
    Klasseneigenschaften, Felder und Methoden
    Verwenden von Konstruktoren und Destruktoren

    Schöne Grüße

    Daniel

  • <dw:daniel_walzenbach runat="server" />

    TechTalk „Vista für Developer“…

    • 0 Comments

    …oder die Reise durch Deutschland.

    TechTalk Tour "Vista für Developer" 

    Mein Kollege Oliver Scheer und ich touren Januar 2007 einmal quer durch Deutschland und sprechen über die neuen Features und Funktionalitäten von Windows Vista aus der Sicht des Entwicklers. Mit auf der Agenda stehen beispielsweise das .NET Framework 3.0, Glass, User Account Control (UAC), neue Features im Powermanagement und noch vieles mehr. Den Auftakt unserer Reise bildet Hamburg am 11.01.2007, die letzte Veranstaltung findet am 30.01.2007 in Dresden statt.

    Weitere Infos sowie die übrigen Termine gibt es auf der MSDN TechTalk Seite. Am besten gleich anmelden. Die ersten Veranstaltungsorte sind schon ausgebucht ;-)

    Bis dann. Daniel

Page 9 of 12 (284 items) «7891011»