the engine i am talking about was a dream to me for longtime, it have several reasons because it dislike to have a huge code behind of my forms as well, they will never have a safe result most of times, you have to havea long debug process for each page as well you will have your best times over debuging a non perfect code developer (as most of form developers dont have a good knowledge over web design)
which way i choosed ? this were clear.
i was a delphi developer for over 14 years, since first versions of turbo pascal I continued this great development environment plus great language at it’s time, in delphi as you remember you had to do few codes for database and db components had a proxy to connect to each other, you had a dataset or table which were connected to a connection and then a datasource utiltize this dataset to saticefy datar for editors, checkboxes, comboboes, list and grid and it done jobs based on a centralized db access architecture .so, we have something like this.
connection = > Datasets = > datasources = > Dbcomponents (edit,checkbox,combobox etc) in web , we need to receive data from a web server which is holding an application inside and there are no direct connection for clients, so, we might have a webservice or a json data provider for ajax applications, someway, ajax or web service are not good enough, later on i will describe why not!
for most of applications using from old way post back we had different ways to fill grids , edits and so on, they were disconnected to each other so, we had to do a code to connect them or we had some bad ways such as update panel (which i hate it so much) to update editos from server side, in one word, to do a such of clear product with fast action and ajax action the cost will be so high just because you must to do a lot of buggy custom codes plus, they will be dirty code and you know what i means if you work in a team environment.
MVC 3.00 Based ERP , interface is in persian langauge : 100% auto generated codes in background!
dataset are having their client side cache model, you will have also cached or non cached data storage in server side ( i named then full state and stateless connections) , you will never need to receive a data twice even if you go to new page or doing custom codes, first and second layer of cache are will be managed without developers custom code (no code needed but also you can customize this actions as well), this components are will receive or send data only when you request it then it means if you have 50000 records loaded and you need first five of them you will only receive first five records.
there are special types of datasets such as recursives (trees etc) which are using from a a provider as middlware but developrs will never be busy with coding for them, ofcourse they can do their own customize code but normally this is not required to do such complex codes.