0

这似乎是一个荒谬的问题,因为我对 .NET 非常缺乏经验。

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

如果可能,它们的便携性如何?即可以在一定程度上重用GUI吗?是否有中间格式可用作基础格式,还是需要将 C# 组件用作二进制文件?

谢谢。

编辑:

感谢您的输入!我非常熟悉这个问题的设计方面,即如何为组件建模以供重用。但是,您让我意识到问题实际上是关于 - .NET 在 ASP 和 Windows 之间可重用的程度如何?是否可以说某些 .NET 组件包独立于环境而某些是特定于平台的?

4

3 回答 3

5

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

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

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

于 2009-01-06T14:24:00.883 回答
3

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

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

最后 - .NET 为您提供了执行此操作的能力。您执行此操作的实际能力将在很大程度上取决于您自己的设计能力和您的特定要求。有很多关于这个主题的文章 - 我建议先看看设计模式(虽然原书用 C++ 编写示例,但我相信有人已经用 C# 编写了一本带有示例的书。但是,我不能说话它的质量。)

于 2009-01-06T14:38:32.880 回答
1

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

于 2009-01-06T14:20:37.363 回答