CommunityServer 2.1初步学习

接触communityserver很长时间了,从1.1到2.0、2.1、再到2007,不过都是停留在表面,一直静不下心来研究,现在终于有点精神看源代码了。

为什么不看2007而是看2.1呢,我个人以为2007比2.1复杂,对新手来说,学习asp.net2.0还是从communityserver2.1开始好

记得以前每次打开cs项目,一看aspx源码头就晕了,没有cs,全部是controls,一个类继承 一个类,没有熟悉的HTML代码,根本不知道从何处下手。

网上介绍communityserver的文章确实不少,如cs.cnblogs.com专题,还有仿照cs架构的netfocus项目,都有不少学习资源。

好了,开始学习吧。

打开web项目下的default.aspx页面,如上面所说,没有任何html代码,全部是一些控件。从上往下看,先看这行

<CS:MPContainer runat="server" id="Mpcontainer1" ThemeMasterFile = "HomeMaster.ascx" >

    
<CS:MPContent id="bcr" runat="server">

 

 在网上搜索了下,原来mpcontainer就相当于一个容器,打开controls项目下的ContentContainer.cs文件,原来它继承了第三方控件,关于MetaBuilders就不多说了,不属于本文范围。MPContainer类就设置了MasterPageFile的路径,默认为master.ascx,default.aspx页面传入一个参数homemaster.ascx,表示default.aspx的父页面是homemaster.ascx。而在homemaster.ascx也有<CS:MPContent。表示它也有父页面,而MPContainer类里面,默认父页面是为Maste.ascx,找过去一看,终于看到html代码了,首页的总体框架,都在这里定义了。继承Master.ascx页面的HomeMaster.ascs和default.aspx页面填充id相应的MPRegion内容。

终于对default.aspx的实现机制有点了解了,具体来说就相当于asp.net的母板页,Master.ascx是母版,homeMaster.ascx继承它,填充数据到Master.ascx页面,HomeMaster.ascx和default.aspx也类似俩者的关系

具体关于MpContainer,MPRegion,MpForm等内容,请查看http://www.netfocus.cn/article1118.html

附:介绍Community Server的一本书 Professional Community(英文版) (PDF)


posted @ 2008-08-01 11:23  拖拉机大叔  阅读(356)  评论(0编辑  收藏  举报