――专访微软ASP.NET产品项目负责人
当我们最初规划ASP.NET 2.0的发展的时候,我们深入市场研究了我们的消费者以及普通Web站点开发人员的需求。我们到底发现了什么?很多常用的,需要重复完成的任务功能一次又一次的被重新配置。我们的目标就是要简化这些过程,并且帮助开发人员减少大约70%在普通应用环境中所需要编写的代码。
这是一个很美妙的目标,但这直接导致了一系列ASP.NET应用程序服务的开发,诸如Membership、Role Management、Navigation、Web Parts、Management以及其他更多的能够提供一种大量削减代码的简单编程模式。同时,我们已经编译了超过50种新的控制方式(control),这些方式将用于协调ASP.NET应用程序服务并进一步简化开发过程。开发人员告诉我们说他们希望把精力放在为应用程序增添价值而不是编写重复代码片断上面。我们相信,通过ASP.NET 2.0,Web开发人员可以实现这一目标。
开发人员和IT专业人士还告诉我们ASP.NET需要更加简单的管理和维护。我们为此添加了一整套相关功能,使开发人员能够更简便的配置他们的应用程序,IT专业人士也能够能轻松的通过IIS管理他们的ASP.NET 2.0应用程序。
ASP.NET开发小组是如何提炼开发人员的建议并以此为标准开发新的功能特性的?
首先,处理数量庞大的建议绝对不是一件容易的事情。它需要我们到开发人员社区收集反馈,同重要客户进行交流,并且思考我们Web平台以及开发工具的发展方向。在通盘考虑这些问题之后,我们得出了实际情况,然后就需要作出一个困难的决定。我们不得不回过头来考虑我们所获得的数据、客户需求、技术条件、业界发展趋势以及更多的东西,并确定其中什么需要优先考虑。
哪些功能反应了客户们最为广泛的需求?那些功能表现出了最强烈的创新意识?那些功能将被用来简化处理复杂情况的过程?我们是如何改进平台的管理性能的?
你知道,我们要处理很多类似的事情。同你所希望的那样,整个开发过程非常艰难,因为我们尽量满足客户所有的需求,但并不是都能如人所愿,我们不得不看看各自的优先级。
您看到了那些功能对于开发人员来说具有"ah-ha"的因素?比如,在前期版本中没有出现的功能,或者对于ASP.NET 1.x开发人员具有强烈吸引力的功能?
对于我们下一代的Web平台以及开发工具来说,有两个主要的"ah-ha"因素。首先,我们重新设计了创建Web站点以及应用程序的工具框架。我们发布了一个针对普通爱好者、学生,以及编程狂的新的开发工具--Visual Web Developer 2005 Express Edition。这种工具从一开始开发就始终关注于Web开发人员的需求,并且基于Visual Studio 2005 IDE。因此,Visual Studio 2005不光包括了所有Visual Web Developer 2005 Express版本具备新的Web开发功能,并且还含有更为专业的功能,例如源控制集成(source control integration)、预编译(pre-compilation)、局域化处理(localisation),以及访问性检查(accessibility checker)等等。
使用Visual Studio .NET 2003以及ASP.NET Web Matrix的开发人员告诉我们很多关于他们对于所使用的Web开发工具的期望,这次重新开发就是针对这些反馈信息的。它包括对项目系统的一些修改,使其基于目录,借助更好的CSS支持在界面设计上有了重大改进,并且还集成了对Master Pages以及Themes的支持。我们还对源代码编辑器进行了改进,为Web开发人员提供了强大的代码编辑功能。
其次,如前面所说,ASP.NET应用程序服务对配置所有高级功能提供了强大的模型。此外,我们新的Master Page模型将允许开发人员更为方便的维护站点的视觉一致性。这种模型可以继承来自开发工具端和系统平台端的视觉效果。
那些功能或许可以将开发人员从PHP或者JSP阵营中吸引到ASP.NET 2.0?
ASP.NET 2.0以及Visual Studio 2005能够给所有的开发人员带来一些列的好处。软件提供了强大的开发工具,通过这些工具开发人员可以对Web站点及功能强大的平台进行设计并编写代码,同时可以减少他们需要编写的代码数量。ASP.NET 2.0和Visual Studio 2005同样允许情景模式,而在这之前要实现这样的功能几乎无法想象。一个正在编译的例子是Web Parts。
ASP.NET 2.0提供了内容丰富的Web Parts基础结构,使得开发人员无需编写过多自定义代码而创建自定义个性化的Web页面成为可能。我们的平台已经为开发人员提供了大量工具,并且鼓励这些不同背景的开发人员下载Visual Web Developer 2005 Express测试版并进行评估,我们为此感到非常兴奋。
有人谈到了通过新的缓冲区功能可以带来应用程序性能的提升,您能举出一个具体应用环境的例子么?
ASP.NET 2.0中有一种新的输出缓存类型,名为SQL Output Caching。在过去,输出缓存可以带来巨大的性能提升,但同样存在一个问题,即决定最佳的缓存时间以避免输出过时的数据。通过SQL Output Caching,ASP.NET 2.0可以不确定的对一页进行缓存,并且仅仅当此页数据改变时刷新缓存。这项功能可以兼容SQL Server 2005以及SQL Server 2000。所以可以想象,如果是一个数据更新并非频繁的目录站点,例如一个每季度更新价格信息的站点,在这样的情况下,你可以将多月的目录页面进行缓存,并且可以看到系统巨大的性能提升以及数据库负载得以减轻。
ASP.NET开发人员常常对于保持整个站点视觉效果及使用方式一致性而痛苦不堪,在ASP.NET 2.0中是怎么解决这一问题的?
我们已经清楚了了解了开发人员所强烈反映的这一问题,在ASP.NET 2.0中提供了许多新的功能来帮助开发人员维护整个站点的视觉效果及使用方式一致性。首先是Master Pages,这是一种视觉效果继承机制。开发者可以在此进行站点大部分的视觉规划,并且使用contentplaceholder control来定义overridable区域。然后在子页面中,可以创建与主页面中contentplaceholder类型不同的内容页面--在内容页面中仅仅针对内容使用此项功能,Master Page将完成剩下的工作。由此我可以仅仅通过修改Master Page来改变整个站点的视觉效果。
ASP.NET 2.0运行时将结合包括内容页面的Master Page,并且发送统一格式的输出到浏览器。我们还添加了Themes/Skins结构,由此允许开发人员轻松的替换ASP.NET 2.0服务器控制中特定的外观元素。为了提高开发效率,我们还为Visual Studio 2005和Visual Web Developer 2005 Express Edition中的Master Pages的Themes/Skins提供了充分即时技术支持。
绝大部分的Web站点提供了某种类型的个性化功能,这些功能通常是手动编写代码实现的。在ASP.NET 2.0中有什么功能可以帮助开发人员创建个性化的Web站点么?
当前的Web站点常常需要为用户带来丰富的个性化体验。在ASP.NET 2.0中,我们为此提供了一种Web Parts基础结构及个性化开发引擎。首先,开发人员可以方便的定义strongly-typed user profiles,这些数据也将自动的进行维护。其次,通过Web Parts,用户可以轻松的对站点的外观和组件进行自定义,即通过对相关Web Parts进行添加、去除或移动。可以看看myMSN.com,实际上它的相关效果的实现几乎没有编写代码。
使用ASP.NET 1.x创建基于数据的Web站点非常麻烦,在这方面有什么新的功能么?
要实现提高开发人员效率这一目标,一部分工作就是要减少数据访问代码的数量。我们引入了一些新的控制功能,包括GridView,来针对此问题进行改进。新的免代码数据绑定可以更为简单的将databound对象连接到后台的数据。在ASP.NET 2.0中,我还可以通过GridView,使用ObjectDataSource,借助中间对象来实现而无需编写任何代码。这是全部?我还可以进行分页、排序、选择、编辑、删除,同样不需要任何代码。你将发现这全新的数据访问模式所带来的简便性。
在从ASP.NET 1.x转移到2.0的工程中,开发人员应当考虑哪些方面的结构、升级以及端口等问题?
我们的确就确保ASP.NET 1.0和1.1站点能够在ASP.NET 2.0正常运行方面做了大量的工作。Visual Web Developer 2005 Express Edition以及Visual Studio 2005提供了一个升级向导,它可以方便的把已有的代码转换成ASP.NET 2.0格式,这样你就可以在原有代码上添加任何需要的新的功能。这一过程简单而无缝。
ASP.NET Web Matrix会随着ASP.NET 2.0的发布而进行升级么?
ASP.NET Web Matrix是一种无支持工具(unsupported tool),它的发布是为了帮助ASP.NET评估人员,普通爱好者和编程狂创建Web应用程序。ASP.NET Web Matrix项目对我们来说是极大的成功,它的下载次数超过了150万。我们由此收到了大量大反馈,并分析出Web开发人员到底希望在他们的开发工具中看到什么样的功能。
另一方面,Visual Web Developer 2005 Express Edition是Visual Studio 2005家族中的一员。绝大部分在ASP.NET Web Matrix中所获得的教训、反馈意见、以及值得肯定的功能在Visual Web Developer 2005 Express Edition的开发中都有所借鉴。使用者可以无缝的从ASP.NET Web Matrix转移到Visual Web Developer 2005 Express Edition上面来。