说明

4 views
Skip to first unread message
Message has been deleted

cao...@gmail.com

unread,
Mar 12, 2007, 10:41:40 PM3/12/07
to ShineWay-Pure Ajax Web-Dev
5个月前我开始建立一套基于Ajax技术的WEB开发框架。关注过Ajax的人大概都知道,去年各式各样的Ajax框架遍地开花,好的框架比比皆是,那
么ShineWay仅供学习参考,因为不成熟不可做商用.另外,如果你对WEB开发框架有兴趣,我更推荐不妨学习RubyOnRails和
MonoRail,前者的声望已经如日中天,后者也是一个相当不错开源项目(castle.org),技术的涵盖面很广.

这些Ajax框架中根据架构思想分为两大类:1.客户端Ajax引擎 2.客户端+服务端引擎。
对于Ajax产品的探索推荐看这篇文章:http://dev2dev.bea.com.cn/techdoc/200701292367.html

该论坛的ShineWay就是第二种,第二种实现方法无疑需要对客户端和服务端制定相应的协议,该协议让客户端的反馈让服务端有合适反应,并通过协议把
反应的结果输送到客户端表现出来。ShineWay的目标是让开发人员在此框架下不用编写任何一行JS或HTML而开发出一套WEB程序.

下面我就几个方面展开做一个介绍。
1.开发者基于该框架的开发过程:
ShineWay只要求开发者写服务端程序,因此客户端的HTML以及交互的JS都由框架生成。服务端程序的编写也很简单,开发者面对的是一堆控件(框
架已封装了Label,Button,Text,ComboBox,Panel,Form,RadioBox,CheckBox,接口开放,因此任何人
都可以按照规范添加自己的控件),他们要做的就是组合这些控件,并且对他们编写事件处理程序.

2.ShineWay的架构思想:
对于每个SESSION,服务端都保留一个当前页面的映射,当页面有事情发生时(例如按钮点击)并且程序员已经为该控件的事情绑定了事件处理程序,那么
在生成页面时相应的JS代码就会产生出来,这段JS此时把相应的页面数据连同需要请求的对象封装成一个XMLHTTP的请求包Request发给服务
端。
服务端接到Request后按照以下步骤进行工作:
a.解析Request(往往包括解码,因为为了包含大量各色信息,Request可能使用诸如base64编码的方式来传递请求包),找到该请求包
所要求处理它的对象,在缓存中寻找该对象,如果不存在则建立一个。
b.把解析出来的各个控件数据同步到该对象中去。
c.把解析出来的事件绑定到相应控件中去,并调用事件出来程序。
d.运行事件处理程序运行,该过程中各个控件的状态,数据都可能发生变化。
e.把发生变化的部分封装成XML各式的Response包返回.

到此,客户端拿到了同步或者异步的返回响应信息。客户端引擎解析该XML包,并把这些改变数据加载到各个HTML控件中去。一个请求的来回就这样结
束。

3.ShineWay怎样和常用技术结合进行开发:
ShineWay是基于订阅的,他并不是PHP或者Perl,也就是说如果页面模板中指定某个控制器(Controller)中的若干个控件,那么就渲
染这若干个控件并处理他们的逻辑。因此,ShineWay可以嵌入到常用的网站程序开发中去,网站主体部分仍然由主流的开发工具来完成,只是在需要一些
Ajax逻辑的时候,向ShineWay服务器订阅一些逻辑,你的网站就具备了这些功能了。

4.上传文件中包含的源码和例子说明:
上传文件CShineWay.rar是我的完整的开发目录以及我编写的一些Samples.毫无保留的给Package出来了,希望能提供一点帮助。
其中:
AjaxComm-核心包,包含的框架制定协议的部分。
AjaxComponent-控件包,包含了封装的系列Ajax控件
AjaxControl-控制器部分,这部分不属于框架,但是我写了一些例子,故而有这个。
AjaxView-视图部分,准确地说应该是视图渲染辅助部分,有时候需要借助程序而不是模板来渲染是用到。
AjaxWeb-我们的网站部分,每个例子都是一个文件夹。
其中比较重要的是:
Core包含核心Client端引擎,不可变动。
Style包含风格文件,可修改添加。
Config包含系统配置文件:
AjaxBLH.xml配置业务逻辑,SysConfig.xml配置系统参数,ViewsCofnig.xml配置视图导
向。
SysPage包含系统正常工作的模块,不可变动。

5.运行例子:
在IIS中建立虚拟目录http://localhost/swsample指向AjaxWeb目录,比如我们例子Calculator
可以运行:http://localhost/swsample/SysPage/ShowView.aspx?view=Calculator

谢谢!
Shawn

zhou...@vip.163.com

unread,
Mar 14, 2007, 6:10:25 AM3/14/07
to ShineWay-Pure Ajax Web-Dev
OK,粗略看了一下,目前比较忙,以后再来研究,如今Microsoft的Atlas也很牛,不知道楼主的框架可以用Atlas不?:)继续努力!为你
加油!
Reply all
Reply to author
Forward
0 new messages