【发布时间】:2026-01-15 17:05:01
【问题描述】:
我正在使用 C# 和 Visual Studio 2008 SP1 开发一个三层 ASP.NET 应用程序。我正在使用 WebForms。
我想将该应用程序转换为 Silverlight 应用程序。也许我可以重用很多 ASP.NET 层的代码。
你怎么看?
【问题讨论】:
标签: c# asp.net silverlight silverlight-3.0
我正在使用 C# 和 Visual Studio 2008 SP1 开发一个三层 ASP.NET 应用程序。我正在使用 WebForms。
我想将该应用程序转换为 Silverlight 应用程序。也许我可以重用很多 ASP.NET 层的代码。
你怎么看?
【问题讨论】:
标签: c# asp.net silverlight silverlight-3.0
假设您有典型的表示层、业务逻辑层和数据层,并且假设您已将代码认真地分离到这些层中,您应该能够用 Silverlight 界面替换您的 Web 表单,并保留您的 BL 和 DAL完好无损。
然而,实际项目往往有些混乱,这使得这种过渡更加困难。如果您使用的是 SqlDataSource,您可能会遇到问题。
【讨论】:
这些是@Andy 的一些优点,并扩展他所说的话:
我现在正在做同样的事情。因为我有一个相当全面的业务层,所以我已经能够做很多工作(价值几周),而在那段时间我只需要向该业务层添加一个功能。这很重要,因为它减少了所需的测试量。它还使任何剩余的测试变得更容易,因为更容易将旧版本应用程序的输出与新版本进行比较。
真正有助于实现这一目标的一种模式是外观模式。我构建了一个位于业务层之上的 WCF 层,通过使用外观模式,我可以返回更适合新 Silverlight 接口的结果,而不会干扰业务层。
您的新 UI 很可能具有与 ASP.NET 版本截然不同的体系结构。您将能够在 UI、代码和数据之间实现更清晰的分离。一些我引以为豪的 ASP.NET 代码在等效的 silverlight 代码旁边看起来非常糟糕。准备好砍掉你的旧代码,并从后面的直接代码中消除那些业务规则:)
【讨论】:
如果您的目标只是复制由 ASP.NET 提供的 UI 行为,那么是的,假设良好的分区您可以重用相当多的代码。不过你会问为什么要这样做。
另一方面,如果目标是为用户提供更丰富的交互体验,那么您很可能会发现,即使是设计良好的业务层也不会像这种完全不同的 UI 所需要的那样运行.
【讨论】: