zoukankan      html  css  js  c++  java
  • 回DUDU关于discuzNT 模版的一些疑惑

    今天早上有幸看到DUDU的这篇BLOG。
    http://www.cnblogs.com/dudu/archive/2007/04/03/698992.html

    其实在一早加入DISCUZ之初,这方面的疑惑也是有的。
    但当时我和雪人谈论这个问题时,主要是出自几个方面的考虑。

    一是如何让使用我们程序的站长非常容易的理解和使用我们所定制的模版。因为大多数站长必定不是程序高手,
    如果让他们理解类,名空间以及控件,委托之类的东西,他们一定会很不爽的。那就需要一种非常“傻瓜”的
    “语言标记”能够让用户非常容易理解和使用。而同时又想到以前的站长用的程序有asp的代码, 因此语言上
    的设置特性最好也有asp特性的一些考虑。(但模版语言本质却不完全相同)

    二是代码运行时的速度问题。其实这一点如果大家有兴趣可以去尝试一下,用控件或masterpage以及别的方式,
    在速度上会有一些慢(但在数据量小时这种差异不那么明显,但如果数据量大:如几百万记录)去完成从 cs
    页面到前台控件的数据绑定的话,那就会有点慢了,而作为论坛这种比较特殊的产品,速度和安全性是其不断
    追求的目标。为此可以对.net的一些高级特性甚至控件进行量体裁衣,有时甚至会不与考虑。但如果大家认真
    看一下后台也会知道,在后台管理这一块对速度要求相应不那么苛刻的地方我们还是以控件提高开发速度以及
    全局样式控制的。

    三是在国外也有一些开源的框架如castle,它里面的一些小的工具(这里暂且这么说)如monorail也有类似的应
    用。下面我用它里面的一个简单的例子加以说明  
    <html>
      <body>
       Hi there, my name is $name
      </body>
    </html>
    大家看一下“$name”这个变量前面的一个“$”符,其实它在NVelocity.dll(一个源于java的动态模版开源项目)
    是要做相应的语方使用的。本质与.net下的页面级"<%"符差不多(个人理解)。
    我们再看一下它的cs页面代码:
    using System;
    using Castle.MonoRail.Framework;

    namespace MonoRailTest.Controllers
    {
     /// <summary>
     /// HomeController 的摘要说明。
     /// </summary>
     public class HomeController :Controller
     {
        public void Index()
      {
       PropertyBag.Add("name", "John Doe");
      }
     }
    }
    这下子大家明白了吧。里面的"name"就是页面上的那个$name, 只是用简单的一句就完成了相应的数据绑定。而数据
    集的绑定也是能过数组的方式完成的。这一点大家可以下载castle源码看下就明白了。

    话又说回来,到底discuzNT模版与NVelocity到底有什么关系呢,其实根本没什么关系,只是碰巧大家都想到一块去
    了,但实现的方式又有所不同。如果把NVelocity看到是动态翻译的话,那DISCUZNT模版就是静态翻译的了,因此
    它需要在编辑完相应的htm模版页后到后面去动态生成才能使用。这样做的好处我想应该是便于用户普通的html编辑
    器(甚至是记事本)完成工作。缺点就是添加了“生成模块这一步”,其实为了帮助用户(站长)理解的这种用心,
    DISCUZNT官方一直在做相应的帮助文档(这已经牵扯了不少精力)。如今文档已接近完善。相信用户只要看过就
    很容易进行修改了。

    其实在园子里的人基本上都是国内非常不错的开发人员(有些甚至顶级的了)。希望大家看完这篇文章后对
    DISCUZNT有一些清楚的认识。另外本身能力有限,只在项目中做一些普通工作。这篇文章只是代表个人的一些观
    点,希望大家多多交流。



  • 相关阅读:
    一首诗
    jsp作用域问题
    jsp关于request.setAttribue还有response.addCookie()的两个问题
    编程学习过程记录
    一些关于自己的未来的东西
    requests的post提交form-data; boundary=????
    记录一些爬虫的小细节
    【CSS3】CSS——链接
    【CSS3】CSS——文本
    【CSS3】background-clip与background-origin的联系与区别
  • 原文地址:https://www.cnblogs.com/daizhj/p/699285.html
Copyright © 2011-2022 走看看