这可能看起来像一个荒谬的问题,因为我在.NET中缺乏经验。

是否可以使用.NET在C#中构建组件,可以在ASP.NET中重用它。例如,如果想要将应用程序移植到Web上。

如果可能的话,他们有多便携?即GUI可以在某种程度上重用吗?是否有中间格式作为基础或是否需要将C#组件用作二进制文件?

感谢。

修改

感谢您的投入!我非常熟悉这个问题的设计方面,即如何对组件进行建模以供重用。但是你让我意识到问题的真正含义 - 在ASP和Windows之间.NET的重用程度如何?可以说某些.NET组件包与环境无关,有些是特定于平台的吗?

有帮助吗?

解决方案

绝对 - .NET类可以在任何类型的.NET应用程序中使用。但是,这取决于你正在谈论的应用程序的哪个部分。

通常,Windows窗体用户界面不能作为ASP.NET用户界面重用,因为设计约束是如此不同(即Web浏览器仅支持少量控件,通常使用流(不是网格)布局等。同样,事件是不同的(网络表单按钮与Windows窗体按钮等不同)。

如果你正确地做事,你可以轻松地重复使用的是业务逻辑。设计您的类,以便他们不会在内部知道任何关于它是Windows窗体还是Web窗体(或控制台应用程序,或Web服务等)的信息。也就是说,类应该是业务逻辑的纯实现。然后,您可以在任何您想要的上下文中使用这些类。

其他提示

对你的问题的简短回答是肯定的 - 只需将你想要在两个视图之间共享的代码分离到一个独立于接口的类中,最好是在一个单独的程序集中,并包含该程序集。

长期答案更复杂 - 执行此操作的能力因应用程序和应用程序而异。你将能够为那些在幕后做很多事情的UI密集型应用程序(比如某种图形游戏)分离出更少的代码,而不是一个非常简单的UI应用程序。场景(比如,一个由一个按钮组成的UI,然后启动一个复杂的数据操作过程)。

最后 - .NET提供了执行此操作的能力。您实际执行此操作的能力将取决于您自己的设计能力和您的特定要求。关于这个主题有很多可用的文章 - 我建议首先看一下设计模式(尽管原版书在C ++中写了一些例子,但我相信有人用C#做过一本书的例子。但是我不能说它的质量。)

我以前从未这样做过,但我想你可以把公共代码放在一个单独的类上。 UI将需要复制为Windows窗体,而asp.net具有完全不同的编程方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top