Vibrant discussion about CSLA .NET and using the framework to build great business applications.
I have a long standing project running on CSLA 3.0.2. Are there any guides available to walk through the process of upgrading to the latest framework?
I understand that there have been many changes since version 3. The current project is a winform project originally built in VS2005 but upgraded to VS2008. I would like to explore options of an MVC UI.
Any tips or gotchas I should look out for? Any suggestions on where I should start?
I am also in the process of moving from 3.8 to 4.3, and there is a lot to cover.
I have a three-year old project (3.8) that I tried to upgrade to 4.3, and based on my experience, the following are the biggest changes:
I started by reading the CSLA 4 ebooks, then created a sample project based on PTracker. I am upgrading to Silverlight using the MVVM pattern, so I am studying a lot on SL and MVVM.
I suggest you find a sample project which matches the most common requirement of your application. For me, moving along the CSLA path could have been easier if there is a sample project that uses the technology similar to my project (MSSQL Db, ADO.NET sprocs, MVVM, SL and WinForm) with a Read-only list and a Master-Detail sample. What I am doing now is cherry-picking from several sample projects, which is a long and arduous process.
Right now, I still have a lot to work on, but I am enjoying the process of learning and coding.
Thanks for your insight to the upgrade process. It sounds like you are creating a new project based on one of the samples and then cutting and pasting any code that will fit from your existing project?
I would really like to avoid creating an entirely new project, but I guess it is an option. Perhaps maintaining two versions of the business objects.
1) existing legacy winform project
2) new ASP.NET MVC project. Build all new features in this version and slowly migrate old features when time permits.
This will become complex when changes need to be made to both versions of a business object (existing 3.0 object and upgraded 4.5 object)
For an intermediate period - it is possible to extend CSLA (actually modify CSLA) to support
So that your code will run with a minimum of changes for an intermediate period and provide for a "team" to do the migration on code that actully builds and run. (this is based on my own experiences from migration of large WinForm apps)
Look also at CslaGenFork.codeplex.com or the RuleTutorial sample for a load of addon generic rules.
In CSLA 4 you can override all messages og standard rules (and the above mentioned rules) so you will not need to create a new rule to modify the message.
I have been writing on a blog post/code for this but it is not published yet.
Jonny Bekkum, Norway
Yes, I am creating new projects (24 modules in 6 VS solutions) due to some reasons, such as to advance my skillset to add new technologies (SL, MVVM, WCF, Testing, TFS, etc.), and to widen the reach of my project for a larger audience.
My project started as a winform for a single-user, then grew to be distributed via LAN, then I am now hosting it in a website. The back-end is a MSSQL, CSLA at the middle, and I am now working on three(3) front-ends - Windows Forms, WPF and Silverlight. Why the 3? To really sharpen my skills using the different technologies involved, and to look at the advantages and disadvantages of the different technologies, such as:
The three are my learning tools and also serve different purposes for my different set of users (such as ubiquitous reach through SL, intensive data entry in WPF and WLF). I am not able upgrade all of my application at once, but I am lucky what when I developed in WLF, I divided it into different VS solutions, that's why I get to upgrade them one by one.
You might guess I am just writing lots of code, but no.
I wrote a "model" project based on PTracker and different samples that I have referred to. I do not "copy and paste" codes from the model project. I use it as a template for a code generator that I also have written. Thus, when I design an entity in the generator, I get the codes for the different layers (Factory, DAL, BL) and UIs (WLF, WPF & SL).
I don't know if you might pick some tip or lessons from these, but this is what I am doing. I don't know what steps to suggest to you, but I am sure,
are definitely needed.
(Optional to read)
(I have no formal training in computer programming, but by reading Rocky's books and blogs and other online resources, I reach a level that I was once called to teach programming instructors in our province.Thus, I really encourage you to read Rocky's books and blogs. It greatly kept me from pulling my hairs and brought me back to sanity before I get a good sleep at night. hehehhe.)
Thanks for reading and God bless.
My project is a large winform project developed over a 4-5 year period. I originally started with CSLA with the Expert c# 2005 book. I am contemplating sticking with csla 3.0.2 and using WebForms rather than MVC for simplicity and a shorter learning curve. WebForms is actually outlined in the book.
I will look at the codeplex example and see if this will help me in my
upgrade quest. It sounds like validation rules is the biggest breaking
change between the versions. If it looks straight forward enough to extend CSLA in my application I will attempt an upgrade and purchase the new eBooks for reference.
As far as I can tell csla3 will support WebForms but not mvc. It sounds like the webform technology is not dead yet but I don't really want to position myself with a dying web standard.
I have always been a winform developer and never had much to do with web development. Does anyone have any experience of where WebForms has brought them unstuck, and wished they were using MVC/SL/WPF? (WPF is limited to windows machines though?).
SuperKuton: Thanks for your in depth response. I would love to follow your lead and develop with every technology; unfortunately I can't spare enough time to do everything. I really do need to select one path and go with it.
I do agree that winforms are quickly becoming legacy applications especially with macs/tablets/ipads/smartphones becoming more and more mainstream.
Have you looked at VisualWebGui, http://www.visualwebgui.com/ ?
Red more here: http://www.visualwebgui.com/tabid/665/Default.aspx
I have code to be published on CodePlex from Tiago to make CSLA work nicely with VisualWebGui . Will publish the code later today.
I finaly manage to port ErrorWarnInfoProvider to WebGUI.
Concerning the BindingSourceRefresh control extender I wonder if there some test around as I suspect webGUI doesn't have this problem. While you are discussing BindingSourceRefresh I wonder whether Framework 4 still shows this problem...
Tiago Freitas Leal, CslaGenFork (Open Source CSLA code generator)