Web应用程序架构问题

3
我们计划开发一个中型到大型的Web应用程序,主要涉及CRUD操作、报告和内网/外网功能。有人提出将应用程序分成两个独立的解决方案:
1. ASP.NET Web应用程序——前端
2. 核心应用程序——数据访问,域逻辑……托管在Windows服务中。
这两部分之间的通信将通过WCF(TCP、命名管道)实现。您所关心的是这种解决方案的优缺点是什么?特别是对于开发过程可能会变得复杂,因为所有这些都需要通过WCF进行通信。您能否分享一些想法或者是否有类似项目的经验?

请定义中/大型。预期的流量是多少?使用层可以分离逻辑,使添加例如缓存作为新层更容易。 - Mikael Svenson
让我们从100个并发用户开始。但是有潜力增长... - user137348
1
你可以看一下这个类似的话题:http://stackoverflow.com/questions/527052/asp-net-web-application-architecture-design-advice - Martin Fabik
1个回答

1

这是一种看待问题的方式,但如果您以“标准”的n层方式编写应用程序,使得Web前端不依赖于后端的具体类,您“可以”在需要时稍后添加它,但是提前这样做“以防万一”会给您的系统增加很多复杂性。

另一种方法是能够将应用程序放入Web农场并使用负载均衡器-这将减少您的代码复杂性并允许您根据需要进行扩展。

(我还要注意到100个并发用户并不算太大)。


请问您能否对Web Farm的内容再具体一些? - user137348
好的,对于扩展性,您可以像平常一样编写n层应用程序,将数据库放在单独的服务器上。如果负载真的增加了,您可以将站点放入Web Farm中,在负载均衡器后面使用许多Web应用程序服务器 - 这使您能够轻松扩展您的站点,同时仍然保持简单的代码。 - Paddy
我想指出,在这种情况下,你需要以不同的方式考虑会话(InProc 会话在这种情况下并不好)和缓存等问题,但这都是可行的。 - Paddy
这种方法只有在层之间进行服务分离(WCF)时才可能实现? - user137348
不,这种方法是为了避免服务分离的需要,因为它会增加复杂性。你所有的代码都运行在同一台设备上,但你拥有多个设备。 - Paddy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接