Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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# 合并两个相同的ASP.NET网站的最佳方法?_C#_Asp.net_Web - Fatal编程技术网

C# 合并两个相同的ASP.NET网站的最佳方法?

C# 合并两个相同的ASP.NET网站的最佳方法?,c#,asp.net,web,C#,Asp.net,Web,我们有两个网站,唯一的区别是在设计(不同的图像,风格,布局等),但文件和cs代码的网络结构是相同的,所以我们希望简化其维护 实际结构将是: DefaultA.aspx DefaultA.aspx.cs DefaultB.aspx DefaultB.aspx.cs LoginA.aspx LoginA.aspx.cs LoginB.aspx LoginB.aspx.cs 一个想法是根据源网站的不同在运行时改变设计差异,但我们不太喜欢这样,因为性能、设计中的抽象和url混乱 另一个

我们有两个网站,唯一的区别是在设计(不同的图像,风格,布局等),但文件和cs代码的网络结构是相同的,所以我们希望简化其维护

实际结构将是:

DefaultA.aspx
  DefaultA.aspx.cs
DefaultB.aspx
  DefaultB.aspx.cs
LoginA.aspx
  LoginA.aspx.cs
LoginB.aspx
  LoginB.aspx.cs
一个想法是根据源网站的不同在运行时改变设计差异,但我们不太喜欢这样,因为性能、设计中的抽象和url混乱

另一个是共享cs(aspx继承和使用同一个cs)文件,但我们以前从未在任何网站上做过或看到过,所以我们想知道这是否是一个好方法


你觉得怎么样?在性能和开发易用性方面还有其他更好的方法吗?

也许我被你的问题弄糊涂了,但是如果你有两个完全相同的网站,除了图像/样式/布局-为什么不删除其中一个网站,并根据用户访问的地址使用CSS魔术来显示两个不同的网站。

也许我对你的问题感到困惑,但是如果你有两个完全相同的网站,除了图像/样式/布局-为什么不删除其中一个站点,并根据用户访问的地址使用CSS魔术显示两个不同的站点。

如果只是布局更改,而不是功能,我建议选择不同的主题。根据某些逻辑,例如角色或概要文件中的某个内容,您可以选择页面的主题以在代码中设置主题

除此之外,我还建议您让每个codebehind页面从一个自定义类继承,该类继承page类本身。在该自定义类中编写OnPreInit代码以设置正确的主题,这样您只需编写一次。所有其他页面都继承自该类,并受益于动态主题设置。顺便说一句,您也可以使用相同的技术来动态设置母版页


Grz,Kris.

如果只是布局而不是功能,我建议选择不同的主题。根据某些逻辑,例如角色或概要文件中的某个内容,您可以选择页面的主题以在代码中设置主题

除此之外,我还建议您让每个codebehind页面从一个自定义类继承,该类继承page类本身。在该自定义类中编写OnPreInit代码以设置正确的主题,这样您只需编写一次。所有其他页面都继承自该类,并受益于动态主题设置。顺便说一句,您也可以使用相同的技术来动态设置母版页


Grz,Kris.

我有一个类似的场景,我创建了.net控件,这些控件必须在不同的站点上有不同的标记和外观。仅仅应用不同的CSS规则和主题是不够的,因为这些控件的标记可能会根据设计文档等发生剧烈变化

我发现最好的方法是识别公共控件或页面,然后将它们的代码迁移到存储在单独程序集中的类中。这实际上非常简单,只需在程序集中将代码隐藏类作为新类重新创建,并确保继承页/控件根据需要引用assembly.type。完成后,您现有的站点将像以前一样运行,但您也将控制逻辑与UI层分离


现在,您有了一个可以放入多个项目的程序集,您所要做的就是添加一个从程序集/类型继承的新控件/页面,而不是让多个代码隐藏文件在不同的网站上执行相同的操作。重要的是要确保从页面引用的任何子控件都存在于标记中,以便ASP.Net在页面生命周期中将这些控件连接到代码隐藏实例。

我有一个类似的场景,我创建了.Net控件,这些控件必须在不同的网站。仅仅应用不同的CSS规则和主题是不够的,因为这些控件的标记可能会根据设计文档等发生剧烈变化

我发现最好的方法是识别公共控件或页面,然后将它们的代码迁移到存储在单独程序集中的类中。这实际上非常简单,只需在程序集中将代码隐藏类作为新类重新创建,并确保继承页/控件根据需要引用assembly.type。完成后,您现有的站点将像以前一样运行,但您也将控制逻辑与UI层分离

现在,您有了一个可以放入多个项目的程序集,您所要做的就是添加一个从程序集/类型继承的新控件/页面,而不是让多个代码隐藏文件在不同的网站上执行相同的操作。重要的是确保从页面引用的任何子控件都存在于标记中,以便ASP.Net在页面生命周期中将这些控件连接到代码隐藏实例

另一个是共享cs(两者都是 aspx(继承和使用相同的cs) 但我们从未做过,也从未见过 以前在任何网站上做过,所以我们 不知道这是不是一个好办法

最后,我们采取了这条路线,到目前为止,我们还没有遇到任何问题,这很容易维护,如果您在A站点中添加新控件,编译器会警告您不要将它们添加到B站点

另一个是共享cs(两者都是 aspx(继承和使用相同的cs) 但我们从未做过,也从未见过 以前在任何网站上做过,所以我们 不知道这是不是一个好办法

最后,我们采取了这条路线,到目前为止,我们还没有遇到任何问题,这很容易维护,如果您在A站点中添加新控件,编译器会警告您