非常感谢大家热情支持博客堂源代码开发计划,我们仍然在招募人选。虽然大家从项目组主页上看到其项目人员已经将近十人了,但由于大家日常工作比较繁忙,所以还是希望更多的志愿者加入。
另外,各位已经加入的朋友,请到该http://www.codeplex.com/joycode的Forum(Who are you)中介绍一下自己的基本情况,让所有团队成员能够相互认识,了解一下大家的基本情况,以便未来更好的分派工作。
同时,我们现在已经公布了一些新的功能集,您可以在“http://www.codeplex.com/WorkItem/List.aspx?ProjectName=joycode”中查看到(这个服务器对于中文支持不好,大家将就着看一下吧),您可以对您喜欢的功能进行投票,以便催促我们的团队成员尽快开发相应的功能,当然,您也可以在http://www.codeplex.com/Project/ListThreads.aspx?ProjectName=joycode&ForumId=2460中提交您遇到的Bug,或者希望得到的新功能,请注意:该论坛不支持中文,请务必使用英文。
Let's go!
博客堂目前已经成功升级到ASP.NET 2.0,在未来我们还将增加一些.NET 3.0的特性支持,并且将会定期发布源代码版本以及安装版本给所有博客堂的朋友。同时也为了更好的开发博客堂源代码,使其更加高效、安全、稳定、丰富,我们现在向所有博客堂的堂主以及众读者招募志愿者,加入开发者系列。有意参加博客堂源代码开发的朋友,可以至http://www.codeplex.com上注册帐号,然后通过邮件(joycode # live.com,主题上注明:博客堂志愿者字样)将您的帐号告知我们,同时发出一份个人简介(博主们可以通过我的Windows Live Messenger告知)。
所有志愿者需要配置安装运行环境,环境要求如下:
- 操作系统:Windows XP+SP2、Windows Server 2003+SP1, Windows Vista(在VS2005 SP1发布前不推荐使用该系统进行开发);
- 数据库: Microsoft SQL Server 2000或者Microsoft SQL Server 2005或者Visual Studio自带的SQL Express 2005;
- 开发工具:Visual Studio 2005 Team Developer或者以上版本(需要安装Team Foundation Explorer,安装方式Mango会向大家介绍),如果申请主要从事数据库优化者,可以安装Visual Studio 2005 Team DBA版本,如申请设计人员,请安装Microsoft Expression Web试用版;
- 上网条件:家中有ADSL上网条件;
我们需要招募三类志愿人员,所需条件如下:
- 开发人员
- 了解.Text 0.95架构,曾经安装或者阅读或者改写过.Text 0.95代码(必须);
- 熟悉ASP.NET 2.0的各种新特性(必须);
- 熟悉ASP.NET Ajax Beta 2(或以上)的新特性;
- 设计人员
- 了解HTML以及CSS相关知识(必须);
- 可以使用Microsoft Expression Web版本进行网页开发设计;(必须,主要是为了使用TFC与服务器端相连)
- 熟悉XAML以及WPF相关知识(非必须,但有此技能将会增加您成功的机会);
- 熟悉.Text Skin开发设计或者ASP.NET 2.0页面设计;
- 数据库优化人员
- 了解Microsoft SQL Server 2000以及Microsoft SQL Server 2005(必须);
- 了解.Text 0.95数据库结构;
- 掌握丰富的数据库优化的技能;
另外,所有以上开发人员要求以下条件:
- 富有团队合作能力以及保密性;
- 拥有足够的时间进行夜间工作;
博客堂源代码开放项目主页设置在http://www.codeplex.com/joycode,欢迎大家参观。
闲来无事,在CSDN上闲逛了一下,看到孟岩、韩磊两位老兄所写的《这一天终于来了》以及《“这一天终于来了”》,还有孙辉先生发表的《WPF,一次洗牌...》。顿时感到这一天真的来了,随着无数传教士(Evangelist)在全球范围内的摇旗呐喊,大家逐渐从站在远观望而慢慢围拢,WPF从远观之物变为亵玩之物也。
孟夫子、韩老兄,将进酒,杯莫停! 与君歌一曲,请君为我侧耳听!

在韩磊老兄的文中提到孟岩曾经说过:“战术上成功,战略上失败——以后谁还肯为Windows做应用……”。但开心有不同意见,因为要想开发WPF,或者想运行WPF,机器上必须有.NET 3.0,而可以安装.NET 3.0的机器只有Windows XP(SP2+)、Windows Server 2003(SP1+)、Windows Vista以及Windows “Longhorn” Server。所以随着WPF应用的普及,这些操作系统也会逐渐普及。从而维护Windows的霸主地位。其实慢慢琢磨一下也可以看出来,微软的全套开发产品均是服务于Windows以及Office两大产品线的。大旗一竖,无数英雄豪杰聚集在其下。如果将Linux看作Windows桌面端的竞争对手,那么现在Linux平台上的应用缺少是一个无法逃避的事实。窃以为:IBM投资Eclipse实在是一个明智之举。
另外,韩磊也提到了另外一个感想,即Expression套件的直接竞争对手是Adobe,这有些短视了(韩磊莫怪)。当然,不可否认,很多受众,包括开心自己,在第一次看到Expression的演示时,都会有这种感觉。这与Adobe的产品线实在是太平衡了,简单就是短兵相接。但研究越久,越会发现,这种观点实在是有些太小看Bill Gates了。Bill Gates创建微软时曾经有一个梦想,要让每家每户的桌子上都有一台电脑,而且这台电脑上运行微软的软件。从1975年开始,整个微软就在为这个观念而奋斗。历史发展到21世纪,软件从当初注重性能(硬件的限制)、功能(大而全的软件)而逐步发展到更加注重用户体验。之所以出现这种趋势,是因为软件已经逐渐走下神坛,成为人们日常生活中所不可或缺的。而人们对日用品的选择标准就是:价廉物美。价廉促使SaaS产生,而物美导致软件厂商对于用户体验的重视。
正是在这种大势之下,微软才会推出WPF对整个软件生态链催熟。WPF的出现解决了三个问题:
- 更快速的开发更丰富的用户体验:使用WPF,可以在更加快速的时间内开发出来更加丰富的界面,满足用户的需求。所以我感觉孙辉先生学习WPF有些误入歧途,长此以往,会走火入魔的。如果仅仅是使用控件,建议您还是使用GDI+或者ASP.NET或者MFC等等就够了。
WPF之所以有那些控件,我个人认为主要是为了向下兼容。WPF的目标应该是消除控件,让您开发出来的软件根本看不出来控件的特征,软件世界再也不是由Button+Textbox组成的怪物了。请注意左图,此款使用WPF开发的应用程序,你还能看到哪部分是控件吗? - 消除用户界面差异:也请注意左图,这就是一款使用WPF开发的应用程序,而且它是以IE为宿主的。如果只是看这部分截图,你可以区分它是Windows Application还是Browser Applicaiton吗?历史在1995进入一个鸿沟,开发人员突然变成了两大阵营:B/S开发人员以及C/S开发。而现在到了应该弥补这个鸿沟的时候了。WPF正是背负着这个历史责任;
- 软件开发团队的协作问题:软件开发团队的日常协作是一个非常大的问题,除了需求变更以外,第二个影响开发进度的就应该是团队协作性了。在软件团队中,我们比较熟悉Developer、DBA、Tester、IT Pro、Architect等。Designer可能往往被我们忽视,但实际上,Designer的工作成果才是与客户距离最近的。而且Designer与Developer如何配合工作,是很多团队所头疼的,而WPF正可以解决此问题。这儿对孙辉先生再说一句:XAML并不是WPF的另外一个名字,它是使用声明性编程方式实现WPF的一种文件格式。
我最近疯狂迷上了一些美国科幻剧:《24》、《Lost》、《Prison Break》、《Heros》、《The 4400》,在里面经常会有一些使用电脑软件的镜头,而且那些软件界面真的越炫(Lost中那个只能输入4 8 15 16 23 42的不计入内),曾经记得Jack Bauer的那个PPC与电脑同步的镜头,让我感觉在Redmond看研究院的同事做Demo一般。或者随着WPF的出现,这种炫界面的应用程序会很快进入我们的日常生活当中了!
孟夫子,韩老兄,将进酒,杯莫停!!
利用这两天晚上的时间,将博客堂的代码进行了一下整理,已经从ASP.NET 1.1升级为ASP.NET 2.0。并且将会在近期发布所有ASP.NET 2.0的源代码,请大家持续关注。
这次升级主要解决了以下问题:
- 博客堂首页改造,除了使用一些简单的模板进行美化以外,还解决了Firefox兼容问题;
- 管理界面中的FreeTextbox与IE7不兼容的问题,现在大家可以使用IE7进入后台界面进行文章发布了;
- Windows Live Writer无法进行更新的问题,通过改造,目前可以使用Windows Live Writer对文章进行更新;
- 修正了评论中的验证码的问题,并且对评论字数有了限制;(Updated)
- 在“联系”页面增加了验证码,对于邮件内容也有限制,各位博主也可以在系统配置中留下真实邮件,供您的Fans与您联系了;(Updated)
- 在各页面中增加了“阅读”以及“评论”数量显示;(Updated)
非常感谢宝玉、Saucer在此次升级过程中,给开心所提供的指导!如果大家在使用过程当中,发现任何问题,或者有任何建议意见,请与我联系,非常感谢!
(建议大家在发布时还是尽量使用Windows Live Writer,以期达到更好的阅读效果)
非常不好意思,昨天怒气大增,发了一篇“NND”的文章,我一会儿就会将其删掉。而那个来自于“222.130.193.194”名称为“数据恢复”的Spammer,我已经通过倒推手段得到其座机“5880XXXX”以及手机号码“1367139XXXX”,并且向其怒斥了其行为,他告知并不是他发的,而是为他们做搜索引擎优化的相关公司发的,截止到9:51,此事已经得到解决。SPAM也不会再有。
但为了防范于未然,我们恳请各位博客堂读者共同维护博客堂的秩序,如果发现SPAM,请通过ad.joycode # gmail.com发送邮件举报,非常感谢!
谢谢各位长期以来对博客堂的厚爱!
博客堂现在诚邀请具有以下技能的高手入驻:
- WPF专业技能高手
- 熟悉WPF以及WPF/e,掌握其原理机制;
- 了解Flash以及Flex,在业界有一定的知名度;
- 熟练使用Expression等微软新设计工具;
- 对于网站设计有独到见解,审美观符合大众观点;
- Card Space高手
- 了解Card Spce原理,并且可以独立实施Card Space;
- 掌握对于业界各种加密认证机制;
- 项目管理高手
- 熟悉软件项目开发管理;
- 能够由浅入深向大家介绍项目开发的各种相关知识;
希望各位高手将您希望得到的帐号以及原博客地址发送到joycode # live.com,同时也欢迎各位在Comment当中推荐相关高手。
今天继续讲Sidebar Gadget的开发。此篇将是本教程的最后一篇,因为了解了Gadget的大体情况后,接下来就需要大家自己进行练习了。只有勤于练习,而不是安心看教程,你才会积累丰富的开发经验。而且有些细节其实只需要点一下即可,不需要再详述。
从两周前开始,我们面对两个Partner进行了Gadget开发的Workshop。并且每个Partner均讲述了真实的Requirement,进行Job training。目前来看,这种效果非常不错,建议各位也可以在工作中进行学习。
在上一节教程当中,我们在最后给出了几个问题。现在一一回答该问题。
- Gadget当中如何含有设置界面?即那个类似于小板手似的图标?
其实这个问题的答案很简单,只需要在主界面所关联的Javascript中加入一句:System.Gadget.settingsUI = "settings.htm";即可,该语句中的settings.htm可以取代为其它名字.
这个问题如上所示,只需要加一句:System.Gadget.Flyout.file="flyout.htm" 即可,同理,此句中的flyout.htm也可以换成其它的文件名。在需要显示Flyout界面时(比如某个超链接点击事件,或者某个图片控件的双击事件),调用System.Gadget.Flyout.show=true即可,不需要其它设置。当然,你可以在显示时进行一些其它的处理,那么可以调用它的事件函数即System.Gadget.Flyout.onShow(指向一个函数名),其对应的隐藏事件函数为System.Gadget.Flyout.onHide函数
Sidebar为Javascript扩充了一些API,用于执行外部命令,或者得到系统信息,或者对于Gadget内部本身的调用(如上面的Flyout以及SettingsUI),关于这些API的详细信息,可以参阅:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sidebar/sidebar/reference/refs.asp 得到更加详细的信息。
- 如何在没有使用ASP.NET AJAX框架的基础上出现局部刷新效果?
更加简单了,使用Microsoft XMLHTTP这个函数的异步调用方式,关于XMLHTTP的更加详细信息,可以参阅相关信息。其中有关于如何实现异步调用的。另外,在调用时,如果遇到IE缓存问题,可以使用setRequestHeader("If-Modified-Since","0")方式解决(感谢Symbio提供信息),而分析XML,可以使用Microsoft XMLDom来进行。
- 有些Gadget当置放在Sidebar上显示样式是一种,而拖到桌面上会有另外一种显示方式,这是如何实现的?
这个更简单了,查看了下这些Gadget的源代码,可以知道,通过Gadget的System.Gadget.docked的属性可以得到其是否放置在Sidebar上(当为True时,是在Sidebar上),然后再调用JS来对于其CSS特性进行更改即可。
好了,Sidebar Gadget的教程到此结束。非常感谢大家。:)
在奥兰多的时候,开心曾经看到过Jim Allchin作了一个Windows Vista的Demo,非常Cool,一直希望能够在自己的机器上能够运行。但Jim要求所有在场听众在Vista RTM前不能对外宣布此功能。
昨天凌晨终于等到了Jim的邮件,Vista RTM了!迫不及待的安装了Windows Vista的RTM版本,然后去体验上次他做的那个Demo,即动态桌面。可是找遍所有地方都没有。还好,我有搜索引擎,在Windows Live Search中终于让我找到了一些东东。
首先可以使用以下方式来测试一下Aurora是否可以在你的桌面上运行起来,在开始菜单-附件中找到“运行”(注意,在Windows Vista中的原来“运行”的位置现在是即时搜索框),输入“Winsat aurora”,点击回车运行。如果在中途需要中断运行,可以直接敲“ESC”键即可。这其实只是一个临时的动态桌面,你可以使用Alt-tab键切换到其它应用程序上,就可以到动态桌面效果了。
如果你想一直是动态桌面,比如Vista一开机,那么你可以点击此处查看方案。里面提供了两种方案,一种是手工的,需要自己动手使用SPY++工具来进行一些必要的修改。另外一种是下载该文上的一个工具,帮助你自动解决此问题。
Enjoy it!
(本文仅供参考,所给出的任何内容均不作任何担保及暗示,因为本文所引起的伤害请自行承担,系统修改有风险,请谨慎操作!)
由于空中交通管理原因,我所乘坐的FM9111航班又推迟起飞了将近一个小时。现在终于在天上了。好了,书接上回,我们继续开侃。
不知道有多少人了解过RSS为什么会红火起来。想当年,在Netscape快要日落西山的时候,为了挽救颓势,他们提出了网络上“推”的概念,即要把网上的内容由客户端拉转成服务器端推。而其提出的其中之一的实现方式就是RSS。微软当然也不示弱,马上推出了自己的类似协议,即CDF(Channel Defination Format)。而如今,Netscape已成昨日故事,引人扼腕顿足,而其遗腹子RSS却突然红遍全球,甚至成为Web 2.0的标志性之一。而反观微软的亲生儿子,CDF却不再见踪影,在Windows Vista自带的随机帮助中甚至搜索不到其字眼(Vista中对于RSS的支持却是非常的友好,IE7, Sidebar Gadget等)。怪哉,此世界!
在Netscape与IE混战的时候,中文输入法也陷入类似的混战,各种输入法层出不穷,比较有名的故事就是“码根码”,我还曾经为码根码的作者写过一篇文章,以示纪念。而N年了,输入法市场开始风平浪静,似乎进入到互联网时代,人们就不再使用输入法了。但输入法仍然是华人进行计算机活动的主要工具以及入口。不过正因为其普遍,也恰恰成就了我们忘却它的理由。直到Windows Vista中的IE7自带的保护模式的出现,才使得我再次注意到了它。
如果您已经安装了Window Vista,也体验了IE7的保护模式。你就会知道,在IE7启用保护模式时使用中文输入法是一个多么困难的事情。按照Windows Vista自带的帮助文档定义:Internet Explorer 的保护模式是使在计算机上安装恶意软件更为困难的一项功能(Windows Vista中定义的恶意软件不等同于流氓软件,外延更大一些,它包含病毒、木马等)。正是由于这种保护机制,它禁止在此模式打开时,软件往非沙箱区写入数据,从而使恶意软件无法从网络上启动,但却牵连了输入法会由于向其词库(该词库处于沙箱区外)写数据,而导致了输入法无法使用。唯一可以做的就是禁用保护模式或者等待各个第三方中文输入法进行Vista更新。
不好意思,又扯远了。进入到一个软件即服务的时代。中文输入法应该也有一个飞跃的发展,而不只是一个简单的文字输入工具,但一直写到这儿,我突然发觉我原来的创意已经不好意思拿出手了,所以就来一个虎头蛇尾吧,希望各位见谅。
本文写就于飞机上,但由于虎头蛇尾,一直不敢发出来献丑。
目前,在微软与博客堂的协助下,中国汽车网已经发布了其第一个Sidebar Gadget(即边栏小工具),其发布主要位于:http://gadgets.chinacars.com,欢迎大家浏览并且下载,如果在使用中,如果发现Bug或者有任何新的创意,均可以通过此页面上的一个邮件与ChinaCars联系,并且有望得到以下奖品:Windows Vista RC1光盘或者车载吸尘器。
在上一个SideBar Gadgets教程中,曾经呼吁希望开发Gadgets的国内的大型网站的技术决策人员与我进行联系。也收到了一些部分网站的反馈,在此继续呼吁大家与我联系。当然,技术可以不限于Gadget,可以是GRACE中的任何一部分:Gadget、RSS、ASP.NET Ajax、Card Space或者Expression(WPF, WPF/E)。以上大部分技术并不要求网站平台采用ASP.NET 2.0。(joycode # gmail.com)
相关新闻:
国内17家厂商将生产预装Windows Vista操作系统的电脑 Windows Vista最终版制作完成
期待您的邮件。
话说从前,书接上回。开心已经向大家提出了一个需求,并且给出解决技术难题的思路,不知道有多少位朋友已经开始尝试编写自己的第一个非“Hello World”的Sidebar Gadget了。那么今天开始,我们就开始逐步介绍开发Sidebar Gadget的具体方式。
使用Gadget.xml来定义Sidebar Gadget
就像计算机语言都会有一个入口函数一样,Sidebar Gadget在启动时也会有一个主入口,而这个主入口文件呢就是Gadget.xml。但该文件你可以存放在多个区域,即Gadget的根目录,或者Gadget的地区语言(如zh-cn, en-us等)目录。按照我的理解,Gadget应该先会找最适合地区语言目录下的Gadget.xml,其次再找根目录中gadget.xml,而一个典型的Gadget.xml文件结构如下所示(Vista自带的时钟Gadget的描述文件,文档中红色文字为开心的注释文字,而注释中的数字标识与附图中的数字标识一一对应):
<?xml version="1.0" encoding="utf-8"?>
<gadget>
<name>时钟</name> 定义Gadget名称(1)
<namespace>microsoft.windows</namespace> 定义Gadget的命名空间,与JS交互
<version>1.0.0.0</version> 版本信息(2)
<author name="Microsoft Corporation"> 作者信息(3)
<info url="http://go.microsoft.com/fwlink/?LinkId=55696" text="www.gallery.microsoft.com"/> 作者网站的链接地址
(4)
<logo src="logo.png"/>作者的Logo信息(5)
</author>
<copyright>? 2006</copyright> 版权信息(6)
<description>查看您所在时区或全球任何城市的时钟。</description> 功能描述信息(7)
<icons>
<icon height="48" width="48" src="icon.png"/> 显示在小工具待选箱时的图标(8)
</icons>
<hosts>
<host name="sidebar">仅支持Sidebar,未来如果大一统了,可能Live.com或者Slideshow都会使用统一的方式
<base type="html" apiVersion="1.0.0" src="clock.html"/>type仅支持html,未来有可能会支持WPF,WPF/E或者AJAX;src用以指明主界面的HTML源文件
<permissions>full</permissions>目前仅可以设置Full,请参阅此文
<platform minPlatformVersion="1.0"/>
<defaultImage src="drag.png"/>在从小工具备选箱用鼠标拖到Sidebar时所显示的Logo
</host>
</hosts>
</gadget>
通过上面的信息,Sidebar可以得到Gadget中的相关信息,但一个Gadget还不止如此,比如上面的这个时钟显示在Sidebar当中时,应该如 左图所示。在这个截图中,我们注意到有一个小扳手式的图标,使用它可以选择自己心爱的钟表外型或者进行其它的自定义设置,那么此部分是如何反应在源代码中的?
还有,有一些Gadget,比如自带的RSS Reader,当单击某文章标题时,会自动在左侧弹出来一个Flyout窗口,这个窗口的设置如何在源代码中反应呢?
还有,系统自带的那个CPU以及内存使用量的Gadget,类似于汽车的转速表,它又是如何得到这种实时的系统信息的呢?
还有,当把一个Gadget从Sidebar拖到桌面时,其页面大小会发生改变,这又是为什么呢?
还有,Gadget中有很多透明效果,比如那个表的周围就是透明的,呈一个圆形,或者其它类型,而不是我们常见网页的矩形,这又是为什么呢?
还有,Gadget中的服务器端与客户端交互实现局部刷新却又没有使用ASP.NET AJAX框架,这又是为什么呢?
呵呵,如果你感兴趣,欢迎继续阅读本教程,今天就先到这儿吧。
我一直使用五笔字型输入法,所以在没有加入微软之前,我比较喜欢写字,而且也写了好多字。后来,上台的机会多了,用嘴越来越多,不过时至今日,普通话以及英语口语仍然是问题。
写字写多了,对于中文输入法也有一些想法。我使用过的五笔字型比较多:王码五笔86版、五笔加加、小鸭五笔、极品五笔等,甚至我之所以将我的手机选定为多普达838,也是因为这个手机有键盘,可以输入五笔字型。目前在PC上,我比较钟爱的五笔字型是极品五笔,原因呢,就是外观风格我喜欢,其它就没有什么了。我打五笔比较快,不使用词组,只是逐字输入在思路清楚时每分钟也可以达到120字。我很少使用词组输入的方式,因为我总是感觉拆词组是一个比较烦的事情。
前段时间,看到搜狗出了一款拼音输入法,真的很激动。想出这个创意的人是一个奇人,在这个市场上已经很少有让人眼前一亮的创意了,我非常喜欢。但是,很显然,我普通话不好,使用拼音输入法对于我来说简直是一种折磨,所以一直在期待他们可以出一款五笔输入法。
中文操作系统与英文操作系统除了一些显而易见的差别外,最主要的就是输入法了。所以搜狐在这上面做些文章,的确非常正确。但也非常明显,直到目前为止,搜狗输入法还没有很好的商业思路,创意有了,但如何把创意变成金钱还是一个问题。我求他们,千万别把这块市场变成另一个竞价排名市场了,这样就可怕了。
中文输入法还有什么可挖掘的创意吗?我认为还有很多很多,将客户端软件与网络结合起来,会产生非常多的创意,当然了,清平世界也更容易滋生“流氓”。
马上要登机了,先去抽颗烟,就先暂时到这儿吧,容我在飞机上再想想,继续再补充。也欢迎各位看客贡献一下自己的创意。
开心写于上海虹桥机场A2登机口,也不知道有没有朋友在这个登机口前等着上飞机
在Web 1.0时代,由于内容是由网站专职的编辑来提供的,所以需要使用CMS系统,供这些网站编辑来提交新内容。在Web 2.0时代,网站是由人民群众创造的,所以出现了很多各式各样的开放式系统,比如使用BlogMetaDataAPI来提交内容的系统。
BlogMetaDataAPI目前被很多BLOG系统所使用,包括博客堂所采用的基础架构.Text。虽然在Web 2.0初期,大家都在使用在线Web编辑器为BLOG提交内容,但这种提交总得来说还是有很多局限性的,比如:
- 用户体验不一致:由于Web的性质决定,很多客户体验与普通的Windows Application并不一致,比如在Word中我可以先按PringScreen键拷屏,然后直接粘到编辑器中,但在Web中就做不到这一点;
- 响应时间慢、易崩溃:如果增加了过多的文字或者调用到一些特殊的属性。很容易出现响应时间慢的特点,并且导致崩溃(现在崩溃现象越来越少见了)。
- 需要在线写:在不联网的情况下,你必须要先写到记事本或者Word文档中,等到联网的时候再提交。
- 浏览器标准的兼容性:比如博客堂使用的在线Web编辑器在IE6中工作良好,在IE7中就无法正常显示(相信很多博主已经遇到此问题了)。
我也是基于以上原因,以及工作繁忙,有将近一年的时间没有写BLOG。所以最近当我提高了发文数量后,很多人感觉到很诧异:开心怎么了?其实我只是有了一件顺手的工具,即Windows Live Writer。当然,使用Word 2007也可以直接发送博客,不过一来程序太笨重,二来博客堂对Word 2007的发布功能支持的并不是非常好。
一年前,曾经也有过一个构想,就是采用Outlook发送邮件的方式来发布博客。很显然,Live Space已经实现了这个功能,不过只能发给它自己。所以豆腐与宝玉已经完成了大部分代码,实现功能大体如下:
- 在网站(这个网站一直没有时间开发)上使用邮件注册一个帐号,并且关联自己的博客地址以及帐号信息(可多选);
- 在注册通过后,会得到一个特殊的邮件地址,然后就可以使用任意邮件客户端(Outlook, Outlook Express,Web mail)将自己写好的文章发到该邮件地址中;
- 文章实时张贴在自己关联的各博客地址上;
- 同时服务器端保留了你发送的BLOG文章的内容,我们还可以使用这个内容做“博客搜索”、“博客搬家”等等更有创意的内容。
由于豆腐先生已经移民到加拿大了,宝玉与开心的工作也很忙,这个项目也暂时搁置了。我想,是否可以把此项目已经开发完成的代码放在Codeplex上,做成一个开源项目,大家一起来参与开发呢?:)
回到Web 1.0,毕竟现在国内排名前几名的网站大部分还基于网站编辑。我的想法就是,虽然Web 2.0的人民群众们已经享受到了Windows Live Writer等带来的好处了。为什么不让我们的网站编辑们也享受一下这种好处呢?
可不可以把网站的CMS系统使用MetaDataAPI来进行开发,不使用在线编辑器,而是直接使用Word、Windows Live Writer编写自己的CMS系统呢?有人说,Word和Windows Live Writer很难自定义。Oh my god,你难道没有听说过Smart document (Kaneboy & QiangLi快来给大家补补课),以及Live Writer SDK?
Any feedback? :)
由于近期在努力学习Sidebar Gadget开发技术,并且也与中国汽车网合作做了一个Sidebar Gadget,所以耽误了一些时间,但同时,也通过这个机会加深了学习印象。
很多朋友在学习新技术的时候,都喜欢做Hello World。我原来也是这种情况。其实我认为这种方式有百害而无一利,就类似于学英语开始背单词一样,背了十多年,还没有背到F开头的单词呢。因为Hello world就让你产生了一种虚伪的成就感,而稍微一深入进去,遇到一点挫折,就会有畏难情绪,再也坚持不下去了。最后产生的结果无非就是眼高手低,或者眼低手低。
所以本教程我想使用一个实际项目开始,这个项目就是为ChinaCars.com开发一个小型的Gadget,要完成的主要功能如下:
- 根据你选择的城市以及价格区间,以幻灯片形式来显示符合条件的车型图片;
- 图片切换可以实现Powerpoint中的那种幻灯片切换效果;
- 点击某个车型图片,可以显示该车型的详细信息。
功能需求很简单,但使用HTML+Javascript+CSS完成它,可能就需要时间了。因为:
- 开发Gadget没有一个IDE,无非所见即所得;
- 无法进行Debug,只能写Track信息来追踪;
- 资料比较少,只能看Windows Vista自带的Gadget源代码,或者去看SDK;
- 用ASP.NET时间久了,Javascript与HTML知识忘光光了。
另外一点,中国汽车网没有提供API怎么办?不会让我自己来去分析HTML吧?没有关系,我把这个接口暴露给大家,大家可以自己尝试一下。使用接口1,你可以得到一个车型信息列表;使用接口2,你可以得到一个车型详细信息的RSS。简单吧?具体参数的使用说明,自己多试几下就知道了。
那么建立远程HTTP连接呢?在.NET中我们还有HttpRequest来使用,在Javascript中,我们就只能使用Microsoft.XmlHTTP这个ActiveX对象了,不过也非常好用,而且像异步呀、状态信息呀都一个不少的实现了。分析XML也不必使用XmlDocument这个.NET类,你完全可以使用Microsoft.XmlDom这个ActiveX对象。
我的Gadget其实已经完成了,现在来考考大家了。虽然我平常工作比较忙,但仍然使用三个晚上的时间完成了这部分代码。那么我留出一周的时间,如果大家感兴趣,先自己试着开发一下。一周后,我会公布我的源代码给大家的。如果您在一周内完成了,欢迎打包成.gadget文件,通过邮件发送给我,说不定会有神秘礼品呢。
另外,也号召一下各网站的开发高手,发挥你的创意,为你的网站增加Gadget。抢占完用户的桌面,霸占了用户的IE,现在到了抢占用户Sidebar的时候了!让客户接受你,你就要有好的创意。如果贵网站在国内按流量综合排名在前一百以上,或者是比较酷的网站,有应用Gadget的好创意的话,也可以与我联系。Microsoft将会选择一部分网站做相关的市场活动。
BTW: 如果您的公司在开发类似于Forums、Blog等相关Web通用系统的话,如果想应用Gadget,或者想迁移到ASP.NET,或者想与Microsoft作一系列的市场活动,也可以与我联系。(曾经给Discuz!发过一封邮件,但石沉大海)
BTW Again: 如果贵公司或者个人精通Gadget,Expression,AJAX,Card Space,也可以与我联系。我们需要合作伙伴,帮助我们的客户进行培训与实施,并且支付相关费用。