Visual Web GUI Helps me Write in Winform and run as ASP.NET
If you know me well enough you'll know that I'm not a big fan of website development. I just hate the idea that you need to learn about 17 different languages and paradigms to be able to show a simple progress bar when doing a long running action. I'm a winforms guy. always been. That's not to say I can't program my way out of a non-scalable server, but when it comes to web user interfaces I just suck. Everything is much harder than it should be. I dislike JavaScript, Html, Ajax and all that goes with them.
That's why I'm happy to write About Visual Web Gui, as part of an ad campaign on this blog, which only involves software that I think is worthwhile to begin with. Wanna see it in action and then read about it? click here to see what it can do.
Visual Web GUI developed a solution that basically allows you to code your program in winforms, and then,at compilation time, it is transformed into an ASP.NET application which behaves exactly as the winforms application does. They provide their own project templates for control library, Visual Web GUI(VWG) application and a VWG client project for winform deployment. Here's a movie that shows this in action.
The main idea is that if you know your way around windows forms, but not around ASP.NET, you shouldn't have to invest a lot of time to use your knowledge to build ajax-enabled web sites that look and behave in a professional manner. They created a list of predefined Visual Web GUI controls (and you can create your own) that map to normal windos forms controls. So instead of creating a Form, I create a VWG form. Instead of adding a textbox, I add a VWG textbox and so on. At build time, the controls are "translated" into ASP.NET code and JavaScript code, and the forms are run under FormName.wgx extensions (which you map in IIS to the ASP.NET runtime).
The nice thing about it is that scenarios such as long running actions, progress bars and async notifications become a breeze. For example, to fill a list box on a web page in an async manner, I started a thread that fills it slowly. then, to make sure the form was refreshing to show the new items, I just added a timer to my form and enabled it for 1 second intervals. When I ran it as a web application, it just worked, which to me is a big win.
Another feature of this (which you may or may not like) is that the resulting web applications have the same look and feel of winform applications. Here's a screenshot from a project based on VWG called "Enterprise manager. Take a look. It's really easy to create modal dialogs, get data between them, and it sure looks like a winform in a browser. Fortunately, you don't have to have a desktop look, as noted in their blog, because VWG supports themes and flavors.
The most interesting thing about it: It's open source! When you download the VWG SDK, you download it directly from sourceforge. THE SDK comes with the predefined controls. I'm not sure what the business model is for this company, but this is one cool piece of work.
Visual Web GUI can help change the web development world and make it more usable,reachable and easier than ever. Whether people catch on to it, or add their own controls to it remains to be seen. Meanwhile, it's definitely cutting edge in my book.
Update: Guy Peled from Visual Web Gui has this to reply on the comments to this post:
"Visual WebGui is fully server based, which means that data access should, by default, be done in the server level. When for example you handle a button click event, the event handler is executed in the server which provides you as a developer with the ability to access your data and update the UI according. Visual WebGui then will automatically update the browser to reflect the changes that you made in the UI. This architecture makes Visual WebGui secured as plain old ASP.NET applications before the AJAX era, but with the UI behavior expected from a modern AJAX based application. Visual WebGui has many customization mechanisms that allow to divert from the default behavior but in most cases you should not do that."