2009-04-21 7 views
0

Wir migrieren unsere Anwendungen von VB in VB.Net 2008 und ich muss einen Basis-Namespace und eine Business-Schicht erstellen. Meine Herangehensweise wird sein, unsere Top-BA zu besuchen und die gemeinsamen Bereiche unserer (Fixed-Income-) Firma zu identifizieren und zu versuchen, ein anständiges Erbschaftsmodell mit möglichst viel Code in Generika zu bilden.Was ist der beste Weg, um ein Corporate .Net Namespace Framework von Grund auf neu zu erstellen?

Was ist die Erfahrung von allen dabei und auch als zweiter Teil der Frage, betrachten wir die Integration von Web Focus in die OLAP-Seite, wie würde dies das Design des Corporate Namespace und seine Derivate beeinflussen?

Antwort

4

Ich denke, der beste Weg, um mit der Erstellung eines Corporate .NET Framework zu beginnen, besteht darin, bestehenden Code aus aktuellen Projekten zu extrahieren. Ein Framework von Grund auf neu zu erstellen, ohne Code für ein bestimmtes, konkretes Projekt zu schreiben, kann dazu führen, dass Sie das Framework in einigen Bereichen überfrachten und einige notwendige Features in anderen komplett verpassen (dies könnte Ihrem Framework künstliche Beschränkungen auferlegen) Kunden ohne triftigen Grund).

Siehe Fowlers Eintrag auf Harvested Framework und dieses blog post für eine vollständigere Erklärung.

Ich bin nicht vertraut mit Web Focus, aber ich denke, es würde es in irgendeiner Weise beeinflussen, aber wenn Sie mit einem geernteten Framework gehen, wird Ihre Verwendung davon in den ersten Anwendungen, wie Sie bauen Verwenden Sie Web Focus innerhalb des Frameworks.

+0

Wir haben eine Menge gängiger Geschäftsobjekte wie Gilt Instruments, die von den meisten unserer Anwendungen verwendet werden, und wir haben auch viele Mathe-basierte Verarbeitung, die derzeit in MatLab repliziert wird. Dies müsste auch einbezogen werden. Während das geerntete Rahmengerüst gut klingt, denke ich auch, dass wir viel von der Struktur, die wir vielleicht haben, durch stufenweise Ein-/Auskopplungen bewahren müssen. Web Focus verwendet die BizTalk .Net-Reihe von Tools, obwohl für mich beunruhigend die 2008-Versionen noch in der Beta sind. – MaSuGaNa

0

Jereme hat es richtig auf dem Rahmen. Ich werde kurz etwas Offensichtliches über Namensräume erwähnen.

Immer daran erinnern, wofür ein Namespace ist - es ist ein "Raum", in dem Namen leben werden. Insbesondere soll ein Platz geschaffen werden, der klein genug ist, dass die Leute, die Namen in diesem Raum erstellen, weniger wahrscheinlich doppelte oder verwirrende Namen erzeugen werden.

Dies funktioniert nur, wenn die Namespaces nach Organisationsmustern oder Domänenwissen organisiert sind. Ein einfaches Beispiel, das oft verwendet wird, ist ein Muster von Company. BusinessUnit. Anwendung. Die Theorie besagt, dass innerhalb der Gruppe von Entwicklern, die an einer bestimmten Anwendung arbeiten, die Wahrscheinlichkeit einer Namensduplikation geringer ist. Dies trifft nicht auf eine große Anwendung zu, in der Sie diese basierend auf der Ebene oder dem Bereich weiter auflösen möchten. In ähnlicher Weise ist die Geschäftseinheit zu groß, Sie wollen das auflösen.

Aber in allen Fällen versuchen Sie wirklich, Gehirngruppen zu partitionieren, da es die Gehirne sind, die die Namen erstellen.

0

Wenn Ihre Anwendung unter VB6 (nicht VB3) ist, dann empfehle ich dringend, das Redesign zu einer Klassenhierarchie in VB6 zuerst. Der Grund dafür ist, dass Sie bei jeder Konvertierung versuchen, das Verhalten der alten Anwendung zu erhalten. Die Projektlaufzeit reicht aus, um gleichzeitig ein Redesign durchzuführen.

Indem Sie das Design zuerst in der Originalsprache der Anwendung ändern, können Sie sicher sein, dass alle Fehler, die sich ergeben, auf das Design und nicht auf die Konvertierung zurückzuführen sind.

Ich habe in den letzten 20 Jahren drei große Konvertierungen unserer Software durchgeführt; (DOS zu VB3) (VB3 zu objektorientiertem Design in VB6) und (VB6 zu VB.NET).

Endlich ist es einfach, einen Entwurf in VB6 zu machen, der Ports zu VB.NET bereitwillig ist.Der Trick besteht darin, die spezifischen VB6-APIs und -Konstrukte hinter einer Schnittstelle (Grafik, Drucken usw.) zu verbergen.

Bei der Konvertierung empfehle ich von oben nach unten zu arbeiten. Ändern Sie zuerst Ihre Formulare in .NET, das die VB6-COM-DLLs aufruft. Dann wandle jede Ebene um, bis du die unteren DLLs erreichst.

Wenn Sie erneut versuchen, das Design zu ändern UND für eine komplexe Anwendung in eine andere Sprache zu konvertieren, verdoppeln Sie die Konvertierungszeit.

+0

Es ist VB6, daher das VB6-Tag. Ich möchte nicht unsere aktuellen Systeme importieren, sie haben Fehler und unsere Bedürfnisse haben sich seit ihrer Entwicklung geändert. Außerdem gibt es viel Codeverdoppelung in den bestehenden Anwendungen, die ich im neuen vererbungsbasierten Modell nicht haben möchte. – MaSuGaNa