小弟菜
asp.net中,用户空间、自定义控件和复合控件,他们的异同是什么?
我翻了好几本书都不明白,看了快速入门也没有完全理解,请帮忙,感激不尽!
谢谢先

解决方案 »

  1.   

    一般来说,
    用户控件是指在一个项目中,由于同样一些功能模块在多处引用[比如说导航菜单等],可以把这一块代码做成一个用户控件,然后在要引用的页面中注册后,直接按控件使用的方式引用,省去了重复编写相同代码的工作;
    复合控件:是比用户控件扩展更进一层的方式,比如说你有要用几个WEB控件组合成一个控件来使用,或者你要扩展一个第三方控件的功能,可以把他写成复合控件,主要是这些控件要支持重载,不能做出来的控件跟自定义控件差不了多少;
    自定义控件:功能最强了,能写这个说明你已经够牛了,呵呵,我个人是这么认为,至少写自定义控件的要掌握的知识面太宽了,我正在看这类型的书,但是还是在入门阶段;
      

  2.   

    asp.net中
    用户控件:ascx文件
    能够很容易地在多个 ASP.net Web 应用程序之间划分和重复使用公共用户界面 (UI) 功能
    用户控件声明语法与创建 Web 窗体页所采用的语法十分类似
    两者的主要差别在于用户控件在内容周围不包括 <html>、<body> 和 <form> 元素Web 自定义控件:cs文件,生成程序集后使用
    可以包含标准 ASP.net 服务器控件的所有设计时功能,包括对 Visual Studio 设计功能(如“属性”窗口、可视化设计器和工具箱)的完全支持用户控件与Web 自定义控件区别
        如果现有的 ASP.net 服务器控件都不符合应用程序的特定要求,则可以创建封装所需功能的 Web 用户控件或 Web 自定义控件。这两种控件之间的主要区别在于设计时的易创建性与易用性。
    1、Web 用户控件易于创建,但它们在高级方案中使用起来可能不太方便。开发 Web 用户控件的方式与开发 Web 窗体页的方式几乎完全相同。与 Web 窗体相似,用户控件可以使用与 HTML 隔离的代码来编写,并且可以处理执行事件。但是,在应用程序之间共享用户控件的唯一方式是将一个单独的副本放入每个应用程序,因此如果对该控件作出了更改,将需要进行比较多的维护。
    2、Web 自定义控件允许您置入对于在 Visual Studio 中使用的设计时支持。一旦创建该控件,就可以将其添加到工具箱中,并在具有完全“属性”窗口支持和 ASP.NET 服务器控件的其他所有设计时功能的可视化设计器中显示该控件。此外,还可以在全局程序集缓存中安装 Web 自定义控件的单个副本,并在应用程序之间共享该副本,这将使维护变得更容易
    3、如果你的控件包含大量静态布局,用户控件则可能是较佳的选择。如果你的控件主要是动态生成的(例如数据绑定表的行、树视图的节点或选项卡控件的选项卡),自定义控件则可能是较佳的选择复合控件是Web 自定义控件中的一种开发形式;组合现有控件而创作的新控件