c# - 离线+在线数据库应用

标签 c# .net asp.net-mvc winforms wcf

我正在为客户开发会计系统。此应用程序有一些特殊要求。我留下了特定于帐户的会计系统详细信息。我提到了那些让我感到困惑的点。

该应用程序应在在线和离线环境中运行。如果用户正在工作并且应用程序突然脱机用户应该能够脱机工作。所有离线工作都存储在本地数据库中,并在下次应用程序连接到 Internet 时同步到中央数据库。此应用程序有很多用户,所有用户都将同时处理相同的信息。

例如,如果一个用户输入了一个库存项目,那么另一个用户可能同时也输入了相同的项目。应用程序应该能够验证正确的信息并禁止用户复制。

无论其他用户是否工作,用户本地数据库都必须随时更新。如果其他用户正在工作,所有更新的信息都应该在本地数据库中可用,以确保当用户离线时所有信息都得到更新。

问题是如何开发这种应用程序?有什么标准的方法可以实现这个目标吗?是否有构建此类软件的标准或非标准模式?

请注意,我正在使用 C# Dot Net 并打算为此应用程序使用 .NET Remoting 或 WCF 或 ASP.NET MVC。

我们将不胜感激任何形式的帮助。 谢谢。

最佳答案

蒂姆麦卡锡的书 .NET Domain-Driven Design with C#: Problem - Design - Solution 设计并实现具有类似要求的系统。它有点过时,但我认为会为您指明一个好的方向。 (看第五页,他列出了这本书正在设计的系统的要求,它们与你的相似。)

他使用 C#、WCF、Microsoft 的同步框架、智能客户端等。他说,在本书打印时, Entity Framework 不适用于 Visual Studio,因此他创建了自己的框架(这没关系,但我认为如果他能够包含 EF,这本书会好得多。)

希望对您有所帮助!

关于c# - 离线+在线数据库应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10267414/

相关文章:

c# - 如何获取与 IWpfTextView 关联的 EnvDTE.Document?

c# - 恼人的 SQL 异常,可能是由于某些代码做错了

c# - 为 .net5 项目创建单元测试

c# - 默认情况下,CLR 会重用 LOH 中的对象吗?

C#/Linq-to-sql - 锁定 datacontext.Table on insertonsubmit

c# - IEnumerator 给出空异常,但不为空

.net - 在 .net 中的两个时间戳之间查找完整日历年、月、日和小时的最简单方法

c# - 属性的自定义模型 Binder

c# - 在 Controller 内构建模型时如何将 Byte[] 隐式转换为字符串

c# - 在自定义操作过滤器中重定向