IDesign Method with CSLA ?

IDesign Method with CSLA ?

Old forum URL: forums.lhotka.net/forums/t/4161.aspx


csa posted on Saturday, January 12, 2008

In the last months I have played around/used wcf and CSLA with more and more satisfaction, I really like the job Rocky have done :-).

After attended to both WCF Master Class (w/Michele) and The Architect’s Master Class (w/Juval) and have read the books from Rocky I have started playing around with the IDesign Method and use of the CSLA framework in the different layers and services.

Since every layer consist of services that are being called and there are "datacontracts" that are being sent between the services I think perhaps using CSLA "inside" every service could be a good idea.

I'm not saying this is ultimate-solution but I think this is a attractive way to get both a great arcitecture and easy objects to work with :-). I really think the thoughts of Juval (IDesign Method) is extremly appealing way to make software and I hope his crusade will succeed, but I'm really trying to close the gap between the theory and the practical.

When that is said I'm really wonder what other guys think about this? I'm also sorry of my bad English here.

Quote from Juvals class: "For the beginner architect, there are many options. For the Master architect, there are only a few."

Links:
The Architect’s Master Class, http://idesign.net/idesign/DesktopDefault.aspx?tabindex=0&tabid=23
WCF Master Class, http://idesign.net/idesign/DesktopDefault.aspx?tabindex=0&tabid=20
IDesign Method, http://idesign.net/idesign/download/IDesignMethod.zip

RockfordLhotka replied on Saturday, January 12, 2008

csa:

Quote from Juvals class: "For the beginner architect, there are many options. For the Master architect, there are only a few."

Which must end with "... And the Master knows that no one architecture solves all problems."

Juval is exactly right. While it might seem like a lot of options are valid, in reality only a few actually work in practice. Unfortunately you often can't know which will fail until you are months into a project.

At the same time, no one architecture is always right. And for larger or complex applications no one architecture will solve all problems within the context of the application!!

(For small to mid-size applications of average complexity that's not true btw. In many cases one architecture works just fine - assuming it is the right one Smile [:)])

If you have a large/complex application, you will (at a minimum) need an architecture for the OLTP portions of the application and an architecture for the back-office processing portions of the application. Odds are you'll also need an architecture for enterprise application integration (EAI - often now called SOA because SOA is the current fad for addressing this area).

CSLA .NET is particularly good at the OLTP portions of applications, and it plays reasonably well in the back-office areas (when combined with workflow/queued processing). It plays in the EAI space in a limited capacity, by providing an easy way to build your services.

A pure service-oriented architecture is almost the reverse. That kind of architecture plays very nicely in the EAI space, and reasonably well in the back-office areas (when combined with workflow/queued processing). But service-oriented architectures don't play particularly well in the OLTP space, at least if user interactivity is considered valuable (in other words when you use Windows Forms, WPF or Silverlight).

Personally, I assume that any large/complex application should start by looking at both CSLA .NET and a service-oriented approach. The two are very complimentary, and when combined with a bit of workflow/queued processing they provide a pretty complete solution.

But I wouldn't try to implement the OLTP portions of an app in SOA, nor would I try to implement the EAI portions in pure CSLA, because that would be misusing each architecture in the areas where they are weakest.

RockfordLhotka replied on Saturday, January 12, 2008

I should also note that Juval and I are good friends. We also have the most wonderful discussions on architecture every time we get together. At the start of every discussion we appear to disagree (even to each other), and after a couple hours we end up realizing we were saying the same thing, but we started from different beginning positions... Smile [:)]

I start with objects and OLTP. Juval tends to start with remote procedure calls and/or services and back-office processing. But the two always meet, and they are always necessary to build any large/complex system.

csa replied on Saturday, January 12, 2008

First of all I will said thank you for this discussion and great feedbacks. I think this discussion will evolve to something very useful :-)

I actually asked Juval yesterday about CSLA/"Rocky" and he stated that you guys are good friends. I really think the contribute you guys are making is extremely good for the industry :-)

This makes the journey for us earthlings much easier, better and faster...

Copyright (c) Marimer LLC