我想做类似于stackexchange但有自己的域名。我想在1台服务器上拥有1个单独的数据库,存储库/模型层,服务层。然后在不同的服务器或同一台服务器上,我有一个可以访问这些层的Web项目。
有没有办法在不影响这些网站的情况下实现这一目标?我正在考虑提供一个WCF服务,但是通过生成和读取xml,它似乎很慢。我可以通过其他方式实现这一目标吗?
stackexchange做了什么?
这是我想要完成的简单架构:
每个其他用户界面可能有也可能没有自己的数据库。
我的目标是:
我想为我们将为一组人开发的网站提供一套服务。我想将所有这些相关数据放在一个数据库中。但每个人可能需要单独的逻辑/数据库。我希望每个站点上的每个用户都有自己的身份验证。我还希望我的服务层能够区分它来自哪个域。
答案 0 :(得分:4)
有没有办法在不影响这些网站的情况下实现这一目标?
在网站上?你不是指共享服务吗?
你是非常正确的,解析大量的XML会很慢,但是WCF可以以不同的方式绑定,所以你没有明确地绑定到解析XML。
更一般地说,如果你注意表现:
这只是我的头脑,我还建议通过标记搜索StackOverFlow - 特别是性能标记和其他任何您喜欢的标记:https://stackoverflow.com/questions/tagged/performance+.net
编辑:哦,我差点忘了:这听起来像是在进入多租户;你可能想看看:
我在数据架构中加入了一个,因为你提到的数据库非常多,这可能会给你一些很好的思考。
修改:
我仍然不明白我将如何上传一个新的网络项目,该项目将使用与主系统正在使用的相同的过程
相同的流程或相同的功能/数据?
我猜测它是你想要重用的功能和数据(通过进程我认为你的意思是相同的物理执行过程);在这种情况下,它很容易 - 制作一个组件并多次部署/使用它。
让我们说你的共享服务是一个数据库,并且“on”是一个.Net组件,它可以进行实际的数据访问,并暴露某种接口/ API。
选项1:直接消费
这里有一个组件,但有多个实例 - 每个Web应用程序一个。
优点:
缺点:
选项2:Adapter
优点:
缺点:
优点:
缺点: