Thursday, March 04, 2010
« New Chicago Silverlight User Group | Main | Good post on C#/VB co-evolution »

MCsla is a prototype that takes SQL Server Modeling (aka “Oslo” and “M”) and CSLA .NET, using them to create an end-to-end story. This story goes like this:

  1. Developer creates a business database for business data
  2. Developer writes concise DSL code
  3. Developer “compiles” DSL code into the SQL Server Modeling repository
  4. End user executes a runtime application, which dynamically creates a UI, business layer and data layer that uses the business database – all this based on the compiled DSL metadata stored in the repository

This saves the developer from a lot of work. In fact the developer writes perhaps 5% of the code they would have written to create the UI, business layer and data layer by hand.

See my discussion of the concepts and prototype in a three part video series:

Exploring SQL Server Modeling through MCsla

You can see the MCsla code in the CSLA .NET repository (web view) or grab it using any svn client from svn://svn.lhotka.net/csla/mcsla/tags/Video1001.

Friday, March 05, 2010 2:59:05 AM (Central Standard Time, UTC-06:00)
This is great! I always dreamt of some kind of XAML for CSLA! I think this will be it.

But what are the downsides of this way? Do you think it is already usable for prime time? I think debugging such an application will be difficult right now.

What do you expect, in how many years this will be the usual way to write business software?

Is it all based on CTP versions or are there already beta versions of the tools used?

Thanks for your answers!
MikeH
Friday, March 05, 2010 5:04:22 AM (Central Standard Time, UTC-06:00)
I am trying to download code using SmartSVN. But it reports following error:

"svn://svn.lhotka.net/csla/MCsla/tags/Video1001 does not exist"

Abbas
Friday, March 05, 2010 8:22:34 AM (Central Standard Time, UTC-06:00)
Abbas, sorry about that - just a typo (the URI is case sensitive):

svn://svn.lhotka.net/csla/mcsla/tags/Video1001
Friday, March 05, 2010 8:25:02 AM (Central Standard Time, UTC-06:00)
Mike, the code uses a CTP release of SQL Server Modeling - that hasn't been released yet.

I don't know if this will become a mainstream concern or not. It is hard to predict just how widespread the use of DSLs and dynamic runtimes will become.

To _really_ make the dynamic runtime concept work well, CSLA would need to enable a better way to create types at runtime - the prototype literally generates and compiles C#, which is pretty clumsy in my view.
Tuesday, March 09, 2010 8:30:09 AM (Central Standard Time, UTC-06:00)
Rockford Lhotka:
has any schedule or roadmap for mcsla? thanks!
linze
Tuesday, March 09, 2010 10:01:52 PM (Central Standard Time, UTC-06:00)
Rocky, I like to read you are researching on this, I'm not sure what is the schedule release of Oslo but I was wondering if you did any research on Entity Framework with VS 2010 and in particular the fact they are adding more support for Model First development, by adding functionality to the custom code generation with integration on the EF designer and T4 templates.

Let me know what you think about this as an alternate approach of a piece of technology that is about to be released


Mr.Underhill
Thursday, March 11, 2010 7:05:28 PM (Central Standard Time, UTC-06:00)
Very interesting. Rocky, you answered my #1 question there in your March 5 response. I would think the current rules, property and authorization systems in CSLA are not far off from being able to be dynamic as it is, and that seems like the main stumbling block, no?

My #2 question was whether this is really of value for complex applications. The elegance and power for straightforward crud apps is obvious, but what about a portal type application where some data is coming from a local SQL database, some from another Oracle database, and some from a 3rd party's SOAP service? I didn't catch from the videos how you map the runtime entities (classes) with the database schema, or is it assumed 1-to-1 by name match?
Dan Billingsley
Comments are closed.