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

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

    • 1 Comments

    Anbei die Folien

    Folien VB.NET für Einsteiger und Umsteiger (Teil 6-10) - Interfaces (0.99 MB)
    Folien VB.NET für Einsteiger und Umsteiger (Teil 7-10) - Strukturierte Ausnahmebehandlung (1.15 MB)

    Bis bald!

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

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

    • 0 Comments

    Aufgabe

    • Schreiben Sie die zwei Klassen Amateurspieler und Profispieler
    • Beide Klassen sollen ein Interface ISpieler implementieren
      • Property SpielerName
      • Property Position
      • Methode Torschiessen
    • Schreiben Sie eine Methode welche die Namen, Position und geschossenen Tooooore der Spieler ausgibt

    Lösung (1)

    Option Strict On

    Option Explicit On

     

    Module Module1

     

        Sub Main()

     

            Dim Amateur As New Amateurspieler

            Amateur.SpielerName = "Amateur XYZ"

            Amateur.Position = "Sturm"

            Amateur.Torschiessen()

     

            Dim Profi As New Profispieler

            Profi.SpielerName = "Profi ABC"

            Profi.Position = "Tor"

            Profi.Torschiessen()

            Profi.Torschiessen()

     

            Ausgabe(Amateur)

            Ausgabe(Profi)

     

        End Sub

     

        Public Sub Ausgabe(ByVal Spieler As ISpieler)

     

            Console.WriteLine(String.Format("Name des Spielers: {0}", Spieler.SpielerName))

            Console.WriteLine(String.Format("Position des Spielers: {0}", Spieler.Position))

            Console.WriteLine(String.Format("Geschossene Toooore: {0}", Spieler.AnzahlTore))

            Console.WriteLine()

            Console.WriteLine()

     

        End Sub

     

    End Module

     

    Interface ISpieler

     

        Property SpielerName() As String

        Property Position() As String

        ReadOnly Property AnzahlTore() As Integer

        Sub Torschiessen()

     

    End Interface

     

    Public Class Amateurspieler

        Implements ISpieler

     

     

        Private _Position As String

        Private _SpielerName As String

        Private _AnzahlTore As Integer

        Private _Gehalt As Double

     

     

        Public Property Position() As String Implements ISpieler.Position

            Get

                Return _Position

            End Get

            Set(ByVal value As String)

                _Position = value

            End Set

        End Property

     

        Public Property SpielerName() As String Implements ISpieler.SpielerName

            Get

                Return _SpielerName

            End Get

            Set(ByVal value As String)

                _SpielerName = value

            End Set

        End Property

     

        Public Property Gehalt() As Double

            Get

                Return _Gehalt

            End Get

            Set(ByVal value As Double)

                _Gehalt = value

            End Set

        End Property

     

        Public ReadOnly Property AnzahlTore() As Integer Implements ISpieler.AnzahlTore

            Get

                Return _AnzahlTore

            End Get

        End Property

     

     

        Public Sub Torschiessen() Implements ISpieler.Torschiessen

            _AnzahlTore += 1

            _Gehalt += 50

        End Sub

     

    End Class

     

    Public Class Profispieler

        Implements ISpieler

     

        Private _Position As String

        Private _SpielerName As String

        Private _AnzahlTore As Integer

        Private _Gehalt As Double

     

     

        Public Property Position() As String Implements ISpieler.Position

            Get

                Return _Position

            End Get

            Set(ByVal value As String)

                _Position = value

            End Set

        End Property

     

        Public Property SpielerName() As String Implements ISpieler.SpielerName

            Get

                Return _SpielerName

            End Get

            Set(ByVal value As String)

                _SpielerName = value

            End Set

        End Property

     

        Public Property Gehalt() As Double

            Get

                Return _Gehalt

            End Get

            Set(ByVal value As Double)

                _Gehalt = value

            End Set

        End Property

     

        Public ReadOnly Property AnzahlTore() As Integer Implements ISpieler.AnzahlTore

            Get

                Return _AnzahlTore

            End Get

        End Property

     

     

        Public Sub Torschiessen() Implements ISpieler.Torschiessen

            _AnzahlTore += 1

            _Gehalt += 1000

        End Sub

     

    End Class

     

    Wie in o.g. Lösung zu sehen ist stellt die Implementierung des Interfaces ISpieler in den Klassen Amateurspieler und Profispieler sicher, dass beide Klassen alle Properties und alle Methoden des Interfaces implementieren. Unschön ist jedoch, dass beide Klassen sehr viel gleichen Code beinhalten wie in dem nachfolgend skizziertem Klassendiagramm ersichtlich ist.

    Implementierung der Aufgabe mit Hilfe eines Interfaces.

    Aus diesem Grund wurden in der zweiten Lösung Teile beider Klassen in eine allgemeine Basisklasse Spieler ausgelagert. An dem neuen Klassendiagramm wird sehr schön deutlich, wie der davor doppelt vorhandene Code jetzt nur noch an einer Stelle implementiert werden muss.

    Auslagern von gemeinsam verwendetem Code in einer Basisklasse.

    Lösung (2)

    Option Strict On

    Option Explicit On

     

    Module Module1

     

        Sub Main()

     

            Dim Amateur As New Amateurspieler

            Amateur.SpielerName = "Amateur XYZ"

            Amateur.Position = "Sturm"

            Amateur.Torschiessen()

     

            Dim Profi As New Profispieler

            Profi.SpielerName = "Profi ABC"

            Profi.Position = "Tor"

            Profi.Torschiessen()

            Profi.Torschiessen()

     

            Ausgabe(Amateur)

            Ausgabe(Profi)

     

        End Sub

     

        Public Sub Ausgabe(ByVal meinSpieler As Spieler)

     

            Console.WriteLine(String.Format("Name des Spielers: {0}", meinSpieler.SpielerName))

            Console.WriteLine(String.Format("Position des Spielers: {0}", meinSpieler.Position))

            Console.WriteLine(String.Format("Geschossene Toooore: {0}", meinSpieler.AnzahlTore))

            Console.WriteLine()

            Console.WriteLine()

     

        End Sub

     

    End Module

     

    Public Class Spieler

     

        Private _Position As String

        Private _SpielerName As String

        Private _AnzahlTore As Integer

        Private _Gehalt As Double

     

     

        Public Property Position() As String

            Get

                Return _Position

            End Get

            Set(ByVal value As String)

                _Position = value

            End Set

        End Property

     

        Public Property SpielerName() As String

            Get

                Return _SpielerName

            End Get

            Set(ByVal value As String)

                _SpielerName = value

            End Set

        End Property

     

        Public Property Gehalt() As Double

            Get

                Return _Gehalt

            End Get

            Set(ByVal value As Double)

                _Gehalt = value

            End Set

        End Property

     

        Public Property AnzahlTore() As Integer

            Get

                Return _AnzahlTore

            End Get

            Set(ByVal value As Integer)

                _AnzahlTore = value

            End Set

        End Property

     

    End Class

     

    Interface ISpieler

     

        Sub Torschiessen()

     

    End Interface

     

    Public Class Amateurspieler

        Inherits Spieler

        Implements ISpieler

     

        Public Sub Torschiessen() Implements ISpieler.Torschiessen

            AnzahlTore += 1

            ' AnzahlTore = AnzahlTore + 1

            Gehalt += 50

        End Sub

     

    End Class

     

    Public Class Profispieler

        Inherits Spieler

        Implements ISpieler

     

     

        Public Sub Torschiessen() Implements ISpieler.Torschiessen

            AnzahlTore += 1

            Gehalt += 1000

        End Sub

     

    End Class

     

    P.S. Da die Frage während des Webcasts aufkam: Die Bilder wurden mit dem Klassendesigner des Visual Studios 2005 erstellt. Der Klassendesigner ist ab der Standard Version enthalten.

    Referenzen:

    Objektorientiertes Programmieren in Visual Basic
    http://msdn2.microsoft.com/de-de/library/b86b82w0(VS.80).aspx

    Class-Anweisung
    http://msdn2.microsoft.com/de-de/library/wa0hwf23(VS.80).aspx

    Vererbung in Visual Basic
    http://msdn2.microsoft.com/de-de/library/5x4yd9d5(VS.80).aspx

    Schnittstellen in Visual Basic
    http://msdn2.microsoft.com/de-de/library/28e2e18x(VS.80).aspx

    Schöne Grüße

    Daniel

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

    Gegen die Langweile: Ein paar neue MSDN Artikel

    • 0 Comments

    Passend zu den immer kürzer werdenden Tage ein paar interessante Artikel…

    Windows Vista Application Development Requirements for User Account Control Compatibility
    Author: Jennifer Allen and the User Account Control team
    Publishing Date: 11/13/2006 

    Getting started with "WPF/E" (Code Name)
    Author: lmoroney; barakc
    Publishing Date: 12/04/2006
    http://msdn2.microsoft.com/en-us/library/bb190632.aspx

    CLR Inside Out: Inside Diagnostic Tools for .NET
    Author: Jonathan Keljo
    Publishing Date: 11/22/2006
    http://msdn.microsoft.com/msdnmag/issues/06/12/CLRInsideOut/

    Data access; Database design; Performance
    Optimizing Microsoft Office Access Applications Linked to SQL Server
    Author: Andy Baron
    Publishing Date: 11/30/2006
    http://msdn2.microsoft.com/en-us/library/bb188204.aspx

    Extend ASP.NET: Simplify Data Binding In ASP.NET 2.0 With Our Custom Control
    Author: Rick Strahl
    Publishing Date: 11/22/2006
    http://msdn.microsoft.com/msdnmag/issues/06/12/ExtendASPNET/

    Cutting Edge: The Client Side of ASP.NET Pages
    Author: Dino Esposito
    Publishing Date: 11/22/2006
    http://msdn.microsoft.com/msdnmag/issues/06/12/Cutting%20Edge/

    Schöne Grüße

    Daniel

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

    December CTP of “WPF/E” is public available

    • 0 Comments

    On December 4th, 2006 Microsoft announced the public availability of the December CTP of "WPF/E" (Codename). First announced at Microsoft's Professional Developer's Conference (PDC) in late 2005, "WPF/E" is a cross platform presentation technology for rich web applications, that uses a subset of the XAML (eXtensible Application Markup Language). It enables the creation of rich, visually stunning interactive web content running on multiple browsers, and operating systems (Windows and Mac), and beyond.

    Key benefits for content providers delivering content with "WPF/E" will include:

    • Rich, interactive media support including interactive 2D animation, vector graphics, & font support with video, downloaded or streamed.
    • Enhanced Web audio/video playback with industry-leading Windows Media including support for interactive video overlays and ad insertion.
    • Cross-platform, cross-browser presentation for Windows and Mac, IE, Firefox, Safari and beyond.
    • ASP.NET AJAX + "WPF/E" means developers can use web-standards friendly tools to create experiences that are more discoverable by major search engines than compiled, "black box" solutions.
    • Friction free client install with a lightweight browser plug-in (CTP release for Windows is ~1MB).
    • Lower-cost deployment and distribution of streamed audio and video when compared to other comparable solutions (up to 50% today reported by CDNs).
    • Broad tools support for designers, developers, and video professionals, that tap into Web standards and a breadth of Microsoft application platform features:
      • For designers, Expression Blend, for visually creating Web-based controls, components, and
      • For developers, Visual Studio-based editing with IntelliSense, and support for ASP.NET AJAX.
      • For both, Expression Web, for Web-standards-based development with HTML, XML, XSLT, and more.
      • Expression Media Encoder, a feature of Expression Media for import, enhancement, and publishing of "WPF/E" optimized video.

    This being our first CTP for "WPF/E" we have a lot of information to share with you. Below are the key links to "WPF/e" content:

    MSDN: http://msdn2.microsoft.com/en-us/asp.net/bb187358.aspx

    Channel9: http://channel9.msdn.com/playground/wpfe/

    SDK Download: http://www.microsoft.com/downloads/details.aspx?FamilyId=2B01EC7E-C3B8-47CC-B12A-67C30191C3AA&displaylang=en

    Samples Download: http://www.microsoft.com/downloads/details.aspx?FamilyId=8AEEBE39-6699-4F4F-9732-CA732E57AE21&displaylang=en

    "WPF/E" (codename) CTP (December 2006) SDK Samples

    Page Turn Media

    The Page Turn sample shows how "WPF/E" uses XAML to create a compelling presentation of images. It also shows an additional navigation element that allows users to quickly jump to a specific image.

    Media Library

    This example uses a real world scenario of a video site. The sample is rendering a progressive download video feed from Channel 9 and uses ASP.NET AJAX to improve the interaction parameters of this sample (watch how back button works). Notice how resize works as the underlying presentation player (XAML) is vector-based.

    Sprawl Game

    "WPF/E" is perfect for creating casual games. This sample shows a typical casual game. All the elements of this game were created using the Microsoft Expression suite.

    Simple Video Playback

    The simple video playback samples provide the essentials you need for showing video playback on your site. The minimalist control uses an efficient design that hides the control when it is not needed using subtle animations.

    Film Strip Slideshow

    Learn the value proposition of "WPF/E" while viewing a "WPF/E" sample. This example uses animation to implement a slide show style presentation.

    Cheers

    Daniel

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

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

    • 0 Comments

    Aufgabe

    Schreiben Sie eine Klasse, die alle Daten einer Person verwaltet

    • Name, Vorname, PLZ, Ort, Straße, Telefon
    • Überschreiben Sie die Methode ToString für die Ausgabe der Daten
    • Implementieren Sie Eigenschaften zum Setzen der Daten
      • Schreiben Sie eine einfache Prüfroutine für die PLZ (PLZ > 0 und PLZ < 99999).

     Lösung

    Option Strict On

    Option Explicit On

     

    Module Module1

     

        Sub Main()

     

            Dim myPerson As New Person

            myPerson.Name = "Walzenbach"

            myPerson.Vorname = "Daniel"

            myPerson.Strasse = "Konrad-Zuse-Straße 1"

            myPerson.PLZ = 85716

            myPerson.Ort = "Unterschleissheim"

            myPerson.Telefon = "+49 (0) 89 - 3176 - 0"

     

            Console.WriteLine(myPerson)

     

        End Sub

     

    End Module

     

     

    Public Class Person

     

    #Region "Private Variablen"

     

        Private _Name As String

        Private _Vorname As String

        Private _Strasse As String

        Private _PLZ As Integer

        Private _Ort As String

        Private _Telefon As String

     

    #End Region

     

    #Region "Properties"

     

        Public Property Name() As String

            Get

                Return _Name

            End Get

            Set(ByVal value As String)

                _Name = 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 Strasse() As String

            Get

                Return _Strasse

            End Get

            Set(ByVal value As String)

                _Strasse = value

            End Set

        End Property

     

        Public Property PLZ() As Integer

            Get

                Return _PLZ

            End Get

            Set(ByVal value As Integer)

                ' Überprüfen, ob die PLZ kleiner 0 gesetzt werden soll

                If value < 0 Then

                    Console.WriteLine("Die Postleitzahl darf nicht kleiner als 0 sein.")

                    Return

                End If

     

     

                ' Überprüfen, ob die PLZ größer 99999 gesetzt werden soll

                If value > 99999 Then

                    Console.WriteLine("Die Postleitzahl darf nicht größer als 99999 sein.")

                    Return

                End If

     

                ' alles ok --> PLZ setzen

                _PLZ = value

            End Set

        End Property

     

        Public Property Ort() As String

            Get

                Return _Ort

            End Get

            Set(ByVal value As String)

                _Ort = value

            End Set

        End Property

     

        Public Property Telefon() As String

            Get

                Return _Telefon

            End Get

            Set(ByVal value As String)

                _Telefon = value

            End Set

        End Property

     

    #End Region

     

    #Region "Methoden"

     

        Public Overrides Function ToString() As String

            Return String.Format("Name: {0} {1}{2}Adresse: {3}, {4} {5}{2}Telefon: {6}", _

                _Vorname, _Name, System.Environment.NewLine, _

                _Strasse, _PLZ, _Ort, _

                _Telefon)

        End Function

     

    #End Region

     

    End Class

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

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

    • 0 Comments

    Aufgabe

    Schreiben Sie eine Klasse, die alle Daten einer Person verwaltet

    • Name, Vorname, PLZ, Ort, Straße, Telefon
    • Überschreiben Sie die Methode ToString für die Ausgabe der Daten
    • Implementieren Sie Eigenschaften zum Setzen der Daten
      • Schreiben Sie eine einfache Prüfroutine für die PLZ (PLZ > 0 und PLZ < 99999).

    Die Lösung gibt's im sechsten Teil "Get the BASICs, Visual Basic für Einsteiger und Umsteiger – Interfaces" am 04.12.2006, 16:00-17:00 Uhr.

    Bis bald!

    Daniel

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

    Fragen und Antworten zum fünften Webcast "Get the BASICs, VB.NET für Einsteiger und Umsteiger"

    • 0 Comments
    Q: Soll man aus Geschwindigkeitsgründen einen Parameter ByRef übergeben (da dann kein Kopieren erforderlich ist), obwohl man ihn nicht ändern möchte, oder ist das schlechter Programmierstil?
    A: Sie sollten einen Parameter NUR dann als ByRef übergeben, wenn Sie auf eine Variable innerhalb einer Methode Einfluss nehmen möchten und den geänderten Wert an die aufrufende Methode zurückgeben möchten.
    Die genannte Methode würde ich aus mehreren Gründen nicht empfehlen. Allgemein könnte ich nicht sagen, dass es generell schneller ist Werte ByRef statt ByVal zu übergeben da Referenztypen ohnehin nur ByRef übergeben werden (Siehe in diesem Zusammenhang Argument Passing ByVal and ByRef) und Wertetypen sich auf dem Stack befinden uns somit aller Wahrscheinlichkeit irgendwo im L1 oder L2 Cache. Argumentieren könnte man, dass es bei großen Strukturen schneller sein könnte, diese ByRef zu übergeben. In diesem Fall würde ich allerdings zuerst die Architektur der Anwendung überdenken um sicherzugehen, dass dieser Fall wirklich notwendig ist.
    Entscheidend ist meiner Meinung allerdings, dass Sie sich eine potentielle Fehlerquelle in Ihrem Programm einhandeln.
     
    Q: Sie hatten im Laufe der ersten Demo h1 und h2 (Hunde) definiert. Einmal "as new hund" einmal nicht. Warum? Mir ist nicht klar, wann ich das Schlüsselwort "new" verwenden soll, obwohl ich doch "zwei Sandförmchen backe...".
    A: Das erste Mal (Dim h1 As New Hund) wollte ich eine Instanz der Klasse Hund erstellen. Das zweite Mal (Dim h2 As Hund) ging es mir nur darum eine Variable (einen Platzhalter sozusagen) vom Typ Hund zu erstellen, der ich später eine Instanz vom Typ Hund zuweisen konnte (h2 = h1).
     
    Q: Ist es richtig, dass z.B. bei dem Beispiel "Hund" nur dann zwei unterschiedliche Objekte erzeugt werden, wenn BEIDE Objekte mit New instanziiert werden?
    A: Ja, absolut.
     
    Q: Die Präsentation kann derzeit leider nicht als PDF gespeichert werden. Kann man diese in einer E-Mail zugestellt bekommen?
    A:

    Die Folien können hier heruntergeladen werden.

     
    Schöne Grüße und bis zum fünften Teil!
  • <dw:daniel_walzenbach runat="server" />

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

    • 1 Comments

    Anbei o.g. Folien

    Folien VB.NET für Einsteiger und Umsteiger (Teil 3-10) - Programmausführung steuern (1.25 MB)
    Folien VB.NET für Einsteiger und Umsteiger (Teil 4-10) - Klassen und Strukturen (1.27 MB)
    Folien VB.NET für Einsteiger und Umsteiger (Teil 5-10) - Noch mehr Klassen und Strukturen (1.23 MB)

    Bis morgen zum nächsten Teil VB.NET für Einsteiger und Umsteiger (Teil 6-10) - Interfaces.

    Viele Grüße

    Daniel

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

    Beyond rational thought...

    • 0 Comments
    MSDN Solve Adventskalender 2006

    Seitdem ich bei Microsoft arbeite, wollte ich schon immer einen Artikel mit dieser Überschrift schreiben. Alleine die Tatsache hier zu arbeiten... beyond rational thought! Direkt weiter ging's mit der MGX 2006 in Orlando mit ca. 13000 Microsoft Mitarbeitern und der anschließenden TechReady 2006 in Seattle. Beyond rational thought! Direkter Zugriff auf atemberaubende Technologien (die leider zum größten Teil "internal only" sind...). Beyond rational thought! Ähnlich atemberaubende Eindrücke gab es seitdem noch zuhauf nur heute war's dann doch viel zu viel zu viel ;-)

    MSDN Solve Adventskalender 2006

    Wir haben vor einiger Zeit MSDN Solve – ein Portal welches Antworten für Entwickler gibt – online gestellt. Da inzwischen Weihnachten vor der Tür steht (wie immer überraschend! Geschenke??? Naja… der 23. ist ja ein Samstag…) dachten wir uns, eine kleine Anleitung zu veröffentlichen, wie der geneigte Entwickler seinen eigenen Adventskalender mit ASP.NET erstellen kann. Und jetzt kommt's! Beworben wird mein CodeClip, der "MSDN Solve Adventskalender 2006", derzeit auf http://www.microsoft.com/germany/default.aspx. BEYOND RATIONAL THOUGHT!

    MSDN Solve Adventskalender 2006 auf microsoft.com
     

    In diesem Sinne... Eine besinnliche Adventszeit!

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

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

    • 0 Comments

    Aufgabe

    Programmieren Sie eine Klasse "Rechteck"

    • welche die Höhe und Breite eines Rechtecks (als Integer) verwaltet.
    • Implementieren Sie mehrere Konstruktoren.
      • "Leeres" Rechteck initialisieren
      • "Quadrat" initialisieren
      • "Rechteck" mit Breite und Höhe initialisieren
    • Schreiben Sie Properties für Breite und Höhe.
    • Schreiben Sie eine Methode "Zeichnen" welche das Rechteck mit Console.WriteLine() darstellt.

    Lösung

    Option Strict On

    Option Explicit On

     

    Module Module1

     

        Sub Main()

     

            Dim meinRechteck As New Rechteck

            meinRechteck.Hoehe = 5

            meinRechteck.Breite = 3

     

            ' Rechteck zeichnen

            meinRechteck.Zeichnen()

     

            ' Leerzeichen als Trenner ausgeben

            Console.WriteLine()

            Console.WriteLine()

     

     

            Dim meinZweitesRechteck As New Rechteck(9, 4)

     

            ' Rechteck zeichnen

            meinZweitesRechteck.Zeichnen()

     

            ' Leerzeichen als Trenner ausgeben

            Console.WriteLine()

            Console.WriteLine()

     

     

            Dim meinQuadrat As New Rechteck(5)

     

            ' Quadrat zeichnen

            meinQuadrat.Zeichnen()

     

            ' Leerzeichen als Trenner ausgeben

            Console.WriteLine()

            Console.WriteLine()

     

     

        End Sub

     

        Public Class Rechteck

     

    #Region "Private Variablen"

     

            Private _breite As Integer

            Private _hoehe As Integer

     

    #End Region

     

     

    #Region "Konstruktoren"

     

            Public Sub New()

                _breite = 0

                _hoehe = 0

            End Sub

     

     

            Public Sub New(ByVal Breite As Integer, ByVal Hoehe As Integer)

                _breite = Breite

                _hoehe = Hoehe

            End Sub

     

     

            Public Sub New(ByVal Seitenlaenge As Integer)

                _breite = Seitenlaenge

                _hoehe = Seitenlaenge

            End Sub

     

    #End Region

     

     

    #Region "Properties"

     

            Public Property Breite() As Integer

                Get

                    Return _breite

                End Get

                Set(ByVal value As Integer)

                    If value >= 0 Then

                        ' es düften keine negativen Werte für

                        ' die Breite eingegeben werden

                        _breite = value

                    End If

                End Set

            End Property

     

     

            Public Property Hoehe() As Integer

                Get

                    Return _hoehe

                End Get

                Set(ByVal value As Integer)

                    If value >= 0 Then

                        ' es düften keine negativen Werte für

                        ' die Höhe eingegeben werden

                        _hoehe = value

                    End If

                End Set

            End Property

     

    #End Region

     

     

    #Region "Methoden"

     

            ''' <summary>

            ''' Zeichnet das Rechteck.

            ''' </summary>

            ''' <remarks></remarks>

            Public Sub Zeichnen()

     

                ' Warnung ausgeben, wenn die Kantenlänge 0 ist

                If _hoehe = 0 OrElse _breite = 0 Then

     

                    Console.WriteLine("Ein Rechteck mit einer Kantenlänge von 0 kann nicht gezeichnet werden.")

     

                    ' Rechteck kann nicht gezeichnet werden

                    ' --> die Methode Zeichnen beenden

                    Return

     

                End If

     

                ' Schleife für die Höhe des Rechtecks

                ' _hoehe - 1 --> da die Schleife von 0 zu zählen beginnt

                For j As Integer = 0 To _hoehe - 1

     

                    ' Schleife für die Breite des Rechtecks

                    ' _breite - 1 --> da die Schleife von 0 zu zählen beginnt

                    For i As Integer = 0 To _breite - 1

     

                        If j = 0 OrElse j = _hoehe - 1 OrElse i = 0 OrElse i = _breite - 1 Then

                            ' hier werden die Rände des Rechtecks gezeichnet

                            Console.Write("*")

     

                        Else

                            ' hier das Innere des Rechtecks

                            Console.Write(" ")

     

                        End If

     

                    Next    ' Ende von i

     

                    ' eine neue Zeile für die nächste

                    ' Zeile des Quadrats ausgeben

                    Console.WriteLine()

     

                Next    ' Ende von j

     

            End Sub

     

    #End Region

     

        End Class

     

    End Module

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

    Kostenloser XML Editor von Microsoft

    • 0 Comments

    Seit dem 21.11.2006 ist das XML Notepad 2007 über das Microsoft Download Center verfügbar. Wie es zu der Entwicklung des XML Notepad 2007 kam und warum das Tool für mehrere Jahre nicht verfügbar war beschreibt Chris Lovett in seinem Artikel XML Notepad 2007 Design.

    Das perfekte Tool für alle, die auf der Suche nach einem kleinen, schnellen Programm sind um XML Dateien anzusehen bzw. zu editieren.

    Weitere Infos finden sich auf Microsofts XML Team's WebLog in dem Artikel http://blogs.msdn.com/xmlteam/archive/2006/09/05/741251.aspx.

     

    Viel Spaß! Daniel

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

    Windows Vista Business- oder Windows Vista Enterprise Version für Volumen Lizenzkunden als Download verfügbar!

    • 0 Comments

    Ab sofort können alle Volumen Lizenzkunden die Windows Vista Business- oder Windows Vista Enterprise Version unter http://licensing.microsoft.com downloaden!!!

    Sweet!

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

    Fragen und Antworten zum dritten und vierten Webcast "Get the BASICs, VB.NET für Einsteiger und Umsteiger"

    • 1 Comments
    Q: Wird der String Begruessung durch Begruessung.Replace direkt verändert, oder muss man Begruessung=Begruessung.Replace schreiben.
    A: Sie müssen Begruessung=Begruessung.Replace schreiben. Wie aus dem Bild ersichtlich ist handelt es sich bei Replace um eine Funktion die einen (neuen) String zurückgibt.
    String.Replace
     
    Q: Was ist der Unterschied zwischen IF und IIF?
    A:

    Mit If...Then...Else können Sie eine oder mehrere Bedingungen testen und ein oder mehrere Befehle je nach Bedingung ausführen.
    If..Then..Else

    IIF gibt, je nach Auswertung eines Ausdrucks, eins von zwei Objekten zurück. Beachten Sie in diesem Zusammenhang, dass Sie das Ergebnis von IIF in den Typ umwandeln (casten) müssen den Sie verwenden wollen (Im Beispiel wird das Ergebnis von IIF vom Typ Object in einen String umgewandelt).
    IIF

     
    Q: Ist Select...Case in VB.NET dasselbe wie switch case in C#?
    A: Ja, obwohl es Unterschiede zwischen den zwei Befehlen in Visual Basic .NET und C# gibt.
    Ein guter Vergleich von Schlüsselworten in den verschiedenen Sprachen (Visual Basic, Visual J#, C++, C#, JScript, Visual FoxPro) bietet der Artikel Keywords Compared in Different Languages.
     
    Q: Sind mehrere Anweisungen zwischen den Case Blöcken zulässig und dürfen auch Strings im Case ausgewertet werden?
    A:

    Ja.

     
    Q: Wie lange ist n als integer definiert.
    A: Der Typ Integer ist von -2147483648 bis 2147483647 definiert. Der Wertebereich eines Typen kann MinValue und MaxValue abgefragt werden.
    Der Wertebereich eines Typen kann MinValue und MaxValue abgefragt werden
     
    Q: Kann man nicht auch Do While...Loop schreiben?
    A:

    Ja. Das Do...Loop Statement ist wie folgt definiert (Do...Loop-Anweisung (Visual Basic)):

    Do { While | Until } condition

        statements ]

        [ Exit Do ]

        statements ]

    Loop

    -or-

    Do

        statements ]

        [ Exit Do ]

        statements ]

    Loop { While | Until } condition

     
    Q: Gibt es eine Möglichkeit, aus einer versehentlich programmierten Endlosschleife abzubrechen?
    A: Nein. Sonst wäre es keine Endlosschleife mehr ;-)
     
    Q: Wozu macht die Deklarierung eines privaten Konstruktors eigentlich Sinn? Was für ein Vorteil hätte man davon? Würde man das dann einsetzen, wenn man innerhalb der Klasse Person eine "New Person" definieren will?
    A: Ein privater Default Konstruktor „Private Sub New()“ kann beispielweise zusammen mit einem weiteren öffentlichen Konstruktor „Public Sub New(ByVal Alter As Integer)“ deklariert werden, wenn sichergestellt werden soll, dass nur der öffentliche Konstruktor aufgerufen werden darf.
     
    Schöne Grüße und bis zum fünften Teil!
  • <dw:daniel_walzenbach runat="server" />

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

    • 0 Comments

    Aufgabe

    Programmieren Sie eine Klasse "Rechteck" in der die Breite und Höhe des Rechtecks als Integer festgehalten werden.

    Die Klasse soll die folgenden Konstruktoren implementieren:

    • "Leeres" Rechteck initialisieren
    • "Quadrat" initialisieren
    • "Rechteck" mit Breite und Höhe initialisieren

    Schreiben Sie Properties für Breite und Höhe

    Schreiben Sie eine Methode "Zeichnen" welche das Rechteck mit Console.WriteLine() auf dem Bildschirm ausgibt.

    Die Lösung gibt's im fünften Teil "Get the BASICs, Visual Basic für Einsteiger und Umsteiger – Noch mehr Klassen und Strukturen" am 27.11.2006, 16:00-17:00 Uhr.

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

    Übungsaufgaben und Lösungen zu „Get the BASICs, Visual Basic für Einsteiger und Umsteiger“, Teil 1-3

    • 1 Comments

    "Get the BASICs, Visual Basic für Einsteiger und Umsteiger", Teil 1

    Aufgabe

    Schreiben Sie ein Programm, das mit den Zeichen + I und ein kleines Fenster ausgibt.

    Verwenden Sie die Befehle Console.WriteLine() und/oder Console.Write()

    +--------------------+

    I                    I

    I  VB.NET ist cool!  I

    I                    I

    +--------------------+

    Lösung

    Option Strict On

    Option Explicit On

     

    Module Module1

     

        Sub Main()

     

            ' VB.NET ist cool! in einer Box auf der Console ausgeben

            System.Console.WriteLine("+--------------------+")

            System.Console.WriteLine("+                    +")

            System.Console.Write("+  ")

            System.Console.Write("VB.NET ist cool!")

            System.Console.WriteLine("  +")

            System.Console.WriteLine("+                    +")

            System.Console.WriteLine("+--------------------+")

     

        End Sub

     

    End Module

    "Get the BASICs, Visual Basic für Einsteiger und Umsteiger", Teil 2

    Aufgabe

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

    Verwenden Sie die Befehle 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 Radius As Double

            Dim Kreisinhalt As Double

     

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

            Radius = Convert.ToDouble(Console.ReadLine)

     

            ' Kreisinhalt berechnen

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

     

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

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

     

        End Sub

     

    End Module

    "Get the BASICs, Visual Basic für Einsteiger und Umsteiger", Teil 3

    Aufgabe

    Schreiben Sie ein Programm welches mit Hilfe einer Schleife

    • die Zahlen 1, 4, 7, 10, 13 und 16 ausgibt.
    • die Quadratzahlen von 0 bis 20, jedoch nicht die Quadratzahl von 10, zeilenweise ausgibt
    • einen halben Tannenbaum ausgibt
      *
      **
      ***
      ****
      *****
      ******
      *******
      ********
      *********
      **********
      ***********
      ***
      ***
      ***

    Lösung

    Option Strict On

    Option Explicit On

     

    Module Module1

     

        Sub Main()

     

     

            ' die erste Aufgabe

            ' Schreiben Sie ein Programm welches mit Hilfe einer Schleife

            ' die Zahlen 1, 4, 7, 10, 13 und 16 ausgibt.

            Console.WriteLine("Aufgabe 1")

            Console.WriteLine("------------------------------------------")

     

            ' die Lösung der ersten Aufgabe

            For i As Integer = 1 To 16 Step 3

     

                Console.Write(i & " ")

     

            Next

     

            ' zwei leere Zeilen ausgeben

            Console.WriteLine()

            Console.WriteLine()

     

     

            ' die zweite Aufgabe

            ' Schreiben Sie ein Programm welches mit Hilfe einer Schleife

            ' die Quadratzahlen von 0 bis 20 zeilenweise ausgibt

            ' Wichtig! Die Quadratzahl der Zahl 10 soll NICHT ausgegeben werden!

            Console.WriteLine("Aufgabe 2")

            Console.WriteLine("------------------------------------------")

     

            ' die Lösung der zweiten Aufgabe

            For i As Integer = 0 To 20

     

                If i <> 10 Then

     

                    Console.WriteLine(" Die Quadratzahl von {0} ist {1}.", i, Math.Pow(i, 2))

     

                End If

     

            Next

     

            ' zwei leere Zeilen ausgeben

            Console.WriteLine()

            Console.WriteLine()

     

     

            ' die dritte Aufgabe

            ' Schreiben Sie ein Programm welches mit Hilfe einer Schleife

            ' einen halben Tannenbaum ausgibt

            Console.WriteLine("Aufgabe 3")

            Console.WriteLine("------------------------------------------")

     

     

            For i As Integer = 0 To 13

     

                For j As Integer = 0 To 13

     

                    If i < 11 Then

                        Console.Write("*")

     

                        If j = i Then

                            Console.WriteLine()

                            Exit For

                        End If

     

                    Else

                        Console.WriteLine("***")

                        Exit For

     

                    End If

     

                Next    ' j

     

            Next    ' i

     

        End Sub

     

    End Module

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

    "Tech Ed Europe 2006 Compact" aka "Virtual Tech Ed Europe 2006"

    • 0 Comments

    Holla! Mein Kollege Oliver Scheer und ich waren vorletzte Woche auf der Tech Ed Europe: Developers. Viele interessante Sessions, Hand-on Labs, Chalk-&-Talks, Sprecher, MVPs, Kollegen, ca. 3750 Entwickler und und und sowie Oliver, ich und eine Kamera mittendrin ;-)

    Anbei einige Eindrücke aus fünf aufregenden Tagen:


    Video: TechEd 2006 Tag 1 Low Res
    TechEd 2006 Tag 1 Low Res
    TechEd Tag 1: Einführung, Jürgen Pfeiffer, Christian Weyer, Dominick Baier, Ingo Rammer, uvm.


    Video: TechEd 2006-Ruprecht Dröge
    Ruprecht Dröge, SQL Server MVP und Geschäftsführer von BeConstructed, spricht live von der TechEd 2006 in Barcelona. Thema: Top 3 Features des SQL Server 2005 aus der Sicht eines Entwicklers.


    Video: TechED 2006-Brian Randell
    Brian Randell spricht über Visual Studio 2005 Visual Studio Team Edition Role für Database Professionals.


    Video: TechEd 2006-Paul S. Randal
    Paul S. Randal, Lead Program Manager des Microsoft SQL Server Storage Teams, spricht über die Ursachen von Datenbankfragmentierung, deren Folgen und wie Fragmentierung von Datenbanken verhindert werden kann.


    Video: TechEd 2006-KanwaljeetSingla
    Kanwaljeet Singla ist ein Software Engineer des IIS Teams und zeigt die Vorteile des IIS 7 für Web-Entwickler auf.


    Video: TechEd 2006-Clemens Vaster
    Der Program Manger des Connected Frameworks, Clemens Vasters, spricht über die Anforderungen an angehende Softwarearchitekten.


    Video: TechEd 2006-Richard Campbell
    Richard Campbell, einer der Hosts von .NET Rocks und .NET Rocks TV, über die seiner Meinung nach heißesten Technologien für .NET Entwickler.

    Weitere Videos, unter anderem mit Anders Hejlsberg, Scott Guthrie, Paul Andrew und noch viele andere finden sich auf "the Virtual Side".

    Schöne Grüße! Daniel

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

    Resource für den heutigen Webcast: "ASP.NET Server-Controls (Teil 5-10) - Rendered Controls, Events"

    • 1 Comments

    Für den Webcast um 16:00 habe ich den Control Execution Lifecycle grafisch aufbereitet. Als Referenz während des Webcasts sehr zu empfehlen. Das englische Original in der MSDN Library findet sich hier.

    Bis später!

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

    Microsoft Expression Web Designer

    • 1 Comments

    ... ist das neue professionelle Werkzeug für Webdesigner und Webentwickler, um 100% standardkonforme Websites auf Basis aktueller Standards wie CSS, XHTML und XML zu gestalten und zu pflegen.

    Expression Web wurde von Grund auf dafür entwickelt, die Möglichkeiten modernen CSS-Layouts auszureizen. Leistungsfähige Werkzeuge helfen Webdesignern dabei, ihre Vorstellungen standardkonform umzusetzen und CSS-Attribute intuitiv und komfortabel zu definieren. In Expression Web können Webdesigner und –entwickler jederzeit zwischen Code-Editor und grafischem Designmodus (WYSIWYG) wechseln, oder beide Ansichten parallel verwenden. Änderungen am Code und am Design werden sofort übernommen. Zur Entwicklung dynamischer Websites ist Expression Web optimal auf moderne leistungsfähige Servertechnologien wie ASP.NET 2.0 abgestimmt.

    Das Programm besticht durch seinen professionellen Funktionsumfang und vorbildliche Umsetzung aktueller Webstandards. Dennoch ist Expression Web einfach und intuitiv zu bedienen und unterstützt die Anwender durch hilfreiche Funktionen, die ihnen die Arbeit erleichtern. Daher ist es nicht nur für professionelle Webdesigner und –entwickler geeignet, sondern auch das optimale Webdesignprogramm für semiprofessionelle Anwender und Privatpersonen.

    Weitere Infos und Download: http://go.microsoft.com/?linkid=5690658.

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

    Fragen und Antworten zum zweiten Webcast "Get the BASICs, VB.NET für Einsteiger und Umsteiger"

    • 0 Comments
    Da ich nach dem letzten Webcast direkt an den Flughafen musste und leider keine Zeit hatte Fragen zu beantworten, anbei die gestellten Fragen und Antworten:
     
    Q: Kann ich auch "System.Console" importieren?
    A: In VB.NET ja, in C# nicht.
     
    Q: Ist der Stack ein für das Programm reservierter Speicherbereich?
    A: Ja.
     
    Q: Wer legt die Stack-Größe fest? VB oder ich als Programmierer selbst?
    A: Die CLR legt die Größe des Stacks fest. Meines Wissens nach können Sie die Größe des Stacks nur mit Hilfe des Programms EDITBIN.exe ändern.
     
    Q: Wenn ich eine Variable deklariere ist der Wert der Variable ohne Initialisierung 0 oder Nothing (Nothing ist das Äquivalent von NULL in C#)?
    A:

    Die Antwort auf diese Frage hängt davon ab, ob es sich bei der deklarierten Variablen um einen Wertetyp oder um einen Referenztyp handelt.
    Wertetypen werden bei der Deklaration mit einem Defaultwert initialisiert (bsp. 0 bei numerischen Typen, False für Boolean, etc.) und können daraufhin direkt verwendet werden. Referenztypen hingegen müssen, im Unterschied zu Wertetypen, bevor sie das erste Mal verwendet werden, mit einem Wert initialisiert werden.

    Public Class Kunde

     

        Public Vorname As String

        Public Nachname As String

     

    End Class

     

    Public Shared Sub main()

     

        ' Referenztype deklarieren

        Dim myKunde As Kunde

     

        ' Wertetyp deklarieren

        Dim Ergebnis As Integer

     

        System.Console.WriteLine(Ergebnis)

     

        ' in der nächsten Zeile passiert der Fehler da

        ' myKunde vor dem Zugriff initialisiert werden muss

        System.Console.WriteLine(myKunde.Vorname)

     

    End Sub

     
    Q: Wie funktioniert das "casten"?
    A: Unter „casten“ wird das Umwandeln von einem Typ in einen anderen verstanden. Beispielsweise muss eine Zeichenkettenfolge in einen numerischen Typ umgewandelt werden wenn zu diesem Wert ein weiterer Wert addiert werden soll.

    Public Shared Sub main()

     

        Dim Summand1 As Integer

        Dim Summand2 As Integer

        Dim Summe As Integer

     

        ' Den ersten Summanden einlesen

        Console.Write("Bitte geben Sie den ersten Summanden ein: ")

        Summand1 = Convert.ToInt32(Console.ReadLine())

     

        ' Den zweiten Summanden einlesen

        Console.Write("Bitte geben Sie den zweiten Summanden ein: ")

        Summand2 = Convert.ToInt32(Console.ReadLine())

     

        ' Die Summe aus dem ersten und dem zweiten Summanden bilden

        Summe = Summand1 + Summand2

     

        ' Das Ergebnis ausgeben

        Console.WriteLine("{0} + {1} = {2}", Summand1, Summand2, Summe)

     

    End Sub
     
    Q: Welche Vorschriften bestehen bei der Vergabe von Variablennamen?
    A: Auf http://msdn2.microsoft.com/en-us/library/ms229002.aspx findet sich eine gute Abhandlung zu diesem Thema.
     
    Q: Kann ich einer Variablen den Wert einer anderen Variablen zuweisen? Beispielsweise dim i as integer = j. Funktioniert das so?
    A: Auch hier muss unterschieden werden ob es sich um einen Wertetyp oder um einen Referenztyp handelt.
    Wertetypen „leben“ auf dem Stack, der Wert einer Wertetyp-Variablen wird also direkt auf dem Stack gespeichert.
    Referenztypen hingegen werden sowohl auf dem Stack als auch im Heap gespeichert und zwar insofern, als dass auf dem Stack die Speicheradresse des Inhaltes der Variable im Heap gespeichert wird. Die Adresse auf dem Stack „zeigt“ demnach auf den Speicherbereich in dem der Wert der Variable gespeichert wird.

    Option Explicit On

    Option Strict On

     

    Imports System

     

    Public Class Test

     

        Public Shared Sub main()

     

            ' Zwei WerteTyp-Variablen deklarieren

            Dim Ergebnis1 As Integer

            Dim Ergebnis2 As Integer

     

            Ergebnis1 = 5

     

            ' Der Wert von Ergebnis1 wird in die Variable Ergebnis2 kopiert.

            ' Beide Variablen enthalten daraufhin den Wert 5.

            Ergebnis2 = Ergebnis1

     

     

     

     

            ' Zwei Referenztypen-Variablen deklarieren

            Dim Kunde1 As New Kunde

            Dim Kunde2 As Kunde

     

            ' Die Speicheradresse, die in Kunde1 gespeichert ist,

            ' in der Variablen Kunde2 speichern.

            ' Beide Variablen "zeigen" daraufhin auf den gleichen

            ' Speicherbereich. => Auch Kunde2.Vorname = "Daniel"

            Kunde1.Vorname = "Daniel"

            Kunde2 = Kunde1

     

        End Sub

     

        Public Class Kunde

     

            Public Vorname As String

            Public Nachname As String

     

        End Class

     

    End Class
     
    Q: Wie lang kann der Name einer Variablen sein?
    A: Maximal 1023 Zeichen.
     
    Viel Erfolg beim Programmieren!
  • <dw:daniel_walzenbach runat="server" />

    Profiling in .NET

    • 0 Comments

    Kleiner Trick um rudimentäres Profiling .NET Anwendungen zu betreiben. Entweder die Klasse System.Diagnostics.Stopwatch verwenden oder TickCounts mit System.Environment.TickCount zählen:

    Option Explicit On

    Option Strict On

     

    Public Class Test

     

        Public Shared Sub main()

     

            Dim Stoppuhr As New System.Diagnostics.Stopwatch

     

            Stoppuhr.Start()

            System.Threading.Thread.Sleep(2000)

            Stoppuhr.Stop()

     

            System.Console.WriteLine("Seit Begin der Messung sind {0} Millisekunden vergangen.", Stoppuhr.ElapsedMilliseconds.ToString)

     

            Dim TickCount As Long = System.Environment.TickCount

            Dim VergangeneZeit As Long

            System.Threading.Thread.Sleep(2000)

            VergangeneZeit = System.Environment.TickCount - TickCount

            System.Console.WriteLine("Seit Begin der Messung sind {0} Millisekunden vergangen.", VergangeneZeit.ToString)

     

        End Sub

     

    End Class

    In diesem Sinne… Schöne Grüße.

    Daniel

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

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

    • 0 Comments

    Nachdem ich inzwischen einen FTP habe ;-) anbei die Folien für die ersten zwei Webcasts der Serie "Get the Basics, VB.NET für Einsteiger und Umsteiger":

    Folien VB.NET für Einsteiger und Umsteiger (Teil 1-10) - Einführung in VB.NET (1.19 MB)
    Folien VB.NET für Einsteiger und Umsteiger (Teil 2-10) - Datentypen, Variablen, Namensräume, Ausdrücke und Operatoren (1.25 MB)

    Bis morgen zum dritten Teil VB.NET für Einsteiger und Umsteiger (Teil 3-10) - Programmausführung steuern . Schöne Grüße

    Daniel

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

    Virtual Hard Disks von Microsoft (Exchange 2007, SQL Server 2005, ISA Server 2006, Windows Server 2003 R2, ...) als kostenloser Download

    • 2 Comments

    Fein, fein, fein! Auf http://www.microsoft.com/technet/try/vhd/default.mspx stellt Microsoft diverse VHDs (Exchange 2007, SQL Server 2005, ISA Server 2006, Windows Server 2003 R2, ...) mit vorkonfigurierten Windows Server Produkten als kostenloser Download zur Verfügung.

    Super Sache da es dieses Angebot ermöglicht Software zu testen OHNE Zeit für die Installation aufwenden zu müssen :-)

    Los geht's!

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

    Eindrücke von der TechEd Europe 2006

    • 2 Comments

    Wow! Diese Woche ging schnell rum. Nicht, dass ich mich sonst langweilen würde aber diesmal war es extrem… Montagabends noch der zweite Webcast der Reihe „Get the BASICs, Visual Basic .NET für Einsteiger und Umsteiger“ und im Anschluss direkt in den Flieger nach Barcelona auf die TechEd Europe 2006.
    Anbei einige Bilder exzellenter Sessions die ich besuchen konnte während ich nicht in dem „Ask the Experts“ Bereich gearbeitet habe. Leider konnte Nikhil Kothari dieses Jahr aufgrund einer Lebensmittelvergiftung nicht auf der TechEd sprechen :-(

    Anders Hejlsberg
    Anders Hejlsberg bei seinem Vortrag "Using the .NET Language Integrated Query (LINQ) Framework with Relational Data".
    Bob Beauchemin
    Bob Beauchemin spricht über "Coding SQL Server 2005: Plan Guides and Plan Forcing". Unter vielen excellenten Vorträgen dieses Jahrs meiner Meinung nach mit einer der Besten.
    Brian Randell
    Brian Randell "Introducing Visual Studio (VS) 2005 Team Edition for Database Professionals".
    Fritz Onion
    Fritz Onion zeigt "10 Undiscovered Features of ASP.NET 2.0".
    Jay Schmelzer
    Jay Schmelzer, Group Programm Manager VB.NET, über "VB-Now, VB-Next".
    Kimberly Tripp
    Kimberly Tripp während ihres excellenten Vortrags "SQL Server 2005: Optimizing Procedural Code". Kimberly stand auch dieses Jahr wieder ganz oben auf der Liste der beliebtesten Sprecher.
    Paul S. Randal
    Paul S. Randal, Lead Program Manager im Microsoft SQL Server Storage Engine Team, erklärt die Storage Engine in seiner Session "A day in the Life of a Query - What happens when when you thye GO?".
    Wayne Smith
    Wayne Smith spricht über "Developing and Designing Standard Based Web Applications with Expression Web Designer".
    Mein Kollege Dirk Primbs im Gespräch mit einem Teilnehmer
    Mein Kollege Dirk Primbs im Gespräch mit einem Teilnehmer der TechEd.
    Kostja und Oliver
    Mein ehemaliger Kollege Constantin Klein (Freudenberg) neben meinem derzeitigen Kollegen Oliver Scheer (Microsoft).

    Dienstags waren wir mit einigen Journalisten zu Abend essen und mittwochs hatten wir das Glück abends noch etwas Zeit in der Innenstadt von Barcelona zu verbringen. Zusätzlich auch einige Bilder unserer Unterkunft im Retro Style ;-)

    Bodega la Palma
    Im Bodega la Palma in der Innenstadt von Barcelona gibt es die leckersten Tappas.
    Spanische Delikatessen
    Einer von vielen Marktständen mit den feinsten spanischen Spezialitäten.
    Obststand
    Früchte in jeder nur erdenklichen Auswahl.
    Schokolade
    Schokolade in allen Farben und Formen. Lecker, lecker, lecker :-))
    VINCCI CONDAL MAR
    Das VINCCI CONDAL MAR. Wahrscheinlich das coolste Hotel in Barcelona. Retro pur!
    VINCCI CONDAL MAR
    Der Flur war schon ziemlich stylisch...
    Zimmer im VINCCI CONDAL MAR
    ... und die Zimmer standen in nichts nach ;-)
    Zimmer im VINCCI CONDAL MAR
    ohne Worte...
    Zimmer im VINCCI CONDAL MAR
    Wie stylisch ist das?

    Bis zur nächsten TechEd! Schöne Grüße von Daniel

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

    Photosynth Technology Preview

    • 0 Comments

    Endlich ist es soweit… Photosynth Technology Previewist Live und auf http://labs.live.com/photosynth öffentlich verfügbar. Zur Ansicht in der Tech Preview stehen die Piazza San Marco in Venedig, Bilder aus dem Gary Faigin Studio, die Grassi Lakes in Canada und die Piazza San Pietro in Rom.

    Try it

    Viel Spaß

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

    Tech Ed 2006 Termine

    • 0 Comments

    Ich bin nächste Woche auf der Tech Ed 2006 in Barcelona. Neben hoffentlich vielen interessanten Vorträgen welche ich mir ansehen möchte arbeite ich Dienstag und Freitag in dem „Ask the Experts“ (ATE) Bereich.

    Die genauen Termine sind:

    Dienstag, 07.11. von 10:45 – 13:30 ATE Info Desk
    Dienstag, 07.11. von 13:30 – 16:15 ASP.NET
    Freitag, 10.11. von 13:00 – 15:00 ASP.NET

    Wer also Lust hat sich über aktuelle Themen zu unterhalten ist herzlich eingeladen. Wir sehen uns Spanien :-)

    Daniel

    P.S. Neben vielen hochkarätigen Sprechern sind die Sessions von Nikhil Kothari (ASP.NET) und Kimberly Tripp (SQL Server) auf jeden Fall einen Besuch wert!

Page 10 of 12 (284 items) «89101112