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

DNN使用及思考

对DNN的使用经验(包括核心模块的使用教程)及其对DNN在国内运用的一些零碎思考,让DNN能够真正的火起来

读书杂感--开源与我

昨儿闲着无聊,看了看6月份的程序员杂志,发现有一个专题《开源在中国》, 主要介绍开源社区和开源软件在国内的一些发展历程,毋庸置疑,开源如今在国人的分量越来越重了。其间有些奇怪的是,似乎这些开源都是linux或java的专属权,我在所有文章中看不到任何关于Microsoft或衍生产品的开源的字眼,更别提我目前倾心的DNN框架了。不知这之间有啥不为人知的缘由,也许是Microsoft一直都在扮演霸主,“不开源”的典型代表吧,故此也就无从位列开源队伍了。:)
不管如何,至少我觉得有些文章写得还是不错的,我想开源精神都是一致的,DNN也是一种开源,尽管不为众人所知,故文章中提及的经验及其心得还是对我颇为裨益,故在此列举一些作为记录,也算是对自己倾心于DNN的鼓励和鞭策。同时在此有所呼吁,结交更多志同道合者(加盟dnnsun.com),希望DNN能够在国内真正的成为一个正规的开源社区,而不停留于本地化及其一些表面工作。
选择一个开源产品的标准:
1)目前的功能及其Roadmap
2)软件本身的架构
3)开发的活跃度及其社区的支持力度
4)该开源软件是否是遵守该领域的国际规范
5)与同类产品相比,可能存在移植的代价
我想补充的一点是: 6)可扩展性(这是DNN的优势)
开源之三重阶段(境界):
1)敞开心胸,拥抱开源( Open to Open Source)
2)深入开源,了解开源( Gig into Open Source)
3)融入开源,贡献开源( Get involved in Open Source )
对想做开源社区或参与开源项目的爱好者的三条建议:
1)要有激情,一定要热爱你做的项目。
2)要具备良好的语言能力,英语要达到一定的交流水平。(看来,这点并非独对DNN所特有, ^_^)
3)要真正理解开源运动的本质--共享精神,舍得把自己好的想法共享,放得下自己的名利,不能为了突出个人的贡献或个人在社区的地位就太突出自己。有些东西即使你能做,如果别人能做要尽量交给他人去做,这样才能形成一个团队,或者一种社区的精神--共享精神。(觉得这是DNN在中国最缺陷的)。
可从开源所获益的有:
1)阅读开源代码,有利于从理论到实践的平滑过渡。
评语:我想这像是对学生讲的,^_^ ,希望哪位读者如果还是在校学生的话,不妨在大学期间对代码实践有一定的重视。这不妨以我个人为例讲讲,本人对DNN的情缘也是从大学开始的,当时在一家公司实习,由于采用DNN作为底层框架,故而结识了DNN,而这一切来源于DNN当初很炫的“拖拽”功能。直至毕业前夕,论文的题目就毫不犹豫定位于DNN,尽管当初DNN资料相对缺陷,但是自己还是完美的搞定毕设,同时也有了dnnsun.com的诞生,而很让我觉得骄傲和自豪的是,答辩之间老师们看到我演示的站点竟然是一个在线站点,而且功能如此齐全,似乎有些“震撼”。
2) 阅读开源代码,与高手交流
评语: 的确,阅读高质量的代码,自己的代码风格,编程技巧和设计方法都在潜移默化得于提升,这在DNN模块开发中极为必要,因为核心代码或核心模块有很多地方可以借鉴。 这在我之前的文章曾累次提及到。
3)阅读开源代码,紧跟技术潮流。
使用开源的较高境界:(不大恰当的比喻:作者语)
开源项目多如牛毛,就像漫天的繁星,天空中有那么多美丽的星星,每一颗可能都是一个开源项目。我们在面对一个具体的需求,应该能像找到上帝的感觉,在信手挥洒之间,把这些星星组合成一个又一个不同的美丽星座。
评语: 有些赞同,具体到我个人,对开源该有些理想主义,特别是做一个非盈利的开源网站,就拿dnnsun.com来说,尽管我一直在撰写一些自己开发DNN的心得或文章,可却激不起多大的波澜,大家也没有什么交互的留言,这也许是国人的"习惯", 自不敢有所奢望。我更多还是一种自得其乐的心态,想做点事,踏踏实实做点事情,想到也许一些成果会对某个不知身在何处的DNN爱好者带来一些好处或帮助,我就心有所欣慰了。

剖析DNN架构-开篇之作

本Blog将新增一个栏目,暂时取名为"剖析DNN架构",名号似乎有些大了,但考虑到这也算是鞭策所写文章质量的一种手段,故最后暂且不做更改了。对于为何出现这一栏目,主要是一直以来跟一些DNN爱好者们的交流所促使的。曾有几位朋友所在公司想利用DNN这一开源平台或开发产品,或与现有系统整合,或优化框架以便满足需求等等,故他们都愿意招聘能真正担当起这一重担的“千里马”,想想这将要求所聘之人具备以下一些条件:
1) 熟悉DNN核心架构和框架脉络。
2) 有一定的架构经验,懂得设计模式相关知识。
3) 精通DNN模块开发流程及其皮肤机制。
等等,“DNN架构师”也就从此诞生了,当时我听到他们的招聘要求之后,唯一的想法是在国内,此等“千里马”实在是凤毛麟角,恐怕他们只能望梅止渴了。因为想想国内研究DNN的氛围,人气之淡,交流之稀,凭何能促进DNN这一开源平台的兴盛呢?
对于DNN入门的门槛,就我个人的观点还是蛮高的,当然你想借助DNN搭建一个网站倒是及其容易的,也就是1-3分钟即可,而目前DNN模块及其皮肤资源还是蛮多的(其中包括免费或商业的),只要你合理利用还是可以满足大部分需求的。但如果你想定制业务或布局修改的话,那就必须得了解一些编程技巧或HTML,CSS布局原理等。对于非专业人员,恐怕是力所不及的。而对于刚入门的开发人员,你需要了解的更多, ...

DNN模块开发之利器篇:七种武器

读过武侠小说的你一定都知道古龙曾有一部著名的小说<<七种武器>>,其中列举了当今武林最牛的,杀伤力最大的武器,其中包括长生剑、孔雀翎、碧玉刀、多情环、霸王枪、离别钩、拳头.后来还有百晓生的兵器排行榜,其中就包括小李飞刀等等.在此我就班门弄斧了,借着古代利器之说,姑且列举一些对DNN模块开发起决定作用的一些方法或类,并辅助说明使用方式(排名没有先后之分,纯粹用于标识):
1) PortalModuleBase
所属命名空间:DotNetNuke.Entities.Modules
这是一个开发DNN模块所必须继承的基类,标志性的基类,在此基类中,你可以得到DNN所为你封装的一些模块基本信息,毋需你多费周折,其中包括当前用户UseID,UserInfo,TabID,ModulePath,ModuleConfiguration,LocalResourceFile等等,下边就简单解析几个比较有用的属性:
      <1> ModulePath: 模块根目录,可以获取到模块根目录所需要的文件,比如脚本文件,图像文件,比如你想在后台注册一个js脚本,代码可以类似:   

展望DNN皮肤前景及其推荐一些皮肤资源

自从DNN发布以来,用户对DNN皮肤机制一直以来都是褒贬不一,我对此也曾写过一些文章分析其中道理,有兴趣者不妨看看我之前的文章,目前DNN即将升级到5.0版本(代号为Cambrian),这将是一个具有里程碑意义的版本发布,时间大概是今年秋天,估计应该是在DotNetNuke OpenForce '08 大会之前吧,让我们拭目以待吧. 关心DNN皮肤的朋友们, 现在让我们先来看看皮肤机制将发生哪些变化...

DNN登陆注册链接小变身(Skin Object定制开发)

上一篇文章简单解析了DNN多语言解决方案,其中提到了一个皮肤级别的本地化支持.这篇文章接着简单分析如何定制开发自己的皮肤对象(在dnn称之为Skin Objects),不妨来看看我们如何给DNN默认的登陆注册链接皮肤对象做个小变身.首先还是先描述一下需求,例如有客户需要在设计皮肤时可以在登陆注册这两个链接增加一个小图象提示,起到修饰美观的作用,最终效果如图:
如何开发呢?其实对我来说,开发DNN的原则就是如何节省代码量,同时可以让DNN物尽所用,但又不能影响以后的升级.我想这个理念在前几篇文章都阐述得淋漓尽致(比如浅谈如何做到dnn物尽所用(二), 浅谈如何做到dnn物尽所用).有兴趣者不妨回头看看,也许你也会得到些许提示的.回到正题,首先我想到就是利用原有的登陆注册这两个链接皮肤对象,再结合DNN自带的CommandButton(文章"Read the rest of entry »

你需要么,dnn多语言解决方案?

目前dnn多语言解决方案是我这段时间研究的重点, 我接下来也许会写几篇相关文章阐述这些问题.
切入正题, 本地化是ASP.NET的特性, 无疑dnn也会直接支持, 但是事实上并不是很乐观, 因为dnn本身也只是在表面上作些文章吧了, 如果你想利用dnn实现多语言门户(Portals), 那你可能想错了, 除非你重新开发或在模块级别上定制的开发支持多语言. 那dnn究竟支持多语言到何种程度呢? 让我慢慢道来, 其实dnn默认支持的多语言只局限于页面标签(Tags,Token etc), 比如登陆链接, 编辑模块时的字段Label等等, 而这些并非我们通常理解的内容本地化(多语言支持). 当然你可以通过下列两种解决方案来实现:
1) 模块级别的多语言开发,但你的内容可能需要存储好几个版本(根据你站点支持的语言总数)
   2) 站点级别的多语言开发,也就是你需要发布好几个站点(根据你需要支持的语言总数)

目前在DNN模块市场也有一些模块按照第一种思路做到了内容上支持多语言,比如:
1) MLSkinHelper, PageLocalization Module,Language Selector skin object 等等
http://www.apollo-software.nl/Home/tabid/36/language/en-US/Default.aspx
最经典的范例就是http://declic-video-fx.com/,它利用apollo-software相关模块实现了多语言站点,可以说基本上实现了多语言支持的所有功能.
2) Localization Extensions: Easily implement mul ...

你在为寻找dnn资源而发愁么?

如题目所言, 你在为寻找dnn资源而发愁么?苦于搜索好些时候也没找到自己所遇到问题的合适解决方案, 其实对我个人所言, 如果你想查找dnn资源, 毕竟还是国外资源要比国内资源丰富得多, 时效性也好些,故此我推荐大家如果有点耐性的话不妨多看看国外的DNN资源, 我想这对你的dnn之旅会受益不少. 在此我推荐一个专门针对dnn资源搜索的网站, 你可以比较有针对性的获取到纯"DNN" 的第一手资源, 也许里边就有你想要的解决方案, 同时它也提供了一些有效获取dnn资源的途径:

资源共享的第一份礼物

本着资源共享的原则,我在此先给大家拿出第一份礼物(也作为即将到来的全国第一个五一小假的纪念 :)

你愿意共享DNN资源么,抑或你需要DNN资源?

在一个QQ群里,总是不断有新人进来,就好比dnn社区,也不断会有新手进来,这不可避免出现老是不断的问同一个问题的状况,在此我想创建一个专门共享资源的群区,大家可以在此分享自己的DNN资源,积少成多,我想最终我们大家都会受益匪浅的.这样就有DNNSUN讨论区(群号:60930597)的创建,哪位有兴趣者不妨加入,但有一个小小要求,希望你不是那种只顾索要资源的类型,而是真正的发扬资源共享精神的一分子. 当然因为DNN本源就是开源的,所有我们在此更多的是推广DNN的非商业运用及其资源收集.
如果你愿意分享的话,我会负责整理这些资源,让大家一起受益,也让后来者感激不已的.当然我们团队也会收集所有关于dnn的资源发布在这里(或我们的站点http://www.dnnsun.com)
目前我们的口号是:让我们一起努力,研究DNN的所有相关课题,希望给DNN在中国的广为人知贡献一点绵薄之力!
这一活动的伸延就是Best Web Gallary的诞生,在此你可以得到最新,最实时的,最前卫的DNN设计及其同行者的咨询,最优秀的DNN网站资源. 访问Best Web Gallary请点击:http://www.dnnsun.com/Home/ShowCase.aspx

如何定制dnn的FCKEditor

这篇文章将简单介绍如何使用和定制DNN里边的富文本编辑器(Rich TextEditor): FCKEditor