基本上,我的团队和我正在开发一个新的桌面应用程序,它将在我们制造车间的 Windows 7 桌面上运行。该程序在引入时将被大量使用,并且需要与我们的制造数据库进行交互。我估计(最终)将有大约 100 到 200 台机器同时运行这个应用程序。
我们在这里很幸运,我们可以从头开始做所有事情,所以我们定义了数据库、任何 Web 服务、程序设计以及上述内容之间的任何交互。
就像现在一样,我们的遗留应用程序只能直接访问数据库,这很糟糕。我们不想对新应用程序这样做。
所以我的问题是,我该怎么做?模糊,我知道,但基本上我在这里有很多东西可以使用,而且我不完全确定正确的方向是什么。
我最初的想法是,基于我对其他人所做的看法,基本上是通过使用 Web 服务来隔离数据库。即来自楼层的所有数据库交互必须通过网络服务进行,通过在闭门中执行大部分数据库逻辑来提供一层安全性。然后通过 Active Directory 将 Web 服务调用保护给各个用户。
不过,正如我发现的那样,这有其自身的一些含义……我们必须在数据到达应用程序之前对其进行抽象。通过反复使用 Web 服务调用来破坏或发送垃圾数据,仍然存在恶意滥用的可能性。我们已经看过 Entity Framework 并且非常喜欢它提供的东西,但据我所知,在这个实例中,当我们处于应用程序级别时,它将不可用。
似乎我无法就什么是“正确的”得出结论。那么,什么是对的?