Register  |   Login
关于本人
Baldwin's Status
Ramblings of a developer for dnn solution...
 Contact Me
随笔档案
Blog搜索
相册库
更多照片请查看相册库
最新评论
Rss Feed
feedsky
抓虾
pageflakes
newsgator
哪吒
我们的服务
  • DotNetNuke 咨询
  • Web设计及其模块开发
  • 免费建站
  • 电子商务
  • 开拓市场
我们致力于开发定制的web 2.0 ,所服务的客户主要包括小中型企业,社区俱乐部及其非盈利机构组织。我们将利用开源的DNN作为我们核心的系统机制,更多相关信息...

DNN模块开发

在这进行一些DNN模块的设计和发布,其中包括核心的优化及其定制模块的分布等等,如果你有什么关于模块的问题,都可以在此跟我们的团队讨论...

SunBlog更新:整合jQuery

SunBlog and jQuery

jQuery以其简洁而著称, 也就是"Do more with less"理念贯穿其中, 我想这是我们需要的, 以最简洁的方式附加一系列的方法和属性甚至事件到某一个DOM节点. 而DNN也打算在5.0版本上整合jQuery, 如此ClientAPI就可以借助jQuery的框架发挥更大的威力和性能, 让我们拭目以待. 当然, SunBlog模块也不甘落后, 目前也在整合jQuery, 就是替代之前使用的Asp.Net Ajax Tookit框架, 在整合j的过程中, 发现jQuery的确可以用更少的代码开发出更强大的功能, 比如Search输入框的水印功能(Watermark), 之前我使用的是Asp.Net Ajax Tookit的TextBoxWatermarkExtender控件, 而如今我只需要几行js代码即可实现同样的feature, 从下列代码可以看出区别:

Read the rest of entry »

SunBlog更新: 增加Window Live Writer的支持

WLW今天本Blog模块(代号"SunBlog")又新增了一个比较"Cool"的功能, 那就是Window live writer(简称WLW), 有了WLW的支持, 在Blog发布帖子不再如此费劲了(如果你用过DNN的FCKEditor发布信息的话, 我想你会明白我的感受的), 同时也不再担心因为网站服务器不响应而丢失信息了, 丢失信息对于自己辛辛苦苦写好的帖子无疑是致命的打击, 而对于我来说使用WLW最好的一点是它支持扩展的插件应用, 也就是说可以用不同的插件来方便帖子的发布,比如代码高亮提示(这是FCKEditor缺失的), 图片添加甚至你可以很方便的为它添加某些常见的效果(水印, 暗影), 最后还有就是本地备份的功能, 从此你可以更好的维护自己的文章及帖子, 偶尔还可以直接在本地查看浏览。 也许还有更多的好处有待发现 :)

TrimEnd() Vs SubString

分享如何处理带有分隔符的字符串的一些小技巧, 希望可以给大家一些启示...

SunBlog更新:增加TagCloud Feature(标签功能)

Tag Cloud今天本Blog模块(代号"SunBlog")又新增了一个比较"Cool"的功能, 那就是TagCloud, 我们在Web 2.0经常提及的热点标签功能, 这也是大部分Blog应用(比如SubText,BlogEngine.NET)具有的功能(feature),故SunBlog也考虑进来,方便用户获取到自己比较关注的信息,希望大家喜欢,给予更多的反馈...
what is tag cloud? (更多关于tag cloud信息可访问http://en.wikipedia.org/wiki/Tag_cloud)
A tag cloud or word cloud (or weighted list in visual design) is a visual depiction of user-generated tags, or simply the word content of a site, used typically to describe the content of web sites. Tags are usually single words and are typically listed alphabetically, and the importance of a tag is shown with font size or color. Thus both finding a tag by alphabet and by popularity is possible. The tags are usually hyperlinks that lead to a collection of items that are associated with a tag.

SunBlog更新:增加Gravatar的支持

gravatar feature demo:
今天对本Blog(代号"SunBlog")新增了一个功能:用户评论和gravatar的整合,也就是用户可通过关联自己在gravatar网站的Email获取到avatar,从而可显示自己的头像在评论中,这是大部分Blog应用(比如SubText,BlogEngine.NET)具有的功能(feature),故SunBlog也考虑进来,如此更强调用户的参与和交互,希望大家喜欢,给予更多的反馈...

DNN SQL 语句集粹

在DNN模块开发过程中,写存储过程可算是一个基本功,一开始你可以copy & paste, 但毕竟有些麻烦,每次都得去查找,如果你足够细心,不妨做个记录,这样省时省力,在此分享一下本人模块开发过程可能需要的SQL语句,比如如何添加字段,如何更新表结构,如何添加SQL函数,如何关联外键等等.

剖析DNN分页控件

不知道大家是否用过DNN核心自带的分页控件,我想如果用过的话,也许你已碰到类似我将要提到的问题,那就是该分页控件并非像我们所想的那样,利用经典的asp.net框架中的viewstate来响应(postback)用户的操作,它其实是利用一种更为简单的方式: 用url来维护页面参数,这就使得一旦页面回发(postback), 当前页面就会回滚到原始状态,对应的页面参数也会变成初始值,这对于我们来说无疑是痛苦的。也许你不是很清楚这种状况,不妨举个例子看看, 比如你当前页面的url为:http://localhost/dnndev/tabid/65/category/23/default.aspx, 你注意到url里边存在两个参数(tabid和category), 这时如果你在使用DNN核心自带的分页控件,那对应分页控件的页码也许是类似的链接http://localhost/dnndev/tabid/65/currentpage/4/default.aspx, 当你点击该页码时将会跳转到http://localhost/dnndev/tabid/65/currentpage/4/default.aspx,如此一来category/23这参数也随之丢失了。这样的情况在你是纯粹靠拼字符串来激发页面变化的时候更为明显。所以整个页面的URL里边参数都需要考虑如何维护,防止误操作。深入挖掘该分页控件的代码,你会发现参数维护主要是靠QuerystringParams这一属性来维护,一般维护代码如下:
 
  1.  If Not Request.Params("categoryid"Is Nothing Then  
  2.      m_sViewType = "category"  
  3.      m_oCateggory = CategoryController.GetCategory(CType(Request.Params("categoryid"), Integer))   
  4.   
  5.      _Querystring += "categoryid=" & Request.Params("categoryid").ToString()   
  6.  End If  
  7.   
  8.  If Not Request.Params("BlogDate"Is Nothing Then  
  9.      m_dBlogDate = CType(Date.Parse(Request.Params("BlogDate")), Date)   
  10.      _Querystring += "BlogDate=" & m_dBlogDate.ToString()   
  11.      If Not Request.Params("DateType"Is Nothing Then  
  12.          m_sViewType = Request.Params("DateType")   
  13.          _Querystring += "BlogDate=" & m_sViewType   
  14.      End If  
  15.  End If  
  16.     
  17. 'set the QuerystringParams property   
  18. ctlPagingControlBottom.QuerystringParams = Querystring  
我想你也应该猜到了,这其实也是一个拼字符串的过程,更让你难受的需要你考虑到整个页面url有可能包含的参数信息,对于同一页面多个模块这是无法知晓的。故这将是无可避免的Bugs.当然DNN分页控件并非一无是处,至少很好的支持SEO(搜索引擎),编程更简单些,故对于一个页面只有单个模块的话无疑是一种简单方便的选择,就拿本站点的SunBlog模块来说,因为一般页面就包含Blog相关模块,利用DNN分页控件无疑是明智的。不过个人觉得DNN分页控件有点粗糙,可定制性极差,最后独立出来开发一个更轻量级,优化版本(更简洁的HTML代码)的分页控件,它至少符合SunBlog模块的需求了,目前已在Codeplex.com开源http://www.codeplex.com/dnnsuntoolkit,有兴趣者不妨对照着DNN分页控件看看其中区别。使用方式跟DNN分页控件差别不大。
参考链接:
DNN Paging Control使用方法:
http://www.cto20.com/cto20/tabid/647/EntryId/46/DNN-Best-Kept-Secrets-Part-1-DNN-Paging-Control.aspx
DNN Paging Control的缺陷
http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/118/postid/96091/scope/posts/Default.aspx

New Recommedation Module Released ( v1.1 )

This is a standard dotnetnuke module which can be use to invite friend or tell friends about the website information. Those information may be useful for the users' friends. we can call it "Email Friend" or "Invite your friends" or something similiar one. Right now it support the template engine so you can utilize the token mechanism to implement some custom defined email message.
Please visit the source code in codeplex.com: http://www.codeplex.com/Recommendation
v1.1:
1) Template engine and Token support( Your Displ ...

Color Picker v1.1 Beta发布

Color Picker
这段有些脱离DNN了, 因为新参与了一个RSS项目,故对DNN的关注和参与有些减少, 不过我月底即将回来, 还是拥抱DNN,研究开源 :)
在此分享一下在该RSS项目应用到的一个小插件'Color Picker', 这是一个颜色选择控件, 可应用了样式的编辑表单, 目前已在CodePlex.com上发布Color Picker v1.1 Beta, 有兴趣者不妨看看, 该控件并非独创而是居于原有的控件修改, 增加了AutoPostback和相应的onColorChanged事件(类似于TextBox控件的onTextChangged事件), 它已在m2land开源的DNNFlashImageRotator得到应用。
Color Picker Demo:
相关链接:
ASP.NET Color Picker Web Server Control(http://www.codeproject.com/KB/custom-controls/WS_ColorPicker.aspx)
免费的Asp.net ColorPicker(http://www.cnblogs.com/m2land/archive/2008/09/08/1280708.html)
DNNFlashImageRotator(http://www.codeplex.com/DNNFIR)

本站最新文章索引

为了便于大家直接查找,在此简单汇总一下本人一直以来对DNN研究的相关文章。另外,大家如果有关于DNN方面的问题,也可以在这里提出,我将尽力为大家解答。
第一部分为DNN模块方面, 主要分享一些在DNN模块需要注意的地方,比如如何利用DNN API,优化开发过程,也就是本人一直宣扬的让DNN“物尽所用”的原则:
1 ) DNN核心API简述
2 ) DNN模块开发之利器篇:七种武器
3 ) 开发DNN模块之Utility
4 ) DNN模块开发应用Ajax之Utility
5 ) 一些DNN须知的技巧
6 ) DNN特性之IMC
7 ) DNN Object Hydrator -- CBO解析
8 ) 王者归来—再谈CBO
9 ) 解析DNN新生宠儿DAL
9 ) 解除DNN的传参枷锁
10 ) 在DNN中处理回车键事件
11 ) 一些关于DNN的FAQs(适合New DNNer)
第二部分为DNN皮肤设计, 主要分享DNN皮肤这一概念背后的一些想法及其由此带来的性能优化问题,希望真正做到扬长避短, 同时也稍微涉及到一下在DNN如何设计专业的,符合标准的,纯CSS的皮肤等话题, 有兴趣者不妨参考参考。
1 ) DNN默认核心CSS继承关系解析
2 ) DNN Style Sheet简要总结
3 ) 解析DNN皮肤级别的doctype声明
4 ) DNN登陆注册链接小变身(Skin Object定制开发)
5 ) 展望DNN皮肤前景及其推荐一些皮肤资源
6 ) DNN Skin旅程之琐碎杂想
第三部分为DNN优化专题, 主要分享一些能提升DNN加载速度,优化DNN本身的架构等经验,同时希望大家能借此对DNN有更一步的深入了解, 因为当你在使用某一样产品时,在知道优势时也不妨多关注存在的缺陷和局限,这样你才能规避风险,找到合适的解决方案。
1 ) 你的dnn站点慢了么?
2 ) 如何在DNN创建类IGoogle效果的模块
3 ) 解析DNN新生宠儿DAL
第三部分为DNN最新资讯, 主要分享最新的DNN新闻资讯(比如最近即将发布的Cambrian版本的DNN 5.0)及其本站的一些更新,其中包括中国DNN联盟的最新活动等等.
1 ) Cambrian和Open Force '08专题(不断更新中,敬请关注) 
2 ) 中国DNN联盟正式成立
还有更多更多内容, 不妨关注一下本站,同时希望大家给予更多反馈, 我们会做得更多,而这一切的前提离不开社区的反馈和你们支持。 :)
最后分享一下我一直以来关注DNN社区所收集的Blog站点,其中包括一些很牛的DNN Fans对DNN的独到见解,还有一些就是DNN官方核心团队成员自己的Blog,毋庸置疑, 其所写的文章或随笔都是很有含金量的.很显然,整个关于DNN内容的社区在不断的壮大(相关文章:DNN Content: The growth of community content about Dotnetnuke ),希望在我们中国也应该不甘落后,奋起直追,也算是奥运期间对奥运精神的借鉴和弘扬吧. (资源下载:DNN Blogs链接)