Laden...
-
-Hades-
myCSharp.de - Member
50
Themen
171
Beiträge
Letzte Aktivität
vor 7 Jahren
Dabei seit
05.11.2007
Alter
40
Herkunft
Deutschland NRW
Erstellt vor 9 Jahren

Ja MVC ist klar, mir ging es um die empfangenen Daten selber. Diese liegen ja im Moment bei mir in Form von datasets vor. Mit dem neuen Design würden das ja JSON-formatierte Daten sein wenn ichs richtig verstanden habe. Werden diese Daten auch direkt als Datasource von beispielsweise datagrids verstanden und können direkt gebunden werden oder muss ich da dan noch selber Hand anlegen und dann nochmal Strukturen draus aufbauen?

Edit: Und sorry, ich werde gewiss weit mehr als nur eine Stunde investieren aber ich finde das hier eine sehr gute Möglichkeit um ein Gefühl für den Umfang der Portierung und generell der Möglichkeiten zu bekommen.

Erstellt vor 9 Jahren

Hmm ok und gibt es auch Tools die die Strukturen die zwischen Service und WPF-Anwendung ausgetauscht werden in Klassen umwandelt? Also wenn du sagst ich nutze den ORMapper im Service, gut kann ich mir vorstellen. Dann werden die Daten in JSON-Format umgewandelt, warum macht man das? Weil es ein Standard ist?? Und wie gesagt, wie gehe ich dann mit den XML-Daten in der WPF-Anwendung um, sprich ich möchte ja diese Daten an Datagrids usw. binden und natürlich auch generierte Methoden nutzen können um zum Beispiel relationell bezogene Daten zu einem Objekt (Buchungssätze zu einer Rechnung) abrufen zu können. Halt all das was der ORMapper sonst generiert hätte.

Erstellt vor 9 Jahren

Ah interessant. Das heißt der Service würde direkt auf der Azure-Maschine laufen und mittels Protocol-Buffer mit der WPF-Anwendung kommunizieren? Und dieser buffer wäre sowas wie ein Stream an den ich beispielsweise eine neue Klasseninstanz schicke (sagen wir mal eine neu aufgenommene Eingangsrechnung eines Unternehmenes) und der service schickt das an das DBMS? Und welche Rolle spielen da dann die OR-Mapper, also wie kann ich mir das mit der Datenstruktur zwischen DBMS, Service und WPF-Anwendung vorstellen?

Edit: Ja die Übersetzung in LINQ-ausdrücke finde ich auch nicht gut, vor allem weil es viel schwerer zu lesen ist.

Erstellt vor 9 Jahren

Hmm ich verstehe nicht was du meinst. Natürlich nutze ich den generierten Code, dafür wurde er ja generiert und natürlich verlasse ich mich darauf das er funktioniert. Ich habe die Klassen höchstens an einigen Stellen erweitert, um einfach mehr Comfort bei den Abfragen zu haben.

Ich denke nicht das wir uns verlaufen haben. Die Anwendung funktioniert und ist auch bei Unternehmen im Einsatz. Das mit dem Laden der Daten auf den lokalen Rechner ist natürlich extrem unschön aber ich habe ja gesagt warum ich das getan habe. Ich bin froh über jeden Kommentar, wie würde ich das Laden der Daten denn anders behandeln können ohne das die Anwendung spürbar bei jeder Ansicht auf den Server warten muss?

Es geht auch nicht darum etwas zu reparieren. Ich habe eine zugrundeliegende MySQL-Datenbank, mehr erstmal nicht. Die Controls muss ich ja ohnehin neu erstellen und ich möchte einen neuen OR-Mapper nutzen. Das kommt einer Neuentwicklung ja schon recht nahe. Einzig die Controllerklassen können natürlich bleiben.

Edit: Der Resharper hat natürlich keinen Code generiert, er dient nur als intelligentes Auto-Vervollständigungstool beim Entwickeln.

Erstellt vor 9 Jahren

Danke soweit für die Antworten,

mit der GUI ist ja schjonmal super!

Also mit dem ORM ist etwas schwierig für mich zu spezifizieren auf was es ankommt. Ich kannte zum Zeitpunkt der Erstellung nichts anderes und es funktionierte halt. Was ich sagen kann ist, das die Datenbank halt recht groß ist. Der erzeugte Code z.B. ist dermaßen lang, dass es in der Praxis zu heftigen Performance-Einbußen kommt wenn ich beispielsweise den Resharper nutze. Selbst wenn ich die betreffenden Dateien aus dem Resharper-Scan rausnehme ist es schwer flüssig zu arbeiten da er die Dateien halt doch durchsucht wenn ich auf den Typ einer Zeile oder dergleichen zugreife. Aber höchstwahrscheinlich wird da auch kein OR-Mapper abhilfe schaffen oder?

Vielleicht noch etwas zur Vorgehensweise meiner Anwendung. Die Datenbanken sind im Moment auf Microsoft Azure-Maschinen abgelegt. Beim Start der Anwendung lade ich fast alles lokal in die Datasets um darauf dann zu arbeiten und jeweils neue Daten direkt zu committen. Dieses naive Vorgehen habe ich aus Geschwindigkeitsgründen gewählt. Permanent vom Server zu laden ist einfach zu langsam da ich viele Ansichten habe die fast alle Prozesse eines Unternehmens anzeigen müssen, beispielsweise alle Ausgangsrechnungen eines Jahres.
Vielleicht helfen die Beschreibungen noch etwas für die Wahl eines OR-Mapper oder vielleicht weiß jemand generell bessere Vorgehensweisen mit meinen Daten umzugehen. Im Moment ist die Anwendung auch nicht mehrplatzfähig um Inkosistenzen zu vermeiden, das muss in Zukunft auch geändert werden.

Erstellt vor 9 Jahren

verwendetes Datenbanksystem: MySQL

Hallo zusammen,

ich möchte in der nächsten Zeit ein ERP-System modernisieren. Zur Zeit verwende ich MySQL-Datenbanken (mit der MySQL-Workbench erstellt), welche ich in strong typed datasets übersetzen lasse, zusammen mit Winforms. Die Datenbank besteht aus über 100 Tabellen und ist mittlerweile relativ komplex.
Die grafische Ansicht lässt leider etwas zu wünschen übrig und deshalb möchte ich anfangen das ganze zu WPF zu "portieren". Im Zuge dessen wäre es wahrscheinlich ratsam die strong typed datasets durch etwas zeitgemäßeres zu ersetzen.
Die Frage ist jetzt welche Technologien würdet ihr mir empfehlen? Klar, zu WPF scheint es ja keine Alternative zu geben (gibt es eigentlich sowas wie einen open source store für vorgefertigte WPF-Elemente die schon schick aussehen, vor allem um datengebundene elemente anzuzeigen?) aber vor allem für die Daten wäre es wichtig zu wissen was es gibt und was eurer Meinung nach Sinn macht. Also vor allem welche OR-Mapper taugen was und was sind die Schwachstellen. Die meisten Artikel die ich so gefunden habe sind höchstwahrscheinlich recht gut, allerdings auch schon sehr alt und deshalb die Frage hier nochmal um ganz aktuelle Erfahrungen zu hören.

Beste Grüße
-Hades-

Erstellt vor 11 Jahren

Das wäre durchaus denkbar und ist wahrscheinlich eine saubere Lösung.

Gruß
-Hades-

Erstellt vor 11 Jahren

Hehe,

ja das geht natürlich... Ich schaue selbst noch einmal ob das Verhalten nicht zu ändern ist. Die Items kommen direkt aus einer Datenbank und werden per Datasource gebunden. Ich möchte solche Sachen an sich nicht mit in die Datenbank aufnehmen und vor allem müsste ich das dann an sehr vielen Stellen machen (über 20 Tabellen).
Vielleicht kann ich, wenn auf die Box geklickt wird, ja den Text der Box löschen oder so, ich schaue mal.
Vielen Dank soweit für die Hilfe!

Gruß
-Hades-

Erstellt vor 11 Jahren

Hmm ok dann hattest du mich doch verstanden. Allerdings löst ein Eintrag "Keine Auswahl" oder dergleichen nicht unbedingt mein Problem. In der Tat ist es so, dass es bereits Einträge gibt die "Kein Wert" darstellen aber auch diese sollen oder vielmehr müssen vom Anwender bewusst eingegeben werden, weshalb es an der Stelle wichtig ist das der Benutzer sozusagen gezwungen wird etwas auszuwählen, da der "Kein Wert"-Eintrag halt auch den Programmfluss entscheidend beeinflusst.
Im Prinzip wollte ich die betreffende Spalte sogar farbig hinterlegen solange der Anwender nichts explizit ausgewählt hat.
Es würde halt schon reichen wenn nichts in das Auswahlfeld geschrieben wird solnage kein Item explizit ausgewählt wurde, so dass der Anwender nicht verwundert ist das die Box wieder geleert wird wenn die Box den Fokus verliert.

Erstellt vor 11 Jahren

Hallo herbivore,

nein da hast du mich missverstanden. Es ist bei mir so, dass zunächst kein Wert in der Combobox steht, das ist auch gut so. Wenn jetzt der Anwender auf die Box klickt, so dass die Drop-Down-Liste angezeigt wird, steht in der Combobox bereits der Name des ersten Items der Dropdown-Liste. Wenn jetzt kein Item der Dropdown-Liste ausgewählt wird, sondern z.B. ganz woanders auf die Form geklickt wird, verschwindet der Name in der Combobox aber wieder, obwohl der Anwender dachte es sei bereits der erste Eintrag genommen worden. Dieses Verhalten ist sehr unintuitiv.
Erst wenn mit der Maus wirklich nochmal explizit ein Item der Dropdown-Liste angeklickt wird, behält die Combobox diesen Wert auch nachdem sie den Fokus verliert.

Ich hoffe so war es verständlicher.

Gruß
-Hades-

10 von 171 Beiträgen