Module for Csla 4.3.12 and Gizmox Visual WebGUI 6.4.0e

Module for Csla 4.3.12 and Gizmox Visual WebGUI 6.4.0e

Old forum URL:

tiago posted on Sunday, July 22, 2012

Attached to this message is the source code for Visual WebGUI module that matches functionality of Csla.Windows.dll meaning it has a set of classes and UI controls to make Csla development on Visual WebGUI as easy as on WindowsForms.

Visual WebGUI is a WEB framework that is build around the "empty client" concept.. All the developer sees is the full set of Windows Forms controls. You write your code on C# or VB.NET and forget Javascript, CSS and HTML exist. If you have a working Windows Forms application, porting it to WebGUI is really easy. The browser is used just to display the visual side of the controls and to return user input back to the server - the concept of "ViewState" doesn't exist.

This results in applications easier to write:

and applications that run faster

This looks like a very good environment to work with. I tried ASPX with and without AJAX and... that really stinks. I also tried WebGUI and I missed the Csla tools for WindowsForms so much that I ported them. Jonny Bekkum will publish it on CslaContrib.

What's included?


wilfreds replied on Monday, August 13, 2012

Hello Tiago,

Thanks for sharing this.

I took the attached source and compiled it with CSLA 4.3.13. And that worked fine.

I made a project with databinding to a CSLA object. Databinding works but I can not make the CslaContrib.WebGUI errorProvider work.

Do you have a small sample showing how to use CslaContrib.WebGUI correctly.




tiago replied on Wednesday, August 15, 2012

Hi Wilfred,

In fact I intend to port ActionExtenderSample to WebGUI but that won't happen for the next weeks. I'm currently using CslaContrib.ErrorWarnInfoProvider and replaced it by CslaContrib.ErrorProvider. Everything works as it should, except ErrorProvider doesn't show Warning or Information icons/messages.

Two notes.

1) TextBox validation only works after you leave the textbox, no matter how you set the DataSourceUpdateMode.

2) CheckBox validation works really bad. You must use DataSourceUpdateMode.OnPropertyChanged:

this.isFileOwnerCheckBox.DataBindings.Add(new Gizmox.WebGUI.Forms.Binding("CheckState"this.userEditBindingSource"IsFileOwner"trueDataSourceUpdateMode.OnPropertyChanged));

There is nothing this library can do about this as it depends on Visual WebGUI behaviour (when it relays the key press to the server, etc.).


Concerning  CslaContrib.ErrorWarnInfoProvider, its only limitation is that it handles only one notification type at a time: either Error either Warning either Information. This is fine by most apps as they tend not to mix notification types. In case you try to use, say, Error and Warning, it will ignore the Warning and show only the Error.


Note Gizmox ErrorProvider is broken and won't databind. The CslaContrib.ErrorProvider uses a fix from Alexnaldo Santos (who used to be a Csla developer and gave explicit permission to use his fix)


wilfreds replied on Friday, August 17, 2012

Hello Tiago,

Thank you.

Looking forward to the ActionExtenderSample :-)

I took another look, this time using the CslaContrib.ErrorWarnInfoProvider. No luck. I don't see error icons/messages.

Only if you have the time. I have attached a very small sample of what I got so far. Its a solution with a library, Windows, and WinGUI project. The windows project shows the error icon when run but not the WinGUI project.




tiago replied on Friday, August 17, 2012

Hi Wilfred,

1) Copy & paste WindowsForms code behind and designer for Form1 to WebGUI project

2) Correct namespace

3) Replace "System.Windows.Forms" by "Gizmox.WebGUI.Forms" on both files

4) Replace "Gizmox.WebGUI.Forms.ErrorProvider" by "CslaContrib.WebGUI.ErrorProvider"

That's it!

Code is attached.

wilfreds replied on Monday, August 20, 2012

Hello Tiago,

Thanks to your working sample I could narrow the problem down to this missing line in the Visual WebGui Form Designer generated code region:

this.errorWarnInfoProvider1.ContainerControl = this;

Thanks again,


Copyright (c) Marimer LLC