Scalability - A 3-Tier architecture allows distribution of application components across multiple servers thus making the system much more scalable. Reliability - A 3-Tier architecture, if deployed on multiple servers, makes it easier to increase reliability of a system by implementing multiple levels of redundancy.
Hi I have been assigned a task of converting an existing 3 Tier application (Presentation Layer, Business Layer and Data Layer) to an Windows Azure Project.
Basically what I did was create a Web Role and put the presentation layer in it then I created 2 separate class library(respectively being the Business and Data Layer) projects and linked them to the presentation layer using references.
However when I deployed the application in Azure only the Web Role (Presentation Layer) was uploaded :/
Can someone tell me if:
It even is possible to use a 3 tier architecture with azure
If i made a mistake in referencing the projects
If this cannot be achieved is there a similar architecture that is like 3 Tier.
About missing reference: You would need to set 'copy local to true' for every reference you add to your project by yourself. This way all these references will be packaged and when deployed to cloud, avaialable to your project.
About Presentation and Business Layer:- Keep in mind if you have Web and workrole role in your application you will get two separate VM running your application the only way you could talk is by usign internal endpoints. When running your application on Windows Azure, think why there is a need to seperate code on two virtual machines (if necessary) because you sure can have a web front end as well as background processing code in a web role.. A worker role is nothing but a VM without pre-configured IIS. Most of non .net application with web front end use Worker role as their front end so you shoud need to design your application carefull to choose what will go in web role and what in worker role.
Avkash ChauhanAvkash Chauhan
Azure can do this. The question is are you tiers logical or physical. If they are logical, just different assemblies added to the one web project it is very easy, just install it in a web role. If they are physical tiers, ie you business layer is WCF services, this is also possible and it could be hosted in a different web or worker role or even all in the one web role if you wanted.
Azure is nothing more than a collection of Windows Server 2008 machines. You can deploy your solution as you like. Normally a webrole is used for the web tier (frontend), and a worker role for the logic (backend). You database or datastorage is the last tier.