热门标签 | 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 ,转载请注明来源。




推荐阅读
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • WCF类型共享的最佳实践
    在使用WCF服务时,经常会遇到同一个实体类型在不同服务中被生成为不同版本的问题。本文将介绍几种有效的类型共享方法,以解决这一常见问题。 ... [详细]
  • 本文介绍了一种支付平台异步风控系统的架构模型,旨在为开发类似系统的工程师提供参考。 ... [详细]
  • 华为捐赠欧拉操作系统,承诺不推商用版
    华为近日宣布将欧拉开源操作系统捐赠给开放原子开源基金会,并承诺不会推出欧拉的商用发行版。此举旨在推动欧拉和鸿蒙操作系统的全场景融合与生态发展。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • (1)前期知识:1. 单机架构:单一服务器计算机——其处理能力和存储容量有限。2. 集群架构(负载均衡器与多节点服务器)——通过增加节点数量来提升系统性能和可靠性,实现高效的任务分配和资源利用。 ... [详细]
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社区 版权所有