6 Stimmen

Was ist Ihre Meinung zu MS CAB (Composite Application Block)?

Ich bin gerade dabei, die Verwendung von CAB für ein neues .net 3.5 Winform-Projekt zu bewerten

Ich plane, das Infragistics-Toolset zu verwenden, die als "CAB-konform" bekannt ist

CAB hat zwar den unmittelbaren Vorteil, dass ich mich auf mein Geschäft konzentrieren kann, anstatt den grundlegenden Code für das Andocken, Anmelden usw. zu programmieren, aber ich habe das Gefühl, dass ich das gleiche Maß an Funktionalität auch selbst erreichen könnte (mit dem zusätzlichen Bonus an Flexibilität/Reaktivität, den man hat, wenn man den Code "besitzt").

Ich bin auf der Suche nach Feedback zu Microsofts CAB von Leuten, die es benutzen:

  1. Haben Sie Probleme/Wanzen erlebt?
  2. Haben Sie das Gefühl, dass CAB Ihnen Zeit spart?
  3. Gibt es zusätzliche Funktionen, die ich nicht kenne (neben den bewährten Praktiken von Docking/Login/WorkerThreads)?

7voto

gilles27 Punkte 2181

Ich habe vor ein paar Jahren einige Erfahrungen mit CAB gemacht und bin zu dem Schluss gekommen, dass es zu komplex ist und eine steile Lernkurve hat. Die Vorteile, die es bot, waren den Preis für die Einarbeitung in das Programm nicht wert. Aber nehmen Sie mich nicht beim Wort, sondern versuchen Sie, einige der Labore zu besuchen und sehen Sie, was Sie davon halten.

Jeremy Miller hat eine ausgezeichnete Reihe von Blogbeiträgen über den Aufbau eines eigenen CAB geschrieben

http://codebetter.com/blogs/jeremy.miller/archive/2007/07/25/the-build-your-own-cab-series-table-of-contents.aspx

Es lohnt sich, einen Blick darauf zu werfen, denn man kann sich dort einfach das nehmen, was man braucht.

Ich würde Ihnen raten, mit Ihrem Projekt weiterzumachen, anstatt von vornherein einen Rahmen zu schaffen. Während sich das Projekt entwickelt, sollten Sie Gelegenheiten erkennen, den Code in Basisklassen zu refaktorisieren und so ein Framework aus Ihrer Anwendung zu entfernen.

Auf diese Weise erhalten Sie einen Rahmen, der Ihren Anforderungen entspricht und den alle Mitglieder des Entwicklungsteams verstehen werden. Was auch immer Sie tun, bauen Sie nicht von vornherein einen Rahmen - das ist der Weg ins Verderben :-)

4voto

AlejandroR Punkte 4943

Wir haben CAB+SCSF für eine Reihe von Projekten verwendet. Die Lernkurve ist in der Tat steil. Wahrscheinlich sind Sie nach dem ersten Monat auf der Höhe der Zeit. Andere Nachteile:

  1. Zu viel Komplexität
  2. Muster-itis
  3. Aufwändige Codegenerierung
  4. Schwer zu debuggen

Die Vorteile:

Befolgt die bewährten architektonischen Entwurfsmuster in der Branche:

  1. Modell-Ansicht-Präsentator
  2. UI-Komposition
  3. Injektion von Abhängigkeiten, Inversion der Kontrolle
  4. Lose gekoppelte Ereignisse
  5. Modularität
  6. usw...

Die Verwendung von CAB-SCSF führt langfristig zu weniger Fehlern und besser wartbarem Code. Wenn Ihr Projekt die anfängliche Lernkurve verkraften kann, empfehle ich es auf jeden Fall.

1voto

JP Alioto Punkte 44283

El CAB wird zugunsten der SCSF . Sowohl das CAB als auch das SCSF bieten einen gewissen Nutzen im Hinblick auf die Standardisierung der Rich-Client-Entwicklung über Projekte hinweg (wenn man sie auf diese Weise nutzt), aber beide sind sehr schwergewichtig.

0voto

Michael Prewecki Punkte 2024

Ich habe CAB zwar noch nie benutzt, aber es wird mit dem Quellcode ausgeliefert, so dass Sie immer noch die Möglichkeit haben, es genau an Ihre Bedürfnisse anzupassen, wenn Sie zusätzliche Flexibilität benötigen, die der Application Block nicht bietet.

0voto

EndlessSpace Punkte 1210

Wir haben unsere Unternehmensanwendung auf dem CAB-Framework aufgebaut, aber viele Teile davon an unsere Bedürfnisse angepasst.

Aus dieser Erfahrung kann ich sagen, dass CAB besser geeignet ist, wenn man eine sehr flexible und modulare Architektur benötigt und eine klare Trennung zwischen der Entwicklung für die Benutzeroberfläche, der Geschäftslogik und der Datenschicht besteht.

CAB hat den Nachteil, dass viel Code generiert wird und die Entwickler manchmal dazu verleitet werden, komplexe Mechanismen zu verwenden, um einfache Ergebnisse zu erzielen (z.B. übermäßige Verwendung des Ereignisveröffentlichungs-/Abonnementmodells, mvp-Muster selbst für die einfachste Benutzeroberfläche, ...)

Wenn Sie eine Einführung in dieses Thema wünschen, finden Sie eine ausgezeichnete Serie von Rich Newman unter http://richnewman.wordpress.com/intro-to-cab-toc/

Wenn Sie nur von Dependency Injection/Inversion of Control Gebrauch machen wollen, ist das Managed Extensibility Framework ( http://mef.codeplex.com/ ), kann eine sehr gute, leichtgewichtige Alternative sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X