我可以将非 MVC 的 ASP.NET 应用程序转换为与 Azure 兼容吗?

4

我能否将非MVC的asp.net应用程序转换为与Azure兼容?或者如果我想创建一个Azure Web应用程序,它是否应该是MVC的?


1
Azure不仅限于ASP.NET应用程序。您可以使用非ASP.NET应用程序、常规网站、ASP.NET(非MVC)或ASP.NET MVC(任何版本)。您选择的Web应用程序技术不应取决于平台(Azure),而应取决于您的应用程序需求。 - Stephen Chung
4个回答

2
其他答案已经回答了你关于将应用程序转换为MVC以部署到Azure的问题(你不需要这样做)。
如果你正在创建一个新的Web应用程序并选择使用ASP.NET MVC(我建议这么做),请记住,如果你选择MVC3,你可能需要将一些MVC3 DLL复制到你的部署中,因为它不是你的Web角色实例的一部分。至少我还是这样理解的。Azure SDK 1.4没有MVC3 Web角色模板。
查看这篇文章获取使你的MVC3应用程序准备好在Azure上运行的步骤。
希望这有所帮助。

1

您可以查看以下博客文章,了解如何将现有的ASP.NET应用程序迁移到Azure。它不一定是一个ASP.NET MVC应用程序,任何ASP.NET应用程序都可以工作。


在你链接的帖子中,NerdDinner就是MVC! - SIMSIM
@SIMSIM,ASP.NET MVC是一个ASP.NET应用程序。 - Darin Dimitrov

0

Azure有两个角色: 1. Web角色 2. Worker角色

Web角色就是一个ASP.NET应用程序。因此,无需将其转换为MVC应用程序,只要使用任何ASP.NET应用程序即可。


1
Web角色不是一个ASP.NET应用程序。Web角色是运行IIS的Windows Server 2008 SP2或R2虚拟机。您可以选择在该Web角色上开发任何您想要的内容,这甚至可能不涉及Web应用程序(例如,托管WCF服务,或者可能是侦听端口的Java应用程序)。 - David Makogon

0

可以,但是您也需要注意某些限制,这些限制在先前给出的答案中没有提到:

  1. 你的应用程序应该是无状态的,除非你只运行一个实例(对于大多数应用程序,99.9%的可靠性是可以接受的,但有些情况下你需要99.95%,因此你至少需要两个实例+负载均衡器等其他好处)。原因是如果你有多个实例,负载均衡器将把请求发送到不同的实例。你可以使用AppFabric Cache来解决这个问题。
  2. 你没有文件系统 - 这并不完全正确,但实际上你永远不应该依赖于本地文件。所有的图像上传(例如用户个人资料图片)都应该上传到 Blob 存储并链接到那里。如何做到这一点是另一回事,可以根据现有应用程序的架构采用不同的方法。你可以通过使用 Azure Drive 来使用文件,但速度非常慢。
  3. 没有事件日志/RDP - 这也只是部分正确,但你应该依赖于其他方式从你的角色中获取诊断信息。虽然你可以 RDP 到你的角色实例,但有更好的方法(例如 Azure 诊断存储)。
  4. 数据库应该谨慎选择。当然,你可以使用 SQL Azure,但它很昂贵(1 GB = 10 美元/月)。如果你可以使用 Table Storage 等东西,你可能会节省一些成本。同样,这取决于架构的很多因素。
关于你回答的第二部分。MVC作为一种模式很好。它可以节省你很多时间,比WebForms更适合Web。基于事件的系统是为桌面应用程序设计的,并被强制用于Web。然而,转到Azure并不意味着必须使用MVC。但我建议你将其视为一个很好的起点机会,了解MVC如何帮助你更好、更快地编写应用程序。
与涉及应用程序架构的任何其他情况一样,“这取决于情况”。如果你使用了常见的模式(例如IOC、Repository),那么将任何应用程序移动到Azure都将非常容易。

我能将非MVC的asp.net应用程序转换为Azure兼容吗?你没有回答这个问题... - Uri Abramson

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