随笔-312  评论-11876  文章-2  trackbacks-220

几天时间,将《Windows Vista for Developers》系列的八篇长文翻译完成,其间学到了不少,也有了一些体会。趁着周末园子里没多少新文章,占个位置写点体会吧。

 

为什么《Windows Vista for Developers》系列没人关注?

原因很多了,不过我感觉主要可以归于两点:

第一点,这个系列虽然讲的都是最新的Vista功能,不过使用的却是其提供的原生API,似乎与园子的主要氛围不是很一致?(所以似乎也不应该发在首页啊……我刚刚才意识到,各位不好意思了)很多朋友不愿意看到“丑陋”的C/C++,而喜欢“优雅”的.NET语言。也有很多朋友都在帖子中问,什么时候能在.NET中使用这些功能呢?当然这一点无可厚非。

第二点,即使Vista提供了基于.NET平台的托管API,估计关注的人还不会是很多。因为目前.NET的主要应用要么是ASP.NET,要么就是业务逻辑相关的。而对于Windows Form,似乎很少有人特别关注。当然,这自然有它的道理,Windows Form开发有的是更加方便、更加快速的方法,比如说VB,比如说Delphi等等……谁愿意用这个“managed”的东西呢?况且为了“manage”你的程序,还要拖家带口地带上.NET Framework让用户安装……

 

还有没有必要学Windows Vista开发?

如果你说接下来就是Web的天下了,并给我举出Google的N个很cool的产品作为例子,那我也没什么话说,其实我也比较赞同这一点。不过有些时候,起码是在近期,桌面应用程序的地位还是不可撼动……很简单的一个桌面功能,比如拖拽,放到Web上,让JavaScript那稚嫩的双肩挑起来,就变得那么困难……

总归么,不能极左也不能极右。业界的发展方向我不敢妄作评论,不过作为程序员的我们万万不能陷入其中,“只见森林,不见树木”,更不能“程序员相轻”,无意义地贬低某种技术。既然你有空余时间,为什么不尝试了解一下呢?

 

关于翻译

老生常谈的问题了,具体的就不说了,总归挺累的……

好在最近花了血本找到了一个“新朋友”——TRADOS,这是一个计算机辅助翻译(CAT)软件,业界数一数二的,能够跟Word集成使用。它会自动随着你的翻译把一些常见的模式/字词/专业词汇总结分析出来并保存起来,然后再次出现的时候就不用你写了,感觉好像有了Visual Studio的智能感知功能一样,非常的爽!“培训”好了之后,据说能够让翻译效率提高一倍多!不过经过我这两天的使用,也只能提高30%左右吧,考虑到还没有“训练”好,还是可以接受的,花了这么多钱也挺值得!现在我就期待提高一倍的时候快点到来了……

关于TRADOS,还是到它的网站看看吧:http://www.trados.com/

 

《Windows Vista for Developers》系列文章列表&摘要

再列出来一下吧,朋友们可以随便看看,起码——图片都挺漂亮的。

介绍:《Windows Vista for Developers》系列介绍 (原文:Windows Vista for Developers – A New Series

摘要: 经作者Kenny Kerr授权,我将翻译其《Windows Vista for Developers》系列文章并发表在我的Blog上。本来去年11月就取得了授权,无奈没有足够的时间,一直拖到现在才开始……加上本文,本系列的八篇文章深入浅出、极其细致地介绍了Windows Vista提供的新的原生API,堪称目前最权威的Windows Vista开发宝典。若你正希望学习相关知识,那么一定不要错过。

第一部分:Aero向导(原文:Aero Wizards

摘要: Windows Vista的Aero向导代表了由Windows 95系列操作系统最先引入的向导界面的最高发展水平。它给用户所常见的向导界面带来了一丝新意,能够更好地抓住用户的视线。在《Windows Vista for Developers》系列的第一部分中,我将演示如何用最少的代码将一个传统的向导更新为最新的Aero界面。 

第二部分:深入分析任务对话框(原文:Task Dialogs in Depth

摘要: 正如Aero向导比传统的向导更加友好一样,替代原有消息窗口的任务对话框(task dialog)也能够带来更好的用户体验。与消息窗口相比,任务对话框提供了很多新的功能,并大大增强了自定义能力。当然,随着这些功能上的增强,复杂性也有所提高。在《Windows Vista for Developers》系列的第二部分中,我将用原生C++演示如何有效地使用任务对话框API创建各种各样的对话框。如果你没有耐心,那么请直接跳到本文的最后找到下载链接,这个链接包含有一个完整的、用C++封装好的任务对话框API的源代码。

第三部分:桌面窗口管理器(原文:The Desktop Window Manager

摘要: 《Windows Vista for Developers》系列的第三部分中,我将介绍桌面窗口管理器(Desktop Window Manager,DWM)相关的API。DWM负责组合桌面上的各个窗体,DWM API则允许开发者设置某个窗体在于其它窗体组合/重叠时的显示效果。文中你会看到,DWM不仅仅能够用来实现“玻璃”特效。本文还将介绍Windows Vista从Windows 2000中继承下来的现有的透明功能是如何与最新的DWM功能集成使用,并作为其有力补充的。

 

第三部分补充:控件和桌面窗口管理器(原文:Controls and the Desktop Window Manager

摘要: 目前为止,我所听到的最常见的问题就是如何在启用玻璃效果时也能正确地呈现出控件。回忆一下,我写DMW文章的时候Windows Vista还没有RTM。在这些较早版本的Vista中,我们可以使用那个透明像素的hack来轻松地在玻璃效果上绘出需要的控件。在那篇文章中我也演示了这个hack的实际应用。不幸的是,当微软公司正式发布Vista时,这个hack已经没用了,只留下了满腹狐疑的开发者……应该怎么办呢?

 

 

第四部分:用户帐号控制(原文:User Account Control

摘要: 自从Windows 2000以来,Windows开发者一直试图为用户创造一个安全稳妥的工作环境。Windows 2000引入了一种名为“受限访问令牌(Restricted Token)”的技术,能够有效地限制应用程序的许可和权限。Windows XP则在安全方面更进一步,不过对于普通用户来讲,这种安全控制却并不是那么的深入人心……直到现在为止还是如此。不管你最初反对的理由是什么,现在用户帐号控制(User Account Control,UAC)就摆在你的面前,其实它并不像批评中所说的那样一无是处。作为开发者的我们有责任掌握这项技术,进而让我们所开发的Vista应用程序不会总是弹出那些“讨厌”的提示窗口。
《Windows Vista for Developers》系列文章的第四部分中,我们将从实际出发探索一下UAC的功能,特别是如何以编程方式使用这些特性。 

第五部分:Windows核心服务器入门(原文:Getting Started With Server Core

摘要: Windows Server Core是即将发布的下个版本Windows Server中的一个特殊的版本(当然,很多代码都是与Windows Vista共享的),为了减少维护所需要的工作量,Server Core只专注于实现一种服务,例如DNS解析服务器或文件服务器等,而其他的诸如Web浏览器、计算器等鸡肋程序统统都不包含在内——这些程序除了增加维护成本之外,看不出还有什么别的用处。
《Windows Vista for Developers》系列的第五部分中,我们将接触一下Windows Server Core。与本系列中的其他文章不同的是,本文中的示例代码较少,而主要是介绍这个新操作系统的功能。在本系列的后续文章中,我将详细讨论一些 Windows Vista以及Windows Server所提供的特性。最近我也注意到了一些关于这个新平台的健壮性的争论,所以在本文中我也会对此给出一些自己的观点,争取尽量站得高一些并给出点总体的介绍。

第六部分:新的文件对话框(原文:The New File Dialogs

摘要: 正如Aero向导比传统的向导更加友好,任务对话框比老式的消息框更加友好一样,Windows Vista中最新的文件对话框也给用户带来了全新的体验,代替了那有些年头的GetOpenFileNameGetSaveFileName 函数。最新的文件对话框不但与Windows Vista的外观保持一致,而且也提供了全新的COM接口,简化了使用的方式并为今后的扩展留下了充分的空间。
《Windows Vista for Developers》系列的第六篇中,我们就来看看这些最新的、通过IFileDialog 相关接口提供的文件对话框API。本文将首先查看一下相关的各种接口,然后使用一个C++类模板简化其使用方式。在进入代码之前,我们还是先来看看这个新的文件对话框能给用户带来什么改变吧…… 

posted on 2007-03-24 00:02 Dflying Chen 阅读(4908) 评论(53)  编辑 收藏 所属分类: 我的著作&写作生活程序、人生、感悟Windows Vista开发

评论:
#1楼  2007-03-23 23:53 | Cat Chen      
.NET 2.0其实有些地方比较buggy,这包括WinForm。在开发WinForm时,有一些问题你会发现比较难绕过去,或者看着C++能做的事情用C#却做不了(特别是用GDI+时),我觉得很郁闷。

WinForm其实和WebForm一样,希望开发者专注于业务逻辑,然而它自身的buggy却给开发的灵活性带来了问题。
  回复  引用  查看    
#2楼 [楼主] 2007-03-23 23:56 | Dflying Chen      
@Cat Chen
这都是没对底层封装好啊,所以,本来原生API能够完成的事情,干嘛还要用.net写啊……
  回复  引用  查看    
#3楼  2007-03-24 00:05 | aspnetx      
大家以后有时间和精力肯定都会来关注一下的
而你为大家提供的,都是大家在今后学习的参考
所以说一段时间内没有人关注是很正常的
但以后会有更多的人来关注这方面
所以还是期待你能出更多优秀的文章给大家
  回复  引用  查看    
#4楼  2007-03-24 00:08 | 航天奇侠      
不敢苟同, 我想之所以少人关注,是vista还是很少人用,而且尤其是应用程序,对广泛的平台特性更是看中,你不能让你的应用程序只能用在不到10%的vista上吧。 所以至少要一年后才开始多人研究这个。

现在研究的人一般是将重点放在vista特有的功能上,比如那个右边的栏上的小程序,还有xaml之类的东西上。

vista 是默认支持.net的, 所以再拿运行库来说事,就有点不合时宜了。

  回复  引用  查看    
#5楼 [楼主] 2007-03-24 00:18 | Dflying Chen      
@航天奇侠
我始终觉得,开发者应该先行用户一步,如果等大多数用户已经开始用了再学习如何开发,那么就晚了。Atlas还在CTP的时候也没有多少人用,但为什么关注学习的人那么多呢?所以,目前Vista的用户不多,这不能成为开发人员不学习Vista的理由。Vista毫无疑问的是下一代的Windows平台,这一点比Atlas当初的情况明朗多了。
我的意思是.net winform需要framework的支持,所以不适合开发WinForm程序,导致Winform在博客园中不是很流行,进而说明文章不受关注的原因。这与vista是否支持.net没有关系。

感谢您的关注!
  回复  引用  查看    
#6楼 [楼主] 2007-03-24 00:18 | Dflying Chen      
@aspnetx
谢谢鼓励,继续写了:)
  回复  引用  查看    
#7楼  2007-03-24 00:55 | kw2007 [未注册用户]
WinForm vs WebForm = Rich vs Reach

If customer chooses best user experience over cross-platform (read: unix) deployment, I’ll go for WinForm. But bottom line is, my application should be able to run on different versions of Windows. Choosing C++ or C# has nothing to do with ‘ugly’ or ‘beautiful’, it’s all about cost. Using C++ and Native API and sticking with one version of Windows? No thanks. Unless we are talking about something other than business applications.
  回复  引用    
#8楼  2007-03-24 08:04 | Tony Qu      
Trados是很灵的,做业余翻译的朋友一定要用用,不过目前它仅支持Word 2003
  回复  引用  查看    
#9楼  2007-03-24 08:55 | JesseZhao      
Trados真的好贵哦
895$,比较不敢想啊
买个笔记本电脑了
  回复  引用  查看    
#10楼  2007-03-24 08:56 | solog      
M$说以后会淡出WIN32 API.现在WINFORM很多东西用C#调用API的,还有些底层的东西实在太难用C#实现,但这方法菜菜感觉有些不雅还麻烦的说.倒是希望.NET把所有的API全封装算了.
这样子的话.VISTA以后底层的开发还是离不开WIN API.用.NET能做到底层吗?菜菜最近正看<WINDOWS程序设计>.很有些困惑,如果以后真的像M$那样说,一步一步淡出,直至淘汰,我还学它干吗.
希望前辈们说点.聆听ING...
  回复  引用  查看    
#11楼  2007-03-24 09:36 | zjh111 [未注册用户]
winform如此强大的功能是Aspnet无法比拟的,如果CAD,图像处理,....不可能让客户在局域网中也用功能不强大也较慢的Aspnet吧?
这园子里关于Winform的太少了,不如设一个Winform专区,我支持楼主
跟着微软的确很累,用了.Net,你还要学会操作底层Api,还不如直接用以前的Delphi,vb开发算了....
...

  回复  引用    
#12楼  2007-03-24 09:41 | jillzhang      
老兄的文章总是有些前瞻性的
  回复  引用  查看    
#13楼  2007-03-24 10:30 | 哈密瓜牌牛奶      
我来凑热闹了
  回复  引用  查看    
#14楼  2007-03-24 10:36 | Cat Chen      
@Dflying Chen
可惜我对C++调用API都不熟啊,没有很系统的了解过Windows,所以API中那些参数类型是什么意思的我都不理解,只是sample是怎么样用的我就怎么样用。
  回复  引用  查看    
#15楼 [楼主] 2007-03-24 11:49 | Dflying Chen      
@kw2007
actually we are talking about something other than business applications :)
  回复  引用  查看    
#16楼 [楼主] 2007-03-24 11:50 | Dflying Chen      
@Tony Qu
那专业翻译的用什么啊?请指点一下,谢谢
  回复  引用  查看    
#17楼 [楼主] 2007-03-24 11:50 | Dflying Chen      
@JesseZhao
磨刀不误砍柴工阿,呵呵
  回复  引用  查看    
#18楼 [楼主] 2007-03-24 11:51 | Dflying Chen      
@solog
淘汰还说不上吧,即使淘汰也要一段时间的,呵呵
  回复  引用  查看    
#19楼 [楼主] 2007-03-24 11:52 | Dflying Chen      
@zjh111
哈哈,是啊,我也觉得VB什么的更适合桌面程序
  回复  引用  查看    
#20楼 [楼主] 2007-03-24 11:52 | Dflying Chen      
@jillzhang
@哈密瓜牌牛奶
谢谢支持
  回复  引用  查看    
#21楼 [楼主] 2007-03-24 11:52 | Dflying Chen      
@Cat Chen
呵呵,有空的时候看看吧,没有坏处
  回复  引用  查看    
#22楼  2007-03-24 12:00 | Clark Zheng      
问题是我现在都没装上Vista呀。。。
没钱买正版,盗版又都是假的!
  回复  引用  查看    
#23楼  2007-03-24 12:36 | kw2007 [未注册用户]
@Dflying Chen
Oh, we are talking about something other than business app? With task dialog? And New File Dialog?

  回复  引用    
#24楼  2007-03-24 14:13 | 牧野      
我公司的C/S架构的Client都是在WinForm呀,只是现在工作上的事还忙不过来,哪有时间来研究Vista呢?何况以前买的PC和Laptop都装不上Vista,新的Laptop还在请购当中,到时再来拜读博主好文.
  回复  引用  查看    
#25楼  2007-03-24 14:56 | Sheva      
Windows Vista SDK里面有例子展示怎么在托管代码里面使用Vista的这些新功能:
Your Installation Driver:\Program Files\Microsoft SDKs\Windows\v6.0\Samples\CrossTechnologySamples\VistaBridge

Sheva
  回复  引用  查看    
#26楼  2007-03-24 15:02 | Sheva      
@kw2007
Win32 APIs are built on top of Windows System kernel APIs, those APIs are consistent across different versions of Windows. But there are some APIs which are specific to a particular version of Windows, such as DWM related APIs are only available on Windows Vista, but the common denominator of those APIs are all callable on different versions of Windows.

Sheva
  回复  引用  查看    
#27楼  2007-03-24 15:10 | Cat Chen      
@Dflying Chen
从哪开始看好?
  回复  引用  查看    
#28楼  2007-03-24 16:36 | Jeffrey Zhao      
有了Vista,完全没有运行库方面的问题了阿。而且,我觉得使用OOP的方式开发WinForm有时候感觉这简直是天生的支持啊。有了非托管代码,的确还是需要有Managed的封装,可以大大提高开发效率。这不光是使用Managed Code进行封装的问题,而且也涉及到框架使用方式。《Framework Design Guildlines》也提到,这是.NET Framework的BCL开发时的一个准则。使用托管的封装好的面向对象的方式进行开发,开发效率又飞速提高的,并非“既然能用API直接作,为什么还要.NET封装”的问题。
所以我感觉没有人关注,主要是托管环境不足,还有Vista不够普及。
  回复  引用  查看    
#29楼  2007-03-24 16:37 | Jeffrey Zhao      
@solog
API出现的顺序总是托管代码在后的,呵呵。
  回复  引用  查看    
#30楼  2007-03-24 18:02 | neuhawk      
winform确实不错,很多系统用web无法实现的.我们逐步把输入的用winform,查询统计用web.
不知道wpf/e是否能把2者统一.
wpf是暂时不能用了,因为要求太苛刻~
  回复  引用  查看    
#31楼 [楼主] 2007-03-24 21:13 | Dflying Chen      
@kw2007
i do not think that biz application or biz user will care the ui changes of File Dialog that much.
  回复  引用  查看    
#32楼 [楼主] 2007-03-24 21:14 | Dflying Chen      
@牧野
谢谢支持
  回复  引用  查看    
#33楼 [楼主] 2007-03-24 21:14 | Dflying Chen      
@Sheva
哈,我还没注意到阿,看看去:)
  回复  引用  查看    
#34楼 [楼主] 2007-03-24 21:16 | Dflying Chen      
@Cat Chen
有很多Windows API的书,随便一本都不错
  回复  引用  查看    
#35楼 [楼主] 2007-03-24 21:17 | Dflying Chen      
@Jeffrey Zhao
OOP封装API不错,不过相对于VB或delphi,managed封装就没啥竞争力了。
  回复  引用  查看    
#36楼 [楼主] 2007-03-24 21:18 | Dflying Chen      
@neuhawk
wpf/e想真正可以比较实用,估计还要一段时间吧
  回复  引用  查看    
#37楼 [楼主] 2007-03-24 21:18 | Dflying Chen      
@All
感谢各位的关注与讨论!
  回复  引用  查看    
#38楼  2007-03-24 22:06 | kw2007 [未注册用户]
@Dflying Chen
- 'i do not think that biz application or biz user will care the ui changes of File Dialog that much.'
That's exactly my point. That answers your '为什么《Windows Vista for Developers》系列没人关注'.

- 'OOP封装API不错,不过相对于VB或delphi,managed封装就没啥竞争力了。'
What??????!!!!!

Totally agree w/ Jeffrey Zhao's post.


  回复  引用    
#39楼 [楼主] 2007-03-24 23:46 | Dflying Chen      
@kw2007
哈哈,谢谢你指点阿
我还没到那么高的水平,不敢妄加评论什么
  回复  引用  查看    
#40楼  2007-03-24 23:55 | ColdDog      
我纯粹凑热闹来了...
  回复  引用  查看    
#41楼  2007-03-25 10:08 | xxrl [未注册用户]
很多朋友不愿意看到“丑陋”的C/C++,而喜欢“优雅”的.NET语言
------> 你不会写C/C++,就别说丑陋,引号也不好吧?
  回复  引用    
#42楼  2007-03-26 11:01 | 妖居      
这个系列的文章我已经注意到了,但是目前还没有开始看。
原因很简单,现在Vista刚刚出现,真正要在Vista下面开发,或者必须要在Vista下面开发的软件还不是很多,而且自从年初开始接触一些WFP之类的Vista程序的时候,发现现在还是有点混乱,甚至于MS自己的一些Sample中都有前后矛盾的事情出现,很多代码都不能很好的运行。(也许是那时候大部分文章还不是Release的SDK吧)。所以现在还是先放下,等Vista普及一段时间,代码都稳定下来了再学习。不过博主的文章已经收藏好了。
  回复  引用  查看    
#43楼 [楼主] 2007-03-26 14:27 | Dflying Chen      
@妖居
谢谢支持!
  回复  引用  查看    
#44楼  2007-03-26 22:11 | search-article [未注册用户]
还没用上vista
  回复  引用    
#45楼 [楼主] 2007-03-27 13:51 | Dflying Chen      
@search-article
是广告么?
  回复  引用  查看    
#46楼  2007-03-28 16:48 | solog      
@Jeffrey Zhao
以后也这样么。非托管的还是用C/C++开发?
  回复  引用  查看    
#47楼 [楼主] 2007-03-28 23:37 | Dflying Chen      
@solog
可以用.net开发
  回复  引用  查看    
#48楼  2007-03-29 09:34 | Anthan      
我们公司默认的客户端平台还是2000
那帮德国人还在用98呢,无奈了都...
vista渴望不可及啊!
  回复  引用  查看    
#49楼 [楼主] 2007-03-29 09:55 | Dflying Chen      
@Anthan
呵呵,这些东西都是为了将来打基础阿:)
  回复  引用  查看    
#50楼  2007-04-17 00:11 | 董 [未注册用户]
个人对WinForm开发有一定的偏好,现在Ajax这些东西这么热...大家都一隆而上...感觉大家都比较浮燥...非常感谢您的努力!我正需要这方面的资料...
  回复  引用    
#51楼 [楼主] 2007-04-17 00:20 | Dflying Chen      
@董
谢谢支持
  回复  引用  查看    
#52楼  2008-04-12 15:07 | *** [未注册用户]
我太想日一下女人

  回复  引用    
#53楼  2008-04-12 15:08 | *** [未注册用户]
我太想日一下女人
  回复  引用    

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接: