2004 年 7 月 30 日.NET Show:Visual Studio 2005 简介(翻译)[Microsoft版权所有]

翻译较为粗略,详细请参见http://www.microsoft.com/china/msdn/events/webcasts/theshow/Episode044/visualstudio2005.mspx
 介绍
--------------------------------------------------------------------------------
Robert Hess,Microsoft Corporation 的小组经理,专题片主持人。

ROBERT HESS:欢迎收看新一期的 .NET Show 专题片。开发人员工具对于开发完美的 Windows 或 Web 应用程序非常重要。我们很快就要发布新版本的 Visual Studio — Visual Studio 2005 了,它的当前代号为 Whidbey。在本期专题片中,我们将介绍 Whidbey,了解它的一些特性和功能,同时还要了解一些已添加到新版本中的其他功能,这些功能可以帮助您在小组环境中开发极佳的应用程序。在开始探讨之前,请先收看 Erica 带来的新闻。


MSDN 最新新闻
--------------------------------------------------------------------------------
主持人:Erica Wiechers,网站经理。

ERICA WIECHERS:大家好,我是 Erica Wiechers。欢迎收看 MSDN 最新新闻。


Web Services Enhancements 2.0

在 Tech-Ed 2004(2004 年度技术教育大会)上,Microsoft 发布了可立即使用的 Web Services Enhancements 2.0,这是 Microsoft Visual Studio .NET 和 Microsoft .NET Framework 的支持附件,它可使开发人员更加轻松地构建和使用安全性增强的 Web 服务(这些服务使用最新的 Web 服务协议规范)。开发人员可以使用 WSE 更加轻松地增强 Web services 的安全性,方法是通过集成 WS-Security(基于 2004 OASIS 标准),包括 WS-Policy、WS-Security Policy、WS-Trust 以及 WS-SecureConversation。


Visual Studio 2005 Team System

在 Tech-Ed 上,Microsoft 还发布了 Visual Studio 2005 Team System,这是一个可扩展的生存周期工具平台,有助于软件小组之间的协作。Visual Studio Team System 是 Microsoft Solution System 的一部分,后者集成了过程指导、说明性体系结构以及生存周期工具,以便在 Windows Server System 上成功部署解决方案。


新的 MSDN 开发人员中心

在 6 月,MSDN 分别针对 SQL Server 和智能客户端开办了两个新的开发人员中心。这两个开发人员中心提供了两个网址,您可在其中找到关于 SQL Server 和智能客户端的文档、技术资源以及社区功能,它们分别是 msdn.microsoft.com/sql/ 和 msdn.microsoft.com/smartclient/。


 Microsoft 和 PC Magazine 公布 Tablet PC“Does Your Code Think In Ink”竞赛获胜者名单

在 6 月,Microsoft 和 PC Magazine 还公布了 Microsoft Tablet PC“Does Your Code Think In Ink?”竞赛获胜者名单,此次竞赛对开发人员构建最具创造性的 PowerToy 实用工具(集成了 Microsoft Windows XP Tablet PC Edition 平台中所包括的数字手写输入功能)提出了挑战。此次竞赛的目的是为用户提供一组新的免费 PowerToy,它们将丰富用户的 Tablet PC 体验。全球范围内的每位开发人员以提交代码的方式参赛,一等奖的奖金为 15,000 美元。Microsoft 和 PC Magazine 从 70 多名参赛者中选出一名一等奖以及两名二等奖。

以上是 MSDN 最新新闻。我是 Erica Wiechers。


有关上述新闻的更多信息,请参阅以下内容:
--------------------------------------------------------------------------------

Web Services Enhancements 2.0
WSE 下载和相关信息:
http://msdn.microsoft.com/webservices/building/wse/
Visual Studio 2005 Team System
Visual Studio 2005 Team System Web 站点:
http://msdn.microsoft.com/vstudio/teamsystem/
新的 MSDN 开发人员中心
SQL Server 开发人员中心:
http://msdn.microsoft.com/sql/
智能客户端开发人员中心:
http://msdn.microsoft.com/smartclient/
Microsoft 和 PC Magazine 公布 Tablet PC“Does Your Code Think In Ink?”竞赛获胜者名单
请阅读新闻发布资料

 

 

技术探讨
--------------------------------------------------------------------------------
Robert Hess 与 Amnon Horowitz(Visual Studio 小组的产品部经理)和 Jason Zander(Common Language Runtime 小组的产品部经理)进行探讨。

ROBERT HESS:欢迎回来。今天我们要讨论 Visual Studio 2005 和 .NET Framework 2.0。坦白说,我自己习惯称它为 Whidbey,这是长期以来众所周知的代号。在此,与我们一起探讨 Whidbey 或 Visual Studio 2005 .NET Framework 2.0 的嘉宾为 Amnon Horowitz 和 Jason Zander,感谢二位的参与。

AMNON HOROWITZ:您好。

JASON ZANDER:谢谢。


 ROBERT HESS:说到 Whidbey,那么 Whidbey 究竟是什么?它只是一种开发工具吗?

AMNON HOROWITZ:不止如此。

JASON ZANDER:Whidbey 大大提高了开发人员的工作效率。我们正在尝试使下一版本的 .NET Framework 以及 Visual Studio 工具能具备更多的功能,使用户能够借助这些工具非常快速、非常简单地编写代码,从而非常快速地发布这些应用程序。仅作为一个示例,ASP.NET 设立了一个目标 — 使它具备上述功能,这样,与使用前两个版本的框架相比,您编写的代码数量应该能够减少 70%,而它们能够实现这一目标。您可以在很短时间内生成看上去非常专业的应用程序。因此,这恰恰是一个好的示例。


 ROBERT HESS:代码数量减少 70%。

JASON ZANDER:代码数量减少 70%。系统实际上附带了很多默认模板,并将很多内容放在左首;您可以将它们置入 Visual Studio 内,形成身份验证及类似内容,您仅可以使用它们并自定义个性化页面。您能够使用当前产品执行此操作,但它只是完全内置的。这样,您编写一个新应用程序的速度就会快得令人惊异了。


 ROBERT HESS:这样,不但应用程序的代码数量会减少 70%,而且开发人员也不必辛苦地编写所有代码。开发人员实际上编写的是自己的重要代码,这些代码对于他而言概念性更强,并且不必使用模板、区域以及类似内容。

JASON ZANDER:是的,的确如此。因此您自己可以编写所有的代码,并编写所有低级别的 html、所有验证逻辑以及逻辑所包含的内容。这种新功能可让您将它们全部置入您的应用程序中来使用,使用的方式与您编写大量低级别的集合处理代码、数组代码以及此类代码的方式完全相同,.NET Framework 为您提供了此功能,因此,这与在 Web 上编写应用程序非常相似。


 AMNON HOROWITZ:另一个值得注意的方面是我们实际上使用一个非通用方法启用了此功能。因此,Jason 所说的代码减少普遍存在于我们将要向用户推出的 Visual Studio 的多个版本中。在 ASP.NET 示例中,代码的减少集中在 Web 中的 html 上。在 VB 示例中,代码的减少集中在使用数据以及设计窗体的改进方面。在设备空间中,将对集成本机开发进行改进。在 Visual Studio Team System 中,将对以下方面进行改进:使小组更好地协同工作、使小组了解端对端产品的构建以及特定时间内的状态。


 ROBERT HESS:让我们回想一下 C 4.0 和 5.0 时代,在这些版本的发展过程中,最大的进步就是编译器在压缩代码大小等方面速度的大幅提高。现在,看起来焦点主要转为使工具本身具有作为工具而应有的功能,而不是作为编译器和链接器所应有的功能。这实际上允许开发人员通过具备某些能力来获得更好的工作效率,以前开发人员不具备这些能力,因为工具会为他们完成一些操作。这些指导原则有变化吗?

AMNON HOROWITZ:是的,的确如此。我的意思是,别弄错了,我们对于编译器速度和链接器速度仍然满怀兴奋和热衷之情,但我们的许多努力都集中在通过集成开发人员需要完成的个别任务来简化开发过程,以便构建此代码,还通过试图特别注意实际从事工作的开发人员类型以及他们的工作环境来简化开发过程。


 ROBERT HESS:依您看,Whidbey 主要面向什么类型的开发人员?

AMNON HOROWITZ:这是一个值得注意的问题,因为 Whidbey 实际上是面向所有开发人员的。一方面,您可能是高中学生或商人,第一次尝试学习 Visual Basic;另一方面,您可能是精力非常充沛的建筑师,管理着生产复杂产品的 100 人的小组。而 Whidbey 试图为所有人提供服务。


JASON ZANDER:我们的工作与所有这些人密切相关,举例来说,在圣地亚哥举行的 TechEd 期间,我们与许多不同的客户进行了交流,我也与一些人员进行了探讨,这些人员是:编写要在大型 IT 部门运行的胖客户端应用程序的人员、编写既可外部使用又可内部使用的 Web 站点应用程序的人员以及编写打包软件(可能实际上与您购买的外围设备以及此类设备一起提供)的 ISV。因此,我们获取了很多观点,而这只是有关桌面计算机的;它甚至还不包括设备空间,我们在这方面也有很大的投入。


ROBERT HESS:现在您提出了一个有趣的话题。您在一句话中同时提到了智能客户端应用程序和 Web 应用程序。在我看来它们就像两种不同的东西。您不认为一种开发工具同时针对这两种应用程序多少有些奇怪吗?

JASON ZANDER:我认为这对于两种模型而言显然都有利,我们曾经在这两种模型之间进行选择。它们有非常丰富的环境,使用 ASP.NET 可以轻松地在 Web 上进行部署,正像我所说的那样,工作效率非常高,而且您能够编写完美的应用程序。但是,我认为您确实发现的问题之一就是,有时作为执行某些级别计算的浏览器开始妨碍您的工作了。从这个角度看,实际上胖客户端会是比较友好的环境。因此,我认为在这两者之间存在着很好的平衡,那就是允许我利用这两种应用程序的优秀分段体系结构,我不认为胖客户端会不遵循这种观点。还有许多完美的应用程序,Office 就是一个很好的示例。


 ROBERT HESS:如果开发人员使用你们的工具来开发 Web 应用程序,如果他们还开发智能客户端应用程序,您认为会有跨度吗?或者当使用 Visual Studio 时,您会使用哪一种应用程序?

AMNON HOROWITZ:有的开发人员只能开发一种类型的应用程序,而有的开发人员可以开发两种类型的应用程序。在我看来,值得注意的问题是,开发人员并不完全只开发某一类型的应用程序,而某些创新也不是针对某一类型的应用程序进行的,实际上,创新是针对所有类型的开发人员的,适用于所有的开发人员。我们在构建 Whidbey 时遇到的有趣挑战是,一方面,我们试图确保将注意力完全集中在开发人员(他们要实现特定任务或特定应用程序类型)的端对端方案上;另一方面,试图在并不针对某一应用程序类型的方案之间共享更多的代码和创新。


 ROBERT HESS:举例来说,如果我是福特公司 (Ford) 的一名开发人员, 那么您认为 Visual Studio 2005 中的哪些功能最令我兴奋呢?

AMNON HOROWITZ:福特公司是一家大型企业,我想作为福特公司的一名开发人员,您开发的应用程序应该是企业应用程序,而且小组成员需要协同工作来构建复杂的系统。Visual Studio Team System 将成为令人兴奋的工具...

ROBERT HESS:现在,我们第一次提到 Visual Studio Team System,它究竟是什么?

AMNON HOROWITZ:Visual Studio Team System 是小组开发系统的基础,我们在 Visual Studio 2005 中第一次推出它。它实际上是 — 我想在今天的稍后时间里,我们将会实际演示它,但总的思想是具有一组小组服务,例如,源代码控制配置与管理、问题跟踪、工作项目跟踪、日程安排跟踪、要求...


 ROBERT HESS:这是不是有些像 Source Safe,还是不同于它?

AMNON HOROWITZ:Source Safe 只涉及源代码管理,是这些服务中的一部分,但它的真正特点在于组件之间的集成。因此,您可以执行的一个操作是:在相同的 IDE 中,在相同的端对端体验中浏览一个方案,您可以使用该方案处理问题或工作项、深入研究您的代码、进行更改、返回到工作项定义以及划分出您已完成的工作,它真正集成了 Team System 中产生值的工作流并使之自动化。


 JASON ZANDER:而且还在框架级别上与企业相关,我们已做的关键工作之一是引入了 Click Once,以便部署胖客户端应用程序。因此,作为非常庞大的企业,Ford Motor Company 显然引入已发布的新版应用程序。我们在 Microsoft 内部也有此举措;您如何使部门应用程序每三个月发布一次,如何轻松地使它遍及整个企业?因此,我们引入了像 Visual Studio Team System 这样的工具。我也希望在大型小组中会有比 Team System 组件更优秀的工具。实际上,开发人员每天键入代码并让它们运行,他们非常希望使用 Visual Basic 编写代码,我们已向 Visual Studio 中添加了许多 RAD 开发体验,这是 .NET Framework 和 Visual Studio 之间的协作,例如,Edit and Continue(编辑并继续),我可以使用它编辑代码、发现错误、修正错误,并在无需重新启动的情况下使应用程序保持运行状态,同时大大提高了开发人员的工作效率。


 ROBERT HESS:我知道 VB.NET 刚刚发布时倍受重视,人们将它与 VB 6 配合使用,他们对此非常关注。

JASON ANDER:是的,我们收到了很有价值的反馈,实际上,我们确实想在原始产品中添加 Edit and Continue 功能,但事实证明它在该环境中实现是非常复杂的,因此我们非常高兴使它重新联机工作并将其添加到系统中,Amnon 可能会在 Visual Studio 中介绍一些其他更改。


AMNON HOROWITZ:当您说到原始产品时,您是指 Visual Studio.NET 的第一版本吧。

JASON ZANDER:是的。

AMNON HOROWITZ:是的。开发人员可以使用它进行开发,并真正尽可能多地对所执行的操作进行自动化与集成,无论它执行微观操作(当您调试一个代码片段和遍历所有代码、使用 Edit and Continue 进行更改并保证它们正常工作时),还是在宏观上集成源代码控制更改以及您与小组其他成员的通讯,真正实现了它的作用。这就是它的目标所在。


 ROBERT HESS:现在,可以使用 Visual Studio 来编写 .NET Framework 应用程序,据我所知,在观众群中有很多人目前都在编写托管代码,他们非常满意托管代码具备的功能,但是,还有其他一些人由于某种原因尚未准备编写托管代码应用程序。我们可以在 Visual Studio 中添加一些功能来帮助他们最终看到编写托管代码应用程序的优点,并且能够开发出在先前版本中所没有的功能吗?

AMNON HOROWITZ:可以。通常,我们会尝试将两种代码的功能结合起来,并用于以本机代码编写当前应用程序的用户,使他们可向应用程序中添加新的托管代码而无需重写整个应用程序。Whidbey 中的 C++ Team 的主要作用就是尝试使用 C++ 来编写现有的大量代码基,可让用户添加新的功能或进行更改而无需重写整个应用程序。我已转而使用 .NET 方法编写应用程序,效果的确非常不错。


 JASON ZANDER:这就是我们对 P/Invoke 和 COM Interop 进行如此巨大投入的原因, 因为您在当前代码基方面的投入很大;没有人告诉您关于 .NET 的知识,您必须放弃原有的应用程序并重写它们。我们不希望您如此;我们希望你们能够保持投入。我们将继续在扩展交互操作方面进行大量投入并付诸实施,使您可以继续使用现有的代码基,同时还允许您在某一时刻将应用程序迁移到我们发布的新版框架中。因此,我们非常希望能做到这一点,这样,当您编写应用程序时就可以利用现有的非托管代码,并继续使用它。当您借助当前版本的框架进行编写时,我们将要发布新的版本。您已经看到又发布 Longhorn 的新版本了。通过使这些应用程序继续与 API 配合使用,可保护投入。


AMNON HOROWITZ:是的。Visual Studio 本身作为应用程序就是该方法的一个很好的示例。我们没有使用托管代码完全重写 Visual Studio。我们所做的是使用 .NET 编写了新代码和新功能,并将它们与现有本机代码基进行集成。因此,在保持对现有代码基方面进行投入的同时,您能够有所成就并利用 .NET 的优点来提高工作效率。因此,即使在内部也是如此。


ROBERT HESS:那么,你们是不再花费更多时间来使用托管代码编写新的应用程序,还是依旧使用旧式代码并编写非托管代码,抑或是基本上停止开发非托管代码?

AMNON HOROWITZ:这两种工作我们都在做,有时甚至由于某种原因将现有的应用程序转为使用托管代码编写,因为这是获得我们所希望内容的最佳途径。但是,实际上我们的工作分为两部分,一部分是保持使用本机代码编写的现有应用程序,甚至向它们添加功能,另一部分是使用本机代码编写新的应用程序

JASON ZANDER:即使在核心框架中也是如此。显然,我的意思是当我们启动 CLR 引擎时无法执行托管代码,因此,大部分工作是使用非托管代码编写汇编程序。过去我们所做的是,即使当我们因某种原因依旧使用某些子系统并引入非常重要的新功能时,我们已经使用非托管代码编写了这些应用程序。在 Whidbey 中,一个很好的示例便是反射 API,它们过去使用非托管 C++ 编写,而且我们发现自那时起,用户就直接使用它来编写程序了,当我们使用 C#(BCL 的其余部分使用它编写的)重写应用程序时,这对于我们来说非常有效。 因此,即使在引擎核心中也使用相同的模型。

AMNON HOROWITZ:如果您今天看看 Visual Studio,便会以历练的眼光看出哪些片段是以托管代码编写,哪些片段是以本机代码编写,整个内容非常协调。


ROBERT HESS:我想你们会在将来的某一时刻看到所有的 Visual Studio 均使用托管代码进行编写。

AMNON HOROWITZ:可能会,也可能不会。实际上,在最糟糕的情况下也不可能使用本机代码全部重写 Visual Studio。但是,一旦开始创新或者更改某些基本的体系结构内容,便可能需要我们进行一些根本性更改,这些更改需要使用托管代码彻底改变某些内容,尽管如此,也仅仅是一种在托管代码中所含本机代码片段的数量和在本机代码中所含托管代码片段的数量之间的平衡关系转换。


JASON ZANDER:最重要的是我们可以使您能够使用托管代码,并且能够使用托管代码编写全部内容。但是体系结构并不会要求您必须利用托管代码进行编写。我们正在尝试采用一种务实的方法,由于项目管理与发布周期的原因,我们不可能仅仅为了使用托管代码而重写内容,但是体系结构允许您这样做,我希望面临这个问题的用户能够根据他们的选择尝试采取同样务实的方法并进行务实的分析。他们应该深思熟虑,决定以什么样的步调来利用托管代码编写内容。我发现,随着我们开发人员不断使用更多的托管代码,越来越能感受到自身的工作效率优势,并且使更多的人员热衷于使用这种方法来编写代码。可进行垃圾回收的自动记忆功能以及其他类似功能会使得程序员在编写代码时更加轻松。因此,我们已经看到,在内部已经使用了许多新系统(如果您曾看到过 Longhorn),例如,Indigo 与 Avalon 中的所有关键内容都是使用托管代码编写的。


ROBERT HESS:现在,我想你们可以去 TechEd、PDC 或者类似的大会上与客户进行交流,看看那里的客户为什么不采用托管代码?他们面临怎样的问题,他们需要我们帮助解决怎样的细节问题,或者他们是否想在自己企业的内部解决这些问题?

AMNON HOROWITZ:其中有两个问题。一个是我们不鼓励人们全部使用托管代码的这一事实并未得到充分清晰地反映。人们习惯性认为,只要您准备使用 .NET,就必须重写应用程序,但是这种想法并不正确。因此人们会认为这是必须承担的前期成本,他们不理解这是做事所必须付出的代价。我想这是从客户那里听到的最清晰的想法,我们希望能够改变他们的这种想法。


 ROBERT HESS:那么您是否认为这是一种概念上的误解?

AMNON HOROWITZ:确实,在某些方面是一种误解。Jason 此前曾间接提到的另一方面是,当我们推出 Visual Studio .NET 时,实际上是对新的体系结构进行了根本的投入,但是并未得到像 VB 6 和 VB.NET 那样的用户体验反馈。因此,这对于客户来说是一个巨大的绊脚石,因为他们不得不重新开始学习新技能以便使用 Visual Studio .NET。借助 Whidbey,我们已经取得了同样甚至更多的用户体验,事实上已经消除了这个绊脚石,让习惯通过 VB 6 使用该产品的用户能够更加轻松地工作。


ROBERT HESS:刚才我们已经谈到了 Visual Studio、CLR 以及 .NET,其中最常谈到的一个问题便是多种语言,实际上我们可以使用 VB.NET、C# 以及 C++ 等等...

JASON ZANDER:我们可以使用大约 30 或 40 种不同的语言...

ROBERT HESS:Fortran 和 COBOL...

JASON ZANDER:是的。


ROBERT HESS:拥有支持多种新语言以及类似的内容是否仍然是个很大的问题呢?

JASON ZANDER:我的小组在这个问题上专门花费了大量的时间。我的意思是“C”在 CLR 中很明显是指“common”,因此,我们会竭尽所能地确保顺畅地使用不同的语言。我想说,COBOL、Eiffel 以及一些其他非 Microsoft 语言都是可以正常工作的示例。我们能够使用的其他大量语言只是更多地在学术领域中提及,所以我们希望能够继续创新。我想,我们在此版本的框架中添加的最大创新就是泛型。这些类型被完全集成到此版本中,Anders Hejlsberg 对其进行了最佳应用,这有点像将参数添加到类型中。所以,List(Of T) 以及其他类似内容的编写工作会变得更加容易,并且成为强类型。我们认为可以大幅度提高工作效率。它完全通过引擎、所有子系统以及类似的环境得以实现,不仅仅是引擎顶部的语法模板,而且还有所有的方法。所以我希望我们能够继续进行语言创新,并努力使这些语言正常工作。正如我所说的那样,如果您拥有一个良好的引擎,我们就可以让它非常高效地发挥作用,让您进行广泛的部署,并使您的语言编写工作更加轻松。


ROBERT HESS:那么,除了泛型之外,对于正在编写语言模型 C# 代码和 VB.NET 代码的开发人员而言,实际上还有哪些新的东西会令人感到兴奋?

JASON ZANDER:其他的示例包括迭代程序和语言自身内部的更多支持。Visual Basic 已经添加了很多其他功能。通常就本质而言,在 Visual Studio 外壳程序内部本身未必具有编译器功能,但它可以使代码的编写工作更加轻松。

AMNON HOROWITZ:当我们对每种语言进行创新时,真正重要的是我们确信语言是一种生活方式的选择。我们的方法并非是适用于所有方法的标准,我们正在构建一种可以实现多种语言的平台,对于不同的用户而言,多种语言具有不同的优势,所以,我们必定会继续围绕 Visual Studio 和 .NET 对语言生态系统进行投入。


 ROBERT HESS:现在讨论一下涉及您之前提及的学校中那些人和学生,以及 Visual Studios 资料的一些问题。我们该怎样帮助这些不是大型企业(如 Ford Motor Company 或 Boeing Airplane)的人来使用强大的开发工具进行开发呢?

AMNON HOROWITZ:作为 Visual Studio 产品家族的一部分,我们正引入一套称之为 Visual Studio eXpress 的新产品。这些产品主要定位于有兴趣学习编程或学习一种不同编程语言的人,或实际上是想评价和了解 Microsoft 技术的人。我们能够做的主要是首先确保这些 eXpress 产品小型化、易于安装、便于从网站下载或从某本有关语言的书附带的 CD 上进行安装。


 ROBERT HESS:那它类似于大约一年前我们购买的 ASP Web Matrix 产品吗?

AMNON HOROWITZ:有几分相似,但也适用于 VB、C# 和 C++。它们还包括非常简化的工作流,这些工作流瞄准了使用该产品的用户可能会感兴趣的应用程序类型。例如,一套帮助编写应用程序的起始工具包,可以为您提供一点有关体系结构和产品类型的建议、需要写入的零碎信息以及或许可供您使用的某些图形,实际上您可以据此开始自己的工作,而无须从一无所有开始,从头编写应用程序。所以它们对于学习和计算而言非常棒,实实在在地降低了产品的使用难度。


 JASON ZANDER:对于高等教育,我想要说的是我们确实在公共语言运行库、CLI 实施以及 C# 中附带了源代码。比较熟悉的叫法是 SSCLI 或 Rotor,您可以下载它。我们与大学教授密切合作,正在研发其他课题以使人们可以从事语言技术和类似工作的研究。这在特定领域中明显是一个非常小但非常尖端的研究。 Amnon 所讲的对于大家而言非常通俗易懂,便于您了解 Visual Studio 和托管代码。


 ROBERT HESS:如果一些人确实对了解核心计算机科技概念,例如 CLR 或 C# 翻译程序语言,非常感兴趣,他们可以获得这个组件...

JASON ZANDER:可以,我要说明的是,这是一个非常复杂且庞大的工作,如果您想学习如何编写垃圾收集程序以及希望编写编译器,将会有一大堆源代码等着您。

ROBERT HESS:您的妈妈可能不希望...

JASON ZANDER:我妈妈不会做这些。我想妈妈如果可以下载 VBeXpress SKU 并尝试编写一些烹调数据库系统的话,她会更高兴。那就太妙了。这些只是那些片段的两种不同部分。


 ROBERT HESS:是的,我的意思是 VBeXpress 和 C#eXpress、SKU 等类似的事物,对我而言非常令人兴奋,因为它相当注重酷爱编程的人,或许我们所有人在买了计算机后都有可能沉溺于编程 — 而不用管它是 TI、Apple 还是 Commodore 64 或其他什么东西 — 在得到了便宜的编译器后就开始启用它。当今的编译器系统,似乎动辄数千美元,完全超出了现在酷爱编程的人的支付范围。但好像我们正将这样的编译器又重新带给他们。

AMNON HOROWITZ:是的,正是这样,但不仅仅它是否值上千美元,还有您在进行有用的工作前对它的了解程度,和得到产品及将它安装上并进行第一步工作所需的实际时间。我们的目标实际就是让人们可以快速高效地学习新东西。

JASON ZANDER:花少量的时间来编写框架、自定义控件和其他类似的东西,将更多的精力放在向它上面添加业务逻辑和值。这就是我们的目的。


ROBERT HESS:现在,我自己作为平台的宣传人员,与公司、个人谈及时,我经常谈论的不仅仅是平台今天可以提供的功能,还有它将来可以提供的功能。我们刚刚只是讨论了有关 Longhorn 的几个专题片,以及现在的 Longhorn 在几年后,怎样成为我们期望可以为它编写很多应用程序的平台,尽管目前并没有。少数人现在可以依靠开发的平台非常不稳定,我是不会真正在它上面开发应用程序的。如果您想知道 Longhorn 令人激动的地方,就需要着手在今天开始编写一些东西。我们在讲什么故事?我的意思是如果我现在开发代码,体验一下,不论是用 Whidbey、.NET Framework 2.0 还是 ASP.NET,它会如何帮助我将工作转换成在 Longhorn 上运行的东西?

JASON ZANDER:我想这里有几个不同的方面。一个是在所有地方都使用托管代码,对于您学习编写托管代码、理解基础框架以及将 Visual Studio 用作将那些应用程序放在一起的工具来说,可以完全利用该方法,一点问题都没有。我们在前面已经说过,我们所致力于的另一件事情就是,对于您目前运行的那些应用程序来说,我们需要一个完美的移植路径。目前,我们打算在 Longhorn 上编写那些应用程序。有关 Longhorn 比较有趣的一点就是,该操作系统添加了所有这些您可以利用的新支持,所以,如果您要使用 WinFS 来进行存储并获得所有这些高级功能,这是另一个通过编写较少代码便可获得该功能全部内容的极佳示例。您获得的所有托管代码技能、开发技能以及您编写的代码仍然是完全可用的,并且当新平台发布后,您可以对它们进行添加和扩展。


 ROBERT HESS:这么说,在新平台面市后,你们将推出专用于新平台的新版 Visual Studio 喽。在你们升级平台、开发平台时,就所涉及的方面而言,你们会考虑哪些事情和领域,以求使其按既定方针发展呢?我是问您了解 Fords 和 Boeings 那边需要什么吗?您了解 Longhorn 开发小组人员和 .NET 人员的需求,以及他们如何进行升级吗?

AMNON HOROWITZ:Visual Studio Whidbey 更多地听取了我们的客户,也就是我们的开发人员客户的意见和需求,而较少对 Longhorn 进行了不切实际的开发。Whidbey 要进行针对 Longhorn 的开发,但大家只能在 Visual Studio Whidbey 之后的下一版 Visual Studio 中目睹 Longhorn 开发的风采。


 ROBERT HESS:但是你们要考虑那意味着什么,这样才能从已有的 Whidbey 体验来想象下一版本的内容。如果您必须挑选 Ford 或 Boeing 或 General Electric 等公司所关心的开发领域,而且他们需要一些由 Microsoft 或其他公司和技术提供的支持,您认为他们如今面临的问题是什么?Whidbey 如何帮助他们?

JASON ZANDER: 我认为,在他们已接受技术的情况下,最主要的问题是分配,即如何将其部署到 100,000 个客户端并使其工作良好。如何将其与我操作系统的其余部分以及我的数据中心之类的内容集成。我想这就是他们会碰到的问题。Whidbey 可以用于帮助解决两件不同的事情。我们已经讨论了 Click Once,它很好地印证了这一点,另外,例如,ASP.NET 将在针对胖客户端应用程序的服务器配置管理方面进行投入,因此这不仅会确保您能够更为便捷地编写应用程序,还会确保您能更好地对它们进行管理,以及构建并运行您的数据中心,并使其保持良好的运行状态。至于类似的大客户端,我认为这也是重要的一环。


 ROBERT HESS:有一些来自 Web 站点的声音,其中之一说的是人们非常喜欢网站部署模型,并且希望在进入网站时,可以看到最新的和最好的资料。Click Once 明确地试图获取这些知识,以允许智能客户端应用程序的部署具有同样的容易度,这样应用程序的开发者只需简单地将他们的新应用程序放在服务器上就可完成部署。

JASON ZANDER:是的,的确如此。


 ROBERT HESS:这就是你们所要考虑的。

JASON ZANDER:完全正确。我要说的是配置和应用程序间的相互兼容性是整个软件业所面临的最大挑战之一,而并非单指 Microsoft,尤其是在应用程序因为添加新功能而变得日趋复杂时,这一挑战变得更加困难。因此我获得了这个功能丰富的应用程序,这也是作为开发人员所面临的挑战之一,即如何确保在升级、上载我要利用的新版服务包和新功能时我的应用程序能够保持运行。于是我们在空间上投入了大量精力,以便使人们感到更加方便,Click Once 就是一个很好的例子。能够部署带有版本编号信息的清单、允许系统自身解释您的客户端机器上是否具备有正确的版本,以及自动为您下载而无须您编写太多复杂代码;这使您的生活更加轻松。


 AMNON HOROWITZ:是的,人们同样在为如何规划他们的部署,以及如何确保部署期间所需的方方面面都得到解决而努力,Visual Studio Team System 中有一些工具可让开发人员在设计阶段考虑部署,并实际验证他们实际编写的代码的部署要求是否得到满足,而且会捕获对不可用服务器的调用,然后对其进行标记,并在进行部署实验前将其修正。

JASON ZANDER:我想最酷的一点是,直到现在,我们关注办公室内的开发人员,关注他们的代码编写以及一些部署已有很长一段时间了,这里有个例子,可以让操作所涉及的 IT 部分更多、尝试知道不同区域的外观以及在复杂环境中部署代码时如何设计代码的结构才可使它运行良好。因此拥有工具,而不是聚集人手,这就是最大的优势。


 ROBERT HESS:您提到 Team Service 是向先前在体系结构方面并没有实际利用该应用程序的开发系统添加体系结构支持层。它允许开发人员使用应用程序、开发源代码以及在代码级具有所有那些功能,而不是在后期部署时和体系结构模型中。

AMNON HOROWITZ:是的,非常正确。过去我们提供了有关平台端的技术来帮助您进行部署,但却没有提供多少支持来实际帮助您考虑您需要进行的操作。现在,有了 Visual Studio Team System,我们朝这个方向迈进了一大步。


 ROBERT HESS:我知道 Whidbey 支持的另一个新增领域是 SQL Server。我们就 SQL 如何处理资料获得了额外的支持,这与其他事有什么实际联系?

JASON ZANDER:我们所做的就是引入该功能,以将 CLR 宿主在 SQL Server 2005 中的 Yukon 版本内。这样您就可以充分发挥自己在 C# 或 Visual Basic 中学到的托管代码编写技能,并将它们扩展回数据库本身,现在我就能够在后端用这些语言编写存储过程了。再次强调,正如我们前面所说的,您不要丢掉所拥有的技能,可以继续使用 T-SQL 来编写存储过程,然后您要选取 T-SQL 可能不适合的区域,例如,可扩展的计算操作和类似操作,因为这些区域在解释模式中运行的并不是很好,现在您可以使用强大的 JIT 编译器,我基本上可以动态地生成代码并对代码进行优化,然后我们就可以看到速度得到了显著提高。这都是关于利用您的技能的,您可以在多方面充分发挥自己的技能,我们用 .NET Framework 推动的另一个关键的体系结构主题是尝试并确保满足以下条件:如果我要编写数据库,我可以理解它;如果我为操作系统编写代码,我可以理解它;我希望我们可以在人们想编写代码的地方继续这样做。

 ROBERT HESS:可是在我们接受“清晰分界线”,也就是你们所谓的位于应用程序的数据库部分和智能客户端或 Web 客户端服务器端之间的分界线之前,我们已经消除了这个分界线,从而使其不再成为它们之间不易控制的地带。

JASON ZANDER:当然,从开发的角度来说,我现在可以再次利用了解如何编写代码的人的技能。从 DB 管理员的观点来说,那条线仍然存在;他们具有完全的控制,我想确定我提到过这一点。但是,是的,它使您能够利用自己的技能做更多的工作,远远多于过去您只使用 T-SQL 所能做的。

AMNON HOROWITZ:让我们选择另一种生活方式,在到目前为止没有联系的两个事物之间启用另一种代码复用和技能复用。


 ROBERT HESS:过去我们总是不停地讲开发人员要编写托管代码、编写托管代码、编写托管代码,我的意思是我不认为在 .NET Show 当中没有说过编写托管代码。

JASON ZANDER:是的,对于您来说是这样。

ROBERT HESS:我们现在要把这个消息告诉给数据库开发人员,嗨,数据库开发人员们请听好,你们也有机会编写托管代码啦,我知道你们总是听说托管代码能为 C 开发人员、VB 开发人员等人带来很多益处,现在您也可以利用它们了。

JASON ZANDER:对。还可以解决一些人们已经遇到的特殊问题,例如,摆脱扩展的存储程序,如数据库的设备驱动程序;它们会使您发疯,并可能导致许多破坏以及其他类似问题。需要说明的是,对于解决这样的特定问题,关键在于开发人员的基本技能以及使用它在所涉及的任何地方编写代码的能力。


 ROBERT HESS:好的。我想你们已经提供了了有关 Visual Studio 2005、.NET Framework 2.0 和 ASP.NET 的一些很棒的信息。本单元快要接近尾声了,为了让观众能够了解你们的产品,以使他们可以正确使用或准备购买产品,并对编写托管代码感兴趣,您还有什么关键信息要告诉给他们吗?

JASON ZANDER:是的,编写托管代码,编写托管代码。这是一个很明确的主题,我说过好几次了,就是为了确保我们会继续投资以及使您和我们的技术同步。

AMNON HOROWITZ:是的。托管代码并不是一切,也不是一无是处,您可以继续使用您现有的代码,可以继续使用您现有的投资,并将其他功能添加到托管代码中。这是做事要付出的代价。这通常都会被人误解。


 ROBERT HESS:如果有人想知道更多有关 Whidbey、获得测试版之类的资料的信息,他们应该去哪呢?

AMNON HOROWITZ:他们可以上 Whidbey 的 Web 站点,网址是 www.microsoft.com/whidbey

JASON ZANDER:是的,如果您迷失了方向,可以看看主页右侧的图标。


 ROBERT HESS:测试版准备完毕了吗?快要推出了吗?

JASON ZANDER:我们正在努力。我们已经完成了 MSDN Universal 的社区技术预览,我相信,对于 MSDN Universal 来说,我们实际上已经在开发过程中为其提供了许多技术点滴,它们是整个社区努力成果的一部分,我们用这些透明的成果帮助人们了解我们的开发进度。我也会提到 .NET Framework,还有一个不错的站点,gotdotnet.com,上面有大量的示例、下载工具、信息等。


 ROBERT HESS:我听说您写网络日记?

JASON ZANDER:我写网络日记。我不是个多产的作家,但我尝试发布一些好的技术内容,它们的位置是 weblogs.asp.net/jasonz。我的小组还有几个人写网络日记,比如 Brad Abrams 和 Chris Brumme,因此那里有很多精彩的内容。

ROBERT HESS:好的,我要做的就是收集这些链接,并将它们都粘到脚本上,这样我的观众就可以通过脚本查找到这类资料的链接,这样他们就不必在意我们在说什么了。

JASON ZANDER:是的。


 ROBERT HESS:非常感谢您的参与。我希望通过这次访谈,可以使大家了解 Whidbey 的强大之处。

JASON ZANDER:非常感谢。

AMNON HOROWITZ:谢谢。


 ROBERT HESS:这里介绍了有关 Whidbey、Visual Studio 2005、.NET Framework 2.0 和 ASP.NET 的某些方面。希望我们提供的信息对您自己的开放能起到作用。稍事休息后,我们再来看看有关 Visual Studio 2005 的演示。


 轻松时刻
--------------------------------------------------------------------------------
“Fable”是今年新推出的 XBox 游戏,吸引了众多的注意力。此处只是对它在最近的 E3 会议中的展示进行简单介绍。


 走进编程人员的世界
--------------------------------------------------------------------------------
Robert Hess 与 Rick LaPlante(Enterprise Tools 的总经理)和 Shanku Niyogi(Web Platform and Tools 的组程序管理员)进行会谈

ROBERT HESS:欢迎回来。今天我们要讨论 Whidbey,它也称为 Visual Studio 2005 .NET Framework 2.0 和 ASP.NET,但是目前叫 Whidbey。在这个单元中,我想着重介绍一些编程功能。目前在我接触的人中,多数正在使用 Visual Studio 编程,所以他们熟悉那个我们已经做过多次改进的环境和功能,但是我们向 Visual Studio 环境添加的新功能可以让您在编写应用程序时感觉更棒。在此,由我、Rick LaPlante 和 Shanku Niyogi 来向各位展示这些新功能和特性。感谢二位的参与。

RICK LAPLANTE:感谢您的邀请。

SHANKU NIYOGI:谢谢。


 ROBERT HESS:之前我们谈及了什么是 Visual Studio、它具有哪些功能,以及托管代码的重要性等内容。从你们的观点来看,对于开发人员而言,Visual Studio 最令人兴奋和引人注目的功能是什么,对于我在编写应用程序时遇到的问题,最终如何通过增加新功能来加以解决?

SHANKU NIYOGI:通过 Visual Studio 2005 和 .NET Framework 2.0,我们为开发人员提供了一些通用方案,帮助开发人员解决在构建应用程序中遇到的问题,而且我们看到我们的确提高了开发人员的工作效率。我们从框架上构建了一套功能,并将它们与工具集集成,使开发人员可以拿更为便捷地开发应用程序,并且能够以比以往更为丰富的方式对它们进行扩展。


 ROBERT HESS:所以对于重复不停地做某些事情的人,我们可以对他说,嗨,您知道吗,您完全没有必要这样。我们可以为您分担一些,因为我们知道要领。

SHANKU NIYOGI:对极了。


 ROBERT HESS:我知道,在过去启动一个项目时,通过使用 Visual Studio,我们可以创建新控件、创建新的 Win32 应用程序、编写一些基本代码等。您认为我们会在此基础之上更进一步吗?

SHANKU NIYOGI:是的,事实上 Visual Studio 会有一个起始工具包的概念,它对于所有类型的项目都是通用的,无论您是构建 Web 项目或客户端项目,还是设备,或是允许您在构建项目时用于启动的智能电话,起始阶段都会使用一些通用项目类型,其中所包含的代码用于使项目开始并运行。另外,我们已经在数个领域内具备了多种功能,这些领域有数据绑定、安全、自定义及个性化设置等,还可以方便地自定义您的应用程序的用户界面;使用强大的工具箱,您可以顺利完成上述工作,而不用编写大量代码。


 ROBERT HESS:那么我们向系统添加了什么可以使用户界面更美观的功能?

SHANKU NIYOGI:我们在提供 Visual Studio 时提供了很多与此相关的功能,在各种工具中,从客户端到 Web,我们都提供了用于使设计更为美观的功能。例如,对于在客户端布局表格,我们提供了很多机制,允许您将自己的表格与不同的边界对齐,以使外观整齐漂亮。

ROBERT HESS:不错。

SHANKU NIYOGI:在 Web 上也是如此,一个关键功能是具有母版页和主题,您可以据此方便地进行设计,或让设计器设计网页的常见一致外观,然后可以非常容易地创建具有一致外观的内容,并在之后对它进行管理。


 ROBERT HESS:不错,现在让我们看看这里有些什么。

SHANKU NIYOGI:好的。我打算构建一个作为保险站点的 Web 前端的、名为 Woodgrove Insurance 的应用程序,我们实际要做的是构建针对客户的 Web 首页。让我先打开一个 Web 站点。我们向 Visual Studio 添加的功能之一是创建不再仅限于首页服务器扩展的 Web 站点,而是可以从您的本地文件系统打开,所以对于构建和运行站点来说非常方便。让我们打开此处的 Woodgrove Web 站点。首先我要为我的 Web 站点创建常见外观和布局,然后创建与布局相适应的内容。我使用 ASP.NET 的一个称为母版页的功能来进行这项工作。我要在此处打开一个通常来自于设计器的母版页,它具了非常诱人的可视外观,其中包含一些通用元素,例如,标题栏、导航栏等。接下来我要使用 ContentPlaceHolder 控件。ContentPlaceHolder 控件实际定义母版的区域,可向其中填充单独的内容页。如果保存结果,我就可以创建基于这个母版的内容页。我可以单击这个内容占位符并添加内容。现在您会注意到 Visual Studio 展示给您一个具有组合效果的页面,但您不可以编辑页面中来自母版的部分。


 ROBERT HESS:那么,变灰的部分并不是您的页面在创建时得到的,而是系统自动提供的...

SHANKU NIYOGI:是的,这是站点的常见外观。我可以继续创建自定义内容,而且我会键入一些内容。如果您查看页面的源代码,会发现它其实非常简单,它只有一个指向母版页文件的页面指令,此外还有一个 ASP:content 标记,用于定义填充到占位符中的内容。如果我现在开始运行它,则在运行时,ASP.NET 会将母版应用到这个页面并显示合成效果。然后您可以继续在母版文件中更改该常见外观,更改会自动反映在所有使用该母版的页面中。


 ROBERT HESS:如果 Woodgrove 被别的公司收购,您可以快速地进入母版页,在某个位置进行更改,然后它会自动修正其余部分。

SHANKU NIYOGI:完全正确。一旦完成后,我就可以继续创建首页,并添加一些内容。对于 Web 开发人员很有用的是可以方便地创建由用户进行个人设置的内容,这样用户就可以看到相关内容。尤其是在诸如保险站点的网站上,对于用户来说,可以在站点上进行注册并能够看到与他们相关的内容是非常重要的。因此在 ASP.NET 中有一种称为 Web 组件的功能。Web 组件实际提供了个性化设置基础结构,它是 ASP.NET 的一部分,而 ASP.NET 允许您创建使用少量代码就可以方便地进行个性化设置的内容。过去,如果要这样做,在两个服务器端都需要大量的代码,以及相当复杂的基础结构,这样才能够管理用户、管理他们的个性化设置状态,并且能在客户端上您所需的浏览器中充分地进行个性化设置。


 我继续操作进入母版,并向其中放入一个称为 WebPartManager 的控件。它实际上管理着这个页面的 Web 组件个性化设置基础结构。现在,我将保存它并返回至主页,我要快速添加一个表。我打算使用 Visual Studio 的 Web 设计器中新的表布局工具。接下来我要做的是在内容中定义区域,在这个内容中,我想显示页面的不同用户界面模块。这可以通过一套称为 WebPartZones 的控件来完成。我会将 WebPartZone 拖放到这两列。WebPartZones 不但控制控件的布局,而且还控制这些控件的一些一致外观。这样我就有了一套只是 ASP.NET 用户控件的封装内容控件,实际上您可以将任何一个 ASP.NET 控件当作是 Web 组件。当我将这个控件拖放到页面中时,您将注意到它会具有常见外观:标题栏、最小化图标和关闭图标。同样,我可以将一些控件拖到其他 WebPartZone 中。实际上我可以轻松地将一个 WebPartZones 的内容自定义为不同的样式。您会看见经过我修改的样式会应用到这个区域中的每个单个控件上。


 ROBERT HESS:您放入其中的这些控件都是一些事先已按某些样式制作好的控件。如果我有一些特定于我自己开发的 Web 站点的自定义控件,情况又如何呢?我可以轻松地在 Whidbey 内进行开发吗?

SHANKU NIYOGI:可以,您可以使用任何 ASP.NET 控件,我稍后会进行演示,您可以构建任何 ASP.NET 控件,并在 Web 组件基础结构内将它用作 Web 组件,以对控件内容进行个性化设置。


 ROBERT HESS:好的。

SHANKU NIYOGI:让我们继续。您会注意到我现在得到了页面,我要向其中添加一些特定于用户的内容。首先需要让用户进入、在站点注册并能够登录。在过去这很难完成,因为您不但必须编写许多用于管理用户的代码,而且这种代码难于保持正确,因为它涉及到确保您可以安全地管理用户凭据以及进行身份验证等。我们所做的就是为成员或服务器上的个性化设置构建一套应用程序,以使这类情况下的代码较少。然后获得服务并在其上创建一套控件,以允许您将那些服务与您的站点轻松地联结在一起。


 继续操作,在我的站点上创建一个登录页面。我将使用早先创建的母版,选择此处的母版即可。现在我要做的就是获得一些已有的登录控件,并将它们放到页面上。第一个要放的控件称为登录控件,它允许用户进入并登录站点。另外一个控件叫 CreateUserWizard 控件,这个控件允许您申请新帐户。在这个演示中,我会把这个放在单一页面上,尽管您可能想将它们放在两个不同的页面上。您可以用多种方法来自定义这些控件:您可以使用模板来按照自己的喜好进行自定义,或可以采用自动套用格式,使它们具有我们提供的常见外观。让我们接着做,现在我们创建了登录页面,它非常简单。来看看源代码,您可以看到 ASP 登录控件,它仅仅是一个单一的登录标记,上面带有一个等同于服务器的 Runat,它管理着全部强大功能,能够调用成员系统让人员登录等。


 进行保存,接下来我将为站点提供一种可让用户到达登录页面的方式。再次返回母版。我将向这个页面再多添加两个登录控件,第一个控件叫 LoginName 控件,在用户登录后提供欢迎界面。您可以按照自己的喜好自定义这个欢迎界面。接下来放入 LoginStatus 控件,它是一个智能控件,可以查看用户是否登录或登出,并自动显示登录或登出链接。现在我可以继续进行我的工作,保存页面并运行它。您会看到出现了一个登录按钮,单击它我可以进入登录页面。继续注册,这时会遇到安全问题和答案,它们是默认情况下启用的机制,这样在您丢失了密码后,另一个叫 ForgotPassword 的控件就会允许您找回那个密码。


 ROBERT HESS:当然,就一个字母的密码,您大概不会忘记,是吗?

SHANKU NIYOGI:是的。

ROBERT HESS:好的。

SHANKU NIYOGI:当然,我只是为了方便这里的介绍。


 ROBERT HESS:这个控件支持强类型密码的概念吗?

SHANKU NIYOGI:成员系统确实为您提供了一些增强密码的方法。同样,逻辑控件也提供允许用户挂钩到密码或创建用户密码的事件,这样您就可以查看密码并查看它是否足够长或满足某一...


 ROBERT HESS:如果您对密码有特殊要求,您可以加强等级。

SHANKU NIYOGI:因为这仍然是一个 ASP.NET 控件,您可以将它扩展到模板中,每个控件在模板中都是单独的控件。您可以使用验证程序控件来轻松地强制使用某个最小长度或使用某个正则表达式,还可以非常容易地在它上面强制执行一套规则。现在我创建了帐户,我可以使用登录控件来登录站点。我回到站点,您会注意到 LoginName 控件显示了我的名字,LoginStatus 控件显示了注销链接。这种站点内的身份验证实际上不需要代码。可以方便地进行自定义,但需要将某些控件拖放到您的页面上。这在简化方面前进了一大步,而在之前的版本的,您必须编写大量的代码。


 ROBERT HESS:您知道,我是一个喜欢接触 html 和 ASP 代码的人。我所看到的就是您一直在进行拖放操作。我还可以手动设置那些 html 吗?

SHANKU NIYOGI:可以。事实上如果我再次返回站点,我可以回到登录页面,选择这个登录控件,我可以说转换到模板,现在如果编辑已经获得 html 的模板,这里指的是此处控件中的所有 html,我可以继续按照自己的喜好进行自定义,如果我进入此处的源代码,您会注意到登录控件现在具有了完全为 html 格式的布局模板。我可以通过 html 进行自定义。


 ROBERT HESS:真棒。

SHANKU NIYOGI:现在我已经让我的用户登录了,接下来要做的是向我的站点添加一个控件,正如您之前问的,它允许为用户提供一些自定义内容。如此,我要向您展示一些 ASP.NET 中的新数据控件。我们要使用 ASP.NET 创建一个新的用户控件,我们称它为 Claims.ascx,因为我们想为当前登录的用户展示要求历史。我将使用称为 GridView 的新数据控件。我们有一套对于 ASP.NET 的 2.0 版而言是全新的工具,它允许您在自己的 Web 页面中获取通用的数据方案,而根本无需编写大量的代码。让我来拖放这个控件。我要为这个控件选择一个数据源,我有多个内置数据源可供选择。开发人员也可通过其他数据源扩展它。我打算选取允许我绑定到一个中间层业务对象的对象数据源控件,这样如果我完成了分层设计,就可以很方便地将我的页面和它进行绑定。


 这里,我可以在项目提供的类集中进行选择,通过引用或通过项目的代码目录均可。我将选取 InsuranceService。我打算从与选择语句相似的类提供的方法集中进行选取,然后将选择语句的虚拟概念映射到我要绑定的对象。然后选取 LookupClaimsByUnderwriter,它具有一个称为 agentId 的参数。我可以将这个参数与我的页面中出现的许多内容相挂钩,例如,值、控件和查询字符串。在本例中,我会将它保留为空白,我要做的是添加一行可将该它绑定到当前用户标识的代码。现在让我开始进行操作。我通过检索当前用户的页面对象将它绑定到页面并将它绑定到他们的用户名。进行保存。接下来我会再次返回到我的主页,并将这个控件添加到我的页面,只要简单地将它拖放到页面上就行了。现在我得到了这个控件,您会注意到它将自动从 WebPartZone 获得一致外观。进行运行。


 ROBERT HESS:它可以使用样式表来获得这些内容吗?还是…

SHANKU NIYOGI:可以,您可以使用任何来自 CSS 的东西来设置 WebPartZone 上的属性样式,以能够显示公用外观。您也可以使用 WebPartZone 来控制布局;例如,您可以让区域水平布局,而不是垂直布局。它现在没有显示任何东西,但是如果我登录后,您会注意到上面出现了要求信息,可以很容易的对内容进行分类或分页。我重新返回控件。在 GridView 控件上,您会注意到我已经获得一套容易弹出的通用任务集,这是 Visual Studio 的一个新功能,适用于所有类型的可让您方便访问通用任务集的应用程序。我只用单击复选框来启用分页和分类,框架通过查看数据源和查看该数据源的数据是否可以分页和分类,来为您完成这项工作。如果现在进行保存,再次运行站点并登录,您会注意到我已经获得了可分页和分类的标头,这样我就可以继续前进并分类。过去,这些操作会要求您编写许多代码;现在由我们来代劳了。


 ROBERT HESS:这样您就可以更专注于您要提供的内容,而不是提供内容的方式。

SHANKU NIYOGI: 是这样的。现在页面上已经有了个性化设置的内容,但是我们还可以更进一步提高个性化设置,以使用户可以自由控制他们想看的页面内容以及内容的布局、隐藏的项目以及页面上不同模块的布局等等。Web 组件基础结构为这些要求提供了一些内置支持,可以让您使用较少的代码来对页面进行个人设置。这些已经存在于 SharePoint 中,我们在 Whidbey 中所做的就是将那个基础结构拿过来并放在 ASP.NET 中,这样下一版本的 SharePoint 也就能够依赖于这个基础结构,并允许您获取任何 ASP.NET 控件,而且可以在 SharePoint 中进行使用,这比以前有了很大改善。为了进行操作,我再次返回到母版页面并将 LinkButton 控件拖放到页面上。我称它为 Personalize。我打算将一行代码挂钩到这个按钮,就是我之前创建的 Web 组件,并将它的显示模式放入称为“设计显示模式”的显示模式中。本质上,设计显示模式允许用户能够自定义页面的设计。让我们进行保存并再次登录。现在如果我单击 Personalize 按钮,您会注意到页面稍稍有些更改,我可以拖放这些按钮并以不同的方式进行移动。我也可以关闭我不需要的按钮。同样,还内置有更为丰富的自定义选项,可允许我编辑这些控件的某些属性,这样它们自身会显示自定义内容,甚至可将默认页面上没有的额外内容添加到页面。进行保存,从任意一个浏览器登录到这个 Web 站点,我就可以得到与我的 Web 站点自定义丝毫不差的外观。这种自定义的、个性化设置体验,在以前是很难编写的,现在全都进行了内置...


 ROBERT HESS:这有些类似于你们在 SharePoint 中谈及的 MSN。现在我已经看了这么多页代码。确实非常多,这样我就无须自己来编写代码了。

SHANKU NIYOGI:是的,事实上您看这页代码,我们已经在一些 WebPartZones 中放入了控件,但是如果您查看代码,您会注意到它们中没有代码。如果您仔细观察我们使用 ASP.NET 所做的工作,会发现,实际上涉及的是如何通过构建个性化设置内容、对用户进行身份验证、注册用户等来对 Web 站点进行个性化设置,用较少的代码就可轻松构建,就好像拖放控件和自定义外观一样。


 RICK LAPLANTE:我想,对于 Whidbey,也就是 Visual Studio 2005,我们所追求的目标确实可以为客户带来喜悦。Shanku 为您展示了我们将为 Web 开发人员所做的一些工作,确实可以满足客户的需要,从而提升客户的价值。当然我们也为 WinForms 以及胖客户端做了很多工作,在 Web 服务中也有一些有趣的工作。另外一个是在我们观察客户基础时发现,很多使用 Visual Studio 的人实际上是以团队的形式在工作。我们考虑到将开发人员的 Visual Studio 逻辑扩展从开发人员的角色移出,以便使工具可供一组开发人员使用,从而可以实际构建用于这些应用程序的基础结构,我们意识到,对于我们而言,这是一个不错的机会,通过将 Visual Studio 的角色从开发人员扩展到开发,提升了客户的价值。


 ROBERT HESS:如果我没记错的话,Microsoft 也是以团队为单位进行开发,那么团队在开发应用程序中可能需要什么呢?我们有这方面的经验吗?

RICK LAPLANTE:完全如此。事实上,Visual Studio Team System 的一个秘密就是我们所交付的大部分技术实际上在 Microsoft 已经使用了很多年,某些情况下已经超过了十或十二年,这个系统在 Visual Studio 交付时会作为它的一部分。我们采取了很多最佳做法,来帮助客户在开发中提高工作效率和预测性。这是 Team System 的关注的焦点,就是继续扩展客户基础,将它从众多的开发人员扩展到 Web 开发人员、移动开发人员以及团队里的人员。特别是对于团队,主要关注于在软件构建日益复杂的情况下,如何能够通信和达到可预测性。核心就是降低复杂性并能够通信。


 ROBERT HESS:我知道您接下来会对此给我们作个演示,对吗?

RICK LAPLANTE:完全正确,我要给你们演示一下 Team System。


 ROBERT HESS:好的。

RICK LAPLANTE:好。因为你们所有开发人员正要开始单元测试,以试图在构建过程中更早地获得良好的构建品质,而我们知道解决这些事情的花费很小,我们已在 Visual Studio 中添加了集成单元测试。如果您有一般的 VB 项目,让我看看是否我可以找到一个比较好的,比如说我的业务逻辑,你觉得怎样?您看,这里有一些基本的 VB 代码,我现在可以使用 Team System 通过右键单击从 IDE 创建测试,它使用反射来决定给予什么方法,您可以在命名空间级、类级创建新的测试。本例中我将选择此处的几个方法,并从外壳程序为这些方法生成单元测试。


 ROBERT HESS:您说到了测试,它的确切含义是什么?

RICK LAPLANTE:好吧,让我给您展示一下您会得到什么。您主要获得的是一套... 如果您熟悉 NUnit,可能就会有点熟悉,或任何测试单元类型。它是什么,它就是我们创建的一种方法,将调用您创建的类上的每种方法。因此不但我们这么做了,而且您也会在这看到,如果我也在这里构建解决方案,会涉及到一个测试选择器,如果我在那重新构建,这个选择器会列出我刚才创建的所有测试,您也会看到它显示了一串测试。在存储中确实如此,这些主要是创建用于测试那些方法的测试。现在我能为 Visual Studio 做的不但是创建这些测试,而且可以直接运行它们。所以我打算进行选择并运行它们。我们发现讨论我们的客户如何从单元测试中获益是件非常令人感兴趣的事。但是当您开始进行单元测试时,您不知道花费的时间是否合理,因为您不知道您的应用程序实际使用了多少源代码。所以我们所做的就是单击我们已经启用的代码覆盖功能。这样您不但可以运行测试,而且可以知道测试实际覆盖了应用程序中的哪些软件和哪些代码行。


 我打算在这启用代码覆盖,并让它在本地运行,您会在 Visual Studio 中的屏幕底部看到一套测试正在运行,第一个失败,其余的结果均不确定。这实际是由设计引起的,不知您是否记得我所做的只是生成测试实例,而并没有让它们去做什么。默认情况下,Visual Studio 会返回不确定的没有实现生成的测试实例。现在看其中一个测试,我看到我们的另一个方法出现了异常。但是在我查看之前,我可以利用这个信息查看我的代码覆盖结果。我可以用标准的方式来查看,意思是在命名空间、DLL 中显示详细数据,我可以进入业务逻辑类,我可以查看方法。就我可以看到的每行代码而言,该方法中的 66% 没有被覆盖,22% 被覆盖。这对于报告和签入类型的测试很有趣,但是最有趣的是到底哪些行被覆盖了?我也可以直接在编辑器中查看被覆盖的源代码。我可以看到绿色行被覆盖了。这些行被我刚刚运行的测试所覆盖。此处蓝色的行被部分覆盖。在本例中,在执行每一项前,因为存在空集合,所以它被部分覆盖了,而没有被完全覆盖。您会看见显示在条件循环中的所有行实际上并没有被执行。事实上如果我查看一下,也会发现此处的返回也没有被执行,这就是那个引发异常的行。您会看见我从没有执行返回,因为异常已在堆栈上得到了处理。正如您所见,这些什么也没有做的方法也被覆盖了。


 这是集成的单元测试,我们实际关心的是如果您让开发人员有意去做这项工作,那会比较困难。因此我们会尝试集成一项关键功能。将集成与开发人员的体验完美结合,使得开发人员在运行测试时,能够从此处开始运行,可以看见结果。在本例中,如果有没有被覆盖的方法,那么我只需右键单击“创建单元测试”,然后向我的命令集合添加信息,这样我可以覆盖更多的代码。我们所做的另一件事是集成加载测试,这是目前在构建 Web 应用程序时最大的难题。但只有这样才可以使其在开发人员的机器上运行,而且工作效率高。我们听到过各种各样开发人员的言辞,我无法复述原话,或是它在我的机子上运行。所以我们要做的是尝试将创建加载测试的功能放在开发人员面前。首先要做的是创建新的 Web 测试,用来驱动 ASP.NET 应用程序。创建新 Web 测试,我要说的是我想记录这个 Web 测试。我称它为 TheShow。我将称它为 1,因为我想我已经具备了其它东西,您会得到 IE 的自定义版本,它带有个一小窗口,用于调用 Test Recorder。


 首先我会导航到我的商店前台,在本例中我们有一个出售户外设备、名为 Adventure Works 的商店。您会注意到在我导航它时,在记录器中出现了一个入口。我在页面上移动,您会看见记录器在记录我的操作。我打开了“产品”选项,添加一个不错的 Visual Studio 篮球,我打算检查一下,单击,决定买它,读我的账单并确定,没错,这就是我要买的。现在我只是在做测试,我要做的是保存测试,目前在 Visual Studio 中具有运行这个测试的功能。现在我可以对这个测试进行数据绑定,如果我不希望它总是 Rick LaPlante,我可以创建它,这样就有了登录的数据库。我可以更改配置文件,这样如果我不想单单运行测试,我可以测试在哪里人们没有买东西,而在哪人们买了上百种。我可以创建所有这些测试,从 Visual Studio 开始,测试变得非常容易。所以如果我逐步进行测试,您会看到有效执行的命令以及呈现的网页。但并不止这些,我可以直接查看请求和回应。这是前后移动的 http 通信量;我不但可以明显看见 html 主体,而且还可以看见它呈现在浏览器中。这样我可以看到测试的行为,并且确定何时继续运行直到结束,确定它是否该发送我的定单了。我会关闭它并保存结果。现在那就是个单一 Web 测试。它是一个依靠服务器运行的单一测试。现在要做的是加载,您想知道机器当前运行的行为,因为您想知道如果 1,000 个或 10,000 个用户同时在线的话,机器上会发生什么?我返回自己的测试项目,添加一个加载测试。如果您曾用工具来创建加载测试,会知道那是非常复杂的,并且不能集成到 Visual Studio 中。我们从客户那里得知,开发人员通常编写加载测试,因为他们了解在其中模拟加载的行为。现在加载测试通常由测试器运行,但开发人员几乎总是在第一个实例中就创建出这些测试。


 我将创建另一个加载测试。我称它为 TheShowLoad。与 Visual Studio 中的其它控件类似,我们试图将其概括成核心概念,来让您通过向导创建加载测试。首先我要做的当然是选择测试集。此处我有多个测试集。我选了记录较早的测试集,我也有我的测试单元,我可以在加载时运行这些单元测试。在本例中,我选择刚才创建的 TheShow1 测试。它让我可以在此处创建多个测试,并设置我需要的混合测试集。我具有对多种应用程序行为的支持,例如,即时播放或在用户使用它们时记住思考时间。我们可以模拟多个浏览器,更为重要的是我们可以模拟多个连接。我们可以说一部分来自 LAN,一部分来自移动设备,同时带有潜在的影响。在加载测试系统中最有趣的功能可能是加载测试,创建加载测试是问题的一部分,但是在您查找加载问题时了解机器的行为状态是一个完全不同的问题。我们见到最多的是客户不知道自己该在服务器上收集些什么,以及什么是好的和可以接受的服务器性能。我们在 Team System 内预定义了一套基本的性能计数器集合,您可以对它进行自定义,但它是一台机器,它具有 ADO.NET、应用程序计数器信息以及所有不同的计数器集。我希望,默认设置的加载测试工具在运行时能为我收集有关 ASP.NET 和 IIS 的性能信息。

 

 ROBERT HESS:您知道,我注意到了一件事。你们正专注于进行 Web 站点测试。我们的工具也支持测试智能客户端应用程序的概念吗?

RICK LAPLANTE:是的,完全是这样。例如,如果您有一个新的智能客户端应用程序。这是一个用于分布式系统的加载测试引擎,这会将 http 阻塞记录到 Web 服务中。因此您可以使用它记录从客户端到 Web 服务的一组调用的行为。实际上,Microsoft 内部的一些组已经为此而使用了该技术。因此,当我们转储该服务器时,您可以看到页面开始进行缓存,因此我们会开始丢失(而不是看到)许多有趣的信息。因此这里我要指出的是,您可以看到这些小 x 在上部。现在,我们还为您收集性能信息,但多数客户不知道什么是好的值。许多客户也不知道硬盘空闲时间在 20% 下是好是坏。因此我不仅包含了性能计数器,也包括了警告和错误的阀值。因此我能单击它,看看 Team System 告诉我在 VSE 2004 机器中应该注意什么。而且如果我继续操作,最后会看到 okay,这是在告诉我我已经将它放在了这里,我指的是处理器队列长度,如果您再看看这里,还可以看到代码行。对于上下文切换来说,它突出显示了某些值,我们认为这些值经过长期使用后可以会产生加载问题。而且它使人们在钻取数据时看到极易引起问题的信息,并将上下文提供给他们,这是 Team System 关注焦点的主要部分。因此我不得不向您作以介绍。


 ROBERT HESS:我是说我们要大体上介绍我们是如何增强开发环境的,以便它不仅包含编码模型,也就是 IntelliSense 之类的内容,还包括在小组环境中开发应用程序的概念,而且不仅获取调试信息,还能获取测试信息。

RICK LAPLANTE:是的,实际上可能比这还要多。Team System 在支持项目管理和架构方面的用途更广,因此这里有大量的建模,我指的是应用程序建模,它是我们内置在这里的。因此有许多小组宽度和角色,如果您考虑公司中的角色,我们不仅会将 Visual Studio 扩展到开发人员正在构建的应用程序类型中,还会将其扩展到开发小组的不同角色中。


 ROBERT HESS:因此现在不是说加载,而是针对您正在进行的测试,既然它可以测试代码路径,那么它可以测试智能客户端代码吗?

RICK LAPLANTE:是的,完全可以。实际上,单元测试就是针对代码本身的测试,而且也可以作用于智能客户端,还能用于 Web 服务呢。


 ROBERT HESS:让我们继续介绍,您现在能看到我们正在展示的功能吗?我是指包括整个 Team Services 的附加功能在内。

RICK LAPLANTE:好的,我是说我们主要是想继续提升整个小组的能力。因此获得最终的成功是我们前进的原动力。因此我们很想快速推出版本 2,并重点解决与智能客户端相关的问题,使其在 Avalon 中更好地工作,并确保将该类型的值传递给要使用即将推出的技术的智能客户端应用程序。这是我们的工作重点。


 ROBERT HESS:对了,Shanku,在整个开发人员产品推出时,您有看到它的具体内容吗?我是问它是 ASP.NET 还是智能客户端;它主要支持什么功能呢?它能够为应用程序带来哪些实际好处呢?

SHANKU NIYOGI:对于我们在 Visual Studio Whidbey 中内置的好处之一,我想您已经看到了,就是为应用程序定义模型。这是应用程序级所必需的,并不适合于单独的 Windows 窗体或 Web 页。此外,它有助于获取这些应用程序集中概念,并使其真正易于构建和管理,这些都是通过应用程序的一组可用服务完成的。而且可以利用这些概念构建任何应用程序,无论是 Web 应用程序,还是连接到服务器的智能客户端应用程序,当然它们可能是偶尔连接到服务器,此外还能利用您在 Whidbey 中的当前投入构建这些方案。


 ROBERT HESS:现在,服务器的更多部分都与正在开发的解决方案积极相关,无论是 Web 站点还是智能客户端都是如此。我是说 Web 服务使服务器更加丰富多彩。当我首次启动编程时,每个人都把关注的目光投向这里;实际上,在那些日子里网络都差不多阻塞了,当他们得知要将一个主框架添加到另一个框架中,而不是将一个用户连接到另一个用户或任何其他应用程序。因此当我运行应用程序时,它们也会自动运行,无需我们关照太多。虽然这些工具比较慢,但是它们最终还是会解决那些问题的,甚至会启用一些新功能,因此今天它们是我们编写应用程序时的必备工具。

RICK LAPLANTE:是的,我们现在必须以一个不同的方式考虑应用程序,不能再和 5 年或 10 年前的一样了,过去应用程序只是一些代码,或者是一些动态链接的 DLL。现在应用程序是您机器上的一组字节以及一个或多个数据库中的一组服务,应用程序的新定义以及考虑它的新方式是我们能够想象出许多新方案,以便您可以利用该工具从框架获取应用程序级视图,从而使用户能够构建分布式应用程序,无论是智能客户端,还是基于 Web 的客户端,都是通过 Web 服务进行连接的。


 ROBERT HESS:那么您认为观众应该注意 Whidbey 将要提供的哪些功能呢?我是指用于在该环境中开发更好的应用程序的功能,在测试环境中如何,在 Team Services 环境中怎样,还有在构建更好的 ASP.NET 或智能客户端应用程序的环境中情况又如何呢?

SHANKU NIYOGI:我想 Whidbey 的核心是为开发者、测试者和整个产品小组提供一些重要功能,使他们的工作更加容易,并通过将不同模型中的工作流协联接到 Visual Studio 中使得它们能够协同工作,此外它也使得整个过程更加成功、更加高效。


 RICK LAPLANTE:我想如果用户真正开始使用我的工具,他们会发现我们的设计宗旨是为了满足客户的要求,对智能客户端开发人员、Web 开发人员、移动开发人员和开发小组来说尤其如此,我想,他们会看到其中的每个实例功能对于 Visual Studio 来说都是非常新的,它们有利于提高工作效率,为他们的成功增加了砝码,当然,它们是否会成为 Team System 的组件,或者是否可以使您少编写 75% 的代码,还有待测试。因此我想,通过使用 Whidbey,他们成功的几率将大大增加,他们会为此而感到兴奋的。


 ROBERT HESS:现在,如果观众想获取更多有关这些内容的信息,也就是测试版之类的内容,您建议他们查看什么资料呢?

SHANKU NIYOGI:我们的 MSDN 上有很多资源。许多单独的小组都有社区站点,例如,对于 ASP,我们有关于 ASP.NET/Whidbey 的站点,而且,作为即将推出的测试版,我们还为开发人员提供了更多的资料。


 ROBERT HESS:好的,你们都写网络日记吗?

SHANKU NIYOGI:我写。我的都在 MSDN 网络日记中,在 /ShankuN 下。

RICK LAPLANTE:嗯,对于 Team System,我们实际上 3 周前才刚刚在 MSDN 上发布过一个全新的站点,网址是 MSDN.microsoft.com/bstudio/teamsystem。而且我也发行视频录像和白皮书,此外用户还可以通过我们新闻组中的链接获取大量信息。


 ROBERT HESS:好的,我也会确保获取你们发来的链接,并将其放于脚本的底部,以便人们在查看专题片脚本时可以看到有关测试版、开发资源和客户可能感兴趣的新闻组和网络日记的所有信息。

RICK LAPLANTE:太好了。


 ROBERT HESS:好的,感谢参与我们的节目。

RICK LAPLANTE:谢谢您。

SHANKU NIYOGI:这是我的荣幸。


 ROBERT HESS:希望您能从本专题片中获取一些有关 Whidbey 即将推出的功能的信息。由于时间有限,本片无法一一介绍所有功能,希望观众能注册测试版,下载它的副本,并看一下我们开发 Whidbey 的进展,这将有助于您获取开发资源。谢谢收看。


 Somebody@Microsoft.com
--------------------------------------------------------------------------------
Erica Wiechers 与 Stirling McBride(Microsoft 法律组的高级调查员)进行会谈

ERICA WIECHERS:在我身边的是 Stirling McBride,他是 Microsoft 法律组的高级调查员。Stirling,欢迎您。

STIRLING MCBRIDE:谢谢您。


 ERICA WIECHERS:Stirling,高级调查员的头衔令我很感兴趣。在 Microsoft 有您这样头衔的人一定不多。它究竟是什么意思?

STIRLING MCBRIDE:就是说我是个调查员;我负责法律和专利事务。我在 Microsoft 最开始负责盗版问题,一年之后我负责 Internet 安全。我们的小组由律师、分析师和调查员组成。我们有一个国际性的小组,我们作了大量的反垃圾邮件之类的工作。


 ERICA WIECHERS:好的,你们具体是怎么处理垃圾邮件的呢?

STIRLING MCBRIDE:我的工作基本上就是要查清是谁在向我们客户的 MSN 和 Hotmail 中发送垃圾邮件,尽力调查出这些人并进行立案,以便用于法律强制对犯罪行为进行惩治。


 ERICA WIECHERS: 最近你们的进展如何?

STIRLING MCBRIDE:我们已经成功了。我们的小组多年来一直努力工作。今年我们已经处理了 68 个案件。有几个案件已经进行了法律强制,而且有一些犯罪行为尚未定罪。

ERICA WIECHERS:不少,真令人吃惊。

STIRLING MCBRIDE:真是成功的一年,我们小组的工作真的很辛苦。


 ERICA WIECHERS: 你们在调查垃圾邮件罪犯的过程中花了不少钱吧,那么客户什么时候、会以怎样的方式看到你们工作的成效呢?您知道,我是指垃圾邮件减少的情况。

STIRLING MCBRIDE:完全如此。我们采取的行动包括民事和刑事两个方面,我们相信已经对垃圾邮件罪犯产生了影响。我们侦听到了他们中一些人的谈话,他们说以后要倍加小心了。但是 Microsoft 已经采取了一个反垃圾邮件的方法,它比法律强制更加奏效。有一个部门专门负责针对它的技术解决方案。我们也开始与政府合作,致力于通过一些相关法律,以帮助我们能够采取更多的措施来对付此类罪犯,并提醒客户注意这类犯罪。


 ERICA WIECHERS:人人都知道垃圾邮件是什么,知道它们的危害。那么关于垃圾邮件,还有什么为人所不知的吗?

STIRLING MCBRIDE:嗯,垃圾邮件实际上是许多 Internet 破坏分子干出的恶心勾当。他们经常利用垃圾邮件发送病毒和蠕虫。也有人利用它们发动 fishing 攻击,具体过程是,他们以假冒身份发给您一封电子邮件,比如说以 Microsoft 的身份,以便询问您的个人信息。一旦他们获取了您的身份信息,就会利用其盗取您的银行账户,这会给您带来不小的损失。因此垃圾邮件令人厌恶之极。它也是 Internet 上其他问题的罪魁祸首之一。


 ERICA WIECHERS:是的,没错。您能谈谈你们处理的几个具体案例吗?

STIRLING MCBRIDE:没问题。我们最近遇到这样一个案例,犯罪分子以 Microsoft 身份给他人发送电子邮件,假装告诉他们发现计算机上有病毒。然后告诉他们可以到 Microsoft 网站上单击一个超级链接下载一个修复工具。但实际上您进入的并不是 Microsoft 网站。其实您下载了一个工具栏,他们就是借此对您的联机操作进行攻击的。我们开始进行调查,发现注册该站点的公司是在 Belize 进行注册的,可想而知,要抓这些人是很困难的。但是,当我们开始深入调查时,在加利弗尼亚隐藏着一个秘密的公司,实际上该公司有犯罪前科,最终我们在去年对案犯提起了公诉。


 ERICA WIECHERS:好极了。

STIRLING MCBRIDE: 是的,真是个有趣的案子。我们查遍了整个世界,最终却在美国本土破了案。

ERICA WIECHERS:嗯,您的案子破的不错。

STIRLING MCBRIDE:没错。


 ERICA WIECHERS:好极了,您学过法律强制吗?

STIRLING MCBRIDE:学过。来 Microsoft 之前,我是美国西雅图马歇尔群岛的代表。我在那里工作了 6 年,之前我还曾经圣地亚哥的美墨边境作过美国的边境巡逻总管,其间我曾经追捕嫌犯达数千公里。

ERICA WIECHERS:真棒,您是怎么获得这份工作的?

STIRLING MCBRIDE:嗯,之前我曾在 Marine Corps 工作过一段时间,这是我做法律强制工作的“必修课”。


 ERICA WIECHERS: 墨西哥、圣地亚哥等地与西北地区有很大不同吧。

STIRLING MCBRIDE:是这样的。能够在那里工作令我很高兴。

ERICA WIECHERS:嗯,您是那里的人吗?

STIRLING MCBRIDE:是。我出生在美国华盛顿的斯波坎,也在那里长大。


 ERICA WIECHERS: 好的,那么工作之余您都有什么爱好呢?

STIRLING MCBRIDE:嗯,我结婚了,有四个小孩,他们都快十岁了。我喜欢打篮球。通常我能训练一两个组打球。冬天我们都进行雪上运动,夏天自然是水上运动。工作之余我们进行大量体育锻炼。

ERICA WIECHERS:我敢打赌,你们小组一定很活跃。

STIRLING MCBRIDE:是的,没错。实际上我们还玩棒球,我所在的一方很强。


 ERICA WIECHERS: 您的儿子对法律工作感兴趣吗?

STIRLING MCBRIDE:不太感兴趣,但他们都想在 Microsoft 工作。对此他们真的很热衷。我和我的妻子都在 Microsoft 工作,我们经常高谈扩论我们的工作,这自然对孩子有所影响。当然,他们也想做 Xbox 游戏程序开发,只是……

ERICA WIECHERS:Right.

STIRLING MCBRIDE:真有趣。

ERICA WIECHERS:没错,年轻人的梦想。

STIRLING MCBRIDE:没错。


 ERICA WIECHERS:好极了。您将来在 Microsoft 还要做哪些工作,如果还是作当前的工作,会不会到别的地方呢?

STIRLING MCBRIDE:嗯,我们今年的工作量正在增加,这只是我们工作的第一年,我们要克服许多困难,而且我想我们的工作很有意义,但我们也要计划一下以后怎么做,以便更好地处理垃圾邮件等令人生厌的问题,从而确保 Internet 的安全性。我希望自己能继续作调查工作,这是我的爱好,也许有一天会有一些人帮我做这些事,那就更好了。

ERICA WIECHERS:很好。

STIRLING MCBRIDE:这正是我所盼望的。


 ERICA WIECHERS: 好了,Stirling,感谢您参加我们的节目。非常感谢。

STIRLING MCBRIDE:这是我的荣幸。谢谢您。


 Closing Comments
--------------------------------------------------------------------------------
ROBERT HESS:现在本期 .NET 专题片已经接近尾声了。

ERICA WIECHERS:欢迎下期继续收看有关智能客户端的专题片。

ROBERT HESS:到时网上见。


有关更多信息的链接
--------------------------------------------------------------------------------

Microsoft Visual Studio 开发人员中心
为 Microsoft Windows、Web 和移动设备快速构建应用程序
http://msdn.microsoft.com/vstudio/
Visual Studio 2005 Express 测试版产品
这些 Express 产品将 Visual Studio 产品系列扩展到包含轻量级、易于学习和使用的工具,这对想要构建动态 Windows 应用程序和 Web 站点的业余爱好者、热衷者和新手来说是一大福音。
http://lab.msdn.microsoft.com/express/
Visual Studio 2005 Team Systems
http://msdn.microsoft.com/vstudio/teamsystem/
Visual Studio 2005 Team System:概述
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvsent/html/vsts-over.asp
Visual Studio 2005 Team Systems 演示
这是一个可下载的视频记录片,内容是关于 TechEd 2004 提供的有关 VSTS 的通用会话演示
Visual Studio 2005 新闻组
http://communities.microsoft.com/newsgroups/default.asp?icp=whidbey&slcid=us
Visual Studio Team Systems
附加白皮书和相关资源
http://msdn.microsoft.com/vstudio/teamsystem/whitepapers/default.aspx

--------------------------------------------------------------------------------

Jason Zander 的网络日记
他是 CLR 产品部经理
http://weblogs.asp.net/jasonz
Adam Nathan 的以 Interop 为中心的 CLR 网络日记
http://weblogs.asp.net/adam_nathan
Brad Abrams
Design Guidlines,Managed Code and WinFX
http://weblogs.asp.net/brada
Rico Mariani 的网络日记
Implying no warranties and conferring no rights: "AS IS" since 1988
http://blogs.msdn.com/ricom/
Suzanne Cook 的有关 .NET CLR 加载器的网络日记
http://weblogs.asp.net/suzcook
Michael Stanton 的网络日记
http://blogs.msdn.com/mvstanton

posted on 2005-11-30 23:47  Zeus  阅读(2054)  评论(1编辑  收藏  举报

导航