• Orchard中的Host和Tenant


    Orchard的多个子站点特性

    Orchard中可以支持多个子站点。当你运行Orchard的时候,通常一个网站运行在一个应用程序域中。这也是一般ASP.NET应用程序区分两个网站的方法,也就是说两个网站,就需要部署两套网站应用程序。然而,Orchard提供了另外一种区分两个网站的方法。在Orchard中引入了多站点的概念(multi-tenancy,直译为多租户,但我觉得翻译为多站点更贴切),允许你在一个ASP.NET应用程序域中同时运行多个站点。从内存使用率的角度来看这是非常有用的,因为应用程序域的初始化、卸载和回收都是非常消耗资源的。在一个单独的应用程序域中运行多个独立的Orchard网站,就可以在一台服务器上配置更多的站点。做为主机托管商无疑会十分青睐这种方式,这样可以大量节约成本。就一般主机空间的租赁用户来说,也可以在一个主机空间中部署多个站点,这样也能省钱。多站点的功能在Windows Azure环境中会表现的更好,因为部署到Azure中就可以轻松支持多个站点了。

    Orchard中关于子站点的概念

    host

    一个host就是一个orchard站点。host是应用级别的单例,一个orchard站点只有一个host。

    tenant

    tenant代表了一个子站点。一个orchard站点可以有多个子站点。当一个orchard站点启动时,会有一个默认的子站点,名字是default。

    shell是子站tenant点级别的单例。一个shell代表了一个子站点,一个host代表了一个orchard站点。
        一个orchard站点可以有多个子站点,接一个host可以有多个shell,每个shell对应一个shellsettings。默认情况下,一个orchard站点有一个默认的子站点,即一个host有一个默认的shell

    子站点的配置

    子站点的配置其实就是orchard中的ShellSettings的配置。每一个子站点都有且仅有一个ShellSettings。

    shellSetting是Orchard.Environment.Configuration.ShellSettings.

    ShellSettingsManager:该类负责读取Setting.txt文件和保存shellSetting到Setting.txt。

    ShellSettingsSerializer:该类负责将Setting.txt文件中的内容序列化为一个shellSetting对象。

    image

    image

    image

    image

    相关类的源码解析

    AppDataFolder

    对App_Data文件夹的抽象,所有的传进来的或返回的虚拟路径都是基于"~/App_Data".

    AppDataFolderRoot

    对根目录"~/App_Data"的抽象.主要是为了可以对appdataFolder进行单元测试

    ShellSettingsManager

    用来从Setting.txt中读取文件内容到shellSetting对象,或者将shellSettings对象的信息写入到Settings.txt文件中。

    IEnumerable<ShellSettings> IShellSettingsManager.LoadSettings()
    void IShellSettingsManager.SaveSettings(ShellSettings settings)

    ShellSettingsSerializer

    shellSettignManager类做的事情在内部调用的都是ShellSettingsSerializer的方法来执行的

  • 相关阅读:
    三十岁前不要去在乎的29件事
    大型网站架构演变和知识体系
    性情中人。。。
    blog搬新家了。。。把以前的文章也都搬过来了。看看以前的文章,想起了很多。。。
    2006620 11:42:00 王子劳尔,王者归来
    2006620 11:40:00 这一刻,便是我们的永远给最爱的安德烈.舍普琴科
    第一份工作一定要选一家好公司 摘在 唐骏 《我的成功可以复制》
    2006811 11:29:00 搜索算法及其在ACM竞赛中的应用(作者/刘力科 计算机系01级4班)
    内核学习驱动隐藏进程
    2005129 17:58:00 新年快乐
  • 原文地址:https://www.cnblogs.com/leiwei/p/3451120.html
Copyright © 2020-2023  润新知