• UI分离引擎的设想


    对于前端页面和后端代码的分离,ASP.NET WEBFORM和ASP.NET MVC都在不同方面做了努力。

    在这里提出一些自己初步的设想,只是初步的设想,对各种质量特性并没有经过验证,就不放首页了。

    我们的目的是:

    1)产品或美工负责页面布局、样式以及基本的交互行为(不依赖业务逻辑的交互)。

    2)开发人员只负责数据的填充。

    3)产品提供的html不需要引入代码进行二次包装,直接使用。

    您可以觉得这就是模板的方式,模板的方式可以解决,但主要的问题是:

    1)需要产品或美工熟悉标记。

    2)不太能实现根据动态的逻辑来实现不同的数据呈现。

    能不能反过来,产品在给出html+css+javascript之后,我们的开发人员只负责填充数据或是根据业务逻辑填充不同的数据?

    我的设想如下:

    1) 产品提供的html+css+javascript直接放在目录下用。

    2) 由一个Handler来处理所有请求,比如list.shml,然后找到目录(配置为不可以直接访问)下的html。

    3) 加载html到缓存中,解析DOM。

    4) 开发人员对每一个页面提供一个cs文件,实现数据填充。

    怎么进行数据填充呢?首先从数据库加载要填充的数据,然后指定数据填充到哪里。

    比如 list 已经是一个产品集合,调用框架类似 list.Fill(func, func) 的方法填充数据,第一个参数传入一个方法指定填充的数据格式,比如p => p.Name,后面一个通过jquery选择器指定要填充的对象。框架维护要渲染的数据以及jquery代码两个数据集合,分别渲染到页面上。

    也就是页面由三个部分构成:html模板 + json数据 + jquery代码。开发人员用c#代码写jquery代码和获取数据的代码,然后交给框架去把数据和填充行为放到页面上。

    甚至,可以在项目中制作一个代码生成工具,每次编译自动根据html代码生成其中所有的id和class名等用于jquery定位,这样代码中选取器也不需要手动写,可以在编译的时候发现可能存在的javascript问题。

    对于这种模式,还可以反过来,可以把html文件放在独立的服务器上,自动ajax请求shtml文件获取数据和填充脚本,然后执行脚本进行数据异步填充。

    这样的话,产品写html/css/jquery,开发写c#的jquery和数据访问,大家甚至独自维护自己的静态和动态服务器。

    您可能要说这不就相当于全ajax的页面吗,其实这么做的好处是,开发人员可以直接写了c#的数据访问代码后又直接写c#的js代码,由框架确保了这些脚本和数据的呈现,可以利用大量自动提示的特性,不会出现前后台不一致的现象(不需要根据json的格式写客户端的脚本文件,只需要在服务端根据c#对象的格式写代码,这和asp.net的控件方式有什么区别?其实理论上来说相当于dom+jquery版的控件操作和访问,好处是可以直接使用html)。

  • 相关阅读:
    vue多个自定义组件动态显示
    vue弹出多个弹框,并可以拖动弹框
    localStorage和sessionStorage
    Sharepoint ListTemplateId
    SharePoint 上传文档太大 无法上传
    Stream Byte[] 转换
    C#转义字符 单引号 双引号 换行 回车 斜杠
    c#中如何获取本机用户名、MAC地址、IP地址、硬盘ID、CPU序列号、系统名称、物理内存
    SharePoint Content Type ID's
    Visual Studio Tip: Get Public Key Token for a Strong Named Assembly 添加强命名 获取强命名值
  • 原文地址:https://www.cnblogs.com/lovecindywang/p/1839474.html
Copyright © 2020-2023  润新知