<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">
  <channel>
    <title>Rockford Lhotka - Windows Azure</title>
    <link>http://www.lhotka.net/weblog/</link>
    <description>Creator of the CSLA .NET framework</description>
    <language>en-us</language>
    <copyright>Marimer LLC</copyright>
    <lastBuildDate>Thu, 24 May 2012 14:36:24 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>rocky@lhotka.net</managingEditor>
    <webMaster>rocky@lhotka.net</webMaster>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=d9691de3-ac64-42e5-9e4a-7bfc2bfd5b29</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,d9691de3-ac64-42e5-9e4a-7bfc2bfd5b29.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,d9691de3-ac64-42e5-9e4a-7bfc2bfd5b29.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=d9691de3-ac64-42e5-9e4a-7bfc2bfd5b29</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The Windows Azure team is putting together an event on June 7 where they’ll be providing
some great info about Azure.
</p>
        <p>
          <a href="http://www.meetwindowsazure.com">
            <img title="AzureBanner_300x250" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="AzureBanner_300x250" align="right" src="http://www.lhotka.net/weblog/content/binary/Windows-Live-Writer/Meet-Windows-Azure_85F0/AzureBanner_300x250_3.png" width="244" height="204" />
          </a>
        </p>
        <p>
The event is live in San Francisco, but for most of us it is streaming live over the
Internet.
</p>
        <p>
Over the past year or so Microsoft has rolled out new features and pricing models
for Azure that make the platform more and more compelling. I think they are nearing
the point where the question will change from “why should I use Azure?” to “why <strong>shouldn’t</strong> I
use Azure?”.
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=d9691de3-ac64-42e5-9e4a-7bfc2bfd5b29" />
      </body>
      <title>Meet Windows Azure</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,d9691de3-ac64-42e5-9e4a-7bfc2bfd5b29.aspx</guid>
      <link>http://www.lhotka.net/weblog/MeetWindowsAzure.aspx</link>
      <pubDate>Thu, 24 May 2012 14:36:24 GMT</pubDate>
      <description>&lt;p&gt;
The Windows Azure team is putting together an event on June 7 where they’ll be providing
some great info about Azure.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.meetwindowsazure.com"&gt;&lt;img title="AzureBanner_300x250" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="AzureBanner_300x250" align="right" src="http://www.lhotka.net/weblog/content/binary/Windows-Live-Writer/Meet-Windows-Azure_85F0/AzureBanner_300x250_3.png" width="244" height="204" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The event is live in San Francisco, but for most of us it is streaming live over the
Internet.
&lt;/p&gt;
&lt;p&gt;
Over the past year or so Microsoft has rolled out new features and pricing models
for Azure that make the platform more and more compelling. I think they are nearing
the point where the question will change from “why should I use Azure?” to “why &lt;strong&gt;shouldn’t&lt;/strong&gt; I
use Azure?”.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=d9691de3-ac64-42e5-9e4a-7bfc2bfd5b29" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,d9691de3-ac64-42e5-9e4a-7bfc2bfd5b29.aspx</comments>
      <category>Windows Azure</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=191a4259-8122-4d7a-be4b-e868bf9de34b</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,191a4259-8122-4d7a-be4b-e868bf9de34b.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,191a4259-8122-4d7a-be4b-e868bf9de34b.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=191a4259-8122-4d7a-be4b-e868bf9de34b</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I have been working on the <em>Using CSLA 4: Data Portal Configuration</em> ebook,
part of the <a href="http://store.lhotka.net/Default.aspx?tabid=1560&amp;ProductID=22">Using
CSLA 4 ebook series</a>. One section of the book covers the use of Windows Azure as
the application server, where the server-side components of the CSLA .NET data portal
and your application will run.
</p>
        <p>
Perhaps the most interesting part of that section of the ebook is that there’s no
meaningful difference between hosting in Windows Azure and hosting in IIS on an on-premise
Windows Server. In fact, the only difference at all is that the project in Visual
Studio is an Azure ASP.NET Web Role project instead of an Empty ASP.NET web project.
</p>
        <p>
This is because Windows Azure allows WCF services to host in a web role in the same
way IIS hosts WCF services. When using the WCF data portal channel, the server components
are accessed through a standard WCF endpoint – nothing special or fancy. That means
any place you can host WCF, you can host the data portal.
</p>
        <p>
In my example solution, there’s also a Silverlight client app. It is part of that
same Web Role app, so a user simply navigates to the web page in Azure that hosts
the Silverlight app. The Silverlight app runs on the client, and uses the data portal
to interact with the server-side components of the application running in Azure.
</p>
        <p>
There is some potential value to hosting the data portal (your application server)
in Windows Azure. 
</p>
        <p>
There’s the obvious scalability benefit. Because the data portal is stateless, and
typical server-side business code in a CSLA application is also stateless, there is
no problem with just adding more web role instances to the app. If more capacity is
required on the server, just change the Azure configuration and just like that you
have more capacity.
</p>
        <p>
The business code running in Azure typically implements persistence. Another value
of running the application server in Azure is that the application can store its data
in SQL Azure. Pretty comparable to SQL Server, but based in the cloud. In that way,
the entire app can be cloud-based, with the Silverlight client using client-side CPU
and memory resources, while the rest of the app scales happily in Azure.
</p>
        <p>
Alternately, the application could store its data in Azure Storage. That isn’t a relational
data store, but does offer some interesting super-scaling capabilities that may be
quite valuable.
</p>
        <p>
In the end, perhaps the most notable thing to consider is this: when building an application
using CSLA and the data portal, it is entirely possible to switch between hosting
in IIS to hosting in Azure, and back again, without changing anything except the application
configuration.
</p>
        <p>
Sure, if you use Azure-specific features in your business code (like Azure Storage),
you can’t easily move off Azure. But if you stick with SQL Server or SQL Azure, and
avoid Azure Storage, the .NET Service Bus, and other Azure-specific constructs, CSLA
can help you build an app that can exploit Azure, without being locked into Azure
forever.
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=191a4259-8122-4d7a-be4b-e868bf9de34b" />
      </body>
      <title>CSLA .NET and Windows Azure</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,191a4259-8122-4d7a-be4b-e868bf9de34b.aspx</guid>
      <link>http://www.lhotka.net/weblog/CSLANETAndWindowsAzure.aspx</link>
      <pubDate>Mon, 28 Mar 2011 00:11:17 GMT</pubDate>
      <description>&lt;p&gt;
I have been working on the &lt;em&gt;Using CSLA 4: Data Portal Configuration&lt;/em&gt; ebook,
part of the &lt;a href="http://store.lhotka.net/Default.aspx?tabid=1560&amp;amp;ProductID=22"&gt;Using
CSLA 4 ebook series&lt;/a&gt;. One section of the book covers the use of Windows Azure as
the application server, where the server-side components of the CSLA .NET data portal
and your application will run.
&lt;/p&gt;
&lt;p&gt;
Perhaps the most interesting part of that section of the ebook is that there’s no
meaningful difference between hosting in Windows Azure and hosting in IIS on an on-premise
Windows Server. In fact, the only difference at all is that the project in Visual
Studio is an Azure ASP.NET Web Role project instead of an Empty ASP.NET web project.
&lt;/p&gt;
&lt;p&gt;
This is because Windows Azure allows WCF services to host in a web role in the same
way IIS hosts WCF services. When using the WCF data portal channel, the server components
are accessed through a standard WCF endpoint – nothing special or fancy. That means
any place you can host WCF, you can host the data portal.
&lt;/p&gt;
&lt;p&gt;
In my example solution, there’s also a Silverlight client app. It is part of that
same Web Role app, so a user simply navigates to the web page in Azure that hosts
the Silverlight app. The Silverlight app runs on the client, and uses the data portal
to interact with the server-side components of the application running in Azure.
&lt;/p&gt;
&lt;p&gt;
There is some potential value to hosting the data portal (your application server)
in Windows Azure. 
&lt;/p&gt;
&lt;p&gt;
There’s the obvious scalability benefit. Because the data portal is stateless, and
typical server-side business code in a CSLA application is also stateless, there is
no problem with just adding more web role instances to the app. If more capacity is
required on the server, just change the Azure configuration and just like that you
have more capacity.
&lt;/p&gt;
&lt;p&gt;
The business code running in Azure typically implements persistence. Another value
of running the application server in Azure is that the application can store its data
in SQL Azure. Pretty comparable to SQL Server, but based in the cloud. In that way,
the entire app can be cloud-based, with the Silverlight client using client-side CPU
and memory resources, while the rest of the app scales happily in Azure.
&lt;/p&gt;
&lt;p&gt;
Alternately, the application could store its data in Azure Storage. That isn’t a relational
data store, but does offer some interesting super-scaling capabilities that may be
quite valuable.
&lt;/p&gt;
&lt;p&gt;
In the end, perhaps the most notable thing to consider is this: when building an application
using CSLA and the data portal, it is entirely possible to switch between hosting
in IIS to hosting in Azure, and back again, without changing anything except the application
configuration.
&lt;/p&gt;
&lt;p&gt;
Sure, if you use Azure-specific features in your business code (like Azure Storage),
you can’t easily move off Azure. But if you stick with SQL Server or SQL Azure, and
avoid Azure Storage, the .NET Service Bus, and other Azure-specific constructs, CSLA
can help you build an app that can exploit Azure, without being locked into Azure
forever.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=191a4259-8122-4d7a-be4b-e868bf9de34b" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,191a4259-8122-4d7a-be4b-e868bf9de34b.aspx</comments>
      <category>CSLA .NET</category>
      <category>Windows Azure</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=6473ff9e-fb7e-47c4-8073-478a0599e768</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,6473ff9e-fb7e-47c4-8073-478a0599e768.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,6473ff9e-fb7e-47c4-8073-478a0599e768.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=6473ff9e-fb7e-47c4-8073-478a0599e768</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I am pleased to announce the first beta release of CSLA 4 version 4.1 with support
for Windows Phone 7, and continuing support for .NET 4 and Silverlight 4.
</p>
        <p>
          <a href="http://www.lhotka.net/cslanet/download.aspx">Download CSLA 4 version 4.1.0
here</a>
        </p>
        <p>
With this release, it is now possible to write a single business layer composed of
business domain objects that run unchanged on a WP7 device, in Silverlight, on a Windows
client, on Windows Server and on Windows Azure.
</p>
        <p>
The samples download includes Samples\Net\cs\SimpleNTier, which does implement the
following interfaces over one common business layer:
</p>
        <ul>
          <li>
Windows Phone</li>
          <li>
WPF</li>
          <li>
Silverlight</li>
          <li>
ASP.NET MVC</li>
        </ul>
        <p>
Of course this is just the first beta release, so there’s more work to be done. At
the same time, we have completed the vast majority of the effort, and it is quite
possible to build WP7 applications using this beta.
</p>
        <p>
As with all CSLA releases, this one does include some bug fixes and enhancements to
other parts of the framework. Please see the <a href="http://www.lhotka.net/Article.aspx?id=9aad2f99-86eb-453b-a760-6303c3b27552">change
log</a> for a list of all changes. Enhancement highlights include:
</p>
        <ul>
          <li>
Add ability to get a consolidated list of broken rules for an object graph</li>
          <li>
New BackgroundWorker component that automatically initializes background threads with
the current principal and culture from the UI thread</li>
          <li>
TriggerAction provides better debugging information, following the lead of many Microsoft
XAML controls</li>
          <li>
and much more…</li>
        </ul>
        <p>
In related news, <a href="http://unitdriven.codeplex.com">UnitDriven</a> has also
been updated to support WP7, and provides a pretty comprehensive unit test runner
and framework for WP7 code. CSLA uses UnitDriven for its automated testing, but UnitDriven
can be used for any application on .NET, Silverlight or WP7.
</p>
        <p>
Similarly, <a href="http://bxf.codeplex.com">Bxf</a> (Basic XAML Framework) has been
updated to support WP7, thereby providing a common MVVM framework for WPF, Silverlight
and WP7 UI development efforts. Some CSLA sample apps use Bxf, but Bxf can be used
for any application, including those that don’t involve CSLA at all.
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=6473ff9e-fb7e-47c4-8073-478a0599e768" />
      </body>
      <title>CSLA 4 version 4.1 beta release</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,6473ff9e-fb7e-47c4-8073-478a0599e768.aspx</guid>
      <link>http://www.lhotka.net/weblog/CSLA4Version41BetaRelease.aspx</link>
      <pubDate>Fri, 22 Oct 2010 19:35:18 GMT</pubDate>
      <description>&lt;p&gt;
I am pleased to announce the first beta release of CSLA 4 version 4.1 with support
for Windows Phone 7, and continuing support for .NET 4 and Silverlight 4.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.lhotka.net/cslanet/download.aspx"&gt;Download CSLA 4 version 4.1.0
here&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
With this release, it is now possible to write a single business layer composed of
business domain objects that run unchanged on a WP7 device, in Silverlight, on a Windows
client, on Windows Server and on Windows Azure.
&lt;/p&gt;
&lt;p&gt;
The samples download includes Samples\Net\cs\SimpleNTier, which does implement the
following interfaces over one common business layer:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Windows Phone&lt;/li&gt;
&lt;li&gt;
WPF&lt;/li&gt;
&lt;li&gt;
Silverlight&lt;/li&gt;
&lt;li&gt;
ASP.NET MVC&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Of course this is just the first beta release, so there’s more work to be done. At
the same time, we have completed the vast majority of the effort, and it is quite
possible to build WP7 applications using this beta.
&lt;/p&gt;
&lt;p&gt;
As with all CSLA releases, this one does include some bug fixes and enhancements to
other parts of the framework. Please see the &lt;a href="http://www.lhotka.net/Article.aspx?id=9aad2f99-86eb-453b-a760-6303c3b27552"&gt;change
log&lt;/a&gt; for a list of all changes. Enhancement highlights include:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Add ability to get a consolidated list of broken rules for an object graph&lt;/li&gt;
&lt;li&gt;
New BackgroundWorker component that automatically initializes background threads with
the current principal and culture from the UI thread&lt;/li&gt;
&lt;li&gt;
TriggerAction provides better debugging information, following the lead of many Microsoft
XAML controls&lt;/li&gt;
&lt;li&gt;
and much more…&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
In related news, &lt;a href="http://unitdriven.codeplex.com"&gt;UnitDriven&lt;/a&gt; has also
been updated to support WP7, and provides a pretty comprehensive unit test runner
and framework for WP7 code. CSLA uses UnitDriven for its automated testing, but UnitDriven
can be used for any application on .NET, Silverlight or WP7.
&lt;/p&gt;
&lt;p&gt;
Similarly, &lt;a href="http://bxf.codeplex.com"&gt;Bxf&lt;/a&gt; (Basic XAML Framework) has been
updated to support WP7, thereby providing a common MVVM framework for WPF, Silverlight
and WP7 UI development efforts. Some CSLA sample apps use Bxf, but Bxf can be used
for any application, including those that don’t involve CSLA at all.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=6473ff9e-fb7e-47c4-8073-478a0599e768" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,6473ff9e-fb7e-47c4-8073-478a0599e768.aspx</comments>
      <category>Bxf</category>
      <category>CSLA .NET</category>
      <category>Silverlight</category>
      <category>Web</category>
      <category>Windows Azure</category>
      <category>WP7</category>
      <category>WPF</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=620ad748-a4d3-40f0-bd94-3a292907e06e</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,620ad748-a4d3-40f0-bd94-3a292907e06e.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,620ad748-a4d3-40f0-bd94-3a292907e06e.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=620ad748-a4d3-40f0-bd94-3a292907e06e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Microsoft has published some <a href="http://blogs.msdn.com/b/jmeier/archive/2010/08/03/now-available-azure-security-notes-pdf.aspx">Azure
Security Notes</a> that are important reading if you are using Windows Azure.
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=620ad748-a4d3-40f0-bd94-3a292907e06e" />
      </body>
      <title>Azure Security Guidance</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,620ad748-a4d3-40f0-bd94-3a292907e06e.aspx</guid>
      <link>http://www.lhotka.net/weblog/AzureSecurityGuidance.aspx</link>
      <pubDate>Mon, 09 Aug 2010 15:29:38 GMT</pubDate>
      <description>&lt;p&gt;
Microsoft has published some &lt;a href="http://blogs.msdn.com/b/jmeier/archive/2010/08/03/now-available-azure-security-notes-pdf.aspx"&gt;Azure
Security Notes&lt;/a&gt; that are important reading if you are using Windows Azure.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=620ad748-a4d3-40f0-bd94-3a292907e06e" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,620ad748-a4d3-40f0-bd94-3a292907e06e.aspx</comments>
      <category>Windows Azure</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=49a43b5c-4788-451d-bd9a-2e2ebd6a4c1c</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,49a43b5c-4788-451d-bd9a-2e2ebd6a4c1c.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,49a43b5c-4788-451d-bd9a-2e2ebd6a4c1c.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=49a43b5c-4788-451d-bd9a-2e2ebd6a4c1c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
My previous blog post (<a href="http://www.lhotka.net/weblog/SomeThoughtsOnWindowsAzure.aspx">Some
thoughts on Windows Azure</a>) has generated some good comments. I was going to answer
with a comment, but I wrote enough that I thought I’d just do a follow-up post. 
</p>
        <p>
Jamie says “Sounds akin to Architecture:"convention over configuration" I'm wholly
in favour of that.” 
</p>
        <p>
Yes, this is very much a convention over configuration story, just at an arguably
larger scope that we’ve seen thus far. Or at least showing a glimpse of that larger
scope. Things like Rails are interesting, but I don't think they are as broad as the
potential we're seeing here. 
</p>
        <p>
It is my view that the primary job of an architect is to eliminate choices. To create
artificial restrictions within which applications are created. Basically to pre-make
most of the hard choices so each application designer/developer doesn’t need to. 
</p>
        <p>
What I’m saying with Azure, is that we’re seeing this effect at a platform level.
A platform that has already eliminated most choices, and that has created restrictions
on how applications are created – thus ensuring a high level of consistency, and potential
portability. 
</p>
        <p>
Jason is confused by my previous post, in that I say Azure has a "lock-in problem",
but that the restricted architecture is a good thing. 
</p>
        <p>
I understand your confusion, as I probably could have been more clear. I do think
Windows Azure has a lock-in problem - it doesn't scale down into my data center, or
onto my desktop. But the <em>concept</em> of a restricted runtime is a good one, and
I suspect that concept may outlive this first run at Azure. A restricted architecture
(and runtime to support it) doesn't have to cause lock-in at the hosting level. Perhaps
at the vendor level - but those of us who live in the Microsoft space put <em>that </em>concern
behind us many years ago. 
</p>
        <p>
Roger suggests that most organizations may not have the technical savvy to host the
Azure platform in-house. 
</p>
        <p>
That may be a valid point – the current Azure implementation might be too complex
for most organizations to administer. Microsoft didn't build it as a server product,
so they undoubtedly made implementation choices that create complexity for hosting.
This doesn’t mean the <em>idea</em> of a restricted runtime is bad. Nor does it mean
that someone (possibly Microsoft) could create such a restricted runtime that could
be deployed within an organization, or in the cloud. Consider that there is a version
of Azure that runs on a developer's workstation already - so it isn't hard to imagine
a version of Azure that I could run in my data center. 
</p>
        <p>
Remember that we’re talking about a restricted runtime, with a restricted architecture
and API. Basically a controlled subset of .NET. We’re already seeing this work – in
the form of Silverlight. Silverlight is largely compatible with .NET, even though
they are totally separate implementations. And Moonlight demonstrates that the abstraction
can carry to yet another implementation. 
</p>
        <p>
Silverlight has demonstrated that most business applications only use 5 of the 197
megabytes in the .NET 3.5 framework download to build the client. Just how much is
really required to build the server parts? A different 5 megabytes? 10? Maybe 20 tops?
</p>
        <p>
If someone had a defined runtime for server code, like Silverlight is for the client,
I think it becomes equally possible to have numerous physical implementations of the
same runtime. One for my laptop, one for my enterprise servers and one for Microsoft
to host in the cloud. Now I can write my app in this .NET subset, and I can not only
scale out, but I can scale up or down too.
</p>
        <p>
That’s where I suspect this will all end up, and spurring this type of thinking is
(to me) the real value of Azure in the short term. 
</p>
        <p>
Finally, Justin rightly suggests that we can use our own abstraction layer to be portable
to/from Azure even today. 
</p>
        <p>
That's absolutely true. What I'm saying is that I think Azure could light the way
to a <em>platform</em> that already does that abstraction. 
</p>
        <p>
Many, many years ago I worked on a project to port some software from a Prime to a
VAX. It was only possible because the original developers had (and I am not exaggerating)
abstracted every point of interaction with the OS. Everything that wasn't part of
the FORTRAN-77 spec was in an abstraction layer. I shudder to think of the expense
of doing that today - of abstracting everything outside the C# language spec - basically
all of .NET - so you could be portable. 
</p>
        <p>
So what we need, I think, is this server equivalent to Silverlight. Azure is not that
- not today - but I think it may start us down that path, and that'd be cool!
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=49a43b5c-4788-451d-bd9a-2e2ebd6a4c1c" />
      </body>
      <title>Windows Azure and the value of restricted platforms/architectures</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,49a43b5c-4788-451d-bd9a-2e2ebd6a4c1c.aspx</guid>
      <link>http://www.lhotka.net/weblog/WindowsAzureAndTheValueOfRestrictedPlatformsarchitectures.aspx</link>
      <pubDate>Fri, 12 Dec 2008 17:33:03 GMT</pubDate>
      <description>&lt;p&gt;
My previous blog post (&lt;a href="http://www.lhotka.net/weblog/SomeThoughtsOnWindowsAzure.aspx"&gt;Some
thoughts on Windows Azure&lt;/a&gt;) has generated some good comments. I was going to answer
with a comment, but I wrote enough that I thought I’d just do a follow-up post. 
&lt;p&gt;
Jamie says “Sounds akin to Architecture:"convention over configuration" I'm wholly
in favour of that.” 
&lt;p&gt;
Yes, this is very much a convention over configuration story, just at an arguably
larger scope that we’ve seen thus far. Or at least showing a glimpse of that larger
scope. Things like Rails are interesting, but I don't think they are as broad as the
potential we're seeing here. 
&lt;p&gt;
It is my view that the primary job of an architect is to eliminate choices. To create
artificial restrictions within which applications are created. Basically to pre-make
most of the hard choices so each application designer/developer doesn’t need to. 
&lt;p&gt;
What I’m saying with Azure, is that we’re seeing this effect at a platform level.
A platform that has already eliminated most choices, and that has created restrictions
on how applications are created – thus ensuring a high level of consistency, and potential
portability. 
&lt;p&gt;
Jason is confused by my previous post, in that I say Azure has a "lock-in problem",
but that the restricted architecture is a good thing. 
&lt;p&gt;
I understand your confusion, as I probably could have been more clear. I do think
Windows Azure has a lock-in problem - it doesn't scale down into my data center, or
onto my desktop. But the &lt;em&gt;concept&lt;/em&gt; of a restricted runtime is a good one, and
I suspect that concept may outlive this first run at Azure. A restricted architecture
(and runtime to support it) doesn't have to cause lock-in at the hosting level. Perhaps
at the vendor level - but those of us who live in the Microsoft space put &lt;em&gt;that &lt;/em&gt;concern
behind us many years ago. 
&lt;p&gt;
Roger suggests that most organizations may not have the technical savvy to host the
Azure platform in-house. 
&lt;p&gt;
That may be a valid point – the current Azure implementation might be too complex
for most organizations to administer. Microsoft didn't build it as a server product,
so they undoubtedly made implementation choices that create complexity for hosting.
This doesn’t mean the &lt;em&gt;idea&lt;/em&gt; of a restricted runtime is bad. Nor does it mean
that someone (possibly Microsoft) could create such a restricted runtime that could
be deployed within an organization, or in the cloud. Consider that there is a version
of Azure that runs on a developer's workstation already - so it isn't hard to imagine
a version of Azure that I could run in my data center. 
&lt;p&gt;
Remember that we’re talking about a restricted runtime, with a restricted architecture
and API. Basically a controlled subset of .NET. We’re already seeing this work – in
the form of Silverlight. Silverlight is largely compatible with .NET, even though
they are totally separate implementations. And Moonlight demonstrates that the abstraction
can carry to yet another implementation. 
&lt;p&gt;
Silverlight has demonstrated that most business applications only use 5 of the 197
megabytes in the .NET 3.5 framework download to build the client. Just how much is
really required to build the server parts? A different 5 megabytes? 10? Maybe 20 tops?
&lt;/p&gt;
&lt;p&gt;
If someone had a defined runtime for server code, like Silverlight is for the client,
I think it becomes equally possible to have numerous physical implementations of the
same runtime. One for my laptop, one for my enterprise servers and one for Microsoft
to host in the cloud. Now I can write my app in this .NET subset, and I can not only
scale out, but I can scale up or down too.
&lt;/p&gt;
&lt;p&gt;
That’s where I suspect this will all end up, and spurring this type of thinking is
(to me) the real value of Azure in the short term. 
&lt;p&gt;
Finally, Justin rightly suggests that we can use our own abstraction layer to be portable
to/from Azure even today. 
&lt;p&gt;
That's absolutely true. What I'm saying is that I think Azure could light the way
to a &lt;em&gt;platform&lt;/em&gt; that already does that abstraction. 
&lt;p&gt;
Many, many years ago I worked on a project to port some software from a Prime to a
VAX. It was only possible because the original developers had (and I am not exaggerating)
abstracted every point of interaction with the OS. Everything that wasn't part of
the FORTRAN-77 spec was in an abstraction layer. I shudder to think of the expense
of doing that today - of abstracting everything outside the C# language spec - basically
all of .NET - so you could be portable. 
&lt;p&gt;
So what we need, I think, is this server equivalent to Silverlight. Azure is not that
- not today - but I think it may start us down that path, and that'd be cool!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=49a43b5c-4788-451d-bd9a-2e2ebd6a4c1c" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,49a43b5c-4788-451d-bd9a-2e2ebd6a4c1c.aspx</comments>
      <category>Architecture</category>
      <category>Windows Azure</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=346fbda0-3ff7-4e10-8e9e-a9c548299bf6</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,346fbda0-3ff7-4e10-8e9e-a9c548299bf6.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,346fbda0-3ff7-4e10-8e9e-a9c548299bf6.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=346fbda0-3ff7-4e10-8e9e-a9c548299bf6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
At PDC, Microsoft announced Windows Azure - their Windows platform for cloud computing.
There's a lot we don't know about Azure, including the proper way to pronounce the
word. But that doesn't stop me from being both impressed and skeptical and about what
I <em>do</em> know.
</p>
        <p>
In the rest of this post, as I talk about Azure, I'm talking about the "real Azure".
One part of Azure is the idea that Microsoft would host my virtual machine in their
cloud - but to me that's not overly interesting, because that's already a commodity
market (my local ISP does this, Amazon does this - who doesn't do this??). What I
do think is interesting is the more abstract Azure platform, where my code runs in
a "role" and has access to a limited set of pre-defined resources. This is the Azure
that forces the use of a scale-out architecture.
</p>
        <p>
I was impressed by just how much Microsoft was able to show and demo at the PDC. For
a fledgling technology that is only partially defined, it was quite amazing to see
end-to-end applications built on stage, from the UI to business logic to data storage.
That was unexpected and fun to watch.
</p>
        <p>
I am skeptical as to whether anyone will actually care. I think the primary determination
about whether people care will be determined by the price point Microsoft sets. But
I also think it will be determined by how Microsoft addresses the "lock-in question".
</p>
        <p>
I expect the pricing to end up in one of three basic scenarios:
</p>
        <ol>
          <li>
Azure is priced for the Fortune 500 (or 100) - in which case the vast majority of
us won't care about it</li>
          <li>
Azure is priced for the small to mid-sized company space (SMB) - in which case quite
a lot of us might be interested</li>
          <li>
Azure is priced to be accessible for hosting your blog, or my blog, or <a href="http://www.lhotka.net">www.lhotka.net</a> or
other small/personal web sites - in which case the vast majority of us may care a
lot about it</li>
        </ol>
        <p>
These aren't entirely mutually exclusive. I think 2 and 3 could both happen, but I
think 1 is by itself. Big enterprises have such different needs than people or SMB,
and they do business in such different ways compared to most businesses or people,
that I suspect we'll see Microsoft either pursue 1 (which I think would be sad) or
2 and maybe 3.
</p>
        <p>
But there's also the lock-in question. If I built my application for Azure, Microsoft
has made it very clear that I will not be able to run my app on my servers. If I need
to downsize, or scale back, I really can't. Once you go to Azure, you are there permanently.
I suspect this will be a major sticking point for many organizations. I've seen quotes
by Microsoft people suggesting that we should all factor our applications into "the
part we host" and "the part they host". But even assuming we're all willing to go
to that work, and introduce that complexity, this still means that part of my app
can <em>never</em> run anywhere but on Microsoft's servers.
</p>
        <p>
I suspect this lock-in issue will be the biggest single roadblock to adoption for
most organizations (assuming reasonable pricing - which I think is a given).
</p>
        <p>
But I must say that even if Microsoft doesn't back down on this. And even if it does
block the success of "Windows Azure" as we see it now, that's probably OK.
</p>
        <p>
Why?
</p>
        <p>
Because I think the <em>biggest benefit</em> to Azure is one important concept: an
abstract runtime.
</p>
        <p>
If you or I write a .NET web app today, what are the odds that we can just throw it
on a random Windows Server 200x box and have it work? Pretty darn small. The same
is true for apps written for Unix, Linux or any other platform.
</p>
        <p>
The reason apps can't just "run anywhere" is because they are built for a very broad
and ill-defined platform, with no consistently defined architecture. Sure <em>you</em> might
have an architecture. And I might have one too. But they are probably not the same.
The resulting applications probably use different parts of the platform, in different
ways, with different dependencies, different configuration requirements and so forth.
The end result is that a high level of expertise is required to deploy any one of
our apps.
</p>
        <p>
This is one reason the "host a virtual machine" model is becoming so popular. I can
build my app however I choose. I can get it running on a VM. Then I can deploy the
whole darn VM, preconfigured, to some host. This is one solution to the problem, but
it is not very elegant, and it is certainly not very efficient.
</p>
        <p>
I think Azure (whether it succeeds or fails) illustrates a different solution to the
problem. Azure defines a limited architecture for applications. It isn't a new architecture,
and it isn't the simplest architecture. But it is an architecture that is <em>known
to scale</em>. And Azure basically says "if you want to play, you play my way". None
of this random use of platform features. There are few platform features, and they
all fit within this narrow architecture that is known to work.
</p>
        <p>
To me, this idea is the real future of the cloud. We need to quit pretending that
every application needs a "unique architecture" and realize that there are just a
very few architectures that are known to work. And if we pick a good one for most
or all apps, we might suffer a little in the short term (to get onto that architecture),
but we win in the long run because our apps really <em>can</em> run anywhere. At least
anywhere that can host that architecture.
</p>
        <p>
Now in reality, it is not just the architecture. It is a runtime and platform and
compilers and tools that support that architecture. Which brings us back to Windows
Azure as we know it. But even if Azure fails, I suspect we'll see the rise of similar
"restricted runtimes". Runtimes that may leverage parts of .NET (or Java or whatever),
but disallow the use of large regions of functionality, and disallow the use of native
platform features (from Windows, Linux, etc). Runtimes that <em>force a specific architecture</em>,
and thus ensure that the resulting apps are far more portable than the typical app
is today.
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=346fbda0-3ff7-4e10-8e9e-a9c548299bf6" />
      </body>
      <title>Some thoughts on Windows Azure</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,346fbda0-3ff7-4e10-8e9e-a9c548299bf6.aspx</guid>
      <link>http://www.lhotka.net/weblog/SomeThoughtsOnWindowsAzure.aspx</link>
      <pubDate>Fri, 12 Dec 2008 00:31:31 GMT</pubDate>
      <description>&lt;p&gt;
At PDC, Microsoft announced Windows Azure - their Windows platform for cloud computing.
There's a lot we don't know about Azure, including the proper way to pronounce the
word. But that doesn't stop me from being both impressed and skeptical and about what
I &lt;em&gt;do&lt;/em&gt; know.
&lt;/p&gt;
&lt;p&gt;
In the rest of this post, as I talk about Azure, I'm talking about the "real Azure".
One part of Azure is the idea that Microsoft would host my virtual machine in their
cloud - but to me that's not overly interesting, because that's already a commodity
market (my local ISP does this, Amazon does this - who doesn't do this??). What I
do think is interesting is the more abstract Azure platform, where my code runs in
a "role" and has access to a limited set of pre-defined resources. This is the Azure
that forces the use of a scale-out architecture.
&lt;/p&gt;
&lt;p&gt;
I was impressed by just how much Microsoft was able to show and demo at the PDC. For
a fledgling technology that is only partially defined, it was quite amazing to see
end-to-end applications built on stage, from the UI to business logic to data storage.
That was unexpected and fun to watch.
&lt;/p&gt;
&lt;p&gt;
I am skeptical as to whether anyone will actually care. I think the primary determination
about whether people care will be determined by the price point Microsoft sets. But
I also think it will be determined by how Microsoft addresses the "lock-in question".
&lt;/p&gt;
&lt;p&gt;
I expect the pricing to end up in one of three basic scenarios:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Azure is priced for the Fortune 500 (or 100) - in which case the vast majority of
us won't care about it&lt;/li&gt;
&lt;li&gt;
Azure is priced for the small to mid-sized company space (SMB) - in which case quite
a lot of us might be interested&lt;/li&gt;
&lt;li&gt;
Azure is priced to be accessible for hosting your blog, or my blog, or &lt;a href="http://www.lhotka.net"&gt;www.lhotka.net&lt;/a&gt; or
other small/personal web sites - in which case the vast majority of us may care a
lot about it&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
These aren't entirely mutually exclusive. I think 2 and 3 could both happen, but I
think 1 is by itself. Big enterprises have such different needs than people or SMB,
and they do business in such different ways compared to most businesses or people,
that I suspect we'll see Microsoft either pursue 1 (which I think would be sad) or
2 and maybe 3.
&lt;/p&gt;
&lt;p&gt;
But there's also the lock-in question. If I built my application for Azure, Microsoft
has made it very clear that I will not be able to run my app on my servers. If I need
to downsize, or scale back, I really can't. Once you go to Azure, you are there permanently.
I suspect this will be a major sticking point for many organizations. I've seen quotes
by Microsoft people suggesting that we should all factor our applications into "the
part we host" and "the part they host". But even assuming we're all willing to go
to that work, and introduce that complexity, this still means that part of my app
can &lt;em&gt;never&lt;/em&gt; run anywhere but on Microsoft's servers.
&lt;/p&gt;
&lt;p&gt;
I suspect this lock-in issue will be the biggest single roadblock to adoption for
most organizations (assuming reasonable pricing - which I think is a given).
&lt;/p&gt;
&lt;p&gt;
But I must say that even if Microsoft doesn't back down on this. And even if it does
block the success of "Windows Azure" as we see it now, that's probably OK.
&lt;/p&gt;
&lt;p&gt;
Why?
&lt;/p&gt;
&lt;p&gt;
Because I think the &lt;em&gt;biggest benefit&lt;/em&gt; to Azure is one important concept: an
abstract runtime.
&lt;/p&gt;
&lt;p&gt;
If you or I write a .NET web app today, what are the odds that we can just throw it
on a random Windows Server 200x box and have it work? Pretty darn small. The same
is true for apps written for Unix, Linux or any other platform.
&lt;/p&gt;
&lt;p&gt;
The reason apps can't just "run anywhere" is because they are built for a very broad
and ill-defined platform, with no consistently defined architecture. Sure &lt;em&gt;you&lt;/em&gt; might
have an architecture. And I might have one too. But they are probably not the same.
The resulting applications probably use different parts of the platform, in different
ways, with different dependencies, different configuration requirements and so forth.
The end result is that a high level of expertise is required to deploy any one of
our apps.
&lt;/p&gt;
&lt;p&gt;
This is one reason the "host a virtual machine" model is becoming so popular. I can
build my app however I choose. I can get it running on a VM. Then I can deploy the
whole darn VM, preconfigured, to some host. This is one solution to the problem, but
it is not very elegant, and it is certainly not very efficient.
&lt;/p&gt;
&lt;p&gt;
I think Azure (whether it succeeds or fails) illustrates a different solution to the
problem. Azure defines a limited architecture for applications. It isn't a new architecture,
and it isn't the simplest architecture. But it is an architecture that is &lt;em&gt;known
to scale&lt;/em&gt;. And Azure basically says "if you want to play, you play my way". None
of this random use of platform features. There are few platform features, and they
all fit within this narrow architecture that is known to work.
&lt;/p&gt;
&lt;p&gt;
To me, this idea is the real future of the cloud. We need to quit pretending that
every application needs a "unique architecture" and realize that there are just a
very few architectures that are known to work. And if we pick a good one for most
or all apps, we might suffer a little in the short term (to get onto that architecture),
but we win in the long run because our apps really &lt;em&gt;can&lt;/em&gt; run anywhere. At least
anywhere that can host that architecture.
&lt;/p&gt;
&lt;p&gt;
Now in reality, it is not just the architecture. It is a runtime and platform and
compilers and tools that support that architecture. Which brings us back to Windows
Azure as we know it. But even if Azure fails, I suspect we'll see the rise of similar
"restricted runtimes". Runtimes that may leverage parts of .NET (or Java or whatever),
but disallow the use of large regions of functionality, and disallow the use of native
platform features (from Windows, Linux, etc). Runtimes that &lt;em&gt;force a specific architecture&lt;/em&gt;,
and thus ensure that the resulting apps are far more portable than the typical app
is today.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=346fbda0-3ff7-4e10-8e9e-a9c548299bf6" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,346fbda0-3ff7-4e10-8e9e-a9c548299bf6.aspx</comments>
      <category>Architecture</category>
      <category>Windows Azure</category>
    </item>
  </channel>
</rss>