Vorgehensweise-UserControls-DLL's-Schnittstelle-Applikation.Exe

21/01/2009 - 21:24 von Sandra Baum | Report spam
Hallo,
Hallo Elmar,

Ich bin erst gestern Abend dazu gekommen, es (einigermaßen)
fertigzustellen. Eine erste Version findest Du unter



<URL:http:/www.elmarboye.de/download/FormsUnity.zip>

Dafür habe ich Microsofts Unity als IoC Container verwendet
<URL:http://www.codeplex.com/unity>
Zur Interpretation der Arbeitsweise empfiehlt sich die dortige
Dokumentation.
Fragen dazu hier oder in einem neuen Thread.



so ganz verstehe ich es leider nicht.

Besteht die Möglichkeit das Beispiel, so klein wie möglich zu halten.

Im Release Ordner
TestApp.exe
Schnittstelle string GetInput();
UI_1.DLL Rote Editbox
->return Inhalt l
UI_2.DLL Blaue Editbox
->return Inhalt
UI_3.DLL Grüne Editbox
->return Inhalt
UI_4.DLL Gelbe Editbox + Blaue Editbox
->return Inhalt aus erster + zweiter Editbox
Bei Start wàhlt der Anwender UI_3 aus.
Also startet die Anwendung mit grüner Editbox.


Ich habe das Problem einfach mal zurückgestellt. Scheint mir zu
aufwendig zu sein.
Ich kompiliere meine Anwendung neu.
Die Idee wàre halt gut gewesen, aber wenns zu kompliziert ist, bringt es
nichts.
Falls ich nicht zu làstig bin, wàre ich über eine Antwort, Beispiel dankbar.

Grüße Sandra
 

Lesen sie die antworten

#1 Elmar Boye
23/01/2009 - 09:56 | Warnen spam
Hallo Sandra,

Sandra Baum schrieb:
>Ich bin erst gestern Abend dazu gekommen, es (einigermaßen)
>fertigzustellen. Eine erste Version findest Du unter

<URL:http:/www.elmarboye.de/download/FormsUnity.zip>
>Dafür habe ich Microsofts Unity als IoC Container verwendet
> <URL:http://www.codeplex.com/unity>
>Zur Interpretation der Arbeitsweise empfiehlt sich die dortige
>Dokumentation.
>Fragen dazu hier oder in einem neuen Thread.

so ganz verstehe ich es leider nicht.



Schön das Du die Zeit gefunden hast, Dir das Beispiel anzusehen.
Leid tut mir, das Du damit nicht zu Rande gekommen bist.

Da Du eine Frage bezüglich der XML Kommentare gestellt hattest
eine Anmerkung dazu: Es reicht anfangs aus die XML Dokumentation
zu aktivieren, um die Anzeige als Intellisense Tooltip zu erhalten.
Eine Projekt-Dokumentation als CHM ist zwar am Ende ganz nett,
aber parallel wird man die bei der Entwicklung kaum offen halten.


Besteht die Möglichkeit das Beispiel, so klein wie möglich zu halten.



An der Größe dürfte es nicht liegen. Denn für das Gezeigte
ist es sehr klein. Ich hatte sogar auf Funktionalitàten
verzichtet, die dort sinnvoll gewesen wàren.
So habe ich auf Injection verzichtet, was anfangs als
"a kind of magic" schwer verstàndlich ist.

Und aus zeitlichen Gründen ist eine Trennung des
Verwaltungscodes (Auswahl der Schnittstelle) und des
CustomerControls unterblieben, die ich vorgesehen hatte.

Beim Einsatz von Komponenten (und IoC) entsteht naturgemàß
anfangs ein deutliches Mehr an Code. Das àndert sich bei
zunehmender Projektgröße, wo weniger Verwaltungscode
im Vergleich zu "konventioneller" Programmierung entsteht,
bei der jeweils viele Zeilen geschrieben werden, nur um
die Elemente miteinander zu verbinden.

Aber ich will es mit dem Anpreisen gut sein lassen.
Und auf die Grundfragen eingehen, die sich von
Ralf Westphals Artikel herleiteten.
Denn vor der Implementation stànde zunàchst der
(richtige) Entwurf.

Im Release Ordner
TestApp.exe
Schnittstelle string GetInput();
UI_1.DLL Rote Editbox
->return Inhalt l
UI_2.DLL Blaue Editbox
->return Inhalt
UI_3.DLL Grüne Editbox
->return Inhalt
UI_4.DLL Gelbe Editbox + Blaue Editbox
->return Inhalt aus erster + zweiter Editbox
Bei Start wàhlt der Anwender UI_3 aus.
Also startet die Anwendung mit grüner Editbox.



An obigem Entwurf wàren mehrere Dinge zu bedenken:
a) Eine Schnittstelle, die eine Zeichenkette zurückgibt,
ist als Kontrakt mehr oder weniger unbrauchbar:
- Denn "UI 4" würde zwei Zeichenketten benötigen.
- Sie setzt voraus, dass das Ergebnis immer eine
Zeichenkette ist, ist es eine Zahl so steht ein
Konvertierung an, und das Ergebnis ist erneut zu prüfen.

Deswegen verwende ich im obigen Beispiel eine DataView
(was im übrigen verbesserungswürdig wàre). Wobei das
jede andere Struktur annehmen kann, wie z. B. eine Klasse
mit den Datenelementen.

b) Ein Zusammenbau von "UI 4" als Kombination aus den anderen UI DLLs
sollte vermieden werden. Denn damit handelst Du Dir Abhàngigkeiten
ein, die Du nicht (immer) kontrollieren kannst.
Denn wenn der Kunde von "UI 2" die blaue EditBox morgen lila haben
möchte, so erhalten sie auch Kunden von "UI 4", die die Farbe
womöglich gar nicht mögen.
Oder der dargestellte Inhalt wird ein anderer (z. B. Zahl anstatt
Text).


Ich habe das Problem einfach mal zurückgestellt.
Scheint mir zu aufwendig zu sein.



Der Einstieg kann anfangs etwas mühselig sein.
Wenn es nicht gleich ist, so solltest Du zu einem anderen
Zeitpunkt einen neuen Anlauf machen.

Ralf Westphal hat mit Stefan Lieser auf
<URL:http://www.clean-code-developer.de/>
eine Zusammenstellung der Prinzipien vorgestellt, wie er sich
den Weg eines Entwicklers vorstellt.

Die Idee wàre halt gut gewesen, aber wenns zu kompliziert ist,
bringt es nichts.



Einem kurzfristiger Mehraufwand am Anfang sollten die zukünftigen
Aufwànde gegengerechnet werden. Denn der Wartungsaufwand nimmt
schnell ein Vielfaches der anfànglichen Entwicklungszeit in
Anspruch. Und einen von neuen aufregenden Erfahrungen abhàlt.
Und der (für Chefs) am Ende auch immer Kosten sind.

Gruß Elmar

Ähnliche fragen