Autor Beitrag
Skiller-1988
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 100

Win XP | Debian | Ubuntu
C# | PHP | VB.NET
BeitragVerfasst: Mi 27.08.08 08:15 
Hi,
zurzeit beginne ich mich mit ADO.NET und somit mit Clientzugriffe auf Datenbanken zu beschäftigen, da ich im Rahmen meiner Ausbildung zum Fachinformatiker für Anwendungsentwicklung eventuell ein Projekt in dieser Richtung machen möchte. Nun stellt sich mir jetzt die Frage ob ich da auf Techniken von ADO.NET Zugreifen soll, mit den ich schon ein bisschen Erfahrung gesammelt habe oder ob ich mich jetzt in die für mich relativ neuen Techniken von LINQ einarbeiten sollte? Ist LINQ in Zusammenarbeit mit SQL-Datenbanken immer die bessere Wahl? Lässt sich ungefähr sagen wie umfangreich eine Einarbeitung in LINQ ist? (Besitze Grundkenntnisse SQL)

_________________
~ Wer Rechtschreibfehler findet darf sie behalten ~
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 27.08.08 12:02 
user profile iconSkiller-1988 hat folgendes geschrieben:
Ist LINQ in Zusammenarbeit mit SQL-Datenbanken immer die bessere Wahl?
Solange es nicht um Performance sondern Komfort geht: Definitiv. Schon allein deshalb, weil du dich nicht mehr mit SQL herumschlagen musst ;) .
VS macht das Ganze schon unglaublich einfach. Ich habe bis heute noch nie einen O/RM benutzt, also einfach mal ausprobiert:
  1. Neue Konsolenanwendung
  2. "ADO.NET Entity Data Model" hinzufügen, Northwind.Products importieren
  3. ausblenden C#-Quelltext
    1:
    2:
    3:
    4:
    5:
    6:
    7:
    8:
    9:
    10:
    11:
    12:
          using (var db = new NorthwindEntities()) {
            var query = from p in db.Products
                  group p.ProductName by p.ProductName.Substring(01into g
                  orderby g.Key
                  select g;

            foreach (var group in query) {
              Console.WriteLine(group.Key);
              foreach (var name in group)
                Console.WriteLine("- " + name);
            }
          }
    (Kann schon sein, dass die Query nicht das Gelbe vom Ei ist ;) )
  4. ausblenden Quelltext
    1:
    2:
    3:
    4:
    5:
    6:
    7:
    8:
    9:
    10:
    11:
    12:
    13:
    14:
    15:
    16:
    A
    - Aniseed Syrup
    - Alice Mutton
    B
    - Boston Crab Meat
    C
    - Chai
    - Chang
    - Chef Anton's Cajun Seasoning
    - Chef Anton's Gumbo Mix
    - Carnarvon Tigers
    - Côte de Blaye
    - Chartreuse verte
    - Chocolade
    - Camembert Pierrot
    [...]

    Works like a charm, kann man dazu wohl nur sagen.


Noch ein kleiner Überblick über die O/RMs, denn das ist vielleicht das Verwirrendste überhaupt:
  • Linq to SQL: .Net3.5, nur MSSQL
  • Linq to Entities: .Net3.5 SP1, von der Community ebenso kritisiert
  • NHibernate, SubSonic: Die Stars der Community. Linq to NHibernate kommt in der nächsten Version
  • Noch ein paar kommerzielle, aber attraktive

_________________
>λ=
Skiller-1988 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 100

Win XP | Debian | Ubuntu
C# | PHP | VB.NET
BeitragVerfasst: Mi 27.08.08 12:13 
Ok erstmal danke für deine Antwort, nur wenn ich ein Projekt mache und die Performance schlechter ist als bei ADO.NET (wo ich mich inzwischen eingearbeitet habe) bringt dem Kunden es ja dann letztendlich nichts das ich es beim Programmieren einfacher hatte sondern der legt sicher lediglich Wert auf Performance.
Sind die Performance Unterschiede bei kleinen Datenbanken überhapt zu spühren?
(z.B. komplette Mitarbeiter Verwaltung mit 100 Mitarbeitern)

_________________
~ Wer Rechtschreibfehler findet darf sie behalten ~
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 27.08.08 13:59 
Im Zweifelsfall muss man so etwas immer an den wirklichen Daten testen, aber ich sage einfach mal: Bei weniger als 10.000 Rows musst du dir darüber überhaupt keine Gedanken machen.

_________________
>λ=