转:The Build Your Own CAB Series Table of Contents 博客分类: C#GUI
The Build Your Own CAB Series Table of Contents
Yes, this is overdue. Here is an introduction and table of contents to my “Build Your Own CAB” series of blog posts on designing WinForms applications. You’ll see nothing here about user experience and not much WinForms technology. That stuff is covered quite well in a hundred different places. This series is about code. How to write it, how to write less, how to test it, and how to structure it. And there is code in user interfaces, no doubt about that. Code that’s complex. Code that changes every time you’re foolish enough to ask an end user how they like it. Code that’s hard to test if you’re not careful.
I’m still working on the series, so check back here occasionally for updates and new downloads. After I finish posting the menu state series I’m going to take a break for a while, but it’s for a good cause. The most persistent complaint throughout the series is that it’s not clear how all the pieces fit together. Understandable. At the same time that I’m writing this series I’m also working on my OSS StoryTeller tool that includes a sizable WinForms client. Last week I scrapped about half of the StoryTeller UI code so I could go back and incorporate the ideas that I’ve explored through “Build a CAB.” I can say without a doubt that I’m the one person who’s learned the most from “Build a CAB.” What I’m hoping to do is use the StoryTeller UI code to demonstrate fully working screens from end to end. The beauty of using OSS code for examples is that the code is automatically available for download.
I’ll finish before the end of the summer, I promise. Just set a bookmark to this page and I’ll keep updating it as the series expands. At the end I’ve committed to gathering all this stuff up into a single, printable PDF for download.
Downloads
Soon…
Table of Contents
There’s an extended introduction below.
- How I got into this mess – Look for the section “Microsoft, OSS, and the Patterns and Practices Team”
- Preamble
- The Humble Dialog Box
- Supervising Controller
- Passive View
- Presentation Model
- View to Presenter Communication
- Answering some questions
- What’s the Model?
- Assigning Responsibilities in a Model View Presenter Architecture
- Domain Centric Validation with the Notification Pattern
- Unit Testing the UI with NUnitForms
- Event Aggregator
- Rein in runaway events with the “Latch”
- Embedded Controllers with a Dash of DSL
- Managing Menu State with MicroController’s, Command’s, a Layer SuperType, some StructureMap Pixie Dust, and a Dollop of Fluent Interface
- MicroControllers
- Boil down the “wiring” to a Registry
- The Command Executor
- The Main Players
- Testing through the UI – Forthcoming
- Subcutaneous Testing – Forthcoming
- Creating the Application Shell – probably a couple posts
- Wiring the Components with an IoC tool – Forthcoming, but I may push this off into late summer
- A Day in the Life of a Screen – by popular demand (gripe), let’s look at a couple of complete screens through their entire lifecycle