Asp.net中的用户控制项目类型,使用哪一个?

时间:2015-09-17 12:41:00

标签: asp.net user-controls custom-controls web-controls asp.net-4.5

在Asp.Net中工作和开发用户控件时,基本上有三种这样的项目:

1。)用户控制作为类库

2。)用户控制作为类文件

3.)常见的.ASCX方式

您能否分享一下每种项目类型的优缺点,以及我应该使用哪种?

选择特定项目类型时需要考虑哪些要点?我已经阅读了很多,但仍然感到困惑。您能否提供更具体的示例,例如我将在何处使用.ASCX控件还是其他任何一个?

1 个答案:

答案 0 :(得分:1)

嗯......这是非常主观的。让我们现在开始......

  
    

<强> User Controls- .ASCX

  

用户控件通常保留在特定站点内重用。如果您需要在站点之间重用控件,则应考虑将该功能抽象为Web服务器控件。

  

快速结论:

简而言之,您将功能封装到用户控件中,该控件可以在单个网站的边界内共享,例如开发HeadersFootersDisclaimersCopyright因为这些部分通常显示在每个页面上,并且主要包含仅与单个网站有关的信息。


  
    

<强> Custom Web Server Controls: Class File, Class Library

  

但是,有时您需要编写可在多个网站或项目中使用的功能。

何时使用/使用案例场景:

例如,假设一个品牌,联合利华,它的每个化妆品产品,食品,冰淇淋都有多个网站......并且要求这些多个网站中的每一个都有一个ContactUS / ComplaintUS表格。每个表单还需要一些更丰富,用户友好的下拉列表,其中显示与该品牌有关的数据必须由用户选择。

深入研究优势/劣势及类似的开发人员:

与用户控件相比,其他(开发人员)可以更轻松地使用自定义Web服务器控件。您可以为控件的客户创建完整的设计时体验。这包括完整的ToolboxDesigner支持,例如DefaultProperty

由于ToolBox和Designers等功能,您在创建自定义Web服务器控件时(与简单的用户控件相比)最终会编写更多代码。

创建自定义Web服务器控件有两种常用方法。

  1. 创建一个直接从WebControl类继承的Web服务器控件。 WebControl类提供了一组基本功能。使用此功能,您可以使用与UI相关的属性(例如BackColorForeColorHeightWidth来处理UI样式。

    然而,这让你有很多工作要完成开发 控制。

  2. 继承现有的Web服务器控件(TextBox, Label ...),该控件已经提供了控件所需的核心功能,例如UI功能。

    这肯定会给你一个快速启动并让你专注 主要是因为你的控制与众不同。你不必担心 关于创建UI处理的基础知识,因为它已经完成了 这些现有的控制。这是最常见的情况

  3.   

    了解构建和支持自定义Web服务器控件的难度,您将看到很少/很少的团队实例创建自定义Web服务器控件。

    那么,我们现在可以得出结论吗?

      

    结论

    • 无论采用哪种方法,都要仔细考虑如何重用控件。如果要在多个网站上使用自定义Web服务器控件,则应将新的自定义Web服务器控件类放入类库项目中以创建可以共享的DLL文件。
    • 如果自定义Web服务器控件仅适用于当前网站,则可以将自定义Web服务器控件的类文件添加到网站。(然后出现使用用户控件或自定义Web控件的争论,因为它是仅限于一个网站)。嗯......我看到很少有自定义网页控件实际上从未被其他团队/网站/项目使用的情况,所以为什么要开发这种自定义控件的痛苦。

    附加说明:

    最后,我想在此提及极少使用的用户控件Templated ASP.NET User Controls

    模板化用户控件的强大之处在于控制数据与其显示的分离。这些控件的UI在设计时完全开发和定制。除此之外,我在这里争论不多。继续阅读MSDN Link和其他人,实现它并编辑我的答案,如果你有更好的论据来使用(...不使用......)这个控件。