FLASH和Asp.net的随想曲[1]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 aon 的 blog

  几天前没事,重温了一下以前喜欢的flash。又在网上看到了micromedia的三大新战略的新闻。micromedia已经开始表明他们战略意图的转向,想在移动通讯、网上教学甚至服务器软件等领域占有一席之地,对于micromedia的breeza、flex、coldfusion我还只是闻其声未见其人,不过在使用了flash mx 2004后,我不由得想提出几个问题。

    flash可以做些什么?
    我们还需要asp.net吗?
  我们还需要ie吗?

  flash可以做些什么?打开flash mx 2004,马上可以看到一些令人熟悉的组件:dataset、datagrid、datafield,还有xmlconnector、webserviceconnector等。这些组件可以让我们快速的建立一个界面,向用户显示信息。既然如此,我们的web站点是否可以重新规划,用一种新的方式来展现内容?
  建立一个flash,运行它,然后向服务器发送一道xml格式的指令,如下
  <?xml version="1.0"?>
  <request>
   <命令>执行查询</命令>
   <查询类型>选择查询</查询类型>
   <查询数据表列表>
     <数据表>user</数据表>
     <数据表>article</数据表> 
   </查询数据表列表>
   <查询数据表联结关系>on user.id = article.userid</查询数据表联结关系>
    <查询字段列表>
      <字段名>username</字段名>
      <字段名>title</字段名>
      <字段名>content</字段名>
      <字段名>dateandtime</字段名>
      <字段名>other</字段名>
    </查询字段列表>
    <条件>article.id=1</条件>
    <分页>2</分页>
    <排序字段>dateandtime desc</排序字段>
  </request>
 
  服务器接收这道指令,于是运行一个查询,返回一个xml数据页,flash收到数据,在客户端显示出来。
  这是不是有点麻烦?不,如果我们把这种向服务器发送指令的方式封装成一个flash组件,让flash制作者可以轻易的把一些操作转换成发送到服务器的指令,那就显得并不困难。
  服务器做些什么?服务器只需要执行查询,或者执行一些功能命令,向网络输出二进制流,或者返回一些信息就行了。如果服务器端和flash之间的交互是规范的,有一定模式的,那么,服务器的组件就可以固定下来,可以重用,可以共享。
  这有什么不同吗?当然不同,我们可以简单的把web网站看做三层,对数据库的操作层、执行一些功能的应用层、格式化页面的表现层。那么,现在服务器只需要完成对数据库的操作和一些基本的功能就行了,而表现形式,完全可以放在flash中完成。如果这显得麻烦,我们就可以利用flash可以扩充的组件,制作许多个容易使用的组件。让代码可以重用,一切就会变得简单许多。还觉得麻烦的话,我们可以让服务器在输出前,把一些内容用xsl转换一下,再把html内容放在一个xml元素里传过来。flash就可以用一个文本框的htmltext属性来展示。
  
  ok,我们可以做到这些,这并不困难,问题是,如果我们这样做,那么

  我们还需要asp.net这个庞然大物做什么?
  
  在这里提出这样一个问题可能很可笑,连我自己也不敢大声的说出这句话。可是,让我们想象一下,如果我们真的象上述那样用flash来建立网站的话。我们需要一个什么样的服务器?
  
  一个更小巧的服务器,不需要对不规范的脚本进行解释,只需要执行一些功能就行了,然后就可以让客户端的flash调用,并返回规范化的数据。

  一个更快速的服务器,既然象上面说的那样,做出的asp.net组件可以重用,可以固化,那么为什么不直接固化到服务器程序里,这样会更加快捷。

  一个更加安全的服务器,我们可以更好的控制服务器,不需要再让一个空间使用者在服务器上写一些谁也无法预料的程序。

  一个可以描述规范的服务器,服务器接收到flash的命令后,如何输出,应该以什么样的格式进行输出?我们可以提供一些描述性指令,允许用户建立一些象ms sql中的存储查询一样的功能,供用户的需要进行调用。
  
  当然,你可以说我们为什么需要flash?asp.net的模板可以做得更好。可是asp.net可以象flash那样把动与静完美的结合吗?asp.net可以把数据输出后还能有效的、实时的控制数据的动态效果吗?flash已经深入人心,svg和vml还却在那里吵架。或许flash制作有些麻烦,但是那些闪客已经从flash最初的版本中闪出了活力,谁能说他们不会做得更好?

  我并不想在这里争论flash网站是否可以普及(建立flash全站完全可能),我只想提出一个猜想,事实上,在micromedia的新战略中,已经可以觉察到这些意图,问题只是,这会带来什么。

  这会带来什么?是的,一旦服务器端的指令可以变得规范化、固化、简单化,那么,我们的asp.net和asp程序员将不再需要站在服务器端写一些代码,向客户端发送数据,并且在发送之后就象往大海里扔了一个瓶子,谁也不知道它会变成什么样。
  于是,未来便属于flash组件编程员了,他们向服务器发送指令,要求得到数据。然后处理这些数据,用生动的、动态的形式展现出来。我们不再是站在服务器上思考,我们就是客户,web站点不再是一堆用链接线串起来的单个的页面,它将象一个windows应用程序一样,成为一个整体。最多,我们再用loadmovie从服务器上读取几个子程序罢了(swf文件)。而所有的文字内容、图片、声音、媒体都可以被当成单纯的数据被取用。
 
  ok,那么就有了下一个问题,

  我们还需要ie吗?

  新的flash将给我们带来什么?想象这样一段qq对话。

  短歌行:长哥,我喜欢《老康蓝屋》这个网站,哪有啊?
  长恨歌:你有《中国网站大全》这个网站的flash吧,打开它,在里面搜索一下就有了,很有名的,马上可以下载。
  短歌行:哦,谢谢了,另外,《清纯美少女》这个网站怎么运行不了了?
  长恨歌:那个网站有点色,以前的服务器被封了,你到bt上下载一个最新版本的,可以控制服务器ip地址,我可以把最新的服务器ip告诉你。
  短歌行:哇,太棒了,我就去下载。

  有意思,这将是一种什么样的网站?一个flash就是一个网站的入口,它究竟是一个应用程序,还是一个首页?我们还需要域名吗?我们的flash为什么一定要告诉别人,我们是从 www.csdn.net这样的地方取数据的呢?为什么不直接向61.186.252.133取数据呢,反正用户只要记住csdn.swf这个顶顶大名的网站就行了。我们可以在网上分发这个flash,bt下载、flashget下载,让用户以任何形式得到。我们可以控制flash读取数据的位置,一个服务器出现故障了,让客户端的flash去别的地方取数据就行了,用不着发布什么“请用户原谅,我们的服务器一部分出现故障,暂时停机,请访问下列地址”之类的公告。
  
  呵呵,想得太远了,万维网可不是那么容易被打破的,但是方法变了,网络的模式也将出现变化。如果拥有了flash网站,我们一定要把flash死死的放在一个ie里进行播放吗?
  
  当然,还有一个问题,假如我想在浏览 "老康蓝屋.swf"时去看"清纯美少女.swf",我是不是应该关掉《老康蓝屋》,再打开《清纯美少女》?那太麻烦了,难道我们不能象在ie中点击一个链接一样访问另一个网站?

  可以,我们做一个flash播放器就行了,把网站flash放到这个播放器中播放,并接收指令,在链接时跳转到另一个网站flash就ok。但是,只要这个播放器是我们自己做的,就难以普及、难以规范化、难以形成标准。
  
  或许breeza可以做到,但我没用过breeza,所以也不知道它究竟会是什么样。我只是想设想一下,我们需要的这样一个播放器,它应该做些什么。

  ,flash中的一个链接应该提供一些什么信息?网站名、网站flash的最优先的索取位置,这将是一个ip或者是一个网址,或者它将是一个巨型服务器数据库中的索引id值,我们还可以要求一个flash网站提供一个类似com组件那样的唯一标识。这样的话我们的flash播放器就可以根据这些信息找到我们需要的网站flash。

  为什么需要唯一标识?假设我们在最优索取位置的地点找不到这个网站flash,那么,我们可以向互联网公布一种类似bt一样的查询公告,看看哪个上网的用户的电脑上有,如果允许的话,收过来,让我们共享。而我们的这个flash的播放器就负责发布公告,也可以收听公告,网上的一些服务器负责验证标识。还有一点,一旦有了这样一个标识,那么,负责分发标识的机构必然会大受瞩目,这个机构收费吗?这个机构是不是只对那些有名的网站flash分发标识,并收取费用?呵呵,想得太远了。

  说到这里,许多朋友肯定会认为我的想象力太丰富了,但不切实际,asp.net是艘航空母舰,ie是个老熟人,哪有想扔就扔的。

  我承认,它们都有许多数不清的优点,我也不认为一下子就会抛弃它们,但是,为什么我们要因此而制止想象力,为什么我们不能去想象一种新的互联网模式,中国的程序员写了多少年代码,始终在别人写的规范里、画的圈子里转悠。为什么我们不能大胆一些,抢占一些新的东西,建立一套我们的规范、我们的标准。让我们说出的每一句话都成为他人的标准?
  

本文关键:FLASH和Asp.net的随想曲
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top