vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Architekturproblem 
Autor: Curse4Life
Datum: 13.05.11 08:39

Hallo,

ich bin verzweifelt...ich brauche eure Hilfe.
Der Code unten ist zwar in C# aber, es ist kein C# Problem, es ist wie im Betreff genannt ein Architekturproblem.

Und zwar bin ich jetzt auf der Arbeit das erste Mal mit Architektur konfrontiert.
Privat hatte ich immer meine MVC Anwendung und mein Datenbankmodel, dass ich auch in den Views benutzt habe. Die Webanwendung hatte volle Datenbankkontrolle und somit war alles gut und leicht.

Nun auf der Arbeit soll ich aber nun eine MVC Anwendung entwickeln, einen WCF Service und eine extra DLL für DB Models und noch mal eine extra DLL für Service Models, so gesehen im Projekt Silk von Microsoft wo ich eigentlich dachte, die sollten wissen wie es geht!
Also von der Firma vorgeschrieben sind nur die MVC Anwenung und der WCF Service, die anderen beiden habe ich mir wie gesagt bei Silk abgeschaut.

Nun bin ich aber auf ein Problem mit Linq gestroßen!
Ich habe eine WCF Methode "LadeOffeneAufgabenUndWiedervorlagen(String username)", in der steht unter anderem das drin:

var telefonnotizenOhneWiedervorlage = (
    from aufgabe in db.Aufgaben
    where
        ((from aufgabenNachricht in db.AufgabenNachrichten where _
          aufgabenNachricht.AufgabeId == aufgabe.AufgabeId && _
          aufgabenNachricht.Username != username && aufgabenNachricht.Typ == _
          "Q" && aufgabenNachricht.IstBeantwortet == false select _
          aufgabenNachricht.AufgabenNachrichtId).Count() == 0)
        &&
        (aufgabe.RecipientToKurz == username)
        &&
        (aufgabe.ReferenzTyp == 16 || aufgabe.ReferenzTyp == 20)
        &&
        (aufgabe.IstGeschlossen == false)
    select new OffeneAufgabeOderWiedervorlage
    {
        SortierPosition = 1,
        SortierDatum = aufgabe.ErledigenBis,
 
        AufgabenId = aufgabe.AufgabeId,
        Betreff = aufgabe.KurzBeschreibung,
 
        // Geht nicht!!!!!!
        //WiedervorlageDatum = aufgabe.LadeWiedervorlageDatum(username),
        IstÜberfällig = aufgabe.ErledigenBis < DateTime.Today
    }).ToList();
        telefonnotizenOhneWiedervorlage = telefonnotizenOhneWiedervorlage.Where( _
          o => o.WiedervorlageDatum == null).ToList();
Zur Erklärung: "OffeneAufgabeOderWiedervorlage" ist ein ServiceModel und die List "telefonnotizenOhneWiedervorlage" wird dann von der Service Methode zurück gegeben.


Ich habe nun das Problem das Linq2SQL die Methode "LadeWiedervorlageDatum" die komplexe Dinge tut und auch Datenbankzugriffe beinhaltet bekanntlicherweise nicht ausführen kann.
Linq2Objects könnte es (Wenn ich die Methode ins Service Model verschieben würde) aber da kann ich ja keine DB Zugriffe machen.


Ich weiß nun nicht weiter, das ist ein Teufelskreis!
Diese strikte Achitekturtrennung macht doch einige Probleme! ;(

Ich hoffe das ihr ein wenig Licht ins dunkel bringen könnt!


Liebe Grüße
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Architekturproblem990Curse4Life13.05.11 08:39
Re: Architekturproblem543ModeratorRalfE14.05.11 11:52

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel