Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-可重用菜单的自定义控件还是用户控件?_C#_User Controls_Custom Controls - Fatal编程技术网

C#-可重用菜单的自定义控件还是用户控件?

C#-可重用菜单的自定义控件还是用户控件?,c#,user-controls,custom-controls,C#,User Controls,Custom Controls,在我当前的系统中,菜单是通过CustomControl代码生成的,其他项目也共享该代码来生成菜单。目前,我需要为它添加一些功能,以便当屏幕缩小时,它将被重新设计成更适合更小屏幕的设计,即移动屏幕 我已经解决了如何使更改生效,但是,我发现通过CustomControl生成html代码可能不那么容易维护。首先,要改变它的人需要知道它在做什么,也需要了解它的生命周期 我正在考虑是否应该将CustomControl重构为UserControl,但是在阅读了它们之间的不同之后,CustomControl似

在我当前的系统中,菜单是通过CustomControl代码生成的,其他项目也共享该代码来生成菜单。目前,我需要为它添加一些功能,以便当屏幕缩小时,它将被重新设计成更适合更小屏幕的设计,即移动屏幕

我已经解决了如何使更改生效,但是,我发现通过CustomControl生成html代码可能不那么容易维护。首先,要改变它的人需要知道它在做什么,也需要了解它的生命周期

我正在考虑是否应该将CustomControl重构为UserControl,但是在阅读了它们之间的不同之后,CustomControl似乎更适合,因为这个菜单系统是跨多个应用程序共享的

你们怎么想?由CustomControl生成它是否是一种糟糕的做法(因为它使维护变得更加困难)?如果我使用UserControl,这是一种减少代码重复的方法吗


谢谢

如果控件绑定到应用程序,我会选择
UserControl
,因为正如您所说,它更容易可视化、编辑和维护

如果您需要在多个项目中使用它,或者它需要高度可编程/可定制,那么我会选择服务器控件


我不会考虑一种或另一种不良做法。我会选择基于哪个最容易实现和维护。

如果控件绑定到应用程序,我会选择
UserControl
,因为正如您所说,它更容易可视化、编辑和维护

如果您需要在多个项目中使用它,或者它需要高度可编程/可定制,那么我会选择服务器控件


我不会考虑一种或另一种不良做法。我会根据最简单的实现和维护方式进行选择。

老实说,我只是对能够生成html代码的代码有点怀疑,觉得它们违反了单一责任原则。。也许我错了?不,因为他们的责任是生成结果HTML标记:)。我只是不喜欢它们,因为我认为服务器控件比它们需要的复杂得多。老实说,我只是对能够生成html代码的代码有点怀疑,觉得它们好像违反了单一责任原则。。也许我错了?不,因为他们的责任是生成结果HTML标记:)。我只是不喜欢它们,因为我认为服务器控件比它们需要的更复杂。