Windows 7令人满意,Code 7让人失望

10月份,微软正式把Windows 7推向市场;同时,从9月份到11月份,微软搞了一个Code 7大赛。

我们先来说说,Windows 7 。

Windows 7,我是从Beta 2就开始用于生产环境(即用在我的工作笔记本上),一直用到RC和RTM。从最开始,我就使用64位版本,程序兼容性,驱动什么的都没有问题。自从Beta 2开始,我已经习惯了Windows 7人性化的Taskbar,以及其他一些新功能,如方便开始菜单查找、Libraries功能、文件管理器收藏夹功能等。在朋友问起Windows 7如何时,我总是回答“用上,就习惯不了其他版本的Windows了”。

微软从了在Windows 7中着力解决了Vista中被人诟病的兼容性问题外,还不予余力的为开发人员打造了很多API。Windows 7的开发新特性包括如下几个方面:

  • 让程序和Windows 7更兼容性
    • 数据重定向(Data Redirection):保证了受限用户能正常运行程序
    • 支持自动DPI调整(High DPI):让应用程序字体布局在高DPI中不会扭曲,混乱
    • 安装程序检测(Installer Detection):甚至可以通过文件名来识别是否是安装程序,以提高安全性
    • 更安全的运行模型(Session 0 Isolation)
    • 用户界面权限隔离(User Interface Privilege Isolation)
    • 版本检查(Version Checking)
  • 让程序和Windows 7更一致
    • 任务栏(Taskbar)API
    • Shell Libraries API
    • Background Services API
    • Instrumentation and Performance API
  • 让程序在Windows 7上与众不同
    • 多点触摸(Multitouch)API:让非WPF开发的应用程序也可以轻松实现多点触摸功能
    • 传感器和位置平台(Sensors and Location)API:统一了传感器访问接口,统一了位置提供器接口(可以支持GPS,IP等来提供位置)
    • Ribbon界面API:让你的应用程序也可以开发出Office 2007的界面

另外,Windows 7还带了DirectX 11 API,开发人员可以利用D11来完成很多2D、3D特效。

以上开发新特性中,我认为最有意义的就是,Taskbar和MultiTouch,它们可以改变你的应用程序的交互方式,带来不同的体验。

通常而言,在.NET下,需要通过如下一些函数库来调用以上API:

VistaBridge
http://code.msdn.microsoft.com/VistaBridge

WindowsAPICodePack
http://code.msdn.microsoft.com/WindowsAPICodePack

Windows Sensor And Location Platforms
http://code.msdn.microsoft.com/SensorsAndLocation

微软这次为了推广Windows 7以及Windows 7的开发新特性,还特意搞了一个“Code 7大赛”:

要求使用的技术点:

媒体库 (Libraries)

Windows 触摸技术 (Windows Touch)

Shell 集成 (Shell Integration)

DirectX 11

传感和定位平台 (Sensor and Location Platform)

中国属于其中一个大区,获取的奖项包括:

两名二等奖(大约总计零售价值1,000美元的奖励)

一名一等奖,直接参加决赛(参加今年在美国加州洛杉矶举办的PDC09 的邀请和旅行的费用;和一份有 Microsoft VP 签名的 Windows 7 Ultimate 版本的软件。每名获奖者将获得大约总计零售价值5,500美元的奖励)

PDC 09上,六名决赛选手将获得$7,777美元的奖金;其中一名决赛选手会获得更加惊喜大奖,该获奖者将被评委团选出并赢得$17,777美元的奖金

具体介绍请猛击这里:http://msdn.microsoft.com/zh-cn/ee364703.aspx

source:http://www.cnblogs.com/xlzhu/archive/2009/08/27/1555174.html

相反,我对这个Code 7的体验并不好,一句话“让人失望”。

首先,提交作品的时候,规定了极短的3分钟视频,10M大小。我上传作品的时候,对录制的视频剪裁了很多才能达到这个要求。并且上传以后,信息不能更改,也不允许提交更新版本。

其二,获奖名单迟迟不公布,比预定公布时间延后40天以上。

以上,其实都无所谓了。让人更失望的是,获奖作品无法让人信服。我只以大中国获奖名单为例:

第一名:Smart eVision with Windows 7 Multi-Touch Interface,下面是他自己写的描述:

Smart eVision is a web-based dashboard system for enterprise managers and was built using Silverlight. It supports Windows 7 multi-touch interfaces to change the interaction behavior. It enables the executives to manage key performance indicators of Financial, Marketing, Quality, and Manufacturing anytime and anywhere.

大家注意到没有?!这个程序是一个Silverlight程序(按照时间来看,最多是Silverlight 3的程序)。关于Silverlight的多点触摸,可以参见InfoQ的文章《Silverlight 3把多点触摸带进Web世界》。在Windows上要实现多点触摸,首先必须有多点触摸的硬件,其次需要有底层API。对于底层平台这级,可以通过WPF来实现多点触摸,比如Microsoft Surface,或者在Windows 7上调用MultiTouch API。而Silverlight 3或Silverlight 4开发多点触摸的应用程序非常容易,只需要处理几个多点触摸的手势事件即可;而一点都不用去学习Windows 7的新API。就算,你学习了Windows 7的MultiTouch API,在Silverlight上也无能为力。毕竟Silverlight 3是无法访问Native API的。

所以,可以断定,这个第一名的作品,完全是一个取巧的作品。

如果说,就算取巧了,至少还是实现了很酷的效果了,我也无话可说。老实说这个巧取的很非常好,因为纵观7个大区的第一名,从字面上,就可以看到3个大区的第一名都是和MultiTouch有关的,Autumn Dynasty也是用多点触摸的方式来打游戏。早知道这样的话,参赛者都开发触摸应用程序了;早知道这样的话,Windows 7也不用提供Taskbar,Sensor & Location平台了。

然而,还有一个更严重的问题:这个获奖作品并不是作者所有(也许还是参与了开发)。

这个作品,是台湾 联铨信息 的主打产品,理论上产品的源代码归这个公司所有。我清楚的记得,Code 7的Rule规定说,参赛者必须对作品的代码拥有所有权。那么看来,是不是索贝的员工拿他们的非编系统的源代码出来,自己加上多点触摸的功能就可以参赛咯,我相信以索贝这么牛的产品(作品),获奖是没有问题了;而,瑞星的员工也可以拿瑞星杀毒软件的源代码出来,加上多点触摸的功能也同样参赛没有问题,获奖没有问题咯。

再退一步说,这个Code 7比赛可以以厂商身份参赛,拿现有成熟、功能NB的产品(之前和Windows 7没有半点关系),临时加上点Windows 7的新特性(加上这些新特性,其实和Windows 7还是没有半点关系,因为这些产品的功能是不依赖于Windows 7的新特性),也就可以参赛拿奖咯。如果这样,干嘛不把Code 7搞成一个微软合作伙伴比赛,而要是一个公开比赛呢?既然要公开,那么对于个人参赛者又置于何地呢;对于那些从零开始基于Windows 7的新特性创造新应用的参赛者来说,又置于何地呢?

最后来说说我的参赛作品,权当献丑:

iT7(i Twitter on Windows 7)。大家可以访问:http://it7.codeplex.com/ 来获取它的源码。下面我把关于iT7的一些简单介绍(实际上是我ppt中的文字)摘录如下:

  • A .NET twitter client on Windows 7
    • —Developed by C#, WPF, and WindowsAPICodePack …
    • —Start from zero, current is 0.1 milestone
    • —Have basic capabilities of a twitter client
  • Using various new features of Windows 7
    • —Taskbar
    • —Location Platform
    • —Extended Linguistic Services
    • —Misc: Power Management,Network Management
  • Taskbar
    • —Taskbar Overlay Icons: Indicating status of login(Green) and logout(Red)
    • —Taskbar Progress Bars: Indicating process of login and refresh
    • —Thumbnail Clips : Display tweet on Thumbnail Clips

    • —Thumbnail Toolbars :
      • —Navigating tweet: First, Previous, Next, Last
      • —Action: Home, Open, Refresh
    • —Taskbar Jump Lists :
      • —Display tweet list, clicking can open tweet
      • —Custom task: Login, Settings, About, Update, Show List, Refresh
    • —Tabbed Thumbnail :
      • —Using TabControl display tweets of friends, replies and direct messages
      • —Using TabbedThumbnail display content of each TabPage
      • —TabbedThumbnail syn. TabPage
  • Location Platform
    • —CivicAddressLocation : Auto set location of profile
    • —LatLongLocation : Set GeoLocation of Tweet
  • Extended Linguistic Services
    • —Transliteration : Translate content of Tweet
  • Misc
    • —Power Management : When PowerSource==Battery, Refresh frequency always is 10 minutes, in order to saving energy
    • —Network Management : According to IsConnectedToInternet, change OverlayIcon, change Jump List

虽然我的作品界面很丑,功能现在比较简单,但是重要的是,我的作品离开了Windows 7就没有存在的意义;而且我还把Location Platform在Twitter这样的微博客户端应用程序中找到很好的应用点。

================

以上文字纯属牢骚!

posted @ 2009-12-14 22:37 朱永光 阅读(...) 评论(...) 编辑 收藏