Getting started, soup to nuts

Topics: CAB & Smart Client Software Factory
Jul 27, 2006 at 5:08 PM
originally posted by: bil_simser

Hi guys,

I'm just groking the whole Smart Client Factory thing now and finally (after 3 test apps and reading the CHM file about a million time) I think I have it down.

One problem I'm seeing for newbs is two problems:

1. There's two ref apps (I find the appraisal app easier to walk through) but for example some of the things done in the Appraisal app doesn't match what the factory creates. E.g. accessing the Presenter property in the MyAppraisalsView class has both a getter and setter and the setter has an extra call to Guard.ArgumentNotNull.

2. The help file gives examples of the individual steps, but it's disjointed. The example for adding the MVP pattern uses a ShowDescription method (with no reference to what to do in the view to update it), and the example for mapping business entities to ui elements uses an Attachment class. The pre-req is to have the view created (manually or through the recipie) but that example doesn't use the Attachment for it's example.

Given the two points, it's a difficult roadmap to walk through from start to finish. Given the fact that the example apps (nice apps mind you) don't really follow the help files as they have their own nuances. This makes it confusing to a) know what steps you have to do in what order and b) what depends on what (e.g. do I need to create a service agent in order to publish my model to my view?).

I'm going to sit down and write a series of blogs on using the Factory, just because I think it's a great thing, and will go through simple to complex examples so people can follow along and hopefully not get lost along the way. In any case, I just wanted to point this out to you guys from my cheap seats and something to consider for documentation and guidance perhaps later down the road.

Thanks and keep up the excellent work!
Jul 27, 2006 at 6:25 PM
originally posted by: technoguys

Very cool!!

Finally someone seems to have stepped up to the challenge. Please let us know as soon as the first one is out.

Jul 27, 2006 at 7:06 PM
originally posted by: bil_simser

Just to note, there are a couple of threads (the 3 parter in particular) that touches on this (sorry, took me a bit to get through all the threads here to catch up). So I apologize if this is a dupe. At least I'm not asking for a VB version <ducking>

So to make this thread a little more useful I wouldn't mind if people contributed to exactly what examples they wanted to see? Here's a rundown on what I'm thinking for a blog series. Each blog entry fairly long, but completely self-contained. Blog entry examples can be connected together (don't ask me how, still thinking that one out). Will probably take a couple of months to get through everything.

-Hello World: Create a simple app that just has a single view or something simple to get things started.
-PubSub: An app with multiple views all independantly updating but an event that publishes to all of them (I'm thinking some kind of engineering type application with lots of views of dials and such, but global published events say to reset all switches)
-Smart web reference consumer: Implement publically available web services (Amazon? Stock quotes? Flickr?) and present various views of the information coming back (maybe compare stock quotes against multiple services).

Additional samples that wouldn't be connected:
-NotepadSC: A notepad clone but using the factory (might be fun)
-File Previewer: A file explorer clone again using the factory (with the ability to create dynamic modules that load in for previewing files, 1 module per file type)

Feel free to add your own ideas to the thread and I'll see what I can do. In the end, not only do I want to know this stuff inside and out, but also get it out to everyone's whos scratching their heads wondering what to next (or first for that matter).


Bil Simser
Jul 28, 2006 at 3:39 AM
originally posted by: marianoszklanny

Thanks for the detailed feedback and colaboration! - much appreciated.

These weeks we've working on the Hands On Labs for the SC-SF, and we plan to release them shortly. The Hands On Labs will provide you ordered steps so that you will find a well defined roadmap to walk through from start to finish.

Stay tuned!

Mariano Szklanny
Jul 28, 2006 at 4:18 PM
originally posted by: bil_simser

Awesome to hear about the HOLs as they're very useful. I have started my trek but I'm starting with the CAB first then after a half dozen entries or so, I'll shift into the Software Factory. Thanks!
Jul 28, 2006 at 4:52 PM
originally posted by: MichaelDaniel

Any idea on when you expect to release the HOLs? (Can't wait! Keep up the good work ;)
Jul 29, 2006 at 7:16 AM
originally posted by: timomsft

We're revising the HOLs to address the challenges some of users have had with getting started with the SCSF. Having the HOLs ready at the time of release would have been great. But one of the benefits of a (hopefully not too large) delay is that we can use feedback to improve the content of the labs.

Clearly some have found it challenging to get started with the SCSF, and that's a bummer. We take that feedback seriously, and will look to improve the experience. In fact, we fed much of the feedback to the other factory teams. For example, we clearly missed the mark on giving guidance on what to do next after you have run a recipe. The soon to be released Web Service Software Factory will present clear information about the next logical steps.

Let me share a few of our thoughts, and the things we wrestled with, as we developed the SCSF.

- SCSF requires understanding CAB, and CAB is not quickly digested. As a result, we did add the documentation chapter that provides a summary of CAB. But we hoped that the existing CAB docs and labs would help, rather than investing more time into customizing and incorporating CAB docs into the SCSF (at the expense of other content). But as one user pointed out, linking to the CAB docs in our generated code did cause some confusion, as how CAB docs naturally don't describe things in the way the SCSF uses it (largely because SCSF represents a lot of learnings about how customers used CAB after it was released.)

- We chose to provide a composite set of guidance in different forms - docs, guidance package, reference implementations, and HOLs. None of which was intended to be alone sufficient as "the guidance." This allowed us to provide much more breadth, with appeal to different types of learners, at different stages. But it does require users to consume more than just one type of content, and can make getting started more of a challenge.

- We made some significant and (what we felt were) important changes between the last weekly drop and the final release. The refactored solution structure and the action catalog for example. This required us to refactor the guidance package, the Appraiser Workbench reference implementation, the Branch Client reference implementation and the docs, all at a time we were preparing for release. While we felt the parts were consistent, they may not have been as comprehensive as they would be in an ideal world, with no schedule or budget restrictions (if you live in that world, please send us directions, we'd like to come visit).

All that being said, we'll try to get the HOLs to you soon, with some key things to improve the getting started experience. Keep up the feedback - we appreciate it!

Aug 2, 2006 at 7:25 AM
originally posted by: burningsnow


As a newbie it is very difficult to start with scsf. The main problem is a that there is in my opinion no good documentation how in example Appraiser Workbench works.

I just read the documentation and didn't figure out this point.

What I mean is that there is a very good job made by the team and I hope I can use scsf in my actual project, as soon as the HOLs are published.

I'm waiting for the HOLs and until it's not published I hope I can figure out how the examples work.

Thank you very much for work again.
Aug 2, 2006 at 7:33 AM
originally posted by: askew

The best way to get ready to use SCSF is to study and understand the CAB architecture. It is a fundamental part and that is where the learning curve exists, not with the SCSF, imho.

CAB HOLs are here:
Aug 3, 2006 at 1:34 AM
originally posted by: burningsnow

Thank you very much for your post.

I think I studied them correctly, but I still don't know how to start.


I created a SCSF Application and added a Business Module. In this Business Module I've added a View. In this view is now a DataGridView.

Now I would like to add this View to the Workspace.

So I wanted to do this with the ModuleController.AddViews().

How can I add my View?

Thank you very much in advance.
Aug 3, 2006 at 1:50 AM
originally posted by: shahramjam

Is there any chance for some sample code about using smart web reference and WSE 3.0?
Aug 3, 2006 at 3:47 AM
originally posted by: bil_simser

The factory is missing updating the ModuleController in the module when adding views (probably because it's not assumed that all views should be added to the workspace) so you need to do something like this in your ModuleController.AddViews method:

MyViewClassName view = WorkItem.Items.AddNew<MyViewClassName>();
Aug 3, 2006 at 4:09 AM
originally posted by: askew

You should consider opening the reference implementations that come with SCSF in another instance of VS2005. Then you can refer to how it is done in that source. It's easy and you will learn a lot quickly, imho.
Aug 3, 2006 at 5:58 AM
originally posted by: burningsnow

Sorry, but it doesn't help me. There are to much things that I don't know and how to handle the stuff.

I'll wait for further docs or HOLs.

I think I need a Step-by-Step Guide. Even after the CAB HOLs I don't understand much more.