.NET Blog   ·   .NET Casts   ·   .NET GUI Foren   ·   .NET BlogBook   ·   WPF Blogger   ·   visual studio one   ·   ASP.NET professional

  • ACHTUNG - NEUES BLOG

    Ab sofort steht unter http://devtyr.norberteder.com mein neues Blog zur Verfügung. Dieses Blog wird nicht weiter betreut, bleibt aber erhalten. Neue Eintr%auml;ge erfolgen nur mehr im neuen Blog. Kommentare werden ebenfalls nicht mehr behandelt. Wer weiterhin meinen Einträgen und Aktivitäten folgen möchte, möge bitte RSS-Feeds, Verlinkungen etc. an die neue Location anpassen.
Download .NET Essentials Installer
Trickkiste

Umfrage zum .NET BlogBook

29.10.07 - Blog-Intern, .NET, Grundlagen, Base Framework, WPF, ASP.NET, Mobile Devices, Datenverwaltung, Visual Studio, Allerlei
Beitrag von Norbert Eder
 Auf .NET Casts wurde von uns soeben eine Umfrage gestartet. Wir möchten wissen, ob eine Print-Ausgabe des BlogBooks für unsere Leser von Interesse ist.

Wir bitten um eine zahlreiche Teilnahme (einfach auf .NET Casts einen kurzen Kommentar mit eurer Meinung hinterlassen), da wir doch in der letzten Zeit einige Anfragen bekommen haben und wir nun ausloten möchten, ob so ein Schritt von unseren Lesern angenommen werden würde.

  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


LINQ: Daten aus Textdateien mittels LINQ in einer DataGridView anzeigen

29.10.07 - .NET, Grundlagen, Base Framework, Datenverwaltung
Beitrag von Norbert Eder
 Mit LINQ ist nicht immer nur LINQ to SQL gemeint. Es lassen sich auch ganz andere Dinge damit erledigen. In diesem Beitrag wird erklärt, wie wie Hilfe von LINQ Daten aus einer Textdatei mit komma-separierten Trennzeichen (CVS beispielsweise) in einem DataGridView zur Anzeige gebracht werden können. Um dies zu erreichen, muss unter anderem das Schlüsselwort yield verwendet werden. Wir benötigen nämlich die Möglichkeit, durch die Daten der angegebenen Textdatei zu iterieren - zeilenweise. Hierfür wird folgende Methode verwendet:
private IEnumerable<string[]> LoadFile(string delim, StreamReader sr)
{
    while (sr.Peek() != -1)
        yield return sr.ReadLine().Split(delim.ToCharArray());
}

Dem zugrunde liegt die Datei Adressen.txt, die folgende Daten zur Verfügung stellt:
Norbert;Eder;Irgendeine Strasse 1;10000;Irgendein Ort
Klaus;Mustermann;Mustermann Strasse 1;10000;Irgendein Ort

Für die Erstellung der notwendigen Objekte und der damit möglichen Anzeige der Daten wird nun folgender Codeblock verwendet:
if (File.Exists("Adressen.txt"))
{
    StreamReader sr = new StreamReader("Adressen.txt");

    var addressList = from field in LoadFile(";", sr)
                      select new
                          {
                              Firstname = field[0],
                              Lastname = field[1],
                              Street = field[2],
                              PostalCode = field[3],
                              City = field[4],
                          };

    List<object> tempList = new List<object>();
    foreach (var address in addressList)
        tempList.Add(address);

    this.DataGridView.DataSource = tempList;                
}

Mittels LINQ wird quasi ein Select auf die von LoadFile zurückgegebenen Enumerations-Werte ausgeführt und in eine Liste geschrieben. Anschließend werden die Informationen zur Anzeige gebracht.

Schlussendlich sieht das Ergebnis so aus:



  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


C#: yield

29.10.07 - .NET, Grundlagen, Base Framework, Datenverwaltung
Beitrag von Norbert Eder
 Das Schlüsselwort yield gibt es bereits seit .NET 2.0. In freier Wildbahn trifft man es bis dato jedoch sehr selten an. Hier eine kleine Erklärung wofür yield gut ist.

yield wird in einem Iterator-Block verwendet, um für das zurückzulieferende Objekt einer Enumeration einen Wert zu liefern oder das Ende der Enumeration anzuzeigen.

Nehmen wir als Beispiel folgenden Block:
private IEnumerable<string[]> LoadFile(string delim, StreamReader sr)
{
    while (sr.Peek() != -1)
        yield return sr.ReadLine().Split(delim.ToCharArray());
}

Der Hintergrund dieser Methode ist, über alle Zeilen einer Datei zu iterieren. Dazu wird ausserhalb dieser Methode ein Objekt des Typs StreamReader instanziiert und der Methode zusammen mit einem Trennzeichen (in diesem Fall ideal für CVS-Dateien) übergeben. Als Ergebnis kann über die Datei wie durch eine Auflistung iteriert werden.

Mit folgender Methode könnte nun das jeweils erste Element einer jeden Zeile in einer CSV-Datei ausgegeben werden:
private void TestFunction()
{
    StreamReader sr = new StreamReader("Test.cvs");
    foreach (string[] s in LoadFile(";", sr))
    {
        Console.WriteLine(s[0]);
    }
    sr.Close();
}

Eine einfachere Variante dies zu bewerkstellingen gibt es wohl kaum ...
  2 Kommentare - 964 mal angesehen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Podcast zum Thema SubSonic

21.10.07 - .NET, Base Framework, ASP.NET, Datenverwaltung, Internet, Entwickler Podcasts
Beitrag von Norbert Eder
 Ab sofort steht der 7. Podcast von .NET Casts zur Verfügung. Diesmal wurde das Thema Datenzugriff mit SubSonic behandelt.

SubSonic works up your DAL for you, throws in some much-needed utility functions, and generally speeds along your dev cycle.

Weitere Informationen: Podcast #7: Datenzugriff mit SubSonic

  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


.NET BlogBook Ausgabe 4: Inoffizielle HTML Version

17.10.07 - .NET, Grundlagen, Base Framework, WPF, ASP.NET, Datenverwaltung, Visual Studio, Allerlei, Microsoft Office, SQL Server, Internet, Community
Beitrag von Norbert Eder
 Auf die Reaktionen zum .NET BlogBook hin stelle ich hiermit eine HTML-Version zur Verfügung, welche auch ins Visual Studio oder die lokale Desktop-Suche einfach integrierbar ist. Wie auch bei der PDF-Version ist unerlaubtes Verteilen, Kopieren und Anbieten der Inhalte untersagt.

Download .NET BlogBook Ausgabe 4 HTML

  2 Kommentare - 97 mal angesehen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


.NET BlogBook Ausgabe 4 inklusive Gewinnspiel

15.10.07 - .NET, Grundlagen, Base Framework, WPF, ASP.NET, Datenverwaltung, Visual Studio, Allerlei, Microsoft Office, SQL Server
Beitrag von Norbert Eder
 Die vierte Ausgabe des .NET BlogBook ist ab sofort verfügbar. Nun mit weit mehr Informationen als jemals zuvor - geballt auf 275 Seiten.

Viele Bereiche wurden erweitert, unter anderem:
  • Base Framework
  • Windows Forms
  • ASP.NET
  • Tools

Zusätzlich sind auch neue Bereiche zu finden, beispielsweise:
  • Windows Communication Foundation
  • LINQ

Gewinnspiel


Eine weitere Neuerung: Diesmal gibt es ein Gewinnspiel. Insgesamt werden fünf Jahresabos von wahlweise visual studio one oder ASP.NET Professional unter allen Teilnehmern verlost. Weitere Informationen finden sich direkt im BlogBook auf Seite 3.

Zum .NET BlogBook
  8 Kommentare - 1092 mal angesehen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


C#: Arbeit mit der Registry

10.10.07 - .NET, Grundlagen, Base Framework, Datenverwaltung
Beitrag von Norbert Eder
 Die Registry wird noch immer häufig verwendet, um bestimmte Daten zu hinterlegen. .NET bietet hierfür die Klasse RegistryKey.

Hier ein Beispielcode wie Daten in die Registry geschrieben werden können:
RegistryKey rk = Registry.CurrentUser;
RegistryKey rkSoftware = 
  rk.OpenSubKey("Software", true);
if (rkSoftware != null)
{
    RegistryKey rkCompany = 
      rkSoftware.OpenSubKey("Norbert Eder",true);
    if (rkCompany == null)
    {
        rkCompany = rkSoftware.CreateSubKey("Norbert Eder");
    }
    RegistryKey rkInstaller = 
      rkCompany.OpenSubKey("MySoftware", true);
    if (rkInstaller == null)
        rkInstaller = rkCompany.CreateSubKey("MySoftware");

    rkInstaller.SetValue("value1", "test1");
    rkInstaller.SetValue("value2", "test2");

    rkInstaller.Close();
    rkCompany.Close();
    rkSoftware.Close();
}
rk.Close();

Natürlich müssen die Werte auch wieder ausgelesen werden. Dies passiert auf folgende Art und Weise:
RegistryKey rk = 
    Registry.CurrentUser.OpenSubKey
      (@"Software\Norbert Eder\MySoftware");
if (rk != null)
{
    string value1 = (string)rk.GetValue("value1");
    string value2 = (string)rk.GetValue("value2");

    rk.Close();
}

Damit sollte es nun einfach möglich sein, Werte in die Registry zu schreiben und daraus auszulesen. Eventuell empfiehlt es sich, hier noch genauer im MSDN nachzulesen, um zusätzliche Informationen zu erhalten.
  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


BlogEngine.NET aufgebohrt ...

08.10.07 - .NET, Datenverwaltung, Allerlei, Internet, Tools, 3rd Party Tools
Beitrag von Norbert Eder
 Diejenigen, die sich die neue Website von DasBackup genauer angesehen haben, bemerkten vermutlich, dass ich BlogEngine.NET dafür eingesetzt habe. Teils aus Interesse, teils weil ich vernommen hatte, dass BlogEngine.NET wirklich sehr NETt sein soll.

Nun gut. Meine Erfahrung bei der Umsetzung der neuen Webpräsenz hat eigentlich eine Bestätigung gebracht. Wirklich ein sehr feines Teil. Daraufhin schoss gleich der nächste Gedanke ein. Eine Portierung dieses Blogs auf BlogEngine.NET. Nun gut. BlogEngine.NET unterstützt blogML. Zusätzlich gibt es ein Importer-Tool, welches via ClickOnce geladen wird (Achtung Firefox User: hier muss FFClickOnce installiert sein). Zur Auswahl steht der Import von blogML als auch RSS.

Problem Nr. 1: Der RSS-Import funktioniert bei mir nicht. Es handelt sich angeblich um ein invalides RSS. Sehr fein. Alles andere kann mit diesem Feed umgehen, nur das Importer-Tool nicht. Also scheidet dieser Weg hiermit aus.

Problem Nr. 2: Woher nun ein blogML-File bekommen? Schnell eine Solution angelegt, die blogML-DLL eingebunden und flux einen Importer geschrieben, welcher aus sämtlichen Inhalten des Blogs ein blogML-File generiert. Möööööööööp. Wieder nichts. Es validiert, wird aber nicht importiert. Feine Sache.

Und nun? Ich bin zwar immer noch von BlogEngine.NET begeistert, dennoch verstopfen sich zunehmends meine Nebenhöhlen. Was lernt man daraus? In der EDV ist dann doch nicht alles so einfach wie angenommen. Aber sollte ich das Problem lösen, dann werde ich das Tool natürlich für all die anderen SimplePHPBlog-User da draussen veröffentlichen, die eventuell auf ein System umsteigen möchten, das blogML unterstützt (BlogEngine.NET, WordPress etc.).

  4 Kommentare - 966 mal angesehen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Artikelserie LINQ

29.08.07 - .NET, Datenverwaltung
Beitrag von Norbert Eder
 Die einen oder anderen werden das Blog von ScottGu kennen. Denjenigen, die es nicht kennen, sich jedoch mit LINQ anfreunden möchten, dem sei seine Artikelserie zum Thema LINQ to SQL ans Herz gelegt.

Part 1: Introduction to LINQ to SQL
Part 2: Defining our Data Model Classes
Part 3: Querying our Database
Part 4: Updating our Database
Part 5: Binding UI using the ASP:LinqDataSource Control
Part 6: Retrieving Data Using Stored Procedures
Part 7: Updating our Database using Stored Procedures
Part 8: Executing Custom SQL Expressions
Part 9: Using a Custom LINQ Expression with the control

Für den Einstieg und für die Schaffung von tiefergehendem Know-How ist diese Artikelserie absolut zu empfehlen.
  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


ADO.NET Entity Framework Beta 2 verfügbar

28.08.07 - .NET, Datenverwaltung
Beitrag von Norbert Eder
 Im Microsoft Download Center ist ab sofort das ADO.NET Entity Framework in der Beta 2 zu haben. Im Vergleich zur letzten Version (June 2007 CTP) wurde an einigen Stellen geschraubt:
  • Events to customize code generation
  • Abstract types in EDM models
  • Complex types
  • Using support in metadata files
  • Entity key serialization
  • Increased persistence ignorance in entity data classes
  • Improved connection management in ObjectContext
  • Improved DataBinding usability
  • Metadata annotations
  • Better support for span over LINQ to Entities queries
  • Improvements to LINQ queries: additional canonical functions and automatic mapping from CLR functions to server functions
  • A new event for extensibility of SaveChanges
  • Usability and consistency improvements
  • Polymorphic results from stored procedures

Wer das ADO.NET Entity Framework noch nicht kennt, der wird auf Channel9 fündig.
  2 Kommentare - 820 mal angesehen   |  0 Trackbacks   |  Permalink  |  Trackback-URL



Zurück Weiter