CSLA into the future

CSLA into the future

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


RockfordLhotka posted on Wednesday, August 20, 2008

I have blogged about some thoughts I have regarding what I may do with CSLA in the future.

http://www.lhotka.net/weblog/CSLAIntoTheFuture.aspx

I welcome any thoughts you may have to offer, thanks!

ajj3085 replied on Thursday, August 21, 2008

Well, I certainly wouldn't mind the framework itself being C# only, since I'm a C# guy.  The idea of two books I think is a good one.   I personally wouldn't want to lose a book describing how the framework itself works.  I just find it extremely useful to figure out how I'm supposed to do something if I know how the framework is built.  But sometimes I do wish there were more detail in how to use the framework.  The ProjectTracker doesn't do enough justice to what Csla is capable of.

tmg4340 replied on Thursday, August 21, 2008

Give me just a minute to don the flame-retardant underwear...

 

 

I honestly think you'd be better off dropping the VB.NET version of CSLA.  FWIW, Microsoft generally recommends this "lower-level" type stuff be done in C# anyway.  Sure, you can do it in VB.NET, and I know you're a VB.NET developer.  But who are we to buck The Great Microsoft Directive?  Stick out tongue [:P]

Seriously, though, I think it will serve you better in the long run to confine your framework programming to one language.  Whether you choose C# or VB.NET is up to you... but you know the numbers.  I don't care either way, because I can use the framework in any .NET language I choose.

I would also second a book (or even a series of whitepapers, if they take less time) that's more geared towards how to use the framework to build apps.  While I certainly appreciate knowing how the framework works, and know that the current book is an extremely vaulable reference to have, I believe many people would find a "how to use it/best practices/patterns of use" book to be more valuable.  And PT just doesn't show that.  It's not really broad enough to cover all the areas - but maybe more importantly, because you are trying to show different ways of using CSLA, many people get confused.  I've seen more than one person shake their head and say, "Why can't he just do it one way?  Which way am I supposed to use this?  Which technique is best for the situation?"  We see more and more of those types of questions in the forum.  While you can argue that the forum might be the best place for those, many people don't want to buy a book on a framework only to find out they have to wade through a bunch of forum postings to figure out how to use it.

(And the introduction of managed fields and other improvements in 3.5 has only served to make some of those discussions more confusing - especially when the framework creator admits he mixes his techniques.  Smile [:)])

For better or worse, the trend coming from Microsoft seems to be that the API, and using that API in your application, is more important than knowing the dirty undercarriage of the technology you're using.  Others will disagree with that, and I do to a certain extent.  But the bottom line is that the main reason many folks use the framework is to save them time in building apps - without having to know all the gritty details.  IMHO, that's not the best position to take, but we only have so much time in the day.  And this push from MS has shifted the view of many programmers away from the more technical guides, and into more "how-to" type books.

- Scott

phowatt replied on Thursday, August 21, 2008

I have been a VB.Net developer until my last project which was C#.  I must admit that I find the VB development environment friendlier that C# but must concede that there is a undeniable tide toward C#.  I think that if you had just one version of the framework and it was in C# that would be fine but I would like to see more in the way of samples, templates, and books regarding the use of the framework in both C# and VB.  Most of us do not need to mess with the framework.  I would think and if we are in the debug mode even those who do only VB should still be able to follow the C# code.  If there are those who really need or want a VB version of the framework maybe they could  become a part of the community that does the conversion.  In the long term you may consider turning over the whole thing to some kind of CSLA freeware community unless you want to continue to support it for your retirement.  Perhaps you would prefer to fish or something else.

ShawnCamp replied on Thursday, August 21, 2008

Rocky,

I have been VB developer since the beta days of .net.  I met you at briefly at TechEd 2005 and jokingly commented that C# was for amateurs!  I have since ventured over to the dark side and realized that the grass is actually greener over here! I would welcome a C# only version of the framework, as well as a few other important PR related features.

I've used CSLA for years, but I'm not the best at teaching others about why it is so useful. When I hand developers an 800+ page book on CSLA, they instantly shy away because of the perceived effort it will take them to learn something new. The only way for me to initially keep them interested is show them some cool and well groomed user interface that I’ve written that uses CSLA on the back end. (Cool and well groomed aren’t really the adjectives I’d use to describe the Project Tracker application.) During the presentation my audience first notices the error provider icons, and then the undo features. I jump into code and their interest is maintained by the absence of any business logic in the code behind and how bare the UI class ends up being. After discussing other advantages of CSLA, with any luck by that point they’ll start reading the book. However, more times than not they’ll come back a few days later and say….”Well I keep reading the book and it explains how the framework is built, but I still haven’t learned how to use it”.

Considering myself an architect (I attended your session this year on “The Making of an Architect” at TechEd, so I’m not sure you’d consider me one! J), I find it VERY valuable to know how it’s built. But for someone just learning CSLA, someone with a project manager on their back each day demanding results, I think it’s more important to give them some quick wins in the way of being able to show what they’ve learned. They could then be more optimistic to their project manager that they are on to something good and the time they’ve spent hasn’t been wasted.

So a C# only version of CSLA, more examples, and a snazzy new Project Tracker application seems like the way to go to me. The time saved from maintaining the VB versions would give you faster turn times on documentation as new features are added.

Thanks for all you do!

Shawn Camp
www.linkedin.com/in/shawncamp

 

triplea replied on Thursday, August 21, 2008

I like the 2 book idea (1 for framework description and 1 for more in detail on how to use CSLA/patterns and all other suggestions). Maybe in that how-to-use CSLA book you could incoroprate 4-5 chapters on how to use CSLA with different UIs which is causing space issues in the all around book you are currently working on.

Being a C# developer I don't mind about the absence of CSLA in VB but I think having the community support a VB version would be a good idea. There are some very capable people in these forums that are using VB and I am sure there will be interest in taking up the challenge.

MadGerbil replied on Thursday, August 21, 2008

I've used VB.NET for years, only recently switching to C#.

I found the transition to be trivial.

If I had to vote, I'd vote for a 2nd book that has several examples of the framework being used to solve real world problems.   The 1st book containing the design and implementation of the framework with a PT example is fine.  A 2nd book with more complete applications would be better.

Since you will likely be writing this second book may I make a suggestion as to an important addition?  I absolutely lose my MIND over implementing some sort of logging - I'd love to have that written into the framework.

What I mean is that I've got a Configuration object with several child collections.  Any time a value changes on an object I write a message like this to a log table "User #1: First Name value changed from "Rocky" to "MadGerbil".  I record the date, the logged on user's name, and logtype (for easy filtering) and so forth.   This gives me a headache because I want to log when a User is created as well (before the User#, which is an autoincremented field in the database) is assigned.  Also, if you undo the logs entries have to undo as well.  All the child objects are writing to the root objects log collection (ideally).

Anyways, I love some of the things you did in the PT UI, I'd like to see more examples of what can be done - even if it is all in C#.

 

JoeFallon1 replied on Thursday, August 21, 2008

I am a VB.Net developer. I would prefer you maintain the framework in VB.Net rather than C#. But I am in the extreme minority on that viewpoint. I can see the writing on the wall. So I can live with a C# framework as long as I can use VB.Net code to inherit from it and write my BOs the same way that I do today. I also agree that having 2 books is a better idea. And a better application which shows the *best* ways to use CSLA (rather than a mixed app that shows *every* way to use CSLA.)

Joe

 

dg78 replied on Thursday, August 21, 2008

Me too, I am a VB developer and I agree at 100 %  with all points that Joe wrote.

 

I think that this "extreme minority" is not so small. Smile [:)]

 

Dominique

JohnB replied on Thursday, August 21, 2008

While I am a VB developer, I agree with everyone else, dropping VB support will not have an impact on our use of the framework.

vdhant replied on Thursday, August 21, 2008

JohnB:
While I am a VB developer, I agree with everyone else, dropping VB support will not have an impact on our use of the framework.

I wonder though if it was the difference between having:

 

A CSLA that still had a VB version but... took months and months between releases, where the primary party that is responsible for maintaining the framework is not enjoying it any more, this ultimately resulting in less spend time being spend on development of the framework because of how much of a headache it is to do something twice every time a change is made and thus ultimately resulting in less releases, less features, etc, etc ...

 

To having a CSLA that was C# only, keeps moving forward, is well supported and that new features, functionality and release are regular and guaranteed indefinitely.

 

This may be a too simplistic view of the topic but I think this is the reality of what will occur.

 

 

vdhant replied on Thursday, August 21, 2008

In terms of where to have a book that describes the framework itself in-depth I would really really really encourage you to keep doing this (I think only having a C# version is fine).

 

It turns out that when I bought your book, I accidentally did so (as I was after a different book) and I was going to return it. I wanted a book on creating frameworks from the ground up, what you need to take into account, the decisions that you come across, etc etc. So when I read the blurb I had to buy it because I had found a book on this very topic. When I got home I quickly started to scanned through the book and saw that it was very much about a framework called CSLA and hence made an assumption that it wouldn’t be the book was going to be a book like ‘how to use dot net nuke’.

 

I was ready to return the book… but then as I was on the train and going to return the book I decided to read the first chapter and I must say I was blown away. Next time I looked up I had gone right to the end of the train line (about 15 stops past where I was intending to go) and the train was starting to go back in the other direction. Guess what, I didn’t mind in the slightest and kept on reading (although I kept a much closer eye on what station I was getting to when I go closer to home).

 

Since then I have not read the whole book cover to cover (although I have read the vast majority of it) but I have gone through pretty much every single every line of code in the framework (note that did take a while). I did it because I wanted to see what was going through the head of someone who was writing a business framework and the decisions that are made along the way.

 

I can say with all honesty that in terms of my knowledge in .net and software design/architecture that buying that book was the best thing that has every happened to me during my career. I know that not everyone cares about the hows and whys, but for me, this has allowed me to go on and develop systems (some of which use CSLA) and frameworks that are used by thousands of people with great success. That book was for me the moment when everything clicked and all the pieces I had floating around in my head come together.

 

Sorry for anyone way has read this… lol… but I think that there is a great deal of value in a book that talks about the hows and whys of building frameworks.

ajj3085 replied on Friday, August 22, 2008

I think that was the original intent of the book; Csla was only meant to be an example framework, IIRC.  Obviously now it's grown to be much more than that.. which I think is what prompted the question from Rocky.  I was looking for exactly the same thing.. but since the book went into so much detail that you get a usable framework at the end, why not use it I thought?  Extra bonus.  I'd buy both books personally, because each version of "how to build the framework" is more and more refined from the real world experience of Csla users.

RanceDowner1234 replied on Thursday, August 21, 2008

Coming from a vb background, the vb.net version of the book, explaining the innner workings of the framework, was pivotal in my understanding OO.

Now that I have a comfortable grasp on OO I could go either way.  I never alter the CSLA code itself anyway.  And rarely even step into it.  If I need to extend the BusinessBase class I just inherit and extend away.  So linking to a C# compiled dll would work just fine for our vb.net development.

But every once in a while I do like going into your code and borrowing a technique or two to enhance a legacy app that way released prior to our use of the CSLA framework.

I do hate to see the vb version of the book go away as it has helped alot of vb programmers, who weren't necessarily OO oriented, make the switch to OO successfully. 

But I do fully understand your dilemma.  Thanks for all the work you do.  I think everybody will understand whatever direction you take.

zman88a replied on Thursday, August 21, 2008

I agree with most here too.  I can certainly live with a c# only version of the framework with more focus on "using" guides in both c# and vb.net.  I'm predominently a vb.net developer with very little experience in c#.  While I greatly enjoy the vb versions of the book and have learned soo much from them, I've never had to make any actual changes to the framework itself, only "extend" some features using inheritance without altering any of the underlying classes.  IMHO the concepts are so clear in the text that it doesn't matter what language the code samples are in, the reader will "get it".  Even if they start with the last version of whichever vb book you decide to release (just because it's vb) to get those core concepts, then moving to the most recent version of the framework I don't think would be that difficult of a transition.  And with the excellent forum here any questions a new reader may have would be more than sufficiently answered in no time at all.

rsbaker0 replied on Friday, August 22, 2008

Maybe you could put the information on the how the framework works into online documentation distributed with the product (much like Visual Studio comes with documentation on the .NET classes). This would easily fill any gap created by not detailing the framework internals in future books.

FatPigeon replied on Friday, August 22, 2008

I am a c# developer so would prefer the framework to be in c#. I have found a detailed explanation of how the framework works of great value, so, so long as that is included, I do not mind how many books there are.

Patrick

 

GEM replied on Monday, August 25, 2008

Having read and thought about the issues you face with Csla futures, I'll add my opinion as to what might be the best way to proceed.

 

It is clear that an attempt to continue to support the framework in two languages will only divert energy from the truly beneficial goal of making Csla more and more awsome.  My suggestion is to proceed with Csla as an API, equally usable from C# and VB.Net, with source code available.  Which language for the source?  I would say you choose, Rocky.  It is your efficiency that brings the most benefit to all of us.  As for those of us who want to modify the framework, if we presume to be skilled enough to do that effectively, then the possibility of having to deal with that "other" language should not be unreasonably burdonsome.

 

As for books, you already have a history and reputation of being an excellent teacher in taking advantage of Microsoft's technologies and, when necessary, coping with them.  Books on the design and implementation of Csla should continue.  However, you appear to be at a point where you could, if time and your preferences permit, become a source of practical, applied knowledge of how to design and build applications taking advantage of the Csla API.  The books you have written to date have no real competitors, and if there are any GOOD books on the actual design and implementation of enterprise software, I've not found them.  Your entry into writing a separate line of books focusing on enterprise applications would fill a great need.  Please think about it.

 

Thank you for all that you do.

GEM

pcanada replied on Monday, August 25, 2008

I think that a book on using the framework with plenty of scenarios and examples (more than what ProjectTracker demonstrates currently) is far more valuable than the book(s) on the design/creation of the framework itself. I think it is safe to say that everyone here actually consumes/uses the framework, but only very few will actually look under the hood. So arguably, a book on using should come before a book on the design/creation.

I know that personally even though I have read all of the books so far and have spent considerable time inspecting ProjectTraker, I find most of my answers right here on the forum from people with real-world scenarios that are not represented in ProjectTraker. Basically, the precedence and wisdom that the community generates is invaluable. If we can have a book culminating that type of information it would be very helpful. The tips and recommendations that Rocky himself has realized over the years of use from dealing with the CSLA community and with various Magenic projects (I am assuming you use CSLA there whenever possible).

As far as ongoing maintenance/development of the framework... I forced our company to change from VB to C# when .NET was still in beta and I have been very glad that I did. Considering that C# appears to be the language of choice now and in the foreseeable future I think it is safe to abandon the VB codebase. I would rather have 1-3 projects that have your full attention, rather than being spread too thin where every project suffers.

tna55 replied on Friday, September 19, 2008

Hi Rocky,

I am developing using VB.NET but like most others, can understand C# code as well. It doesn't really make any difference I believe. Its just syntax!

Tahir

Wbmstrmjb replied on Friday, September 19, 2008

Whatever language you choose, please go to one and save yourself the headaches.  You have done so much "for free" and to ask that you maintain two versions purely so that one type of programmer can delve into the depths of the CSLA internals and understand it in their favorite language is ridiculous.  I am a C# developer, but used to be a VB6 and VB.NET guy.  Making the switch was trivial and anyone "on the opposite side" should easily be able to translate based on what they're looking at if they want to explore the code.

I also would definitely vote for a "how to" book.  But keep both because I think most people would like to know both and then you have twice the revenue!  Smile [:)] 

I'd also vote for a "detailed example application" that could be explored to figure out how you do things and what best practices are.  PT is nice, but it's too simplistic to be useful to large scale business application developers.  I think you probably have some nice apps laying around that you could clean up and make available in short order and that would help those of us who learn by example.

JoeFallon1 replied on Friday, September 19, 2008

I am going to cast another vote for VB.Net for a few reasons.

1. Many posts describe the dfiference as "just syntax". And people on the "other side" can easily translate the code. OK. Fine. Let them translate the VB code to C#.

2. MS is not supporting VB as well as they should. If you bail on the language too then it could be the beginning of the end for it.

3. I bet you would find it easier to get a Community project to maintain the C# version of CSLA for those that don't want to translate code in their heads.

Just my $.02 (again).

Joe

 

Wbmstrmjb replied on Friday, September 19, 2008

JoeFallon1:

1. Many posts describe the dfiference as "just syntax". And people on the "other side" can easily translate the code. OK. Fine. Let them translate the VB code to C#.

2. MS is not supporting VB as well as they should. If you bail on the language too then it could be the beginning of the end for it.

Joe,

I'm sorry if you took what I said the wrong way.  I did not mean "other side" (opposite side) as in "bad" or "not C#".  I meant it as "the opposite side from whatever language he chooses".  Just make it one and not deal with maintaining two.

I have to say that your argument based on #2 seems illogical.  Neither CSLA, nor Rocky, is going to shift the tide of Microsoft and the programming community to VB.NET.  Choosing a less supported language because you want to "keep it alive" seems to be counter to good judgement.  It would seem that supporting the most popular language as well as the best supported one would mean the most support for the future and the smartest move in terms of keeping CSLA as popular as it is.

I personally do not care either way.  I have no intention of modifying the framework directly, so if you choose to do it in BASIC.NET, I could care less.  From an objective standpoint of someone who will not need to modify and therefore does not care what the dll is built in, I think the strongest supported language makes the most sense; that would currently be C# by a landslide.

ajj3085 replied on Friday, September 19, 2008

I'd rather C# personally.  Responding to your points though;

1.  It is just syntax, but because I don't read Vb.Net often I don't find it easy.  For me its way, way too wordy.. I get lost what the code is doing in the extra keywords.  Kinda like when someone makes a really long post, with 5 paragraphs and 15 sentences per paragraph.  I really try to read them, and if it was on paper I probably could... but usually I end up glossing over most of it to find the main topics.

2.  While Csla.Net may be popular, I'm not sure that losing the Vb.net version will affect MS' decision to support vb..

3.  I'm not so sure about that.  I remember reading somewhere that indicated that while VBers will try to read C# code, C# people see Vb.Net and move on.  Not saying it's right.. but I do tend to shy away from Vb code, just because I find it much harder to read.  I think that problem is also why Rocky didn't include the Microsoft.VisualBasic reference and coded some of the functionality himself, even though he could have just used that assembly.

RockfordLhotka replied on Friday, September 19, 2008

I did make my decision

http://www.lhotka.net/weblog/CSLANET36InVBACommunityEffort.aspx

While I appreciate the idea of maintaining the framework in VB, the reality is that if Microsoft can't (or won't) support VB as well as they should, I can't really buck the trend. I'm just one guy with no budget - they are 30k people with more money than anyone except the US oil companies. If they can't/won't do it, I certainly can't.

My goal is to provide something to the widest set of people I can reach. That means following (within reason) the larger population.

Some members of the community have stepped forward and offered to maintain the VB version of the framework. Right now there are three people getting set up and running on the effort. It seems very realistic to me that they'll be able to get the VB version online shortly after (or even with) the C# version.

I expect a Beta 1 release of 3.6 within the next few days, and hopefully a Beta 2 release in October. After that I'm largely at the mercy of Microsoft, as to when they release Silverlight 2.0, because I can't consider my work done until they are locked down.

ajj3085 replied on Friday, September 19, 2008

So will the 2008 framework book include mention of Silverlight, or are you talking about the how-to books?

RockfordLhotka replied on Friday, September 19, 2008

The 2008 book does mention Silverlight :)

 

But it doesn’t cover Silverlight.

 

To cover Silverlight, the book would need to be delayed at least another 2 months – and that can’t happen  - because then we’d run into the next version of VS, book sales would tank, Apress would lose money and that’d be a furball…

 

So the book has to happen ASAP – and Silverlight is too fluid and too far out.

 

Rocky

 

ajj3085 replied on Friday, September 19, 2008

Heh... ok, so the 2008 book won't be held up by Silverlight.

Are you serious about the next version of VS though?  Didn't we just get 2008??

nermin replied on Friday, September 19, 2008

It takes time to write a book.  So if you start second quarter of 2009, you better be ready to deliver for VS 2010, which could take 1+ year to write (unless there is a specialized CSLA.Net for Silverlight book in between, which shortens timeline even further)

 

From: ajj3085 [mailto:cslanet@lhotka.net]
Sent: Friday, September 19, 2008 2:36 PM
To: Nermin Dibek
Subject: Re: [CSLA .NET] RE: CSLA into the future

 

Heh... ok, so the 2008 book won't be held up by Silverlight.

Are you serious about the next version of VS though?  Didn't we just get 2008??


RockfordLhotka replied on Friday, September 19, 2008

Well, I’m serious about the next version of VS – but in “book time”.

 

The thing about a book, is that it has to be on the market for a period of months, or it doesn’t have enough time to sell enough copies to pay for itself.

 

So assume Microsoft actually makes their 18-24 month target for the next release of VS (this is their standard target – you can judge how they’ve been doing). At 18 months, that’d put the next release around the end of 2009. 24 months is mid-2010. So it is a good bet they hope for a release somewhere in there.

 

My book will be out in December. Which gives it 9-18 months of shelf life. That’s pretty short, but acceptable. Push it out much farther and it gets a lot less acceptable.

 

Of course Microsoft’s track record on hitting that 18-24 month target is quite poor, so I could get lucky and the next version of VS could be delayed :)

 

Rocky

 

 

From: ajj3085 [mailto:cslanet@lhotka.net]
Sent: Friday, September 19, 2008 2:35 PM
To: rocky@lhotka.net
Subject: Re: [CSLA .NET] RE: CSLA into the future

 

Heh... ok, so the 2008 book won't be held up by Silverlight.

Are you serious about the next version of VS though?  Didn't we just get 2008??


Fintanv replied on Monday, September 22, 2008

"Of course Microsoft’s track record on hitting that 18-24 month target is quite poor, so I could get lucky and the next version of VS could be delayed :)"

Lucky?  In the trade I think that is called a 'sure bet'! Big Smile [:D]

tdrake replied on Monday, September 22, 2008

Rocky,

Go with C#, framework, let the compunity write the VB samples, and perhaps a 'how to' on using the C# CSLA in a VB project (When I first came accross CSLA, the VB put me off, as I was a C# guy, and didn't - then - understand how easy it was to use across the language divides).

It's clear to me I'd love a sexier UI to demo CSLA to business people out of the box - while the apps I'm building will hopefully do that, I'm finding the UI side (WPF) is were I'm spending 90% of my enegies try to get going, with complex patterns not part of the PT demo.

Perhaps a new UI for PT with some more extensive ideas (look and feel "like" the Telerik or infragistics demos or like Billy Hollis's dnrTV show 115 (looking foward to today's show on DNR from Billy).

The main thing is your continued support, and many of these framworks (both free and expensive) tend to go stail and are lost in time. By dropping VB, if that give you the energy to continue to expand for us all, then 'go foward'

Cheers Tony

Copyright (c) Marimer LLC