在Vista下搞开发?Visual Studio 改进版初体验
Visual Studio 的售价是超级高的但是前不久微软搞了项活动可以让学生用户免费得到这款超贵的软件只要有教育网域名的邮箱就可以得到正式版授权详情看免费获得WindowsVS等微软超贵软件攻略
本文针对VS专业版的得与失进行了分析而且会提及到Team Suite的一些优点希望与大家一起分享
Microsoft IDE的改进方便了各个层次的用户这些改进包括语言级集成查询新的绘图设计图面支持Vista Web 技术和Net 框架的多个版本VS是微软公司坚持IDE(集成开发环境)长期路线的最新体现它是最初的集成开发环境用来使用微软Net Framework开发应用程序至少是最好的Windows的C/C++集成开发环境的竞争者当然VS不仅仅限于开发台式机应用程序它也适用于开发Web SOA和设备应用程序
从免费的Express Editions 版本到无所不能的价值美元的Visual Studio Team System Team Suite VS发布了一系列的版本从根本上说Express版本是为初学者学生以及业余爱好者设计的标准版本是针对个人开发者的专业版本则是为高级开发者以及小团队的工作者设计的
Team System主要是为更大的团队设计的主要包括开发者设计者数据库管理人员测试人员在内的Team System客户以及一个被命名为Team Suite的多功能的联合客户Team System的服务器是Team Foundation Server (TFS)此Team Foundation Server (TFS)结合了一个团队入口版本控制工作项目追蹤build 管理 流程指导以及商务智能
本文针对VS专业版的得与失进行了分析而且会提及到Team Suite的一些优点希望与大家一起分享
安装和测试
本文使用了VS的三种安装方式第一个是安装在Windows Vista上的专业版本这个是为x笔记本电脑设计的而且笔记本上带有Expression Web和 Expression Blend;第二个是安装在Windows XP台式机上的Team Suite而且Windows XP上也安装了VS但是不能使用TFS;第三个是安装在Windows Server Virtual PC里的Team SuiteWindows Server Virtual PC上也安装了TFS以上版本的天测试版都可以从Microsoft 官网上找到
在开始安装之前有一个小建议即创建一个系统的镜像备份这是非常明智的因为安装VS通常需要几个小时而且需要手动开始文件安装步骤
我连续几周在XP台式机上运行了VS Team Suite而且每周都运行五天而且试图在所有的开发工作中使用VS Team Suite我也在Vista笔记本电脑上使用专业版本运行了几个单个的开发方案并且在Team Suite/TFS virtual PC上模拟了一些团队开发方案有一点要注意的是如果使用帐号控制(UAC)在Windows Vista上安装就一定要作为管理员将VS多运行几次直到所有要求的目录都创建了为止完成后它才是完全符合UAC的
引进Net Framework
VS是Visual Studio第一个支持Net Framework 的版本它也是第一个以Net Framework ( and )多个版本为目标的版本Visual Studio先前的版本仅仅支持Net Framework的一个版本强迫开发者要么保持Visual Studio的多个版本要么将所有项目更新到Net Framework的当前版本以多个为目标是一个很受欢迎的进步在标准版本以及更高级版本中都可以找到它
很多技术人员都希望微软在这一方面取得更多的进步不幸的是微软并没有提供以Net Framework 为目标的版本也没有在VS VS和 Visual Studio Net 项目间提供简单的双向转换这点让我们感觉到有些失望
Net Framework 有多个新类别库和语言功能包括语言级集成查询与Web 和 SOA相联系的改进集成的工作流程点对点的协议以及Microsoft Office支持
所有这些工具都能在VS中找到例如在Visual BasicNet 和 Visual C#中VS 的标准版以及更高的版本中都有语言级集成查询(LINQ)支持包括面向对象设计(Object Relational Designer) the SQLMetal命令行参数工具 LINQaware 代码编译器以及调试程序支持
LINQ语言级集成查询
LINQ是一个带有许多可能组件的一般机制LINQ将数据查询引入到C# 和Visual Basic语言为查询创建句法这些查询针对于内存中的数据结构就像针对于文件系统XML文件SQL数据库的查询一样
VS中有几个LINQ组件和提供商包括Objects(字符串反射和文件目录)的LINQXML 的LINQ 以及 ADONet 的LINQ ADONet 的LINQ包括两个组件DataSet 的LINQ 和SQL的 LINQ VS中没有包括更高级的ADONet 实体框架以及实体的 LINQ 但是今年都会作为一个辅助工具补充进来
我在针对于SQL服务器数据库的C#中测试了SQL 的LINQ
在写LINQ 查询时Object Relational Designer从数据库架构中创建C#类型进执行得很顺利而且IntelliSense也工作正常另一方面通过手写针对于三个相联系表格的LINQ查询导致了LINQ存在的一些技巧方面的局限我们都期望得到能和VS图像SQL Query Designer 相对等的LINQ 因为我从没有找到书写和SQL SELECT DISTINCT查询相对等的LINQ的方法
智能感知 重构 单元测试和指标
在做这个小项目的时候我发现C#重构功能(包括在专业版以及更高的版本中)运行顺利编辑C#时开发员能利用自动的重构这是LINQ的完全智能感知支持只为托管代码计算代码指标
我也发现托管代码(包括VSTS Developer和Team Suite中的托管代码)的代码指标也运行得很好我不确定我是否同意为代码(此代码从设计图面生成)计算指标的方法但是我确定能看到指标的全部效应尤其是在带有TFS的团队项目托管范围内让人高兴的是VS为托管代码引进了此技术
但是非托管 C++项目不能使用代码指标和代码重构对这一点让人感到很失望另一方面C++程序可以利用一个很好的调用浏览器即它给你提供一个关于其他功能的简洁说明这些功能可以调用一个特定的功能代码行则执行这些调用
Visual Basic项目有代码指标这些代码指标带有简洁得不可思议的句法巨大的智能感知功能以及许多代码片断然而 让人失望的是Visual Basic项目没有代码重构尽管可以利用几个第三方插件添加此功能
现在单元测试是专业版本的一个功能(它是VS中的一个VSTS功能)我们可以为C#Visual Basic以及托管 C++解决方案创建单元测试和测试项目在使用免费的开放源程序Nunit之前可以为C# Visual Basic以及 托管 C++解决方案创建单元测试和测试项目但是将单元测试功能和IDE集成起来更好
为JavaScript设计的智能感知是VS一个大的进步但是代价很高尽管已经增加了用来写ASPNet AJAX 和Silverlight页的JavaScript的支持然而用来编辑VBScript以及Classic ASP的支持却被抛弃了因为我仍然保持了一个 vintage Classic ASP站点当发现VS处理ASP网页做得比VS还差时或者比Visual InterDev 还差时真是让人非常恼火据说微软正在考虑恢复此功能为VS提供一个服务包同时仍然保持Classic ASP站点的人们不应该放弃它们现有的工具
WPF Silverlight和 Web
VS支持带有一个分隔面板的WPF设计调试器支持和为C# 以及Visual Basic 而设计的WPF项目模版微软称WPF支持用户界面(UI)媒体文档硬件升级向量图形不同形式因子的可测量性交互的数据可见性优越的内容可读性WPF图表制法由XAML(XAML是XML的分支)定义隔面板 WPF设计者在一个方格中使用GUI而在另一个方格中使用XAML只要你没有将错误引入到XAML就可以双向同步化两者(GUI和XAML)
只要为VS安装了Silverlight SDK 和Silverlight Tools VS 支持 SilverlightSilverlight是一个丰富的因特网应用程序技术此因特网应用程序技术包括WPF的一个子集我曾使用VS测试版开发Silverlight应用程序并且取得好的效果
VBScript 和 Classic ASP被抛弃的支持带来异常VS中网页设计图面比VS中的更好它与Expression Web很相似并且很好地支持CSS在VS中为ASPNet AJAX Windows Communications Foundation以及Windows Workflow Foundation设计的设计图面和项目都是免费的都已经转移到了基础VS产品中
Office和智能设备目标
Office (VSTO)的Visual Studio Tools已经被融合到了VS专业版本以及更高的版本中以前它是一个单个的产品卖价是美元现在VSTO支持C# 和 Visual Basic中Office 和Office 的所有组件
VS可以为四个目标平台创建托管 Smart Device而且在C# 和 Visual Basic 中VS可以创建Net Compact Framework的两个版本在C++中使用Win ATL(活动模板库)和MFC(微软基础类库)库VS可以创建非托管 Smart Device项目过去这个功能存在于分开的Windows CE工具箱中
其他
ClickOnce部署被增强了以此涵盖了WPF Web Browser应用程序提高ClickOnce部署允许ISVs重新签名应用程序宣告在UAC下生成宣告ClickOnce是微软安装程序一个更轻量级的选择微软安装程序允许从网站部署自我更新的台式机应用程序
Microsoft SQL Server Compact 是一个新的本地数据库此本地数据库非常小能够部署在小的设备上开发者能在独立的以及偶然连接的方案中使用它当SQL Server Compact用于本地数据库缓存时ADONet的微软同步服务处理本地Compact数据库和远程数据库之间的周期同步化
如果测试了Team Foundation Server(TFS )安装Visual Studio可以集成它这允许程序员接受工程项目执行签入也允许管理员提出报告
Team System取得了许多改进TFS一方面创建了新的Team Build系统另一方面是Web的存取建筑师有一个新的自上而下的系统设计还有一个建筑设计的角色系统开发者拥有我先前讨论的新的代码指标系统也是更好的代码分析和性能工具DBAs 拥有 TSQL代码分析数据生成器和重构工具测试者有更好的工具和确认规则包括一个测试负载代理
Visual Studio有一个独立软件推销商的活动生态系统大部分推销商生产插件和控件(这些控件提高Visual Studio)这样使该生态系统更加健康因为它允许ISVs更有竞争力微软的花费也相对少一些
总结
总的来说Visual Studio 进行了很大的改变同时也是为了与新技术(WPF WCF和 WF)一起发展为了开发新平台(如Windows Vista)许多面向微软的开发商也定会想取得此新技术然而要想取得这项新技术可不是那么容易的一旦项目本身已经成功地更新了大部分开发商在项目上就会更新所有的开发者
对于仍然保持了Classic ASP站点的公司在Classic ASP以及VBScript编辑功能恢复了之前建议一起安装VS和VS因为已经感知到的VS的问题对于那些仍然使用Visual Studio Net 或者是更老的版本的公司 VS是更好一点的选择
Visual Studio用户的水平是参差不齐的但他们都发现Visual Studio 发行版被改进了它很少出现异常情况对于开发人员来说这是一个强大的更新而且为未来开发技术的发展提供了一个可靠的基础