Search This Blog

Wednesday, June 23, 2010

Multi-Tier Architecture !!

Pampers Baby-Dry Diapers, Size 3 (16-28 Lbs), Economy Plus Pack, 204 Diapers


When talking about multi-tiered architectures, we need to remember that the tier boundary is significant. The tier boundary is where distribution happens and if you remember the “fallacies of distributed computing“, you know not to take that lightly.
A tier is a physical boundary (versus, for example, an Edge in a SOA which is a logical boundary within the service). The implications of that are numerous. For instance, you need to consider:

WCF Multi-tier Services Development with LINQ
  • Trust–who do you let in?
  • Security–what do you send out?
  • Performance–you need to serialize to pass the boundary, and remote data is expensive to fetch.
  • Availability–what happens if you crash?
  • Manageability–can anyone see what’s your state? Help you recover?
  • Temporal coupling–can you afford to make synchronous calls?
  • and many similar questions.
Yet many times people think passing a tier is as simple as passing a logical layer. I should know. I made this stupid mistake more than 4 years ago in one of the first distributed systems I designed when I was work in Benchmark Softec Pvt LTD. I planned this beautiful separation of the UI controls from the business logic (I didn’t know it was called “MVC” and that someone else had figured it out ages ago, so I was pretty proud of myself). When you clicked on a button you just used metadata to say that BL should catch it. I had all this wonderful “infrastructure”that handled passing the call to its destination.
Xbox 360 12 Month Live Gold Card
But then we wanted to take this n-layer application and put the BL in an “application server” which will handle multiple clients. Oh–now we need to move events over the wire , handle calls from multiple unrelated clients, pass a lot of data back and forth, and what about security… you can imagine the fiasco.
Thus, as Niels Bohr once said, “An expert is a person who has made all the mistakes which can be made in a very narrow field.” But you don’t have to make the same mistakes. Just remember that a tier is a natural boundary. You know what? You should think of a tier as the  edge of a cliff, right there – at the end of your application. You know you want to be careful and not  fall down.

Thursday, June 17, 2010

What is Denali ? - SQL Server 2011


“What is Denali?”
Denali is code name of SQL Server 2011.
Here is the list of the code name of other versions of SQL Server.
In 1988, Microsoft released its first version of SQL Server. It was developed jointly by Microsoft and Sybase for the OS/2 platform.
  • 1993 – SQL Server 4.21 for Windows NT
  • 1995 – SQL Server 6.0, codenamed SQL95
  • 1996 – SQL Server 6.5, codenamed Hydra
  • 1999 – SQL Server 7.0, codenamed Sphinx
  • 1999 – SQL Server 7.0 OLAP, codenamed Plato
  • 2000 – SQL Server 2000 32-bit, codenamed Shiloh (version 8.0)
  • 2003 – SQL Server 2000 64-bit, codenamed Liberty
  • 2005 – SQL Server 2005, codenamed Yukon (version 9.0)
  • 2008 – SQL Server 2008, codenamed Katmai (version 10.0)
  • 2010 – SQL Server 2008 R2, Codenamed Kilimanjaro (aka KJ)
  • Next – SQL Server 2011, Codenamed Denali
Any guesses what should be the next version after 2011 should be codenamed?

Thursday, June 10, 2010

Windows Azure Platform Training Kit - June Update..


Windows Azure Platform Training Kit - June Update


Let us see.. How it is........

Microsoft released an update to its Azure training kit.
Here is what is new in the kit:
  • Introduction to Windows Azure - VS2010 version
  • Introduction To SQL Azure - VS2010 version
  • Introduction to the Windows Azure Platform AppFabric Service Bus - VS2010 version
  • Introduction to Dallas - VS2010 version
  • Introduction to the Windows Azure Platform AppFabric Access Control Service - VS2010 version
  • Web Services and Identity in the Cloud
  • Exploring Windows Azure Storage VS2010 version + new Exercise: “Working with Drives”
  • Windows Azure Deployment VS2010 version + new Exercise: “Securing Windows Azure with SSL”
  • Minor fixes to presentations – mainly timelines, pricing, new features etc.

Search Engine Optimization (SEO) Enhancement in ASP.NET 4.0


As we all of know Meta description (META description tag) is very significant for SEO point of view. The META Description Tag is a vital part which identifies a page and search engines take this META tag very sincerely. To improve the search relevancy of pages is to make sure you always put relevant “keywords” and “description” <meta> tags within the<head> section of your HTML.

<head runat="server">
    <title>SEO Demo</title>
    <meta name="description" content="Page keywords." />
    <meta name="keywords" content="ASP.NET 4, SEO enhancements." />
</head>
In ASP.NET 4.0, one of the notable enhancements is the addition of two new properties to the Page class:- MetaKeywords and MetaDescription. These put the “keywords” and “description” <meta> tags within the <head> section of the page automatically.

When Useful?

This is particularly useful where your web site are using master-pages – and the section ends up in a .master file. You can now set the new MetaKeywords andMetaDescription properties in the .aspx page and their values will be automatically rendered by the section within the master page.

Using MetaKeywords and MetaDescription properties

You can directly define Meta Keywords and Meta Description through @Page attribute as-

 
Or you can also define the same programmatically in the Page_Load event of the Page class as-

protected void Page_Load(object sender, EventArgs e)
    {
        this.Page.MetaKeywords = "Page key words";
        this.Page.MetaDescription = "Page description";
    }
From both of the above options, the markup gets rendered in the web browser as-

<head>
   <title>SEO Demo</title>
   <meta name="description" content="Page description" />
   <meta name="keywords" content="Page key words" />
</head>
One important point should be noted that if you set the values programmatically, values set declaratively in either the section or via the @Page attribute will be overridden.
If you want to update the meta tag content by keeping the old content intact, use following technique-

protected void Page_Load(object sender, EventArgs e)
    {
        this.Page.MetaKeywords += " - NewPage key words.";
        this.Page.MetaDescription += " - New Page description.";
    }
And now the markup that gets rendered in the web browser is-

<head>
   <title>SEO Demo</title>
   <meta name="description" content="Page description - New Page description."/>
   <meta name="keywords" content="Page key words - NewPage key words." />
</head>

Winding Up

So this is really a nice enhancement in ASP.NET 4.0 that provide us more flexibilities in defining meta tag contents.