摇摇欲坠的连接 - 支持网络或桌面应用?

时间:2009-09-28 16:59:31

标签: c# asp.net desktop-application web-applications

我是一名暂时在网络上工作的桌面应用程序开发人员。我正在与一个客户合作,希望我构建一个应用程序供全州各地使用;但是,这些位置的连接非常不稳定。

他们真的想要一个集中的网络应用程序,并建议我构建一个“精益”的网络应用程序。我不知道“精益网络应用程序”是什么意思:小的HTTP请求,但很多?或者只有很少的大型HTTP请求?我倾向于支持chunky vs chatty ..但我以前从未担心过连接。

我是否建议在连接存在时复制数据的桌面应用?如果没有,当连接不稳定时,接近Web应用程序的最佳方法是什么?

编辑: 我必须通过进一步的信息来证明我的问题。假设有web选项,他们不允许使用浏览器运行时技术和任何需要安装的东西。因此,Silverlight出局,Flash已经出局,Gears出局 - 只有asp.net和javascript可供我使用。说明这一点,我的部分问题是是否使用桌面应用程序;我想这可以扩展到“更厚的技术”。

编辑#2:网络是同质的 - 每个节点都是Windows。这不会改变。

5 个答案:

答案 0 :(得分:7)

你应该通过“精益”来定义客户的意思,这样你就不会对它产生混淆。可能会向他们展示您认为可能意味着的几种精益选择。我发现的一件事是,根据客户要求猜测 并不好。在浪费大量时间之前先澄清一下。

答案 1 :(得分:1)

如果连接性如此糟糕,我建议您编写一个下载信息的WinForm应用程序,在本地编辑它然后上传它。这样,如果您的连接断开,您只需重试,直到它正常工作。

他们似乎在暗示一个简单的香草网络应用程序,它不使用AJAX或依赖.NET回发,或者做任何可能会让你在连接消失一段时间时崩溃的事情。相反,它应该被设计为可以点击刷新直到它工作。换句话说,他们似乎想要与WinForm应用程序最接近的东西,只是更加丑陋。

答案 2 :(得分:1)

摇摇欲坠的连接绝对有利于桌面应用程序。 Web应用程序非常适合具有永远在线Internet连接的用户,并且可能使用各种不同的浏览器和操作系统。

您的客户端可能包含全部使用Windows的位置,因此桌面应用程序是一个合适的选择。 Web应用程序的另一个优点是它们使部署问题易于处理。 ClickOnce等自动更新技术使桌面应用程序的部署和更新变得非常简单。

不要敲Google Gears,但它相对较新,并且必须被认为比经过验证的桌面应用程序更具风险。

更新:如果您仅限于客户端的javascript,那么肯定不会想要将其设为网络应用。当Internet连接断开时,您的应用程序将无法使用。有些方法可以使用cookie和用户存储以及诸如此类的东西在javascript中本地保存,但你只是不想这样做。

答案 3 :(得分:0)

您可以考虑使用Google Gears等框架来帮助在网络停机期间提供功能。这允许用户连接到网页一次(具有正常连接),然后即使没有连接也可以使用网络应用程序。

当网络恢复时,框架可以将更改与中央数据库同步。

甚至有使用Google Gears with the .Net Framework的教程。

Gears with other languages

答案 4 :(得分:0)

您提到在这些位置连接不稳定,但应用程序需要集中。您可以考虑使用多个分散式读取数据库服务器和单个集中式写入服务器。如果您的应用程序很小,Mysql可以实现

在数据中心/中心局拥有主数据库服务器。在安装了应用程序的每个位置安装小型Web / db服务器。如果远程位置不是太大,您甚至可以在用户计算机上运行它们。使本地数据库服务器作为复制从属服务器连接到集中式数据库服务器。当更改进入集中式数据库时,从属服务器将下拉数据并使其在本地可用。当连接不可用时,如果不是最新的,您的应用数据仍然至少可用。当连接可用时,数据库会处理所有相关数据的复制。

现在你所要做的就是让你的应用程序使用两个独立的数据库句柄:读取数据使用本地数据库,写入数据使用中央数据库。