<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">
  <channel>
    <title>Rockford Lhotka - WP7</title>
    <link>http://www.lhotka.net/weblog/</link>
    <description>Creator of the CSLA .NET framework</description>
    <language>en-us</language>
    <copyright>Marimer LLC</copyright>
    <lastBuildDate>Thu, 08 Mar 2012 18:19:43 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>rocky@lhotka.net</managingEditor>
    <webMaster>rocky@lhotka.net</webMaster>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=2d42b4f1-d9f1-4c2c-9741-290a197261b9</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,2d42b4f1-d9f1-4c2c-9741-290a197261b9.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,2d42b4f1-d9f1-4c2c-9741-290a197261b9.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=2d42b4f1-d9f1-4c2c-9741-290a197261b9</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="display: inline; float: right" title="ConferenceBuddy" alt="ConferenceBuddy" align="right" src="http://catalog.zune.net/v3.2/en-US/apps/a97f78b4-283f-4737-a624-a8d110ba8d4a/primaryImage?width=240&amp;height=240&amp;resize=true" />Although
Magenic has been building mobile apps for our customers like crazy, we have yet to
release a mobile app directly from Magenic. That changes now with the introduction
of ConferenceBuddy:
</p>
        <ul>
          <li>
            <a href="http://itunes.apple.com/us/app/conferencebuddy/id504591947">ConferenceBuddy</a> on
iTunes App Store</li>
          <li>
            <a href="https://market.android.com/details?id=com.magenic.conferencebuddy">ConferenceBuddy</a> on
Android Market</li>
          <li>
            <a href="http://www.windowsphone.com/en-US/apps/a97f78b4-283f-4737-a624-a8d110ba8d4a">ConferenceBuddy</a> on
Windows Phone Marketplace</li>
        </ul>
        <p>
Conference Buddy allows you to easily:
</p>
        <ul>
          <li>
Use one click to join conference calls without having to remember, fumble for and
enter long conference codes</li>
          <li>
Display your upcoming conferences on an easy to view and navigate list</li>
          <li>
Join as a leader or participant</li>
          <li>
Store multiple conferences 
</li>
        </ul>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=2d42b4f1-d9f1-4c2c-9741-290a197261b9" />
      </body>
      <title>Announcing ConferenceBuddy</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,2d42b4f1-d9f1-4c2c-9741-290a197261b9.aspx</guid>
      <link>http://www.lhotka.net/weblog/AnnouncingConferenceBuddy.aspx</link>
      <pubDate>Thu, 08 Mar 2012 18:19:43 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="display: inline; float: right" title="ConferenceBuddy" alt="ConferenceBuddy" align="right" src="http://catalog.zune.net/v3.2/en-US/apps/a97f78b4-283f-4737-a624-a8d110ba8d4a/primaryImage?width=240&amp;amp;height=240&amp;amp;resize=true" /&gt;Although
Magenic has been building mobile apps for our customers like crazy, we have yet to
release a mobile app directly from Magenic. That changes now with the introduction
of ConferenceBuddy:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://itunes.apple.com/us/app/conferencebuddy/id504591947"&gt;ConferenceBuddy&lt;/a&gt; on
iTunes App Store&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://market.android.com/details?id=com.magenic.conferencebuddy"&gt;ConferenceBuddy&lt;/a&gt; on
Android Market&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.windowsphone.com/en-US/apps/a97f78b4-283f-4737-a624-a8d110ba8d4a"&gt;ConferenceBuddy&lt;/a&gt; on
Windows Phone Marketplace&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Conference Buddy allows you to easily:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Use one click to join conference calls without having to remember, fumble for and
enter long conference codes&lt;/li&gt;
&lt;li&gt;
Display your upcoming conferences on an easy to view and navigate list&lt;/li&gt;
&lt;li&gt;
Join as a leader or participant&lt;/li&gt;
&lt;li&gt;
Store multiple conferences 
&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=2d42b4f1-d9f1-4c2c-9741-290a197261b9" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,2d42b4f1-d9f1-4c2c-9741-290a197261b9.aspx</comments>
      <category>Magenic</category>
      <category>WP7</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=2209426d-e18d-42cb-af81-5ea1a8417284</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,2209426d-e18d-42cb-af81-5ea1a8417284.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,2209426d-e18d-42cb-af81-5ea1a8417284.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=2209426d-e18d-42cb-af81-5ea1a8417284</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I have posted an alpha version of CSLA 4 version 4.3.0 for download from the <a href="http://www.lhotka.net/cslanet/download.aspx">CSLA
download page</a>.
</p>
        <p>
Although Jonny has been extremely busy with a number of bug fixes and some feature
changes, I think the biggest change in this alpha release is a major optimization
of the <a href="http://www.lhotka.net/weblog/CSLALightObjectSerialization.aspx">MobileFormatter</a>.
</p>
        <p>
MobileFormatter is used to serialize object graphs on Silverlight and Windows Phone.
It is used by the data portal, and n-level undo (if you use that feature).
</p>
        <p>
Until now, I have recommended that you use compression on the byte stream that flows
over the data portal, because the XML created by the MobileFormatter is often quite
large. It compresses efficiently, and we’re quite efficient about what we put into
the byte stream, but it is just plain big.
</p>
        <p>
Sergey did some really nice work for version 4.3, allowing the use of alternate reader/writer
objects so the data can be serialized into something other than XML. Specifically,
he created binary reader and writer objects that are around 70% more efficient in
terms of byte stream size. That’s about as much as you could expect to get with compression!
</p>
        <p>
The result is that you can probably avoid the CPU intensive overhead of compression
and still get a small byte stream to transfer over the network.
</p>
        <p>
The <a href="http://www.lhotka.net/Article.aspx?area=4&amp;id=1c287e08-d428-4c27-b538-d588e3c55775">CSLA
4 version 4.3.0 change log</a> includes a discussion of the configuration settings
you need to change to use the new reader/writer objects.
</p>
        <p>
This is a non-breaking change, because the default is the same behavior as in 4.2.
But this is a <em>big change</em> and we really appreciate your help in testing the
new reader/writer objects to ensure they work across a wide range of applications.
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=2209426d-e18d-42cb-af81-5ea1a8417284" />
      </body>
      <title>CSLA 4 version 4.3.0 alpha available</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,2209426d-e18d-42cb-af81-5ea1a8417284.aspx</guid>
      <link>http://www.lhotka.net/weblog/CSLA4Version430AlphaAvailable.aspx</link>
      <pubDate>Thu, 26 Jan 2012 19:15:02 GMT</pubDate>
      <description>&lt;p&gt;
I have posted an alpha version of CSLA 4 version 4.3.0 for download from the &lt;a href="http://www.lhotka.net/cslanet/download.aspx"&gt;CSLA
download page&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Although Jonny has been extremely busy with a number of bug fixes and some feature
changes, I think the biggest change in this alpha release is a major optimization
of the &lt;a href="http://www.lhotka.net/weblog/CSLALightObjectSerialization.aspx"&gt;MobileFormatter&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
MobileFormatter is used to serialize object graphs on Silverlight and Windows Phone.
It is used by the data portal, and n-level undo (if you use that feature).
&lt;/p&gt;
&lt;p&gt;
Until now, I have recommended that you use compression on the byte stream that flows
over the data portal, because the XML created by the MobileFormatter is often quite
large. It compresses efficiently, and we’re quite efficient about what we put into
the byte stream, but it is just plain big.
&lt;/p&gt;
&lt;p&gt;
Sergey did some really nice work for version 4.3, allowing the use of alternate reader/writer
objects so the data can be serialized into something other than XML. Specifically,
he created binary reader and writer objects that are around 70% more efficient in
terms of byte stream size. That’s about as much as you could expect to get with compression!
&lt;/p&gt;
&lt;p&gt;
The result is that you can probably avoid the CPU intensive overhead of compression
and still get a small byte stream to transfer over the network.
&lt;/p&gt;
&lt;p&gt;
The &lt;a href="http://www.lhotka.net/Article.aspx?area=4&amp;amp;id=1c287e08-d428-4c27-b538-d588e3c55775"&gt;CSLA
4 version 4.3.0 change log&lt;/a&gt; includes a discussion of the configuration settings
you need to change to use the new reader/writer objects.
&lt;/p&gt;
&lt;p&gt;
This is a non-breaking change, because the default is the same behavior as in 4.2.
But this is a &lt;em&gt;big change&lt;/em&gt; and we really appreciate your help in testing the
new reader/writer objects to ensure they work across a wide range of applications.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=2209426d-e18d-42cb-af81-5ea1a8417284" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,2209426d-e18d-42cb-af81-5ea1a8417284.aspx</comments>
      <category>CSLA .NET</category>
      <category>Silverlight</category>
      <category>WP7</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=9796495c-2cb4-4fd8-9f9b-8df6d1434c7c</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,9796495c-2cb4-4fd8-9f9b-8df6d1434c7c.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,9796495c-2cb4-4fd8-9f9b-8df6d1434c7c.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=9796495c-2cb4-4fd8-9f9b-8df6d1434c7c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="margin: 5px; display: inline; float: right" align="right" src="http://download.lhotka.net/images/UsingCsla4-07-120.png" />I
am pleased to announce that the <a href="http://store.lhotka.net/Store/tabid/1560/CategoryID/4/List/1/Level/1/ProductID/30/Default.aspx">Using
CSLA 4: Windows Phone</a> ebook is now available for purchase. 
</p>
        <p>
If you purchased the <em>Using CSLA 4</em> ebook series you already own the book,
and can download it now.
</p>
        <p>
This ebook (in PDF format) demonstrates how to create a Windows Phone 7 (WP7) application
that uses a business layer created using CSLA 4. This ebook also demonstrates the
use of the MVVM (Model-View-ViewModel) design pattern in a way that is very complementary
to the capabilities provided by CSLA .NET business objects, resulting in an application
that is easy to build and maintain with clear separation of concerns between the XAML-based
view, the interface control code in the viewmodel and the model composed of CSLA-based
business objects. This ebook also makes use of the open-source <a href="http://bxf.codeplex.com/">Bxf</a> MVVM
UI framework.
</p>
        <p>
The ebook includes a sample application demonstrating the concepts and techniques
discussed in the book.
</p>
        <p>
Here’s the high level content outline:
</p>
        <ol>
          <li>
Introduction 
</li>
          <li>
Windows Phone 
<ol><li>
About Silverlight 
</li><li>
Windows Phone Application Model 
</li><li>
Silverlight Navigation 
</li><li>
ApplicationBar Control 
</li><li>
Overview of XAML 
</li></ol></li>
          <li>
MVVM Design Pattern and CSLA 4 
<ol><li>
MVVM Design Pattern overview 
</li><li>
Bxf MVVM Framework 
</li><li>
Main Shell Implementation 
</li><li>
CSLA .NET Windows Phone features 
</li></ol></li>
          <li>
Business and Data Access Layers 
<ol><li>
Responsibility-driven design 
</li><li>
Domain overview and implementation 
</li></ol></li>
          <li>
Application Implementation 
<ol><li>
Windows Phone project setup 
</li><li>
Main shell implementation 
</li><li>
User scenarios 
</li></ol></li>
        </ol>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=9796495c-2cb4-4fd8-9f9b-8df6d1434c7c" />
      </body>
      <title>Using CSLA 4: Windows Phone ebook available</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,9796495c-2cb4-4fd8-9f9b-8df6d1434c7c.aspx</guid>
      <link>http://www.lhotka.net/weblog/UsingCSLA4WindowsPhoneEbookAvailable.aspx</link>
      <pubDate>Wed, 25 Jan 2012 23:35:03 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="margin: 5px; display: inline; float: right" align="right" src="http://download.lhotka.net/images/UsingCsla4-07-120.png" /&gt;I
am pleased to announce that the &lt;a href="http://store.lhotka.net/Store/tabid/1560/CategoryID/4/List/1/Level/1/ProductID/30/Default.aspx"&gt;Using
CSLA 4: Windows Phone&lt;/a&gt; ebook is now available for purchase. 
&lt;/p&gt;
&lt;p&gt;
If you purchased the &lt;em&gt;Using CSLA 4&lt;/em&gt; ebook series you already own the book,
and can download it now.
&lt;/p&gt;
&lt;p&gt;
This ebook (in PDF format) demonstrates how to create a Windows Phone 7 (WP7) application
that uses a business layer created using CSLA 4. This ebook also demonstrates the
use of the MVVM (Model-View-ViewModel) design pattern in a way that is very complementary
to the capabilities provided by CSLA .NET business objects, resulting in an application
that is easy to build and maintain with clear separation of concerns between the XAML-based
view, the interface control code in the viewmodel and the model composed of CSLA-based
business objects. This ebook also makes use of the open-source &lt;a href="http://bxf.codeplex.com/"&gt;Bxf&lt;/a&gt; MVVM
UI framework.
&lt;/p&gt;
&lt;p&gt;
The ebook includes a sample application demonstrating the concepts and techniques
discussed in the book.
&lt;/p&gt;
&lt;p&gt;
Here’s the high level content outline:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Introduction 
&lt;/li&gt;
&lt;li&gt;
Windows Phone 
&lt;ol&gt;
&lt;li&gt;
About Silverlight 
&lt;/li&gt;
&lt;li&gt;
Windows Phone Application Model 
&lt;/li&gt;
&lt;li&gt;
Silverlight Navigation 
&lt;/li&gt;
&lt;li&gt;
ApplicationBar Control 
&lt;/li&gt;
&lt;li&gt;
Overview of XAML 
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
MVVM Design Pattern and CSLA 4 
&lt;ol&gt;
&lt;li&gt;
MVVM Design Pattern overview 
&lt;/li&gt;
&lt;li&gt;
Bxf MVVM Framework 
&lt;/li&gt;
&lt;li&gt;
Main Shell Implementation 
&lt;/li&gt;
&lt;li&gt;
CSLA .NET Windows Phone features 
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
Business and Data Access Layers 
&lt;ol&gt;
&lt;li&gt;
Responsibility-driven design 
&lt;/li&gt;
&lt;li&gt;
Domain overview and implementation 
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
Application Implementation 
&lt;ol&gt;
&lt;li&gt;
Windows Phone project setup 
&lt;/li&gt;
&lt;li&gt;
Main shell implementation 
&lt;/li&gt;
&lt;li&gt;
User scenarios 
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=9796495c-2cb4-4fd8-9f9b-8df6d1434c7c" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,9796495c-2cb4-4fd8-9f9b-8df6d1434c7c.aspx</comments>
      <category>Books</category>
      <category>CSLA .NET</category>
      <category>WP7</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=7d3ffd97-bf3b-42cc-b701-357bc0b6b76d</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,7d3ffd97-bf3b-42cc-b701-357bc0b6b76d.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,7d3ffd97-bf3b-42cc-b701-357bc0b6b76d.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=7d3ffd97-bf3b-42cc-b701-357bc0b6b76d</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
CSLA 4 version 4.2 is now released and available for download.
</p>
        <ul>
          <li>
            <a href="http://www.lhotka.net/cslanet/download.aspx">CSLA download page</a>
          </li>
          <li>
            <a href="http://nuget.org/List/Search?packageType=Packages&amp;searchCategory=All+Categories&amp;searchTerm=csla">NuGet</a>
          </li>
        </ul>
        <p>
The primary focus of this release is the introduction of support for mono (Mac, Linux),
monotouch (iPhone, iPad), and mono for Android. 
</p>
        <p>
This version also supports Windows Phone “Mango” (SDK version 7.1).
</p>
        <p>
You can now reuse your business code across .NET, Silverlight, Windows Phone, and
these newly supported platforms as well. As demand grows to build applications that
must work on various mobile devices, the ability to directly reuse your business classes
is compelling!
</p>
        <p>
Version 4.2 also includes a number of enhancements to the existing CSLA 4 rule engine,
along with various other features and bug fixes. Check out the <a href="http://www.lhotka.net/Article.aspx?id=2607a4ef-e6a9-4801-aa0b-518c51267339">change
log</a> for more information.
</p>
        <p>
Our next step is to provide support for Silverlight 5 in CSLA 4 version 4.3, followed
by support for WinRT (Windows 8) in version 4.5. The expectation is that your existing
CSLA-based business classes will continue to work in Silverlight 5 and WinRT, providing
even more long-term reuse, maintainability, and cost-effective development.
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=7d3ffd97-bf3b-42cc-b701-357bc0b6b76d" />
      </body>
      <title>CSLA 4 version 4.2 released</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,7d3ffd97-bf3b-42cc-b701-357bc0b6b76d.aspx</guid>
      <link>http://www.lhotka.net/weblog/CSLA4Version42Released.aspx</link>
      <pubDate>Thu, 01 Dec 2011 20:30:06 GMT</pubDate>
      <description>&lt;p&gt;
CSLA 4 version 4.2 is now released and available for download.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.lhotka.net/cslanet/download.aspx"&gt;CSLA download page&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://nuget.org/List/Search?packageType=Packages&amp;amp;searchCategory=All+Categories&amp;amp;searchTerm=csla"&gt;NuGet&lt;/a&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The primary focus of this release is the introduction of support for mono (Mac, Linux),
monotouch (iPhone, iPad), and mono for Android. 
&lt;/p&gt;
&lt;p&gt;
This version also supports Windows Phone “Mango” (SDK version 7.1).
&lt;/p&gt;
&lt;p&gt;
You can now reuse your business code across .NET, Silverlight, Windows Phone, and
these newly supported platforms as well. As demand grows to build applications that
must work on various mobile devices, the ability to directly reuse your business classes
is compelling!
&lt;/p&gt;
&lt;p&gt;
Version 4.2 also includes a number of enhancements to the existing CSLA 4 rule engine,
along with various other features and bug fixes. Check out the &lt;a href="http://www.lhotka.net/Article.aspx?id=2607a4ef-e6a9-4801-aa0b-518c51267339"&gt;change
log&lt;/a&gt; for more information.
&lt;/p&gt;
&lt;p&gt;
Our next step is to provide support for Silverlight 5 in CSLA 4 version 4.3, followed
by support for WinRT (Windows 8) in version 4.5. The expectation is that your existing
CSLA-based business classes will continue to work in Silverlight 5 and WinRT, providing
even more long-term reuse, maintainability, and cost-effective development.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=7d3ffd97-bf3b-42cc-b701-357bc0b6b76d" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,7d3ffd97-bf3b-42cc-b701-357bc0b6b76d.aspx</comments>
      <category>CSLA .NET</category>
      <category>MonoDroid</category>
      <category>MonoTouch</category>
      <category>WP7</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=9ee9d2fb-9963-4111-9297-d22aa41ce0c9</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,9ee9d2fb-9963-4111-9297-d22aa41ce0c9.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,9ee9d2fb-9963-4111-9297-d22aa41ce0c9.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=9ee9d2fb-9963-4111-9297-d22aa41ce0c9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The Beta 1 release of CSLA 4 version 4.2 is now available for download on the <a href="http://www.lhotka.net/cslanet/download.aspx">CSLA
download page</a>.
</p>
        <p>
This version adds support for:
</p>
        <ul>
          <li>
Windows Phone 7.5 “Mango”</li>
          <li>
mono</li>
          <li>
mono for iOS (iPhone/iPad)</li>
          <li>
mono for Android</li>
        </ul>
        <p>
Of course it continues to support .NET 4 and Silverlight 4.
</p>
        <p>
This release also includes numerous bug fixes and small enhancements. In particular,
Jonny has done a lot of work to make the business rules subsystem more flexible and
powerful. See the <a href="http://www.lhotka.net/Article.aspx?id=2607a4ef-e6a9-4801-aa0b-518c51267339">change
log</a> for a list of all changes.
</p>
        <p>
At this point we have spent zero time or effort on the samples. Most samples will
continue to run when bound against the 4.2 assemblies, but some may encounter minor
issues. The samples in the download are still bound to the 4.1 assemblies. We will
be updating the samples during the 4.2 beta phase.
</p>
        <p>
Because of the organizational changes of mono from Novell to Xamarin, the 4.2 release
has taken a lot longer than any of us would have preferred. I am pleased that we’re
entering the beta phase, and can now move deliberately toward a release.
</p>
        <p>
If you are using 4.1, I <em>strongly recommend</em> that you test your code against
4.2. In part to help us identify any outstanding issues, and in part because the bug
fixes and enhancements to the rules subsystem may be very helpful to you.
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=9ee9d2fb-9963-4111-9297-d22aa41ce0c9" />
      </body>
      <title>CSLA 4 version 4.2 beta 1 release</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,9ee9d2fb-9963-4111-9297-d22aa41ce0c9.aspx</guid>
      <link>http://www.lhotka.net/weblog/CSLA4Version42Beta1Release.aspx</link>
      <pubDate>Tue, 04 Oct 2011 20:07:55 GMT</pubDate>
      <description>&lt;p&gt;
The Beta 1 release of CSLA 4 version 4.2 is now available for download on the &lt;a href="http://www.lhotka.net/cslanet/download.aspx"&gt;CSLA
download page&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
This version adds support for:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Windows Phone 7.5 “Mango”&lt;/li&gt;
&lt;li&gt;
mono&lt;/li&gt;
&lt;li&gt;
mono for iOS (iPhone/iPad)&lt;/li&gt;
&lt;li&gt;
mono for Android&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Of course it continues to support .NET 4 and Silverlight 4.
&lt;/p&gt;
&lt;p&gt;
This release also includes numerous bug fixes and small enhancements. In particular,
Jonny has done a lot of work to make the business rules subsystem more flexible and
powerful. See the &lt;a href="http://www.lhotka.net/Article.aspx?id=2607a4ef-e6a9-4801-aa0b-518c51267339"&gt;change
log&lt;/a&gt; for a list of all changes.
&lt;/p&gt;
&lt;p&gt;
At this point we have spent zero time or effort on the samples. Most samples will
continue to run when bound against the 4.2 assemblies, but some may encounter minor
issues. The samples in the download are still bound to the 4.1 assemblies. We will
be updating the samples during the 4.2 beta phase.
&lt;/p&gt;
&lt;p&gt;
Because of the organizational changes of mono from Novell to Xamarin, the 4.2 release
has taken a lot longer than any of us would have preferred. I am pleased that we’re
entering the beta phase, and can now move deliberately toward a release.
&lt;/p&gt;
&lt;p&gt;
If you are using 4.1, I &lt;em&gt;strongly recommend&lt;/em&gt; that you test your code against
4.2. In part to help us identify any outstanding issues, and in part because the bug
fixes and enhancements to the rules subsystem may be very helpful to you.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=9ee9d2fb-9963-4111-9297-d22aa41ce0c9" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,9ee9d2fb-9963-4111-9297-d22aa41ce0c9.aspx</comments>
      <category>CSLA .NET</category>
      <category>MonoDroid</category>
      <category>MonoTouch</category>
      <category>WP7</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=b4e62243-4995-499f-9d68-cfd7663c1992</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,b4e62243-4995-499f-9d68-cfd7663c1992.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,b4e62243-4995-499f-9d68-cfd7663c1992.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=b4e62243-4995-499f-9d68-cfd7663c1992</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://bxf.codeplex.com">Bxf</a> and CSLA .NET both include a TriggerAction
control. This control helps support the MVVM design pattern in WPF, Silverlight, and
WP7 applications.
</p>
        <p>
(Bxf is completely independent from CSLA – I donated TriggerAction from CSLA to the
Bxf project a while back though, so this type is available from either framework)
</p>
        <p>
The specific problem addressed by TriggerAction is the need to invoke a verb (method/command)
on your viewmodel object in response to any arbitrary UI event. One common UI event
is something like a button click event, though you can often use commanding in that
case. But there are numerous other UI events from many controls other than buttons,
and you might want to have one of those UI events cause the viewmodel to perform an
action.
</p>
        <p>
TriggerAction basically wires arbitrary UI events to methods on the current DataContext
(usually the viewmodel object).
</p>
        <blockquote>
          <p>
            <font face="Courier New">&lt;bxf:TriggerAction TargetControl="{Binding ElementName=MyControl}" 
<br />
                                          
TriggerEvent="MouseOver" 
<br />
                                          
DataContext="{Binding Source={StaticResource vm}}" 
<br />
                                          
MethodName="MyAction" /&gt;</font>
          </p>
        </blockquote>
        <p>
TriggerAction listens for the trigger event from the TargetControl. When it handles
that event, it invokes the specified method (MethodName) on its current DataContext
object. There’s nothing more to it.
</p>
        <p>
To get TriggerAction working you need two things: source and target.
</p>
        <p>
Source:
</p>
        <ol>
          <li>
TargetControl must be set</li>
          <li>
TriggerEvent may be set (default is “Click”)</li>
        </ol>
        <p>
Target:
</p>
        <ol>
          <li>
DataContext must be set (or inherited from the container)</li>
          <li>
MethodName must be set</li>
        </ol>
        <p>
Parameter (optional):
</p>
        <ol>
          <li>
MethodParameter may be set (to a value or binding expression)</li>
          <li>
RebindParameterDynamically may be set to true (to force rebinding of MethodParameter
to work around issues with certain control properties such as ListBox.SelectedItems)</li>
        </ol>
        <p>
The most common causes of failure when using TriggerAction are that the TargetControl
isn’t set right, or the DataContext isn’t set right, and of those two the most common
is that the DataContext isn’t what you think it is (that happens to me all the time).
</p>
        <p>
The method TriggerAction invokes on the DataContext object can accept either 0 or
2 parameters:
</p>
        <blockquote>
          <p>
public void MyAction()
</p>
        </blockquote>
        <p>
or
</p>
        <blockquote>
          <p>
public void MyAction(object sender, ExecuteEventArgs e)
</p>
        </blockquote>
        <p>
The ExecuteEventArgs class is also defined in Bxf and CSLA. If you use TriggerAction
from Bxf.Xaml, you <em>must</em> use ExecuteEventArgs from Bxf.Xaml. If you use TriggerAction
from Csla.Xaml, you <em>must</em> use ExecuteEventArgs from Csla.Xaml.
</p>
        <p>
If you are using Bxf and CSLA together it is important to understand that the ViewModel&lt;T&gt;
class from Csla.Xaml uses the Csla.Xaml.ExecuteEventArgs type. If you are using the
Bxf TriggerAction control, you’ll need to create your own viewmodel types from Csla.Xaml.ViewModelBase&lt;T&gt;
to accept the Bxf.Xaml.ExecuteEventArgs type.
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=b4e62243-4995-499f-9d68-cfd7663c1992" />
      </body>
      <title>Using the TriggerAction control</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,b4e62243-4995-499f-9d68-cfd7663c1992.aspx</guid>
      <link>http://www.lhotka.net/weblog/UsingTheTriggerActionControl.aspx</link>
      <pubDate>Fri, 18 Feb 2011 23:31:39 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://bxf.codeplex.com"&gt;Bxf&lt;/a&gt; and CSLA .NET both include a TriggerAction
control. This control helps support the MVVM design pattern in WPF, Silverlight, and
WP7 applications.
&lt;/p&gt;
&lt;p&gt;
(Bxf is completely independent from CSLA – I donated TriggerAction from CSLA to the
Bxf project a while back though, so this type is available from either framework)
&lt;/p&gt;
&lt;p&gt;
The specific problem addressed by TriggerAction is the need to invoke a verb (method/command)
on your viewmodel object in response to any arbitrary UI event. One common UI event
is something like a button click event, though you can often use commanding in that
case. But there are numerous other UI events from many controls other than buttons,
and you might want to have one of those UI events cause the viewmodel to perform an
action.
&lt;/p&gt;
&lt;p&gt;
TriggerAction basically wires arbitrary UI events to methods on the current DataContext
(usually the viewmodel object).
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;lt;bxf:TriggerAction TargetControl=&amp;quot;{Binding ElementName=MyControl}&amp;quot; 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
TriggerEvent=&amp;quot;MouseOver&amp;quot; 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
DataContext=&amp;quot;{Binding Source={StaticResource vm}}&amp;quot; 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
MethodName=&amp;quot;MyAction&amp;quot; /&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
TriggerAction listens for the trigger event from the TargetControl. When it handles
that event, it invokes the specified method (MethodName) on its current DataContext
object. There’s nothing more to it.
&lt;/p&gt;
&lt;p&gt;
To get TriggerAction working you need two things: source and target.
&lt;/p&gt;
&lt;p&gt;
Source:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
TargetControl must be set&lt;/li&gt;
&lt;li&gt;
TriggerEvent may be set (default is “Click”)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Target:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
DataContext must be set (or inherited from the container)&lt;/li&gt;
&lt;li&gt;
MethodName must be set&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Parameter (optional):
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
MethodParameter may be set (to a value or binding expression)&lt;/li&gt;
&lt;li&gt;
RebindParameterDynamically may be set to true (to force rebinding of MethodParameter
to work around issues with certain control properties such as ListBox.SelectedItems)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
The most common causes of failure when using TriggerAction are that the TargetControl
isn’t set right, or the DataContext isn’t set right, and of those two the most common
is that the DataContext isn’t what you think it is (that happens to me all the time).
&lt;/p&gt;
&lt;p&gt;
The method TriggerAction invokes on the DataContext object can accept either 0 or
2 parameters:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
public void MyAction()
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
or
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
public void MyAction(object sender, ExecuteEventArgs e)
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
The ExecuteEventArgs class is also defined in Bxf and CSLA. If you use TriggerAction
from Bxf.Xaml, you &lt;em&gt;must&lt;/em&gt; use ExecuteEventArgs from Bxf.Xaml. If you use TriggerAction
from Csla.Xaml, you &lt;em&gt;must&lt;/em&gt; use ExecuteEventArgs from Csla.Xaml.
&lt;/p&gt;
&lt;p&gt;
If you are using Bxf and CSLA together it is important to understand that the ViewModel&amp;lt;T&amp;gt;
class from Csla.Xaml uses the Csla.Xaml.ExecuteEventArgs type. If you are using the
Bxf TriggerAction control, you’ll need to create your own viewmodel types from Csla.Xaml.ViewModelBase&amp;lt;T&amp;gt;
to accept the Bxf.Xaml.ExecuteEventArgs type.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=b4e62243-4995-499f-9d68-cfd7663c1992" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,b4e62243-4995-499f-9d68-cfd7663c1992.aspx</comments>
      <category>Bxf</category>
      <category>CSLA .NET</category>
      <category>Silverlight</category>
      <category>WP7</category>
      <category>WPF</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=a5e273d3-6e8a-48ce-9adf-9f176cf34b2e</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,a5e273d3-6e8a-48ce-9adf-9f176cf34b2e.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,a5e273d3-6e8a-48ce-9adf-9f176cf34b2e.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=a5e273d3-6e8a-48ce-9adf-9f176cf34b2e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.lhotka.net/weblog/content/binary/Windows-Live-Writer/CSLA-4-version-4.1-release_110AA/csla_logo1_32_2.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="csla_logo1_32" border="0" alt="csla_logo1_32" align="right" src="http://www.lhotka.net/weblog/content/binary/Windows-Live-Writer/CSLA-4-version-4.1-release_110AA/csla_logo1_32_thumb.png" width="112" height="32" />
          </a>I
am pleased to announce the release of CSLA .NET version 4.1 with support for .NET,
Silverlight and Windows Phone 7 (WP7).
</p>
        <p>
You can download CSLA 4 version 4.1 at <a href="http://www.lhotka.net/cslanet/download.aspx">http://www.lhotka.net/cslanet/download.aspx</a></p>
        <p>
Although there are numerous new features in version 4.1, the primary focus of this
release is Windows Phone 7. With CSLA 4 version 4.1 you can now author business classes
that run unchanged across the entire .NET platform:
</p>
        <ul>
          <li>
Windows Phone 7</li>
          <li>
Silverlight</li>
          <li>
WPF</li>
          <li>
ASP.NET MVC</li>
          <li>
ASP.NET Web Forms</li>
          <li>
WCF services (SOAP and REST)</li>
          <li>
asmx web services</li>
          <li>
Windows Forms</li>
        </ul>
        <p>
The ability to reuse your business layer on .NET, Silverlight and WP7 is incredibly
powerful, enabling you to extend your application to users on Windows, the web, and
now the phone.
</p>
        <p>
You can learn how to use CSLA 4 to build scalable, flexible, and maintainable applications
through the <a href="http://store.lhotka.net/Default.aspx?tabid=1560&amp;CategoryID=4&amp;List=1&amp;SortField=DateCreated+DESC%2cProductName&amp;Level=1&amp;ProductID=22">Using
CSLA 4 ebook series</a>. This ebook series is currently a work in progress and will
be finished in the first half of 2011.
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=a5e273d3-6e8a-48ce-9adf-9f176cf34b2e" />
      </body>
      <title>CSLA 4 version 4.1 release</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,a5e273d3-6e8a-48ce-9adf-9f176cf34b2e.aspx</guid>
      <link>http://www.lhotka.net/weblog/CSLA4Version41Release.aspx</link>
      <pubDate>Wed, 19 Jan 2011 01:30:40 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.lhotka.net/weblog/content/binary/Windows-Live-Writer/CSLA-4-version-4.1-release_110AA/csla_logo1_32_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="csla_logo1_32" border="0" alt="csla_logo1_32" align="right" src="http://www.lhotka.net/weblog/content/binary/Windows-Live-Writer/CSLA-4-version-4.1-release_110AA/csla_logo1_32_thumb.png" width="112" height="32" /&gt;&lt;/a&gt;I
am pleased to announce the release of CSLA .NET version 4.1 with support for .NET,
Silverlight and Windows Phone 7 (WP7).
&lt;/p&gt;
&lt;p&gt;
You can download CSLA 4 version 4.1 at &lt;a href="http://www.lhotka.net/cslanet/download.aspx"&gt;http://www.lhotka.net/cslanet/download.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Although there are numerous new features in version 4.1, the primary focus of this
release is Windows Phone 7. With CSLA 4 version 4.1 you can now author business classes
that run unchanged across the entire .NET platform:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Windows Phone 7&lt;/li&gt;
&lt;li&gt;
Silverlight&lt;/li&gt;
&lt;li&gt;
WPF&lt;/li&gt;
&lt;li&gt;
ASP.NET MVC&lt;/li&gt;
&lt;li&gt;
ASP.NET Web Forms&lt;/li&gt;
&lt;li&gt;
WCF services (SOAP and REST)&lt;/li&gt;
&lt;li&gt;
asmx web services&lt;/li&gt;
&lt;li&gt;
Windows Forms&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The ability to reuse your business layer on .NET, Silverlight and WP7 is incredibly
powerful, enabling you to extend your application to users on Windows, the web, and
now the phone.
&lt;/p&gt;
&lt;p&gt;
You can learn how to use CSLA 4 to build scalable, flexible, and maintainable applications
through the &lt;a href="http://store.lhotka.net/Default.aspx?tabid=1560&amp;amp;CategoryID=4&amp;amp;List=1&amp;amp;SortField=DateCreated+DESC%2cProductName&amp;amp;Level=1&amp;amp;ProductID=22"&gt;Using
CSLA 4 ebook series&lt;/a&gt;. This ebook series is currently a work in progress and will
be finished in the first half of 2011.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=a5e273d3-6e8a-48ce-9adf-9f176cf34b2e" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,a5e273d3-6e8a-48ce-9adf-9f176cf34b2e.aspx</comments>
      <category>CSLA .NET</category>
      <category>Windows Phone</category>
      <category>WP7</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=1dc6dfd5-9814-45be-8535-1eb5c604ef87</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,1dc6dfd5-9814-45be-8535-1eb5c604ef87.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,1dc6dfd5-9814-45be-8535-1eb5c604ef87.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=1dc6dfd5-9814-45be-8535-1eb5c604ef87</wfw:commentRss>
      <slash:comments>13</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I have a WP7 device: the <a href="http://htc.t-mobile.com/hd7">HTC HD7</a>.
</p>
        <p>
I’ve had it for a while now (since launch date in the US), but wanted to wait a little
before blogging about it to really get a good feel for what I do and don’t like.
</p>
        <p>
Also, by way of disclaimer, I’m coming to WP7 from Windows Mobile 6.5, so I can’t
compare and contrast to other modern phones like iPhone or Droid.
</p>
        <p>
In short, I really like Windows Phone 7, but there are better devices than the HD7
(unless you are on T-Mobile).
</p>
        <p>
Coming from an older phone like I did, the new WP7 phone OS is remarkable. Wonderful.
Truly a joy to use! And the HD7 has enough cpu, graphics and memory to make it fast
and very enjoyable.
</p>
        <p>
My only real issue is that the HD7 device’s camera button is so hard to push that
it is almost impossible to take a good picture, which makes the camera nearly useless.
That’s not the fault of WP7, that’s the fault of some HTC engineer with overdeveloped
finger muscles or something…
</p>
        <p>
The WP7 user experience is smooth and intuitive. It is loosely based on the Zune HD
user experience, but Microsoft clearly learned a lot from the Zune HD about what did
and didn’t work, and the phone’s user experience is consistently pleasant and easy.
</p>
        <p>
One of the most touted features of the phone are the the “live tiles” on the home
page. And they <em>are</em> nice. I’ve got mine customized to show phone, people,
email and weather on the very first page, with messages and a few other commonly used
items further down. There are a few other apps I’ve used now and then that I haven’t
put on the home page, because it is just as easy to get to them using the voice navigation.
</p>
        <p>
The cool thing though, is that the weather status and my wife’s Facebook status are
shown on that front page through the live tiles, so the most important information
is always right there <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.lhotka.net/weblog/content/binary/Windows-Live-Writer/Impressions-of-Windows-Phone-7_DE18/wlEmoticon-smile_2.png" /></p>
        <p>
I’ve downloaded some free and commercial apps from the Marketplace. That’s a seamless
experience, and includes seamless updates of the apps as they become available. My
only quibble with the Marketplace is that it doesn’t seem to filter between apps,
music, videos, etc. So sometimes searching for an app can be tedious because it seems
that a lot of songs use the same words in their titles, so it can take some time to
sift through the songs to find the app you want…
</p>
        <p>
In terms of apps, there are only three apps I am missing at this point:
</p>
        <ol>
          <li>
Bing (I want the voice-prompted navigation that comes with the Bing app – the built-in
Maps app is ok for maps, but horrible for actual driving navigation)</li>
          <li>
TripIt (the mobile web access is OK, but a smart client experience would be a lot
better)</li>
          <li>
EverNote (here the smart client (with offline caching of notes) is really important,
and the web interface is a poor substitute – enough so that I’m considering migrating
back to OneNote where I can share everything on my SkyDrive)</li>
        </ol>
        <p>
In terms of phone features, the only thing missing is tethering and/or using the phone
as a wifi hub. My 6.5 phone did both of those things and I used them constantly, so
losing this ability is a serious drawback. If I wasn’t such a Microsoft loyalist the
lack of tethering would probably have prevented me from getting this phone – but as
it is I’ve chosen to live with the pain.
</p>
        <p>
On the other hand, the way WP7’s “hubs” integrate together is wonderful. The People
and Pictures hubs, for example, automatically pull data from Facebook, Live, Outlook
and so forth – automatically bringing together nearly all the information I care to
see about everyone I interact with. This type of automatic data integration is amazingly
useful, and directly increases my productivity from a business and inter-personal
perspective.
</p>
        <p>
And of course the fact that the phone is a Zune device (and so can use <a href="http://www.lhotka.net/weblog/ZunenetRocks.aspx">my
beloved zune.net subscription</a>) is just icing on the cake. While I still carry
my Zune HD when traveling because it has enough memory to hold all my songs, I do
have a couple Smart DJ playlists synced to the phone for times when I’m sitting somewhere
and just need a little music. I always have the phone, but don’t always have the Zune
HD.
</p>
        <p>
Finally, there’s Netflix. The high-res screen on the phone makes watching video content
reasonably enjoyable. Not comparable to a TV or even laptop screen of course, but
certainly workable. So again, when I’m sitting somewhere and feel like a little diversion
there’s always Netflix content available.
</p>
        <p>
Would I recommend that someone get a WP7 device? Absolutely – WP7 is a joy to use!
</p>
        <p>
Would I recommend the HD7? Probably not, but if you are on T-Mobile you are kind of
stuck… And really, other than the stupid camera button, it is a perfectly decent phone
(I really like the large screen and overall form factor).
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=1dc6dfd5-9814-45be-8535-1eb5c604ef87" />
      </body>
      <title>Impressions of Windows Phone 7</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,1dc6dfd5-9814-45be-8535-1eb5c604ef87.aspx</guid>
      <link>http://www.lhotka.net/weblog/ImpressionsOfWindowsPhone7.aspx</link>
      <pubDate>Sat, 11 Dec 2010 22:17:17 GMT</pubDate>
      <description>&lt;p&gt;
I have a WP7 device: the &lt;a href="http://htc.t-mobile.com/hd7"&gt;HTC HD7&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
I’ve had it for a while now (since launch date in the US), but wanted to wait a little
before blogging about it to really get a good feel for what I do and don’t like.
&lt;/p&gt;
&lt;p&gt;
Also, by way of disclaimer, I’m coming to WP7 from Windows Mobile 6.5, so I can’t
compare and contrast to other modern phones like iPhone or Droid.
&lt;/p&gt;
&lt;p&gt;
In short, I really like Windows Phone 7, but there are better devices than the HD7
(unless you are on T-Mobile).
&lt;/p&gt;
&lt;p&gt;
Coming from an older phone like I did, the new WP7 phone OS is remarkable. Wonderful.
Truly a joy to use! And the HD7 has enough cpu, graphics and memory to make it fast
and very enjoyable.
&lt;/p&gt;
&lt;p&gt;
My only real issue is that the HD7 device’s camera button is so hard to push that
it is almost impossible to take a good picture, which makes the camera nearly useless.
That’s not the fault of WP7, that’s the fault of some HTC engineer with overdeveloped
finger muscles or something…
&lt;/p&gt;
&lt;p&gt;
The WP7 user experience is smooth and intuitive. It is loosely based on the Zune HD
user experience, but Microsoft clearly learned a lot from the Zune HD about what did
and didn’t work, and the phone’s user experience is consistently pleasant and easy.
&lt;/p&gt;
&lt;p&gt;
One of the most touted features of the phone are the the “live tiles” on the home
page. And they &lt;em&gt;are&lt;/em&gt; nice. I’ve got mine customized to show phone, people,
email and weather on the very first page, with messages and a few other commonly used
items further down. There are a few other apps I’ve used now and then that I haven’t
put on the home page, because it is just as easy to get to them using the voice navigation.
&lt;/p&gt;
&lt;p&gt;
The cool thing though, is that the weather status and my wife’s Facebook status are
shown on that front page through the live tiles, so the most important information
is always right there &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.lhotka.net/weblog/content/binary/Windows-Live-Writer/Impressions-of-Windows-Phone-7_DE18/wlEmoticon-smile_2.png" /&gt;
&lt;/p&gt;
&lt;p&gt;
I’ve downloaded some free and commercial apps from the Marketplace. That’s a seamless
experience, and includes seamless updates of the apps as they become available. My
only quibble with the Marketplace is that it doesn’t seem to filter between apps,
music, videos, etc. So sometimes searching for an app can be tedious because it seems
that a lot of songs use the same words in their titles, so it can take some time to
sift through the songs to find the app you want…
&lt;/p&gt;
&lt;p&gt;
In terms of apps, there are only three apps I am missing at this point:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Bing (I want the voice-prompted navigation that comes with the Bing app – the built-in
Maps app is ok for maps, but horrible for actual driving navigation)&lt;/li&gt;
&lt;li&gt;
TripIt (the mobile web access is OK, but a smart client experience would be a lot
better)&lt;/li&gt;
&lt;li&gt;
EverNote (here the smart client (with offline caching of notes) is really important,
and the web interface is a poor substitute – enough so that I’m considering migrating
back to OneNote where I can share everything on my SkyDrive)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
In terms of phone features, the only thing missing is tethering and/or using the phone
as a wifi hub. My 6.5 phone did both of those things and I used them constantly, so
losing this ability is a serious drawback. If I wasn’t such a Microsoft loyalist the
lack of tethering would probably have prevented me from getting this phone – but as
it is I’ve chosen to live with the pain.
&lt;/p&gt;
&lt;p&gt;
On the other hand, the way WP7’s “hubs” integrate together is wonderful. The People
and Pictures hubs, for example, automatically pull data from Facebook, Live, Outlook
and so forth – automatically bringing together nearly all the information I care to
see about everyone I interact with. This type of automatic data integration is amazingly
useful, and directly increases my productivity from a business and inter-personal
perspective.
&lt;/p&gt;
&lt;p&gt;
And of course the fact that the phone is a Zune device (and so can use &lt;a href="http://www.lhotka.net/weblog/ZunenetRocks.aspx"&gt;my
beloved zune.net subscription&lt;/a&gt;) is just icing on the cake. While I still carry
my Zune HD when traveling because it has enough memory to hold all my songs, I do
have a couple Smart DJ playlists synced to the phone for times when I’m sitting somewhere
and just need a little music. I always have the phone, but don’t always have the Zune
HD.
&lt;/p&gt;
&lt;p&gt;
Finally, there’s Netflix. The high-res screen on the phone makes watching video content
reasonably enjoyable. Not comparable to a TV or even laptop screen of course, but
certainly workable. So again, when I’m sitting somewhere and feel like a little diversion
there’s always Netflix content available.
&lt;/p&gt;
&lt;p&gt;
Would I recommend that someone get a WP7 device? Absolutely – WP7 is a joy to use!
&lt;/p&gt;
&lt;p&gt;
Would I recommend the HD7? Probably not, but if you are on T-Mobile you are kind of
stuck… And really, other than the stupid camera button, it is a perfectly decent phone
(I really like the large screen and overall form factor).
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=1dc6dfd5-9814-45be-8535-1eb5c604ef87" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,1dc6dfd5-9814-45be-8535-1eb5c604ef87.aspx</comments>
      <category>Windows Phone</category>
      <category>WP7</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=8abb2a94-3208-4710-8fd4-4c9b4f7bcd03</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,8abb2a94-3208-4710-8fd4-4c9b4f7bcd03.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,8abb2a94-3208-4710-8fd4-4c9b4f7bcd03.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=8abb2a94-3208-4710-8fd4-4c9b4f7bcd03</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just put CSLA 4 version 4.1 beta 2 online for download. This is probably the last
beta release of version 4.1, so please download and try it – I appreciate any help
I can get in testing these releases.
</p>
        <p>
          <a href="http://www.lhotka.net/cslanet/download.aspx">http://www.lhotka.net/cslanet/download.aspx</a>
        </p>
        <p>
The primary changes in beta 2 include:
</p>
        <ol>
          <li>
Added a new Csla.Xaml.PropertyInfo control for WP7, WPF and Silverlight that is like
PropertyStatus but totally non-visual. See the Samples\NET\cs\SimpleNTier solution’s
WP7 UI project for an example of how this works</li>
          <li>
Created a copy of the DataAnnotations functionality for WP7; this is a nice concept
that Microsoft didn’t put into WP7, so I ported the parts of System.ComponentModel.DataAnnotations
required by CSLA .NET, so if you have classes using DataAnnotations attributes in
.NET or Silverlight, that code will now work in WP7 as well</li>
          <li>
Laying the groundwork for a NuGet installer when 4.1 is released, so people will be
able to download and install CSLA 4 via NuGet (thanks Jaans!)</li>
          <li>
Laying the groundwork for a vsix installer for Visual Studio templates, so when 4.1
is released we can add this to the Visual Studio gallery (thanks Jonny!)</li>
        </ol>
        <p>
I’ve also put an updated draft of <em>Using CSLA 4: Creating Business Objects</em> online
at <a title="http://download.lhotka.net/Default.aspx?t=UsingCsla4" href="http://download.lhotka.net/Default.aspx?t=UsingCsla4">http://download.lhotka.net/Default.aspx?t=UsingCsla4</a></p>
        <p>
This ebook is incomplete, but I’m providing work-in-progress drops of the book as
I work on it. People who’ve purchased the entire <em>Using CSLA 4</em> ebook series
(from <a href="http://store.lhotka.net/">http://store.lhotka.net/</a>) can download
this pre-draft content. This new drop includes a lot more content than the previous
drop – including the entire sections on declaring and implementing properties and
methods, and a good start on the metastate fields/methods available from BusinessBase
and other base classes.
</p>
        <p>
Finally, I <em>also</em> put a top level type diagram online that is available to
anyone who has purchased either the <em>Using CSLA 4: CSLA .NET Overview</em> ebook
or the entire ebook series. It is available from the same download.lhotka.net web
page.
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=8abb2a94-3208-4710-8fd4-4c9b4f7bcd03" />
      </body>
      <title>CSLA 4 version 4.1 beta 2 available</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,8abb2a94-3208-4710-8fd4-4c9b4f7bcd03.aspx</guid>
      <link>http://www.lhotka.net/weblog/CSLA4Version41Beta2Available.aspx</link>
      <pubDate>Fri, 10 Dec 2010 21:25:51 GMT</pubDate>
      <description>&lt;p&gt;
I just put CSLA 4 version 4.1 beta 2 online for download. This is probably the last
beta release of version 4.1, so please download and try it – I appreciate any help
I can get in testing these releases.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.lhotka.net/cslanet/download.aspx"&gt;http://www.lhotka.net/cslanet/download.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The primary changes in beta 2 include:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Added a new Csla.Xaml.PropertyInfo control for WP7, WPF and Silverlight that is like
PropertyStatus but totally non-visual. See the Samples\NET\cs\SimpleNTier solution’s
WP7 UI project for an example of how this works&lt;/li&gt;
&lt;li&gt;
Created a copy of the DataAnnotations functionality for WP7; this is a nice concept
that Microsoft didn’t put into WP7, so I ported the parts of System.ComponentModel.DataAnnotations
required by CSLA .NET, so if you have classes using DataAnnotations attributes in
.NET or Silverlight, that code will now work in WP7 as well&lt;/li&gt;
&lt;li&gt;
Laying the groundwork for a NuGet installer when 4.1 is released, so people will be
able to download and install CSLA 4 via NuGet (thanks Jaans!)&lt;/li&gt;
&lt;li&gt;
Laying the groundwork for a vsix installer for Visual Studio templates, so when 4.1
is released we can add this to the Visual Studio gallery (thanks Jonny!)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
I’ve also put an updated draft of &lt;em&gt;Using CSLA 4: Creating Business Objects&lt;/em&gt; online
at &lt;a title="http://download.lhotka.net/Default.aspx?t=UsingCsla4" href="http://download.lhotka.net/Default.aspx?t=UsingCsla4"&gt;http://download.lhotka.net/Default.aspx?t=UsingCsla4&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This ebook is incomplete, but I’m providing work-in-progress drops of the book as
I work on it. People who’ve purchased the entire &lt;em&gt;Using CSLA 4&lt;/em&gt; ebook series
(from &lt;a href="http://store.lhotka.net/"&gt;http://store.lhotka.net/&lt;/a&gt;) can download
this pre-draft content. This new drop includes a lot more content than the previous
drop – including the entire sections on declaring and implementing properties and
methods, and a good start on the metastate fields/methods available from BusinessBase
and other base classes.
&lt;/p&gt;
&lt;p&gt;
Finally, I &lt;em&gt;also&lt;/em&gt; put a top level type diagram online that is available to
anyone who has purchased either the &lt;em&gt;Using CSLA 4: CSLA .NET Overview&lt;/em&gt; ebook
or the entire ebook series. It is available from the same download.lhotka.net web
page.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=8abb2a94-3208-4710-8fd4-4c9b4f7bcd03" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,8abb2a94-3208-4710-8fd4-4c9b4f7bcd03.aspx</comments>
      <category>Books</category>
      <category>CSLA .NET</category>
      <category>WP7</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=fac2ec52-6b7b-4ead-b08e-06fda3c2d413</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,fac2ec52-6b7b-4ead-b08e-06fda3c2d413.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,fac2ec52-6b7b-4ead-b08e-06fda3c2d413.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=fac2ec52-6b7b-4ead-b08e-06fda3c2d413</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Apparently music subscription services are struggling to gain traction
</p>
        <p>
          <a title="http://www.zdnet.com/blog/bott/more-itunes-alternatives-can-a-subscription-music-service-ever-succeed/2770?tag=nl.e539" href="http://www.zdnet.com/blog/bott/more-itunes-alternatives-can-a-subscription-music-service-ever-succeed/2770?tag=nl.e539">http://www.zdnet.com/blog/bott/more-itunes-alternatives-can-a-subscription-music-service-ever-succeed/2770?tag=nl.e539</a>
        </p>
        <p>
I can understand that, because I was an anti-digital-music person for a long time.
My thought was that I had no reason to pay for a music subscription when radio was
free.
</p>
        <p>
Of course radio isn’t free, and over time (as I’ve gotten older?) I find the DJ dialog
and commercials on radio to be increasingly annoying. To the point that radio costs
way too much – there’s less music than drivel and I just can’t take it.
</p>
        <p>
The other alternative is to buy CDs, rip them and create your own collection. That
way you “own” the music. And certainly compared to buying digital MP3s it is better
to buy the CD. I’ve “purchased” digital music several times over the years, and several
times I’ve had the originating company go out of business and so the DRM locked me
out of my “purchase”. And I’ve had hard drive failures, and so lost my “purchase”.
</p>
        <p>
Sure, a CD can get scratched, but if you buy a CD, rip it and then only use the digital
copy, you always have the pristine master source, even in the case of hard drive failure.
</p>
        <p>
However, a CD costs around $12, and zune.net costs $15/mo. So I can buy around 12-13
CDs each year, or I can spend the same money to have access to a few hundred thousand
songs. Even over my entire lifetime, at 12 CDs per year I’ll never get a collection
the size I have access to via zune.net.
</p>
        <p>
So radio is out (because it just sucks), and buying CDs isn’t really cost-effective.
</p>
        <p>
But there are streaming services like pandora and last.fm and others. They are free,
or at least cheaper than zune.net, so why not use them?
</p>
        <p>
I used to use pandora, but it started getting pretty flaky with its song selections.
Lately I’ve been using last.fm because they came with my xbox gold subscription (and
zune.net didn’t until recently). I like last.fm, they do a good job and they stream
to my xbox and my Windows Phone 7.
</p>
        <p>
However, streaming services don’t work when I’m on an airplane, in a hotel (you never
get good bandwidth in a hotel), in northern Minnesota camping or fishing, etc. Basically
they are for city people who don’t travel, not for people like me who travel and/or
spend a lot of time in rural areas.
</p>
        <p>
So how does zune.net differ from things like radio, CDs or streaming services?
</p>
        <p>
For about $15/mo you get this:
</p>
        <ol>
          <li>
Access to several hundred thousand songs via streaming</li>
          <li>
10 free purchases (DRM free) each month (basically I get to “buy” for free almost
an entire album every month)</li>
          <li>
Smart DJ, which does what pandora and last.fm do: creating a themed “radio station”
drawing music from my personal library plus the entire zune library (those hundreds
of thousands of songs)</li>
          <li>
The ability to sync Smart DJ playlists to my zune device or Windows Phone – so that
music is available when I’m entirely offline</li>
        </ol>
        <p>
So think about this. For just over the price of a CD I get (more or less) a CD’s worth
of music <em>I actually own</em> each month. I figure that’s $10 of the $15 covered
each month right there.
</p>
        <p>
But more importantly, for my other $5/mo I get unlimited streaming just like pandora
or last.fm – <em>and in a form that works when I’m entirely offline</em> like on an
airplane or sitting on a lakeshore in far northern Minnesota where there’s no cell
coverage, much less Internet.
</p>
        <p>
(it is this pure offline feature that even iTunes doesn’t have – and why zune.net
is (for me) the ultimate solution)
</p>
        <p>
In the end, yes, I understand the arguments against paying a subscription fee for
music. But when compared to the alternatives, it has become clear to me that none
of those arguments really hold water. The zune.net service is pretty much the perfect
way to consume music.
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=fac2ec52-6b7b-4ead-b08e-06fda3c2d413" />
      </body>
      <title>Zune.net rocks</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,fac2ec52-6b7b-4ead-b08e-06fda3c2d413.aspx</guid>
      <link>http://www.lhotka.net/weblog/ZunenetRocks.aspx</link>
      <pubDate>Fri, 10 Dec 2010 16:59:08 GMT</pubDate>
      <description>&lt;p&gt;
Apparently music subscription services are struggling to gain traction
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.zdnet.com/blog/bott/more-itunes-alternatives-can-a-subscription-music-service-ever-succeed/2770?tag=nl.e539" href="http://www.zdnet.com/blog/bott/more-itunes-alternatives-can-a-subscription-music-service-ever-succeed/2770?tag=nl.e539"&gt;http://www.zdnet.com/blog/bott/more-itunes-alternatives-can-a-subscription-music-service-ever-succeed/2770?tag=nl.e539&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I can understand that, because I was an anti-digital-music person for a long time.
My thought was that I had no reason to pay for a music subscription when radio was
free.
&lt;/p&gt;
&lt;p&gt;
Of course radio isn’t free, and over time (as I’ve gotten older?) I find the DJ dialog
and commercials on radio to be increasingly annoying. To the point that radio costs
way too much – there’s less music than drivel and I just can’t take it.
&lt;/p&gt;
&lt;p&gt;
The other alternative is to buy CDs, rip them and create your own collection. That
way you “own” the music. And certainly compared to buying digital MP3s it is better
to buy the CD. I’ve “purchased” digital music several times over the years, and several
times I’ve had the originating company go out of business and so the DRM locked me
out of my “purchase”. And I’ve had hard drive failures, and so lost my “purchase”.
&lt;/p&gt;
&lt;p&gt;
Sure, a CD can get scratched, but if you buy a CD, rip it and then only use the digital
copy, you always have the pristine master source, even in the case of hard drive failure.
&lt;/p&gt;
&lt;p&gt;
However, a CD costs around $12, and zune.net costs $15/mo. So I can buy around 12-13
CDs each year, or I can spend the same money to have access to a few hundred thousand
songs. Even over my entire lifetime, at 12 CDs per year I’ll never get a collection
the size I have access to via zune.net.
&lt;/p&gt;
&lt;p&gt;
So radio is out (because it just sucks), and buying CDs isn’t really cost-effective.
&lt;/p&gt;
&lt;p&gt;
But there are streaming services like pandora and last.fm and others. They are free,
or at least cheaper than zune.net, so why not use them?
&lt;/p&gt;
&lt;p&gt;
I used to use pandora, but it started getting pretty flaky with its song selections.
Lately I’ve been using last.fm because they came with my xbox gold subscription (and
zune.net didn’t until recently). I like last.fm, they do a good job and they stream
to my xbox and my Windows Phone 7.
&lt;/p&gt;
&lt;p&gt;
However, streaming services don’t work when I’m on an airplane, in a hotel (you never
get good bandwidth in a hotel), in northern Minnesota camping or fishing, etc. Basically
they are for city people who don’t travel, not for people like me who travel and/or
spend a lot of time in rural areas.
&lt;/p&gt;
&lt;p&gt;
So how does zune.net differ from things like radio, CDs or streaming services?
&lt;/p&gt;
&lt;p&gt;
For about $15/mo you get this:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Access to several hundred thousand songs via streaming&lt;/li&gt;
&lt;li&gt;
10 free purchases (DRM free) each month (basically I get to “buy” for free almost
an entire album every month)&lt;/li&gt;
&lt;li&gt;
Smart DJ, which does what pandora and last.fm do: creating a themed “radio station”
drawing music from my personal library plus the entire zune library (those hundreds
of thousands of songs)&lt;/li&gt;
&lt;li&gt;
The ability to sync Smart DJ playlists to my zune device or Windows Phone – so that
music is available when I’m entirely offline&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
So think about this. For just over the price of a CD I get (more or less) a CD’s worth
of music &lt;em&gt;I actually own&lt;/em&gt; each month. I figure that’s $10 of the $15 covered
each month right there.
&lt;/p&gt;
&lt;p&gt;
But more importantly, for my other $5/mo I get unlimited streaming just like pandora
or last.fm – &lt;em&gt;and in a form that works when I’m entirely offline&lt;/em&gt; like on an
airplane or sitting on a lakeshore in far northern Minnesota where there’s no cell
coverage, much less Internet.
&lt;/p&gt;
&lt;p&gt;
(it is this pure offline feature that even iTunes doesn’t have – and why zune.net
is (for me) the ultimate solution)
&lt;/p&gt;
&lt;p&gt;
In the end, yes, I understand the arguments against paying a subscription fee for
music. But when compared to the alternatives, it has become clear to me that none
of those arguments really hold water. The zune.net service is pretty much the perfect
way to consume music.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=fac2ec52-6b7b-4ead-b08e-06fda3c2d413" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,fac2ec52-6b7b-4ead-b08e-06fda3c2d413.aspx</comments>
      <category>Windows Phone</category>
      <category>WP7</category>
      <category>Xbox</category>
      <category>Zune</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=8d3d88b6-ccb6-47c1-8a08-b24c63f87db8</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,8d3d88b6-ccb6-47c1-8a08-b24c63f87db8.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,8d3d88b6-ccb6-47c1-8a08-b24c63f87db8.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=8d3d88b6-ccb6-47c1-8a08-b24c63f87db8</wfw:commentRss>
      <slash:comments>18</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Over the past few months there’s been this ongoing buzz about whether WPF is dead,
or whether Silverlight is really mature – in short, people trying to figure out whether
to use WPF or Silverlight or both.
</p>
        <p>
Having worked with WPF since it came out, and with Silverlight 2.0 and higher since
before it came out, I thought I’d share my thoughts. 
</p>
        <p>
This post flows from my experiences with CSLA .NET, <a href="http://unitdriven.codeplex.com">UnitDriven</a> and <a href="http://bxf.codeplex.com">Bxf</a> –
three frameworks I’ve created or been directly involved with, that run on WPF (.NET),
Silverlight and now Windows Phone 7 (WP7). With CSLA in particular, I’ve been maintaining
this one codebase on .NET since 2001, and to my knowledge it was the first major framework
ported to Silverlight from .NET. Also, as I write about this, I’m thinking about how
I build XAML-based apps, using the MVVM pattern as discussed in the <a href="http://store.lhotka.net/">CSLA
4 MVVM video series</a> and some of my previous blog posts.
</p>
        <p>
The way I use SL and WPF there is no meaningful difference between them. My MVVM demos,
for example, are mostly the same across WPF, SL and even WP7.
</p>
        <p>
The business layer, created with CSLA 4, is typically identical across all three platforms.
That’s one of the big benefits of CSLA 4, in that you can write your business, validation
and authorization rules once and use them across multiple interface technologies.
And with the data portal managing any interactions with the application server, you
are shielded from any complexity or differences you’d normally encounter there as
well.
</p>
        <p>
The way I use MVVM, with a strong focus on having zero code-behind any XAML, means
that nearly all interface control logic (any actual code in the presentation layer)
is also reused. Any presentation layer code is either in the viewmodel, in value converters,
in attached properties or custom controls. This reuse isn’t always 100%, especially
when you get to WP7, because the tiny phone screen often forces a different user workflow
than if you have a full-size screen like in WPF or SL. But between WPF and SL, the
viewmodel code is typically the same, as is most value converter and attached property
code. Some custom controls may be different – again especially on the phone.
</p>
        <p>
This commonality of viewmodel code is thanks to the use of Bxf. But any decent MVVM
framework will offer the same kind of abstractions, so your application code is never
directly interacting with the UI shell or any platform-specific constructs or types.
</p>
        <p>
With WPF and SL there are places of direct difference however, depending on how you
structure your user experience.
</p>
        <ul>
          <li>
WPF doesn't have a URL based navigation scheme or a navigation framework, so you have
to come up with your own UI framework to manage any sort of navigation model. I usually
do this by having exactly one Window, and that hosts all my content in the form of
UserControl objects, but you could use many Window objects. 
</li>
          <li>
SL does have an <em>optional</em> URL based navigation scheme and framework, which
is nice - makes things simpler. However, you can use the same "one Window that
hosts UserControl objects" model just like WPF (hence my samples are the same).
What you can't do is have a lot of Window objects (which to me is no loss, since the
multiple SDI interface went out of style in 1997). 
</li>
          <li>
WP7 also has a URL based navigation scheme and framework. I still use the hosted UserControl
idea too, and that makes a lot of the code common with SL and WPF. 
</li>
        </ul>
        <p>
I think the thing to understand, is that while SL runs in the browser, it is a smart
client technology. It is far more like WPF than like HTML. In fact it is virtually
identical to WPF in most ways that matter for a business app.
</p>
        <p>
And the key to my success in this area, is that all my business “forms” or “pages”
are always a subclass of UserControl. So every bit of meaningful UI content (forms/pages)
are UserControl objects that can be hosted by the UI shell. This means that I can
usually change out the shell, or even have different shell styles (URL navigation
vs Outlook-style navigation for example) and this has no effect on the actual business
UI elements. Yes, the shell code may be different, but the business code is unchanged.
</p>
        <p>
This is one powerful technique that makes it quite realistic to create your app in
Silverlight, even using the navigation framework, and then port it to WPF if you need
to in the future. You might have to write some new WPF shell code, but your UserControl
XAML, your viewmodels, your business domain objects, your data access code and your
database remain unchanged.
</p>
        <p>
Beyond UI and navigation differences, there are some technical differences between
WPF and SL, including:
</p>
        <ul>
          <li>
Some minor, niggling differences in XAML - this is the sort of thing I personally
want fixed now that the WPF and SL product teams have merged - this niggling differences
are stupid and are nothing but an annoyance – why is the binding Mode default different
between WPF and SL (for example)??</li>
          <li>
SL <em>requires</em> that all server interactions be async, WPF allows sync or async
- I tend to use async in both places, because the user experience is so superior with
async, I can't figure out why I'd want to punish my end users just because they are
using WPF 
</li>
          <li>
SL has the navigation framework, WPF doesn't 
</li>
          <li>
WPF has an application model that includes navigation, but it is hopelessly broken
- it tried to emulate the worst features of the web without any of the benefits -
to me this is the "ActiveX Documents" of WPF 
</li>
          <li>
WPF apps can use all of .NET, SL uses a subset - but the SL subset is everything I've
needed to build typical business apps 
</li>
          <li>
WPF apps can interact with the full client workstation hardware (odd peripherals,
the full hard drive, etc) 
</li>
          <li>
WPF apps are (typically) deployed via ClickOnce, SL apps are deployed transparently
via the browser - so WPF is slightly more "in your face" for your users,
but the difference should be pretty incidental 
</li>
          <li>
WPF apps can tap into all of DirectX, though SL now has hardware acceleration for
some graphics scenarios too - so this difference is probably less meaningful for most
business apps than for games 
</li>
          <li>
SL doesn't have the complexity of the legacy "crap" that comes with WPF
(DataSet, IBindingList, etc) so it is a simpler, easier and more consistent programming
environment 
</li>
          <li>
SL runs on Windows, in the browser, on the Mac, in the browser on the Mac, and in
WP7; WPF of course runs only on Windows 
</li>
        </ul>
        <p>
Again however, I come back to the same thing - I always use as little of any platform/technology
as necessary to get the job done. SL is a subset, so if I can get the job done with
SL then that's the best thing to do (I can always upsize to WPF later if necessary).
If I can't get the job done with SL, I'll use WPF.
</p>
        <p>
In my mind it is a superset/subset decision - always default to the subset that meets
your needs.
</p>
        <p>
As long as you understand both technologies, you can architect your UI so transitioning
from SL to WPF is relatively easy (the other way isn't always so easy - because your
WPF code might use superset technologies).
</p>
        <p>
In conclusion, my recommendation has been (since SL3 at least) to design your app
for SL, and fall back to WPF only if SL can’t meet your needs. The most common scenarios
for business apps to fall back to WPF are:
</p>
        <ul>
          <li>
Your app is only occasionally connected, and is mostly offline, so you use a client-side
database like SQL Express or SQL CE</li>
          <li>
Your app needs to interact with client-side peripherals</li>
          <li>
Your app needs full access to the client-side hard drive</li>
        </ul>
        <p>
I don’t think this is a “WPF vs SL” thing at all. I think it is a sliding scale, where
you default to SL, and slide up to WPF if necessary. All the angst is unnecessary.
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=8d3d88b6-ccb6-47c1-8a08-b24c63f87db8" />
      </body>
      <title>WPF vs Silverlight, really?</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,8d3d88b6-ccb6-47c1-8a08-b24c63f87db8.aspx</guid>
      <link>http://www.lhotka.net/weblog/WPFVsSilverlightReally.aspx</link>
      <pubDate>Tue, 09 Nov 2010 16:06:24 GMT</pubDate>
      <description>&lt;p&gt;
Over the past few months there’s been this ongoing buzz about whether WPF is dead,
or whether Silverlight is really mature – in short, people trying to figure out whether
to use WPF or Silverlight or both.
&lt;/p&gt;
&lt;p&gt;
Having worked with WPF since it came out, and with Silverlight 2.0 and higher since
before it came out, I thought I’d share my thoughts. 
&lt;/p&gt;
&lt;p&gt;
This post flows from my experiences with CSLA .NET, &lt;a href="http://unitdriven.codeplex.com"&gt;UnitDriven&lt;/a&gt; and &lt;a href="http://bxf.codeplex.com"&gt;Bxf&lt;/a&gt; –
three frameworks I’ve created or been directly involved with, that run on WPF (.NET),
Silverlight and now Windows Phone 7 (WP7). With CSLA in particular, I’ve been maintaining
this one codebase on .NET since 2001, and to my knowledge it was the first major framework
ported to Silverlight from .NET. Also, as I write about this, I’m thinking about how
I build XAML-based apps, using the MVVM pattern as discussed in the &lt;a href="http://store.lhotka.net/"&gt;CSLA
4 MVVM video series&lt;/a&gt; and some of my previous blog posts.
&lt;/p&gt;
&lt;p&gt;
The way I use SL and WPF there is no meaningful difference between them. My MVVM demos,
for example, are mostly the same across WPF, SL and even WP7.
&lt;/p&gt;
&lt;p&gt;
The business layer, created with CSLA 4, is typically identical across all three platforms.
That’s one of the big benefits of CSLA 4, in that you can write your business, validation
and authorization rules once and use them across multiple interface technologies.
And with the data portal managing any interactions with the application server, you
are shielded from any complexity or differences you’d normally encounter there as
well.
&lt;/p&gt;
&lt;p&gt;
The way I use MVVM, with a strong focus on having zero code-behind any XAML, means
that nearly all interface control logic (any actual code in the presentation layer)
is also reused. Any presentation layer code is either in the viewmodel, in value converters,
in attached properties or custom controls. This reuse isn’t always 100%, especially
when you get to WP7, because the tiny phone screen often forces a different user workflow
than if you have a full-size screen like in WPF or SL. But between WPF and SL, the
viewmodel code is typically the same, as is most value converter and attached property
code. Some custom controls may be different – again especially on the phone.
&lt;/p&gt;
&lt;p&gt;
This commonality of viewmodel code is thanks to the use of Bxf. But any decent MVVM
framework will offer the same kind of abstractions, so your application code is never
directly interacting with the UI shell or any platform-specific constructs or types.
&lt;/p&gt;
&lt;p&gt;
With WPF and SL there are places of direct difference however, depending on how you
structure your user experience.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
WPF doesn't have a URL based navigation scheme or a navigation framework, so you have
to come up with your own UI framework to manage any sort of navigation model. I usually
do this by having exactly one Window, and that hosts all my content in the form of
UserControl objects, but you could use many Window objects. 
&lt;/li&gt;
&lt;li&gt;
SL does have an &lt;em&gt;optional&lt;/em&gt; URL based navigation scheme and framework, which
is nice - makes things simpler. However, you can use the same &amp;quot;one Window that
hosts UserControl objects&amp;quot; model just like WPF (hence my samples are the same).
What you can't do is have a lot of Window objects (which to me is no loss, since the
multiple SDI interface went out of style in 1997). 
&lt;/li&gt;
&lt;li&gt;
WP7 also has a URL based navigation scheme and framework. I still use the hosted UserControl
idea too, and that makes a lot of the code common with SL and WPF. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I think the thing to understand, is that while SL runs in the browser, it is a smart
client technology. It is far more like WPF than like HTML. In fact it is virtually
identical to WPF in most ways that matter for a business app.
&lt;/p&gt;
&lt;p&gt;
And the key to my success in this area, is that all my business “forms” or “pages”
are always a subclass of UserControl. So every bit of meaningful UI content (forms/pages)
are UserControl objects that can be hosted by the UI shell. This means that I can
usually change out the shell, or even have different shell styles (URL navigation
vs Outlook-style navigation for example) and this has no effect on the actual business
UI elements. Yes, the shell code may be different, but the business code is unchanged.
&lt;/p&gt;
&lt;p&gt;
This is one powerful technique that makes it quite realistic to create your app in
Silverlight, even using the navigation framework, and then port it to WPF if you need
to in the future. You might have to write some new WPF shell code, but your UserControl
XAML, your viewmodels, your business domain objects, your data access code and your
database remain unchanged.
&lt;/p&gt;
&lt;p&gt;
Beyond UI and navigation differences, there are some technical differences between
WPF and SL, including:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Some minor, niggling differences in XAML - this is the sort of thing I personally
want fixed now that the WPF and SL product teams have merged - this niggling differences
are stupid and are nothing but an annoyance – why is the binding Mode default different
between WPF and SL (for example)??&lt;/li&gt;
&lt;li&gt;
SL &lt;em&gt;requires&lt;/em&gt; that all server interactions be async, WPF allows sync or async
- I tend to use async in both places, because the user experience is so superior with
async, I can't figure out why I'd want to punish my end users just because they are
using WPF 
&lt;/li&gt;
&lt;li&gt;
SL has the navigation framework, WPF doesn't 
&lt;/li&gt;
&lt;li&gt;
WPF has an application model that includes navigation, but it is hopelessly broken
- it tried to emulate the worst features of the web without any of the benefits -
to me this is the &amp;quot;ActiveX Documents&amp;quot; of WPF 
&lt;/li&gt;
&lt;li&gt;
WPF apps can use all of .NET, SL uses a subset - but the SL subset is everything I've
needed to build typical business apps 
&lt;/li&gt;
&lt;li&gt;
WPF apps can interact with the full client workstation hardware (odd peripherals,
the full hard drive, etc) 
&lt;/li&gt;
&lt;li&gt;
WPF apps are (typically) deployed via ClickOnce, SL apps are deployed transparently
via the browser - so WPF is slightly more &amp;quot;in your face&amp;quot; for your users,
but the difference should be pretty incidental 
&lt;/li&gt;
&lt;li&gt;
WPF apps can tap into all of DirectX, though SL now has hardware acceleration for
some graphics scenarios too - so this difference is probably less meaningful for most
business apps than for games 
&lt;/li&gt;
&lt;li&gt;
SL doesn't have the complexity of the legacy &amp;quot;crap&amp;quot; that comes with WPF
(DataSet, IBindingList, etc) so it is a simpler, easier and more consistent programming
environment 
&lt;/li&gt;
&lt;li&gt;
SL runs on Windows, in the browser, on the Mac, in the browser on the Mac, and in
WP7; WPF of course runs only on Windows 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Again however, I come back to the same thing - I always use as little of any platform/technology
as necessary to get the job done. SL is a subset, so if I can get the job done with
SL then that's the best thing to do (I can always upsize to WPF later if necessary).
If I can't get the job done with SL, I'll use WPF.
&lt;/p&gt;
&lt;p&gt;
In my mind it is a superset/subset decision - always default to the subset that meets
your needs.
&lt;/p&gt;
&lt;p&gt;
As long as you understand both technologies, you can architect your UI so transitioning
from SL to WPF is relatively easy (the other way isn't always so easy - because your
WPF code might use superset technologies).
&lt;/p&gt;
&lt;p&gt;
In conclusion, my recommendation has been (since SL3 at least) to design your app
for SL, and fall back to WPF only if SL can’t meet your needs. The most common scenarios
for business apps to fall back to WPF are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Your app is only occasionally connected, and is mostly offline, so you use a client-side
database like SQL Express or SQL CE&lt;/li&gt;
&lt;li&gt;
Your app needs to interact with client-side peripherals&lt;/li&gt;
&lt;li&gt;
Your app needs full access to the client-side hard drive&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I don’t think this is a “WPF vs SL” thing at all. I think it is a sliding scale, where
you default to SL, and slide up to WPF if necessary. All the angst is unnecessary.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=8d3d88b6-ccb6-47c1-8a08-b24c63f87db8" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,8d3d88b6-ccb6-47c1-8a08-b24c63f87db8.aspx</comments>
      <category>Bxf</category>
      <category>CSLA .NET</category>
      <category>Silverlight</category>
      <category>WP7</category>
      <category>WPF</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=e6f95bde-85f6-42b1-a08a-98a430df2cae</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,e6f95bde-85f6-42b1-a08a-98a430df2cae.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,e6f95bde-85f6-42b1-a08a-98a430df2cae.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=e6f95bde-85f6-42b1-a08a-98a430df2cae</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The first WP7 app built by Magenic is now in the WP7 app marketplace: GuestList.
</p>
        <p>
          <img style="WIDTH: 358px; HEIGHT: 296px" border="0" src="http://www.lhotka.net/weblog/content/binary/Marketplace.png" width="244" height="241" />
        </p>
        <p>
This app allows you to easily check in attendees at an event, using <a href="http://www.eventbrite.com/">EventBrite</a> as
the backend service. You create your event in EventBrite, users register through their
web site, and as they arrive at your event you get the attendee list on your phone,
and easily check them in right there.
</p>
        <p>
Chris Williams (Microsoft MVP and author of an upcoming WP7 developer book) did the
development on this project, with assistance from Donn Felker (author of a similar
app for Droid). Anthony Handley (from our Magenic Studios group) created the user
experience flow and look and feel.
</p>
        <p>
Very exciting stuff!
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=e6f95bde-85f6-42b1-a08a-98a430df2cae" />
      </body>
      <title>Magenic&amp;rsquo;s first WP7 app</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,e6f95bde-85f6-42b1-a08a-98a430df2cae.aspx</guid>
      <link>http://www.lhotka.net/weblog/MagenicrsquosFirstWP7App.aspx</link>
      <pubDate>Wed, 27 Oct 2010 20:25:56 GMT</pubDate>
      <description>&lt;p&gt;
The first WP7 app built by Magenic is now in the WP7 app marketplace: GuestList.
&lt;/p&gt;
&lt;p&gt;
&lt;img style="WIDTH: 358px; HEIGHT: 296px" border=0 src="http://www.lhotka.net/weblog/content/binary/Marketplace.png" width=244 height=241&gt;
&lt;/p&gt;
&lt;p&gt;
This app allows you to easily check in attendees at an event, using &lt;a href="http://www.eventbrite.com/"&gt;EventBrite&lt;/a&gt; as
the backend service. You create your event in EventBrite, users register through their
web site, and as they arrive at your event you get the attendee list on your phone,
and easily check them in right there.
&lt;/p&gt;
&lt;p&gt;
Chris Williams (Microsoft MVP and author of an upcoming WP7 developer book) did the
development on this project, with assistance from Donn Felker (author of a similar
app for Droid). Anthony Handley (from our Magenic Studios group) created the user
experience flow and look and feel.
&lt;/p&gt;
&lt;p&gt;
Very exciting stuff!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=e6f95bde-85f6-42b1-a08a-98a430df2cae" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,e6f95bde-85f6-42b1-a08a-98a430df2cae.aspx</comments>
      <category>Windows Phone</category>
      <category>WP7</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=6473ff9e-fb7e-47c4-8073-478a0599e768</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,6473ff9e-fb7e-47c4-8073-478a0599e768.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,6473ff9e-fb7e-47c4-8073-478a0599e768.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=6473ff9e-fb7e-47c4-8073-478a0599e768</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I am pleased to announce the first beta release of CSLA 4 version 4.1 with support
for Windows Phone 7, and continuing support for .NET 4 and Silverlight 4.
</p>
        <p>
          <a href="http://www.lhotka.net/cslanet/download.aspx">Download CSLA 4 version 4.1.0
here</a>
        </p>
        <p>
With this release, it is now possible to write a single business layer composed of
business domain objects that run unchanged on a WP7 device, in Silverlight, on a Windows
client, on Windows Server and on Windows Azure.
</p>
        <p>
The samples download includes Samples\Net\cs\SimpleNTier, which does implement the
following interfaces over one common business layer:
</p>
        <ul>
          <li>
Windows Phone</li>
          <li>
WPF</li>
          <li>
Silverlight</li>
          <li>
ASP.NET MVC</li>
        </ul>
        <p>
Of course this is just the first beta release, so there’s more work to be done. At
the same time, we have completed the vast majority of the effort, and it is quite
possible to build WP7 applications using this beta.
</p>
        <p>
As with all CSLA releases, this one does include some bug fixes and enhancements to
other parts of the framework. Please see the <a href="http://www.lhotka.net/Article.aspx?id=9aad2f99-86eb-453b-a760-6303c3b27552">change
log</a> for a list of all changes. Enhancement highlights include:
</p>
        <ul>
          <li>
Add ability to get a consolidated list of broken rules for an object graph</li>
          <li>
New BackgroundWorker component that automatically initializes background threads with
the current principal and culture from the UI thread</li>
          <li>
TriggerAction provides better debugging information, following the lead of many Microsoft
XAML controls</li>
          <li>
and much more…</li>
        </ul>
        <p>
In related news, <a href="http://unitdriven.codeplex.com">UnitDriven</a> has also
been updated to support WP7, and provides a pretty comprehensive unit test runner
and framework for WP7 code. CSLA uses UnitDriven for its automated testing, but UnitDriven
can be used for any application on .NET, Silverlight or WP7.
</p>
        <p>
Similarly, <a href="http://bxf.codeplex.com">Bxf</a> (Basic XAML Framework) has been
updated to support WP7, thereby providing a common MVVM framework for WPF, Silverlight
and WP7 UI development efforts. Some CSLA sample apps use Bxf, but Bxf can be used
for any application, including those that don’t involve CSLA at all.
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=6473ff9e-fb7e-47c4-8073-478a0599e768" />
      </body>
      <title>CSLA 4 version 4.1 beta release</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,6473ff9e-fb7e-47c4-8073-478a0599e768.aspx</guid>
      <link>http://www.lhotka.net/weblog/CSLA4Version41BetaRelease.aspx</link>
      <pubDate>Fri, 22 Oct 2010 19:35:18 GMT</pubDate>
      <description>&lt;p&gt;
I am pleased to announce the first beta release of CSLA 4 version 4.1 with support
for Windows Phone 7, and continuing support for .NET 4 and Silverlight 4.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.lhotka.net/cslanet/download.aspx"&gt;Download CSLA 4 version 4.1.0
here&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
With this release, it is now possible to write a single business layer composed of
business domain objects that run unchanged on a WP7 device, in Silverlight, on a Windows
client, on Windows Server and on Windows Azure.
&lt;/p&gt;
&lt;p&gt;
The samples download includes Samples\Net\cs\SimpleNTier, which does implement the
following interfaces over one common business layer:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Windows Phone&lt;/li&gt;
&lt;li&gt;
WPF&lt;/li&gt;
&lt;li&gt;
Silverlight&lt;/li&gt;
&lt;li&gt;
ASP.NET MVC&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Of course this is just the first beta release, so there’s more work to be done. At
the same time, we have completed the vast majority of the effort, and it is quite
possible to build WP7 applications using this beta.
&lt;/p&gt;
&lt;p&gt;
As with all CSLA releases, this one does include some bug fixes and enhancements to
other parts of the framework. Please see the &lt;a href="http://www.lhotka.net/Article.aspx?id=9aad2f99-86eb-453b-a760-6303c3b27552"&gt;change
log&lt;/a&gt; for a list of all changes. Enhancement highlights include:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Add ability to get a consolidated list of broken rules for an object graph&lt;/li&gt;
&lt;li&gt;
New BackgroundWorker component that automatically initializes background threads with
the current principal and culture from the UI thread&lt;/li&gt;
&lt;li&gt;
TriggerAction provides better debugging information, following the lead of many Microsoft
XAML controls&lt;/li&gt;
&lt;li&gt;
and much more…&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
In related news, &lt;a href="http://unitdriven.codeplex.com"&gt;UnitDriven&lt;/a&gt; has also
been updated to support WP7, and provides a pretty comprehensive unit test runner
and framework for WP7 code. CSLA uses UnitDriven for its automated testing, but UnitDriven
can be used for any application on .NET, Silverlight or WP7.
&lt;/p&gt;
&lt;p&gt;
Similarly, &lt;a href="http://bxf.codeplex.com"&gt;Bxf&lt;/a&gt; (Basic XAML Framework) has been
updated to support WP7, thereby providing a common MVVM framework for WPF, Silverlight
and WP7 UI development efforts. Some CSLA sample apps use Bxf, but Bxf can be used
for any application, including those that don’t involve CSLA at all.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=6473ff9e-fb7e-47c4-8073-478a0599e768" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,6473ff9e-fb7e-47c4-8073-478a0599e768.aspx</comments>
      <category>Bxf</category>
      <category>CSLA .NET</category>
      <category>Silverlight</category>
      <category>Web</category>
      <category>Windows Azure</category>
      <category>WP7</category>
      <category>WPF</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=f073407f-e21e-425f-a32c-588e08a0f4f8</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,f073407f-e21e-425f-a32c-588e08a0f4f8.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,f073407f-e21e-425f-a32c-588e08a0f4f8.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=f073407f-e21e-425f-a32c-588e08a0f4f8</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This is kind of a running commentary, or personal log (stardate July 2010), recording
the various things I had to do to get the CSLA 4 Silverlight codebase to build in
the WP7 (Windows Phone 7) beta SDK.
</p>
        <p>
This has nothing to do with getting anything actually running – this is just the stuff
I had to change to get the code to compile.
</p>
        <p>
To create the Csla.Wp project, I just linked in files from Csla and Csla.Silverlight.
There are almost no actual files in Csla.Wp – it is almost completely reusing the
same code used to implement Csla.Silverlight. That’s really cool, as it means my maintenance
burden is (theoretically) quite low.
</p>
        <p>
(though this exercise did highlight the need for me to go through the Csla and Csla.Silverlight
projects to remove all code files from the Csla.Silverlight project too – ideally
there’d be exactly one of any given file, with a few #if statements to deal with platform
differences – but that’s a task for another day)
</p>
        <p>
Most of my issues building on WP7 turned out to be caused by the fact that CSLA 4
targets Silverlight 4, and WP7 is based on SL3. 
</p>
        <ul>
          <li>
Missing: DataAnnotations 
</li>
          <li>
Missing: Reflection.Emit 
</li>
          <li>
Missing: Lambda expressions 
</li>
          <li>
Missing: string.IsNullOrWhiteSpace 
</li>
          <li>
Missing: Browsable attribute</li>
        </ul>
        <p>
Most of the DataAnnotations code I just had to block out with #if statements, though
I did create my own DisplayAttribute class because I don’t want to lose that particular
feature (the friendly name part). So business classes using that particular attribute
should work fine, but the other DataAnnotations attributes won’t compile in WP7.
</p>
        <p>
I also created my own BrowsableAttribute class, even though it doesn’t do anything.
This saved me from littering tons and tons of code with #if statements, and I can’t
see where it hurts anything to have this dummy attribute in my code. The attribute
normally just affects the behavior of Visual Studio, which wouldn’t be affected either
way.
</p>
        <p>
The IsNullOrWhiteSpace method I just replaced with the (not as good) IsNullOrEmpty
using #if statements. A little cluttered, but a workable answer.
</p>
        <p>
What I’m working on now is the final part: dealing with the lack of lambda expressions
and dynamic methods. Basically I need to revert the CSLA code back to using raw reflection
in those cases, since none of the modern reflection alternatives appear to exist in
WP7. That shouldn’t be too hard, as I can get most of that older code from earlier
versions of CSLA and just put it into the existing codebase using #if statements (so
I don’t affect the .NET or SL implementations).
</p>
        <p>
Given the size and complexity of CSLA 4, I’m really quite pleased with the relative
easy by which I’ve been able to get the code to (almost) build in WP7.
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=f073407f-e21e-425f-a32c-588e08a0f4f8" />
      </body>
      <title>Getting CSLA 4 to compile for WP7</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,f073407f-e21e-425f-a32c-588e08a0f4f8.aspx</guid>
      <link>http://www.lhotka.net/weblog/GettingCSLA4ToCompileForWP7.aspx</link>
      <pubDate>Fri, 30 Jul 2010 02:19:10 GMT</pubDate>
      <description>&lt;p&gt;
This is kind of a running commentary, or personal log (stardate July 2010), recording
the various things I had to do to get the CSLA 4 Silverlight codebase to build in
the WP7 (Windows Phone 7) beta SDK.
&lt;/p&gt;
&lt;p&gt;
This has nothing to do with getting anything actually running – this is just the stuff
I had to change to get the code to compile.
&lt;/p&gt;
&lt;p&gt;
To create the Csla.Wp project, I just linked in files from Csla and Csla.Silverlight.
There are almost no actual files in Csla.Wp – it is almost completely reusing the
same code used to implement Csla.Silverlight. That’s really cool, as it means my maintenance
burden is (theoretically) quite low.
&lt;/p&gt;
&lt;p&gt;
(though this exercise did highlight the need for me to go through the Csla and Csla.Silverlight
projects to remove all code files from the Csla.Silverlight project too – ideally
there’d be exactly one of any given file, with a few #if statements to deal with platform
differences – but that’s a task for another day)
&lt;/p&gt;
&lt;p&gt;
Most of my issues building on WP7 turned out to be caused by the fact that CSLA 4
targets Silverlight 4, and WP7 is based on SL3. 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Missing: DataAnnotations 
&lt;/li&gt;
&lt;li&gt;
Missing: Reflection.Emit 
&lt;/li&gt;
&lt;li&gt;
Missing: Lambda expressions 
&lt;/li&gt;
&lt;li&gt;
Missing: string.IsNullOrWhiteSpace 
&lt;/li&gt;
&lt;li&gt;
Missing: Browsable attribute&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Most of the DataAnnotations code I just had to block out with #if statements, though
I did create my own DisplayAttribute class because I don’t want to lose that particular
feature (the friendly name part). So business classes using that particular attribute
should work fine, but the other DataAnnotations attributes won’t compile in WP7.
&lt;/p&gt;
&lt;p&gt;
I also created my own BrowsableAttribute class, even though it doesn’t do anything.
This saved me from littering tons and tons of code with #if statements, and I can’t
see where it hurts anything to have this dummy attribute in my code. The attribute
normally just affects the behavior of Visual Studio, which wouldn’t be affected either
way.
&lt;/p&gt;
&lt;p&gt;
The IsNullOrWhiteSpace method I just replaced with the (not as good) IsNullOrEmpty
using #if statements. A little cluttered, but a workable answer.
&lt;/p&gt;
&lt;p&gt;
What I’m working on now is the final part: dealing with the lack of lambda expressions
and dynamic methods. Basically I need to revert the CSLA code back to using raw reflection
in those cases, since none of the modern reflection alternatives appear to exist in
WP7. That shouldn’t be too hard, as I can get most of that older code from earlier
versions of CSLA and just put it into the existing codebase using #if statements (so
I don’t affect the .NET or SL implementations).
&lt;/p&gt;
&lt;p&gt;
Given the size and complexity of CSLA 4, I’m really quite pleased with the relative
easy by which I’ve been able to get the code to (almost) build in WP7.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=f073407f-e21e-425f-a32c-588e08a0f4f8" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,f073407f-e21e-425f-a32c-588e08a0f4f8.aspx</comments>
      <category>CSLA .NET</category>
      <category>WP7</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=01510111-fab5-4ea9-b741-30889c7ef74a</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,01510111-fab5-4ea9-b741-30889c7ef74a.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,01510111-fab5-4ea9-b741-30889c7ef74a.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=01510111-fab5-4ea9-b741-30889c7ef74a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was interviewed for MSDN Bytes while at Tech Ed in New Orleans earlier this year.
The interview is now online:
</p>
        <p>
          <a href="http://msdn.microsoft.com/en-us/ff851876.aspx">http://msdn.microsoft.com/en-us/ff851876.aspx</a>
        </p>
        <p>
The interview is focused on Windows Phone 7, but of course I also talk about Silverlight
and CSLA .NET a little bit too.
</p>
        <img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=01510111-fab5-4ea9-b741-30889c7ef74a" />
      </body>
      <title>MSDN Bytes interview on WP7</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,01510111-fab5-4ea9-b741-30889c7ef74a.aspx</guid>
      <link>http://www.lhotka.net/weblog/MSDNBytesInterviewOnWP7.aspx</link>
      <pubDate>Mon, 26 Jul 2010 16:39:28 GMT</pubDate>
      <description>&lt;p&gt;
I was interviewed for MSDN Bytes while at Tech Ed in New Orleans earlier this year.
The interview is now online:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/en-us/ff851876.aspx"&gt;http://msdn.microsoft.com/en-us/ff851876.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The interview is focused on Windows Phone 7, but of course I also talk about Silverlight
and CSLA .NET a little bit too.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=01510111-fab5-4ea9-b741-30889c7ef74a" /&gt;</description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,01510111-fab5-4ea9-b741-30889c7ef74a.aspx</comments>
      <category>CSLA .NET</category>
      <category>Silverlight</category>
      <category>WP7</category>
    </item>
  </channel>
</rss>