Having decided to move forward with new development using CSLA 4.x., I have to admit to being totally perplexed.
Here's the context for moving my development forward:
I purchased the eBook series for CSLA 4 and trudged through the overview, not wanting to rush things and to make sure I didn't overlook new functionality, etc.
Having read that, I thought "Great" and looked forward to test driving my new VS.Net 2010 by building the framework from the bottom up...
My expectation was that you were going to drive the reader through the creation of the framework a-la CSLA 1 & 2, culminating in a demonstration of it's uses in a ProjectTracker-type project. But unless I'm being extremely dense, scanning the subsquent e-Books merely gives a further overview of what the framework compromises and some very small code snippets of how it might be implemented.
Am I missing something? Is there more somewhere that I've overlooked? I'm sure I saw reference to the ProjectTracker project while you were developing CSLA 4 - was I mistaken?
I was tempted to just download the framework and open up the required solutions and compile. But which solutions relate to what? There must be 10 solutions in the zip file Source folder...
Because I want to separate my CSLA 2.x from my CSLA 4, I will likely want to use "CSLA4" as my namespace for the new libraries, so just running the installer isn;t going to work.
My initial development will still revolve around a .Net Windows Form client, but I'm VERY interested in the Silverlight and WP7 versions of the framework, but there is a distinct lack of step-by-step "how-to" in the documentation I've read to this point.
What am I missing?
In the Expert Business Objects books I spent over half the book talking about how the framework was created, and less time talking about how to use it.
In the Using CSLA 4 books I spend all the time talking about how to use the framework, and no time talking about how to create the framework.
There were some threads about 18 months ago (give or take) where I shared some of my thinking and solicited input on how to best serve the CSLA community through a book project.
Although there are people who find the "how the framework is built" content very valuable, that content comes at the cost of providing deep insight into the "how to use the framework" topics. I simply don't have the bandwidth to do both - I estimate that the resulting book would be 1500-2000 pages...
I especially don't have time to do both while also trying to keep up with new versions of .NET, WPF, Silverlight, Windows Phone, and now WinRT - not to mention mono, monotouch, and mono for Android.
From a pure commercial perspective, the reality is that there are more people willing to pay for "how to use" than for "how it is built".
This isn't surprising, given that far, far more people use CSLA to build apps than use it as a tool for learning techniques for creating frameworks or understanding deep concepts related to reflection, linq expressions, or serialization implementations.
I fund the actual development of CSLA by selling the books and videos. So it is in all our best interest that I focus on products that sell well.
Yes, it is a lot of fun to dive deeply into why and how things like MethodCaller are implemented, or the intricate details behind the field manager implementation and how it relates to MobileFormatter. I obviously totally geek out on that stuff, and I know a lot of other people do to.
But at the end of the day, none of those topics are as useful day-to-day as understanding how to implement all the different kinds of business rule, or all the different ways you can configure the data portal for 1-, 2-, 3-, or 4-tier deployments. Those topics have immediate applicability to anyone trying to use the framework.
I didn't mean to suggest that what you have done is not correct, and I realize that you need to make things commercially viable.
Frankly, I DON'T WANT TO KNOW the workings of the framework beyond the broad scope that is provided in the overview book. It's not a case of "how to use" vs. "how it's built" - But from what I can see there is no "how to build the assemblies for CSLA4 for xxxx developers" - in my case Windows Forms. This is a huge obstacle for me. Two of the books are devoted to WPF and Silverlight development, but nothing specific for the Windows Forms developer.
My first implementation of CSLA was the Business Objects Book, which yes, showed me how to create the framework - which was great to get an understanding of how it works. But with subsequent versions of the book and framework I was was able to build the assemblies from the provided source.
From what I can see so far, there is no clear "how to" when it comes to creating the CSLA4 assemblies. The documentation lists all of the libraries included in CSLA4, but with no direction as to which VS2010 solution one needs to load from the Source folder to build the assemblies on the machine and for which development scenario. As previously stated, I cannot use the default namespace as to avoid clashes with my csla 2.x applications.
I would like to thing that with my CSLA 2.x experience, that the creation of the Business Objects will be intuitive enough. But unless I know how to implement the CSLA assemblies, then I'm a million miles away from that.
Maybe I'm just not familiar enough with VS2010, but I have to believe that as a new CSLA 4 developer, the expectation is not for me to work out for myself which of the VS solutions relates what.
I appreciate your time is valuable. If anyone else has experience of building the CSLA assemblies, any suggestions/direction would be gratefully appreciated.
Ahh, I see.
You shouldn't have to build the assemblies. You can get the pre-built assemblies via NuGet or through the msi installer from http://www.lhotka.net/cslanet/download.aspx
One of the most repeated requests from the pre-3.7 days was for "official" assemblies. So for some years now I've been supplying pre-built assemblies people can just reference and use.
Maybe if your previous implementations of CSLA hadn't been so efficient I would have lurked in the forums more frequently
This is still going to cause a problem with my dual CSLA implementation though right? If I have CSLA 2 assemblies loaded on this machine with a CSLA namespace, won't the loading of the new ones through the installer blow those up?
No, the installer simply puts the assemblies on your computer in a folder. It is up to you to reference and use them.
Thanks again Rocky.
If you wish to use both Csla 2.x and CSLA 4.x assemblies in your application - then yes - you must change the namespace of one of the CSLA assemblies, compile and reference the new assembly in your projects.
I would however consider to move the Csla 2.x classes into a new namespace and aim for "correct" code when fully migrated to Csla 4.x. Ie, use the provided existing compiled assemblies for CSLA 4.x!
I think that's where some of my confusion laid.
They will be separate applications, the CSLA 2.x stuff will remain buried in my VS2005 .Net 2 solution.
I'll build my new developments using CSLA 4 in VS2010.
This is going to be fun....
Copyright (c) Marimer LLC