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及其相关本网站的一些琐碎事情。

DotNetNuke OpenForce '08 来了

DotNetNuke OpenForce Is Back,After a highly successful OpenForce '07 it is now time to begin planning for OpenForce '08.  We are currently working with our conference partners on the OpenForce '08 conferences.  One of our first tasks is to start identifying our speakers.
Are you a DotNetNuke expert?  Do you like to share your DotNetNuke knowledge with the community? Do you enjoy speaking in front of large crowds? You are exactly the person we are looking for.
Please visit the detail from here ( http://www.openforce08.com/Home/tabid/55/Default.aspx )

你的dnn站点慢了么?

当你的dnn站点在线运行了一段时间之后,你会发现速度在不断下降,加载页面很慢很慢,最后导致连自己都懒得访问了.这是为何呢?仔细寻找,你可能会发现数据库一直在膨胀,我想这就是站点变慢的罪魁祸首,在dnn中,如果你开启网站记录这一功能或某一任务调度,这些都会产生一堆的记录信息,久而久之就让你站点的数据库不断的膨胀. 你如果有条件或权限的话,你不妨到主机管理/SQL服务或在SQL Manage里执行以下语句看看你的数据库大小都消耗在哪了:  
sp_spaceused eventlog/sitelog/schedulehistory
 
我想到这你就应该很清楚我们下一步该怎么做,那就是把这些信息都清除了,减轻网站的页面加载压力. 当然,如果这些信息对你跟踪网站有用的话,那你只能继续你的”蜗牛之旅”了.下边列举两种方法可以清除这些记录.
1)  网站管理/查看日志网站记录等页面手动清除,这一方法的缺点就是你还是没法清除schedulehistory这一表里的数据.
2)  主机管理/SQL服务下执行以下SQL脚本:
 
  1. TRUNCATE TABLE {databaseOwner}[{objectQualifier}eventlog]   
  2. GO   
  3.   
  4. TRUNCATE TABLE {databaseOwner}[{objectQualifier}schedulehistory]   
  5. GO   
  6.   
  7. TRUNCATE TABLE {databaseOwner}[{objectQualifier}sitelog]   
  8. GO   
  9.   
  10. TRUNCATE TABLE {databaseOwner}[{objectQualifier}SearchItemWordPosition]   
  11. GO  
就我本地开发服务器上的dnn站点,原来备份数据有60M左右,清理之后我再备份就只有不大10M,我想这效果还是很显然的,所以不管是站点变慢了还是因为备份需要,我觉得我们都可以例时执行以上SQL脚本清理一下,这不失为一种策略.

如何定制DNN站点的网站管理和主机管理

申明一下,这一篇文章是参考http://www.dnnskin.cn站点上的某一贴子而写,就是对此有所总结。(大家有兴趣不妨去看看,挺不错的:)admin configure
在DNN使用中,我们可能有这样的需求,那就不想开放过多的权限给管理员以防止误删的事件,当然可能也有这样的需求, 增加某一个管理页面,对此的一般做法设置为管理员可见,这样就可以保证只有管理员才能查看和编辑这个页面,但是红色的边框提示确实比较难看,或许你需要把这个页面加入到admin或者host菜单,这样更方便管理和显得合理。在这里我们列举如何利用SQL Script来实现(当然也可能也有其他方法,但SQL应该是比较方便和直接的,前提你具有host帐号权限),接下来我们就分别对这两种情况讲解.
注意:以下更改之后必须重启IIS方才生效。
1) 屏蔽某些管理页面,也就是隐藏这些页面,最简捷的解决方案就是把类似以下的脚本拷贝到 主机管理/SQL服务下 当作脚本执行即可隐藏这些页面,不过缺点也是明显,如果你直接拷贝原来的Url仍然可以访问这一页面,实质就是我们只不过玩弄一下技巧吧了,当然你也可以设置IsDeleted或DisableLink这一属性,这就可以彻底的防止通过Url访问了。
UPDATE {databaseOwner}[{objectQualifier}Tabs]
SET [IsVisible]='0' -- Apply to the admin tab to not showWHERE tabid=52
2) 增加管理页面并加入网站管理或主机管理菜单中。
首先我们新建一个页面,要记得查看页面id并记录下来 ,页面权限为正常即可,不必设置为管理员可见,然后添加管理模块到该页面,之后把类似以下的脚本拷贝到 主机管理/SQL服务下 当作脚本执行即可完成把管理页面改到管理菜单下
UPDATE {databaseOwner}[{objectQualifier}Tabs] SET [TabOrder]='10032',
[IsVisible]='1',
[PortalID]=0, -- the filed related to which portal the admin menu exist 
[ParentID]='38',
[Level]='1', -- the filed is the menu level, 0 is 1st, 1 apply to 2st...
[TabPath]='//Admin//YourTabName', -- YourTabName is your tabName which you will insert into the admin menus
[IconFile]='yourTabimage src' -- this filed is optionalWHERE tabid=57
参数解析:
1) TabOrder: 站点管理菜单TabOrder值截止到10031,也就是说你可以用10032 10033 10034……
2) ParentID: ParentID的计算,站点ID为0时,ParentID为38,站点ID为1时,ParentID为56,站点ID为2时,ParentID为74,站点id加1,ParentID加18
portalid=0 ParentID=38
portalid=1 ParentID=56
portalid=2 ParentID=74
portalid=3 ParentID=92
……
这一方法待考证.
3) tabid: 你要加进管理菜单的页面的id
类似如果想要把管理菜单写入host菜单下,需要修改语句如下:
UPDATE {databaseOwner}[{objectQualifier}Tabs] SET [TabOrder]='24',
[IsVisible]='1',
[PortalID]=null,
[ParentID]='7',
[Level]='1', -- the filed is the menu level, 0 is 1st, 1 apply to 2st...
[TabPath]='//Host//YourTabName', -- YourTabName is your tabName which you will insert into the admin menus
[IconFile]='yourTabimage src'-- this filed is optionalWHERE tabid=57
参数解析:
1) TabOrder: TabOrder主机管理菜单TabOrder值截止23,你可以用24 25 26……
2) PortalID: 主机管理菜单PortalID值不变,因为主机管理是全局的,故PortalID默认为NULL
2) ParentID: 类似PortalID,因为主机管理是全局的,故ParentID一般为7
3) tabid: 你要加进管理菜单的页面的id
当然还可以在Admin或者是Host菜单下添加二级管理菜单,只需要加上TabPath='//Admin//一级//二级//…',

如何关联dnn脚本文件SqlDataProvider文件

在DNN中,模块开发的SQL脚本一般都是以.SqlDataProvider为后缀名,并且都带有模块的版本号,Higlight SQL 如此DNN在模块安装过程会自动识别模块现有的版本及其即将更新的版本并自动执行对应版本的SQL脚本,从而达到更新数据库的目的。然而苦恼的是在IDE中,比如Visual Studio(其中包括2003,2005,2008)都不能有效的显示SQL智能提示及其关键字高亮,平常择中的办法就是先把后缀名为.SqlDataProvider的SQL脚本文件修改为.sql,然后发布的时候在改回来,这样显得比较麻烦,其实我们可以修改一下注册表让Visual Studio支持.SqlDataProvider为后缀名的文件,其实很简单,就是需要你去注册表里边增加一注册项,
请按照下列步骤操作(Visual Studio 2008为例):
1. 单击“开始”,单击“运行”,在“打开”框中键入 regedit,然后单击“确定”。
2. 找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Languages\File Extensions\.sql
3. 单击“文件”,然后单击“导出”。
4. 在“文件名”框中,键入用于保存包含原始注册表项的 .reg 文件的文件名,(比如sql)然后单击“保存”。
5. 用记事本或其他文本编辑器打开sql.reg,并把.sql更改为. SqlDataProvider,另存为SqlDataProvider.reg
6. 双击SqlDataProvider.reg导入注册表即可
接下来你打开某一个模块Project,你会发现凡是. SqlDataProvider后缀的脚本都可以关键字高亮,这就是你想要的。:)

如何定制安装dnn

如何定制安装dnn,如何修改dnn配置文件以达到我们需求,如何预安装admin菜单及其相关权限等等,我想这些都是部署dnn所必须考虑的问题,在此我还推荐一篇文章详细说明如何定制自己的dnn安装过程...

一些值得推荐的DNN资源

好久没写博客了,今天就此先推荐几篇文章算是自己的一些记录吧
1)  记得之前写过一篇如何定制自己的登陆或注册页面, 现在国外有一篇类似的文章,作者对此讲解得比较详细,如果需要深入了解的朋友,不妨去看看:
2) 记得之前有人问起如何更改FCK Editor默认的字体或样式, 你不妨看看这篇文章. 作者对此列举比较详细的步骤.
3) 在此强烈推荐这个工具类型模块, 它在开发及其测试环境下很用处, 也就是它允许你可以任意的切换用户,比如在你开发一个需要不同权限用户所对应的功能也不一样的模块来说,这是一个很简便的测试工具. 
4) 如何动态编程管理模块, 不妨看看这篇文章, 作者对此详细描述如何利用DNN框架已有的方法来管理页面上的模块, 最后总结如下:
A)使用DotNetNuke.Entities.Modules可获取到一些辅助类,在管理模块给与你很多现成的方法(比如增加,删除,复制当前模块等等)
B)类ModuleInfo主要包含在特定页面某一个模块所有相关信息.
C)类ModuleController主要包含一些操作模块的API函数, 比如比如增加,删除,复制当前模块等等
D)你可以调用类ModuleController里边的AddModule()直接生成你所需要的任何模块.
E)你可以调用类ModuleController里边的CopyModule()复制你所需要的任何模块.
F)你可以调用类ModuleController里边的DeleteTabModule()删除某一页面存在的模块.
G)你可以调用类ModuleController里边的DeleteAllModules()删除所有页面存在的模块.

开发DNN模块之Utility

列举一些可能我们在开发DNN模块中需要的Utility,比如获取文件的绝对路径等等,有时我们在开发模块的过程中,不妨多去DNN核心代码里边查看,也许你想实现的方法本来DNN已径实现了,那就没有必要自己再重写一遍了,毕竟我们的项目都是在DNN核心架构上开发的,尽量利用原有的代码总是最佳捷径,推荐大家去看看...

DNN模块开发应用Ajax之Utility

DNN模块开发中,如果需要应用asp.net Ajax的话,你总得小心翼翼,比如在模块设置,web.config,再比如你是否还需要DNN默认自带的ClientAPI呢,请看DNN模块开发应用Ajax之Utility,里边会有一些技巧及其经验分享...

DNN今日之影响力

值得祝贺一下,目前DNN在.net平台上的影响力已达到了一定的程度,算是.net平台上的开源社区一朵璀璨的奇葩,以至最近DotNetNuke.com被评为.net开发人员必知的一个开发资源网站,从此可窥知DNN的潜力和发展前景.

如何定制DNN登陆页面

提供一种定制DNN登陆页面的方案,简便而灵活, 本站点就是定制了跟原本不一样的登陆页面...