<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Josh Holmes</title>
    <link>http://www.joshholmes.com/</link>
    <description>What box? Nobody told me about a box...</description>
    <language>en-us</language>
    <copyright>Josh Holmes</copyright>
    <lastBuildDate>Wed, 19 Nov 2008 10:53:07 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.1.8102.813</generator>
    <managingEditor>josh@joshholmes.com</managingEditor>
    <webMaster>josh@joshholmes.com</webMaster>
    <geo:lat>42.14784</geo:lat><geo:long>-84.031232</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/JoshHolmes" type="application/rss+xml" /><item>
      <trackback:ping>http://www.joshholmes.com/Trackback.aspx?guid=10008aeb-102f-46fe-8a63-b32d683f4ca1</trackback:ping>
      <pingback:server>http://www.joshholmes.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.joshholmes.com/PermaLink,guid,10008aeb-102f-46fe-8a63-b32d683f4ca1.aspx</pingback:target>
      <dc:creator>Josh Holmes</dc:creator>
      <wfw:comment>http://www.joshholmes.com/CommentView,guid,10008aeb-102f-46fe-8a63-b32d683f4ca1.aspx</wfw:comment>
      <wfw:commentRss>http://www.joshholmes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=10008aeb-102f-46fe-8a63-b32d683f4ca1</wfw:commentRss>
      
      <title>Speaking at VSLive! Dallas 2008</title>
      <guid isPermaLink="false">http://www.joshholmes.com/PermaLink,guid,10008aeb-102f-46fe-8a63-b32d683f4ca1.aspx</guid>
      <link>http://feeds.feedburner.com/~r/JoshHolmes/~3/458261554/SpeakingAtVSLiveDallas2008.aspx</link>
      <pubDate>Wed, 19 Nov 2008 10:53:07 GMT</pubDate>
      <description>&lt;p&gt;&#xD;
          &lt;a href="http://vslive.com/2008/dallas/agenda.aspx"&gt;&#xD;
            &lt;img style="margin: 5px" align="left" src="http://vslive.com/2008/dallas/images/mh_logo.gif"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;One&#xD;
of the things that I've missed during my tenure here at Microsoft is speaking at some&#xD;
of the independent national conferences such as &lt;a href="http://www.vslive.com"&gt;VSLive&lt;/a&gt;.&#xD;
But if you look through the &lt;a href="http://vslive.com/2008/dallas/speakers.aspx"&gt;speaker's&#xD;
list at VSLive Dallas&lt;/a&gt; you'll find a fellow named Josh Holmes... Woot! &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I've actually got 4 talks and I'm sitting in on the ALT.NET panel on Tuesday night. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;em&gt;Definitely come out and see us - Register &lt;/em&gt;&#xD;
          &lt;/strong&gt;&#xD;
          &lt;a href="http://vslive.com/2008/dallas/rates.aspx"&gt;&#xD;
            &lt;strong&gt;&#xD;
              &lt;em&gt;online&lt;/em&gt;&#xD;
            &lt;/strong&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;em&gt; or&#xD;
call 800-280-6218 using Priority Code SPHOL and receive $300 off the package of your&#xD;
choice.&lt;/em&gt;&#xD;
          &lt;/strong&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;DW10&lt;/strong&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;a name="DW10"&gt;&#xD;
            &lt;/a&gt;IronRuby and Silverlight, Like Peanut&#xD;
Butter and Chocolate&lt;/strong&gt;&#xD;
          &lt;br&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;a href="http://vslive.com/speakers.aspx#holmes"&gt;Josh Holmes&lt;/a&gt;&#xD;
          &lt;/strong&gt;&#xD;
          &lt;br&gt;&#xD;
Wednesday, December 10 – 1:45 p.m. &#xD;
&lt;br&gt;&#xD;
As the DLR (Dynamic Language Runtime) and IronRuby become more polished, it's time&#xD;
to start applying those technologies in new and interesting ways. One of my favorites&#xD;
is in a Rich Internet Application with a Silverlight front end. A perfect joining&#xD;
of two great technologies – IronRuby brings the dynamic abilities to your code that&#xD;
XAML gives your UI. From animations to logic to simple HTML DOM manipulation - it's&#xD;
all possible and a lot of fun. In this session, we will cover the basics of the DLR,&#xD;
a touch of Ruby and play with it all in the context of Silverlight. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;DW16&lt;/strong&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;a name="DW16"&gt;&#xD;
            &lt;/a&gt;User Experience for Architects: No&#xD;
Longer Optional&lt;/strong&gt;&#xD;
          &lt;br&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;a href="http://vslive.com/speakers.aspx#holmes"&gt;Josh Holmes&lt;/a&gt;&#xD;
          &lt;/strong&gt;&#xD;
          &lt;br&gt;&#xD;
Wednesday, December 10 – 3:15 p.m. &#xD;
&lt;br&gt;&#xD;
The user experience is a core part of new applications and those with the best user&#xD;
experience will prevail. When I say user experience, most people think of the graphics&#xD;
and the front end. This, however, is just the lipstick on the application and considered&#xD;
"small d" design. The "big D" Design starts well before the UI layer and can have&#xD;
profound implications on your application architecture. Is it a SaaS application?&#xD;
Or is that one of many front ends? How does that impact your services strategy? How&#xD;
does the information flow impact your database structure? These and hundred more questions&#xD;
are all ways that the user experience decisions can affect the architecture. &#xD;
&lt;br&gt;&#xD;
In this session, we will cover a primer on user experience for the architect and discuss&#xD;
the various ways that it will affect your application architecture. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;DTH6&lt;/strong&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;a name="DTH6"&gt;&#xD;
            &lt;/a&gt;Mashups from the Ground Up&lt;/strong&gt;&#xD;
          &lt;br&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;a href="http://vslive.com/speakers.aspx#holmes"&gt;Josh Holmes&lt;/a&gt;&#xD;
          &lt;/strong&gt;&#xD;
          &lt;br&gt;&#xD;
Thursday, December 11 – 9:45 a.m. &#xD;
&lt;br&gt;&#xD;
When building a Mashup, there are a lot of choices that come into play. Most people&#xD;
they with choosing the UI technologies that are going to be used, but they are wrong.&#xD;
They should be thinking about the information that is going to be used and how to&#xD;
get to that data. Mashups are about exposing new and interesting looks at data so&#xD;
the first thing that you have to do is figure out how to get to that data. Only after&#xD;
that do you start looking at the various front end technologies from AJAX to Silverlight&#xD;
to any number of other Rich Internet Platforms.&lt;br&gt;&#xD;
In this session, we will compare and contrast building out SOAP services verses REST&#xD;
services with ASMX, WCF and ADO.NET Data Services. We will demonstrate consuming those&#xD;
various services with AJAX, Live Maps, Silverlight and many more front end technologies. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;DTH10&lt;/strong&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;a name="DTH10"&gt;&#xD;
            &lt;/a&gt;Best and Worst Practices for Building&#xD;
Silverlight Applications&lt;/strong&gt;&#xD;
          &lt;br&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;a href="http://vslive.com/speakers.aspx#holmes"&gt;Josh Holmes&lt;/a&gt;&#xD;
          &lt;/strong&gt;&#xD;
          &lt;br&gt;&#xD;
Thursday, December 11 – 1:45 p.m. &#xD;
&lt;br&gt;&#xD;
Silverlight, as it's relatively new to much of the community, is putting people through&#xD;
some bumps and bruises as they create amazing experiences for their users. There are&#xD;
a lot of best and worst practices that are starting to emerge as the platform matures&#xD;
and more and more applications are being written. How and where to keep the state&#xD;
management? What networking stacks make the most sense? When does it make sense to&#xD;
use Silverlight or any Rich Internet Application (RIA) platform? &#xD;
&lt;br&gt;&#xD;
In this session, we will give a cursory overview of what it takes to build a RIA and&#xD;
dive deep into the best and worst practices with Silverlight. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://vslive.com/2008/dallas/default.aspx"&gt;VSLive! Dallas 2008&lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.joshholmes.com/aggbug.ashx?id=10008aeb-102f-46fe-8a63-b32d683f4ca1"&gt;&lt;/img&gt;&#xD;
      &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=Gx9cN"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=Gx9cN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=bNPUn"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=bNPUn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=QtyQn"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=QtyQn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=w51BN"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=w51BN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=TCWQn"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=TCWQn" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoshHolmes/~4/458261554" height="1" width="1"/&gt;</description>
      <comments>http://www.joshholmes.com/CommentView,guid,10008aeb-102f-46fe-8a63-b32d683f4ca1.aspx</comments>
    <feedburner:origLink>http://www.joshholmes.com/2008/11/19/SpeakingAtVSLiveDallas2008.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.joshholmes.com/Trackback.aspx?guid=a8118dfe-d3c7-48d7-879c-15d5d49d66e2</trackback:ping>
      <pingback:server>http://www.joshholmes.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.joshholmes.com/PermaLink,guid,a8118dfe-d3c7-48d7-879c-15d5d49d66e2.aspx</pingback:target>
      <dc:creator>Josh Holmes</dc:creator>
      <wfw:comment>http://www.joshholmes.com/CommentView,guid,a8118dfe-d3c7-48d7-879c-15d5d49d66e2.aspx</wfw:comment>
      <wfw:commentRss>http://www.joshholmes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a8118dfe-d3c7-48d7-879c-15d5d49d66e2</wfw:commentRss>
      <slash:comments>1</slash:comments>
      
      <title>Microsoft BizSpark</title>
      <guid isPermaLink="false">http://www.joshholmes.com/PermaLink,guid,a8118dfe-d3c7-48d7-879c-15d5d49d66e2.aspx</guid>
      <link>http://feeds.feedburner.com/~r/JoshHolmes/~3/448642695/MicrosoftBizSpark.aspx</link>
      <pubDate>Mon, 10 Nov 2008 17:54:47 GMT</pubDate>
      <description>&lt;p&gt;&#xD;
          &lt;a href="http://www.microsoftstartupzone.com/bizsparkdb"&gt;&#xD;
            &lt;img style="margin: 5px" align="right" src="http://www.microsoft.com/bizspark/Images/Site/BS_Banner.gif"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://www.microsoft.com/bizspark/Startup/Signup.aspx"&gt;&#xD;
            &lt;img style="margin: 5px" align="left" src="http://www.microsoft.com/bizspark/Images/JoinBizSpark.jpg"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
It's an exciting time here at Microsoft. Last week we announced &lt;a href="http://www.microsoft.com/bizspark"&gt;Microsoft&#xD;
BizSpark&lt;/a&gt;!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.microsoft.com/bizspark"&gt;Microsoft BizSpark&lt;/a&gt; is a global program&#xD;
designed to accelerate the success of early stage Startups. Microsoft has realized&#xD;
that most startups have more time than money. This means that in an attempt to save&#xD;
some cash up front, many will pursue free technology paths rather than spending the&#xD;
money on a more complete solution. The issue is that even though they have more money&#xD;
than time, if they don't get to revenue quickly, they will fail. To help out here,&#xD;
Microsoft has taken cost off the table as an issue for the startups adopting any of&#xD;
the Microsoft technologies in their products and offerings. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I'll get to the details of the software offering in a moment. But first I want to&#xD;
point out that this is not just cheap software. There are three key areas that Microsoft&#xD;
has identified where it can help startups. Startups need, in addition to the technology,&#xD;
support and marketing. This is accomplished in a couple of different ways. BizSpark&#xD;
Startups receive professional support from Microsoft as well as community-driven support&#xD;
from Network Partners, active organizations in the entrepreneurial space, who can&#xD;
provide guidance, mentorship and resources to Startups.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
By virtue of their participation in BizSpark, Startups can also gain visibility with&#xD;
potential investors, partners and customers.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
BizSpark provides software, support and visibility to high-potential Startups:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Software&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
All the software included in the Visual Studio Team System Team Suite (VSTS) with&#xD;
MSDN Premium subscription Expression Studio (Version 2), plus VSTS Team Foundation&#xD;
Server Standard Edition - for the entire development team &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Production license use rights, to deploy, host and support Startupâs "software as&#xD;
a service" applications for delivery over the Internet, using the following products:&#xD;
Windows Server (all versions), SQL Server (all versions), BizTalk Server, and Office&#xD;
SharePoint Server for hosting; and Systems Center for managing hosting server operations. &#xD;
&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
Support&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
Guidance, resources and mentoring provided by Network Partners, active members of&#xD;
the global software ecosystem who are qualified to provide support and advice to Startups &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Access to MSDN Premium: managed newsgroups, online library, online concierge, etc. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Two technical support Incidents per Startup &#xD;
&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
Visibility&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
Each BizSpark Startup will have the opportunity to profile their company in the BizSparkDB,&#xD;
an online Startup directory, hosted on the Microsoft Startup Zone web site. Startups&#xD;
will get exposure to potential investors, partners and customers around the world. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Opportunity to be highlighted on the BizSparkDB as a featured company and be promoted&#xD;
as BizSpark Company of the Week on the &lt;a href="http://www.microsoftstartupzone.com/"&gt;Microsoft&#xD;
Startup Zone&lt;/a&gt; website. &#xD;
&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
Costs - on exit of the program (read three years after you sign up), the participants&#xD;
will be invoiced a $100.00 fee. This means that there are no up front costs for the&#xD;
startups. &#xD;
&lt;/p&gt;&#xD;
        &lt;h3&gt;Who's Eligible?&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
An eligible Startup must have the following characteristics at the time of joining: &#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
Actively engaged in development of a software-based product or service that will form&#xD;
a core piece of its current or intended business. This means that the startup must&#xD;
be producing software or services as the means to them getting paid. Either selling&#xD;
or leasing the software and/or service. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Privately held. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
In business for less than 3 years. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Less than US $1 million in annual revenue. This varies slightly by country but here&#xD;
in the US it's $1 Million. &#xD;
&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
To be eligible for Production License rights, Startups must also be developing a "software&#xD;
as a service" solution (on any platform) to be delivered over the Internet. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Examples: &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Does Quality: &#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
An Independent Software Vendor (ISV) that is producing software for sale. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Producing a service such as a claims processing services that you lease to other companies&#xD;
so that they can outsources their claims management. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
A combination application that sits on the clients machine and calls services that&#xD;
you have produced with any form of monitization be it leasing or for sale to third&#xD;
parties. &#xD;
&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
Does Not Qualify: &#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
If you are developing an internal claims processing system solely for your own company. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Developing a web site for your company as your marketing presence. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Are a pure consulting agency with no products.&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
To break it down, if you are getting paid through the software and/or service that&#xD;
you are producing then you probably quality. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
If you think you are qualified and are interested in signing up - &lt;a href="http://blogs.msdn.com/aniyer/default.aspx"&gt;Anand&#xD;
Iyer&lt;/a&gt; has a great walk-through that explains how to sign up at &lt;a href="http://tr.im/joinbizspark"&gt;http://tr.im/joinbizspark&lt;/a&gt;.  &#xD;
&lt;/p&gt;&#xD;
        &lt;h3&gt;Network Partners&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.microsoft.com/bizspark/NetworkPartner/Signup.aspx"&gt;&#xD;
            &lt;img style="margin: 0px 5px 5px" align="left" src="http://www.microsoft.com/bizspark/Images/BecomeNetworkPartner.jpg"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;Our&#xD;
Network Partners consist of University Incubators, Government Agencies, Entrepreneur&#xD;
Organizations (incubators, business angels,â¦) and Investors themselves depending&#xD;
on the volume of startups that they deal with. These Network Partners are able to&#xD;
offer a lot of services to the startups than Microsoft ever could because they are&#xD;
in the trenches and offer a lot of different services. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Depending on the network partner, some of the services could include office space,&#xD;
access to funding sources, introductions to potential clients, legal advice, business&#xD;
plan mentoring and tons of other support. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
If you are interested in joining BizSpark, you can do so easily by contacting one&#xD;
of our network partners. Or you can contact me and I'll get you in touch with a local&#xD;
network partner that can help you out. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
If you are interested in being a Network Partner, sign up online or reach out to me. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/MicrosoftBizSpark_B58C/pressrelease_2c_TechTown_2.jpg"&gt;&#xD;
            &lt;img style="border-right-width: 0px; margin: 5px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="techtown-logo" align="left" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/MicrosoftBizSpark_B58C/pressrelease_2c_TechTown_thumb.jpg" width="353" height="72"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
One of my first Network Partners, who actually offers almost all of the services listed&#xD;
above, is &lt;a href="http://www.techtownwsu.org"&gt;TechTown&lt;/a&gt;. TechTown, Detroitâs&#xD;
research and technology park, was established in 2000 when Wayne State University,&#xD;
General Motors and the Henry Ford Health System convened to create an engine of economic&#xD;
growth with both local and statewide impact. TechTown stimulates job growth and small-business&#xD;
creation by developing companies in emerging high-technology industries including&#xD;
advanced engineering, life sciences and alternative energy.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
TechTown is a 501(c)(3) non-profit organization and is the Woodward Technology Corridor&#xD;
SmartZone.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In the years since its inception, TechTown has developed into an epicenter of high-tech&#xD;
business creation by equipping new companies with the services, support and resources&#xD;
they need to grow and thrive. The 12-block park is poised to become a critical source&#xD;
of job growth in Michigan.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;b&gt;Highlights:&lt;/b&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;b&gt;TechOne,&lt;/b&gt; the 100,000-square-foot business incubator facility, now hosts 40&#xD;
growing companies. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
More than 30 high-tech startups have enrolled in TechTownâs &lt;b&gt;business accelerator&#xD;
programs&lt;/b&gt;. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;b&gt;NextEnergy&lt;/b&gt;, an alternative energy incubator founded to encourage the commercialization&#xD;
of emerging energy technologies, opened its $12 million research facility in TechTown. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Asterand&lt;/strong&gt;, a biomaterials bank and TechTownâs first tenant, has&#xD;
become an international, publicly traded company on the London Stock Exchange. &#xD;
&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.techtownwsu.org"&gt;TechTown Detroit&lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://srtsolutions.com/blogs/billwagner/archive/2008/11/06/starting-a-company-we-and-microsoft-bizspark-can-help.aspx"&gt;SRT&#xD;
Solutions&lt;/a&gt; &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.microsoft.com/bizspark/"&gt;Microsoft BizSpark&lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.joshholmes.com/aggbug.ashx?id=a8118dfe-d3c7-48d7-879c-15d5d49d66e2"&gt;&lt;/img&gt;&#xD;
      &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=GAXeN"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=GAXeN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=6AkUn"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=6AkUn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=yDh6n"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=yDh6n" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=rUTlN"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=rUTlN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=LL0sn"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=LL0sn" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoshHolmes/~4/448642695" height="1" width="1"/&gt;</description>
      <comments>http://www.joshholmes.com/CommentView,guid,a8118dfe-d3c7-48d7-879c-15d5d49d66e2.aspx</comments>
    <feedburner:origLink>http://www.joshholmes.com/2008/11/10/MicrosoftBizSpark.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.joshholmes.com/Trackback.aspx?guid=383d18fc-4823-47aa-8553-ff377ce91309</trackback:ping>
      <pingback:server>http://www.joshholmes.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.joshholmes.com/PermaLink,guid,383d18fc-4823-47aa-8553-ff377ce91309.aspx</pingback:target>
      <dc:creator>Josh Holmes</dc:creator>
      <wfw:comment>http://www.joshholmes.com/CommentView,guid,383d18fc-4823-47aa-8553-ff377ce91309.aspx</wfw:comment>
      <wfw:commentRss>http://www.joshholmes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=383d18fc-4823-47aa-8553-ff377ce91309</wfw:commentRss>
      
      <title>Meet the Principal Group Manager of VSTS Test!</title>
      <guid isPermaLink="false">http://www.joshholmes.com/PermaLink,guid,383d18fc-4823-47aa-8553-ff377ce91309.aspx</guid>
      <link>http://feeds.feedburner.com/~r/JoshHolmes/~3/442750170/MeetThePrincipalGroupManagerOfVSTSTest.aspx</link>
      <pubDate>Wed, 05 Nov 2008 02:45:29 GMT</pubDate>
      <description>&lt;p&gt;&#xD;
          &lt;a href="http://blogs.msdn.com/blogfiles/jennifer/WindowsLiveWriter/MarkMydlandtourlearnaboutVSTSTestEdition_1390E/MarkMydland2_2.jpg"&gt;&#xD;
            &lt;img style="margin: 5px" border="0" alt="MarkMydland2" align="left" src="http://blogs.msdn.com/blogfiles/jennifer/WindowsLiveWriter/MarkMydlandtourlearnaboutVSTSTestEdition_1390E/MarkMydland2_thumb.jpg" width="198" height="244"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;We've&#xD;
got a fantastic opportunity for you here in the Heartland district. Visual Studio&#xD;
2010 is the next generation of tools for building .NET applications of all varieties.&#xD;
One of the things that we are taking to heart is testability and testing tools. You&#xD;
can come meet the guy that's in charge of building all of those tools. Do you want&#xD;
to know how they test the testing tools? Do you want to know how to use those tools&#xD;
to the best of your abilities? Do you have any questions at all? Come meet Mark Mydland!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Mark Mydland is the Principal Group Manager of the Visual Studio Team System Test&#xD;
Edition team (that means that all program managers, developers, and testers on VSTS&#xD;
Test in Redmond report up to him).  He is touring through Michigan, Ohio, Kentucky,&#xD;
and Tennessee for a short time in November.  Mark will be visiting companies&#xD;
during the day and speaking at user groups in the evenings.  The user group talks&#xD;
are open to the public - this is a fabulous opportunity to speak directly with someone&#xD;
who created Visual Studio (and in fact runs the entire Test Edition team).  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
At the user groups, Mark will be delivering a technical talk on the new features coming&#xD;
in VSTS 2010, codenamed "Rosario".  This talk encompasses "some architect stuff,&#xD;
some dev stuff, some cool research stuff for concurrency and for bounds checking,&#xD;
3-tier execution and data recording (aka Tivo for debugging)."  I purposely planned&#xD;
this tour to take place after &lt;a href="http://www.microsoftpdc.com/"&gt;PDC&lt;/a&gt; so Mark&#xD;
can discuss any new announcements made there.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
This is also his team's work: &lt;a href="http://news.cnet.com/8301-13860_3-10052412-56.html?part=rss&amp;amp;subj=news&amp;amp;tag=2547-1_3-0-20"&gt;http://news.cnet.com/8301-13860_3-10052412-56.html?part=rss&amp;amp;subj=news&amp;amp;tag=2547-1_3-0-20&lt;/a&gt;. &#xD;
Cool, huh?  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Want a preview of VSTS 2010?  Mark is doing a number of user group talks that&#xD;
are open to the public.  And did I mention that there will be free dinner and&#xD;
giveaways?  Please stop by: &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
          &lt;/strong&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;Grand Rapids, MI&lt;/strong&gt; - Tues 11/11 at 6pm&lt;a href="http://blogs.msdn.com/blogfiles/jennifer/WindowsLiveWriter/MarkMydlandtourlearnaboutVSTSTestEdition_1390E/vsts_2.png"&gt;&lt;img border="0" alt="vsts" align="right" src="http://blogs.msdn.com/blogfiles/jennifer/WindowsLiveWriter/MarkMydlandtourlearnaboutVSTSTestEdition_1390E/vsts_thumb.png" width="240" height="141"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br&gt;&#xD;
Watermark Country Club, 5500 Cascade Rd, Grand Rapids, MI 49548 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;Ann Arbor, MI&lt;/strong&gt; - Wed 11/12 at 6pm&lt;br&gt;&#xD;
SRT Solutions, 206 S. Fifth Avenue, Suite 200, Ann Arbor, MI 48104 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;Cleveland, OH&lt;/strong&gt; - Thurs 11/13 at 6:30pm&lt;br&gt;&#xD;
Sogeti office, Beacon Place Office Building, 6055 Rockside Woods Blvd, Independence,&#xD;
OH 44131 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;Columbus, OH&lt;/strong&gt; - Fri 11/14 at 6pm&lt;br&gt;&#xD;
Microsoft "Polaris Parkway" office, 8800 Lyra Dr, Columbus, OH 43240 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;Cincinnati, OH&lt;/strong&gt; - Mon 11/17 at 6pm&lt;br&gt;&#xD;
MAX Training, 4900 Parkway Dr, Suite 160, Mason, OH 45040-8429 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;Louisville, KY&lt;/strong&gt; - Tues 11/18 at 6:30pm&lt;br&gt;&#xD;
Muhammad Ali Center, One Muhammad Ali Plaza, 144 N. Sixth Street, Louisville, KY 40202 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;Nashville, TN&lt;/strong&gt; - Wed 11/19 at 6pm&lt;br&gt;&#xD;
Microsoft Nashville office, MPR room, 2555 Meridian Blvd, Suite 300, Franklin, TN&#xD;
37067 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;Memphis, TN&lt;/strong&gt; - Thurs 11/20 at 6pm&lt;br&gt;&#xD;
New Horizons, 4775 American Way, Memphis, TN 38118 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;Knoxville, TN&lt;/strong&gt; - Fri 11/21 at 6pm&lt;br&gt;&#xD;
Edfinancial Training Center, 120 North Seven Oaks Dr., Knoxville, TN 37922 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
For all the updates along the way - make sure you watch Jennifer Marsman's blog at &lt;a href="http://blogs.msdn.com/jennifer/archive/2008/10/24/meet-the-principal-group-manager-of-vsts-test.aspx"&gt;Meet&#xD;
the Principal Group Manager of VSTS Test!&lt;/a&gt;&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.joshholmes.com/aggbug.ashx?id=383d18fc-4823-47aa-8553-ff377ce91309"&gt;&lt;/img&gt;&#xD;
      &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=iZKXN"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=iZKXN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=TBspn"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=TBspn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=ku8rn"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=ku8rn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=bbbMN"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=bbbMN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=YN9bn"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=YN9bn" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoshHolmes/~4/442750170" height="1" width="1"/&gt;</description>
      <comments>http://www.joshholmes.com/CommentView,guid,383d18fc-4823-47aa-8553-ff377ce91309.aspx</comments>
    <feedburner:origLink>http://www.joshholmes.com/2008/11/05/MeetThePrincipalGroupManagerOfVSTSTest.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.joshholmes.com/Trackback.aspx?guid=ba58ef85-34a3-4d58-a0f0-e5f764182e84</trackback:ping>
      <pingback:server>http://www.joshholmes.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.joshholmes.com/PermaLink,guid,ba58ef85-34a3-4d58-a0f0-e5f764182e84.aspx</pingback:target>
      <dc:creator>Josh Holmes</dc:creator>
      <wfw:comment>http://www.joshholmes.com/CommentView,guid,ba58ef85-34a3-4d58-a0f0-e5f764182e84.aspx</wfw:comment>
      <wfw:commentRss>http://www.joshholmes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=ba58ef85-34a3-4d58-a0f0-e5f764182e84</wfw:commentRss>
      
      <title>Microsoft and PreEmptive Solutions - new features for VS 2010</title>
      <guid isPermaLink="false">http://www.joshholmes.com/PermaLink,guid,ba58ef85-34a3-4d58-a0f0-e5f764182e84.aspx</guid>
      <link>http://feeds.feedburner.com/~r/JoshHolmes/~3/435026133/MicrosoftAndPreEmptiveSolutionsNewFeaturesForVS2010.aspx</link>
      <pubDate>Tue, 28 Oct 2008 19:14:15 GMT</pubDate>
      <description>&lt;p&gt;&#xD;
          &lt;a href="http://www.preemptive.com"&gt;&#xD;
            &lt;img style="margin: 5px" alt="PreEmptive Solutions" align="left" src="http://www.preemptive.com/templates/preemptive/images/logo.gif" width="252" height="45"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;I've&#xD;
been a long time supporter of PreEmptive Solutions. They've done a great job of supporting&#xD;
.NET. As a Cleveland based company, they are in my territory as an evangelist. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Microsoft just released a huge press release on the new things that PreEmptive is&#xD;
doing - specifically, they are expanding well beyond obfuscation to anti-tampering,&#xD;
run time intelligence, licensing support for ISVs and much much more. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
PreEmptive is no longer just an obfuscation company. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Read the official press release below...   &#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;h3&gt;Microsoft and PreEmptive Solutions to Provide Application Feature Monitoring,&#xD;
Usage Expiry and Tamper Defense in Visual Studio 2010&#xD;
&lt;/h3&gt;&#xD;
          &lt;h4&gt;Post-build utility utilizes software plus services and instrumentation to improve&#xD;
application security, portfolio management and usability.&#xD;
&lt;/h4&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;b&gt;LOS ANGELES — Oct. 27, 2008 — &lt;/b&gt;Microsoft Corp. and PreEmptive Solutions announced&#xD;
today at Microsoft’s Professional Developers Conference 2008 that an enhanced version&#xD;
of Dotfuscator Community Edition™ (CE) will be included in Microsoft Visual Studio&#xD;
2010. Dotfuscator CE, which has been included with every version of Visual Studio&#xD;
starting with Visual Studio 2003, prevents the reverse engineering of .NET applications.&#xD;
The Visual Studio 2010 version, renamed Dotfuscator Software Services Community Edition™,&#xD;
has been extended with instrumentation capabilities including tamper detection and&#xD;
defense, feature level application monitoring and automatic time limits on .NET application&#xD;
use. &#xD;
&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
“Instrumentation is an important component of good software development practices&#xD;
as part of an overall application lifecycle management (ALM) approach. Microsoft knows&#xD;
that extending the ability to modify an application’s behavior to the time after compile&#xD;
is a valuable part of good ALM practices,” said Norman Guadagno, the director of product&#xD;
management for Visual Studio Team System at Microsoft Corp. “.NET developers can now&#xD;
protect, manage and increase the value of their application development investments&#xD;
easily and without having to write additional code.” &#xD;
&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
Development teams will be able to track feature usage to improve adoption and quality,&#xD;
ISVs will be able to integrate evaluation software usage into Microsoft Dynamics CRM&#xD;
to increase win rates, and enterprises will be able to integrate application runtime&#xD;
data into Microsoft Business Intelligence Solutions to improve business agility. &#xD;
&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
Dotfuscator Software Services CE also has enhanced capabilities to stream alerts and&#xD;
runtime data to one or more cloud-based services. &#xD;
&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
“Dotfuscator’s ability to integrate application behavior with one or more cloud services&#xD;
not only improves application quality and value, it actually creates new business&#xD;
opportunities for software service providers and developers alike,” said Gabriel Torok,&#xD;
president of PreEmptive Solutions. &#xD;
&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
Dotfuscator Software Services Community Edition is scheduled to ship with all versions&#xD;
of Visual Studio 2010 (other than Visual Studio Express) at no additional charge. &#xD;
&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;b&gt;About PreEmptive Solutions&lt;/b&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
PreEmptive Solutions produces the Dotfuscator and DashO instrumentation and obfuscation&#xD;
product families and the Runtime Intelligence application analytics service. With&#xD;
more than 3,000 corporate clients, 40,000 registered installations in 100+ countries&#xD;
and inclusion with Microsoft’s 6,000,000+ Visual Studio seats, PreEmptive Solutions&#xD;
has become the clear choice for every organization that is serious about source code&#xD;
protection, application security and IT governance. To learn more, e-mail &lt;a href="mailto:solutions@preemptive.com"&gt;solutions@preemptive.com&lt;/a&gt; or&#xD;
call +1 216 732 5895. &#xD;
&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;b&gt;About Microsoft&lt;/b&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
Founded in 1975, Microsoft (Nasdaq “MSFT”) is the worldwide leader in software, services&#xD;
and solutions that help people and businesses realize their full potential. &#xD;
&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;i&gt;Note to editors:&lt;/i&gt; If you are interested in viewing additional information on&#xD;
Microsoft, please visit the Microsoft Web page at &lt;a href="http://www.microsoft.com/presspass"&gt;http://www.microsoft.com/presspass&lt;/a&gt; on&#xD;
Microsoft’s corporate information pages. Web links, telephone numbers and titles were&#xD;
correct at time of publication, but may since have changed. For additional assistance,&#xD;
journalists and analysts may contact Microsoft’s Rapid Response Team or other appropriate&#xD;
contacts listed at &lt;a href="http://www.microsoft.com/presspass/contactpr.mspx"&gt;http://www.microsoft.com/presspass/contactpr.mspx&lt;/a&gt;.&#xD;
&lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
More links: &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Official Press Release&lt;br&gt;&lt;a href="http://www.microsoft.com/Presspass/press/2008/oct08/10-27PreEmptivePR.mspx"&gt;http://www.microsoft.com/Presspass/press/2008/oct08/10-27PreEmptivePR.mspx&lt;/a&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.sdtimes.com/content/article.aspx?ArticleID=33003"&gt;http://www.sdtimes.com/content/article.aspx?ArticleID=33003&lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://dotnet.sys-con.com/node/725076"&gt;http://dotnet.sys-con.com/node/725076&lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.joshholmes.com/aggbug.ashx?id=ba58ef85-34a3-4d58-a0f0-e5f764182e84"&gt;&lt;/img&gt;&#xD;
      &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=SB24M"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=SB24M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=smuXm"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=smuXm" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=Al07m"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=Al07m" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=b8fEM"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=b8fEM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=5Oy5m"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=5Oy5m" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoshHolmes/~4/435026133" height="1" width="1"/&gt;</description>
      <comments>http://www.joshholmes.com/CommentView,guid,ba58ef85-34a3-4d58-a0f0-e5f764182e84.aspx</comments>
    <feedburner:origLink>http://www.joshholmes.com/2008/10/28/MicrosoftAndPreEmptiveSolutionsNewFeaturesForVS2010.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.joshholmes.com/Trackback.aspx?guid=d2efe932-352c-4736-bb72-b100c2438c44</trackback:ping>
      <pingback:server>http://www.joshholmes.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.joshholmes.com/PermaLink,guid,d2efe932-352c-4736-bb72-b100c2438c44.aspx</pingback:target>
      <dc:creator>Josh Holmes</dc:creator>
      <wfw:comment>http://www.joshholmes.com/CommentView,guid,d2efe932-352c-4736-bb72-b100c2438c44.aspx</wfw:comment>
      <wfw:commentRss>http://www.joshholmes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d2efe932-352c-4736-bb72-b100c2438c44</wfw:commentRss>
      <slash:comments>3</slash:comments>
      
      <title>Architecture of RIA from JAOO</title>
      <guid isPermaLink="false">http://www.joshholmes.com/PermaLink,guid,d2efe932-352c-4736-bb72-b100c2438c44.aspx</guid>
      <link>http://feeds.feedburner.com/~r/JoshHolmes/~3/433767134/ArchitectureOfRIAFromJAOO.aspx</link>
      <pubDate>Mon, 27 Oct 2008 16:51:20 GMT</pubDate>
      <description>&lt;p&gt;&#xD;
          &lt;a title="Josh Holmes and James Ward" href="http://www.flickr.com/photos/11400133@N05/2915842667/"&gt;&#xD;
            &lt;img class="flickr" border="0" hspace="5" alt="Josh Holmes and James Ward" vspace="5" align="right" src="http://static.flickr.com/3128/2915842667_4d77ff248d_m.jpg"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;I&#xD;
did a joint session with &lt;a href="http://www.jamesward.com"&gt;James Ward&lt;/a&gt; from Adobe&#xD;
at the &lt;a href="http://jaoo.dk/aarhus-2008/conference"&gt;JAOO&lt;/a&gt; conference. As you&#xD;
know I'm an evangelist for Microsoft focusing on RIA and UX. James is one of the Flex&#xD;
evangelists for Adobe. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
This is a talk that James and I have been talking about trying to pull off for quite&#xD;
a while and I was thrilled that we actually got to do it. James and I have been going&#xD;
back and forth for over a year and a half now talking about the definition of RIA&#xD;
as well as what are the best and worst architectural patterns. Some of this was based&#xD;
on an article that James co-wrote for InfoQ called “&lt;a href="http://www.infoq.com/news/2008/04/top-10-flex-mistakes"&gt;Top&#xD;
10 Mistakes when building Flex Applications&lt;/a&gt;”. I borrowed the mistakes that applied&#xD;
across the board regardless of what RIA technology you were using and added the best&#xD;
practices part. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The first time that I delivered a version of this session it was with &lt;a href="http://blogs.digitalprimates.net/codeSlinger/"&gt;Mike&#xD;
Labriola&lt;/a&gt; at &lt;a href="http://www.joshholmes.com/2008/05/29/Riapalooza.aspx"&gt;RIAPalooza&lt;/a&gt;. &#xD;
&lt;/p&gt;&#xD;
        &lt;div style="text-align: left; width: 425px" id="__ss_686369"&gt;&#xD;
          &lt;a style="margin: 12px 0px 3px; display: block; font: 14px helvetica,arial,sans-serif; text-decoration: underline" title="Architecture of RIA from JAOO" href="http://www.slideshare.net/joshholmes/architecture-of-ria-from-jaoo-presentation?type=powerpoint"&gt;Architecture&#xD;
of RIA from JAOO&lt;/a&gt;&#xD;
          &lt;embed height="355" type="application/x-shockwave-flash" width="425" src="http://static.slideshare.net/swf/ssplayer2.swf?doc=architectureofriajaoo-1224801442363516-8&amp;amp;stripped_title=architecture-of-ria-from-jaoo-presentation" allowscriptaccess="always" allowfullscreen="true"&gt;&#xD;
          &lt;/embed&gt;&#xD;
          &lt;div style="font-family: tahoma,arial; height: 26px; font-size: 11px; padding-top: 2px"&gt;View&#xD;
SlideShare &lt;a style="text-decoration: underline" title="View Architecture of RIA from JAOO on SlideShare" href="http://www.slideshare.net/joshholmes/architecture-of-ria-from-jaoo-presentation?type=powerpoint"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration: underline" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your&#xD;
own. (tags: &lt;a style="text-decoration: underline" href="http://slideshare.net/tag/josh"&gt;josh&lt;/a&gt;&lt;a style="text-decoration: underline" href="http://slideshare.net/tag/holmes-james"&gt;holmes;james&lt;/a&gt;)&#xD;
&lt;/div&gt;&#xD;
        &lt;/div&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_2.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; margin: 5px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb.png" width="244" height="185"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
James and I both welcome emails and contact - email addresses in the slide. You can&#xD;
also comment on the blog. We'll both be watching the comments here. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_6.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_2.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The first question that we have to ask ourselves is - what do we mean by RIA?&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_8.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_3.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The acronym could mean anything. &#xD;
&lt;br&gt;&#xD;
It could be the Rural Inoculation Association whose out there in the world trying&#xD;
to immunize all of the cows and chickens in the world. &#xD;
&lt;br&gt;&#xD;
If could be the Rare Isotope Accelerator - you know, the one in Switzerland that didn't&#xD;
end the world... Yeah - I'm thrilled about that. &#xD;
&lt;br&gt;&#xD;
All the way down to Really Inane Acronym - which is the one I often go with.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
But in this session we're talking about RIA as Rich Internet Applications. This means&#xD;
that we are not talking about simple media players or fancy splash screens or advertisements.&#xD;
We are talking about solid enterprise quality applications that leverage the Internet&#xD;
as a deployment model and typically are built on one of the Rich Internet platforms&#xD;
such as Silverlight or Flash. These are meant to enhance the user's experience and&#xD;
if you do a good job with design, you will dramatically improve the usability of the&#xD;
application. This is what James and I are both passionate about. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_10.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_4.png" width="244" height="185"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Before you decide that you need to build a RIA, you need to first think about your&#xD;
users and how they are going to use the application. This will help determine where&#xD;
on the continuum of user experience you should target and what type of application&#xD;
you should write. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
On the far left hand side, if you are going for absolute ubiquitous reach and need&#xD;
to have information in front of the widest possible audience, text over http is the&#xD;
lowest common denominator. HTML and CSS will still have a long and prosperous life&#xD;
on this end of the spectrum. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
On the far right hand side, the guys that were writing Halo for the XBox 360 were&#xD;
able to test the exact hardware, right down to how fast the hard drive spins and which&#xD;
exact video card was in the machine. This means that they are able to make trade offs&#xD;
between how large a map is and what textures are on the walls and so on. This is a&#xD;
huge advantage when trying to create a really rich experience for the users. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
However, most people don't have the luxury of shipping hardware with their software.&#xD;
But can you target a desktop application on a given operating system? Or a family&#xD;
of operating systems? &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
If you can't, then you need to start looking at this supplemented web space that we&#xD;
are talking about with RIA. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_12.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_5.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
So what's different with this RIA development. Really it depends on the skill set&#xD;
of your team. The interesting part is that it's actually a much tougher jump for web&#xD;
developers than desktop developers. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
For desktop developers, there are a number of things that they have to get used to.&#xD;
For example they are locked into a secured browser based sandbox. This means that&#xD;
they can't do a lot of the things that they are used to doing such as reading and&#xD;
writing anywhere on the hard drive, reading from the registry, accessing local hardware&#xD;
or any number of other typical tasks that desktop developers do. &#xD;
&lt;br&gt;&#xD;
The back and the refresh button are also quite scary to the desktop developer. Conceptually,&#xD;
you can think of it as opening up the task manager and killing your application. Oops.&#xD;
The question is what do you do when someone does that? There are a lot of different&#xD;
strategies that you can leverage but the point is that you do have to think very clearly&#xD;
about this potential issue. &#xD;
&lt;br&gt;&#xD;
State management is also an issue that we have to think about more. On the desktop,&#xD;
it's natural to just have your state locally. But in this RIA space, what do your&#xD;
users expect if they open up a browser on a second machine? hmmm. You might need to&#xD;
store your state on the server side. &#xD;
&lt;br&gt;&#xD;
And typically you have a more limited runtime in the browser than you do on the full&#xD;
desktop. For example, the full .NET runtime is about 50 meg and Silverlight is just&#xD;
4 meg. That's quite a difference. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
However, none of these issues are fundamental shifts in how you think or go about&#xD;
doing your job. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
For web developers, on the other hand, there are some serious mind shifts that have&#xD;
to happen. We are used to, as web developers, having everything from the server on&#xD;
hand at any given time. The UI itself is simply rendered HTML. All of the logic and&#xD;
work happens on the server. Often, this happens in a single tier. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Now that we are looking at the RIA space, we have to think about where the business&#xD;
logic goes. Sometimes that's on the UI side running in the browser. Fundamentally&#xD;
this means the web developer needs to understand service oriented architecture. This&#xD;
is a big change from what we are used to where we could, if we so desired, open up&#xD;
a database connection and query directly from the UI logic layer. Instead, our UI&#xD;
logic is happening out in the browser where they don't have access to do that through&#xD;
the firewall etcetera. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blogs.msdn.com/RJacobs/"&gt;Ron Jacobs&lt;/a&gt; talks about a lot of the possible&#xD;
issues in a set of talks called SOA Patterns that can be found &#xD;
&lt;br&gt;&lt;a title="http://channel9.msdn.com/shows/ARCast+with+Ron+Jacobs/ARCast-Patterns-and-Anti-Patterns-for-SOA-Applied/" href="http://channel9.msdn.com/shows/ARCast+with+Ron+Jacobs/ARCast-Patterns-and-Anti-Patterns-for-SOA-Applied/"&gt;http://channel9.msdn.com/shows/ARCast+with+Ron+Jacobs/ARCast-Patterns-and-Anti-Patterns-for-SOA-Applied/&lt;/a&gt; and &#xD;
&lt;br&gt;&lt;a title="http://channel9.msdn.com/shows/ARCast+with+Ron+Jacobs/ARCast-Patterns-and-Anti-Patterns-for-SOA-Part-2-of-2/" href="http://channel9.msdn.com/shows/ARCast+with+Ron+Jacobs/ARCast-Patterns-and-Anti-Patterns-for-SOA-Part-2-of-2/"&gt;http://channel9.msdn.com/shows/ARCast+with+Ron+Jacobs/ARCast-Patterns-and-Anti-Patterns-for-SOA-Part-2-of-2/&lt;/a&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
For example many people look at mapping their database directly to their web service&#xD;
tier. This is the anti-pattern that Ron calls the CRUDy web service layer. Really,&#xD;
you are not service orienting your application. Rather, you are simply exposing the&#xD;
database tier out to the rest of the world. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Once you get over this hump, the rest of the changes are relatively small in comparison.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_14.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_6.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Onto the best practices... We have laid out 10 best practices here. These are not&#xD;
by far the only solid practices. These just happen to be the 10 that James and I thought&#xD;
were in the top 10 that are across the board regardless if what RIA platform you are&#xD;
using. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_16.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_7.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt; &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_18.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_8.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Those couches, no matter how pretty they are, are not amazingly comfortable. The primary&#xD;
point here is that your application has to be functional and usable or nobody will&#xD;
use it regardless of how pretty it is or what technologies you are using. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_20.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_9.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The easiest way to make sure that you are building a functional application is to&#xD;
focus on the architecture. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
This is a picture of from Taliesin West, Frank Lloyd Write's winter home in Arizona.&#xD;
He spent a lot of time working on the overall architecture of the building and the&#xD;
looks of the building.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_22.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_10.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
However, he spent almost as much time on the inside. He built much of the furniture,&#xD;
designed the lighting, the flow of the rooms, the acoustics and much more. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The lesson that we can learn from this is that we should spend as much time on the&#xD;
inside of our application and the architecture of the client side as we do on the&#xD;
overall application. You really need to apply a lot of rigor to the architecture of&#xD;
the client side as well as the overall application. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
There are two client side architectural patterns that are the front runners that we&#xD;
should talk about. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_24.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_11.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
First in the MVC or Model, View, Controller pattern. The idea here is that you have&#xD;
three separate layers with very distinctive roles. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The model is the first layer that we need to talk about. It reflects your web service&#xD;
layer, not the database but what's returned from the services. This is the only access&#xD;
layer to the services and hides away the details of which services, protocols, security&#xD;
and other details from the other layers. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The second layer to talk about is the controller. This is the logic. It makes the&#xD;
decisions as to which view is shown, what data is changed in the model and so on.&#xD;
It watches what's going on in the view for various events and responds to those events&#xD;
by making updates in the model. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The third layer is the view. Often, there are multiple views for a given controller.&#xD;
For example, there might be a complex and a simplistic rendering of a given item from&#xD;
the model. The view is very thin as far as logic goes. It watches the model for changes&#xD;
and updates itself based on those changes. Those changes are either the result of&#xD;
logic in the controller or from a web service call. Often, in Silverlight, WPF or&#xD;
even Winforms, this watching for changes in the model is often implemented as data-binding.&#xD;
As it's data-bound to objects, the view can decide on what attributes of the object&#xD;
it wants to show. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_26.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_12.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The second pattern to talk about is the MVP or Model, View, Presenter pattern. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The first layer, the model, is actually very similar. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The second layer is the presenter. One of the big differences here is that the presenter&#xD;
actually updates the view with the changes from the model rather than the view watching&#xD;
for those changes. The result here is two fold. First the view are much closer tied&#xD;
together. The second is that, since the presenter is doing all of the input and output,&#xD;
it's easier to unit test. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The last layer, the view, is much thinner then in the MVC pattern. It's simply a presentation&#xD;
of the data that the presenter has chosen to show. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_28.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_13.png" width="244" height="182"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I personally prefer the MVC pattern. I don't thing that the extra testability that&#xD;
you get out of the MVP is not worth the loss in flexibility in the view. Unit testing&#xD;
is still quite possible in MVC and definitely should be part of the process. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_30.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_14.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_32.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_15.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The second best practice is that you should have a set of design tenets that the team&#xD;
shares. Really these are values that should be held by the designers, developers and&#xD;
all of the stake holders. This has to be agreed on by the team at the beginning of&#xD;
the project. I actually like to do two. One for the UI layer and the second for the&#xD;
overall development process of the application. For example, in the UI layer, Search&#xD;
is Failure. This means that if the user has to hit search in order to find something&#xD;
on your web site in the course of normal navigation - you failed in the design and&#xD;
navigation of the application. On the development side, think about TDD or Test Driven&#xD;
Development as one of the tenets that you hold. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_34.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_16.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_36.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_17.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The third best practice is to use the appropriate level of fidelity for the user's&#xD;
context. There are couple of things to talk about here. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_38.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_18.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The first is when you are developing a prototype. If you bring in an amazingly beautiful&#xD;
wire framed application with a ton of colors and full animations the user is going&#xD;
to do one of two things. Either they are going to argue with you over the exact shade&#xD;
of red or some other little detail without really getting through the functionality&#xD;
of the application or they will say - cool, you're done. It's really hard to explain&#xD;
to a non-technical person the difference between a good looking prototype and a a&#xD;
finished application and why it's going to take 9 months to make that leap. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The answer to this is to use a set of printed mockups for the look and feel and a&#xD;
skin such as &lt;a href="http://www.codeplex.com/protoxaml"&gt;ProtoXAML&lt;/a&gt; for the running&#xD;
prototype so that you can work through the functionality without getting into the&#xD;
arguments about look and feel.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_40.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_19.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The second item to talk about with regards to fidelity is the forest for the trees.&#xD;
This means understanding the user's context and only showing them the data that they&#xD;
need in that context. For example, if you are dealing with a C level executive you&#xD;
shouldn't show them how much it costs for a particular pencil. Instead, you should&#xD;
only show them how much it costs for office supplies in general. If the want to dive&#xD;
into that detail, then you should let them dive into that level of detail. Another&#xD;
thing to think about is what should be on a dashboard verses in the full application&#xD;
or report. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_42.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_20.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_44.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_21.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The fourth best practice is to build with both the customer and user's input. Step&#xD;
one here is to recognize that these are indeed separate people. The customer is the&#xD;
one who is signing the checks. Often this is some layer of management far removed&#xD;
from the actual day to day operations that the users are doing. The users are the&#xD;
ones that are actually going to be using your application and getting upset with you&#xD;
about the things that don't work the way that they want. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
This is one of the central themes in most agile methodologies. Most actually want&#xD;
to have one of the users on the development team sitting in the meetings and providing&#xD;
input the entire time. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_46.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_22.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_48.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_23.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The fifth best practice is to understand who your users are and what type of users&#xD;
you have. For example if you have a public facing web site, you'll have something&#xD;
like the curve in the slide with some large percentage of your users being first time&#xD;
visitors to your site, some smaller percentage being repeat visitors and some really&#xD;
small percentage being your power users. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Your goal should be to turn those brand new to the site into repeat visitors and then&#xD;
into power users. For those that are brand new to the site, you need to explain what&#xD;
your web site does and why they want to come back. One the other end, the power users&#xD;
shouldn't be bothered by that introductory information that you present to the new&#xD;
visitors. A couple of sites that do this really well are &lt;a href="http://www.wordpress.com"&gt;WordPress&lt;/a&gt; and &lt;a href="http://twitter.com"&gt;Twitter&lt;/a&gt;.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_50.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_24.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_52.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_25.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Sixth is planning for concurrency. Concurrency is always an issue in application development,&#xD;
it's just highlighted in RIAs as the client is running somewhere on the network or&#xD;
across the Internet in the client's browser. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The fun issue is with concurreny is that it's hard to test for in development because&#xD;
typically the developer has their own dev environment and/or a database full of junk&#xD;
test data. This makes it hard to spot concurrency issues. Instead they find these&#xD;
issues in training when the trainer asks the 30 students to open up Mr. Jones and&#xD;
change his address and save. At that point, what happens? Which of the users actually&#xD;
saved the new address successfully? &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_54.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_26.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
There are two basic forms of concurrency. Optimistic and Pessimistic. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Pessimistic includes locking down the rows that you are accessing until you are finished&#xD;
with them. It really isn't a consideration in RIA as you don't have a long running&#xD;
transaction with an open connection to the database. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
However, simple last in wins optimistic concurrency is really not concurrency either.&#xD;
You need to think through the various scenarios and understand where you need to detect&#xD;
that there was a change and then decide on what to do with that change. In order to&#xD;
detect that there was a change, the traditional strategies are to either pass both&#xD;
the original version of the data that you retrieved in the first place as well as&#xD;
the changes or to use a timestamp of some sort. As far as what to do with the change,&#xD;
you might be able to perform logic to make the determination on what to do such as&#xD;
if there is an addition or subtraction of some numerical amount. Most of the time,&#xD;
however, you need to raise awareness to the user that there was a change and have&#xD;
them decide what to do. Other times you need to think about doing some type of escalation&#xD;
to a manager. Obviously that requires more development and thought but it's worth&#xD;
the time. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_56.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_27.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_58.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_28.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The seventh best practice is balancing the computing load. Think about the fact that&#xD;
you've got the ability to do a lot of logic client side and you can offload the computing&#xD;
load on the server that way. However, there's still a lot of good reasons to keep&#xD;
the logic server side. The question is what's the decision tree on where the logic&#xD;
should run. My preference is to keep the operations as close to the data as possible.&#xD;
If most or all all of the data that you need is client side, there's no reason to&#xD;
burn the extra network traffic and time waiting on the the round trip. On the other&#xD;
hand, if the majority of the data is server side and you can process the data and&#xD;
just return the results of the processing - do that. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_60.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_29.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_62.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_30.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Security is a huge issue and really hard to get right. If you make it too tough, people&#xD;
will find ways around it or stop using your application all together. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_64.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_31.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Both Silverlight and Flash have security protocols around calling web services. It's&#xD;
based on the domain that your application was loaded from and what domain the application&#xD;
is trying to call the service on. If you were loaded from the domain you're trying&#xD;
to call then there are no security issues. The domain is defined as the combination&#xD;
of the domain name (including sub domain such as www), protocol (http or https) and&#xD;
port (such as 80 or 8080). If any one of these are different, then it's considered&#xD;
a cross domain call. That means that &lt;a href="http://www.somedomain.com"&gt;http://www.somedomain.com&lt;/a&gt; is&#xD;
different from &lt;a href="http://somedomain.com"&gt;http://somedomain.com&lt;/a&gt; and &lt;a href="http://somedomain.com"&gt;http://somedomain.com&lt;/a&gt; is&#xD;
different from &lt;a href="http://somdomain.com:8080"&gt;http://somdomain.com:8080&lt;/a&gt;.&#xD;
The reason behind this is that any of those variables, sub domain, port or protocol&#xD;
could point to different servers. That possibility of changing servers is considered&#xD;
a cross domain call and more security kicks in. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The reason that this matters is that when the application makes that call, all of&#xD;
the cookies for the domain that you are trying to call are passed along with the call.&#xD;
This is not an issue if you are calling a server that doesn't have private information&#xD;
such as the public web services on Flickr or book searches on Amazon and the like.&#xD;
However, this is a huge issue if the application can call some outside domain that&#xD;
does have private information, such as Paypal or your hospital or some other server&#xD;
that has sensitive information, and pretend to be you by passing in those cookies. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Since it's the server that knows whether or not it holds sensitive data, the server&#xD;
gets to decide if it is going to allow that call. The method for doing that is a policy&#xD;
file. The Adobe version of this file is the crossdomain.xml and the Microsoft version&#xD;
is called the clientaccesspolicy.xml though Silverlight will leverage the crossdomain.xml&#xD;
file if it doesn't find the clientaccesspolicy.xml file. In these policy files the&#xD;
server can specify which domains, from all down to a very specific one, are able to&#xD;
call which services. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_66.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_32.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The quick dos and don'ts for your server that you're expecting RIA applications are&#xD;
divided into private services that your own applications are going to call and public&#xD;
services that you are opening up to third party applications to call. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
For private services:&lt;br&gt;&#xD;
Do use browser-based authentication through cookies, HTTP Auth and so on. This will&#xD;
allow your application to leverage the existing authentication methods that you are&#xD;
using with the rest of your web applications. This is a big win. &#xD;
&lt;br&gt;&#xD;
Do not, since these are private services that are using browser based authentication,&#xD;
enable public access via a cross-domain policy file of any sort. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
For public services:&lt;br&gt;&#xD;
Do not use browser-based authentication. You can either just open up anonymous access&#xD;
or pass in the credentials on each of the service calls and use more traditional authentication&#xD;
methods from the SOA world. &#xD;
&lt;br&gt;&#xD;
Check on the calling application's URL and other authentication techniques. &#xD;
&lt;br&gt;&#xD;
And definitely separate out the public from private services into different domains&#xD;
but at least subdomain or something. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_68.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_33.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_70.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_34.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
If you've not spent any time in a support center answering calls from irate users,&#xD;
you should. It will change you're outlook on writing software, logging, bug reporting&#xD;
and more. Now, let's have the application running out there in a browser in a secured&#xD;
sandbox so that you're users don't have direct access to any log fine and the issues&#xD;
that they might run into could be network issues and you wouldn't able to log errors&#xD;
on the server side. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Do you see the problem?  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
One technique to deal with this is to code for a parameter that the user can pass&#xD;
in on the url that will bring up an error console that the user can read back to you.&#xD;
For the error log, you can store the errors in a cookie or local storage. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The point is that you need to think long and hard about supportability and what could&#xD;
possibly go wrong and how to handle it. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_72.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_35.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_74.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_36.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Very importantly, you have to keep your user's context in mind. Are they mobile? Disabled?&#xD;
What role do they play? How are they going to be using your application? What's the&#xD;
minimum data that they need to accomplish their duties?&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
By remembering your user's context you can build the most effective application for&#xD;
them in their unique situation. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_76.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_37.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I'd love to hear about best practices that you've uncovered in your work as a RIA&#xD;
designer, developer and architect. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_78.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_38.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I learn best from my failures and the best practices wouldn't be best practices if&#xD;
there weren't worst practices. As such, I don't think that any best practices talk&#xD;
is complete without addressing the possible worst practices.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_80.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_39.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_82.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_40.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The first possible worst practice when creating a rich internet application creating&#xD;
a rich internet application in the first place. You shouldn't use 2.0 technologies&#xD;
to build a 1.0 web site. HTML, CSS and light javascript can go a really long ways&#xD;
in creating a beautiful site that's rich with information. You have to think about&#xD;
the user's interactivity and context when picking the technologies that you're using.&#xD;
We are all guilty of finding a slick technology and picking it as our hammer going&#xD;
around making every problem a nail. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_84.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_41.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_86.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_42.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Many RIA applications forget about the page refresh and back button. By default, when&#xD;
the user hits refresh, the application unloads, reloads and starts over from the beginning&#xD;
forcing the user to navigate back to the where they were in the first place. By default&#xD;
when the user hits the back button, the page with the application in it is unloaded&#xD;
as the browser goes back in the history to the previous page. In either case, this&#xD;
is probably not what the user expected. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
If they were using a traditional HTML based web application the refresh would simply&#xD;
reload the page that they are on. If there was a postback involved, it will even offer&#xD;
the user the possibility to repost those variables to get the same result again. You&#xD;
can, if you write code to handle it in the unload and load of the application write&#xD;
out the state on unload and recreate the state on load. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
For the back button, things are little bit more complicated. One way you can handle&#xD;
this is to build a state machine that tracks the logical pages in your application&#xD;
such as the pages in a wizard. Then you can trap the back button event and unwind&#xD;
the state machine. If you are at the beginning of the application, let the event go&#xD;
and act as normal. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_88.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_43.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_90.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_44.png" width="244" height="185"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The first thing that a lot of people think of when they start thinking about those&#xD;
challenges with regards to the back and refresh button is to simply disable them rather&#xD;
than going through all of the effort of handling them. This is a choice but if breaks&#xD;
the way that users expect to browse on the web so doing do it. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_92.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_45.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_94.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_46.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Ignoring your bandwidth is another large mistake that people make. There are a couple&#xD;
of different ways that this happens. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
To start off, you need to think about the size of your application and how that will&#xD;
effect load times. A lot of desktop applications are many meg in size. This is fine&#xD;
since you are not having to download the application to run it over and over again.&#xD;
If this is the case with your right internet application, you need to think about&#xD;
partitioning your application to optimize load times. The simplest example here is&#xD;
to make sure that you don't embed assets such as videos or images inside your application&#xD;
unless you absolutely need them on startup. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
More advanced techniques include partitioning the application itself into multiple&#xD;
easily digestible parts. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The second thing to thing about is video streaming if you are using video. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
One more area for concern is the amount of data that you are pulling back at one time.&#xD;
There are a lot of different paging techniques that you can employ with easily implemented&#xD;
patterns. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_96.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_47.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_98.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_48.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
There are good ways and bad ways to leverage animations. Many times there is gratuitous&#xD;
animation that have been thrown in just because they can. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The good is when a particular animation helps the user visualize data in a unique&#xD;
way or leads the user to the next action. For example, you can, when all required&#xD;
fields are filled in, add a shimmer behind the "next" button to draw the user's eye&#xD;
to guide them along the way. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Another example of good use of animation is showing transitions in state or data.&#xD;
As Mike Labriola put it, if your user rolls a ball and it just disappears as it leaves&#xD;
their hand and appears across the room, they would be very surprised. By showing the&#xD;
state transforming through animation, you can show your user what happened. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_100.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_49.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_102.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_50.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
We, as developers, are infamous for NIH (Not Invented Here). There are, even with&#xD;
a limited framework, a tremendous amount of utilities in the framework that you don't&#xD;
have to reimplement. There are a lot of possible issues with not leveraging the framework&#xD;
that you're running on. First, you have to maintain it. But the other issue that is&#xD;
more unique to the RIA world is that the user has to download this code when they&#xD;
run your application. This bloats the application and contributes to the other worst&#xD;
practice that we already talked about with ignoring your bandwidth. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_104.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_51.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_106.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_52.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Cowboy development is always a worst practice. The problem is that there are times&#xD;
that people get away with it. And that makes them bolder and bolder. "It's just two&#xD;
lines of code. A tweak really. I'll just make that on the production server." Tweaks&#xD;
have brought down more servers than major production roll-outs. The major changes&#xD;
have been through testing and QA and all sorts of engineering rigor. The tweaks has&#xD;
at best been reviewed by the guy sitting in the next cube. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
With RIAs, we are building real production applications and we need to apply the same&#xD;
disciplines that we should for any other application development. That includes Source&#xD;
Control, Change Control, Bug Tracking, solid development processes, TDD, Continuous&#xD;
Integration and the whole kit and caboodle. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_108.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_53.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_110.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_54.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In laying out the application's interface, it's really easy to get carried away with&#xD;
the number of containers to control the exact positioning of the items on the screen.&#xD;
In the HTML world, we did this with tables until we were all told that tables were&#xD;
evil. The answer was to switch to divs and put divs inside of divs and so on. This&#xD;
proved not to be any better. The real answer was to use CSS to set the relative positioning&#xD;
of the items. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The same idea applies in the RIA technologies. The more containers that you use to&#xD;
create your layout, the more constricted it will be.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_112.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_55.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_114.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_56.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
If you have a really complex rendering of a given item, that's not necessarily a bad&#xD;
thing. However, if you take that same item and databind a thousand of them into list&#xD;
- now you have a problem. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_116.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_57.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_118.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_58.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Getting religious about your technology decisions is a really common and really horrible&#xD;
practice. You should evaluate the possible technologies on their technical merits&#xD;
rather than on feeling, personal biases or any other non-technical method. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Instead you have to determine if the technology will actually do what you need for&#xD;
it to do, what your team make up is and if they will be able to leverage the technologies,&#xD;
if the IT department will be able to support the roll out of the application and all&#xD;
of the other technical merits of the chosen platform, technology and so on. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
This is the point in the talk where James Ward (remember that he's from Adobe and&#xD;
I'm from Microsoft) came over and hugged me on stage! &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_120.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_59.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I'd also like to, just as I asked for your best practices, hear from you about worst&#xD;
practices that you've found over time. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_122.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_60.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_124.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_61.png" width="244" height="184"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Rich Internet Applications are meant to enhance the users experience. Poorly designed&#xD;
applications don't accomplish this goal. Furthermore, we're probably going to face&#xD;
a period where we have a lot of "Silverlight Blink" so called for the HTML Blink tag&#xD;
that annoyed us all for so long. We all need to champion user centered design to ensure&#xD;
that we are building the applications that will help, not hurt, the user. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The architecture of the client matters, especially now, as much as the overall client.&#xD;
It helps with testability, maintenance, flexibility, changes and a ton more.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
These are real applications and should be built following the best development practices.&#xD;
This includes all of the engineering rigor that any enterprise quality application&#xD;
is built with. This includes change control, feature and bug tracking, TDD, continuous&#xD;
integration and the whole ball of wax. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Don't rewrite the framework that you should be leveraging. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Leverage user centered design techniques. There are a lot of great resources out there&#xD;
that you can tap into to learn more. I'll follow up with a post about that in the&#xD;
near future. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Take religion and emotion out of the technical decisions that you are making. Evaluate&#xD;
technologies for their technical merit and choose the one that's going to work best&#xD;
for your team makeup. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_126.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArchitectureofRIAfromJAOO_12957/image_thumb_62.png" width="244" height="183"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Be sure to subscribe to James and I's blog. Follow up with us with questions. Let&#xD;
us know how you're leveraging the RIA technologies. We'd love hear it. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I enjoyed giving this talk and thank Mike and James for joining me in presenting it. &#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.joshholmes.com/aggbug.ashx?id=d2efe932-352c-4736-bb72-b100c2438c44"&gt;&lt;/img&gt;&#xD;
      &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=vHcOM"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=vHcOM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=v7pnm"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=v7pnm" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=075km"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=075km" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=pc8jM"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=pc8jM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=e0kWm"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=e0kWm" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoshHolmes/~4/433767134" height="1" width="1"/&gt;</description>
      <comments>http://www.joshholmes.com/CommentView,guid,d2efe932-352c-4736-bb72-b100c2438c44.aspx</comments>
    <feedburner:origLink>http://www.joshholmes.com/2008/10/27/ArchitectureOfRIAFromJAOO.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.joshholmes.com/Trackback.aspx?guid=e8c3e3da-bd2d-43cb-b645-5cf8b83bf65b</trackback:ping>
      <pingback:server>http://www.joshholmes.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.joshholmes.com/PermaLink,guid,e8c3e3da-bd2d-43cb-b645-5cf8b83bf65b.aspx</pingback:target>
      <dc:creator>Josh Holmes</dc:creator>
      <wfw:comment>http://www.joshholmes.com/CommentView,guid,e8c3e3da-bd2d-43cb-b645-5cf8b83bf65b.aspx</wfw:comment>
      <wfw:commentRss>http://www.joshholmes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=e8c3e3da-bd2d-43cb-b645-5cf8b83bf65b</wfw:commentRss>
      <slash:comments>1</slash:comments>
      
      <title>What does an Evangelist do?</title>
      <guid isPermaLink="false">http://www.joshholmes.com/PermaLink,guid,e8c3e3da-bd2d-43cb-b645-5cf8b83bf65b.aspx</guid>
      <link>http://feeds.feedburner.com/~r/JoshHolmes/~3/431191907/WhatDoesAnEvangelistDo.aspx</link>
      <pubDate>Fri, 24 Oct 2008 23:15:58 GMT</pubDate>
      <description>&lt;p&gt;&#xD;
With such a bizarre title people often ask what an evangelist does. There are evangelists&#xD;
all across the world working for a ton of different countries. Christian works for&#xD;
Yahoo out of &lt;strike&gt;India&lt;/strike&gt; London, England (**Update Thanks for the correction&#xD;
Christian! **) but he described what I do very accurately. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Below is a slide deck that he did to explain the role of evangelism in the world of&#xD;
development. &#xD;
&lt;/p&gt;&#xD;
        &lt;div style="text-align: left; width: 425px" id="__ss_674444"&gt;&#xD;
          &lt;a style="margin: 12px 0px 3px; display: block; font: 14px helvetica,arial,sans-serif; text-decoration: underline" title="Developer Evangelism" href="http://www.slideshare.net/cheilmann/developer-evangelism-presentation-674444?type=powerpoint"&gt;Developer&#xD;
Evangelism&lt;/a&gt;&#xD;
          &lt;embed height="355" type="application/x-shockwave-flash" width="425" src="http://static.slideshare.net/swf/ssplayer2.swf?doc=developerevangelism-1224563721992430-9&amp;amp;stripped_title=developer-evangelism-presentation-674444" allowfullscreen="true" allowscriptaccess="always"&gt;&#xD;
          &lt;/embed&gt;&#xD;
          &lt;div style="font-family: tahoma,arial; height: 26px; font-size: 11px; padding-top: 2px"&gt;View&#xD;
SlideShare &lt;a style="text-decoration: underline" title="View Developer Evangelism on SlideShare" href="http://www.slideshare.net/cheilmann/developer-evangelism-presentation-674444?type=powerpoint"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration: underline" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your&#xD;
own. (tags: &lt;a style="text-decoration: underline" href="http://slideshare.net/tag/advocate"&gt;advocate&lt;/a&gt;&lt;a style="text-decoration: underline" href="http://slideshare.net/tag/publicspeaking"&gt;publicspeaking&lt;/a&gt;)&#xD;
&lt;/div&gt;&#xD;
        &lt;/div&gt;&#xD;
        &lt;p&gt;&#xD;
I'm hoping to meet Christian someday at some conference some where. He's obviously&#xD;
a great evangelist and passionate about what he does. &#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.joshholmes.com/aggbug.ashx?id=e8c3e3da-bd2d-43cb-b645-5cf8b83bf65b"&gt;&lt;/img&gt;&#xD;
      &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=oAbKM"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=oAbKM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=f56gm"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=f56gm" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=5OfDm"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=5OfDm" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=2uhuM"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=2uhuM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/JoshHolmes?a=6vXmm"&gt;&lt;img src="http://feeds.feedburner.com/~f/JoshHolmes?i=6vXmm" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoshHolmes/~4/431191907" height="1" width="1"/&gt;</description>
      <comments>http://www.joshholmes.com/CommentView,guid,e8c3e3da-bd2d-43cb-b645-5cf8b83bf65b.aspx</comments>
    <feedburner:origLink>http://www.joshholmes.com/2008/10/24/WhatDoesAnEvangelistDo.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.joshholmes.com/Trackback.aspx?guid=a90988da-e335-444b-970a-8e6652e53a13</trackback:ping>
      <pingback:server>http://www.joshholmes.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.joshholmes.com/PermaLink,guid,a90988da-e335-444b-970a-8e6652e53a13.aspx</pingback:target>
      <dc:creator>Josh Holmes</dc:creator>
      <wfw:comment>http://www.joshholmes.com/CommentView,guid,a90988da-e335-444b-970a-8e6652e53a13.aspx</wfw:comment>
      <wfw:commentRss>http://www.joshholmes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a90988da-e335-444b-970a-8e6652e53a13</wfw:commentRss>
      
      <title>ArcReady - the Soft Skills</title>
      <guid isPermaLink="false">http://www.joshholmes.com/PermaLink,guid,a90988da-e335-444b-970a-8e6652e53a13.aspx</guid>
      <link>http://feeds.feedburner.com/~r/JoshHolmes/~3/429914877/ArcReadyTheSoftSkills.aspx</link>
      <pubDate>Thu, 23 Oct 2008 18:43:41 GMT</pubDate>
      <description>&lt;p&gt;&#xD;
As an Architect, you should be more than just a technical guy. Your job is to be the&#xD;
liaison between the technical side of the world and the business side of the world.&#xD;
You need to be able to effectively communicate with all sides and understand the motivations&#xD;
of the different parts of the business. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
To that end, this quarter's &lt;a href="http://www.arcready.com"&gt;ArcReady&lt;/a&gt; is here&#xD;
to help you. This quarter, your local Architect Evangelist will discuss the soft skills&#xD;
needed to perform the job of an architect and how to gain those skills. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Here's the official text from the invite:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.arcready.com"&gt;&#xD;
            &lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002" src="http://www.joshholmes.com/content/binary/WindowsLiveWriter/ArcReadytheSoftSkills_CF0F/clip_image002_3.jpg" width="615" height="164"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;b&gt;&#xD;
            &lt;i&gt;&#xD;
            &lt;/i&gt;&#xD;
          &lt;/b&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;b&gt;Microsoft ArcReady&lt;/b&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;b&gt;Professional Patterns on the Job&lt;/b&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
You're smart. You deliver. What more could your company want from you?  Why don’t&#xD;
they come to you for the big technical decisions? Why won’t they listen to your proposals?&#xD;
It seems like everyone has an agenda and they’re doing everything they can to kill&#xD;
your great ideas. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Join us this quarter as we focus on the soft skills that architects need to master.&#xD;
Learning these skills will boost your emotional intelligence and help you become a&#xD;
more professional, well rounded contributor. You’ll gain insight into the architect’s&#xD;
role as leader, influencer, and business professional and learn how to leverage your&#xD;
position to become a positive force within your organization. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;Session 1: Mastering the Soft Skills &lt;/strong&gt;&#xD;
          &lt;br&gt;&#xD;
In this session, we’ll discuss key interpersonal skills and how they can affect your&#xD;
projects and career. We cover how to positively connect with humans, how to participate&#xD;
in and influence the business processes you support, and how to transcend your technical&#xD;
role and maximize your connections with all members of your organization. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;Session 2: Organizational Dynamics &lt;/strong&gt;&#xD;
          &lt;br&gt;&#xD;
This session examines the dynamic nature of large organizations – their structures,&#xD;
decision making processes, and political landscapes. We’ll discuss the goals of key&#xD;
business and technical decision makers and their influence on architects and software&#xD;
projects. We’ll conclude with some strategies for maximizing the soft skills from&#xD;
Session 1 to ensure successful outcomes for your projects and career. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;b&gt;WHAT IS ARCREADY?&lt;/b&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
A &lt;b&gt;forum&lt;/b&gt; for aspiring and practicing architects to discuss industry trends &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
An overview of Microsoft’s&lt;b&gt; roadmap &lt;/b&gt;as it relates to software architecture&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
A mechanism to solicit your &lt;b&gt;feedback &lt;/b&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
An opportunity to &lt;b&gt;showcase&lt;/b&gt; the work you do!&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;b&gt;WHO SHOULD ATTEND?&lt;/b&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Architects and Senior Developers who are interested in becoming an architect. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;b&gt;WHERE ARE THE EVENTS?&lt;/b&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Events are held in 19 cities across Central Region.  To register for this event,&#xD;
please visit &lt;a href="http://www.arcready.com"&gt;www.arcready.com&lt;/a&gt;. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
  &#xD;
&lt;/p&gt;&#xD;
        &lt;li&gt;&#xD;
          &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391696&amp;amp;Culture=en-US"&gt;Omaha,&#xD;
NE November 4, 2008 9:00am – 11:45 am&lt;/a&gt;&#xD;
        &lt;/li&gt;&#xD;
        &lt;li&gt;&#xD;
          &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391698&amp;amp;Culture=en-US"&gt;West&#xD;
Des Moines, IA November 6, 2008 9:00am – 11:45 am&lt;/a&gt;&#xD;
        &lt;/li&gt;&#xD;
        &lt;li&gt;&#xD;
          &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391697&amp;amp;Culture=en-US"&gt;Bloomington,&#xD;
IL November 11, 2008 9:00am – 11:45 am &lt;/a&gt;&#xD;
        &lt;/li&gt;&#xD;
        &lt;li&gt;&#xD;
          &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391699&amp;amp;Culture=en-US"&gt;St.&#xD;
Louis, MO November 12, 2008 9:00am – 11:45 am&lt;/a&gt;&#xD;
        &lt;/li&gt;&#xD;
        &lt;li&gt;&#xD;
          &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391700&amp;amp;Culture=en-US"&gt;Waukesha,&#xD;
WI November 13, 2008 9:00am – 11:45 am&lt;/a&gt;&#xD;
        &lt;/li&gt;&#xD;
        &lt;li&gt;&#xD;
          &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391702&amp;amp;Culture=en-US"&gt;Overland&#xD;
Park, KS November 13, 2008 9:00am – 11:45 am&lt;/a&gt;&#xD;
        &lt;/li&gt;&#xD;
        &lt;li&gt;&#xD;
          &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391703&amp;amp;Culture=en-US"&gt;Knoxville,&#xD;
TN November 17, 2008 9:00am – 11:45 am&lt;/a&gt;&#xD;
        &lt;/li&gt;&#xD;
        &lt;li&gt;&#xD;
          &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391707&amp;amp;Culture=en-US"&gt;Franklin,&#xD;
TN November 18, 2008 9:00am – 11:45 am &lt;/a&gt;&#xD;
        &lt;/li&gt;&#xD;
        &lt;li&gt;&#xD;
          &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391708&amp;amp;Culture=en-US"&gt;Downers&#xD;
Grove, IL November 19, 2008 9:00am – 11:45 am &lt;/a&gt;&#xD;
        &lt;/li&gt;&#xD;
        &lt;li&gt;&#xD;
          &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032390958&amp;amp;culture=en-US"&gt;Dallas,&#xD;
TX November 20, 2008 1:00pm – 3:45 pm&lt;/a&gt;&#xD;
        &lt;/li&gt;&#xD;
        &lt;li&gt;&#xD;
          &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391709&amp;amp;Culture=en-US"&gt;Indianapolis,&#xD;
IN November 20, 2008 9:00am – 11:45 am &lt;/a&gt;&#xD;
        &lt;/li&gt;&#xD;
        &lt;li&gt;&#xD;
          &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391710&amp;amp;Culture=en-US"&gt;Minneapolis,&#xD;
MN November 20, 2008 9:00am – 11:45 am&lt;/a&gt;&#xD;
        &lt;/li&gt;&#xD;
        &lt;li&gt;&#xD;
          &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391711&amp;amp;Culture=en-US"&gt;Southfield,&#xD;
MI November 25, 2008 9:00am – 11:45 am&lt;/a&gt;&#xD;
        &lt;/li&gt;&#xD;
        &lt;li&gt;&#xD;
          &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391712&amp;amp;Culture=en-US"&gt;Mason,&#xD;
OH December 2, 2008 9:00am – 11:45 am&lt;/a&gt;&#xD;
          &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032385970&amp;amp;Culture=en-US"&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/li&gt;&#xD;
        &lt;li&gt;&#xD;
          &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391713&amp;amp;Culture=en-US"&gt;Houst