I am super excited about the public beta 2 release of Windows Server AppFabric. I am also hoping that you are also (if not more, than almost as) excited about this extremely useful and game changing offering from Microsoft.
However if you are one of those people who are still wondering what's this 'Windows Server AppFabric' and why is it important for you then you have come to the right place. In the last few weeks I have been asked few recurring questions on Windows AppFabric Fabric and it made a perfect sense for me to write a blog post (or perhaps a couple of them) on this topic.
At the moment I am thinking about making this a 3 part series which we will cover following areas:-
1- Try to answer some of the common questions around Windows Server AppFabric
2- Discuss business use cases that require use of Windows Server AppFabric
3- Discuss Windows Server AppFabric Architecture and its extensibility points
In this first post I will solely try to outline the technology side of the story and try to answer following common set of questions:-
Q: What is Windows Server AppFabric:
Let’s see what MSDN has to say:
Windows Server AppFabric is a set of integrated technologies that make it easier to build, scale and manage Web and composite applications that run on IIS.
In a nut shell, AppFabric
- is an ApplicationServer that allows you to build composite (WCF and WF) services that can horizontally scale out.
- offers enterprise scale distributed in-memory caching (that can, again, scale out horizontally)
- makes managing and monitoring services extremely easy through streamlined dashboards (via IIS) and Windows Power Shell Cmdlets
So, the key words are Services, Composite, Scalability, Distributed, In-Memory Caching, and ease of Management.
Q: Why/When should I use AppFabric?
We are not going to talk about business use-case in this post but surely we can discuss AppFabric's technical features that are extremely useful for developing composite service oriented applications.
You should definitely consider using AppFabric, when among other things, you... :-
- need your services to be scalable i.e the ability to expand from one node to hundreds and thousands nodes
- want to use application level in-memory caching that is highly available, performant and distributed across number of nodes
- want to be able to monitor your hosted services
- want the ability to manage your services using IIS as well as Windows Power Shell Cmdlets
Q: But... hold on...what happened with Oslo, Dublin and Velocity?
As a matter of fact, simply put mathematically, Windows Server AppFabric = Dublin + Velocity.
These days Oslo is more focused on data modelling and you find more details on Oslo here
Q: What are the key features of AppFabric:
Some key features of AppFabric include:-
- Hosting with message based activation i.e. Auto-magic lifecycle management based on incoming messages (more on hosting here)
- Streamlined configuration and monitoring via a centralized IIS Management console and Windows Power Shell Cmdlets (more on management tools here)
- Distributed, high performing, highly available, in-memory application caching (more on caching here)
- Seamless integration with IIS, WCF and WF (more on development here)
Q: How can I develop applications that can leverage AppFabric functionality?
Very simple! Fortunately, one of the good things about AppFabric is that any WCF/WF application/service built using following Visual Studio template leverage AppFabric feature-set.
- WCF Service Application
- WCF Workflow Service Application
- WCF Service
In fact, AppFabric (goes an extra mile and) looks for services created using these templates and applies default configurations for persistence and monitoring.
I believe that's it for now and in the next post, we will try to cover common use cases where we can run our services on AppFabric add utilize its feature-set to build scalable, composite and robust services and platforms.
Monday, March 08, 2010
Tuesday, March 02, 2010
Combating Software Entrop with Design Patters and Pricnicples at Tech-Ed Middle East
Here is the slide deck from my yesterday's presentationat TechEd.
C:\Fakepath\Combating Software Entropy 2
View more presentations from Hammad Rajjoub.
Sunday, February 28, 2010
3 Important Questions on Software Complexity
Tuesday, February 23, 2010
Why is it important to attend my 'Combating Software Entropy Session' at Tech-Ed Middle East 2010
I just quickly wanted to write down a brief introduction to my 'Combating Software Entropy' at Tech-Ed Middle East 2010
Session Outline:
In this session we are going to talk about
- How to tackle inherently complex nature of a software
- Gaining an insight in to the heart of the software design
- Heuristics associated with the software design and architecural patterns and practices
- What is bad design and how to fix it?
Audience:
Intended audience of this session in-general includes all the stake holders in software development process i.e. from Developer to Architect to Project and Program Manager and even CTOs and CIOs. However I have focused specially on targeting Software and Solutions Architects, i.e. individuals or teams responsible for the overall design and architecture of the solution. So, if you consider yourself as a stake holder in Software development process then you should be attending this session.
Thursday, February 18, 2010
DotNetME Podcasts are live!
I am pleased to announce that DotNetME Podcasts are live now !!!
To start with we have published our first episode that talks about SOLID principles. In this episode my good friend Ron is asking me about the desing principles around
- OCP : Open Close Principle
- SRP: Single Responsiblity Principle
- DI: Dependency Inversion
- LSP: Liskov Substitution Principle
The show was recorded way back in October 2009. Its a bit late but I'd say its all worth it. So download it, listen to it and let us know yor feedback.
To start with we have published our first episode that talks about SOLID principles. In this episode my good friend Ron is asking me about the desing principles around
- OCP : Open Close Principle
- SRP: Single Responsiblity Principle
- DI: Dependency Inversion
- LSP: Liskov Substitution Principle
The show was recorded way back in October 2009. Its a bit late but I'd say its all worth it. So download it, listen to it and let us know yor feedback.
Attending MVP Summit 2010
A quick update, I am in Seattle, attending MVP Summit 2010 these days.
Its a wonderful experience to sit with all the CSD folks here at Microsoft Campus. A lot of discussion has been around with the v next of the platform, which is absolutely exciting.
I will definitely try and build some content around some key technologies that we are discussing here (obviously only covering the public information). So stay tuned for bunch of posts around Windows Server AppFabric, Microsoft Dublin , Microsoft Velocity, WCF4 and Windows Azure
Its a wonderful experience to sit with all the CSD folks here at Microsoft Campus. A lot of discussion has been around with the v next of the platform, which is absolutely exciting.
I will definitely try and build some content around some key technologies that we are discussing here (obviously only covering the public information). So stay tuned for bunch of posts around Windows Server AppFabric, Microsoft Dublin , Microsoft Velocity, WCF4 and Windows Azure
Friday, February 12, 2010
My Top 11 Programming Books
Following is my top 11 programming books (in no particular order):-
1 - Code Complete 2
2 - CLR via C# 3rd Edition
3 - Agile Software Development, Principles, Patterns, and Practices
4 - The Pragmatic Programmer
5 - Rapid Development
6- Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition
7-Thinking in C++
8- SOA Design Patterns
9- Becoming a Technical Leader
11- Enterprise Integration Patterns
Take a look at Jeff Atwood's list here.
Also, worth looking at is the list by Joel (of 'Joel on Software' fame) here.
I will share the complete list of books that i own some other day :)
Let me know which ones do you like and which ones you dont...
1 - Code Complete 2
2 - CLR via C# 3rd Edition
3 - Agile Software Development, Principles, Patterns, and Practices
4 - The Pragmatic Programmer
5 - Rapid Development
6- Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition
7-Thinking in C++
8- SOA Design Patterns
9- Becoming a Technical Leader
11- Enterprise Integration Patterns
Take a look at Jeff Atwood's list here.
Also, worth looking at is the list by Joel (of 'Joel on Software' fame) here.
I will share the complete list of books that i own some other day :)
Let me know which ones do you like and which ones you dont...
Thursday, February 11, 2010
Agile Best Practices : Refactoring
Yesterday, 10th Feb 2010, i was invited to speak at a Techies UG event, here in Dubai, UAE.
I started off the discussion with defining the practice of refactoring and i quoted Martin Fowler's blog as following
After this we moved on to the best practices for refactoring classes. Following is a list that we discussed:-
The session was very intense with everyone chipping in with their comments and i thoroughly enjoyed hosting it. Towards the end Anton and I wrote couple of code snippets to check the Andrew idea of using Interfaces (more on it later on). Rolf also chipped in with his comments and critiques. Notable absentees were Ron and Zubair and it would have been much more fun had they attended the event.
ps: watch out this post for snaps from the event.
Edit#1: Rolf's blog post on the event is live http://techiesleaders.spaces.live.com/Blog/cns!50531D3D6442376A!214.entry
I started off the discussion with defining the practice of refactoring and i quoted Martin Fowler's blog as following
•Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.
•Its heart is a series of small behavior preserving transformations.
•Each transformation (called a 'refactoring') does little, but a sequence of transformations can produce a significant restructuring.
After this we moved on to the best practices for refactoring classes. Following is a list that we discussed:-
- Comments
- Long Method
- Long Parameter List
- Duplicate Code
- Large Class
- Type Embedded In Name
- Un Communicative Names
- Inconsistent Names
- Speculative Generality
The session was very intense with everyone chipping in with their comments and i thoroughly enjoyed hosting it. Towards the end Anton and I wrote couple of code snippets to check the Andrew idea of using Interfaces (more on it later on). Rolf also chipped in with his comments and critiques. Notable absentees were Ron and Zubair and it would have been much more fun had they attended the event.
ps: watch out this post for snaps from the event.
Edit#1: Rolf's blog post on the event is live http://techiesleaders.spaces.live.com/Blog/cns!50531D3D6442376A!214.entry
Subscribe to:
Posts (Atom)