ASP.NET Deutsch Blogs

Sponsors

Archives

Browse by Tags

All Tags » Linq (RSS)
BASTA! Tag 4: NHibernate und Spring.Net
Und wieder einmal Manfred Stayer ;-) Er startet mit einer Einführung in O/R-Mapping und in NHibernate. Bei der Beschreibung von NHibernate geht Manfred sehr detailliert auf das Mapping und die Konfiguration per XML ein und zeigt per LiveCoding die Funktionsweise von NHibernate. in einem weiteren LiveDemo stellt Manfred auch LINQ to NHibernate vor. Weiter geht es mit einer LiveDemo mit Spring.NET als Dependency Injection Container und Service Locator. Etwas enttäuschend, denn nur um DI zu zeigen hätte ich eher einen kleineren schlankeren DI-Container verwendet. Anschließend geht Manfred kurz auf die weiteren Features von Spring.Net ein, z. B: Transaktionsmanagement, Unterstützung fürs Unittesting. Zum Schluss zeigt Manfred die Vor- und Nachteile...
BASTA! Tag 3: Parallel Computing: von LINQ nach PLINQ
Marc André Zhou (Logica Deutschland GmbH Co. KG) fängt in dieser Session an mit einer schneller Einführung in die Parallelität. Fast eine Wiederholung der vorigen Session. PLINQ eignet sich nicht für LINQ to SQL, bzw. nicht für LINQ Provider die Abfragen auf eine externe Datenquelle vornehmen, eignet sich also nur für In-Memory-Daten, bzw. bereits geladene Daten. Das reine LINQ eignet sich dagegen optimal für die Parallelisierung. PLINQ prüft selber, ob es nötig ist eine Abfrage parallel auszuführen oder nicht. Dafür ist ein Query Analysis zuständig. Andersherum ist es unter Umständen auch möglich, PLINQ generell zu zwingen Queries parallel auszuführen. Interessant wird PLINQ allerdings nur bei LINQ-Abfragen, die mehr tun, bzw. rechenintensiv...
LINQ und LINQ to SQL
Neulich erhielt ich eine E-Mail mit einigen Fragen zur Verwendung von “ LINQ to SQL ” in n-Tier-Applikationen, die ich hier anonymisiert beantworten möchte: Wie sieht Microsoft beim Einsatz von “ LINQ to SQL ” die Machbarkeit von n-Tier-Applikationen, die über eine separate Datenzugriffsschicht verfügen? Da ich nicht Microsoft bin und auch kein offizielles Statement von Microsoft zu dieser Problematik kenne, kann ich diese Frage so nicht beantworten. Ich kann nur sagen, dass es Beispiel-Applikationen von Microsoft gibt, in denen durchaus “ LINQ to SQL ” innerhalb der Datenzugriffsschicht eingesetzt wird. Wenn ich das richtig sehe, krankt “ LINQ to SQL ” bei seiner Nutzung mit .NET daran, dass ich bei der Nutzung aller automatisch generierten...
Reflection – Fluch oder Segen?
Am 13. Oktober 2008 haben Golo Roden und ich unter dem Titel Noch Fragen, Roden? Ja, Bucher! angekündigt, jeweils zum ersten eines jeden Monats einen Kommentar zu einem vorab gemeinsam gewählten Thema verfassen zu wollen. Bisher sind in dieser Reihe folgende Kommentare erschienen: 1. November 2009: Wieviel Sinn machen Unittests? 1. Oktober 2009: Vererben oder aggregieren? 1. September 2009: Alles var – oder nicht? 1. August 2009: C# oder VB: Welche Sprache soll ich lernen? 1. Juli 2009: Primärschlüssel: GUID vs Identity 1. Juni 2009: Heißt die Zukunft RIA? 1. Mai 2009: Woran erkennt man einen guten Entwickler? 1. April 2009: Interfaces vs abstrakte Klassen 1. März 2009: Sinn und Zweck von AOP 1. Februar 2009: Die Forderung nach Softwarequalität...
Wann IEnumerable nutzen, wann ICollection und wieso überhaupt IList?
Es gibt einige Mengen- / Auflistungstypen in .NET. Ein kleine Auswahl: System.Array List<T> Stack<T> Queue<T> Dictionary<T> Früher gab es nur nicht generische bzw. keine stark typisierte Collections, die heute nicht mehr verwendet werden sollten, da immer explizit gecastet werden muss, was umständlich ist und Performance kostet. Hierfür zitiere ich gerne herbivore aus myCSharp: ArrayList gehört in die Mottenkiste und sollte wie alle untypisierten Collections aus System.Collections nicht mehr benutzt werden. Verwende stattdessen List<T> und alle anderen typisierten Collections aus System.Collections.Generic. Ich möchte hier allerdings nicht die verschiedenen Auflistungstypen im Detail anschauen, sondern herausfinden...
Zweiter Start mit NHibernate
Es ist eine ganze Weile her seit ich mir das letzte Mal NHibernate angeschaut habe. Damals hielt ich NHibernate für zu unflexibel und zu kompliziert, bzw. aufwändig in der Konfiguration. Zumindest damals musste das Mapping der Datenbank auf die einzelnen Objekte in XML-Dateien geschrieben werden. Anschließend wurde per externes Programm, aus den Mapping Klassen generiert, die dann für den Zugriff auf die Datenbank genutzt werden konnten. Gerade die Nutzung eines externen Tools zur Generierung der nötigen Klassen erschien mir sehr umständlich. Vor ein paar Wochen war es wieder so weit, dass ich mir NHibernate angeschaut habe. Der Grund waren ein paar positive Äußerungen in der .NET Community. Dort war immer wieder zu lesen, wie gut NHibernate...
Richtig testen, oder: Was ist schneller… Foreach, LAMBDA Expressions, oder LINQ?
Einleitung Der schweizer Kollege Daniel Schädler hat einen Blogpost mit dem Titel “Was ist schneller… Foreach, LAMBDA Expressions, oder LINQ?” veröffentlicht . Nur schnell eine Korrektur zum Titel, die LINQ-Syntax wird – wie hier schon gezeigt – schlussendlich in die Erweiterungsmethoden-Syntax kompiliert. Ich habe den Titel so übernommen, damit klar ist, dass das eine Antwort auf seinen Post darstellt. Daniel hat sich die Frage gestellt, was wohl schneller ist: Listen per foreach, über LINQ oder die Erweiterungsmethoden Syntax für LINQ filtern. Nun, ich wusste natürlich schon vorher, dass die Resultate nur ganz wenig auseinander liegen dürfen, weil: Wird die LINQ-Syntax in den Erweiterungsmethoden-Syntax übersetzt (Nahezu gleich). Arbeitet...
LINQ: Any, anyone? Range oder Repeat?
Mit LINQ sind unzählige Erweiterungsmethoden für IEnumerable<T> hinzugekommen, die auch ausserhalb von LINQ Abfragen sehr nützlich sein können. Damit ich mir das merke und ihr evt. noch was neues kennenlernt, möchte ich zwei kurz vorstellen: Enumerable.Any() Kommt euch Code wie der folgende bekannt vor? if (addresses.Count > 0) { // … } oder if (addresses.Count == 0) { // … } Das kann jetzt folgendermassen umgeschrieben werden: if (addresses.Any()) { // … } und if (!addresses.Any()) { // … } Die Implementation der Any()-Methode holt sich den Enumerator der Auflistung und versucht den ersten Eintrag zu holen, wenn das klappt gibt sie true zurück, ansonsten false. Wenn Any() true zurückliefert, heisst das also, es ist mindestens ein Element...
Alles var – oder nicht?
Am 13. Oktober 2008 haben Golo Roden und ich unter dem Titel Noch Fragen, Golo? Ja, Bucher! angekündigt, jeweils zum ersten eines jeden Monats einen Kommentar zu einem vorab gemeinsam gewählten Thema verfassen zu wollen. Bisher sind in dieser Reihe folgende Kommentare erschienen: 1. August 2009: C# oder VB: Welche Sprache soll ich lernen? 1. Juli 2009: Primärschlüssel: GUID vs Identity 1. Juni 2009: Heißt die Zukunft RIA? 1. Mai 2009: Woran erkennt man einen guten Entwickler? 1. April 2009: Interfaces vs abstrakte Klassen 1. März 2009: Sinn und Zweck von AOP 1. Februar 2009: Die Forderung nach Softwarequalität 1. Januar 2009: SOA vs WOA 1. Dezember 2008: Dynamic Language Runtime: .NET, quo vadis? Heute, am 1. September 2009, ist es nun wieder...
LINQ to XML: Queries auf XML mit Namespaces
Beim Zugriff auf XML mit bestimmten XML-Namespaces kommt es beim herkömmlichen Queries zu einem Fehler. Wie auch beim XMLDoxument muss beim den Abfragen auf bestimmte Knoten ein Namespace angegeben werden. Ausgangspunkt bei mir ist eine Abfrage per WebDAV auf einen Exchange Server, bei der ich ungefähr folgende Antwort erhalte: <? xml version ="1.0" ?> < a:multistatus xmlns:b ="urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/" xmlns:d ="urn:schemas:httpmail:" xmlns:c ="xml:" xmlns:a ="DAV:" > < a:response > < a:href > http://mdomain/exchange/Account/ </ a:href > < a:propstat > < a:status > HTTP/1.1 200 OK </ a:status > < a:prop > </ a:prop...
More Posts Next page »