写点什么

来自 Redmond 的真实声音

2011 年 6 月 22 日

最近,InfoQ 前往了 Redmond(美国微软总部)参与了一场关于技术发展的最新趋势的非正式讨论会。通常来说当我们进行这样的事实探究任务时,演讲者的笔记是不允许记录的,但这次我们特意申请批准按实情报道。除了去掉了一些电子邮件地址和一部分关于 NDA 的材料,下面的这些记录都是我们仅供内部编辑人员分享的。

David Salamon, Visual Studio 竞争战略高级产品经理

我们的向导和主要联络人

争论(开发)是只使用.NET 技术还是只使用 Java 技术的日子已经结束了并且种种迹象表明它们再也不会回来了。现在我们需要关注的是怎样才能整合多种平台(来进行开发)。我们所听到大量关于(微软公司架构)重组的谣言是真实的,但这并不是一个严重的问题。对外而言,一切都和以往一样,对内,他们(HR 部门)将研发人员的不同职能整合成了一个常规的职能组,这样使得工程部门和商业部门能更好地结合。(这里提到的变动明显与研发部门更为相关;另外的一些在服务器和商业工具部门的变动 David 并没有在他的记录中提及。)

观点

  • 在 Windows Phone 应用中使用 Java 后台技术
  • 在 Java,Android 或者 iOS 前台产品中使用.NET/WCF 后台技术

Scott Hunter, ASP.NET

为何我们要使用 jQuery 而不是其他的开发原型或类库呢?因为它已经被 40% 的网站所运用并且这个数字在今年将有希望达到 55%。

重点强调一下在 ASP.NET 中使用开源的工具的原因:

  1. 我们(微软公司)没有必要再去开发一个工具,如果已经有人为我们开发了。(重要的观念改变)
  2. 相对于我们正常的开发周期,游览器的更新太过迅速了。

Modernizer 对于推进 HTML 5 来说是一个必要工具。

Web Matrix 这个网页工具的轻量级 IDE 完全可以直接与 PHP 进行对抗。

下面列出三种使用 ASP.NET 和 Visual Studio 来创建网页的方式:

  • 页面开发(Web Pages):非常的轻量级,易于页面的搭建。无需(搭建)底层架构,和 PHP 以及传统的 ASP 开发非常相似。对网页生成的 HTML 可以完全掌控。
  • MVC 架构:和页面开发一样的轻量级开发引擎,但后台完全由 MVC 框架支持。对网页生成的 HTML 可以完全掌控。(网站)的升级周期大概是一年的时间。
  • 网站控件开发:基于组件的网站开发模式。在必须(符合)交付时间的情况下使用。尤其在内部开发且对网站的观感并不十分苛刻的条件下使用。(网站)的升级周期与.NET 核心框架的升级周期密切相关。

以上的三种技术可以在同一网站的开发中使用;开发人员没有必要将自己局限于某一种开发模型。

网站控件开发模式仍然代表着绝大多数的基于 ASP.NET 架构的网站(开发模式)。强烈建议将正在进行(研发)中的 ASP.NET MVC 框架功能移入网站控件开发模式。

Razor 视图模式起初是为页面开发模式设计的,后来也被 MVC 3 所采用。

(网站网页)同时支持 HTML 5 以及低版本的游览器是必须的。但我们怎样才能实现这个呢?

  • 用 Modernizer 进行功能检查而不是浏览器检查。
  • 网站控件可以根据浏览器的功能来呈现不同的代码效果。
  • “这是一个 ASP.NET* 可能 * 实现的功能。如果(网站)只有唯一的 Default.cshtml 文件那我们将向所有的客户端提供这个文件(的展示)。如果终端设备是一个移动终端(手机之类)那么我们可以先搜索(网站)是否存在 Default.m.cshtml 文件,如果没有找到该文件则退回去(展现)Default.cshtml 页面。我们(微软)正在考虑在将来(实现)这样的展现方式。

以上这些都是我们正在思考的主意,还没有为它们规划特定的功能。

观点

  • ASP.NET 中开源工具的角色
  • 何时在你的网站开发中使用网站控件、网站页面、MVC 开发模式
  • 同时支持 HTML5 和低版本浏览览器的策略

Lisa Feigenbaum – Visual Studio/Managed Languages

微软的技术部门正在研发在 Visual Studio 中加入 Python 语言的工具。详见 InfoQ 的报道: http://www.infoq.com/news/2011/04/VS-CPython

VBA——还在等待联系人的信息。(通过 David 得知联系人名为 Jay Schmelzer)

VB/C#: 目前(新技术的)采用率都是均等的,也都对内部的人员提出了相同数量的问题。

微软论坛:和预想的一样,目前(各个网站)实际被使用的方式大量重叠。

三个方面被强调:

  • 陈述性
  • 动态性
  • 并发性

F#并不是协调演化语言的一部分。相对于 VB/C#这些通用的编程语言,它是一个为了更明确的目标群体所创建的开发语言。

目前 Lisa 建议将 IronPython 作为嵌入式脚本。当下无论在微软内部的产品开发团队还是来自外部的程序员都强烈渴望一种更健壮的嵌入式脚本语言。

旁记

我们现在非常需要一直专注于数据库的队伍,不管是传统的数据库类型或者 NoSQL 数据库。这样就需要聘用三至五名对 ORMs(对象关系映射) 以及 DBA 授权具有深刻理解的编辑。我提出了一些更好地处理 C#/VB 中自动实现属性的方法,且她(WHO?)建议我提交一份一页纸的建议书。特别是关于我们需要在 WPF/Silverlight 中支持 IPropertyChangeNotification 情况的说明。

观点

(在之后的 Visual Studio 中)我们将用什么语言来取代 VBA 成为提供内部 IDE 支持的嵌入式脚本语言?(和 Jay Schmelzer 继续探讨)

Jon Harris – Expression Blend

当我们发布 Expression Studio 的时候我们搞砸了。我们将其定位于追赶 Adobe 和设计师市场的产品。我们甚至花费了过去的四年时间来试图宣布,“不,这个产品不仅仅是针对设计师的。她是针对所有用户界面开发人员的。”

Jon 花费了很长一段时间来评论 Rick Barraza 在 MIX 会议上的演讲并表达了“每一个人都是设计师”的观点。事实上他们要论证的是每一个搭建用户界面的人都是设计师。尽管他们还没有接受过设计师的培训,但他们已经在做这个角色(设计师)的事情了。点击此处查看相关信息。

目前还没有任何关于如何正确使用Blend 的指导手册,尤其是从研发人员或者开发者/ 设计者的角度(编写的使用手册)。更重要的是,目前还没有任何官方的关于怎样使项目易于融合并避免之后痛苦的指导手册。在开发人员的交流会上,Jon 在他的讲演中用了一张幻灯片来为这个课题给出承诺。“实际上他的幻灯片中突出地列出了一些对研发人员在第一次试图融合项目时非常好的着手点…帮忙多提供给一些对研发人员有用的功能点上的关注比帮助他们去把项目变得易于融合更有意义。”

同样的,目前还没有任何关于WPF/Silverligh 中如何恰当地管理资源字典的指导手册。

Expression Blend 和 Visual Studio 将不会合并。

  • Visual Studio 是人们在以编码为中心的工作中需要用到的工具。
  • Blend 是人们在以设计为中心的工作中需要使用的工具。
  • 这两种工具可以并且应该同时被使用。
  • 我们(提供这两种工具)的目的是(为大家)提供“(解决)同一项目或者问题的两种不同的(处理)视角”。

“(产品的)质地”是非常重要的。它更多的是指(客户)对系统的感觉而不是系统的外观。这里包含了细小的 (提高系统) 可用性的技巧比如说提示信息在展现和隐藏状态之间的转换等。对工作流和可用性的重视对内部应用系统来说是至关重要的。每年许多公司都会因为她们内部系统粗糙的用户界面而损失无数的时间和金钱。比如说,在微软内部的预订航班和宾馆的系统上进行价格比较是非常困难的。这就意味着员工将会浪费很多时间在这个本以为十分简单的操作上并且他们通过这个系统为计划中的旅行得到优惠折扣的几率非常小。

观点

  • “每个人都是设计师。”
  • “怎样避免(项目)融合中的错误。”(编者注:John Harris 认为“怎样保证项目易于融合”这个标题更合适。)
  • “如何在 WPF/Silverligh 中恰当地管理资源字典”
  • “(系统)可用性在终端用户生产力中的重要性”

关于作者

Jonathan Allen 从 2006 年起就为 InfoQ 撰写新闻报道,现在他是.NET 编辑队伍的主管。

查看英文原文: Raw Notes from Redmond


感谢崔康对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

2011 年 6 月 22 日 00:001660

评论

发布
暂无评论
发现更多内容

第一周·作业-食堂就餐卡系统

刘璐

【架构师第一周】总结

浪浪

架构师训练营第一周学习总结

坂田吴奇隆

极客大学架构师训练营

【架构训练Week01作业】食堂就餐卡系统设计

Rex

week1《作业一:食堂就餐卡系统设计》

任鑫

gcc a.c 究竟经历了什么?

程序喵大人

c++

作业一【食堂就餐卡系统设计】

道法自然

极客大学架构师训练营

架构师是怎样炼成的-1-2

闷骚程序员

极客大学架构师训练营

第一周作业

慵秋

什么时候使用volatile关键字?

程序喵大人

c++

【架构师第一周作业】食堂就餐卡系统设计

浪浪

学习

架构师0期 01周总结

喵呜的小哥哥

架构学习第一周作业

+╮(╯▽╰)╭/>……

极客大学架构师训练营 总结 - 第一课

Darren

UML练习

毛叫

极客时间 极客大学架构师训练营

「架构师训练营」第 1 周作业 - 食堂就餐卡系统设计

edd

设计思维

食堂就餐卡系统设计

新世界

架构 0 期-week1-学习总结

陈俊

食堂就餐卡系统设计(作业模拟)

潜默闻雨

Flink 源码分析之一文搞懂Flink 消息全流程

shengjk1

flink flink源码

week1.食堂就餐卡系统设计

个人练习生niki

UML

作业1-食堂就餐卡系统设计

进击的炮灰

时刻架构

慵秋

极客大学架构师训练营

第一周·总结 架构师如何做架构设计

刘璐

架构师训练营第一周学习总结

fenix

食堂就餐卡系统设计

心在飞

极客大学架构师训练营

食堂就餐卡系统

缺省模式

食堂餐卡系统设计

张磊

第1周【架构方法:架构师如何做架构】总结

陆不得

架构师训练营-第一课作业

Linuxer

极客大学架构师训练营

作业二【0606学习小结】

道法自然

极客大学架构师训练营

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

来自Redmond的真实声音-InfoQ