What is Exactly an AppFabric in Windows Azure? What is Exactly an AppFabric in Windows Azure? azure azure

What is Exactly an AppFabric in Windows Azure?


Adding a bit to vtortola's answer:

There are three core areas of the Windows Azure platform:

  • Windows Azure (which provides virtual machines and massively-scalable storage through Blobs, Tables, and Queues
  • SQL Azure (which is a large subset of SQL Server), offering a full relational database up to 50GB
  • Windows Azure AppFabric (a set of services that you can opt into, currently comprising access control, connectivity, and caching)

When you construct your Windows Azure application, you can really pick and choose what pieces of the platform you're interested in. For instance, Windows Azure provides Web and Worker roles (both essentially identical virtual machines running Windows Server 2008 or R2, but Web roles have IIS enabled). If you need a relational database, you can very easily set up a database. And, then there's AppFabric:

  • If you need to connect to a set of web services on premises, for instance, you can use the AppFabric Service Bus (a secure way to connect without having to open up a firewall)
  • If you need to actually connect to an entire computer on-premise, use Azure Connect (a software VPN).
  • If you want to cache data (such as asp.net session state) between instances of your virtual machines, enable and use the AppFabric Cache (currently a Community Technology Preview, so no pricing yet).
  • If you need to add access control to your application, use AppFabric's Access Control Service, which essentially lets you outsource your identity management.

There are quite detailed examples in the Platform Training Kit that vtortola referenced. Additionally, there's a complete Identity Management training kit.


Azure AppFabric is a suite of middleware services and technologies to help you develop and manage services/applications that use Windows Azure. Middleware is typically defined as software that helps connect other pieces of software, and this definition is pretty accurate for the services appFabric provides.

You don't create an App Fabric per say. AppFabric services are used by your other applications as needed, so setup is typically configuring certain items in the Azure Portal, then implementing libraries of config entires in your web/worker roles that leverage the resources.

Essentially AppFabric provides certain resources that you need when composing complex applications as services, vs. you having to implement and maintain these resources yourself.

The basic offerings are:

Service Bus: A message relay that can be consumed by other .NET technologies (and others). SB helps you connect different cloud services as well as "hybrid" services. The hybrid is a big deal, as SB helps you easily connect on-premise web services with services you run in the cloud, w/o having to mess around with VPN, protocols, server setups, certificates, etc etc.

Access Control: An authentication and authorization service, helping you manage user-level access without having to extend/implement Active Directory, LDAP, and custom user authentication modules throughout Azure.

Caching: an in-memory distributed caching layer for your applications. This is typical to memcached or the Windows Server version of AppFabric

Integration: a PaaS service of EDI/transport technology like BizTalk server

Composite App: allows the composition of complex applications using a compistion language versus just putting a bunch of code together. You basically define your application using a designer like you would a EF.Net data model or a Windows Workflow

So basically AppFabric provides you with a lot of services that you likely need, but the typical cloud developer may not want to "mess with" at least at first. This way you have these great building blocks to help you focus on your core logic/needs during development cycles while not limiting what your application can ultimately do. This "focus" is one of the core benefits to cloud computing, especially Platform as a Service, and is one area where Azure really shines compared to other offerings.

Some of these technologies are still in beta. The AppFabric site makes this very clear, but its important to be aware of.

Great place to start is the Azure AppFabric site itself, which breaks a lot of this down, gives you great examples of how to use, and some sample code for you to get your feet wet.

http://www.microsoft.com/windowsazure/AppFabric/Overview/default.aspx#top


Basically:

  • WebRole : similar to a webapplication.
  • WorkerRole: similar to a Windowsservice.
  • AppFabric: Group of services thatallow you interconnect applications inside and outside Azure.

Download and read/do the Azure training kit, it will solve those questions and tell you how to create that project in Visual Studio step-by-step.