Announcement

Collapse
No announcement yet.

VB.NET Observable LINQTOSQL

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • VB.NET Observable LINQTOSQL

    Hallo Zusammen,

    ich bin etwas am verzweifeln... Ich suche jetzt schon seit Tagen eine vernünftige bzw. "moderne" Lösung um meine Datenbankverbindung herzustellen.
    In meinen alten Projekten (WinForms) habe ich immer DataSet verwendet, dies hat mir persönlich noch nie wirklich gefallen, da ich meine DataSet nie sauber von der Logik trennen konnte.
    Jetzt bin ich dabei mir WPF anzueignen und das klappt auch soweit schon recht akzeptabel.
    Jetzt möchte ich meine Datenbank mit in´s Spiel bringen nur leider fehlt mir etwas der Ansatz. Ich kann ein ADO.NET (EF) oder LINQTOSQL erstellen und ein Binding wie auf ein DataSet erstellen, nur versteh ich dann den Vorteil nicht wirklich... .
    Mein "Wunsch"- Gedanke ist, dass ich in folgende Struktur (Objektorientiert) das ORM des EF oder LINQTOSQL sauber verwenden kann:

    '------
    Klasse "Person"
    Property Name
    Property Vorname

    Klasse "PersonenList" (ObservableCollection)
    inherit "Person"
    der Inhalt müsste jetzt ein binding mit meinen ORM Diensten haben
    -> Subs bzw. Funktionen für Personen
    '-----

    bin ich mit dieser Art und Weise auf dem Holzweg? Wie wird nach dem momentanen Stand der Technik normalerweise eine Datenbankanwendung erstellt?

    ich habe mir vor einiger Zeit das Buch "Datenbankprogrammierung mit Visual Basic 2008" gekauft nur leider ist dieses Buch in meinen Augen keineswegs der Stand von Visual Studio 2008, die Neuerung wie WPF-Datenbankanwendung LINQTOSQL und das EF wir nur mangelhaft erläutert.

    Wenn Ihr mir bisschen auf die Sprünge helfen könntet nach welchen Sachen ich suchen muss um eine vernünftige WPF-Datenbankanwendung erstellen zu können währe ich euch sehr dankbar.

    Liebe Grüße
    Christian

    P.S. LINQTOSQL gefällt mir besser als das EF

  • #2
    Hallo,

    LINQTOSQL gefällt mir besser als das EF
    Mir auch

    Da du von WPF schreibst ist die Verwendung von MVVM naheliegend bzw. zu empfehlen. Die ObservableCollection kommt dabei erst im ViewModel ins Spiel.

    Das Model stellt die eigentlichen Objekte dar welche in der Anwendung verwendet werden. Diese Objekte sind POCOs (plain old clr object) und können auch im O/R-Mapper verwendet werden.

    Das ADO.net EF unterstützt das POCO-Mapping ab .net 4.0. Für nähere Infos guckst du bitte hier.

    Linq2Sql unterstützt das eigentlich schon immer, allerdings nicht im Designer von VS. Mit dem Tool SqlMetal.exe kann jedoch ein Mapping auf POCOs erstellt werden - oder das XML-Mapping per Hand erstellen. Siehe External Mapping Support. Für SqlMetal.exe gibts auch den SqlMetalBuilder der bei der Generierung hilft. Suche mal nach diesem.

    Ich gehe mit Linq2Sql oft den Weg dass ich ganz normal über den Designer das O/R-Mapping erstelle und dann im DAL (Data Access Layer) das Mapping auf die Model-Objekte per Code erledige (also einfach die Eigenschaften umkopiere). Somit gibts die Designer-Unterstützung und die Models sind weiterhin unabhängig von einer Speichertechnologie (persistance ignorance).
    Die andere Möglichkeit wäre die Klassen welche der Designer generiert direkt als Model zu verwenden, allerdings gibts dann die Abhängigkeit zu Linq2Sql und für Szenarien wo DAL und BLL nicht im selben Tier (~Computer) sind, also WCF o.ä. verwendet werden muss, ist das nicht unbedingt vorteilhaft.

    Ich hoffe für den Überblick reicht es - sonst musst du halt noch genauer nachfragen was dich interessiert.


    mfG Gü
    Zuletzt editiert von gfoidl; 20.09.2010, 16:51.
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Vielen Dank!

      Vielen Dank für die Info... dann werde ich mich mal mit MVVM beschäftigen.
      Macht es Sinn mit der Umstellung auf WPF MVVM usw. auf C.NET umzusteigen? Ich finde kaum Beispiele geschweige denn Tutorial´s für VB.NET

      MfG Christian

      Comment


      • #4
        Hallo,

        wenn du mich so fragst rate ich dir C# (das was du als C.net bezeichnest) zu verwenden. Es gibt einfach mehr Infos als für VB.net. Hinzukommt dass Microsoft C# extra für .net entwickelt hat und Neuerungen werden meist zuerst für C# eingeführt. Unterm Strich lohnt sich das sicher - ich arbeit auch nicht mit VB.net sondern mit C#


        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          Nadann weiß ich ja... was ich zu tun hab!

          Sowas hab ich mir in der Art schon gedacht...

          Naja, dann werde ich mir mal ein wenig Lektüre besorgen und C# lernen . als Hobbyprogrammierer hat man wenigsten keinen druck

          Comment


          • #6
            Hallo,

            als Einstieg / Orientierung: [FAQ] Wie finde ich den Einstieg in C#?


            mfG Gü
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment


            • #7
              Alternativ zu oben genannten O/R-Mappern kannst Du Dir auch noch NHibernate anschauen. Das verwende ich momentan und ist auch schon sehr ausgereift. Ausserdem erlaubt es auch die Verwendung von POCOs.
              Zum Thema Sprache: Ich denke man kann mit beiden Sprachen sehr gut programmieren und im Endeffekt bieten beide Sprachen auch dasselbe. Nur sind bestimmte Features nur in C# implementiert. Lambda Expressions zum Beispiel. Damit lassen sich schon sehr schicke Sachen machen Da ich sowieso aus der C Ecke komme war das für mich natürlich sowieso naheliegend.

              Comment


              • #8
                Vielen Dank für die Antworten! Jetzt werde ich mir erst einmal ausreichend C# aneignen.

                {
                "Visual C# 2010 von Andreas Kühnel
                Das umfassende Handbuch"; // Von Galileo Computing
                }

                scheint mir schon mal ein recht guter Einstieg zu sein.
                Ich wünsche euch noch eine gute Nacht!

                Gruß Christian

                Comment


                • #9
                  Hallo,

                  das Buch ist auch empfehlenswert.


                  mfG Gü
                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                  Comment


                  • #10
                    Man sollte einfach abends um 22 Uhr keine Foreneinträge mehr schreiben. Mein Deutsch ist ja gruselig

                    Comment


                    • #11
                      Lambda Expressions zum Beispiel.
                      Seit 4.0 auch in VB.Net möglich. Mit dem Hinweis will ich aber nicht den gegebenen der C# Empfehlungen widersprechen.

                      Comment

                      Working...
                      X