2012-02-23 80 views
2

嗨,我已经分配了一个任务,将现有的3层应用程序(表示层,业务层和数据层)转换为Windows Azure项目。使用Azure可以实现3层应用程序体系结构?

基本上我所做的就是创建Web角色并将表示层放入其中,然后我创建了2个独立的类库(分别为业务层和数据层)项目,并使用引用将它们链接到表示层。

然而,当我在Azure中只有Web角色(表示层)部署的应用程序被上传:/

My current 3 tier architecture that isnt working properly with azure

谁能告诉我,如果:

  1. 它甚至有可能使用天蓝色的3层架构
  2. 如果我在参考项目时犯了错误
  3. 如果这不能b e实现了类似3层的架构。

谢谢!

回答

1

关于缺失的参考文献: 对于您自己添加到项目中的每个参考,您都需要设置“copy local to true”。通过这种方式,所有这些引用将被打包,并在部署到云时可用于您的项目。

关于演示和业务层: - 请记住,如果您在应用程序中具有Web和workrole角色,您将得到两个单独的VM运行您的应用程序,您可以谈论的唯一方式是通过内部端点。在Windows Azure上运行应用程序时,请考虑为什么需要在两个虚拟机上分离代码(如有必要),因为您确实可以在Web角色中拥有Web前端以及后台处理代码。工作角色是没有预先配置的IIS,只有虚拟机。大多数非web应用程序使用Web前端使用Worker角色作为他们的前端,因此您需要谨慎设计您的应用程序以选择Web角色中的内容以及工作角色。

0

Azure只不过是Windows Server 2008机器的集合。您可以随意部署解决方案。通常,webrole用于Web层(前端),逻辑的后端角色(后端)。您的数据库或数据存储是最后一个层次。

+0

所以你说的是我的表示层必须是Web角色,我的业务层必须是一个工作者角色,我的数据层(连接到SQL Azure)必须是另一个工作者角色,然后我连接他们一起通过refernces? – 2012-02-23 10:42:32

+0

您可以将它们与Azure服务总线/ WCF/Azure队列或任何其他可以想到的通信通道相连接。 – Peter 2012-02-23 10:45:51

+0

它根本不是'独立'的角色。 Web角色只是安装了IIS的VM。你可以运行后台进程,Windows服务......任何你在传统的服务器上运行的任何东西,只需一个角色。如果您在Web项目中引用该数据层,则数据层DLL将与该站点一起部署。然后,您将连接字符串指向SQLAzure(或任何可用Web的SQL Server),然后您就可以参加比赛了。 – 2012-02-23 11:34:36

1

Azure可以做到这一点。问题在于你是逻辑的还是物理的。如果它们是逻辑的,只需将不同的程序集添加到一个Web项目中即可,非常简单,只需将其安装在Web角色中即可。如果它们是物理层,即您的业务层是WCF服务,那么这也是可能的,并且如果您愿意,它可以以不同的网络或工作者角色托管,甚至可以以一个Web角色托管。

相关问题