asp.net-mvc - 将asp.net mvc项目从企业迁移到云端的最佳数据库策略(Azure优先)
问题描述
我们构建了一个 ASP.NET MVC 项目(使用 EF),该项目运行在我们客户的私有服务器上,一些大企业(我们称之为 e 版)。现在我们想为其他小公司构建一个可以在云上运行的版本(c 版)。
e 版非常简单:一个 ASP.NET MVC 网站,其中.mdf
包含App_data
.
对于c版,有一些解决方案:
对于网站应用程序本身:
1.1 将每个应用程序创建为独立网站 --- 成本高且不可维护,因此不予考虑。
1.2 为所有企业提供单一的网站托管服务,听起来不错。(我对吗?)
对于数据库,它相当复杂。
2.1在所有表格中添加“企业ID”。听起来很糟糕,因为 a. 性能可能很低。湾。安全性难以维护。C。e版和c版的代码会有所不同,因为新添加的Id。
2.2App_Data
为每个企业创建不同的文件夹,同一个网站通过程序化连接字符串访问不同的文件夹。e版和c版的网站和表格都是一样的。
2.2 听起来不错,但有一个大问题:在像 Azure(我不熟悉)这样的云中,我认为它没有运行 SQL Server Express。相反,那些“不同的文件夹”将是“不同的数据库实例”,考虑到可能有数百个试用企业,这是非常昂贵的。一种方法是租用“老式主机服务器”,它基本上是一个带有 Windows 服务器的虚拟机,所以我可以安装 SQL Server Express。但这听起来真的不是一种时尚。
2.3创建名称中带有程序前缀的表,因此一个db但针对不同企业的多个表。但是还有一个问题:我是先用EF代码,所以所有的表名都是在编译前定义在[Table("TableName")]里面的。
在阅读了“将 MVC 应用程序迁移到 AZure Appservice 和云服务”之后,我想说 Azure 应用程序服务将是我的首选。
那么,哪一个应该是最好的策略,还是我错过了一些更好的解决方案?谢谢。
解决方案
推荐阅读
- python - 如何将值传递到我的 Flask 表单中
- powershell - PowerShell 按位置查找和替换字符串
- node.js - 在 mongoose 和 supertest 的测试运行完成后,Jest 没有退出一秒钟
- reactjs - React-select 在移动浏览器上不起作用
- php - 发送 GET 请求时未设置 CORS
- networking - 获取硬件时间戳
- java - JDA Stream mp4 文件不和谐
- postgresql - application.properties 中的设置与@Component java spring boot 中的设置之间的区别
- python - pyautogui 没有显示我在 Pycharm 中的鼠标位置
- c# - 如何使用 It.IsAny<>(TValue) 匹配对象的某些属性?