最近看了自己关心的主题的微软PDC视频,也结合自己的Web 2.0项目做了一些思考。这次PDC最大的一个主题就是Azure OS,所谓的云操作系统。不过微软的服务器要布到中国也不知道要到什么时候,所以也没有深究。我主要关心的是Asp.net和C#的技术走向。

  我总结了一下,总的走向就是更加的Web化,比如Webform的Tag的ID可以控制了,MVC将成为主流,C# 4.0更加向动态语言靠,甚至引入了一个dynamic的关键字。这些基本和我的预期相符合。其实都指向一个理念:Web的本质是文档。

  Web的本质是文档

  以前有网友对我的所谓“文档化”理念提出疑问。因为我一直认为理念和战略思想可能在一开始就决定了成败。感觉有必要探讨一下,或许可以给大家提供一个新的视角。

  我尽可能罗列结论,略去推导过程,节省大家的时间。

  首先,Web本质是文档,或者说更倾向于文档化。我对文档和应用的区分标准是,文档更倾向于让人理解,应用更倾向于让机器理解。

  WEB的三个要素已经产生了,就是3位一体的HTML+CSS+Javascript

  这个三角形结构已经愈发成熟愈发稳定愈发强大了。也许第四类要素也显出雏形了,就是语义要素,需要的只是时间吧。

  任何试图忽略,取代这三个要素中的任何一个都是一个危险的企图。

  (一个最典型的这样的尝试就是asp.net webfrom,居然可以同时屏蔽和封装这三个要素,而asp.net mvc则是一种回归,我对asp.net webform的最新理解是,一个使用Web技术的Windows应用。而Asp.net mvc才是更接近web的本质)。

  ◆HTML是一种文档。

  ◆CSS是一种变换,它的最大特点是在它变换HTML的时候不会改变HTML的拓扑结构,或者说是DOM结构。

  ◆Javascript也是一种变换,它可以改变HTML的拓扑结构,或者是DOM结构

  HTML文档的最大特点是自我解释性,这是互联网的特性决定的,因为互联网就是最大程度的交流。如果你开发了一个应用,试图“封装”,或者“替代”HTML,那么可能会在做一件蠢事。因为你的应用没有自我解释性,也许你要配一个详细的文档,教程,或者其它什么东西来解释你的应用,而且还须要用户能正确理解这种说明和解释。这就违背了Web了精神,分享的精神。

  那CSS为什么也不能被绕过呢?因为它和HTMl配合的最好,和HTML之间属于松散型耦合,通过长期演化,已经接近完美了。现在甚至发展出了,MicroFomats这样的赋予语义的css标准,或许这是迈向语义网的一个途径呢?who knonws?

  Javascript呢?很多.Net程序员不熟悉JS,不是也过得好好的吗?我在想,也许好日子到头了。Javascript的地位将不会被削弱,而可能是大大加强。

  CSS的成熟,导致了Div+CSS的开发方式的流行,而由于Firefox和AJax的流行,将近一步加强这3大要素的地位。相信多用用firebug可能对此有更深感受。Jquery的出现更是大大降低了JS开发难度。设想一下这样一个Firebug版本,在你发出一个Ajax请求的时候,你看到了一个Response到达你的浏览器,可以看到一个Json数据结构是如何改变你的DOM,不但可以设置断点,更为神奇的是DOM改变过程居然可逆。在C#程序中,设置一个断点,然后到了这个断点以后倒退着执行,能办到吗?也许要到C# 7.0了。但是,DOM可以,因为它是文档。只要建立快照就可以了。会不会有Transactional DOM出现呢?

  HTML是拓扑结构,是第一性,Javasript是一种变换,属于第二性。这和windows时代的所谓应用第一性其实已经是有了本质上的区别。事实上世界上最赚钱的软件是什么,就是Office.它其实就做了一件事情,就是处理文档。

  Office软件有好几种,它们之间的关系是什么呢?

  ◆Word是一维的文档,你可以对一个文档重新分页

  ◆PPT是二维的文档,每一页都是完整独立的一页,你没有办法重新分页

  ◆EXCEL是三维的文档,表格是两维,Tab页是第三维

  微软又搞了一个OneNote居然是四维的,似乎不是很火。所以要写的让更多的普通人能看懂就用Word,要更有效率传达更多信息,就用EXCEL。

  事实上,微软的高手当然都明白这些,只不过,如何将它们的商业模式,平滑的转向Web那是一个非常艰巨的任务。所以微软就有了各种试图将Web应用化(Windows化)的企图。甚至在所有产品前加上Windows 商标(比如Windows Live,难道是恶搞?)。

  PDC上展示了基于Silverlight技术的Web Office技术,微软终于对Google Docs做出了反应。

  谁会胜出?

  谁会最终胜出呢?3年内,我看好微软,3年后就很难说了。也许写一篇存在自己硬盘上的Word文档,会和写一封永远不寄出去的信类似。真的到了Web 平台,那么血统更纯正的google Docs会胜出吧。拭目以待。

  所以在对待诸如Siliverlight这样的新技术的时候,站在客户的角度去思考是非常必要的。如果你在期待着微软发布更多siliverlight控件的时候,也许应该想一想,你会不会在和Web背道而驰呢?

  当你面对Google Doc这样神奇的应用的时候,是不是能看到其中的内涵和潜力呢?重要的不是那些神奇的JS,重要的是它是一个HTML文档,一个资源,一个URL。它不是更容易向语义网扩展吗?

  有的时候感觉,技术的演进和生物的演进非常相似,生物树上最终消失的分支,往往是比较容易的演进,而演进的主线,往往是最困难,最缓慢的,然而最后却成为了演进的主线,并最终胜出。

  PDC的两个新亮点

  另外提一下PDC看到的两个新东西,特别是第二个,可能是非常重要的。也许是The next big Thing(下一个大事物)。

  在Anders的演讲中提到了,C# 4.0以后的一个特性,就是用C#重写C# Compiler,原来是C++写的。然后你就可以在你的程序中调用Complier的API的动态产生执行代码。非常有趣。不过他没有怎么提应用场景。感觉可以用在代码自动生成,和人工智能方面。

  另外一个是DHTML之父Scott Isaacs搞得一个 Web SandBox,简单而言,就是用JS写的一个虚拟机,可以运行在各种浏览器上,将各种浏览器的JScript标准化,建立一个砂箱模型,隔离JS,HTML,CSS。也就是说一个JS恶意代码插件,将不会对页面产生任何破坏作用。应用场景呢?Facebook的FBJS应用插件就是类似的功能。但这个是一个更加完美的解决方案,因为你不必改变你的JS的写法。

  不过文档里面没有提到插件之间如何通讯。那和IFrame有什么区别,据说是比IFrame 更加安全。如果这个技术成熟的话,会有很多有趣的应用出现。至少在技术上不输给 Facebook了,我会密切关注这个项目。开发Web 2.0有点像造火箭,成功了就是特大成功,失败则更是家常便饭。所以给正在搞Web 2.0的朋友们加个油。

转载于:https://www.cnblogs.com/waw/archive/2011/09/02/2163205.html

一起谈.NET技术,微软PDC10:大牛谈ASP.NET和C#技术走向相关推荐

  1. 一起谈.NET技术,在没有安装 ASP.NET MVC3 的服务器上运行 MVC3

    当在服务器上部署 ASP.NET MVC3 的应用的时候,可能会看到如下的错误信息: 这表示你的服务器上没有安装 ASP.NET MVC3. 解决这个问题的方法有两种: 第一,当然是在服务器上安装 A ...

  2. 李开复LeCun乔丹等大牛谈AI现状与未来:AI芯片将催生新的OS和生态

    ▼ 点击上方蓝字 关注网易智能 为你解读AI领域大公司大事件,新观点新应用 编者按:2018 GMIC全球移动互联网大会今天在北京举行,本届大会主题为"AI生万物",在上午的主论坛 ...

  3. 趣谈GC技术,解密垃圾回收的玄学理

    趣谈GC技术,解密垃圾回收的玄学理论 GC的由来 一个例子引发的问题 GC的意义 GC算法 Reference Counting 循环引用 破环之道 作者介绍 开源项目介绍 大多数程序员在日常开发中常 ...

  4. 搞懂分布式技术16:浅谈分布式锁的几种方案

    搞懂分布式技术16:浅谈分布式锁的几种方案 前言 随着互联网技术的不断发展,数据量的不断增加,业务逻辑日趋复杂,在这种背景下,传统的集中式系统已经无法满足我们的业务需求,分布式系统被应用在更多的场景, ...

  5. 浅谈虚拟化技术下的云安全如何处置

    浅谈虚拟化技术下的云安全如何处置 近年来,云计算是目前非常热门的一个研究领域,其实它并不是一种全新的技术,而是许多技术的融合体,包括分布式计算.动态和拓展等各种各样的技术算法,而虚拟化技术是云计算里最 ...

  6. 技术创业需胆识 谈IT技术人员的创业 (http://www.cnblogs.com/dudu/archive/2007/05/27/761740.html)...

    技术创业需胆识 谈IT技术人员的创业 作者:李立辉 我自己介绍一下:本人96年西点毕业,学的是无线通信,柳传志是我的校友,后来分配到北京巨龙做交换机,98年去了深圳中兴,当时看到中兴日益强大,和华为的 ...

  7. 浅谈.NET技术公司的实习生培养

    浅谈.NET技术公司的实习生培养 背景 近几年.NET开发者市场的越发不景气,一毕业就选择.NET技术的开发者更是少之又少.一方面是公司效益的日益提高,一方面却是招聘优秀人才的速度总是赶不上公司发展的 ...

  8. 浅谈缓存技术在ASP.NET中的运用

    本篇文章虽不谈架构,但是Cache又是架构中不可或缺的部分,因此,在讲解Cache的同时,将会提及到部分架构知识,关于架构部分,读者可以不用理解,或者直接跳过, 你只需关心Cache即可,具体的架构, ...

  9. 以计算机谈人文科学,阅读下面一段文字,完成问题   自20世纪80年代以来,世界都在谈“软科学技术”,何谓软科学?经常听人说:“脑子不够使。”这其实就是对软科学的需求。于是,从古至今,...

    阅读下面一段文字,完成问题 自20世纪80年代以来,世界都在谈"软科学技术",何谓软科学?经常听人说:"脑子不够使."这其实就是对软科学的需求.于是,从古至今, ...

最新文章

  1. Flask-RESTful的简单使用
  2. CCNA笔记-交换机安全
  3. 对象的当前状态使该操作无效 说明: 执行当前 Web 请求期间,出现未处理的异常。...
  4. python numpy.r_ 与 numpy.c_的用法
  5. php zend gua,PHP安装使用Zend Opcache扩展
  6. 32位微型计算机原理...,32位微型计算机原理·接口技术及其应用
  7. OpenCV中的Sobel算子
  8. python 标准库 —— io(StringIO)
  9. [转载] 莫烦python学习笔记之numpy.array,dtype,empty,zeros,ones,arrange,linspace
  10. 计算机辅助教学的开题报告,开题报告样例1(计算机辅助教学)(8页)-原创力文档...
  11. GPL协议、LGPL协议与BSD协议的法律区别
  12. WLC5520无法通过无线客户端进行网管故障解决
  13. 计算机二级java难吗_计算机二级上机-计算机二级难吗?二级高级语言:分笔试和上机考试笔试90分钟, 爱问知识人...
  14. java 反编译 知识学习汇总 java网络爬取网页代码
  15. 手机内存如何快速自清理
  16. 棋牌游戏“拖拉机”牌型提取
  17. Hive详解之内表、外表和分区
  18. 什么是银行的表内表外业务?
  19. 程序化交易入门(一)
  20. 学习使用安卓scroller

热门文章

  1. 分布式事务的实现原理
  2. 从0梳理1场NLP赛事!
  3. 从理论到实践,Top选手带你进入数据竞赛的大门
  4. 剑指offer_第2题_替换空格
  5. 再见吧,996!程序员开源考公指南获高赞:三人已成功上岸
  6. 美国《消费者报告》实测特斯拉Model 3,“完全自动驾驶”名不符实
  7. 中奖名单,老读者请看过来!
  8. 获清华特奖又上“最强大脑”!这位90后学神去一线抗疫的理由是……
  9. 用Python爬取b站弹幕,看大家还会接受《爱情公寓5》吗?
  10. ACMNO.34 C语言-格式输出 请设计输出实数的格式,包括:⑴一行输出一个实数;⑵一行内输出两个实数;⑶一行内输出三个实数。实数用6.2f格式输出。