Sunday Precon continued - Rocky on architecture
Rocky spent some valuable time discussing n-tier and n-layer architectures. A few memorable quotes:
"UI is expendable" - Avalon changes things again - you will have to re-write your UI to use it. Users always change their minds about UI - make it easy to change and keep business logic out of it
"Prevent code from leaking into the UI" - have, in some way, shape, or form, a Business Logic Layer that is separated from the UI
"Applications should be viewed as a set of layers" - nothing new really, but Rocky pushed distinction between tiers (implying network boundary) and layers, stipulating that layers provide code maintainability - you don't need tiers for this
And in terms of Visual Studio: "Object binding is at least as good as dataset binding - better because you have more control" - finally in .Net 2, business objects receive good UI design-time support
One attendee asked Rocky about MVC (Model/View/Controller pattern) - his answer was interesting. Rocky mentioned that MVC works for wizards and web programming, where there are specific sequences of interactions that the user needs to follow. In Windows applications, however, the user wants to have control, and a Controller tends to take the csontrol that the user should have. This jives with my limited exposure to MVC in windows applications - it tends to drive a multi-screen, somewhat modal user interface rather than the rich flexible "modeless" experience we have come to expect.
One thing I hadn't realized before was that you can inherit from a generic class with the type specified (for instance MyClass : List<int>). This is really handy in a business objects scenario where you want to deal with inherited collections.