我正在开发库存应用程序(C#.net 4.0),它将同时存储数十个工作站并将结果写入中央数据库。为了节省我必须编写DAL,我正在考虑使用以前从未使用过的Fluent NHibernate。
允许作为独立应用程序运行的库存应用程序使用Nhibernate直接与数据库通信是安全和良好的做法吗?或者我应该使用客户端服务器模型,其中所有对数据库的访问都是通过服务器进行读取/写入数据库。换句话说,如果当前正在库存的50个工作站将有50个活动数据库会话。我正在考虑将GUID-Comb用于PK ID。
答案 0 :(得分:0)
取决于;)
NHibernate具有乐观的并发控制ootb,这在很多情况下都足够好。因此,如果您只是在50个不同的站点上创建数据,那么应该没有问题。如果在一个工作站上创建数据取决于所有工作站的数据,那么它会变得棘手,而中央服务器会提供帮助。
答案 1 :(得分:0)
根据部署应用程序的环境,您还应该考虑出于安全原因,可能并不总是允许与中央服务器建立直接数据库连接。
使用WCF创建一个简单的REST服务(使用WebServiceHost
),只需对您的库存数据进行POST'或PUT'(使用HttpClient
)可能是一个很好的选择。
因此,客户端可以非常简单,可以轻松地为其他系统编写(linux?android?),服务器可以完全控制数据的存储方式和位置。