分享一个小技巧,我前几天听Jesse Liberty的一个webcast时学到的。

 

我们在使用Visual Studio的时候,添加一个源文件(这里以C#为例)时,已经有了许多命名空间的引用,一大堆的using这个using那个的,特别是在ASP.NET页面的后台代码,有12行using,然而有的命名空间我们根本用不到,是否有一种方法美化(用“优化”不妥当)一下呢?

 

很简单,在using那部分代码点击鼠标右键,在弹出的菜单中选择“Organize Usings",就有三个选择:Remove Unused Usings, Sort Usings和Remove and Sort。然后就可以得到简洁的using了,感觉很不错哦!

 


 

要注意的是要在编译之后进行这个操作,完成之后再编译。

posted @ 2008-08-15 10:43 Shiny Zhu 阅读(51) | 评论 (2)编辑

上周在校内逛了一下,加入了开发者群,本来不打算在校内做什么程序的,因为它一直抄facebook,最近更是加快了抄袭的速度,新风格没几天就抄过来了,真神奇。

 

后来看了下API,再看了下群里面,没有找到完整的.NET实现,索性我来写一个玩玩吧。

 

说实话我写组件的历史不长,甚至根本就不会写,只能说练练手而已,之前给饭否写了个API封装的程序集,好像到现在为止,就我自己的一个桌面程序在使用它。

 

校内的文档很不完整,不过之前熟悉了下Facebook的文档,校内的这些方法和参数,完全跟facebook的一样。不过很多还不支持而已,而已。。

 

花了大概3天的时间阅读Facebook的文档来熟悉校内API(这话越念越别扭),然后写了个程序集封装了校内API的12个方法,项目我已经发布在codeplex啦,另外在校内xCube群里也有帖子。

 

写XiaoneiNet的目的是让开发第三方应用更简单,你可以不必关心API的调用和返回,而直接做网站一样的进行开发,然后在校内创建一个应用,就完成了部署。不过我还没有什么点子来做这样一个应用。

 

程序集和源代码及例子,还有文档(用SandCastle生成的)在这里下载:http://www.codeplex.com/XiaoneiNet/Release/ProjectReleases.aspx?ReleaseId=16268


用法很简单,直接上代码段:

 

Code

 

希望各位看到代码有什么不爽的地方请不要吝啬一点时间给我留个言,我将感激不尽啊!谢谢先。

posted @ 2008-08-13 18:01 Shiny Zhu 阅读(93) | 评论 (2)编辑

Expression团队昨天发布了Deep Zoom Composer预览版的新构建,以及介绍了对PhotoZoom的支持。

PhotoZoom是Live Labs推出的一个方便共享用Deep Zoom Composer创建的相册的免费服务,用新版本的Deep Zoom Composer可以直接创建并分享到PhotoZoom,这个链接就是偶分享的一个成都地图:http://photozoom.mslivelabs.com/album.aspx?alias=ShinyZhu&album=3

 

 

dzcicon 现在就下载 Deep Zoom Composer
posted @ 2008-08-05 16:13 Shiny Zhu 阅读(31) | 评论 (0)编辑

如果你既安装了Silverlight 2 beta 2 SDK 又安装了 ASP.NET MVC Codeplex Preview 4 的话,创建Silverlight程序的时候就多了一个选项:

 

 

但是,不巧的是,我今天尝试了两次这个选择,都失败了,而且失败得很彻底,VS2008直接不见了!

还需要完善啊。

 

今天这个月月底了,时间真快。

 

P.S. 今天跟一朋友聊天的时候聊到很多IT人从心底不喜欢英语,因此几乎不看英文的技术文章,我觉得这样是不好的,我们要承认技术用英语描述的要比中文描述的多得多原始得多,为何不看呢?同时我有个小想法,如果以后有相关的文章的话,我尽量以中英文对照发布在这里,希望能有帮助。

posted @ 2008-07-31 20:11 Shiny Zhu 阅读(29) | 评论 (0)编辑

把这个帖子也搬到园子里来,私底下秀一秀,哈哈!

 

这些东东是参加各种活动得到的,很多活动可能影响范围比较小,参与的人不多,所以奖品覆盖范围就大一些,我就很幸运地得到一些

 

Amoi E850

 

2007年参加MSN机器人得的二等奖,就是小i机器人那个网站举办的,自从那开始就没再买过手机,也好,我的K700用坏之后刚好有替代的。:D

 

Amoi E850

 

 

 

Microsoft Wireless Laser Mouse 5000

 

参加去年12月份的DEV-WOW得到的幸运奖。

 

 

 

 

 

Dopod S1

 

这个也是DEV-WOW的,最后得了个三等奖。什么时候再举办一次这样的活动呢?

 

 

 

 

Microsoft Wireless Notebook Presenter Mouse 8000

 

微软中文技术论坛举办的十大论坛英雄TOP1的礼物,感谢论坛,感谢微软!

 


 

 

 

2008 MVP Award: Bluetooth Suite

 

这个吧,园子里很多朋友都有。我的耳机已经被我掰了两条缝了,不知道什么时候断掉。

 


 

有几个是本本外设,我还差一个本本,等迅驰2平台跳水之后考虑入手一个。

posted @ 2008-07-29 11:12 Shiny Zhu 阅读(13) | 评论 (0)编辑

在园子里从2005年5月算来到现在也有不少个年头了,但几乎一直潜水。去年开始在微软中文技术论坛闲逛,有幸得到这个7月的ASP/ASP.NET方向的MVP,更有幸加入到这个团队中来,希望大家多多指教。

我从大学开始就一直在成都,目前在一家旅行社负责网络产品的开发及推广,工作比较轻松,主要做WEB。

可能也因为是小公司,所有的技术决策都由我一个人来完成,因此总是用的最新的技术,比如.NET3.5,及ASP.NET MVC,还有Silverlight等,这也跟我一直对新技术非常热衷有一定关系吧。

目前来说我只是在WEB方面做得事情比较多,以前工作的时候对WEB标准着迷,还有SEO,应该是国内比较早把这些元素放在实际应用中的了,后来需要后台的程序逻辑等,我就选择了比较容易的.NET,也的确很方便。

我认为技术是在不断地学习不断地分享这一系列过程中得到提高的,但任何时候都要经过自己的深思熟虑、自己的理解之后,才会真正沉淀下来,那才是真正的精华。

啊!初来乍到,请多多指教,非常感谢!

posted @ 2008-07-28 14:10 Shiny Zhu 阅读(81) | 评论 (7)编辑

这个可以扩展到矢量图中路径的填充规则,因为所有矢量图都采用这个规则来填充封闭路径的内部,在这里只以Silverlight为例。

在网上找了很久关于填充规则的介绍,经过了几天的阅读和自己理解还有亲自尝试,现在终于能说出过所以然来了,立马分享给大家。

 

矢量路径的填充规则有两种方式,EvenOdd 和 NonZero,下面是我自己总结的中文解释(挺拗口的)。

 

EvenOdd 方式是指从路径内部到外部经过了与路径有偶数个交叉点的那些点被认为在路径之外,有奇数个交叉点的那些点被认为在路径之内并且会被填充

 

NonZero 方式是指从路径内部到外部经过的那些路径中从左到右和从右到左的数量不相同(差不为0)的那些点会被填充

 

事实上并没有那么复杂,来看一个实际的例子吧:

 

1<Path Fill="Yellow"
2  Stroke="Blue" StrokeThickness="3"
3  Data="F1 M 420,200 L 750,200 L 460,300 L 650,100 L 550,350 L 450,150 L 700,350 L 550,150 Z"
4/>

 

 运行之后的图形如下,顶点作了标记:

 

 

注意上图是NonZero填充。图中A点向外部可以看出经过了2个从左到右(3->4, 5->6,这里方向是从1到9。你也可以从9到1算方向)的路径,但没经过从右到左的路径,所以这两个值的差不为0,所以A点应该被填充。

 

下面是默认的EvenOdd填充效果:

 

 

A点向外经过了2个与路径的交叉点,所以被认为在路径之外,所以就不填充。你也可以向反方向画线,但仍然是偶数个交叉点

 

PS,Path的Data里的命令是区分大小写的,带坐标的命令如果是大写,则用绝对坐标,小写则用相对坐标,要注意噢!


posted @ 2008-07-27 23:05 Shiny Zhu 阅读(32) | 评论 (0)编辑

如果你已经安装了Silverlight插件,当你再次访问安装页面的时候,会看到一个不断旋转的Silverlight Logo,很漂亮是吧?

我已经把它下载回来并修改了一下, 你可以把它当作Loading指示器,应该比较酷。

 

它本身是一个wmv的视频,通过让它循环播放达到的动态效果。或许你还找到了另外一个动态Logo,但是它在重复播放的时候会卡住一下,细心的你应该会发现。


例子我是没地方放了,直接提供下载吧,在1.0环境下就可以运行的,2.0就不用说了。

 

/Files/shinyzhu/Nebula.zip

 

希望你会喜欢,另外,如果你有Silverlight相关的问题和分享的话,请到微软中文技术社区Silverlight版看看。

posted @ 2008-07-27 19:19 Shiny Zhu 阅读(38) | 评论 (0)编辑

就是这个结果,因为5月份的时候我的网站上有两篇关于地震中笑话的日志,就这样,它需要闭关自守、面壁思过、彻底悔过……。

总之,为了迎接奥运,奥运啊,多么世界性的话题,多么全球化的主题,我们怎么能谈其他的事情呢?

关了!

 

以前在shinyzhu.com的日志也没什么重要的,关于ASP.NET MVC中日历扩展的那个帖子我会在这里完善。还有到时间自动打电话的小程序,还有很多问题,就算了,let it go。

 

最近有更重要的事情要做,这些小CASE,放到一边吧!

 

就这样。

posted @ 2008-07-24 21:38 Shiny Zhu 阅读(31) | 评论 (2)编辑
在ASP.NET MVC里应该没有人愿意用<asp:Calendar ...>这个控件吧?它必须要求服务器端的一个form,但这已经违背了MVC的原则,所以我们不能用它啦。
或许你可以用javascript的日历来解决你的问题,那也很不错。
我这里向你推荐一个日历“控件”,它是扩展到HtmlHelper的,所以你可以在页面里使用<%= Html.Calendar() %>就可以得到一个标准化的日历了。

要下载源码和例子请到:http://shinyzhu.com/blog/entry/aspnet-mvc-calendar(这个地址暂时关闭了,请到下面的链接)
另外别忘了支持这个项目:http://www.codeplex.com/mvcapps

首先说说这个日历的作用,简单一点地说呢,就是可以显示指定月份的日历,最简单的方式就是 Html.Calendar ,它生成一个当前月份的日历。要指定日期也需要指定一个名字,因为同一个id不能在同一个页面出现多次,所以我这么要求了。代码是:
<%= Html.Calendar("otherName", selectedDate) %>
就可以显示指定日期那个月份了。

 

 

其实这个的原理是遍历月份的每一天,然后输出HTML字符串,很简单吧?


我的一个需求是要把当前日志按日期归档,有日志的那天我需要在日历上有一个链接,链接到这一天的归档。

这个就是我扩展它的原因了。

具体应用请看代码:

public static string Calendar(this HtmlHelper helper, string name, DateTime selectedDate, IEnumerable<DateTime> rawDates, string controllerName, string actionName);

这个是方法原型。

像这么用:



得到的效果是:



好了。需要注意的地方就是,目前这个日历链接中,controller和action是参数指定的,values目前只支持date=year-month-daydate=year-month两种格式。你可以在Route配置里配置一个 "blog/archive/{date}“ 然后就可以生成像我的网站那种链接了。很方便吧?

欢迎砸鸡蛋哦!谢谢啦。图片已更新。
posted @ 2008-07-11 18:05 Shiny Zhu 阅读(486) | 评论 (0)编辑
以下是2008年7月中国MVP名单:
包建强  曹海军  曹恒云   陈方旭   陈广琛  
陈俊森  陈黎夫  陈缘    崔路明    段君毅  
范楠    冯立超  傅曦    葛涵涛    郭保卫  
胡林    胡铭娅  黄鸣    黄昕     黄振宇  
贾涛    贾笑明  金华    金磊     瞿晟荣  
雷扬    李斌    李皓    李家佳   李建忠  
李晓东  李岩玻  梁凤飚  林立     刘大双  
刘晖    罗江华  马健    马靖     牛可  
彭爱华  彭斌    祁清华  石王冬欣  苏繁  
苏鹏    唐天浩  童广林  王岗     王辉  
王亮    王少葵  王晓烽  王新宇   武眉博  
徐火军  徐晓卓  闫诺    杨海伟   杨明波  
尤扬    于淼    余勇    袁永福   张斌  
张诚    张德强  张杰    张寅生   张玉彬  
赵峰    赵劼    赵俊其  郑华    钟伟  
周建平  周金桥  周圣    周银辉  朱炜  
朱兴亮  朱兴林  朱永光  邹鋆弢

真幸运,我也在里面。
Congratulations, everybody!
其中有不少认识的朋友。:)
posted @ 2008-07-02 10:48 Shiny Zhu 阅读(44) | 评论 (2)编辑

ASP.NET MVC Preview 3已经于5月27日发布了,您可以从微软下载中心下载安装程序和文档。相比之前的版本,改进是许多的。

其实从MVC0416版本开始根目录下的Default.aspx就有了变化,起初我以为这样的变化是不好的,因为用到了Response.Redirect,现在我来详细说说这个。

在用Preview 2创建的网站中可能会遇到这样的问题,同一时间访问网站的根目录,有可能有一个访问会返回错误信息!

不知道是不是RPWT,好像其他人没有遇到这个麻烦,但我遇到这个就相当多了。不妨访问这个地址:http://www.scdfw.cn/。我其实没有要打广告的想法。

这个图就是一种结果:



我先打开IE,输入地址并回车,然后立即在打开的FF里把输入好的地址按下回车。就……
因为我把生产服务器的自定义错误关掉了。服务器环境是IIS6,站点添加了通配符映射。

我也在codeplex反映了这个情况,但是好像其他人也没有遇到这个问题。

之后的版本中,Routing可以配置是否对已存在的文件进行route,修改RouteCollection的RouteExistingFiles属性即可。

 

但是,有另外一个问题。转向有时候不管用

网站www.sc-open.com.cn保留了默认的根目录页面,也就是那个有Response.Redirect("~/Home")的。但是打开之后的页面是Index的结果,URL却没有变。

网站www.jiuzhaigoutour.com把默认页面改成了一个普通的页面,但打开却被Route到HomeController的Index。

原因不明。
posted @ 2008-06-14 12:10 Shiny Zhu 阅读(99) | 评论 (2)编辑