<?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:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Rockford Lhotka</title>
    <link>http://www.lhotka.net/weblog/</link>
    <description>Author of Expert C#/VB 2005 Business Objects</description>
    <language>en-us</language>
    <copyright>Rockford Lhotka</copyright>
    <lastBuildDate>Thu, 24 Apr 2008 20:45:39 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=4b0b2060-901d-4bba-bb8f-c481f16a3cf8</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,4b0b2060-901d-4bba-bb8f-c481f16a3cf8.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,4b0b2060-901d-4bba-bb8f-c481f16a3cf8.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=4b0b2060-901d-4bba-bb8f-c481f16a3cf8</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <title>CSLA .NET Master Class training</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,4b0b2060-901d-4bba-bb8f-c481f16a3cf8.aspx</guid>
      <link>http://www.lhotka.net/weblog/CSLANETMasterClassTraining.aspx</link>
      <pubDate>Thu, 24 Apr 2008 20:45:39 GMT</pubDate>
      <description>&lt;div style="FLOAT: left; MARGIN: 8px"&gt;&lt;a href="http://www.dunntraining.com"&gt;&lt;img src="/images/CslaMstrRect.jpg" border=0&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
Dunn Training has been offering a very good 3 day class on CSLA .NET for some time
now, with lots of great feedback. And this class continues (with a sold-out class
coming up in Toronto).
&lt;/p&gt;
&lt;p&gt;
As a compliment to that class, Dunn is now lining up a bigger and deeper 5 day master
class. The plan is to have just two of these each year.
&lt;/p&gt;
&lt;p&gt;
This master class is quite different from the 3 day class. It will have more lecture,
deeper labs and a faster pace. They tell me the intent is to cover everything from
OO design to CSLA object creation to WPF/Windows/Web/WCF/WF interface design to LINQ
in one intense week.
&lt;/p&gt;
&lt;p&gt;
Not only will this be the ultimate in CSLA .NET training, it'll be some incredibly
awesome training on .NET itself!!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=4b0b2060-901d-4bba-bb8f-c481f16a3cf8" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;div style="border-top: 1px dotted;padding-top: 8px;padding-bottom: 5px;margin-top: 10px;margin-bottom: 0px;font-family: Verdana;font-weight: normal;line-height: 100%;text-align: left;"&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag Start --&gt;
&lt;script type="text/javascript" src="http://ads.aspalliance.com/displayad.aspx?t=3&amp;m=90&amp;guid=4"&gt;&lt;/script&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag End --&gt;
&lt;br clear="all"&gt;
&lt;/div&gt;
  </description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,4b0b2060-901d-4bba-bb8f-c481f16a3cf8.aspx</comments>
      <category>CSLA .NET</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=ecb3a101-8708-4ab4-a825-af418036afd6</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,ecb3a101-8708-4ab4-a825-af418036afd6.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,ecb3a101-8708-4ab4-a825-af418036afd6.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=ecb3a101-8708-4ab4-a825-af418036afd6</wfw:commentRss>
      <slash:comments>12</slash:comments>
      <title>Prototype Silverlight data portal</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,ecb3a101-8708-4ab4-a825-af418036afd6.aspx</guid>
      <link>http://www.lhotka.net/weblog/PrototypeSilverlightDataPortal.aspx</link>
      <pubDate>Wed, 23 Apr 2008 14:08:36 GMT</pubDate>
      <description>&lt;p&gt;
I spent some time over the past few days using my prototype Silverlight serializer
to build a prototype Silverlight data portal. It is still fairly far from complete,
but at least I've proved out the basic concept and uncovered some interesting side-effects
of living in Silverlight.
&lt;/p&gt;
&lt;p&gt;
The good news is that the basic concept of the data portal works. Defining objects
that physically move between the Silverlight client and a .NET web server is practical,
and works in a manner similar to the pure .NET data portal.
&lt;/p&gt;
&lt;p&gt;
The bad news is that it can't work &lt;em&gt;exactly&lt;/em&gt; like the pure .NET data portal,
and the technique does require some manual effort when creating the business assemblies
(yes, plural).
&lt;/p&gt;
&lt;p&gt;
The approach I'm taking involves having two business assemblies (VS projects) that
share many of the same code files. Suppose you want to have a Person object move between
the client and server. You need Person in a Silverlight class library &lt;em&gt;and in a
.NET class library&lt;/em&gt;. This means two projects are required, even if they have the
same code file.
&lt;/p&gt;
&lt;p&gt;
Visual Studio makes this reasonable, because you can create the file in one project
(say the Silverlight class library) and then Add Existing Item and use the &lt;em&gt;Link&lt;/em&gt; feature
to get that same file included into a .NET class library project.
&lt;/p&gt;
&lt;p&gt;
I also make the class be a partial class, so I can add extra code to the .NET class
library implementation. The result is:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
BusinessLibrary.Client (Silverlight class library) 
&lt;br&gt;
&amp;nbsp; -&amp;gt; Person.cs
&lt;/p&gt;
&lt;p&gt;
BusinessLibrary.Server (.NET class library) 
&lt;br&gt;
&amp;nbsp; -&amp;gt; Person.cs (linked from BusinessLibrary.Client) 
&lt;br&gt;
&amp;nbsp; -&amp;gt; Person.Server.cs
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
One key thing is that &lt;em&gt;both projects build a file called BusinessLibrary.dll&lt;/em&gt;.
Also, because Person.cs is a shared file, it obviously has the same namespace. This
is all very important, because the serializer requires that the fully qualified type
name ("namespace.type,assembly") be the same on client and server. In my case it is
"BusinessLibrary.Person,BusinessLibrary".
&lt;/p&gt;
&lt;p&gt;
The Person.Server.cs file contains the server-only parts of the Person class - it
is just the rest of the partial class. The only catch here is that it &lt;em&gt;can not
define any fields&lt;/em&gt; because that would obviously confuse the serializer since those
fields wouldn't exist on the client. Well, actually it could define fields as long
as they were marked as NonSerialized.
&lt;/p&gt;
&lt;p&gt;
Of course you could also have a partial Person.Client.cs in the Silverlight class
library - though I haven't found a need for that just yet.
&lt;/p&gt;
&lt;p&gt;
One thing I'm debating is whether the .NET side of the data portal should just directly
delegate Silverlight calls into the "real" data portal - effectively acting as a passive
router between Silverlight and the .NET objects. OR the .NET side of the data portal
could invoke specific methods (like Silverlight_Create(), Silverlight_Update(), etc)
so the business developer can include code to decide whether the calls should be processed
on the server at all.
&lt;/p&gt;
&lt;p&gt;
The first approach is simple, and certainly makes for a compelling story because it
works very much like CSLA today. The Silverlight client gets/updates objects in a
very direct manner.
&lt;/p&gt;
&lt;p&gt;
The second approach is a little more complex, but might be better because I'm not
sure you should blindly trust anything coming from the Silverlight client. You can
make a good argument that Silverlight is always outside the trust boundary of your
server application, so blindly passing calls from the client through the data portal
may not be advisable.
&lt;/p&gt;
&lt;p&gt;
Either way, what's really cool is that the original .NET data portal &lt;em&gt;remains fully
intact&lt;/em&gt;. This means that the following two physical deployment scenarios are available:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Silverlight -&amp;gt; Web server -&amp;gt; database 
&lt;br&gt;
Silverlight -&amp;gt; Web server -&amp;gt; App server -&amp;gt; database
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Whether the web/app server is in 2- or 3-tier configuration is just a matter of how
the original .NET data portal (running on the web server) is configured. I think that's
awesome, as it easily enables two very common web server configurations.
&lt;/p&gt;
&lt;p&gt;
The big difference in how the Silverlight data portal works as compared to the .NET
data portal is on the client. In Silverlight you should never block the main UI thread,
which means calls to the server should be asynchronous. Which means the UI code can't
just do this:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
var person = Person.GetPerson(123);
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
That sort of synchronous call would block the UI thread and lock the browser. Instead,
my current approach requires the UI developer to write code like this:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
var dp = new Csla.DataPortal(); 
&lt;br&gt;
dp.FetchCompleted += 
&lt;br&gt;
&amp;nbsp; new EventHandler&amp;lt;Csla.DataPortalResult&amp;lt;Person&amp;gt;&amp;gt;(dp_FetchCompleted); 
&lt;br&gt;
dp.BeginFetch&amp;lt;Person&amp;gt;(new SingleCriteria&amp;lt;int&amp;gt;(123));
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
with a dp_FetchCompleted() method like:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
private void dp_FetchCompleted(object sender, Csla.DataPortalResult&amp;lt;Person&amp;gt;
e) 
&lt;br&gt;
{ 
&lt;br&gt;
&amp;nbsp; if (e.Error != null) 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // e.Error is an exception - deal with the issue 
&lt;br&gt;
&amp;nbsp; else 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // e.Object is your result - use it 
&lt;br&gt;
}
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
So the UI code is more cumbersome than in .NET, but it follows the basic service-calling
technique used in any current Silverlight code, and I don't think it is too bad. It
isn't clear how to make this any simpler really.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=ecb3a101-8708-4ab4-a825-af418036afd6" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;div style="border-top: 1px dotted;padding-top: 8px;padding-bottom: 5px;margin-top: 10px;margin-bottom: 0px;font-family: Verdana;font-weight: normal;line-height: 100%;text-align: left;"&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag Start --&gt;
&lt;script type="text/javascript" src="http://ads.aspalliance.com/displayad.aspx?t=3&amp;m=90&amp;guid=4"&gt;&lt;/script&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag End --&gt;
&lt;br clear="all"&gt;
&lt;/div&gt;
  </description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,ecb3a101-8708-4ab4-a825-af418036afd6.aspx</comments>
      <category>Architecture</category>
      <category>CSLA .NET</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=721f2e3a-1078-4e78-bd90-0e4c2456827c</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,721f2e3a-1078-4e78-bd90-0e4c2456827c.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,721f2e3a-1078-4e78-bd90-0e4c2456827c.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=721f2e3a-1078-4e78-bd90-0e4c2456827c</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <title>Free Comic Book Day 2008</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,721f2e3a-1078-4e78-bd90-0e4c2456827c.aspx</guid>
      <link>http://www.lhotka.net/weblog/FreeComicBookDay2008.aspx</link>
      <pubDate>Tue, 22 Apr 2008 19:08:03 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Yes, I'm a comic book collector :)
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;b&gt;&lt;u&gt;FREE COMIC BOOK DAY 2008 - MAY 3RD 2008&lt;/u&gt;&lt;/b&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img height="120" alt="FCBD Logo" hspace="hspace" src="http://origin.ih.constantcontact.com/fs094/1102000931972/img/6.gif?a=1102056555362" width="90" align="left" vspace="vspace" border="0" /&gt;It
seems that every year FREE COMIC BOOK DAY gets bigger and bigger and it looks like
this year is going to be no exception!&lt;strong&gt; It's a great opportunity to introduce
someone new to the world of comic books!&lt;/strong&gt; Over 2.5 million comic books will
be given away this year. In addition, this year is featuring the widest variety of
Free Comic Book Day Comics ever! &lt;strong&gt;Support your local comic book store&lt;/strong&gt; and
grab some family and friends and get some free comic books and a great time! 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://rs6.net/tn.jsp?e=001rq8FEW6SFcVLQxF7oG_v3vahBgD3kh24_yvm1_hsD73E4QAw99BANFpr5iyfuihb4tnfFgV0EvpiV_wEtyTj6TlCCQvveUu4PeJc69rDocfbNWpQoTdzSd2FjT4afNvw"&gt;www.FREECOMICBOOKDAY.COM&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=721f2e3a-1078-4e78-bd90-0e4c2456827c" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;div style="border-top: 1px dotted;padding-top: 8px;padding-bottom: 5px;margin-top: 10px;margin-bottom: 0px;font-family: Verdana;font-weight: normal;line-height: 100%;text-align: left;"&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag Start --&gt;
&lt;script type="text/javascript" src="http://ads.aspalliance.com/displayad.aspx?t=3&amp;m=90&amp;guid=4"&gt;&lt;/script&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag End --&gt;
&lt;br clear="all"&gt;
&lt;/div&gt;
  </description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,721f2e3a-1078-4e78-bd90-0e4c2456827c.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=eddef1aa-0c09-433e-95e0-f60d31d6e4c6</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,eddef1aa-0c09-433e-95e0-f60d31d6e4c6.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,eddef1aa-0c09-433e-95e0-f60d31d6e4c6.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=eddef1aa-0c09-433e-95e0-f60d31d6e4c6</wfw:commentRss>
      <title>Podcast recapping MIX 08</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,eddef1aa-0c09-433e-95e0-f60d31d6e4c6.aspx</guid>
      <link>http://www.lhotka.net/weblog/PodcastRecappingMIX08.aspx</link>
      <pubDate>Mon, 21 Apr 2008 13:14:22 GMT</pubDate>
      <description>&lt;p&gt;
Shannon Braun and I were interviewed by Jeff Brand, the Twin Cities .NET Developer
Evangelist for Microsoft. Jeff does a podcast titled Spaghetti Code, and we discussed
our experiences at the MIX 08 conference earlier this spring.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.slickthought.net/post/Spaghetti-Code-Podcast---Recapping-MIX-with-Rocky-Lhotka-and-Shannon-Braun.aspx"&gt;http://www.slickthought.net/post/Spaghetti-Code-Podcast---Recapping-MIX-with-Rocky-Lhotka-and-Shannon-Braun.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=eddef1aa-0c09-433e-95e0-f60d31d6e4c6" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;div style="border-top: 1px dotted;padding-top: 8px;padding-bottom: 5px;margin-top: 10px;margin-bottom: 0px;font-family: Verdana;font-weight: normal;line-height: 100%;text-align: left;"&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag Start --&gt;
&lt;script type="text/javascript" src="http://ads.aspalliance.com/displayad.aspx?t=3&amp;m=90&amp;guid=4"&gt;&lt;/script&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag End --&gt;
&lt;br clear="all"&gt;
&lt;/div&gt;
  </description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,eddef1aa-0c09-433e-95e0-f60d31d6e4c6.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=f9f10888-c8ef-4c1e-b40c-765a8a85a98d</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,f9f10888-c8ef-4c1e-b40c-765a8a85a98d.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,f9f10888-c8ef-4c1e-b40c-765a8a85a98d.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=f9f10888-c8ef-4c1e-b40c-765a8a85a98d</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <title>Silverlight serializer</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,f9f10888-c8ef-4c1e-b40c-765a8a85a98d.aspx</guid>
      <link>http://www.lhotka.net/weblog/SilverlightSerializer.aspx</link>
      <pubDate>Mon, 14 Apr 2008 01:42:40 GMT</pubDate>
      <description>&lt;p&gt;
Silverlight 2.0 doesn't have an equivalent to the BinaryFormatter or NetDataContractSerializer.
This makes some things quite challenging - in my case building CSLA Light. CSLA .NET
requires high-fidelity serialization both for implementation of the Clone() operation
and within the data portal.
&lt;/p&gt;
&lt;p&gt;
I've been working on building a Silverlight-compatible equivalent to the BinaryFormatter/NDCS.
It turns out to be quite hard due to the limitations of the Silverlight sandbox.
&lt;/p&gt;
&lt;p&gt;
For example, Silverlight does have reflection, even against private fields. However,
you can only get or set a private field with code &lt;em&gt;inside the same class as the
field declaration&lt;/em&gt;. You can't get/set a field from another object, or even from
a base class or subclass. The reflection call must be &lt;em&gt;in the same class&lt;/em&gt;!
&lt;/p&gt;
&lt;p&gt;
At this point I have a &lt;a href="http://www.lhotka.net/files/cslalight/cslalight-3.5.0-080413.zip"&gt;prototype
serializer&lt;/a&gt; that works in some limited scenarios. It is a starting point. Some
aspects aren't ideal, but may just be the way they are to get around how Silverlight
works. Still, the end result is relatively cool.
&lt;/p&gt;
&lt;p&gt;
To use the serializer:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Build the Csla project (it is a Silverlight Class Library) and reference it from your
Silverlight application 
&lt;li&gt;
In your business class, add a using/Imports statement for Csla.Serialization 
&lt;li&gt;
Add the Serializable attribute to your class 
&lt;li&gt;
You class must also &lt;em&gt;either&lt;/em&gt; inherit from MobileObject or implement the IMobileObject
interface (I recommend using inheritance, as otherwise you'll have to write a lot
of nasty code) 
&lt;li&gt;
You &lt;em&gt;must&lt;/em&gt; override GetValue() and SetValue() in your class - these methods
are called by the MobileFormatter so &lt;em&gt;you&lt;/em&gt; can reflect against your private
fields. See the example below to see how this works 
&lt;li&gt;
You can now use the MobileFormatter much like you would the BinaryFormatter. See the
example below 
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
The MobileFormatter is far from complete. But it can serialize/deserialize fields
of an object that contain primitive types (anything that works with Convert.ChangeType()).
And it handles references to other serializable objects, both single objects and lists
of serializable objects (if they implement IMobileObject or inherit from MobileList&amp;lt;T&amp;gt;
).
&lt;/p&gt;
&lt;p&gt;
I'm pretty sure it can't handle arrays, nor can it handle any list type other than
(effectively) List&amp;lt;T&amp;gt;. I'm not sure what it will do with enums or other types
- just haven't gotten that far yet.
&lt;/p&gt;
&lt;p&gt;
Here's a serializable object:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
using System; 
&lt;br&gt;
using Csla.Serialization; 
&lt;/p&gt;
&lt;p&gt;
namespace SilverlightApplication1 
&lt;br&gt;
{ 
&lt;br&gt;
&amp;nbsp; [Serializable] 
&lt;br&gt;
&amp;nbsp; public class Person : MobileObject 
&lt;br&gt;
&amp;nbsp; { 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; #region Serialization 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override object GetValue(System.Reflection.FieldInfo
field) 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; { 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (field.DeclaringType == typeof(Person)) 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return field.GetValue(this); 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return base.GetValue(field); 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override void SetValue(System.Reflection.FieldInfo field,
object value) 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; { 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (field.DeclaringType == typeof(Person)) 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; field.SetValue(this, value); 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base.SetValue(field, value); 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Name { get; set; } 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [NonSerialized] 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private DateTime _birthdate; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public DateTime BirthDate 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; { 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return _birthDate; } 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set { _birthdate = value; } 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; 
&lt;br&gt;
&amp;nbsp; } 
&lt;br&gt;
}
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
And here's how to serialize/deserialize the object:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
var p = new Person(); 
&lt;br&gt;
&lt;br&gt;
var formatter = new Csla.Serialization.MobileFormatter(); 
&lt;br&gt;
var buffer = new System.IO.MemoryStream(); 
&lt;br&gt;
formatter.Serialize(buffer, p); 
&lt;br&gt;
&lt;br&gt;
buffer.Position = 0; 
&lt;br&gt;
var copyOfP = (Person)formatter.Deserialize(buffer); 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Though it is unfortunate that every business class must implement GetValue() and SetValue(),
I think that is a relatively small price to pay to get nearly the same capability
as we have in .NET with the BinaryFormatter in terms of cloning objects, and more
importantly in terms of serializing them across the network with full fidelity.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=f9f10888-c8ef-4c1e-b40c-765a8a85a98d" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;div style="border-top: 1px dotted;padding-top: 8px;padding-bottom: 5px;margin-top: 10px;margin-bottom: 0px;font-family: Verdana;font-weight: normal;line-height: 100%;text-align: left;"&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag Start --&gt;
&lt;script type="text/javascript" src="http://ads.aspalliance.com/displayad.aspx?t=3&amp;m=90&amp;guid=4"&gt;&lt;/script&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag End --&gt;
&lt;br clear="all"&gt;
&lt;/div&gt;
  </description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,f9f10888-c8ef-4c1e-b40c-765a8a85a98d.aspx</comments>
      <category>CSLA .NET</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=1ce9b2ba-7caa-4653-8049-94099fa60727</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,1ce9b2ba-7caa-4653-8049-94099fa60727.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,1ce9b2ba-7caa-4653-8049-94099fa60727.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=1ce9b2ba-7caa-4653-8049-94099fa60727</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <title>My philosophy on using new technologies</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,1ce9b2ba-7caa-4653-8049-94099fa60727.aspx</guid>
      <link>http://www.lhotka.net/weblog/MyPhilosophyOnUsingNewTechnologies.aspx</link>
      <pubDate>Sat, 12 Apr 2008 21:11:52 GMT</pubDate>
      <description>&lt;p&gt;
Someone on the CSLA .NET discussion forum recently asked what new .NET 3.5 features
I used in CSLA .NET 3.5. The poster noted that there are a lot of new features in
.NET 3.5, which is true. They also included some .NET 3.0 features as "new", though
really those features have now been around for 15 months or so and were addressed
in CSLA .NET 3.0. CSLA .NET 3.0 already added support for WCF, WPF and WF, so those
technologies had very little impact on CSLA .NET 3.5.
&lt;/p&gt;
&lt;p&gt;
My philosophy is to use new technologies only if they provide value to me and my work.
In the case of CSLA .NET this is extended slightly, such that I try to make sure CSLA
.NET also &lt;em&gt;supports&lt;/em&gt; new technologies that might be of value to people who
use CSLA .NET.
&lt;/p&gt;
&lt;p&gt;
While .NET 3.5 has a number of new technologies at various levels (UI, data, languages),
many of them required no changes to CSLA to support. I like to think this is because
I'm always trying to look into the future as I work on CSLA, anticipating at least
some of what is coming so I can make the transition smoother. For example, this is
why CSLA .NET 2.0 introduced a provider model for the data portal - because I knew
WCF was coming in a couple years and I wanted to be ready.
&lt;/p&gt;
&lt;p&gt;
Since CSLA .NET already supported data binding to WPF, Windows Forms and Web Forms,
there was no real work to do at the UI level for .NET 3.5. I actually &lt;em&gt;removed&lt;/em&gt; Csla.Wpf.Validator
because WPF now directly supplies that behavior, but I really didn't &lt;em&gt;add&lt;/em&gt; anything
for UI support because it is already there. 
&lt;/p&gt;
&lt;p&gt;
Looking forward beyond 3.5, it is possible I'll need to add support for ASP.NET MVC
because that technology eschews data binding in favor of other techniques to create
the view - but it is too early to know for sure what I'll do in that regard.
&lt;/p&gt;
&lt;p&gt;
Since CSLA .NET has always abstracted the business object concept from the data access
technique you choose, it automatically supported LINQ to SQL (and will automatically
support ADO.NET EF too). No changes required to do that were required, though I did
add Csla.Data.ContextManager to simplify the use of L2S data context objects (as a
companion to the new Csla.Data.ConnectionManager for raw ADO.NET connections). And
I enhanced Csla.Data.DataMapper to have some more powerful mapping options that may
be useful in some L2S or EF scenarios.
&lt;/p&gt;
&lt;p&gt;
LINQ to Objects did require some work. Technically this too was optional, but I felt
it was critical, and so there is now "LINQ to CSLA" functionality provided in 3.5
(thanks to my colleague Aaron Erickson). The primary feature of this is creating a
synchronized view of a BusinessListBase list when you do a non-projection query, which
means you can data bind the results of a non-projection query and allow the user to
add/remove items from the query result &lt;em&gt;and those changes are also reflected in
the original list&lt;/em&gt;. As a cool option, LINQ to CSLA also implements indexed queries
against lists, so if you are doing many queries against the same list object you should
look into this as a performance booster!
&lt;/p&gt;
&lt;p&gt;
So all that's left are some of the language enhancements that exist to support LINQ.
And I do use some of them - mostly type inference (which I love). But I didn't go
through the entire body of existing code to use the new language features. The risk
of breaking functionality that has worked for 6-7 years is &lt;em&gt;way&lt;/em&gt; too high!
I can't see where anyone would choose to take such a risk with a body of code, but
especially one like CSLA that is used by thousands of people world-wide.
&lt;/p&gt;
&lt;p&gt;
That means I used some of the new language features in new code, and in code I had
to rework anyway. And to be honest, I use those features sparingly and where I thought
they helped. 
&lt;/p&gt;
&lt;p&gt;
I think trying to force new technologies/concepts/patterns into code is a bad idea.
If a given pattern or technology obviously saves code/time/money or has other clear
benefits then I use it, but I try never to get attached to some idea such that I force
it into places where it doesn't fit with my overall goals.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=1ce9b2ba-7caa-4653-8049-94099fa60727" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;div style="border-top: 1px dotted;padding-top: 8px;padding-bottom: 5px;margin-top: 10px;margin-bottom: 0px;font-family: Verdana;font-weight: normal;line-height: 100%;text-align: left;"&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag Start --&gt;
&lt;script type="text/javascript" src="http://ads.aspalliance.com/displayad.aspx?t=3&amp;m=90&amp;guid=4"&gt;&lt;/script&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag End --&gt;
&lt;br clear="all"&gt;
&lt;/div&gt;
  </description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,1ce9b2ba-7caa-4653-8049-94099fa60727.aspx</comments>
      <category>Architecture</category>
      <category>CSLA .NET</category>
      <category>Microsoft .NET</category>
      <category>WPF</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=5a9b618b-4a7e-4570-96ea-9440b7334379</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,5a9b618b-4a7e-4570-96ea-9440b7334379.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,5a9b618b-4a7e-4570-96ea-9440b7334379.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=5a9b618b-4a7e-4570-96ea-9440b7334379</wfw:commentRss>
      <title>VS Live Orlando coming soon!</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,5a9b618b-4a7e-4570-96ea-9440b7334379.aspx</guid>
      <link>http://www.lhotka.net/weblog/VSLiveOrlandoComingSoon.aspx</link>
      <pubDate>Fri, 11 Apr 2008 14:41:10 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.vslive.com"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="137" alt="VS Live Orlando" hspace="hspace" src="http://www.lhotka.net/weblog/content/binary/WindowsLiveWriter/VSLiveOrlandocomingsoon_8826/mainpanel_or_3.jpg" width="107" align="left" vspace="vspace" border="0" /&gt;&lt;/a&gt; VS
Live Orlando is coming up soon, and I'll be speaking at the event.
&lt;/p&gt;
&lt;p&gt;
I'm giving a presentation on the use of OO concepts, WCF services and Silverlight
working together to build compelling web applications.
&lt;/p&gt;
&lt;p&gt;
And I'm giving a full-day workshop covering a broad range of .NET technologies, focused
on transitioning from the .NET 2.0 world forward into the .NET 3.5 world. Not surprisingly,
I use CSLA .NET as part of this workshop, though the primary focus is on making sense
out of all the different technologies you might use for creating your applications.
&lt;/p&gt;
&lt;p&gt;
As a track chair and speaker for VS Live, I am able to provide you with a special
discount code. &lt;a href="http://vslive.com/2008/orlando/register.aspx"&gt;Register for
VS Live&lt;/a&gt; using the code &lt;strong&gt;SOLHO&lt;/strong&gt; and save $300!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=5a9b618b-4a7e-4570-96ea-9440b7334379" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;div style="border-top: 1px dotted;padding-top: 8px;padding-bottom: 5px;margin-top: 10px;margin-bottom: 0px;font-family: Verdana;font-weight: normal;line-height: 100%;text-align: left;"&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag Start --&gt;
&lt;script type="text/javascript" src="http://ads.aspalliance.com/displayad.aspx?t=3&amp;m=90&amp;guid=4"&gt;&lt;/script&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag End --&gt;
&lt;br clear="all"&gt;
&lt;/div&gt;
  </description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,5a9b618b-4a7e-4570-96ea-9440b7334379.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=6b69d032-bda1-4506-a6b9-49d8fa22446f</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,6b69d032-bda1-4506-a6b9-49d8fa22446f.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,6b69d032-bda1-4506-a6b9-49d8fa22446f.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=6b69d032-bda1-4506-a6b9-49d8fa22446f</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <title>CSLA .NET version 3.5 is now available</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,6b69d032-bda1-4506-a6b9-49d8fa22446f.aspx</guid>
      <link>http://www.lhotka.net/weblog/CSLANETVersion35IsNowAvailable.aspx</link>
      <pubDate>Thu, 03 Apr 2008 14:27:11 GMT</pubDate>
      <description>&lt;p&gt;
&lt;table id=ctl00_ContentPlaceHolder1_GridView1 style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-LEFT-COLOR: #999999; BORDER-BOTTOM-WIDTH: 0px; BORDER-BOTTOM-COLOR: #999999; COLOR: black; BORDER-TOP-COLOR: #999999; BORDER-COLLAPSE: collapse; BACKGROUND-COLOR: white; BORDER-RIGHT-WIDTH: 0px; BORDER-RIGHT-COLOR: #999999" cellspacing=0 cellpadding=3 rules=all border=0&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;span id=ctl00_ContentPlaceHolder1_GridView1_ctl02_Label2&gt; 
&lt;div style="FLOAT: right; MARGIN: 5px"&gt;&lt;a href="http://www.lhotka.net/cslanet"&gt;&lt;img src="http://www.lhotka.net/images/csla_logo1_72.png" width=211 border=0&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
CSLA .NET version 3.5 for .NET 3.5 and Visual Studio 2008 is now available for download
from &lt;a href="http://www.lhotka.net/cslanet/download.aspx"&gt;www.lhotka.net/cslanet/download.aspx&lt;/a&gt;.
This version of CSLA .NET includes support for LINQ and provides substantial code
reduction (often around 40%) when coding your business objects.
&lt;/p&gt;
&lt;p&gt;
Check out the &lt;a href="http://www.dotnetrocks.com/default.aspx?showNum=330"&gt;official
launch announcement &lt;/a&gt;on DotNetRocks!
&lt;/p&gt;
&lt;p&gt;
If you are using .NET 2.0 or 3.0 with Visual Studio 2005 or 2008 then you'll want
to use CSLA .NET version 3.0.4. Version 3.0.4 includes some data binding bug fixes
over version 3.0.3, and it works with .NET 2.0 or .NET 3.0. It is also available from
the &lt;a href="http://www.lhotka.net/cslanet/download.aspx"&gt;download page&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
As always, questions and comments are welcome on the forum at &lt;a href="http://forums.lhotka.net/"&gt;http://forums.lhotka.net&lt;/a&gt;. 
&lt;/p&gt;
&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=6b69d032-bda1-4506-a6b9-49d8fa22446f" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;div style="border-top: 1px dotted;padding-top: 8px;padding-bottom: 5px;margin-top: 10px;margin-bottom: 0px;font-family: Verdana;font-weight: normal;line-height: 100%;text-align: left;"&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag Start --&gt;
&lt;script type="text/javascript" src="http://ads.aspalliance.com/displayad.aspx?t=3&amp;m=90&amp;guid=4"&gt;&lt;/script&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag End --&gt;
&lt;br clear="all"&gt;
&lt;/div&gt;
  </description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,6b69d032-bda1-4506-a6b9-49d8fa22446f.aspx</comments>
      <category>CSLA .NET</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=1bb477b0-0c48-46db-b0de-611af33a262c</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,1bb477b0-0c48-46db-b0de-611af33a262c.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,1bb477b0-0c48-46db-b0de-611af33a262c.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=1bb477b0-0c48-46db-b0de-611af33a262c</wfw:commentRss>
      <title>CSLA .NET class: May 5-7 in Toronto</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,1bb477b0-0c48-46db-b0de-611af33a262c.aspx</guid>
      <link>http://www.lhotka.net/weblog/CSLANETClassMay57InToronto.aspx</link>
      <pubDate>Tue, 25 Mar 2008 02:50:29 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.lhotka.net/cslanet"&gt;&lt;img style="MARGIN: 5px 5px 5px 10px" src="http://www.lhotka.net/images/csla_logo1_42.png" align=right border=0&gt;&lt;/a&gt; Dunn
Training is holding a three day CSLA .NET training class in Toronto, May 5-7. Dunn's
three day class is a great way to jumpstart your use of CSLA .NET, and Toronto is
a fun city, so this is a great opportunity!
&lt;/p&gt;
For details go to &lt;a href="http://www.dunntraining.com/training/schedule.htm"&gt;http://www.dunntraining.com/training/schedule.htm&lt;/a&gt;.&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=1bb477b0-0c48-46db-b0de-611af33a262c" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;div style="border-top: 1px dotted;padding-top: 8px;padding-bottom: 5px;margin-top: 10px;margin-bottom: 0px;font-family: Verdana;font-weight: normal;line-height: 100%;text-align: left;"&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag Start --&gt;
&lt;script type="text/javascript" src="http://ads.aspalliance.com/displayad.aspx?t=3&amp;m=90&amp;guid=4"&gt;&lt;/script&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag End --&gt;
&lt;br clear="all"&gt;
&lt;/div&gt;
  </description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,1bb477b0-0c48-46db-b0de-611af33a262c.aspx</comments>
      <category>CSLA .NET</category>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=84a7fad8-41ff-4eba-abca-1c01da54c791</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,84a7fad8-41ff-4eba-abca-1c01da54c791.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,84a7fad8-41ff-4eba-abca-1c01da54c791.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=84a7fad8-41ff-4eba-abca-1c01da54c791</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <title>Microsoft Tech Ed 2008 is coming up</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,84a7fad8-41ff-4eba-abca-1c01da54c791.aspx</guid>
      <link>http://www.lhotka.net/weblog/MicrosoftTechEd2008IsComingUp.aspx</link>
      <pubDate>Mon, 17 Mar 2008 13:26:55 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="https://www.msteched.com"&gt;&lt;a href="https://www.msteched.com"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="200" alt="n579576978_702761_9418" src="http://www.lhotka.net/weblog/content/binary/WindowsLiveWriter/MicrosoftTechEd2008iscomingup_77DA/n579576978_702761_9418_3.jpg" width="180" align="right" border="0"&gt;&lt;/a&gt;Microsoft
Tech Ed 2008&lt;/a&gt; is coming up in early June. This year they are splitting it into
two parts: IT Pro and Developer, each of which gets a week. I think this is a good
move, as it allows the Developer week to be focused on topics developers care about.
They've done this for a couple years now in Europe and it has been successful there.
&lt;/p&gt;
&lt;p&gt;
The developer week is June 3-6.
&lt;/p&gt;
&lt;p&gt;
I'm a co-chair for the Developer Tools track, which covers Visual Studio, all the
languages and related topics. I think we put together a great set of speakers and
topics in this track, so I'm very excited about it!
&lt;/p&gt;
&lt;p&gt;
I'm also one of the featured speakers, and you can see details about all the featured
speakers in a &lt;a href="https://www.msteched.com/dev/featuredspeakers/default.aspx"&gt;nice
little Silverlight app&lt;/a&gt;. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=84a7fad8-41ff-4eba-abca-1c01da54c791" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;div style="border-top: 1px dotted;padding-top: 8px;padding-bottom: 5px;margin-top: 10px;margin-bottom: 0px;font-family: Verdana;font-weight: normal;line-height: 100%;text-align: left;"&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag Start --&gt;
&lt;script type="text/javascript" src="http://ads.aspalliance.com/displayad.aspx?t=3&amp;m=90&amp;guid=4"&gt;&lt;/script&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag End --&gt;
&lt;br clear="all"&gt;
&lt;/div&gt;
  </description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,84a7fad8-41ff-4eba-abca-1c01da54c791.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.lhotka.net/weblog/Trackback.aspx?guid=8a07ef3c-7d00-4a7a-bcae-25972d9364d2</trackback:ping>
      <pingback:server>http://www.lhotka.net/weblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.lhotka.net/weblog/PermaLink,guid,8a07ef3c-7d00-4a7a-bcae-25972d9364d2.aspx</pingback:target>
      <dc:creator>Rockford Lhotka</dc:creator>
      <wfw:comment>http://www.lhotka.net/weblog/CommentView,guid,8a07ef3c-7d00-4a7a-bcae-25972d9364d2.aspx</wfw:comment>
      <wfw:commentRss>http://www.lhotka.net/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=8a07ef3c-7d00-4a7a-bcae-25972d9364d2</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <title>Webcast on SOA, REST and related topics</title>
      <guid isPermaLink="false">http://www.lhotka.net/weblog/PermaLink,guid,8a07ef3c-7d00-4a7a-bcae-25972d9364d2.aspx</guid>
      <link>http://www.lhotka.net/weblog/WebcastOnSOARESTAndRelatedTopics.aspx</link>
      <pubDate>Mon, 17 Mar 2008 00:32:37 GMT</pubDate>
      <description>&lt;p&gt;
I recently participated in a webcast covering SOA, REST and various related topics.
You can listen to it here
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.slickthought.net/post/Minneapolis-Developer-Roundtable-Podcast---Talking-REST.aspx"&gt;http://www.slickthought.net/post/Minneapolis-Developer-Roundtable-Podcast---Talking-REST.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.lhotka.net/weblog/aggbug.ashx?id=8a07ef3c-7d00-4a7a-bcae-25972d9364d2" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;div style="border-top: 1px dotted;padding-top: 8px;padding-bottom: 5px;margin-top: 10px;margin-bottom: 0px;font-family: Verdana;font-weight: normal;line-height: 100%;text-align: left;"&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag Start --&gt;
&lt;script type="text/javascript" src="http://ads.aspalliance.com/displayad.aspx?t=3&amp;m=90&amp;guid=4"&gt;&lt;/script&gt;
&lt;!-- Text Ads - Product Spotlight Ad Tag End --&gt;
&lt;br clear="all"&gt;
&lt;/div&gt;
  </description>
      <comments>http://www.lhotka.net/weblog/CommentView,guid,8a07ef3c-7d00-4a7a-bcae-25972d9364d2.aspx</comments>
      <category>Service-Oriented</category>
    </item>
  </channel>
</rss>