如何使用Visual Studio 2005轻松地将.Net Windows窗体应用程序转换为Asp.net应用程序?

时间:2020-03-06 14:58:38  来源:igfitidea点击:

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

我认为这是一种简便的方法,因为我拖放到Windows窗体设计器中的控件与我拖放到aspx设计页面上的控件几乎相同。

注意:Windows窗体应用程序不会发出任何网络请求或者任何其他内容……只是从本地计算机读取一些文本文件。

谢谢!

解决方案

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

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

此外,它还有比我们想象的更多的东西。我们依赖于Windows窗体应用程序本质上是有状态的事实,因此,在应用程序中存在某些可能性,而在这方面,迁移到ASP.Net将是一个不礼貌的觉醒。

这里有两个大问题;首先,它们的外观可能相同,但实现方式却完全不同,大部分UI工作都需要从头开始进行重做。不过,我们可能将能够重用实际的"执行"代码(即操纵文件的逻辑)。

第二个定义"本地机器"。对于ASP.NET应用程序,通常是服务器,可能不是我们想要的服务器。我们可以通过javascript在客户端执行某些操作,但是沙箱安全模型将阻止我们执行大量文件IO。

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

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

对于仅我们将使用的本地应用程序,我的建议是坚持使用Windows窗体。

那真的取决于应用程序的设计方式。如果我们拥有Windows窗体中应用程序的所有"业务逻辑",那么将很难转换它。如果逻辑在其自己的层中,它将更加容易。请意识到Windows和Web窗体之间有很多区别;最大的问题之一是Web表单与用户断开连接,并且状态信息随每个请求发送。 Winforms当然功能更强大。

不幸的是,事情不会那么简单。Ccode和逻辑将轻松转移,但是WinForms UI与ASP.NET UI完全不同。

如果我们对可以使用与现有Capp相同类型的非HTML GUI设计器进行设计的" Web应用程序"感兴趣,请查看Microsoft Silverlight。它被设计为Web的新Windows Presentation Foundation(WPF,WinForms的后继版本)的版本。