想在桌面上使用我正在进行的asp.net网站

本文关键字:正在进行 asp net 网站 桌面 | 更新日期: 2023-09-27 18:15:15

我是asp.net的新手。事实上,到目前为止,我所知道的都是通过网络:)我已经建立了一个网站,这是良好的工作。但现在由于一些原因,我不得不将其转换为桌面应用程序。我希望他们俩都能工作。我的问题:A)如何将其转换为桌面应用程序?B)我将使用哪个服务器,因为我已经在godaddy服务器上有一个网站?C)我是否必须在每台视窗电脑上安装桌面应用程序才能使用?如果是这样,还有其他选择吗?D)我希望我的桌面应用程序的工作非常类似于网站..有离线网站之类的东西吗?

任何帮助都将不胜感激。谢谢你提前:)

想在桌面上使用我正在进行的asp.net网站

a)你需要学习WinForms。网站(或者在你的情况下,我相信它将是一个web应用程序)的构建与WinForm应用程序非常不同。

b)你的web应用程序将留在GoDaddy和c)你将需要安装它在每个桌面将使用WinForms版本的web应用程序。

b) + c)但是如果你正确地构建你的WinForms应用程序,你也许可以使用GoDaddy作为数据源的数据库。

d) web应用程序可以是离线的。在办公环境中,您可能有一个可以用作web服务器的中央服务器。你可以在那里安装你的web应用程序,通过知道中央服务器的名称,你就可以访问它,例如

http://myinternalserver:8080/mywebapp/

或通过IP地址

http://192.168.5.255/mywebapp/

这样,如果你的外部互联网连接断开,web应用程序仍然会工作(除非你有外部依赖)。如果你走这条路,有很多不同的方法可以让它工作。

在我个人看来,你最好在你的办公环境中使用一台服务器来托管web应用程序,这样你办公室里的所有台式机都可以访问。它也将比在其他地方拥有一个托管帐户便宜。这将为你带来更多的控制权,更快的更新,不用担心硬件问题。您可以连接到服务器的所有安全性和登录功能。基本上它比WinForms更酷更有趣:D

希望这对你有帮助。

你需要重构你的一些代码,这样你就可以在你的asp.net web应用程序和winforms桌面应用程序之间共享它——你可能需要一个核心项目来在两者之间共享代码。您的桌面应用程序可以与web应用程序连接相同的数据库,但您可能需要考虑桌面客户端与web上的数据库之间的连接数量和延迟。你需要在pc上安装应用程序才能工作,如果你在网络上,你的系统管理员可能会通过组策略来做。

有像本地存储等离线/间歇性连接的网站,我不认为这将有助于你的情况。

我这样解决了这个问题:

创建一个在托盘中运行(或最小化)的小型winforms应用程序。
去找装配Mono。从单个项目的WebServer。
将其作为引用添加到web应用程序中,将localcopy设置为true。

把你的web- applicaction放到文件夹c:'whatever'YourWebApplication
引用mono的相同版本。在您的winforms应用程序中的web服务器。
让应用程序在端口> 10000处启动(因此不需要管理员权限)
使用system.diagnostics.process在http://localhost:yourport(您可以xcopy google-chrome并在没有管理员权限的情况下使用它)上打开您选择的浏览器。开始

并将web应用程序作为桌面应用程序使用。
如果您使用Firebird,您可以在web上使用Firebird,也可以在桌面上嵌入Firebird。
如果您使用MySQL,则可以使用MariaDb(只需将zip-deploy复制到您选择的文件夹中,并在启动应用程序之前启动数据库)。
如果你使用PostgreSQL,你可以使用PostgreSQL Portable,并在启动应用程序之前使用xcopy deploy。


如果你使用SQL-Server,你就完蛋了,因为SQL-Server express需要安装…

public static void Main (string[] args)
{
    int Port=18080;
    string path=@"c:'wherever'YourWebApplication";
    XSPWebSource websource=new XSPWebSource(IPAddress.Any,Port);
    ApplicationServer WebAppServer=new ApplicationServer(websource);
    //"[[hostname:]port:]VPath:realpath"
    string cmdLine=Port+":/:"+path;
    WebAppServer.AddApplicationsFromCommandLine(cmdLine);
    WebAppServer.Start(true);
    Console.WriteLine("Mono.WebServer running. Press enter to exit...");
    System.Diagnostics.Process.Start("iexplore http:// localhost /:" + Port.ToString());
    Console.ReadLine();
    WebAppServer.Stop();
}

如果你想把数据放在中央服务器上,你需要使用web-services (JSON/JSONP)和http-post来更新和检索数据。然而,这不是很脱机。

无论如何,避免不惜一切代价维护两个独立的应用程序。

您也可以在离线和在线版本之间同步dbs。您需要一个在两者之间同步数据(和模式)的web服务。
如果你在表中使用guid (PostgreSQL中的uuid),你可以相对容易地将离线数据库中的新条目同步到在线数据库中。

当您删除或更改条目时,问题开始出现。
您需要处理"如果其他人在您同步并脱机后进行更改,并且您更改了同一行中的相同字段,但更改为不同的值会发生什么?"
如何检测删除?
在您脱机后可能已经添加了新行,因此您不能删除离线数据库中不再存在的任何行…

一个简单的解决方案是:
街区改建&离线模式下的删除