我将为我所在的营地编写一个数据库应用程序。我考虑使用C#编写具有Windows GUI界面的应用程序,但是使用浏览器作为应用程序似乎越来越具有吸引力,因为有各种原因。我想知道的是,为什么有些人不选择将应用程序编写为Web应用程序。例如,返回按钮可能会给您带来麻烦。还有其他任何人能想到的问题吗?
我将为我所在的营地编写一个数据库应用程序。我考虑使用C#编写具有Windows GUI界面的应用程序,但是使用浏览器作为应用程序似乎越来越具有吸引力,因为有各种原因。我想知道的是,为什么有些人不选择将应用程序编写为Web应用程序。例如,返回按钮可能会给您带来麻烦。还有其他任何人能想到的问题吗?
使用Web应用程序时,当您在服务器上存储用户数据时,会涉及更多的隐私问题。您必须确保不会丢失/泄露数据,并且您的用户必须对将数据存储在您的服务器上的想法感到舒适。
除此之外,还有许多安全问题,例如中间人攻击,XSS或SQL注入。
您还需要确保手头有足够的计算能力和带宽。
例如,返回按钮可能会给您带来一些麻烦。
在这方面,您必须具体说明。很多人在他们的Web应用程序中犯了基本错误,并在处理事务时引入了错误。如果您不使用“提交后重定向”(也称为Post-Redirect-Get,PRG设计),那么您就会创建一个错误,它会出现为返回按钮的问题。
一个笼统的说法是返回按钮有问题是不太可能成立的。一个具体的例子将澄清您对此的具体问题。
如果您正确地设计应用程序,则返回按钮并不是什么大问题。您可以使用 AJAX 操纵当前页面的部分,而不会在浏览器历史记录中添加项目(因为页面本身不会改变)。
设计 Web 应用程序的最大问题与状态有关,并且需要解决各种挑战。使用桌面应用程序处理状态非常容易,您可以保持数据库连接打开,锁定记录并等待用户进行更改和提交。但是,在 Web 应用程序中,您可以锁定记录...但是如果用户关闭了浏览器怎么办?在设计应用程序时必须克服这些问题。
设计 Web 应用程序时,请确保每个到服务器的请求“独立”并提供完整的答案。始终在执行任何工作之前重新初始化变量,并且不要假设任何内容。我曾经遇到的一个挑战是将网格数据的“页面”返回给用户。在一个真正繁忙的系统中,实时发生记录添加/修改,从一页到另一页的用户导航会有很大变化,有时甚至会导致查看几条记录的相同集合,因为新添加的记录在查询之前。