<分区>
我必须开发一个连接到企业内部网中的数据库的应用程序(Winforms 应用程序)。
因为我想保持应用程序的可扩展性、可维护性和灵 active ,所以我正在考虑应该使用哪种架构。
在这方面,我偶然发现了 N 层和 MVC 模式。
据我所知,这两种模式之间的主要区别在于 MVC 具有更三角形的结构(组件可以相互通信),而 3 层应用程序具有直结构,其中每个组件 (n) 只能将请求转发给组件 (n+1)。
所以我的想法是采用 3 层方法。 “Presentation Layer, Tier-1” 保存表单,“Business Layer, Tier-2” 处理 Tier-1 和 Tier-3 之间的信息和逻辑“数据层,第 3 层” 连接到数据库并使用存储过程。
我的问题是:
这听起来像是一个合理的决定吗?因为我读到如果你计划在不同的机器上运行单个层,N-Tier 是有意义的,我不打算这样做。
如果您认为我选择了错误的方法,什么是更好的主意?
提前致谢。
MVC和n-tier是两种不同层次的架构模式,涵盖了不同的方面。它们可以同时使用。这不是其中之一。
MVC 更像是一种可以应用于表示层的软件架构,其中一个组件是 Windows 窗体。 (Windows Forms 是否完全兼容 MVC 是一个单独的讨论。)
N层架构是一种系统架构(比MVC架构更高一层)。决定基本上是你有两层(Windows 窗体客户端作为第一层,带有存储过程的数据库作为第二层)还是三层(Windows 窗体客户端作为第一层,应用程序服务器与业务逻辑作为第二层,与第三层的数据库作为第三层)。或者更短:客户端会直接连接到数据库还是中间有一个应用服务器?
好像给出了存储过程的使用。如果是这种情况,那么它们可能不仅提供数据查询和存储,还提供一些业务逻辑。在这种情况下,我倾向于使用两层。
其他可能相关的因素是:
身份验证:是否可以在数据库中设置所有用户?或者在应用程序服务器上执行此操作并使用单个用户访问数据库会更容易吗?是否需要某种单点登录?
授权:是否可以检查数据库中的所有权利和权限?如果不是,那么需要三层才能创建安全的应用程序?
是否有网络架构限制不能直接访问数据库?
您是否期望有数千个并发用户并希望通过设置多台服务器进行扩展?
一般来说,我倾向于选择较少的层级,因为它更容易实现并且成本更低(最初和维护期间)。额外层的成本需要根据依赖于额外层的要求来证明是合理的。