Has anyone had any experience in building a 'real world' application with the Smart Client Software Factory, from Microsofts Patterns and Practices group? I'm looking for advice on how difficult it was to master, whether it decreased your time to market and any other general pitfalls.
The Smart Client Software Factory provides an integrated set of guidance that assists architects and developers in creating composite smart client applications. The software factory includes: QuickStarts, reference implementations, how to's, patterns, and Visual Studio . NET extensions.
A Smart Client is an application that uses local processing, consumes XML Web Services and can be deployed and updated from a centralized server. While the . NET Framework (Windows Forms) and the .
We used SCSF for a real world app with about 10 developers. It was a steep learning curve to set up and develop a pattern of usage, but once it was set up, introducing new developers to the project was VERY easy. Using CAB and SCSF was very beneficial to our project especially getting each developer up to speed and productive.
A downfall of SCSF is that it provides ALOT of functionality that may not be used (we probably only used 60% of the functionality).
I am also using SCSF for a new project and am considering refactoring to PRISM. PRISM allows you to cull the functionality that is not used. If you use WPF, I suggest looking into PRISM.
I don't have personal experience, so favor the advice of someone that does over mine. I know two coworkers that have used this factory and both had the same take-way:
So if you have up-front time to spare, I'd go for it.
We developed our SCSF Application (into recruitment) in 2006 with 8 (4 UI + 4 WCF Service) developers which is currently used by 350 users in one floor.
In beginning there was too much to learn as there were less tutorials, Am thankful to Matias Wolosky and Eugenio Pace who contributed a lot in patterns and practices/ codeplex. The key areas in which we scored were :-
1) Clear separation of UI and Business 2) Focussed role for developers 3) Module based on-demand structure of application 4) Easily deployable through clickonce 5) Ready patterns and helpers which makes developers life easy and more structured.
It has gained a lot of respect amongst users with time as it supports :-
1) RBAC - Role Based Access Control
2) Quick turnarounds of feature as we separated infrastructure services/Business services/ UI Helper services neatly and the entire application is module based (Best part of CAB).
3) Now we are thinking to move to WPF to add some more jazz element.
We use the Web Service Software Factory, and we really like it because it makes it easier for developers to follow standards and appropriate patterns. The learning curve for us wasn't bad - a few hours per developer at most.
Other than that, there aren't any other pros & cons worth mentioning.
We used SCSF for a real world composite app with 6 developers; the full team size was 14, including BAs, PMs, testers, etc. Like Torrey said, it was a steep learning curve for the 3 developers that didn't have OO or design patterns experience. Myself and two others had been OO-purists for years; so we took to CAB like ducks to water just by recognizing the patterns. Part-way through the project, we put together a one-week training course on OO principles and then design patterns. Once the other 3 went through this course, the productivity started to increase immediately.
My advice, make sure your team has sound OO and Design Patterns knowledge. The curve drops off when they can see patterns that they recognize.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With