【问题标题】:How can I easily turn a .Net Windows Form app into an Asp.net app using Visual Studio 2005?如何使用 Visual Studio 2005 轻松地将 .Net Windows Form 应用程序转换为 Asp.net 应用程序?
【发布时间】:2008-10-01 14:09:19
【问题描述】:

我在 .Net 中有一个非常基本的 Windows 窗体应用程序。所有代码都是 C#。我想把它变成一个 Asp.net 网络应用程序。我怎样才能轻松做到这一点?

我认为有一个简单的方法,因为我拖放到 windows 窗体设计器上的控件与我拖放到 aspx 设计页面上的控件几乎相同。

注意:windows 窗体应用程序不会发出任何网络请求或任何东西...只是从本地计算机读取一些文本文件。

【问题讨论】:

    标签: c# asp.net winforms


    【解决方案1】:

    这里有两个大问题;首先——它们可能看起来一样,但它们的实现方式完全不同——所有的 UI 工作都需要重做,主要是从头开始。不过,您可能能够重用您实际的“执行”代码(即操作文件的逻辑)。

    第二 - 定义“本地机器”。对于 ASP.NET 应用程序,这通常是服务器,这可能不是您想要的。你可以通过 javascript 在客户端做一些事情,但是沙盒安全模型会阻止你做很多文件 IO。

    我建议也许看看 Silverlight,它介于两者之间 - 或者只是使用 ClickOnce 将现有的 winform exe 部署到远程客户端。

    【讨论】:

      【解决方案2】:

      您可能会在通过 ASP.Net 从本地计算机读取文件时遇到问题:对于 ASP.Net 应用程序,本地计算机是 Web 服务器,而不是用户所在的计算机。

      此外,它的功能远比您想象的要多。很可能在您的应用程序中的某个地方,您依赖于 Windows 窗体应用程序本质上是有状态的这一事实,而在这方面迁移到 ASP.Net 将是一个粗鲁的觉醒。

      【讨论】:

        【解决方案3】:

        界面将不得不改变,因为控件不同。如果您有支持的业务类和其他类似性质的项目,您可以将它们复制过来,否则需要重新构建 UI。

        【讨论】:

          【解决方案4】:

          ASP.NET 和 Windows 窗体是 2 个完全不同的模型。是的,设计师是相似的,但是页面/表单的底层表示是不同的。主要区别在于 ASP.NET 是无状态的,因此您必须在操作之间调整存储数据的方法并将其推送到 Session 对象。

          对于只有你会使用的本地应用程序,我的建议是坚持使用 Windows 窗体。

          【讨论】:

            【解决方案5】:

            这实际上取决于应用程序的设计方式。如果您在 Windows 窗体中拥有应用程序的所有“业务逻辑”,那么您将很难将其转换。如果逻辑在它自己的层中,它会容易得多。请意识到 Windows 和 Web 窗体之间存在很多差异;最大的问题之一是 Web 表单与用户断开连接,并且每次请求都会发送状态信息。 Winform 的功能当然更全。

            【讨论】:

              【解决方案6】:

              不幸的是,事情不会那么简单。您的 C# 代码和逻辑将很容易转移,但 WinForms UI 与 ASP.NET UI 完全不同。

              如果您对可以使用与现有 C# 应用程序相同类型的非 HTML GUI 设计器设计的“Web 应用程序”感兴趣,请查看 Microsoft Silverlight。它旨在成为新的 Web 版 Windows Presentation Foundation(WPF,WinForms 的继任者)的一个版本。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-06-25
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多