Upgrade from 3.0.2 to 4.5

Upgrade from 3.0.2 to 4.5

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

Mar72Vin posted on Monday, June 11, 2012

Hi Guys,

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?



superkuton replied on Tuesday, June 12, 2012

Hi Tim,

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:

  1. Business Rules, which now inludes the authorization rules
  2. Abstraction of the Data Access Layer to enable pluggable DALs

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.

Yeah, cheers!



Mar72Vin replied on Tuesday, June 12, 2012

Hi SuperKuton,

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)


JonnyBee replied on Tuesday, June 12, 2012


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.

Mar72Vin replied on Tuesday, June 12, 2012

Thanks Jonny.

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.



JonnyBee replied on Tuesday, June 12, 2012


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.

tiago replied on Friday, June 22, 2012

Hi Jonny;

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...

superkuton replied on Tuesday, June 12, 2012

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:

  1. the comfort of developing in windows forms in its matured development environment. However, this is already a "legacy" tech so I need to move on to new ones. I already label my projects in it as WLF, as in Windows Legacy Forms Smile.
  2. the power and beauty of creating Silverlight user experience. However, I am yet to find a reporting solution in this technology. My focus in this area now (while waiting for the MS reportviewer for SL) is developing dashboards for a different set of users.
  3. the "bridge" between SL and WLF is WPF. I get to leverage the same XAML skillset from SL to WPF, and get the same reporting capabilities of the WLF reportviewer through winform host. Though it seems to me that Rocky prefers SL, I am just picking up some skills in this area and added some twist into it, such as adopting the Metro Apps UI design and implement it using WPF so that when I got to program in Metro style, at least I already have the UI principles/concepts.

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.


Copyright (c) Marimer LLC