Icky CAB

Ok, I’ve been using CAB, the SCSF, in “pseudo kinda sort of” Model View Presenter Pattern usage.  The application that is being developed definitely uses the core of the mentioned products.  Recently as I read some techno babble by Glenn Block who works directly on the factories and tools themselves I came to a scary conclusion.  Several of the prospective issues of our CAB/MVP implementation and to help further a solution for others out there using the CAB/MVP Patterns I figured I’d relate some non-business specific solutions.  The bullet list below is from Glenn’s blog entry.

  • Ability to support multiple teams developing different parts (modules) in isolation.- Ability to extend existing and add new modules to the application without recompilation.- Loosely coupled components that can share data and interact with one another as well as the UI (i.e. populate menus, toolbars, and status bars)- Standardized and extensible layouts.- Pluggable UI components.- Pluggable application services that can be globally accessible such as Authorization and Authentication.- Separation of UI, Business and Infrastructure concerns.- UI Testability.- Reduction of repetitive coding tasks.- Simplified deployment.

 My fears, the short list, is appended to the respective bullet point listed below.

  • Ability to support multiple teams developing different parts (modules) in isolation.

[Problem][Developers, management, and other powers often push for vertical development either purposefully or accidentally.]

[Solution][When developing against CAB/MVC foundations and patterns the various layers should always be broken out to the specific teams that can best handle and develop against the specific layers.]

  • Loosely coupled components that can share data and interact with one another as well as the UI (i.e. populate menus, toolbars, and status bars)

[Problem][Often groups tend to accidentally tightly couple things when development is hurried.  When this occurs a major benefit becomes moot.]

[Solution][A person or persons should be delegated to refactor the code regularly to insure that the pattern stays loosely coupled.  This can also be done during code reviews and turned into a great session of to-do and not to-do items.  The key of staying loosely coupled is code reviews and refactoring the code on a very regular basis (weekly) to stay on top of what is going on.]

  • Pluggable application services that can be globally accessible such as Authorization and Authentication.

[Problem][If the CAB/MVC is used with an architecture that does not directly allow clear modularized usage of authorization and authentication the CAB/MVC also becomes unwieldy and difficult to manage.]

[Solution][Integrate and create an LDAP based (AD if need be) security integration that can be globally accessible via the plug-able application services.  Either way this scenario is always specific to the particular architecture and pattern implementation of the particular business.  It is very difficult to clearly use modularized authorization and authentication when the application is many layered and complex.  However, when an application is many layered and complex it is even more important that the authorization and authentication ARE modularized.]

Each of these prospective problems is easily overcome with a little development effort and acuity to code reviews and refactoring, but as always should be brought to focus right away to alleviate any magnifying schedule time and costs to a project.

Technorati Tags: CAB, SCSF, MVP, MVC, UI Components, model-view-presenter, model-view-controller, refactor, refactoring

del.icio.us Tags: CAB, SCSF, MVP, MVC, UI Components, model-view-presenter, model-view-controller, refactor, refactoring

SCSF – Smart Client Software Factory – May 2007

So I just realized the latest SCSF has been released.  This is a software package that we’ve been using for the entire project that I’ve been on for almost a year now.  The SCSF has saved us tons of time, even though it is somewhat cumbersome and if one is unfamiliar with CAB/MVP/MVC there is no reason to really dig through it.

There are a few points that I’ve noted from the various blog entries at Mariano Scklanny’s Entry,  Miguel Saez‘s WPF post, Blaine‘s entry, and the respective link to getting started with the Smart Client Software Factory.  An install helper is on the Codeplex site also.  Also a bit o’ Technobabble is a cool and quick walk through of the WPF & SCSF features.

Major Cool Points That I know of so far:

  • Better ClickOnce Deployment Capabilities.- WPF Support & Interoperability.- Code Generation Support for VS 2005.- A better dependency checker (for installation)- The “Disconnected Service Agent Application Block”.  Yeah!- Less mess during implementation.

Now the biggest problem with all of these cool changes is that they aren’t particularly backwards compatible (from what I’ve read) so these cool new features won’t be implemented in the project I’m on.

Sad [:(]  Needless to say though, I’m looking into the changes a bit further.  Smile [:)]

On the last note I’m gonna throw into this post is that the SCSF is going open source.  Yeah, that’s right, open source.  The SCSF Contrib is available with infoz on the CodePlex site also.

Catch the SCSF May 07 download.

Important Reads, Notes, and Ideas to Grasp

Anti-Patterns are dangerous, Patterns are cool, and useful, and good, and life saving, and career advancing, and…  you get the point.  Avoid the anti-patterns, live healthy.

Patterns don’t work if refactoring is not frequent enough to maintain pattern integrity.  A major anti-pattern that creeps in all to frequently to projects.

Unit Testing Without TDD Hurts.

What could be considered controversial and more possible controversial stuff.

More tips in the works.  I’m in the process of reviewing Juval Lowry’s Code Standards, Microsoft’s Patterns and Practices Standards, and some other private software shops standards and when complete will have some 2 cents or more to throw in the bucket!

Search and Navigation Improvements on MSDN

Anyone using Visual Studio .NET reading the start page would know about this, but I thought it neeed a dedicated post.

Microsoft has completely redesigned the navigation and search of MSDN.  Smile [:)]

I personally dig the new design, it isn’t as convoluted in other browsers (like Opera and Firefox).  In IE it also works smoother than the previous bloated tree version (which still appears sometimes).