再获 Microsoft MVP

今天突然发现园子里多了几篇MVP获奖感言的文章,所以也来凑个热闹。连续三次获得MVP称号是个什么样的感觉呢?很难描述,里面夹杂了激动和兴奋,又带上几分高处不胜寒,除了真心地说声谢谢之外,也不知道说什么好了,还是多些点文章比较实际,嘿嘿~

很多人有这么一种感觉:我的文章发布的很慢。其实,对于我来说,一篇发得出手的文章,从构思到最终发布,包含写Demo、打草稿、排版和审校等等,平均需要1~2周时间。我不知道用这么长的时间写一篇文章对大家来说意味着什么,只是如果东西还不能让我自己感到满意的话,我就不愿意拿出来。而在写文章的时候,我也希望尽可能写得详细一点,希望文章不仅仅停留在看完就算的程度,希望为大家打开一个思考的通道,希望把研究技术时活跃而发散的思维过程呈现给大家,希望把技术留给我的那份激动传递给大家……

加入博客园已经有三个多年头了,一路来也目睹博客园不断成长和壮大,而这里面dudu的坚持是功不可没的,也是这份坚持让博客园熬过一个又一个的难关。现在博客园正向团队经营模式发展,我也衷心祝愿博客园越来越好。

p.s. 最近感冒流行,我已中招了,大家要小心身体啊~
posted @ 2008-04-03 13:29 Allen Lee 阅读(2988) 评论(64)  编辑 收藏 所属分类: Misc

  回复  引用  查看    
#1楼 2008-04-03 13:32 | 韩现龙      
gxgx!
  回复  引用    
#2楼 2008-04-03 13:37 | xiao_p(匿名) [未注册用户]
lz是偶在博客园的第一个偶像,呵呵!
  回复  引用  查看    
#3楼 2008-04-03 13:38 | 任力      
恭喜恭喜!

  回复  引用  查看    
#4楼 2008-04-03 13:49 | 生鱼片      
恭喜恭喜!

  回复  引用  查看    
#5楼 2008-04-03 13:54 | sban      
恭喜恭喜!
  回复  引用    
#6楼 2008-04-03 14:13 | 咯 [未注册用户]
现在的mvp也就是
微软的推广员而已.
  回复  引用  查看    
#7楼 2008-04-03 14:22 | 灵动生活      
恭喜 恭喜
  回复  引用    
#8楼 2008-04-03 14:25 | 5254341 [未注册用户]
--引用--------------------------------------------------
韩现龙: gxgx!
--------------------------------------------------------
gxgx=冠希冠希
gxgx=恭喜恭喜
  回复  引用  查看    
#9楼 2008-04-03 14:31 | cumt吴波      
原来我前阵看的认为不错的书翻译是lz,呵呵
  回复  引用    
#10楼 2008-04-03 14:44 | kisskiki [未注册用户]
--引用--------------------------------------------------
韩现龙: gxgx!
--------------------------------------------------------
gxgx=冠希冠希
gxgx=恭喜恭喜
--------------------------------------------------------
gxgx=搞笑搞笑
  回复  引用  查看    
#11楼 2008-04-03 14:48 | Anytao      
呵呵,恭喜恭喜,
平均需要1~2周时间
体会尤深:-)
  回复  引用    
#12楼 2008-04-03 15:04 | 且行且快活 [未注册用户]
恭喜恭喜...
  回复  引用    
#13楼 2008-04-03 16:05 | zsensi [未注册用户]
我想问下,什么是MVP?嘿嘿,
我知道它的中文是“微软最有价值的专家”
我想是一个称号吧?
怎样才能得到的?
  回复  引用  查看    
#14楼 2008-04-03 16:18 | 怀沙      
恭喜啊,Allen. 好久不见了...
  回复  引用  查看    
#15楼 2008-04-03 17:03 | 杨正祎(阿一)      
恭喜,恭喜。
  回复  引用  查看    
#16楼 [楼主]2008-04-03 18:22 | Allen Lee      
@韩现龙
@xiao_p(匿名)
@任力
@生鱼片
@sban
@灵动生活
@Anytao
@且行且快活
@杨正祎(阿一)
谢谢大家的支持!

@怀沙
谢谢,有机会再出来玩啊~

@咯
你确实可以这样子想,不过如果深入思考的话,你会发觉这是微软和MVP共同创造的一个双赢局面,微软的技术和产品得到推广,而MVP在感兴趣的领域上的努力和贡献也得到肯定和支持。

@zsensi
你可以在这里找到关于MVP的详细介绍:http://mvp.support.microsoft.com/?LN=zh-cn&x=10&y=17

@cumt吴波
谢谢你的赏识!

@5254341
@kisskiki
看来你们还是意犹未尽啊~
  回复  引用    
#17楼 2008-04-03 20:03 | sgase [未注册用户]
其实我想说,让你多获几个MVP,你又会变成怎样呢?你只是微软的技术一个过客,由于有所谓MVP的存在,学习微软东东的人员,就要不断地去学习所谓的新东东.

同时所谓MVP出的也是一样.
  回复  引用  查看    
#18楼 2008-04-03 20:31 | Anders Cui      
偶像级人物!
  回复  引用  查看    
#19楼 2008-04-03 20:38 | THIN      
up
什么时候聚聚餐

  回复  引用    
#20楼 2008-04-03 21:26 | 小灰 [未注册用户]
向你学习啊
  回复  引用  查看    
#21楼 2008-04-03 21:54 | 侯垒      
恭喜 恭喜.

  回复  引用  查看    
#22楼 [楼主]2008-04-03 22:31 | Allen Lee      
@sgase
从心理学的角度来看,会说出你这类话的人,通常的原因可能是:吃不到的葡萄是酸的,一种典型的对自己得不到想要的东西时所产生的遗憾启动防卫机制;已经看破这类事情,曾经也追逐这类事情,经历过这类事情,到头来发现一切并非想象中的那样,然而付出的已经付出了,于是只留下一声叹息。我并不是说你就非得是其中一种原因,或许你有其他更加特别的原因。

从商业的角度来看,MVP只不过是微软实施产品战略的一个产物,它造就了一个势,让MVP们竞相学习新的东西并推而广之。而从个人的角度来看,你也无法否认,这个产物却实实在在地为MVP们打开了一扇资源大门,提供了一种与众不同的自我提升的可能。

没有人用枪指着你的头,强迫你要去学习新的东西,然而,当你在学习新的东西时,你可以感受到身体深处传过来的感觉,或许是兴奋,或许是无奈,这个可骗不了自己。我并不是对每个新的东西都感兴趣,但在研究我感兴趣的新东西时,我是乐在其中的,我也非常乐意和别人分享个中的乐趣。

最后一句,同一件事,如果做出不同的效果,那么很可能就是心态和感觉在作用了,找点乐趣吧,或许就在你身边!
  回复  引用  查看    
#23楼 [楼主]2008-04-03 22:33 | Allen Lee      
@Anders Cui
@小灰
过奖了~

@侯垒
谢谢你的支持!
  回复  引用  查看    
#24楼 [楼主]2008-04-03 22:34 | Allen Lee      
@THIN
找个周末啊,MSN上没见你?
  回复  引用  查看    
#25楼 2008-04-03 22:49 | 小新0574      
恭喜室友再次当选,呵呵
  回复  引用  查看    
#26楼 2008-04-04 01:42 | 木野狐(Neil Chen)      
由衷祝贺!
顺便问一下,如果要申请连任,需要在到期之前多久申请才可以?
  回复  引用  查看    
#27楼 [楼主]2008-04-04 08:13 | Allen Lee      
@小新0574
你在MS也混得不错嘛,还成了资产阶级~

@木野狐(Neil Chen)
我是一月份申请连任的,据说整个评审的过程需时2个多月,如果你的MVP快要到期,你应该会收到微软的信件提醒你申请连任的。
  回复  引用  查看    
#28楼 2008-04-04 09:26 | 李战      
看看,又变味了不是。 唉,唉, 唉,我讨厌网络评论
  回复  引用  查看    
#29楼 [楼主]2008-04-04 09:42 | Allen Lee      
@李战
股票市场上有投资也有投机,但你不能说谁是谁变味后的产物。一个观点发表出来,自然会有反面的论调,这些论调可能会让你觉得很不畅快,但你也不能否认这是对大众进行澄清的一个绝好机会。问题的存在,既意味着麻烦的到来,也意味着提升的可能,区别只是你看待它的角度而已。
  回复  引用  查看    
#31楼 [楼主]2008-04-04 15:15 | Allen Lee      
@李战
用设计模式的MVP解释微软的MVP,我还是头一次看到,有创意!变味的葡萄还是不要吃好了,可能会拉肚子的~
  回复  引用  查看    
#32楼 2008-04-04 18:18 | new 维生素C.net()      
我也中招了...
  回复  引用  查看    
#33楼 [楼主]2008-04-04 18:44 | Allen Lee      
@new 维生素C.net()
那就要好好休息了,多点喝水啊~
  回复  引用  查看    
#34楼 2008-04-04 21:33 | SZW      
恭喜楼主啊^_^
  回复  引用  查看    
#35楼 2008-04-05 00:35 | XO      
恭喜恭喜
希望有一天自己也能站到这种高度
lz从开始学习到现在
用了多长时间啊?
有没有什么经历来分享一下啊
  回复  引用  查看    
#36楼 [楼主]2008-04-05 08:44 | Allen Lee      
@SZW
谢谢!
  回复  引用  查看    
#37楼 [楼主]2008-04-05 09:38 | Allen Lee      
@XO
谢谢!我最初接触.NET是02年,那时候.NET 1.0和Visual Studio .NET 2002才刚发布不久,而现在已经在用.NET 3.5和Visual Studio 2008了,每次更新都带给我不少惊喜,呵呵~
  回复  引用  查看    
#38楼 2008-04-08 13:45 | 阿不      
崇拜allen lee,从读你的OO的文章开始慢慢成长,现在也成为了MVPs中的一员。非常的荣幸,同时也是一种激励。希望以后有朝一日能够像你一样,保持长久的激情。
  回复  引用  查看    
#39楼 [楼主]2008-04-08 13:53 | Allen Lee      
@阿不
共勉!
  回复  引用    
#40楼 2008-04-26 17:52 | Sunix [未注册用户]
敢问一下楼主,我现在在做一个签章项目(WORD2007上VSTO开发的),在对WORD进行HASH获得摘要后,请问怎么把这个摘要保存进WORD文档去(要不可见的),有没有相关的API啊?能不能给个思路,谢了先
  回复  引用  查看    
#41楼 [楼主]2008-04-27 21:06 | Allen Lee      
@Sunix
这个问题未曾想过,或许我们俩兵分两路,各自找找有什么办法。

你说对Word进行Hash是什么意思?
  回复  引用    
#42楼 2008-04-28 10:53 | Sunix [未注册用户]
首先感谢下楼主的回复啊。
你说对Word进行Hash是什么意思?就是对WORD文档内容进行HASH运算,获得一个摘要(文件摘要),然后我想把这个摘要保存进WORD文档里面去,以便日后进行签名验证(用我的一个私钥对前面获得的摘要进行加密),现在我碰到的问题是不知道怎么把这个加密后的摘要(也可以叫签名)保存进WORD文档,我只找到了一个相关的API(ActiveDocument.Signatures).
再次感谢楼主的热情
  回复  引用  查看    
#43楼 [楼主]2008-04-28 11:09 | Allen Lee      
@Sunix
听起来有点像在.NET里对程序集进行强名称签名,我对在Word里做类似的操作没有了解,不过我们不妨都去找找,然后回来再碰个头分享一下。:)
  回复  引用    
#44楼 2008-04-28 15:35 | Sunix [未注册用户]
http://msdn2.microsoft.com/en-us/library/aa140281(office.10).aspx

http://bytes.com/forum/thread385143.html

这是我找到的一篇相关文章,但是好像不是我想要的,因为他调用的是WORD的签名功能,那些数据什么的都是用户从应用角度输入的。这里我要实现的是自己写的签名(比如用自己的密钥跟自己的证书进行签名。我不知道这些数据应该怎么保存进WORD文档里面去,因为我要做是的电子签章,相当于模拟现实签章一样的)
  回复  引用  查看    
#45楼 [楼主]2008-04-28 19:50 | Allen Lee      
@Sunix
且慢!我好像感觉到我们的理解有分歧。你是说对Word文档里面的可见内容而不是Word文档本身进行Hash,然后把运算结果插入文档某个对用户来说不可见的地方,是这样吗?如果是这样,那我就理解错了!
  回复  引用    
#46楼 2008-04-29 09:47 | Sunix [未注册用户]
嗯,对文档可见内容与文档本身进行HASH两个没什么本质的区别吧?(我是说效果是一样的。)我是要把运算结果放入不可见的地方。我最近又仔细看了下,好像涉及到OFFICE OPEN XML部分的,我正在看呢
  回复  引用  查看    
#47楼 [楼主]2008-04-29 10:48 | Allen Lee      
@Sunix
表面看起来是一样的,因为从用户的角度来看实现了相同的效果,更确切的说是目的,然而他们有着一个根本的区别。如果要对文档本身进行Hash,完毕之后你会发现计算结果无从插入,因为一旦插入就会改变文档本身,从而导致Hash结果改变,想象一下你会发现一个“死循环”。但对可见内容进行Hash结果就不同了,因为此时你忽略了文档隐藏的内容,将来文档里的隐藏内容改变了也不会导致Hash结果的改变。

如果你只想对可见内容进行Hash,并且有了一个结果,你可以把这个结果储存到自定义文档属性(Custom Document Property)里,这个功能对Word 2003和Word 2007都适用。下面是示例代码:

Office.DocumentProperties properties =
(Office.DocumentProperties)Globals.ThisAddIn.Application.ActiveDocument.CustomDocumentProperties;
properties.Add(
"HashResult",
false,
Office.MsoDocProperties.msoPropertyTypeString,
hashResult,
null
);

值得注意的是,自定义文档属性的值是有长度限制的,不能超过256个字节。如果超过了,会自动截断超出部分。如果出现这种情况,你就可能要转用Custom XML来储存你的Hash结果了,这个方法适用于Word 2007。
  回复  引用    
#48楼 2008-04-29 12:56 | Sunix [未注册用户]
嗯,感谢楼主的热情,这个方法我本来也想过,但是后来可能会写入多次HASH值,这样就很不好实现了。所以我最终还是决定从OPEN OFFICE XML规范来实现。再次感谢下楼主
  回复  引用  查看    
#49楼 [楼主]2008-04-29 13:13 | Allen Lee      
@Sunix
如果你要多次写入Hash的值,即修改自定义属性的值,你可以声明一个变量获取Add方法的返回值,在需要的时候修改Office.DocumentProperty的Value属性,末了记得把Document的Saved属性设为false,以便Word能够提醒用户保存,或者你自行调用Save方法保存一下。
  回复  引用    
#50楼 2008-04-29 17:11 | Sunix [未注册用户]
哦,谢谢楼主了啊。再问个问题啊。

我看了你写的那个探索WORD2007开发系列啊,我现在在自己的作业中加进了用RIBBON来加入插件。但是很明显的是我在其它的类中调用了Package.Open(filePath, FileMode.Open, FileAccess.ReadWrite);
其中filePath 是当前活动文档的全路径。在这里就出现错误的(*****.docx正被另一个进程所调用),因为很明显filePath文件正在被调用。不知道博主有没有什么办法可以指点一下啊。对这个WORD2007开发的相关机制不了解。
  回复  引用  查看    
#51楼 [楼主]2008-04-29 17:27 | Allen Lee      
@Sunix
这是因为当你运行VSTO解决方案时,Word是以独占方式打开文档的,这意味着OOXML的API无法“分一杯羹”,简而言之,你不能混合使用VSTO和OOXML。如果你要在文档里储存自定义数据,可以考虑Custom XML,下面是一些参考连接:

http://msdn2.microsoft.com/en-us/library/bb608612.aspx

http://msdn2.microsoft.com/en-us/office/bb510382.aspx
  回复  引用    
#52楼 2008-04-30 18:36 | Sunix [未注册用户]
@Allen Lee
感觉有点不舒服啊,因为我有程序中,要用到OFFICE2004中的XML文件。而对它最直接的方法就是调用Package.Open,但是这个调用却又出错。楼主知道有没有什么好的方法可以读取里面的XML文件吗?
我用了你的建议,采用了Custom XML,这个在文档下面生成了几个item**.xml 有没有什么好的方法可以直接读取这些xml文档啊?(CustomXMLParts.SelectByID(id)这个是可以调用到) 但是我把这个WORD关闭了的话,再重新打开,那么有可能这个ID就不知道怎么获取了。
感觉微软的东西太庞大了,不好掌握
  回复  引用  查看    
#53楼 [楼主]2008-04-30 19:43 | Allen Lee      
@Sunix
你可以把这个ID储存在自定义文档属性里,但与其这样,不如把Hash的结果直接储存在自定义文档属性里,除非你的结果超出了自定义文档属性的长度限制。

VSTO主要用于客户端的Office开发,而OOXML则主要用于服务器端的Office开发,因为服务器上一般都不会安装Office的。Custom XML主要在和Content Control进行数据绑定时使用,至于用它来存放自定义数据则是一种变通用法。如果你把所有这些东西都混起来的话,当然就会“感觉微软的东西太庞大了”。
  回复  引用    
#54楼 2008-04-30 21:51 | Sunix [未注册用户]
@Allen Lee
哦。我就是把HASH结果转成BASE64保存在自定属性里的。但是我不知道怎么访问到这个item**.xml 。 我就是通过CustomXMLParts.SelectByID直接来访问我自己定义的CustomXMLPart。我没找到其它的接口可以访问item**.xml (system.io.package可以,但是这又涉及到VSTO以独占方式打开文档的)。
我现在想通过对文档的XML来进行直接操作(包括写摘要,证书,等等的。因为WORD2007最终所有的东西都是写成XML的,关系啊,部件啊。。。)

”不如把Hash的结果直接储存在自定义文档属性里,除非你的结果超出了自定义文档属性的长度限制“
-----这个长度有限制么?写到XML的值应该不会限制长度的吧?

VSTO主要用于客户端的Office开发,而OOXML则主要用于服务器端的Office开发,因为服务器上一般都不会安装Office的。Custom XML主要在和Content Control进行数据绑定时使用,至于用它来存放自定义数据则是一种变通用法。如果你把所有这些东西都混起来的话,当然就会“感觉微软的东西太庞大了”。
-------这句话真是一语惊醒梦中人。

我现在在想的是最好能够直接在VSTO中直接访问文档里面的XML文件(可以绕过独占方式的问题)还可以直接使用SIGXML来进行相关的操作啊。哦,对了,博主说的OOXML是指用system.io.package来做的吗?我老是把这个理解成那个标准了。

谢博主了
  回复  引用  查看    
#55楼 [楼主]2008-04-30 22:29 | Allen Lee      
@Sunix
写到XML里的值当然没有长度限制,但Word会把XML的值解析到对象的属性里,这样就会有长度限制了,我试过用VSTO的API在自定义文档属性里储存一个很长的路径,结果发现超出的部分被截断了,而剩余部分恰好256字节 :)

OOXML确实是哪个标准,而操作的API也确实是System.IO.Package,开始糊涂啦?我在上面说的OOXML是指Office 2007的XML格式规范和操作它的相关API : P

P.S. 你终于以“博主”称呼我了~~~
  回复  引用    
#56楼 2008-05-06 10:26 | Wangc [未注册用户]
咋说呢,从前我倒是觉得MVP是种不错的金字招牌,但是如微软认证一般,MVP越来越多,写几篇Excel的使用心得都能搞到这个MVP,确实如上所说,有微软推销员上岗证的错觉。从前也想搞个MVP玩玩,但是发现爱好太广泛了,微软的产品只是研究兴趣的一小部分(甚至微软的东西很大程度上不需要研究,只需要测试学习基本上就能上手,虽然是好的商业特性,但是就玩家而言少了很多乐趣),于是作罢。只要能对个人的学习沉潜有良性促进,MVP也是不错的选择。

在这个什么事情都能妖魔化,5岁小孩能“编程”的中国,难免楼上面那位大兄弟发牢骚,只要不拿这个MVP去招摇撞骗,以技术为兴趣继续钻研,就是好样的。
祝你一路走好。
  回复  引用    
#57楼 2008-05-07 19:23 | Sunix [未注册用户]
好久没来了。
再问个问题啊。VSTO没有办法获得OPEN OFFICE XML的部件及关系的么?我找了好久。因为我的东西最好是能通过直接对word2007下的各个xml部件操作。
可是System.IO.Packaging 和Microsoft.Office.DocumentFormat.OpenXml都不能在VSTO下用。不知博主知不知道有什么方法来做(比如我想获取/word/document.xml的文档,就能直接进行这个文档操作啊)
  回复  引用  查看    
#58楼 [楼主]2008-05-07 19:41 | Allen Lee      
@Sunix
据我所知是不能的,“部件”和“关系”是OOXML的概念,VSTO根本不懂他们是什么 :(

这里似乎成了Office开发的讨论区了,这样看来有必要在博客园社区开一个Office开发的小组了 :) 有兴趣加入哇?
  回复  引用    
#59楼 2008-05-08 17:37 | sunix [未注册用户]
哦.我也感觉很怪,找了很久了还是没找到什么solution,博主如果要开的话,可以的啊.刚好最近实验室涉及到了这一块
  回复  引用    
#60楼 2008-05-11 21:29 | Sunix [未注册用户]
据我所知是不能的,“部件”和“关系”是OOXML的概念,VSTO根本不懂他们是什么
---------------博主说的对啊,今天对看了张贴子
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2595831&SiteID=1

为什么我两个wordopenxml同时取出来不相等呢?
Globals.ThisAddIn.Application.ActiveDocument.Content.Select();
firstXml = Globals.ThisAddIn.Application.Selection.WordOpenXML;
secondXml = Globals.ThisAddIn.Application.Selection.WordOpenXML;
这两个firstXml 与secondXml不相等.我没对这个selection做过什么操作.同样的myRange.get_XML(false);两次也是不相同的.博主知道怎么回事么?
还有myRange.get_XML(true);会抛出异常,这里myRange是已初始化了的,看了msdn上一篇说的是unless the range of text covered by the bookmark contains XML mapping applied using Word's XML structure pane, get_XML(true) will throw an error.(http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=81243&SiteID=1)
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=81243&SiteID=1
  回复  引用  查看    
#61楼 [楼主]2008-05-12 10:14 | Allen Lee      
@Sunix
我不知道,WordOpenXML这个东西非常奇怪,每次获取都不同,即使你什么也不做,但如果把多次获取的值写到文件里,用WinDiff来比较却没有不同!
  回复  引用  查看    
#62楼 2008-07-08 13:09 | 王弈博      
呵,到哪都能碰见挖苦之人。

看了博主的文章,很欣赏博主做事认真的态度。
  回复  引用  查看    
#63楼 2008-07-16 00:23 | Yes!加菲猫      
我不知道用这么长的时间写一篇文章对大家来说意味着什么

-----------------------------------------------------

为了高质量的文章,我愿意等,就象等老赵,jillzhang的文章一样。。。。首页并不是博客园的全部。。。。况且我现在也不怎么喜欢看首页了
  回复  引用  查看    
#64楼 [楼主]2008-07-16 08:18 | Allen Lee      
@Yes!加菲猫
有你这份支持,我会一如既往地发布高质量文章的 ^_^

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


相关链接: