title: Choosing technologies for building Ajax RIA framework with scaffolding
body: <p>Building decent RIA data-intensive crud-like application is still hard. In spite of existence tons of frameworks. </p>
  
  <p>I'm going to build my own framework for such kind of applications. One of key requirements is scaffolding (generating UI from model). Another is .NET server-side.
  I know about asp.net dynamic data, oracle ADF, fornax/sculptor etc. (yeah, the two latters are for Java).
  There are many server-side frameworks like Django (python-based), Grails (Groovy-based), ruby on rails. They usualy contain some ORM and kind of scaffolding. But the major problem for me is that they don't contain client-side framework. They do generate scaffolding UI code but it can't be reused in code written by hand.
  I also don't like asp.net WebForms' approach with "server controls". Even if all server markups (like  or similar JSF/JSP) are generated.</p>
  
  <p>On the other hand there are (even more) client-side frameworks. They're usualy server-tech agnostic. Here we have Dojo, ExtJS, SmartClient, QooxDoo and others.They all offer us to write JS-code and do some css/html design. It's not bad, but JS-code (as it's a scripting code) is very errorprone.</p>
  
  <p>So my initial vision was to take asp.net mvc for server-side and take some nice client-side framework. The problem is which one to choose. </p>
  
  <p>My first decision was to take Dojo toolkit. It's a framework with many goodnesses for JS (mixins, pub/sub, connections, Defered, modules, Json parser, Dijit's templating, Data abstractions) and it has many widjets. And it's free.</p>
  
  <p>But than I looked at ExtJS. I haven't dived in learning it yet. But their demo is very nice. It seemed to me that GUI's quality is much better than Dojo's widjets have. But ExtJS costs money for commercial using. But paying money for a good framework is not big problem.<br>
  Then I looked at SmartClient. Expecialy at <a href="http://www.smartclient.com/smartgwt/showcase/#main" rel="nofollow noreferrer">SmartGWT's showcase</a>. I must say everybody choosing an Ajax framework/library must see that. It's absolutly awesome.
  It's a client library (SmartClient) incorporated into GWT. So we can create an astonished Ajax app with Java. With compiled language, with no scripting language! Great!
  But they have even more - SmartGWT EE. It seamlessly integrate client code (generated from Java) with server Java objects, providing two-way data-binding  between data model (connected with server) and GUI controls.<br>
  It's kind of what I need, but I need such a thing for .NET. Yes, I know about Script#. But it's very limited (c# 1.0). There's also <a href="http://www.jsc-solutions.net/" rel="nofollow noreferrer">jsc</a>. It works, even debbuging. But it's far from GWT+SmartGWT's facilities.</p>
  
  <p>So, after looking at such a beauty, building a framework with asp.net mvc+dojo doesn't seem
  to be a good idea anymore.</p>
  
  <p>I'm sure many of you faced the similar problems: how to effectively connect Ajax RIA client-side with server-side in data-intensive crud-like (often enterprise/intranet) applications (not web sites). So what approached/technologies else does make sense to consider?</p>
  
  <p>p.s. I'm even considering using GWT. But I have to use two IDE: one for client code (java) and other for server code (asp.net mvc). But that isn't edge of dreams.</p>