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这样的微博客户端应用程序中找到很好的应用点。
================
以上文字纯属牢骚!