mojoportal学习——文章翻译之复制一个mojoportal存在的特色模块
翻译的不好 大家见谅
复制一个mojoportal存在的特色模块
经常会有人问道如何优化mojoportal中的模块,这里我们讨论的是内容系统模块而不是用于站点管理的核心模块。
比如 blolg ,image Gallery 或者 论坛模块等。
我不建议你直接到mojoportal的模块上修改代码,因为那样你很难升级到下一个版本。
一种可行的方法是,克隆已存在的模块,然后在你克隆的模块上进行修改。
基本的目标/步骤 如下:
1:建立你自己的工程,用于UI的网站应用程序,用于商业层的leisure,和用户数据层的类库。
2:为你的模块中的文件夹使用不同的文件名,使之不与原有的文件路径及文件名冲突。
3:使用你自己的命名空间,以区别原有的模块。
4:使用一个新的模块GUID,来区别原有的模块。
5:使用你自己的数据表,你可以自由的修改其架构
6:使用一个不同的配置文件,以区别原先的模块中的。
7:使用不同的资源文件(.resc)
让我们以博客模块作为例子,假定你希望添加一个文件到每一次发表文章,或者其他改变。
1:拷贝一个现有mojoportal.sln文件,然后重命名,然后你可以添加你的工程文件到这个解决方案文件中。
建立相应的网站应用程序,商业层库类,数据层库类。
2:从mojoPortal.Features.UI工程文件下拷贝Blog文件夹到你的网站应用程序下相同层次的位置上。
然后重命名这个文件夹,更改命名空间,查看具体代码,修改需要修改的路径。
3:从mojoportal.Features.UI/App_GlobalResources中的BlogResources.*.resc 文件到你的网站应用程序下的
App_GlobalResources文件夹下。无需拷贝.designer.cs我饿你就按,当你重命名你得.resc文件时,VS将会自动生成
.designer.cs文件。
4:在你的网站应用程序下建立Setup文件夹,在其中建立一个applications文件夹,
拷贝mojoPortal.Features.UI/Setup/Applications/blog文件夹到其中,并且重命名。
5:查看FeatureDefinitions文件夹,重命名2000_BlogModule.config文件为 自定义文件名.config
然后用文本编辑器打开这个文件,更改模块GUID ,你可以使用MS SQL的Select newid()或者在.net中使用Guid.NewGuid().ToString()来生成一个新的GUID,
另外,你需要改变模块的名字,修改ControlSource来更新到新的路径。改变你得资源文件的名字 (rersource.rext),无需.resx扩展名。
6:从mojoPortal.Features.Data.MSSQL/blog到你的数据层工程,并更改命名空间
7:拷贝mojoPortal.Features.Business/blog到你得商业层工程中,并更改命名空间,并添加到数据层工程的引用。
8:回到网站应用程序,修改并使用新的命名空间,在Setup文件夹下建立ProviderConfig文件夹,其下建立indexbuilders文件夹。
拷贝mojoPortal.Features.UI/Setup/ProviderConfig/indexbuilders/blogindexbuilder.config文件到你的工程中
相同文件夹下,重命名为 "yourcustomnameindexvbuilder.config",用文本编辑器打开,修改相应的命名空间和程序集名。
9:下一步是建立相应的数据库表和存储过程,你可以使用不通前缀名来加以区别。在
/setup/applications/[applicationname]/文件夹下,有2个文件夹,第一个用于数据库初始化安装,里面只有一个文件,
第二个文件夹中是升级文件。如果你只对MSSQL数据库平台感兴趣,第一个脚本文件在 /SchemaInstallScripts/mssql,其他的脚本文件在
SchemaUpgradeScripts/mssql文件夹中,使用文本编辑器,比如TextPad,你可以查找并替换 mp_ ,比如以joe_或者其他前缀。
现在,当你运行这些脚本,将会创建你自定义的表和存储过程。
10:
最后的一步是建立你自己的post build 事件拷贝需要的文件到web 工程中,你可以从mojoPortal.Features.UI工程中拷贝并修改相关代码。
11:运行setup/default.aspx来完成代码的运行,这样克隆模块就完成了,你可以在你得模块上随意的修改了。