Laden...

WPF Window usw. in einer DLL verwenden

Erstellt von Jacyrio vor 8 Jahren Letzter Beitrag vor 8 Jahren 2.887 Views
J
Jacyrio Themenstarter:in
197 Beiträge seit 2006
vor 8 Jahren
WPF Window usw. in einer DLL verwenden

Hey,

vielleicht könntet ihr mir wieder 1-2 Stichpunkte geben nach denen ich suchen könnte, da ich bisher keine Ahnung habe, wo ich anfangen soll zu suchen. Habe das noch nie gemacht.

Folgender momentaner Sachverhalt:
Ich habe eine gekaufte ERP-Software, die auf Basis VB 6.0 und Access programmiert ist. Ich würde nun zukünftig gerne neue Projekte in DLLs auslagern und dort auch z. B. Formulare öffnen. Da ich die letzten Monate viel mit WPF zu tun hatte und WPF sehr gerne programmiere, würde ich in den DLLs auch gerne WPF-Elemente verwenden. Ist das möglich? Wenn ja, habt ihr ein Tipp wie?

Zukünftiger Sachverhalt:
Wenn ich WPF-Windows in die DLL eingebaut habe und dort öffnen kann bin ich mit dem ersten Schritt fertig. Zukünftig will ich vielleicht sogar noch einen Schritt weiter gehen. Ich würde auf der einen Seite gerne ein Window (View) über meine DLL in meiner VB 6.0 Anwendung öffnen können. Auf der anderen Seite würde ich dann aber gerne auch ein WPF-Projekt bauen, indem ich das selbe Window wieder verwende.

Hättet ihr hierzu ein paar Tipps bzw. Stichpunkte, wo ich anfangen kann mich einzulesen?

Vielen Dank!

5.658 Beiträge seit 2006
vor 8 Jahren

Hi Jacyrio,

also ich werde aus deiner Beschreibung nicht besonders schlau:

Ich habe eine gekaufte ERP-Software, die auf Basis VB 6.0 und Access programmiert ist. Ich würde nun zukünftig gerne neue Projekte in DLLs auslagern und dort auch z. B. Formulare öffnen.

Du hast eine fertige Software gekauft, und willst diese Software dazu bringen, ein WPF-Fenster anzuzeigen? Wie kann man sich das vorstellen? Hat die Software eine API? Hast du den Quellcode vorliegen?

Ansonsten halte ich eine Anwendung, die auf Access basiert, nicht gerade für eine solide Basis, auf der man aufbauen sollte. Und daß VB6 und WPF nicht besonders kompatibel zueinander sind, ist dir hoffentlich bewußt, da brauchst du nur mal nach "open wpf window from vb6" oder sowas zu googlen.

Christian

Weeks of programming can save you hours of planning

J
Jacyrio Themenstarter:in
197 Beiträge seit 2006
vor 8 Jahren

Hey MrSparke,

okay ich versuche es etwas besser zu beschreiben 😃

Wir haben in der Firma ein relativ (im Mittelstand) bekanntes ERP-System. Das ERP-System hat als Basis Access und VB60 (leider 😦 ). Wir haben den Entwicklungs-Code dazu gekauft und können die Software selbst anpassen. Wir können z. B. Zusatzmodule in das ERP-System programmieren.

Bisher haben wir die Zusatzmodule immer in VBA programmiert, was natürlich mit moderner Software und Schnelligkeit heute garnichts mehr zu tun hat.

Da ich mir privat nun WPF beigebracht habe, würde ich das gerne auch auf der Arbeit verwenden. Meine Idee - vielleicht mal anhand eines Beispiels beschrieben:

Ich würde gerne eine Liste erstellen, die alle Einkaufsbelege anzeigt. Würde der Liste weitere Funktionen zufügen wie z. B. Löschen von Belegen, Drucken von Belegen usw. Normalerweise hätte ich das in VBA ziemlich kompliziert gemacht und zudem nicht schön.

Meine Idee: Ich programmiere zwar das Zusatzmodul in VBA aber wenn ich eine Funktion ausführe (z. B. ein Button im Menü des ERP-Systems) dann soll das Programm über eine Funktion (Stichwort Interop) in eine DLL springen und dort das WPF-Formular aufrufen. Wenn ich das Formular wieder schließe, soll er im VBA-Programm weiter machen.

Ich müsste also von euch eigentlich nur wissen: Wie kann ich in einer DLL ein WPF Formular verwenden? Und wie mache ich das am besten? Z. B. mit Views und ViewModels.. oder gibt es für sowas keine Möglichkeit?

Bei Windows-Forms weiß ich zB das es geht..

Das ist der erste Schritt.. der zweite ist erstmal egal.. da kann ich euch / dich dann später nochmal nach fragen 😃

D
171 Beiträge seit 2008
vor 8 Jahren

Hallo Jacyrio,

ich hab dafür eine Lösung, bin mir nicht sicher, dass es der Weisheit letzter Schluss ist, aber Funktioniert und ich finde auch nicht ganz schlecht.
Ich habe ein DLL Projekt angelegt, dort u.a. eine Form drin.

Ich verwende eine Statische Klasse als interface nach außen, dass passt in meinem Fall am besten, dieser gehört auch das Window. An irgendeiner Stelle muss das ja erzeugt werden. Dann kann ich das ViewModel an an das Window binden und mache den rest des Zugriffs wieder nur darüber.

Gruß Daniel83