Aufgabe
Programmieren Sie eine Klasse "Rechteck"
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()
Dim meinZweitesRechteck As New Rechteck(9, 4)
meinZweitesRechteck.Zeichnen()
Dim meinQuadrat As New Rechteck(5)
' Quadrat zeichnen
meinQuadrat.Zeichnen()
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
Public Sub New(ByVal Breite As Integer, ByVal Hoehe As Integer)
_breite = Breite
_hoehe = Hoehe
Public Sub New(ByVal Seitenlaenge As Integer)
_breite = Seitenlaenge
_hoehe = Seitenlaenge
#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
Return _hoehe
' die Höhe eingegeben werden
_hoehe = value
#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
' 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(" ")
Next ' Ende von i
' eine neue Zeile für die nächste
' Zeile des Quadrats ausgeben
Next ' Ende von j
End Class
End Module
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
Ab sofort können alle Volumen Lizenzkunden die Windows Vista Business- oder Windows Vista Enterprise Version unter http://licensing.microsoft.com downloaden!!!
Sweet!
Mit If...Then...Else können Sie eine oder mehrere Bedingungen testen und ein oder mehrere Befehle je nach Bedingung ausführen.
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).
Ja.
Ja. Das Do...Loop Statement ist wie folgt definiert (Do...Loop-Anweisung (Visual Basic)):
Do { While | Until } condition
[ statements ]
[ Exit Do ]
Loop
-or-
Do
Loop { While | Until } condition
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:
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.
"Get the BASICs, Visual Basic für Einsteiger und Umsteiger", Teil 1
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
' 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(" +")
"Get the BASICs, Visual Basic für Einsteiger und Umsteiger", Teil 2
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².
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)
"Get the BASICs, Visual Basic für Einsteiger und Umsteiger", Teil 3
Schreiben Sie ein Programm welches mit Hilfe einer Schleife
' 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
' die zweite Aufgabe
' die Quadratzahlen von 0 bis 20 zeilenweise ausgibt
' Wichtig! Die Quadratzahl der Zahl 10 soll NICHT ausgegeben werden!
Console.WriteLine("Aufgabe 2")
' 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))
' die dritte Aufgabe
' einen halben Tannenbaum ausgibt
Console.WriteLine("Aufgabe 3")
For i As Integer = 0 To 13
For j As Integer = 0 To 13
If i < 11 Then
If j = i Then
Exit For
Console.WriteLine("***")
Next ' j
Next ' i
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 ResTechEd 2006 Tag 1 Low ResTechEd 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
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!
... 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.
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
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)
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)
Imports System
Public Class Test
' 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
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:
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
VergangeneZeit = System.Environment.TickCount - TickCount
System.Console.WriteLine("Seit Begin der Messung sind {0} Millisekunden vergangen.", VergangeneZeit.ToString)
In diesem Sinne… Schöne Grüße.
Daniel
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
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!
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 :-(
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 ;-)
Bis zur nächsten TechEd! Schöne Grüße von Daniel
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.
Viel Spaß
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 DeskDienstag, 07.11. von 13:30 – 16:15 ASP.NETFreitag, 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 :-)
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!
Passend zu meiner Webcastserie "Get the BASICs, VB.NET für Einsteiger und Umsteiger", 101 kleine Videos zwischen 5 und 10 Minuten zu den verschiedensten Themen rund um VB.NET.
http://msdn2.microsoft.com/en-us/vbasic/ms789057.aspx
Ideal, wenn die Tage wieder kürzer werden ;-)
ASP.NET Quickstart Tutorial
http://www.asp.net/QuickStart/aspnet/doc/whatsnew.aspx
Virtual Labs
http://msdn.microsoft.com/virtuallabs/asp2/http://msdn.microsoft.com/virtuallabs/fritzonion/
“How Do I” Video Series
ASP.NET HOW DO I Video Series: Caching (Part 1)ASP.NET HOW DO I Video Series: Caching (Part 2)ASP.NET HOW DO I Video Series: Create a Full-Featured Customer Login PortalASP.NET HOW DO I Video Series: DataASP.NET HOW DO I Video Series: Form Building for a "Contact Us" PageASP.NET HOW DO I Video Series: LocalizationASP.NET HOW DO I Video Series: Master Pages and Site NavigationASP.NET HOW DO I Video Series: Membership and RolesASP.NET HOW DO I Video Series: Profiles and ThemesASP.NET HOW DO I Video Series: Tips and TricksASP.NET HOW DO I Video Series: Web Parts and Personalization
How-To MSDN Articles
How To: Configure the Machine Key in ASP.NET 2.0How To: Connect to SQL Server Using SQL Authentication in ASP.NET 2.0How To: Connect to SQL Server Using Windows Authentication in ASP.NET 2.0How To: Create a Service Account for an ASP.NET 2.0 ApplicationHow To: Encrypt Configuration Sections in ASP.NET 2.0 Using DPAPIHow To: Encrypt Configuration Sections in ASP.NET 2.0 Using RSAHow To: Instrument ASP.NET 2.0 Applications for SecurityHow To: Improve Security When Hosting Multiple Applications in ASP.NET 2.0How To: Perform a Security Deployment Review for ASP.NET 2.0How To: Prevent Cross-Site Scripting in ASP.NETHow To: Protect Forms Authentication in ASP.NET 2.0How To: Protect From Injection Attacks in ASP.NETHow To: Protect From SQL Injection in ASP.NETHow To: Use ADAM for Roles in ASP.NET 2.0How To: Use Authorization Manager (AzMan) with ASP.NET 2.0How To: Use Code Access Security in ASP.NET 2.0How To: Use Forms Authentication with Active Directory in ASP.NET 2.0How To: Use Forms Authentication with Active Directory in Multiple Domains in ASP.NET 2.0How To: Use Forms Authentication with SQL Server in ASP.NET 2.0How To: Use Health Monitoring in ASP.NET 2.0How To: Use Impersonation and Delegation in ASP.NET 2.0How To: Use Membership in ASP.NET 2.0How To: Use the Network Service Account to Access Resources in ASP.NETHow To: Use Protocol Transition and Constrained Delegation in ASP.NET 2.0How To: Use Regular Expressions to Constrain Input in ASP.NETHow To: Use Role Manager in ASP.NET 2.0How To: Use Windows Authentication in ASP.NET 2.0
Authentication and Authorization
How To: Connect to SQL Server Using SQL Authentication in ASP.NET 2.0How To: Connect to SQL Server Using Windows Authentication in ASP.NET 2.0How To: Create GenericPrincipal Objects with Forms AuthenticationHow To: Protect Forms Authentication in ASP.NET 2.0How To: Use Authorization Manager (AzMan) with ASP.NET 2.0How To: Use Forms Authentication with Active DirectoryHow To: Use Forms Authentication with Active Directory in ASP.NET 2.0How To: Use Forms Authentication with Active Directory in Multiple Domains in ASP.NET 2.0How To: Use Forms Authentication with SQL Server 2000How To: Use Forms Authentication with SQL Server in ASP.NET 2.0How To: Use Windows Authentication in ASP.NET 2.0
Code Access Security
How To: Create a Custom Encryption PermissionHow To: Use Code Access Security in ASP.NET 2.0How To: Use Code Access Security Policy to Constrain an Assembly
Code Review
How To: Perform a Security Code Review for Managed Code (Baseline Activity)
Communications Security
How To: Call a Web Service Using Client Certificates from ASP.NETHow To: Call a Web Service Using SSLHow To: Set Up SSL on a Web ServerHow To: Set Up Client CertificatesHow To: Use IPSec for Filtering Ports and AuthenticationHow To: Use IPSec to Provide Secure Communication Between Two ServersHow To: Use SSL to Secure Communication with SQL Server 2000
Configuration
How To: Create a Custom Account To Run ASP.NETHow To: Encrypt Configuration Sections in ASP.NET 2.0 Using DPAPIHow To: Encrypt Configuration Sections in ASP.NET 2.0 Using RSA
Cryptography
How To: Create a DPAPI LibraryHow To: Create an Encryption LibraryHow To: Store an Encrypted Connection String in the RegistryHow To: Use DPAPI (Machine Store) from ASP.NETHow To: Use DPAPI (User Store) from ASP.NET with Enterprise Services
Deployment Review
How To: Perform a Security Deployment Review for ASP.NET 2.0
Impersonation and Delegation
How To: Implement Kerberos Delegation for Windows 2000How To: Use Impersonation and Delegation in ASP.NET 2.0
Input and Data Validation
How To: Prevent Cross-Site Scripting in ASP.NETHow To: Protect From Injection Attacks in ASP.NETHow To: Protect From SQL Injection in ASP.NETHow To: Use Regular Expressions to Constrain Input in ASP.NET
Patching and Updating
How To: Implement Patch Management
SQL Server 2000
How To: Connect to SQL Server Using SQL Authentication in ASP.NET 2.0How To: Connect to SQL Server Using Windows Authentication in ASP.NET 2.0How To: Protect From SQL Injection in ASP.NETHow To: Use Forms Authentication with SQL Server in ASP.NET 2.0How To: Use SSL to Secure Communication with SQL Server 2000
Threat Modeling
How To: Create a Threat Model for a Web Application at Design Time
ATLAS (ASP.NET AJAX)
Quickstart Developer Tasks
http://ajax.asp.net/
“How Do I?” Videos
http://ajax.asp.net/default.aspx?tabid=47&subtabid=478#howdoi
Preview Videos
http://ajax.asp.net/default.aspx?tabid=47&subtabid=478#atlas
Samples
http://go.microsoft.com/fwlink/?LinkId=62605
Control Toolkit
http://atlas.asp.net/default.aspx?tabid=47&subtabid=477
Was für einen besseren Beweis gibt es dafür, dass Programmieren Spaß macht, als die Halloweenartikel auf der amerikanischen „Coding4Fun“-Seite. Im Angebot wären...
System.Console.WriteLine _("Hallo Welt!")