博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

使用AJAX实现ORM的构想

Posted on 2007-07-19 23:13  我是程序员  阅读(342)  评论(0编辑  收藏  举报
    最近Ajax比较火,好像是Web应用的救世主一样,也是Web方面好久没有什么能够炒作的东西了,现在终于找到一个发泄激情的东东了。虽然我个人不认为这个东西有什么了不起,我总觉得JavaScript之类的东西,起一个粘合剂的东西还可以,指望靠它来挑大梁还是不行的。在Windows平台上我还是比较看好.NET,那个东西本身就有一个可以动态编译运行的运行时,性能比JavaScript的强的不可道里计,而且IDE又无比的强悍(以后有时间可以写一点在.NET下如何在运行时下载代码、编译并且执行的技术,估计在SliverLight的最终实现中应该会推.NET而舍弃JavaScript),Ajax总是一个过渡的东西。而且玩Ajax玩的不是技术而是技巧,没有什么意思。
    虽然我认为Ajax是一个过渡的东西,但是现在吗眼球经济,还是需要学习学习,乘着乱子混几个钱花花。对于Web数据的传递或者说对象的持久解决方案,微软的方案是提供了一个名为JavaScriptSerializer的鸟东西,通过ASP.NET页面、Htpp Handler或者ASHX页面实现的Http Handler来将一个对象序列化成为一个Josn字符串或者将一个Josn字符传序列化为一个对象。虽然比较灵活,但是我还是觉得实现的不太透明,对于程序员来来说需要干的事情太多了。
    我想如果能够在Web客户端提供一个JavaScript实现的Session类,这个类提供对象的持久化操作,在服务器端也提供一个Handler来负责响应Session类的请求,并且使用反射或者其它的技术(例如数据驱动等)来将Session的请求调度到对象持久层,这样就完全解决了需要为Web客户端提供很多的Handler来处理一堆松散请求的问题,使代码更加的严谨。
    客户端伪代码:
    Net.Session = function{};
    //查询对象
    var projects = Net.Session.Query("Project","Some Condition");
    //删除对象
    projects.Delete();
    Net.Session.Submit( projects );
    //更新对象
    project[0].Name = "使用AJAX实现ORM的构想";
    Net.Session.Submit( projects );
    //新增对象,在客户端保留了对象的原型,如果没有记录则到服务器端请求一个新对象
    var newProject = Net.Session.New("Project");
    newProject.Name = "使用AJAX实现ORM的构想";
    Net.Session.Submit( newProject );
   
    //服务器端
    var object = Parser.Parse( request );
    Net.Session.Submit( object );
 

    这只是一个设想,如果有什么不对的地方请大家多多指教,如果后续的工作不忙了抽空把具体的实现代码写出来。