-
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.
|
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
.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
.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
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
|
|
|
|
|
|
|