我正在为各种内部 CRUD 应用程序开发一个框架。我考虑过几种 MS 技术(WPF、Access、WinForms、ASP.NET),并最终选择了 ASP.NET MVC 和 HTA+Jquery 作为客户端。我这样做的原因是我需要一种方法来编写和部署快速的一次性 GUI 应用程序,以及维护更强大且预计具有较长生命周期的应用程序。

首先,我想了解一下在客户端使用 ADODB 与在服务器端使用 ADO.NET 的相对优点。我倾向于 ADODB,因为我可以通过客户端访问 SQL Server(我已经编写了一个处理与 ADODB 交互的 js 库)。然而,我可以看到开发 RESTful 服务最终可能会有用。

其次,我需要将报告功能纳入系统中。我可以使用 SQL Server 报表服务或水晶报表,但用户已经习惯了一些使用 VBA 在 Word 中编写报表的旧应用程序;所以我正在考虑使用WordML 来编写报告。

谢谢。

有帮助吗?

解决方案

数据库访问

如果您需要瘦客户端,那么最好不要从客户端内直接访问数据库。

主要问题是您将引入对特定网络体系结构的高度依赖,并且您的 ASP.Net 应用程序和 HTA 都将高度依赖于数据库。

相反,我更愿意切断对数据库直接视线的依赖,并让服务器处理数据。

这有几个优点:

  • 对于数据库的许多小更改,您可能只需要更新 ASP 应用程序。

  • 如果您需要您的客户端应用程序在互联网上运行(例如,因为某些用户要参加外部会议,需要下班或您的公司开设新分支机构),那么您无需重写您的瘦客户端。

  • 您可以更好地控制对资源的访问:只让 ASP 应用程序与数据库对话并过滤传入/传出的内容。
    这将使您不必在客户端上实现所有安全性:ASP 应用程序成为数据库的守护者。这是保护信息的更好方法,并且为您提供了更多控制权。

报告

对于报告,我将再次使用服务器,而不是在客户端本身实现复杂的报告功能。
问题是,如果您使用 HTA 并且不想开始在每个用户的计算机上安装依赖项,那么您在客户端上总是会受到限制。
你最终会构建一个 厚的 客户很快...

如果您使用 ASP.Net,有很多非常好的报告工具,它们将使您的生活变得更加轻松,并允许您的用户获得 Excel、Word、PDF 等格式的精美报告,而无需您自己编写这些功能的代码。
水晶报表还可以,但是还有更好、更简单的替代方案,例如 开发者快报 引擎非常容易使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top