2009-01-25 10 views
6

ich dabei bin von der Verwendung von CAB für ein neues .net 3.5 winform Projekt AuswertungWas ist Ihre Meinung zu MS CAB (Composite Application Block)?

Ich plane, die Infragistics Toolset zu verwenden, which is known to be 'CAB compliant'

Während CAB den sofortigen Kopf zu lassen, mich auf den Fokus besitzt Anstatt einfach Code für Docking/Login/etc zu programmieren, habe ich das Gefühl, dass ich in der Lage sein würde, das gleiche Niveau an Funktionalität zu erreichen (mit dem zusätzlichen Flexibilitäts-/Reaktivitätsbonus, den Sie haben, wenn Sie den Code besitzen).

Ich suche ein Feedback zu CAB Microsoft von Leuten, es mit:

  1. Haben Sie Probleme/Bugs?
  2. Haben Sie das Gefühl, dass CAB Ihre Zeit gespart hat?
  3. Gibt es zusätzliche Funktionen Ich weiß nicht kennen (neben Docking/Login/Worker Best Practices?)
+0

Der obige Link ist nicht mehr gültig. Ich suchte nach [Composite Application Block] (http://www.infragistics.com/help/search?q=Composite%20Application%20Block) und fand diese [Übersicht über die NetAdvantage CAB Extensibility Components] (http: // www. infragistics.com/help/topic/7b645338-0b4b-44d6-925f-7d43584575dc), die wie ein guter Ausgangspunkt aussieht. – surfmuggle

Antwort

0

Während ich habe eigentlich nie CAB verwendet, es wird mit dem Quellcode so würden Sie noch Sie können sie genau an Ihre Bedürfnisse anpassen, wenn Sie zusätzliche Flexibilität benötigen, die der Application Block nicht bietet.

+0

Ich würde immer noch gezwungen sein, meine Änderungen erneut anzuwenden, wenn ich beispielsweise auf eine neue Version von CAB aktualisieren möchte. – Brann

+0

Sehr wahr, aber ich würde die Bemühungen anderer nutzen, bis meine Geschäftslogik solide war, und dann über irgendwelche Verbesserungen im Bereich der Klempnerei nachdenken, indem irritierende Abhängigkeiten beseitigt wurden ... UX ist alles andere als CAB kann nicht so schlimm sein, es sei denn, Sie beenden Ihr Geschäft Logik mit der Benutzeroberfläche. –

7

Ich hatte einige Erfahrung mit CAB vor ein paar Jahren und meine Schlussfolgerung war, dass es zu komplex und hatte eine steile Lernkurve. Daher waren die Vorteile, die es bot, nicht den Preis wert, um damit Schritt zu halten. Aber nehmen Sie mein Wort dafür nicht, versuchen Sie, einige ihrer Labors zu folgen und zu sehen, was Sie denken.

Jeremy Miller schrieb eine ausgezeichnete Reihe von Blog-Posts über Ihr eigenes CAB Gebäude

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

diese wert sind einen Blick, wie Sie gerade von dort nehmen könnte, was Sie brauchen.

Mein Rat wäre, mit Ihrem Projekt zu beginnen, anstatt einen Rahmen im Voraus zu bauen. Im Verlauf des Projekts sollten Sie Möglichkeiten erkennen, Code in Basisklassen umzuwandeln und ein Framework effektiv aus Ihrer Anwendung zu extrahieren.

Auf diese Weise erhalten Sie ein Framework, das Ihren Anforderungen entspricht und das alle im Entwicklungsteam verstehen. Was auch immer Sie tun, bauen Sie nicht einen Rahmen vorne - da liegt der Weg zum Ruin :-)

4

Wir haben CAB + SCSF für ein paar Projekte verwendet. Die Lernkurve ist in der Tat steil. Sie werden wahrscheinlich nach dem ersten Monat auf dem Laufenden sein. Andere Nachteile:

  1. Zu viel Komplexität
  2. Pattern-itis
  3. Codegenerierung aufblasen
  4. schwer zu debuggen

die Profis:

Folgt die besten Praktiken architektonische Gestaltung Muster in der Industrie:

  1. Model-View-Presenter
  2. UI Zusammensetzung
  3. Dependency Injection, Inversion der Steuer
  4. lose gekoppelter Events
  5. Modularität
  6. etc ...

Mit CAB-SCSF auf lange Sicht wird es weniger Bugs und mehr wartbaren Code geben. Wenn Ihr Projekt den ersten Schlag der Lernkurve leisten kann, werde ich es definitiv empfehlen.

+2

Punkt 3 sollte wahrscheinlich "Dependency Injection" (oder "Inversion of Control Container") sagen – galaktor

+1

Lernkurve ist nur steil für diejenigen, die OO Design Patterns nicht kennen. Ich hatte ein Team von 6; 3 wusste OO und Design-Muster, und die anderen 3 nicht. Diejenigen, die das Wissen hatten, nahmen CAB/SCSF wie Enten zu Wasser mit sofortiger Produktivitätssteigerung. Diejenigen, die das nicht taten, ertranken praktisch; vor allem, weil sie nichts für OO oder Design-Muster interessiert. –

+0

Lose gekoppelte Ereignisse können auch ein Nachteil sein ... Zum Beispiel gibt es keine Kompilierzeitüberprüfung, dass die Signatur des Ereignisbehandlers vom Aufrufer erwartet wird. –

1

Die CAB wird zugunsten der SCSF zurückgezogen. Sowohl CAB als auch SCSF bieten einen gewissen Wert hinsichtlich der Standardisierung der Rich-Client-Entwicklung in Projekten (wenn Sie sie so verwenden), aber beide sind sehr schwergewichtig.

+3

SCSF kapselt CAB; CAB ist nicht im Ruhestand. –

0

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

Aus dieser Erfahrung kann ich sagen, dass CAB besser geeignet ist, wenn Sie eine sehr flexible und modulare Architektur benötigen und es eine klare Trennung zwischen der Entwicklung für die ui, Geschäftslogik und Datenebene gibt.

CAB hat seine Nachteile, viel Code zu generieren und manchmal Entwickler zu veranlassen, komplexe Mechanismen zu verwenden, um einfache Ergebnisse zu erzielen (wie übermäßige Verwendung der Ereignispublikation/Subskriptionsmodell, mvp-Muster für selbst einfachste ui, ...)

Wenn Sie eine Einführung in das wollen, gibt es eine ausgezeichnete Reihe von Rich Newman in http://richnewman.wordpress.com/intro-to-cab-toc/

Wenn Sie nur die Verwendung von Dependency Injection/Inversion of Control, dann Managed Extensibility Framework (http://mef.codeplex.com/) machen, können sei eine sehr gute, leichte Alternative.