推荐多层架构/语言/数据库?

Recommend multi-tier architecture / language / database?

我正在查看新的业务线应用程序要求(技术,而不是会计)。该应用程序需要以下架构:

我不是全职程序员。但在过去的 25 年里,我用 FORTRAN、Common Lisp、Pascal、VB 和 Python 做过一些编程。我在这里可能被描述为创意人 - 而不是实施者。

如果我们想制作原型,最好的平台是什么?我在想,因为客户端,.NET 会很好,但我担心如果我们使用 SQL 以外的其他东西,后端使用 .NET 的能力(我对 LINQ 一无所知 - 可以这对我有帮助吗?)。另外,我真的很喜欢动态类型语言的想法,因为它们的表现力和开发速度。

考虑到低延迟和非关系类型的数据,NoSQL 将是正确的选择。许多流行的数据库对 .net(如 MongoDB、CouchBase)都有很好的支持,甚至对其 lambdas/expressions 和 LINQ 也有很好的支持。此外,您还必须考虑可能影响后端架构的最终一致性(无论您采用关系还是 NoSQL、复制或分片的方式)。

关于审计跟踪、版本控制和发布更改请看CQRS 和Event Sourcing 架构模式,它们很好地解决了此类问题。

对于客户端应用程序,我建议尝试使用 Xamarin。 (我认为它比 WPF 更好,因为它不像 WPF 那样专注于特定设备)这提供了对服务器和客户端应用程序使用相同的开发 platform/language 和更低 development/support 的主要好处成本。

关于桌面应用程序,我不确定 Xamarin 是否支持 COM,但如果不支持,您可以 share client code 并分离表示层。因此,您将拥有用于桌面 (Visual Studio) 和移动 (Xamarin)

的单独层

所有这些东西都可以使用 .net 制作,我在这里看到一个很棒的专家:为所有应用程序使用通用代码库。