简单而复杂的未来(一)

简单而复杂的未来(一)

——.Net时代C/S、B/S、Desktop程序一统解决之道

 

这些天我一直在思考一个问题,C/S,B/S、Desktop应用程序有没有可能最后统一起来,用户可以不需要知道程序是什么类型,程序员可以只写一遍代码就可以在三种模式下运行。本文就是讨论这种可行性。

C/S、B/S与Desktop应用程序倒底有没有本质区别呢,应该说看上去有区别,我们来看下面这张表(对Windows而言)

 

Desktop

C/S

B/S

表现层地点

本机

本机

本机

表现层环境

窗口环境

窗口环境

浏览器

表现层逻辑

本机

本机

本机/服务器

应用层地点

本机

本机/服务器

服务器

数据层地点

本机

服务器

服务器

 

 

 

 

从上表可以看到,面对用户的表现层总是处在本机,表现层逻辑也可以统一到本机上(B/S中如果采用脚本实现而非服务器生成绘制代码,而且从AJAX的目标来看就是要模糊C/S和B/S的界线,服务器更专注于应用层和数据层)。至于表现层环境是不是统一的呢,实际上浏览器也是一个窗口应用而已,只是它通过脚本来进行绘制,和窗口绘制用二进制的字节来调用并没有本质的区别。

 

表现层的统一:

在几年前也许是不可能的,因为硬件的要求达不到我们的要求,也因为软件技术没有如此的丰富。现在我们有了高速的PC机,XML的技术。完全能实现我们的目标。对于以下一个XML文件

<?xml version="1.0" encoding="utf-8" ?>

<FORM WIDTH="300" HEIGHT="500" TITLE="Test Form">

          <LABEL LEFT="0" TOP="0" WIDTH="100" HEIGHT="25" TITLE="Hello,World!"></LABEL>

          <BUTTON LEFT="0" TOP="30" WIDTH="40" HEIGHT="30" TITLE="ClickMe" OnClick="System.MyDll.CButton.ClickMe"></BUTTON>

          <PICTURE  LEFT="0" TOP="100" WIDTH="100" HEIGHT="100" Pic="System.MyDll.Resource.Image001.jpg"></PICTURE>  

</FORM>

当然这是一个示例。但是以上三种程序均可以对其进行解读,并且生成用户界面,B/S自然不必说,C/S和桌面程序只需一个可进行扩展的框架库便可以实现。当然它的速度会比直接用二进制的要慢一点,但是是完全可以接受的。如果同时有一个B/S的界面库,应该是可以保证三种程序界面完全统一的。只是B/S的界面是显示在浏缆器里。事实上目前有很多三方控件它是基于XML文件的。

从上面我们可以看到界面逻辑System.MyDll.Cbutton.ClickMe完全后置,这样做是有好处的,可以使我们的界面和界面逻辑完全分开,才可能实现三种程序的统一。

后面的章节我会讨论应用层与数据层实现统一的可能

欢迎大家讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值