我目前正在开发一个WPF客户端应用程序,它使用Linq-to-SQL作为类型化表对象,并在外部服务器上的MS SQL数据库中包含大量CRUD存储过程。我不预见通过上下文直接操作数据,只预测存储过程。
我最关心的两个问题是: 1)数据库安全性 2)灵活的架构
据我所知,由于应用程序可以通过互联网随时下载,因此在应用程序本身中存储数据库连接信息不是一种选择(出于安全考虑)。我觉得我唯一的选择就是把我的DAL放在网络服务中。
用户凭证可以按操作传递,数据库连接信息将安全地存储在安全的Web服务器上。
我很好奇这个方法是否有效,如果是最佳的话?我可以轻松地序列化Linq-to-SQL对象(表和存储过程结果)以在客户端和Web服务之间来回发送吗?
提前谢谢。
答案 0 :(得分:3)
你是对的,如果你的应用程序是通过互联网使用的,你几乎不得不把中间层放在那里。
如果您正在做的主要是CRUD,我认为一个好主意是看看ADO .Net Data Services。这是通过REST接口公开数据的有效方式,您可以获得一个客户端库,以便在客户端以类型的方式访问您的数据。
它支持通常的ASP.Net安全机制(例如表单身份验证,成员资格提供程序等),以便您可以根据用户的凭据保护您的访问点(为此您可以使用Client Services可以负责您的应用和服务器之间的身份验证。)
希望这些指针有所帮助。