Rainbow Portal 架构

2024-01-11 12:38
文章标签 架构 rainbow portal

本文主要是介绍Rainbow Portal 架构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Rainbow Portal 架构  

1.Portal架构

  • 一个Rainbow站点集合可以包括多个web站点
         多个站点能使用同一代码同一个数据库;所有的Portal共用一个web.config文件。但每个Portal都有单独的目录来保存上传的图片和文件。
  • Rainbow站点由多个页面(Page)构成
         页面分层管理,层次理论上是无限的,页面间的导航通过菜单实现。Rainbow内置许多不同类型的菜单,包括传统的下拉式菜单,Tabs等等。当然也可以使用自定义的菜单。每个页面根据是否有权限可以显示或隐藏。每个页面都通过动态加载用户控件生成的。
  • Rainbow页面有模块(module)构成
         每个模块通常提供某种类型的功能,如电子商务、讨论、文章等。Rainbow内置70多个模块。用户可以对每个模块进行单独授权,查看、编辑、增加、或是删除模块的内容。模块可以很方便的从一个页面移动到另外的页面。
    2.架构的实现
      2.1 .数据库结构
         让我们从数据库表结构开始,来分析架构是如何实现的。
           如图。图中只是和架构有关的部分数据库表。
         Rainbow在一系列有层次的表中保存Portal的结构。
         最上面的表是Portal,每个Portal都有独特的设计和自定义属性,以键/值的形式保存在rb_PortalSettings表中。
         每个Portal都包含页面,这些页面的构成类似树状结构,每个页面的自定义属性以键/值的形式保存在rb_TabSettings表中。
         页面包含模块;每个模块都有特定的功能。GeneralModuleDefinitions表中,包含所有的模块。模块可以用在特定的Portal中,其信息保存在ModuleDefinitions表中。Module表中保存模块实例,其权限也保存在表中。每个模块的自定义属性以键/值的形式保存在rb_ ModuleSettings表中。
         对数据库表的操作通过存储过程来实现的。
      2.2 .程序实现
         Portal的有关设置信息通过PortalSettings 类来处理。
         Portal的信息包括:
  • Portal ID
  • Portal 名称
  • 页面集合
  • Portal的自定义设置
  • 当前页面和其自定义设置
  • Portal和网站的一些属性
  • 当前采用的主题和页面布置
         在每个Web请求的时候,PortalSettings类实例都被更新,并保存在Context上下文中。在Global.asax.cs的Application_BeginRequest事件中,生成PortalSettings类实例:settings = new PortalSettings(pageId, portalAlias),参数pageId是当前的页面,portalAlias是Portal的别名。
         PortalSettings类实例保存在Context中,可以在应用程序任何地方使用,包括页面、组件、自定义控件等等。
         Portal页面保存在PortalSettings实例的公共属性中:DesktopTabs和MobileTabs中(以ArrayList的形式保存),每个页面的属性保存在TabStripDetails实例中。可以通过Context上下文的PortalSettings来获取页面集合。
    页面导航由Rainbow的页面布局来处理,通常在DesktopPortalBanner.ascx用户控件中,通过DesktopNavigation 和 MenuNavigation控件显示。DesktopNavigation 和 MenuNavigation控件遍历页面集合,检测当前的用户是否有权查看页面,如果有权限就增加到另外一个要绑定到DataList的集合中。
         当用户点击页面链接时,PortalSettings实例更新,设置当前页面。当DesktopPortalBanner.ascx加载的时候,DataList中的SelectedIndex属性设为当前页面的索引。
         前面讲的都是框架,Portal模块包含的才是Rainbow Portal的实际内容,每个模块处理一个特定的内容。所有的模块都是从PortalModuleControl基类中继承的,PortalModuleControl提供了模块和框架之间一些必需的通讯。


    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1478472

这篇关于Rainbow Portal 架构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/594383

相关文章

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

创业者该如何设计公司的股权架构

本文来自七八点联合IT橘子和车库咖啡的一系列关于设计公司股权结构的讲座。 主讲人何德文: 在公司发展的不同阶段,创业者都会面临公司股权架构设计问题: 1.合伙人合伙创业第一天,就会面临股权架构设计问题(合伙人股权设计); 2.公司早期要引入天使资金,会面临股权架构设计问题(天使融资); 3.公司有三五十号人,要激励中层管理与重要技术人员和公司长期走下去,会面临股权架构设计问题(员工股权激

【系统架构设计师】黑板架构详解

黑板架构(Blackboard Architecture)是一种软件架构模式,它模仿了多个专家系统协作解决问题的场景。在这种架构中,“黑板”作为一个中央知识库,存储了问题的当前状态以及所有的解决方案和部分解决方案。黑板架构特别适合于解决那些没有确定算法、需要多个知识源(或称为“专家”)共同作用才能解决的复杂问题。 一、黑板架构的组成 黑板架构主要由以下几个部分组成: 黑板(Blackboa

Java后端微服务架构下的API限流策略:Guava RateLimiter

Java后端微服务架构下的API限流策略:Guava RateLimiter 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 在微服务架构中,API限流是保护服务不受过度使用和拒绝服务攻击的重要手段。Guava RateLimiter是Google开源的Java库中的一个组件,提供了简单易用的限流功能。 API限流概述 API限流通过控制请求的速率来防止

Arch - 演进中的架构

文章目录 Pre原始分布式时代1. 背景与起源2. 分布式系统的初步探索3. 分布式计算环境(DCE)4. 技术挑战与困境5. 原始分布式时代的失败与教训6. 未来展望 单体时代优势缺陷单体架构与微服务架构的关系总结 SOA时代1. SOA架构及其背景1. 烟囱式架构(Information Silo Architecture)2. [微内核架构](https://www.oreilly.c