您的位置:首页 > 运维架构

mojoportal学习——文章翻译之复制一个mojoportal存在的特色模块

2010-10-17 15:43 288 查看
翻译的不好 大家见谅

复制一个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来完成代码的运行,这样克隆模块就完成了,你可以在你得模块上随意的修改了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: