其实也谈不上学习,因为我对vb不怎么了解,郁闷!觉得DNN最好的地方就是它可以添加moudle,tab,portal.最重要的地方当然是它的模块加入了,因为模块的作用就是完成一个功能.最开始我被系统自带的模块和自定义的Tab给迷惑了,比如Admin下边的一个Tab,叫做Site Log,当我点这个Tab的时候,发现在这个Tab里边包括了一个东西也叫Site Log,怎么都理解不了是怎么实现的,后来一看数据库里边的内容,其实这个也叫Site Log的东西,不过是系统加入的一个Site Log Moudle而已.
到现在主要看了一下User Account模块,发现它的管理上对于address用户控件实现了对一些内容是否为必添项由管理员控制,其实结构不是很麻烦,但由于我们是逆向研究代码,探究其实现,所以感觉很乱!
在这个系统中,大量用到类似这样的代码
DataProvider.Instance().UpdateModuleSetting(ModuleId, SettingName, SettingValue)
和SqlHelper.ExecuteNonQuery(ConnectionString, DatabaseOwner & ObjectQualifier & "UpdateModuleSetting", ModuleId, SettingName, SettingValue)
就我的理解,是叫做所谓Provider(提供者)/Factory(工厂)模式,目的就是可以实现对不同数据库的支持,好处应该是当要对系统进行扩展,比如要加入一个对oracle数据库的支持只需要再实现一个类似SqlHelper.ExecuteNonQuery这样的东西,也就是说满足开放/闭合原则.对于整个系统还采用到什么模式,我也不太清楚,高手指点.对于UpdateModuleSetting这样的类名,在数据库中有同样的名字UpdateModuleSetting这样的存储过程,所以学习这些类的关系时,通过存储过程就能学习个大概.大家有什么好的学习方法,大家相互学习.我这只算是一个笨方法.
同时也有一些疑问,比如这些不同的.cs文件,他们组织的依据是什么,有时候我发现,要完成的功能,可能不是在它自己的文件夹中,组织的原则又是什么呢?还有就是CompanyName.Survey以及相似文件夹,是用来干什么.
另外对模块的学习,一个相当不错的地方,包括用c#自定义模块,这里有很详细的示例
http://dotnetnuke.dk/Default.aspx?PageContentID=8&tabid=60,也包括了一些可下载的moudle,不过对http://www.dotnetnuke.com/,不知道怎么利用里边的资源.
对dnn的了解,我只是一知半解,感谢灵感之源和中Rainbow,从他们那学到很多东西,希望能得到大家的指点.
到现在主要看了一下User Account模块,发现它的管理上对于address用户控件实现了对一些内容是否为必添项由管理员控制,其实结构不是很麻烦,但由于我们是逆向研究代码,探究其实现,所以感觉很乱!
在这个系统中,大量用到类似这样的代码
DataProvider.Instance().UpdateModuleSetting(ModuleId, SettingName, SettingValue)
和SqlHelper.ExecuteNonQuery(ConnectionString, DatabaseOwner & ObjectQualifier & "UpdateModuleSetting", ModuleId, SettingName, SettingValue)
就我的理解,是叫做所谓Provider(提供者)/Factory(工厂)模式,目的就是可以实现对不同数据库的支持,好处应该是当要对系统进行扩展,比如要加入一个对oracle数据库的支持只需要再实现一个类似SqlHelper.ExecuteNonQuery这样的东西,也就是说满足开放/闭合原则.对于整个系统还采用到什么模式,我也不太清楚,高手指点.对于UpdateModuleSetting这样的类名,在数据库中有同样的名字UpdateModuleSetting这样的存储过程,所以学习这些类的关系时,通过存储过程就能学习个大概.大家有什么好的学习方法,大家相互学习.我这只算是一个笨方法.
同时也有一些疑问,比如这些不同的.cs文件,他们组织的依据是什么,有时候我发现,要完成的功能,可能不是在它自己的文件夹中,组织的原则又是什么呢?还有就是CompanyName.Survey以及相似文件夹,是用来干什么.
另外对模块的学习,一个相当不错的地方,包括用c#自定义模块,这里有很详细的示例
http://dotnetnuke.dk/Default.aspx?PageContentID=8&tabid=60,也包括了一些可下载的moudle,不过对http://www.dotnetnuke.com/,不知道怎么利用里边的资源.
对dnn的了解,我只是一知半解,感谢灵感之源和中Rainbow,从他们那学到很多东西,希望能得到大家的指点.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix