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

本文关键字:Net 窗体 Windows 应用 应用程序 Asp 程序转换 Studio Visual 何使用 2005 | 更新日期: 2023-09-27 17:48:53

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

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

注意:windows窗体应用程序不会发出任何网络请求或任何内容。。。只是从本地机器上读取一些文本文件。

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

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

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

我建议您考虑一下介于两者之间的Silverlight,或者只使用ClickOnce将现有的winform.exe部署到远程客户端。

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

此外,它比你想象的要多得多。在你的应用程序中,你可能会依赖这样一个事实:windows窗体应用程序本质上是有状态的,而在这方面,转移到ASP.Net将是一个粗鲁的觉醒。

由于控件不同,接口将不得不更改。如果您有支持的业务类和其他此类性质的项目,您可以复制它们,但否则需要重新构建UI。

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

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

这实际上取决于应用程序的设计方式。如果你在Windows窗体中拥有应用程序的所有"业务逻辑",那么你将很难转换它。如果逻辑在它自己的层中,它将变得容易得多。请注意,Windows和Web窗体之间有很多不同之处;其中最大的一个是web表单与用户断开连接,并随每个请求发送状态信息。Winforms当然更具特色。

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

如果您对一个"web应用程序"感兴趣,该应用程序可以使用与现有C#应用程序相同的非HTML GUI设计器进行设计,请查看Microsoft Silverlight。它被设计为新的Windows Presentation Foundation(WPF,WinForms的继任者)的一个版本。