简单学习下Oxite的项目结构-1

FileDownload.aspx?ProjectName=oxite&DownloadId=50921

Oxite出来有一段时间了,今天抽点时间看了下。项目的整体结构如下:

image

按顺序由上到下大概说一下吧。

image

Oxite项目算是一个核心的东西吧,分别来看一下:

image

BackgroundServices是一个后台服务类,为下图的Oxite.BackgroundServices项目服务:

image

具体的关系大概如下:

image

IBackgroundService接口提供一个Run方法,然后由BackgroundServiceExecutor使用Timer来管理Run()方法的执行、停止于超时处理。具体的实现就去看BackgroundServiceExecutor类和BackgroundServicesExecutor类吧。

Oxite项目下的Configuration文件夹,就是web.config中的Oxite配置节,没什么好说的,略过。

Oxite项目下的Data目录:

image

我们看到里面几乎全是接口。这是由于这里使用了Repository模式,同时为了和Linq2SQL配合,直接来看看Linq2SQL项目中的一些代码大概你就明白了:

partial class oxite_Tag : ITag
{
    #region ITag Members

    public ITag Parent
    {
        get
        {
            return oxite_Tag1;
        }
        set
        {
            oxite_Tag1 = (oxite_Tag)value;
        }
    }

    public Guid ID
    {
        get
        {
            return TagID;
        }
        set
        {
            TagID = value;
        }
    }

    public string Name
    {
        get
        {
            return TagName;
        }
        set
        {
            TagName = value;
        }
    }

    public DateTime? Created
    {
        get
        {
            return CreatedDate == SqlDateTime.MaxValue.Value ? (DateTime?)null : CreatedDate;
        }
        set
        {
            if (value == null)
            {
                CreatedDate = SqlDateTime.MaxValue.Value;
            }
            else
            {
                CreatedDate = value.Value;
            }
        }
    }

    #endregion

    partial void OnCreated()
    {
        CreatedDate = SqlDateTime.MaxValue.Value;
    }
}

注意上面的是partial类和partial方法。

在Data目录里面还有一个IOxiteDataProvider类,里面定义所以必须的Repository,Linq2SQL的DataProvider实现类图如下:

image

下面顺便看一下Oxite.LinqToSqlDataProvider项目:

image

Oxite项目下的Handlers目录主要就是XMLRPC(RPC是Remote Procedure Call的缩写,翻译成中文就是远程过程调用)和IMetaWeblog的实现,用于支持用Windows Live Writer之类的软件来发表文章。里面还有一个RedirectHttpHandler用于301跳转。

Oxite项目下的Routing文件夹:

image

这个就是将我们在Global.asax中的Route规则注册写到了这里(在OxiteRoutes类中),里面就是这东东:

image

同时实现了一些自定义的注册Route的时候用到的约束条件。要实现一个Constraint就是实现IRouteConstraint接口的Match方法就可以了:

image

Search目录自然就是搜索拉,没看,就不说了。

还有剩下的下图红框部分:

image

这些没什么好说的就不说了。

明天还要早起,睡了!剩下的后面补上。

Enjoy!Post By Q.Lee.lulu

转载于:https://www.cnblogs.com/QLeelulu/archive/2008/12/21/1359161.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
早在12月5号,微软就发出了将要发布开元的CMS系统的消息,正如微软官方所说,我们在12月6号也确实下载到了Oxite 的程序源码。实在是强大,网上赞扬的声音此起彼伏,我今天也粗略的体验了一把。 我的操作系统使用的是win server 2003 sp2 ,据Oxite Code Plex 官方的消息是可以在win server 2003 上跑得,但是我再安装sql server 出现某个应用没安装的问题,所以呢,严格的说,我也没有真正的在服务器上假设成功。姑且就让他在 VISUAL WEB DEVELOPER 里调试吧,如下,让我们一起来欣赏下漂亮的Oxite吧! 其实“开源”两个字通常和微软扯不上太多的联系,不过,这次微软却出乎意料的放出了首款开放源码的博客/CMS内容管理系统,Oxite。软件使用Microsoft Public License (MS-Pl)授权方式,而且源代码完全公开。Oxite兼容WEB标准,并具有高度扩展性,可用来设计博客或其它类型的网站平台。用其架设博客平台可以拥有博客发布,引用通告、匿名评论和评论审查等博客系统基本功能,此外还可对评论进行管理,任何页面均可做为RSS源输出,并带有一个Web管理面板,支持MetaWebLog API。不过,就现在所知道的情况,Oxite的最大缺陷在于其使用了微软的SQL Server数据库,当然,开发者也可以用其他数据库方案取而代之。这一点可以作为Oxite推出的一方面原因吧,权且当是起到一个抛砖引玉的作用。 微软于2008年12月6日在自己的开源社区CodepPex发布了首款内容管理系统oXite,目前为Alpha版本,大家可以Google一下oXite,很容易的就可以找到很多关于oxite的介绍,目前oXite.com/oXite.cn/oXite.com.cn等域名或官方或抢注全部没有了,说明这个系统在很短的时间内就确实引起了很多朋友的关注,作为微软的这一次开发,根据目前的反应来看,可以认为是相当成功了。 在准备体验Oxite时, 你需要看一下下面的资料。 一、oXite的开发环境配置 详细的大家可以上官方网站看看 :官方介绍 主要是: Visual Studio 2008,用Vs2005是打不开项目的。 Sql Server 2005 or 2008 Asp.net MVC Beta,不装也打不开项目。 单看上面所涉及到的这几个条件,目前很多主机服务商还不能满足要求,也就是先在自己的机器上看看了,环境配置好了之后,基本上就可以用Vs2008打开了,注意打开那个Oxite.VWDExpress.sln,我试着打开Oxite.sln失败了。打开成功后设置oxiteSite为启动项,直接F5运行就可以,数据库是不需要额外去配的,直接在项目oxite.database.mdf。在刚开始的时候由于Sql Server 没有装好,所以在昨天晚上没有调试成功,今天把Sql Server 重新装了一下,总算是成功了。 这时候我们就可以看到默认的博客界面了,另外Mix Online这个网站本身就是使用oXite架设的,大家也可以由此看到一些oXite在Web前端的一些东西了。 在用VISUAL WEB DEVELOPER打开项目时,由于默认的数据库服务器没有启动,所以,这个时候数据库是连接不上的,当然你在调试的时候也就会开到错误的提示了。 在你一切准备工作都做好之后,你就可以开始观看这个强大的Blog界面了 。 这是在成功看到的欢迎界面。 这是里面的一个测试页面 这就是管理的页面,不过相比看起来的确是简单的很多。 总体上那个说来,我们从整个过程中可以体会到这一点,Oxite下载很多地方还可以供大家继续发挥。相对来说,oxite确实是个轻量级的,压缩包才1M多点,解压后14M左右,不像微软自己的Sharepoint那么庞大。 前端支持很好,代码输出比较自主,不想Sharepoint那样,一个core.css就5000多行。 项目默认加入了jQuery/Yui/tag/rss/Pingback/trackback/Gravatar/UrlRewrite等流行元素。当然,毕竟是个Alpha版本的东西,或许是没太熟悉oXite的配置,或许是微软想像WP一样,更多的功能留给大家自己去发挥。 如此,这次的Oxite 我们就算是体验了,不过这只是粗略的带着钦羡的目光在看待一个完美的系统,更多的东西还待大家来发掘。 毕竟,oxite 也不是供简单的只是想用来假设个网站的人来用的,oxite 现在主要是针对vw开发者每而开源的,我就已我作为一个使用者的角度来看待这个系统,有以下看法: 1、网站管理功能过于简单,登录进去的管理首页和未登录几乎是一模一样的,只是右侧的日志存档列表换成了Tasks:Create Post/Create Page。看到的管理后台,就仅此两项,有点惊讶。 2、Create Page成功后不能直接出u了……现在首页的顶部链接中,我没找到我新建的页面跑哪里去 3、用户配置问题,后台非常的简单,所以用户配置不知道是使用asp.net默认的站点管理功能来做的,还是需要补充开发用户模块的功能,系统默认的管理员数据是写在oxite_user表里的,而且管理员的Gravatar对应的邮箱也是存在这个表里边的,搞得我找了半天都不知道在哪里修改那个外国佬的Gravatar头像…… 4、网站的基本设置,主要是通过web.config和直接写入数据库来的。web.config中我大致瞄了一下,包含了出数据库连接等基本要素外,还加了一些本应该开发在后台管理功能中的站点名称、网站域名、语言设置、时区设置、Gravatar参数等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值