阿不

潜水

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  211 随笔 :: 0 文章 :: 3046 评论 :: 75 引用

公告

原来一直在Visual Studio 2005下做开发,考虑Visual Studio 2008 RTM已经发布有一段时间了,再加上在Visual Studio 2008上有很多令人心动的功能,比如JavaScript脚本的Intellisence,自动属性,多目标框架和很多方面的改进。所以一直在找一个合适的机会升级。今天终于等到这个机会了。

相对于Visual Studio 2003升级到Visual Studio2005(对应的框架1.1升级到2.0,后面的Visual Studio省去,比如Visual Sutido 2005直接称2005),2005升级到2008并不会遇到很多的版本冲突问题。因为.NET 3.5的Framework实际上仍然是基于.NET 2.0的运行核心,并没有做很大的变动,只是在其基础上扩充了很多功能。关于版本问题可以参看开心大哥的《.NET 3.5的版本问题》,这里就不再遨述。但是在升级过程中,还有一些问题值得重视。

  1. System.Web.Extensions的版本问题

    ASP.NET AJAX的版本问题可说是2005到2008过程中最棘手的问题了,对应的版本号分别为:1.0.61025.0(很久没有去更新了也不知道是否有更新的版本)和3.5.0.0。尽管使用方式和配置并没有太大的变动,但这两个版本依赖不同的框架环境,客户端脚本和服务器端代码都有很大的变动。因此升级过程中务必多测试,尽管如此还有一个问题估计是我们无法避免的,就是在ASP.NET AJAX 3.5的JSON序列化工具类中,对JSON序列串的结构有做了一个不小的变动。原来的对JSON都是按对象的结构序列化出来的,但在3.5版本中却在对象和属性字段之间增加了一个d属性,以d属性做为根结点,用下面的例子来简单说明一下:

    正常的JSON串:

    {Name:"abu",[Group:1]}

    相应在ASP.NET AJAX 3.5的会被序列为:

    {d:{Name:"abu",[Goupd:1]}}

    我不知道ASP.NET Team这样做是出于什么样的考虑。但此时,如果你也像我们这样使用EXT Library,服务器端使用的是ASP.NET AJAX的序列化功能(因为使用ASP.NET AJAX JSON序列化有太多的好处了,包括WebService的JSON调用)。要么你就要去修改EXT的一些代码来适应这样的变化,要么你就使用老版本的System.Web.Extensions吧。

  2. Web工程的目标框架问题

我不知道是不是我的步骤有什么问题。在将整个解决方案升级到2008的时候,选择的目标框架是.NET Framework 2.0。但是升级后的结果却是,普通的Class Library工程的目标框架都是.NET 2.0。唯独几个Web工程全部都被升级到.NET 3.5的目标框架下,给我们直接造成的影响是引用了System.Web.Extension3.5的程序集了,同时Web.Config也被“智能”的根据System.Web.Extension3.5的需要更新了,但这个“智能替换”还是把我很多其它的配置给替换没了。解决办法是将目标框架改回.NET 2.0,同时也要重新引用System.Web.Extension,并把Web.config还原回来。

之前我不急于升级的一个很重要原因是2008的相关资源还不是很丰富,而这些资源在现在已经都具备条件了。

  1. Web Deployment Projects (WDP)的发布,这个工具是我们编译发布生产系统一个很重要的工具。如果没有它,我想我们是不易做出升级到2008的决定。
  2. Ext在2008的Intellisence的脚本的出现。由于使用EXT,会编写很多的Javascript脚本,如果有代码提示肯定会提高很多的生产效率,这也是我们升级到2008很重要的一个考虑。目前可能会有几个版本的提示脚本,但是有一个版本我认为是最好的,一方面它是最小的,只有定义了原型,并没有将实现包含在里面。另一方面,真正运行的时候并不会去下载该脚本。你可以从这里下载到该脚本及了解它的使用。
  3. NBear Vs插件。我们使用NBearV3做开发,为了方便生成实体,基本上使用的都是NBearVs插件。但由于这个插件当前开发的时候面向的是2005,一直在担心不能用于2008。记得上次有一位朋友提过只要做一些修改即可在2008中使用,现在我也找不到该贴的原文。通过自动的动手尝试,还是找到了解决办法了。具体的步骤是:
    • 打开“我的文档”,找到“Visual Studio 2005”目录,在里面会发现有个Addins目录,里面会有两个与NBear相关的文件(前提是你已经装过NBearVSPlug插件)
    • 把这两个文档复制到相似路径的2008插件目录,然后双击打开NBear.Tools.EntityDesignToEntityVsPlugin.AddIn文件,修改里面的那个8.0改为9.0。那么这时NBear Vs插件就可以在2008下工作了。

这是我目前为止升级到2008的一些经验,希望能给一些正在犹豫是否升级到2008的朋友带来信心。

建议安装最新的Visual Studio 2008补丁,(如果官方下载麻烦,请从这里下载)解决了:

  • HTML源码视图显示问题。
  • 设计视图的性能问题。
  • HTML代码编辑。
  • Javascript脚本提示问题。
  • WEB Site编译的性能问题。

另外还有一个VSS2005 Update补丁从这里下载.

posted on 2008-03-04 13:30 阿不 阅读(...) 评论(...) 编辑 收藏