mojoPortal 笔记
最近研究 CMS 建站,要有个人主页的功能。网上搜了一把,好多人提到 mojoPortal ,受这些明明没用过反而把它列在CMS列表中显示技术与国际接轨的人的文章的影响,展开了两天的研究。个人主页功能没有成功,有些失望,怀着,把这两天的成果记录一下,以后再也不碰它的想法,写下此文。
1. 所有数据操作都采用存储过程。 开发时应该有工具把存储过程直接生成不同数据库的 DAL 层。
这个方法显的很笨,代码量大增,不使用缓存的情况下可以使用存储过程来保证性能。
有如下项目:mojoPortal.Data.MSSQL , mojoPortal.Data.MySql ,mojoPortal.Data.pgsql,mojoPortal.Data.SqlCe,mojoPortal.Data.SQLite,mojoPortal.Data.FirebirdSql。
相应的,还有一个 Features 层,上面的 Data 层好比是数据库原始功能, Features 就像是业务封装,业务封装可能调用几个不同的存储过程组合成一个业务。也有傻逼到一个方法只调用一个 Data 方法的时候,估计是为了不跨层访问搞出来的畸形玩意。
这导致,我想建表扩展功能,这两层真伤不起。
2. 一些小Bug:
~/Amin/SiteSettings.aspx 135 行 这个标签应该是: <mp:SiteLabel ID="Sitelabel85" runat="server" ForControl="chkAllowUserEditorChoice" CssClass="settinglabel" ConfigKey="AllowUserEditorLabel" EnableViewState="false">
所有皮肤缺少: textarea.widetextbox { width:23em;}
引用 官方图片 和 google 脚本分析的页面在各个皮肤分散着,不好去除。
3. 最关键的是整站是单站点设计,也就是说,不能建个人主页, 皮肤是设置到登录用户的,而不是个人主页上。由于数据层的限制想扩展比较困难。
4. 所有显示资源全部在 resx 文件中,控件使用 ConfigKey="ResKey" 属性来调用相应的资源
5. 和大多数的CMS一样,重写了所有的显示控件。 因为 A 标签或 Span Div 类的标签,不能根据 ConfigKey 来设置InnerHTML
6. 系统带有 log4net , UpdatPanel,海量的配置文件项,jQuery。
7. 设计页面,并没有拖动布局的功能, 这是WebPart 典型功能,类似很多技术都有。看官方视频,mojo 早前版本也有,但最新版本没有了。
8. 一个 Admin 文件夹,可以有125 个文件,一个 SiteUtils.cs 文件 4000 行码。 从中可以看出项目没有那么严谨的规则和架构。有明显堆砌效果。 官方代码如此,二次开发比这种情况更糟!
在我看来,该项目笨拙臃肿,不伦不类,不值得使用。
作者:NewSea 出处:http://newsea.cnblogs.com/
QQ,MSN:iamnewsea@hotmail.com 如无特别标记说明,均为NewSea原创,版权私有,翻载必纠。欢迎交流,转载,但要在页面明显位置给出原文连接。谢谢。 |