Roy Ogborn, Orbonyx Corp.

Microsoft .NET Architect, Developer, Mentor, Custom Software Developer

  Home :: Contact :: Syndication  :: Login
  6 Posts :: 0 Stories :: 13 Comments :: 0 Trackbacks

Article Categories

Archives

Post Categories

.NET

.NET & OO Mentoring / Training

Blogs Less Boring than Mine

Consulting

Software Analysis, Development, Design

Friday, September 24, 2004 #

The CSLA.NET Study Group decided to meet two days a week for two hours starting at 8 AM.  This schedule is working quite well.  Ninety minutes per session would have been a bit too short to complete the interesting discussions that are coming up. There are about six individuals in our group plus myself (I'm the facilitator).

Before our first meeting, I asked the group to read 8 pages from Chapter 1 of Expert C# Business Objects:

  • Distributed Architecture; p. 1
  • Logical and Physical Architecture; pp. 2-3
  • Business Objects; pp. 26-29
  • Architectures and Frameworks; pp. 39-40
  • Conclusion; p. 40

Everyone appears engaged, and almost all are participating in discussions.  I started off on the first day prompting individuals to talk about these sections.

What appears to be working much better after this first session is that I've broken up main concepts out of Chapter 1 and sent out “assignments” via e-mail. Each individual is responsible for presenting a particular concept.

My assignments for day 2 for specific individuals were:

  • Difference between Logical and Physical architecture
  • Why one might split an application so that it physically runs on different machines - What are the trade-offs to consider?
  • Difference between data-centric vs. object-oriented application models
  • Define the 5 layers in a 5 “tier” Logical Architecture
  • Difference between Presentation Layer and User Interface Layer
  • Optimal physical configurations of Logical Layers; When to choose which configuration?
  • In which layers/tiers does the business logic belong? Why?
  • Distributed Objects - Discuss designs for communication between tiers.
  • Compare/Contrast Local, Anchored & Unanchored objects. When to use which?
  • What is an architecture vs. an application framework. What benefits can be gained from using an application framework in an organization?

We got through almost all, with some heavy white-boarding. The two topics we didn't have time for this week were “Distributed Objects” and “Anchored, Unanchored & Local objects“.

Our next session was quite lively and all were engaged. We have one individual in the group (there's always one), who always presents a contrary view ... no matter what! His assignment was to discuss where business logic is supposed to appear in a n-layer logical architecture. His first statement was that he disagrees with the book, that business logic appears in almost all layers. Of course he's right ... the location of business logic is not black & white “it goes here”. But he had difficulty with the explanation that business logic should predominantly be centered in what Rockford calls the Business Logic Layer (BLL).

Even with the explanation that, yes, business logic winds up in the database (constraints and relations), and some needs to be in the UI and Presentation (especially regarding data validation in a web application), he could not agree with the term BLL. When pressed for a better name, he came up with “Number Crunching Layer” (the NCL?).

Skepticism is good, and questioning “the expert” (Lhotka in this case) is healthy.  And if nothing else, it leads to some good, sometimes entertaining, conversation.

For next week, I created a long assignment list ... no way we'll get through it all, but I want the participants to get their reading in.

Here's the list of what I assigned individuals to cover for next week:

  • Distributed objects (we didn't get to it)
  • Anchored, Unanchored and Local objects (didn't get to this one either this week)
  • Discussion of CSLA high level guidelines & basic design goals
  • Discussion of a few “more interesting” design goals in detail
  • Discussion of “UI in charge”, “Object in charge”, “Class in charge” design models
  • High level discussion of how objects can be enabled to better support .NET data binding
  • Discussion of object serialization
  • Discussion of Relational vs. Object Modeling
  • Discussion of Object Relational Mapping
  • Discussion on advantages / drawbacks of techniques for persisting objects
  • How is encapsulation preserved in CSLA.NET in a physical n-tier architecture
  • Application security issues
  • Framework design - Business Object Creation
  • n-Level undo classes
  • Data Binding support classes
  • Business Rule Tracking
  • Object Persistence support
  • Flow of control of persistence operations
  • How table based security is enabled, vs. Windows security

Not that I expect that we'll get through most of these next week. 

Roy

posted @ 11:49 PM | Feedback (5)