热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

探讨Web组件化实现

CMS组件化,简单架构示意图:Web组件使用WebPage+WebAPI的好处:?组件复用(组件条件管理页面复用+获取组件数据API复用)。?组件是分布式的第三方应用,本身高内

CMS组件化,简单架构示意图:

bubuko.com,布布扣

Web组件使用WebPage+WebAPI的好处:

组件复用(组件条件管理页面复用+获取组件数据API复用)。

组件是分布式的第三方应用,本身高内聚、组件之间松耦合,可以理解为独立的子系统。

组件使用WebAPI,提供REST风格的WebService,轻量级,对客户端的要求也更少。

组件可以单独开发,单独测试,高度封装,可以区分不同环境,其它组件完全可以不做任何测试。

组件热插拔,组件易替换,可扩展性强,不会有dll相互依赖、影响,dll管理等一系列问题去处理。

.net/java/php/>都可以开发组件,可多元化发展。

组件都有自己独立的版本,组件可以独立编译,独立打包和部署,当某个组件有变化的时候,可以单独对变化的组件进行版本升级,单独对变化组件进行部署。

组件数据的生成会有特定的环境,组件自治,组件实现方式自由发挥。

可以单独做测试,可以独立部署、运行、调试等。

可以整合不同的开发平台(.net/java/php/...)开发出来的WEB组件。

甚至组件可以独立出去,由第三方去开发,维护,CMS平台可以管理这些组件,热插拔这些组件。

性能使用分布式的组件应该更好,如果组件都集中在CMS平台去统一调用数据,压力应该会更大。万一某个组件出故障而不会影响到整个页面展现。

组件数据也可以通过定时策略去拉取完成,根据组件配置。

为了简化组件部署,
CMS
平台可以准备好几类组件的虚拟目录去Host组件应用,也不用每个组件都是一个虚拟目录。【使用Restful风格架构的WebAPI暴露接口,更轻量化】

 

Web组件使用DLL的问题:

dll>管理麻烦,需要考虑集群、存储、依赖项dll、验证、配置、部署、问题排查维护、下线等。

dll>限制了只能.net去开发,很难整合不同的开发平台(.net/java/php/...)开发出来的组件。

dll>限制了组件的实现方式,有较大的约束,不能自由发挥,影响生产力。

dll>方式的组件条件页面较难管理和生成。

dll>对多种环境配置、日志、调试等带来很多麻烦。

dll>没有完全隔离,控制不好会影响到其他组件,而且怎么做隔离,有技术壁垒和风险。

dll>方式对开发成本要求高,有技术风险。

组件有依赖的配置,依赖dll
,依赖的环境等很多变化因素,dll很难去完全覆盖及支持到。

组件条件管理页面可能是很多组件公用的,不好分开。

获取组件数据API可能是很多组件公用的,不好分开。

dll>区分不同环境比较麻烦,对开发,测试都很难控制。

dll>依赖部署环境,若一个组件不想使用此环境,比如现在是II7.5+.net4.0集成环境应用程序池,如果有个组件要.net4.5开发的,或者需要.net4.0经典环境应用程序池,不能兼容等不好控制问题。

dll>组件数据的生成会有特定的环境,平台自治+组件dll支持,组件调用出问题责任不明确。

dll>很难做测试,不能独立运行。

 




bubuko.com,布布扣

 

组件如何实现示意图:




bubuko.com,布布扣


bubuko.com,布布扣


bubuko.com,布布扣

 

组件数据可以使用动态类型:



bubuko.com,布布扣

 

可以使用开源的Razor模板解析引擎,参考:Razor
Generator

原文:http://www.yifupaizi.com/home/news148.html ,转载请注明来源。




推荐阅读
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 探索新一代API文档工具,告别Swagger的繁琐
    对于后端开发者而言,编写和维护API文档既繁琐又不可或缺。本文将介绍一款全新的API文档工具,帮助团队更高效地协作,简化API文档生成流程。 ... [详细]
  • 本文探讨了在构建应用程序时,如何对不同类型的数据进行结构化设计。主要分为三类:全局配置、用户个人设置和用户关系链。每种类型的数据都有其独特的用途和应用场景,合理规划这些数据结构有助于提升用户体验和系统的可维护性。 ... [详细]
  • Linux中的yum安装软件
    yum俗称大黄狗作用:解决安装软件包的依赖关系当安装依赖关系的软件包时,会将依赖的软件包一起安装。本地yum:需要yum源,光驱挂载。yum源:(刚开始查看yum源中的内容就是上图 ... [详细]
  • 鼠标悬停出现提示信息怎么做
    概述–提示:指启示,提起注意或给予提醒和解释。在excel中会经常用到给某个格子增加提醒信息,比如金额提示输入数值或最大长度值等等。设置方式也有多种,简单的,仅为单元格插入批注就可 ... [详细]
  • 精致小屏灰色风格苹果CMS v10模板,支持DIY主题管理系统
    探索一款专为影视站设计的苹果CMS v10模板,具备强大的主题管理系统和500多个设置项,无需二次开发即可轻松配置。下载地址:https://www.mytheme.cn/maccms/244.html,演示地址:http://demo.mytheme.cn/index.php?id=244。 ... [详细]
  • 气象对比分析
    本文探讨了不同地区和时间段的天气模式,通过详细的图表和数据分析,揭示了气候变化的趋势及其对环境和社会的影响。 ... [详细]
  • 探讨 HDU 1536 题目,即 S-Nim 游戏的博弈策略。通过 SG 函数分析游戏胜负的关键,并介绍如何编程实现解决方案。 ... [详细]
  • 深入解析动态代理模式:23种设计模式之三
    在设计模式中,动态代理模式是应用最为广泛的一种代理模式。它允许我们在运行时动态创建代理对象,并在调用方法时进行增强处理。本文将详细介绍动态代理的实现机制及其应用场景。 ... [详细]
  • 深入理解ExtJS:从入门到精通
    本文详细介绍了ExtJS的功能及其在大型企业前端开发中的应用。通过实例和详细的文件结构解析,帮助初学者快速掌握ExtJS的核心概念,并提供实用技巧和最佳实践。 ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • 本文详细介绍了在 Windows 7 系统中配置 Nginx 1.10.3 和 PHP 7.1.1 NTS 的步骤,包括修改 PHP 配置文件、处理依赖项以及创建批处理脚本启动和停止服务。重点解释了如何解决常见的运行时错误。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • CSS高级技巧:动态高亮当前页面导航
    本文介绍了如何使用CSS实现网站导航栏中当前页面的高亮显示,提升用户体验。通过为每个页面的body元素添加特定ID,并结合导航项的类名,可以轻松实现这一功能。 ... [详细]
  • ssm框架整合及工程分层1.先创建一个新的project1.1配置pom.xml ... [详细]
author-avatar
Mr尘世美_925
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有