【问题标题】:How to create Re-Usable web control library如何创建可重用的 Web 控件库
【发布时间】:2014-08-16 18:42:27
【问题描述】:

问题背景:
大家好,我已经为我的雇主开发 Windows 表单应用程序大约 3 年了。虽然我的大部分作品都是业余的。我一直在使用 Visual Studio、C#,喜欢通过子类和其他技术创建可重用的 Windows 窗体控件。现在老板要我为这家公司做网站,我脑子里的第一个念头就是像windor窗体应用一样创建可重复使用的WEB控件。

我尝试过的方法

  1. Web用户控制,一开始我找Visual Studio支持开发者创建Web User Control,文件扩展名为*.ascx。发现这一点让我非常兴奋,因为我认为我可以像在 Windows 窗体应用程序开发中一样创建 Web 控件。但是,这是一个很大的“BUT”,然后我发现它不能嵌入到程序集文件(DLL)中,也不能在网页设计时显示在工具箱中支持拖放。来自 msdn 的 AFAIK,Web User Control 不打算跨项目重复使用。所以我放弃了这个方法。

  2. Server Control,然后发现有Custom Server Control可以创建支持Assembly embed和ToolBox。它是一个 *.cs 文件,使用从System.Web.UI.WebControls.WebControlSystem.Web.UI.WebControls.CompositeControl 子类化的类编写。好的一点是,这正是我想要的:可重用性和设计时支持。但是,最大的缺点是它在创建 Web 控件本身时不支持拖放。该控件只能通过c#编写的html呈现或通过代码创建。如果我想创建更漂亮、更复杂或更高效的控件,我必须将 css/javascript 嵌入到控件中。无论如何,来自 MSDN,Server Control 是我需要的。

  3. 纯 HTML、Javascript (jQuery)、CSS,实际上我一直在使用 Server Control 方法一段时间,只是为了让我的老板开心。但我仍然无法停止思考其他更好的解决方案。据我了解,网页并没有那么复杂,它只是由HTML tagjavascript (or other scripting language)CSS to manipulate UI 构建的(如果我错了请纠正我)。所以我相信如果我用纯 Html、Javascript 和 CSS 创建 web 控件,它当然会更复杂但更兼容。因为Server Control 解决方案需要Web 服务器支持.Net Framework,它不是免费的并且仅限于Microsoft 范围。如果我有办法摆脱 .Net,为什么不呢?如果值得的话,我愿意花双倍的时间来创建可重用控件。例如,如果我想使用 PHP 来创建网页,我可能需要掌握通过 HTML、Javascript 和 CSS 来创建 Web 控件的技术。

我的问题

  1. 综上所述,是否可以仅基于 Html、Javascript 和 CSS 创建我的 Web 控件库?

  2. 如果有,有这个方法的教程吗?

  3. 我很想知道商业/专业公司如何创建网页。

谢谢大家,任何建议将不胜感激!

【问题讨论】:

  • 查看现有的,如 dojo、yui、jqui、extjs 等,并确保您了解 html5 内置的所有好东西,如滑块、、数字/日期/颜色输入等...

标签: javascript php html css asp.net


【解决方案1】:

在挖了几天之后,我几乎放弃了创建自己的 javascript 库,不仅用于 web 小部件(UI),我也不想使用第三方 js 框架,因为:

  1. 花费太多时间:正如它所说:“不要重新发明轮子”,好吧,我一半一半地接受/不同意这一点。但现在,我根本没有太多时间在上面。真的很费时间,一个人很难完成。
  2. 很多 javascript 框架都非常棒,比如 dojo、yui、jqui,正如 @dandavis 评论的那样,但是,有些框架的使用很困难,至少对我(作为 js 初学者)来说,尤其是 dojo。 Dojo 非常强大,AFAIK,但很难实现和使用。我按照官方教程创建了自己的网络小部件,花了一个小时并没有完成。我可能放弃得太快了?
  3. 我还是想用ajax挖asp.net,厉害多了。并且可以在服务器端轻松操作。

好吧,我不知道这是否是一个答案,但这是我个人问题的结束。非常感谢各位。

【讨论】:

    【解决方案2】:
    1. 综上所述,是否可以仅基于 Html、Javascript 和 CSS 创建我的 Web 控件库?

    严格来说,您已经习惯于支持上述控制。这将在 WebForms 中创建的未来项目中继续工作。

    但是,如果您涉足 MVC,则会有显着差异。大多数处理输入的控件都是客户端的(可以包装在 js wigets 和用户验证类中)。另一方面,服务器控件很少,但是有 _MasterLayouts 和 Views 可以利用 PartialViews 一个 PartialView 类似于 Web 用户控件。在您的 Controller 中,您可以返回类似于 Server Controls

    的 EditTemplates 和其他类型

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-23
      • 1970-01-01
      • 2017-11-14
      • 2013-09-05
      • 2011-07-25
      • 2023-01-19
      • 1970-01-01
      相关资源
      最近更新 更多