辨析Visual Studio 2010 RC中WPF开发的改进
创始人
2024-06-23 21:31:02
0

Visual Studio 2010 RC可以说就是未来Visual Studio 2010正式版的雏形,大致上将没有太多的变化。本文作者将为大家介绍Visual Studio 2010 RC中关于WPF开发方面的改进。想了解更多请看续篇《Visual Studio 2010 RC关于WPF开发多个不同》。

目前,我正在将过去VS2008的程序移植到Visual Studio 2010 RC上。当然也会发现细节上的不同之处。写出来和大家分享。

X个不同之一,用X主要是我实在是不知道会有多少个不同。权且就用X代替了。先说今天发现的吧。

很多人建立一个WPF程序,喜欢新建一个WPF标准程序,当然我也不例外。不过有时 我也喜欢手工建立一个WPF应用程序,这样做我坦言很大程度上是满足一下自己小小的虚荣心。让一个新手看你的时候,眼神中流露出一种无尽崇拜的光芒,这种光芒是一种鸦片,会上瘾的。

比如使用写字板新建一个hellowpf.cs文件。然后键入如下代码:

  1. using System;  
  2. using System.Windows;  
  3. class hellowpf  
  4. {  
  5.     [STAThread]  
  6.     public static void Main()  
  7.     {  
  8.         Window win = new Window();  
  9.         win.Title = "Hello mumu!";  
  10.                win.Width = 300;  
  11.                 win.Height = 200;  
  12.                 win.Show();  
  13.           
  14.         Application app = new Application();  
  15.         app.Run();  
  16.     }  

手工编译,可以使用开始菜单->所有程序->Microsoft Visual Studio 2010->Visual Studio Tools->Visual Studio 2010 Command Prompt,然后启动VS2010的命令行窗口,在里面键入编译命令。在过去VS2008下的编译命令如下所示:

  1. csc hellowpf.cs /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\presentationframework.dll"  
  2. /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\windowsbase.dll"  
  3. /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\presentationcore.dll" 

这句话的意思是使用csc命令来编译hellowpf该文件,还有需要引用三个程序集分别是presentationframework.dll,windowsbase.dll和presentationcore.dll。实际上一个典型的WPF程序至少需要四个程序集,还有一个是System.dll。由于默认情况下,已经引用了System.dll,因此不用显示地引用该dll。

我查看了一下安装了Visual Studio 2010 RC之后的引用程序集所在的目录。这三个Dll均在C:\Program Files\Reference Assemblies\Microsoft\Framework\.NetFramework\V4.0之下。于是这个编译命令可以想当然地改成下面的样子

  1. csc hellowpf.cs /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NetFramework\V4.0\presentationframework.dll"  
  2. /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NetFramework\V4.0\windowsbase.dll"  
  3. /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NetFramework\V4.0\presentationcore.dll" 

事实告诉我们“想当然”多半是想当然地错。

编译完毕会提示 缺一个称之为System.Xaml.dll的程序集,换句话说过去一个典型的WPF程序只需要四个程序集的时代结束了,它还需要一个System.xaml.dll的程序集 由四人帮变成了五朵金花。因此编译命令应该写成如下,才能成功。

  1. csc hellowpf.cs /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NetFramework\V4.0\presentationframework.dll"  
  2. /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NetFramework\V4.0\windowsbase.dll"  
  3. /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NetFramework\V4.0\presentationcore.dll"  
  4. /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NetFramework\V4.0\system.xaml.dll 

这是Visual Studio 2010 RC和过去VS2008X个不同之一,现总结如下:

在过去VS2008的程序里,一个最为简单的WPF程序至少需要四个程序集 system.dll,presentationframework.dll,windowsbase.dll和presentationcore.dll.

而Visual Studio 2010 RC里,需要五个程序集,除去前面的四个,还有System.xaml.dll。

由此也带来了一个问题,这个System.xaml.dll在这样一个简单的WPF程序里起到了什么作用?在下面链接里我搜索到了相关的资料http://ks.cn.yahoo.com/question/1409112400066.html 列出该资料的意思 不是说Helloj2ee找到了答案,而是所如果有大哥乐于作答 请不要在贴上这个链接了。而是给除更为翔实的资料。

此外在Visual Studio 2010 RC当中 还有一个不同 由于颇为细枝末节,不容易单独成文,因此就在这里提出:

Helloj2ee安装了Visual Studio 2010 RC确实没有找到XAMLPad,为何?

过去的XAMLPad通常都在\Program Files\Microsoft SDKs\Windows\v6.0A\bin目录下,安装了Visual Studio 2010 RC之后,目录改成了V7.0A,寻遍该目录也没有XAMLPad,试问为何?

此为2008pack1下手工编译的示例:http://files.cnblogs.com/helloj2ee/2008.rar

此为2010RC下手工编译的示例:http://files.cnblogs.com/helloj2ee/2010.rar

原文标题:VS2010RC关于WPF开发的X个不同之一——居然多了一个程序集引用

链接:http://www.cnblogs.com/helloj2ee/archive/2010/02/28/1674979.html

【编辑推荐】

  1. 一线程序员的Visual Studio 2010 RC初体验
  2. Visual Studio 2010敏捷之道
  3. Visual Studio 2010开发绚丽Win 7应用程序
  4. 详解Visual Studio 2010敏捷测试驱动开发
  5. Visual Studio 2010升级Web开发功能

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...