<?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>Brian Noyes' Blog - DevConnections</title>
    <link>http://briannoyes.net/</link>
    <description>.NET Ramblings</description>
    <language>en-us</language>
    <copyright>Brian Noyes</copyright>
    <lastBuildDate>Mon, 26 Mar 2007 22:43:18 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.12105.0</generator>
    <managingEditor>brian.noyes@gmail.com</managingEditor>
    <webMaster>brian.noyes@gmail.com</webMaster>
    <item>
      <trackback:ping>http://briannoyes.net/Trackback.aspx?guid=86567802-cb16-4697-8b77-8f4b99fe2f61</trackback:ping>
      <pingback:server>http://briannoyes.net/pingback.aspx</pingback:server>
      <pingback:target>http://briannoyes.net/PermaLink,guid,86567802-cb16-4697-8b77-8f4b99fe2f61.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://briannoyes.net/CommentView,guid,86567802-cb16-4697-8b77-8f4b99fe2f61.aspx</wfw:comment>
      <wfw:commentRss>http://briannoyes.net/SyndicationService.asmx/GetEntryCommentsRss?guid=86567802-cb16-4697-8b77-8f4b99fe2f61</wfw:commentRss>
      <slash:comments>7</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've arrived in Orlando and am looking forward to giving my sessions tomorrow and
Wed in the Visual Studio connections track. I'll be presenting the following sessions:
</p>
        <p>
- WPF in Windows Forms and vice versa: This talk will cover the interop story for
containing WPF controls in Windows Forms applications and Windows Forms controls in
WPF applications. Quite a compelling story for migrating incrementally to WPF, but
not without its share of pain points.
</p>
        <p>
- Real World .NET 3.0 Smart Client Deployment: This is a modification of my Real World
ClickOnce talk, covering the key aspects of ClickOnce deployment but with a slant
towards the special considerations introduced by .NET 3.0 for security and WPF deployment
models.
</p>
        <p>
- Encapsulate Business Processes in Custom WF Activities: This talk covers how to
create custom simple and composite WF activities and all the many things you need
to take into consideration to make a robust, reusable activity.
</p>
        <p>
This year the conferences is at the World Center Marriott, a change from the Hyatt
Grand Regency of the last few years. Verdict is still out whether this is an improvement...
</p>
        <img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=86567802-cb16-4697-8b77-8f4b99fe2f61" />
      </body>
      <title>DevConnections Orlando - a tale of three sessions</title>
      <guid isPermaLink="false">http://briannoyes.net/PermaLink,guid,86567802-cb16-4697-8b77-8f4b99fe2f61.aspx</guid>
      <link>http://briannoyes.net/2007/03/26/DevConnectionsOrlandoATaleOfThreeSessions.aspx</link>
      <pubDate>Mon, 26 Mar 2007 22:43:18 GMT</pubDate>
      <description>&lt;p&gt;
I've arrived in Orlando and am looking forward to giving my sessions tomorrow and
Wed in the Visual Studio connections track. I'll be presenting the following sessions:
&lt;/p&gt;
&lt;p&gt;
- WPF in Windows Forms and vice versa: This talk will cover the interop story for
containing WPF controls in Windows Forms applications and Windows Forms controls in
WPF applications. Quite a compelling story for migrating incrementally to WPF, but
not without its share of pain points.
&lt;/p&gt;
&lt;p&gt;
- Real World .NET 3.0 Smart Client Deployment: This is a modification of my Real World
ClickOnce talk, covering the key aspects of ClickOnce deployment but with a slant
towards the special considerations introduced by .NET 3.0 for security and WPF deployment
models.
&lt;/p&gt;
&lt;p&gt;
- Encapsulate Business Processes in Custom WF Activities: This talk covers how to
create custom simple and composite WF activities and all the many things you need
to take into consideration to make a robust, reusable activity.
&lt;/p&gt;
&lt;p&gt;
This year the conferences is at the World Center Marriott, a change from the Hyatt
Grand Regency of the last few years. Verdict is still out whether this is an improvement...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=86567802-cb16-4697-8b77-8f4b99fe2f61" /&gt;</description>
      <comments>http://briannoyes.net/CommentView,guid,86567802-cb16-4697-8b77-8f4b99fe2f61.aspx</comments>
      <category>.NET</category>
      <category>.NET 3.0</category>
      <category>DevConnections</category>
      <category>Speaking</category>
    </item>
    <item>
      <trackback:ping>http://briannoyes.net/Trackback.aspx?guid=a0e9b379-5eab-4385-a4a0-069b28f39fa0</trackback:ping>
      <pingback:server>http://briannoyes.net/pingback.aspx</pingback:server>
      <pingback:target>http://briannoyes.net/PermaLink,guid,a0e9b379-5eab-4385-a4a0-069b28f39fa0.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://briannoyes.net/CommentView,guid,a0e9b379-5eab-4385-a4a0-069b28f39fa0.aspx</wfw:comment>
      <wfw:commentRss>http://briannoyes.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a0e9b379-5eab-4385-a4a0-069b28f39fa0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Another great conference complete. Around 5000 showed up and we had great feedback
from the crowd that it was a good show. If you haven't been to connections before,
you really should check it out.
</p>
        <p>
I gave three talks this week. You can get the slides and demos for each below.
</p>
        <p>
Real World ClickOnce:  <a href="http://www.softinsight.com/downloads/Conferences/DevConnections/VDP301_RealWorldClickOnce.pdf">Slides</a>   <a href="http://www.softinsight.com/downloads/Conferences/DevConnections/RealWorldClickOnceDemos.zip">Demos</a><br />
Workflow Driven Windows Applications:  <a href="http://www.softinsight.com/downloads/Conferences/DevConnections/VWX301_WorkflowDrivenWindowsApplications.pdf">Slides</a>   <a href="http://www.softinsight.com/downloads/Conferences/DevConnections/WorkflowWindowsAppDemos.zip">Demos</a><br />
Implement a Data Layer with the VS 2005 DataSet Designer:  <a href="http://www.softinsight.com/downloads/Conferences/DevConnections/VDA302_ImplementDataLayerwithDataSetDesigner.pdf">Slides</a>   <a href="http://www.softinsight.com/downloads/Conferences/DevConnections/DataSetDesignerDemos.zip">Demos</a></p>
        <img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=a0e9b379-5eab-4385-a4a0-069b28f39fa0" />
      </body>
      <title>DevConnections Vegas Slides and Demos</title>
      <guid isPermaLink="false">http://briannoyes.net/PermaLink,guid,a0e9b379-5eab-4385-a4a0-069b28f39fa0.aspx</guid>
      <link>http://briannoyes.net/2006/11/10/DevConnectionsVegasSlidesAndDemos.aspx</link>
      <pubDate>Fri, 10 Nov 2006 02:02:33 GMT</pubDate>
      <description>&lt;p&gt;
Another great conference complete. Around 5000 showed up and we had great feedback
from the crowd that it was a good show. If you haven't been to connections before,
you really should check it out.
&lt;/p&gt;
&lt;p&gt;
I gave three talks this week. You can get the slides and demos for each below.
&lt;/p&gt;
&lt;p&gt;
Real World ClickOnce:&amp;nbsp; &lt;a href="http://www.softinsight.com/downloads/Conferences/DevConnections/VDP301_RealWorldClickOnce.pdf"&gt;Slides&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.softinsight.com/downloads/Conferences/DevConnections/RealWorldClickOnceDemos.zip"&gt;Demos&lt;/a&gt;
&lt;br&gt;
Workflow Driven Windows Applications:&amp;nbsp; &lt;a href="http://www.softinsight.com/downloads/Conferences/DevConnections/VWX301_WorkflowDrivenWindowsApplications.pdf"&gt;Slides&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.softinsight.com/downloads/Conferences/DevConnections/WorkflowWindowsAppDemos.zip"&gt;Demos&lt;/a&gt;
&lt;br&gt;
Implement a Data Layer with the VS 2005 DataSet Designer:&amp;nbsp; &lt;a href="http://www.softinsight.com/downloads/Conferences/DevConnections/VDA302_ImplementDataLayerwithDataSetDesigner.pdf"&gt;Slides&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.softinsight.com/downloads/Conferences/DevConnections/DataSetDesignerDemos.zip"&gt;Demos&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=a0e9b379-5eab-4385-a4a0-069b28f39fa0" /&gt;</description>
      <comments>http://briannoyes.net/CommentView,guid,a0e9b379-5eab-4385-a4a0-069b28f39fa0.aspx</comments>
      <category>.NET</category>
      <category>.NET 3.0</category>
      <category>Architecture</category>
      <category>ClickOnce</category>
      <category>Data Binding</category>
      <category>DevConnections</category>
      <category>Speaking</category>
    </item>
    <item>
      <trackback:ping>http://briannoyes.net/Trackback.aspx?guid=9a313063-56d6-417b-bb27-8c23404a10fa</trackback:ping>
      <pingback:server>http://briannoyes.net/pingback.aspx</pingback:server>
      <pingback:target>http://briannoyes.net/PermaLink,guid,9a313063-56d6-417b-bb27-8c23404a10fa.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://briannoyes.net/CommentView,guid,9a313063-56d6-417b-bb27-8c23404a10fa.aspx</wfw:comment>
      <wfw:commentRss>http://briannoyes.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9a313063-56d6-417b-bb27-8c23404a10fa</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I presented four sessions at DevConnections last week and have been a little remiss
on getting the slides and demos posted, but here they are:
</p>
        <p>
Secure ClickOnce Deployments:  <a href="http://www.softinsight.com/downloads/DevConnections/VSC302_SecureSmartClientClickOnceDeployments.pdf">Slides</a>   <a href="http://www.softinsight.com/downloads/DevConnections/VSC302-SecureClickOnceDemos.zip">Demos</a></p>
        <p>
Connecting Smart Clients with WCF: <a href="http://www.softinsight.com/downloads/DevConnections/VWF302_SmartClientConnectivitywithWCF.pdf">Slides</a>   <a href="http://www.softinsight.com/downloads/DevConnections/VFW302-ConnectingSmartClientsWCFDemos.zip">Demos</a></p>
        <p>
Drive Application Behavior with User and Application Settings:  <a href="http://www.softinsight.com/downloads/DevConnections/VAC301-DriveApplicationBehaviorwithApplicationandUserConfigurationSettings.pdf">Slides</a>   <a href="http://www.softinsight.com/downloads/DevConnections/VAC301-SettingsDemos.zip">Demos</a></p>
        <p>
Build a Data Access Layer with Enterprise Library Data Access Block:  <a href="http://www.softinsight.com/downloads/DevConnections/APP301-ImplementaDataAccessLayerwithEntLib.pdf">Slides</a>  <a href="http://www.softinsight.com/downloads/DevConnections/App301-DAABDemos.zip">Demos</a></p>
        <img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=9a313063-56d6-417b-bb27-8c23404a10fa" />
      </body>
      <title>Slides and Demos from DevConnections Last Week</title>
      <guid isPermaLink="false">http://briannoyes.net/PermaLink,guid,9a313063-56d6-417b-bb27-8c23404a10fa.aspx</guid>
      <link>http://briannoyes.net/2006/04/11/SlidesAndDemosFromDevConnectionsLastWeek.aspx</link>
      <pubDate>Tue, 11 Apr 2006 14:26:41 GMT</pubDate>
      <description>&lt;p&gt;
I presented four sessions at DevConnections last week and have been a little remiss
on getting the slides and demos posted, but here they are:
&lt;/p&gt;
&lt;p&gt;
Secure ClickOnce Deployments:&amp;nbsp; &lt;a href="http://www.softinsight.com/downloads/DevConnections/VSC302_SecureSmartClientClickOnceDeployments.pdf"&gt;Slides&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.softinsight.com/downloads/DevConnections/VSC302-SecureClickOnceDemos.zip"&gt;Demos&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Connecting Smart Clients with WCF: &lt;a href="http://www.softinsight.com/downloads/DevConnections/VWF302_SmartClientConnectivitywithWCF.pdf"&gt;Slides&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.softinsight.com/downloads/DevConnections/VFW302-ConnectingSmartClientsWCFDemos.zip"&gt;Demos&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Drive Application Behavior with User and Application Settings:&amp;nbsp; &lt;a href="http://www.softinsight.com/downloads/DevConnections/VAC301-DriveApplicationBehaviorwithApplicationandUserConfigurationSettings.pdf"&gt;Slides&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.softinsight.com/downloads/DevConnections/VAC301-SettingsDemos.zip"&gt;Demos&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Build a Data Access Layer with Enterprise Library Data Access Block:&amp;nbsp; &lt;a href="http://www.softinsight.com/downloads/DevConnections/APP301-ImplementaDataAccessLayerwithEntLib.pdf"&gt;Slides&lt;/a&gt;&amp;nbsp; &lt;a href="http://www.softinsight.com/downloads/DevConnections/App301-DAABDemos.zip"&gt;Demos&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=9a313063-56d6-417b-bb27-8c23404a10fa" /&gt;</description>
      <comments>http://briannoyes.net/CommentView,guid,9a313063-56d6-417b-bb27-8c23404a10fa.aspx</comments>
      <category>.NET</category>
      <category>ClickOnce</category>
      <category>DevConnections</category>
      <category>Languages and Tools</category>
      <category>Speaking</category>
    </item>
    <item>
      <trackback:ping>http://briannoyes.net/Trackback.aspx?guid=9f288f62-c155-445f-9655-660bdd98b220</trackback:ping>
      <pingback:server>http://briannoyes.net/pingback.aspx</pingback:server>
      <pingback:target>http://briannoyes.net/PermaLink,guid,9f288f62-c155-445f-9655-660bdd98b220.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://briannoyes.net/CommentView,guid,9f288f62-c155-445f-9655-660bdd98b220.aspx</wfw:comment>
      <wfw:commentRss>http://briannoyes.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9f288f62-c155-445f-9655-660bdd98b220</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I gave two WCF (Indigo) talks at DevConnections today:
</p>
        <p>
Build Event Driven Applications with Indigo:   <a href="http://www.softinsight.com/bnoyes/ct.ashx?id=70eec0be-72c8-4287-9b2d-3f75adbe1a1f&amp;url=http%3a%2f%2fwww.softinsight.com%2fdownloads%2fDevConnections/BuildEventDrivenApplicationswithIndigo.pdf">Slides</a>   <a href="http://www.softinsight.com/bnoyes/ct.ashx?id=70eec0be-72c8-4287-9b2d-3f75adbe1a1f&amp;url=http%3a%2f%2fwww.softinsight.com%2fdownloads%2fDevConnections%2fEventDrivenApplicationsDemos.zip">Demos</a></p>
        <p>
Connecting Smart Client Applications with Indigo:  <a href="http://www.softinsight.com/bnoyes/ct.ashx?id=70eec0be-72c8-4287-9b2d-3f75adbe1a1f&amp;url=http%3a%2f%2fwww.softinsight.com%2fdownloads%2fDevConnections%2fConnectingSmartClientApplicationswithIndigo.pdf">Slides</a>   <a href="http://www.softinsight.com/bnoyes/ct.ashx?id=70eec0be-72c8-4287-9b2d-3f75adbe1a1f&amp;url=http%3a%2f%2fwww.softinsight.com%2fdownloads%2fDevConnections%2fConnectingSmartClientsDemos.zip">Demos</a></p>
        <p>
In the Event Driven Applications session I cover creating list based subscription
services with direct callback services in the clients, using duplex channels to set
up callbacks, and a Pub-Sub implementation that gives loosely coupled events that
I will have more information on here in the near future.
</p>
        <p>
In the smart client session, I covered client concerns with respect to channel selection,
asynchronous calls, sessions, transactions, callbacks, security, and peer-to-peer.
</p>
        <p>
Good time!
</p>
        <img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=9f288f62-c155-445f-9655-660bdd98b220" />
      </body>
      <title>WCF Talks: Event Driven Applications and Connecting Smart Clients</title>
      <guid isPermaLink="false">http://briannoyes.net/PermaLink,guid,9f288f62-c155-445f-9655-660bdd98b220.aspx</guid>
      <link>http://briannoyes.net/2005/11/11/WCFTalksEventDrivenApplicationsAndConnectingSmartClients.aspx</link>
      <pubDate>Fri, 11 Nov 2005 02:41:25 GMT</pubDate>
      <description>&lt;p&gt;
I gave two WCF (Indigo) talks at DevConnections today:
&lt;/p&gt;
&lt;p&gt;
Build Event Driven Applications with Indigo:&amp;nbsp;&amp;nbsp; &lt;a href="http://www.softinsight.com/bnoyes/ct.ashx?id=70eec0be-72c8-4287-9b2d-3f75adbe1a1f&amp;amp;url=http%3a%2f%2fwww.softinsight.com%2fdownloads%2fDevConnections/BuildEventDrivenApplicationswithIndigo.pdf"&gt;Slides&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.softinsight.com/bnoyes/ct.ashx?id=70eec0be-72c8-4287-9b2d-3f75adbe1a1f&amp;amp;url=http%3a%2f%2fwww.softinsight.com%2fdownloads%2fDevConnections%2fEventDrivenApplicationsDemos.zip"&gt;Demos&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Connecting Smart Client Applications with Indigo:&amp;nbsp; &lt;a href="http://www.softinsight.com/bnoyes/ct.ashx?id=70eec0be-72c8-4287-9b2d-3f75adbe1a1f&amp;amp;url=http%3a%2f%2fwww.softinsight.com%2fdownloads%2fDevConnections%2fConnectingSmartClientApplicationswithIndigo.pdf"&gt;Slides&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.softinsight.com/bnoyes/ct.ashx?id=70eec0be-72c8-4287-9b2d-3f75adbe1a1f&amp;amp;url=http%3a%2f%2fwww.softinsight.com%2fdownloads%2fDevConnections%2fConnectingSmartClientsDemos.zip"&gt;Demos&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
In the Event Driven Applications session I cover creating list based subscription
services with direct callback services in the clients, using duplex channels to set
up callbacks, and a Pub-Sub implementation that gives loosely coupled events that
I will have more information on here in the near future.
&lt;/p&gt;
&lt;p&gt;
In the smart client session, I covered client concerns with respect to channel selection,
asynchronous calls, sessions, transactions, callbacks, security, and peer-to-peer.
&lt;/p&gt;
&lt;p&gt;
Good time!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=9f288f62-c155-445f-9655-660bdd98b220" /&gt;</description>
      <comments>http://briannoyes.net/CommentView,guid,9f288f62-c155-445f-9655-660bdd98b220.aspx</comments>
      <category>.NET</category>
      <category>DevConnections</category>
      <category>Languages and Tools</category>
      <category>Speaking</category>
    </item>
    <item>
      <trackback:ping>http://briannoyes.net/Trackback.aspx?guid=70eec0be-72c8-4287-9b2d-3f75adbe1a1f</trackback:ping>
      <pingback:server>http://briannoyes.net/pingback.aspx</pingback:server>
      <pingback:target>http://briannoyes.net/PermaLink,guid,70eec0be-72c8-4287-9b2d-3f75adbe1a1f.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://briannoyes.net/CommentView,guid,70eec0be-72c8-4287-9b2d-3f75adbe1a1f.aspx</wfw:comment>
      <wfw:commentRss>http://briannoyes.net/SyndicationService.asmx/GetEntryCommentsRss?guid=70eec0be-72c8-4287-9b2d-3f75adbe1a1f</wfw:commentRss>
      <title>Secure ClickOnce Demployment Talk at DevConnections yesterday</title>
      <guid isPermaLink="false">http://briannoyes.net/PermaLink,guid,70eec0be-72c8-4287-9b2d-3f75adbe1a1f.aspx</guid>
      <link>http://briannoyes.net/2005/11/11/SecureClickOnceDemploymentTalkAtDevConnectionsYesterday.aspx</link>
      <pubDate>Fri, 11 Nov 2005 02:33:37 GMT</pubDate>
      <description>&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;My
second session of the day yesterday at DevConnections was on ClickOnce deployments,
and specifically the various security protections and options that ClickOnce offers
for preventing unauthorized applications from being able to run through a ClickOnce
launch.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;You can grab the
slides and demos here:&amp;nbsp; &lt;a href="http://www.softinsight.com/downloads/DevConnections/SecureSmartClientClickOnceDeployments.pdf"&gt;Slides&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.softinsight.com/downloads/DevConnections/SecureClickOnceDemos.zip"&gt;Demos&lt;o:p&gt;&lt;/o:p&gt;
&lt;/a&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;Some of the key
takeaways from this session were the following:&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;ul type=disc&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: #003300; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;ClickOnce provides a simple, powerful,
and easy to use mechanism for deploying smart client applications with minimal maintenance
effort and IT Admin involvement&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: #003300; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;ClickOnce provides runtime security
protections through the Code Access Security (CAS) infrastructure of .NET to prevent
applications launched from ClickOnce from being granted permissions to perform any
operations or access any resources that the application was not specifically allowed
to do.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: #003300; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;ClickOnce app default permissions
are determined by the launch URL and how it maps to built-in CAS location-based code
groups (MyComputer, LocalIntranet, Internet, TrustedSites, UntrustedSites).&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: #003300; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;If the application manifest requests
permissions greater than those that would be granted based on the CAS location-based
code groups, permission elevation needs to occur. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: #003300; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;By default, permissions can be
elevated in one of two ways: user prompting or trusted publishers.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: #003300; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;If an application is launched
through a link to a deployment manifest that is signed by a publisher certificate
that is not in the Trusted Publishers certificate store on the client machine, the
user will be prompted by default and can accept or reject the application. If they
accept it, the permissions for that application will be elevated to whatever permissions
the application manifest has requested.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: #003300; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;If an application is launched
that was signed with a publisher certificate that is in the client machine's Trusted
Publishers certificate store, then no user prompting will occur and the application
permissions will be automatically elevated to whatever the application manifest requests
because it is coming from a trusted source identified implicitly by IT admin when
they installed the publisher certificate in the Trusted Publishers store.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;If
you want to prevent the user from ever being prompted and only allow applications
from trusted publishers to be launched through ClickOnce (a good idea in an enterprise
environment), then you should create the registry key discussed in the slides from
the session and set the string values to Disabled for all the zones.&lt;/span&gt;&lt;img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=70eec0be-72c8-4287-9b2d-3f75adbe1a1f" /&gt;</description>
      <comments>http://briannoyes.net/CommentView,guid,70eec0be-72c8-4287-9b2d-3f75adbe1a1f.aspx</comments>
      <category>.NET</category>
      <category>ClickOnce</category>
      <category>DevConnections</category>
      <category>Languages and Tools</category>
      <category>Speaking</category>
    </item>
    <item>
      <trackback:ping>http://briannoyes.net/Trackback.aspx?guid=70acabc4-8554-43cc-8511-c2f6a2827942</trackback:ping>
      <pingback:server>http://briannoyes.net/pingback.aspx</pingback:server>
      <pingback:target>http://briannoyes.net/PermaLink,guid,70acabc4-8554-43cc-8511-c2f6a2827942.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://briannoyes.net/CommentView,guid,70acabc4-8554-43cc-8511-c2f6a2827942.aspx</wfw:comment>
      <wfw:commentRss>http://briannoyes.net/SyndicationService.asmx/GetEntryCommentsRss?guid=70acabc4-8554-43cc-8511-c2f6a2827942</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just got finished doing my first talk here at DevConnections in Vegas and I think
it went pretty well. Great crowd, good questions, fun topic. 
</p>
        <p>
You can grab the slides and demos here: <a href="http://www.softinsight.com/downloads/DevConnections/BuildCustomDataBoundBusinessObjectsandCollections.pdf">Slides </a>  <a href="http://www.softinsight.com/downloads/DevConnections/DataBoundObjectsDemos.zip">Demos</a></p>
        <p>
The talk highlighted how to define custom objects and collections to make them suitable
for data binding, mostly for Windows Forms, but some of it is applicable to ASP.NET
as well.
</p>
        <p>
The key takeaways from the talk are:
</p>
        <ul>
          <li>
Implement INotifyPropertyChanged on any business entitity type you define that you
expect to use in data binding scenarios. This interface defines a contract for the
objects to raise PropertyChanged events whenever a property is set on the object.
It allows containing collections or bound controls to be notified when the contents
of the data object change, which helps with keeping controls synchronized in a form. 
</li>
          <li>
Use BindingList&lt;T&gt; to create strongly typed collections of objects that support
rich data binding. It provides full implementation of IList, ICollection, IEnumerable
and their generic strongly typed counterparts for whatever type parameter you provide,
and it provides a partial implementation of the IBindingList interface. The part that
it implements is firing ListChanged events when items are added or removed from the
collection. It also looks at the objects type that you provide as a type parameter,
and if it implements INotifyPropertyChanged, the collection will subscribe to the
PropertyChanged event on each object and raise ListChanged events with a change type
of PropertyChanged whenever the contents of an object in the collection change. These
features make BindingList&lt;T&gt; collections work seamlessly with data binding to
multiple controls and keeps the controls all in sync. 
</li>
          <li>
Use my BindingListView&lt;T&gt; class (in the demos and in my book) to get a generic
container that supports sorting (both IBindingList based single property sorts and
IBindingListView multi-property sorts), searching, and filtering.</li>
        </ul>
        <p>
If you were there at the end and saw the on-the-fly demo where I didn't see the saving
behavior that I thought I had just implemented, I tracked down the problem. the changes
were actually being saved. It was just the way I hooked up the data binding I wasn't
seeing those changes. 
</p>
        <p>
In the demo, I used the data sources window to generate a Details view (control collection)
bound to a collection of Album data. I changed one of the controls in the collection
which was bound to a GenreID property on the Album objects to a ComboBox. I then used
the Data Sources window to add data binidng to a Genre object collection to populate
the list of Genres in the combo box. This sets up the ComboBox to have its contents
determined by the Genre collection, but its SelectedValue property is bound to the
GenreID property on the current item in the Album collection - generally exactly what
you want to be able to edit a property on one object collection item through a lookup
list of values in another collection of objects. The problem was that after I selected
a new value in the combo box and saved the changes, then restarted the app, I wasn't
seeing the modified value set for the Album I was viewing in the other controls.
</p>
        <p>
It turns out the problem was just the order that I did the initial binding of the
control collection and the combobox BindingSources. In the form load I had added the
following two lines of code to bind the control collection and the combo box binding
sources:
</p>
        <p>
albumBindingSource.DataSource = <font color="#008080">Album</font><font size="4"><font size="2">.GetAlbums();<br />
genreBindingSource.DataSource = <font color="#008080">Genre</font>.GetGenres();</font></font></p>
        <p>
          <font size="4">
            <font size="2">The problem is that when you set the DataSource, that
is when it intializes the bound controls. So I was initializing the data bindings
for all of the controls based on the album data, then intializing the combo box of
Genres with a new set of data. That set the SelectedIndex of the ComboBox back to
zero, so I wasn't seeing the actual value of the Genre for the current Album, I was
just seeing the first Genre value in the Genre collection. The fix is simply to do
the initial binding in the reverse order:</font>
          </font>
        </p>
        <font size="4">
          <font size="2">
            <p>
              <font size="4">
                <font size="2">genreBindingSource.DataSource = <font color="#008080">Genre</font>.GetGenres();<br />
albumBindingSource.DataSource = <font color="#008080">Album</font><font size="4"><font size="2">.GetAlbums();</font></font></font>
              </font>
            </p>
            <p>
Then it works as expected.
</p>
            <p>
Some resources I mentioned in the talk, as well as some additional ones I gave related
to after-session questions:
</p>
            <p>
My Book: Data Binding in Windows Forms 2.0, Addison Wesley, January 2006<br /><a href="http://www.amazon.com/exec/obidos/ASIN/032126892X/qid%3D1124482085/sr%3D11-1/ref%3Dsr%5F11%5F1/102-3039504-6850510">http://www.amazon.com/exec/obidos/ASIN/032126892X/qid%3D1124482085/sr%3D11-1/ref%3Dsr%5F11%5F1/102-3039504-6850510</a><br />
Rocky Lhotka binding refresh problem post:<br /><a href="http://www.lhotka.net/WeBlog/PermaLink.aspx?guid=d8306469-7e76-4734-9811-777498808b85">http://www.lhotka.net/WeBlog/PermaLink.aspx?guid=d8306469-7e76-4734-9811-777498808b85</a><br />
Rocky Lhotka article on binding to business objects: Windows Forms Object Data Binding
in .NET 2.0, 15seconds.com, <a href="http://www.15seconds.com/issue/040614.htm">http://www.15seconds.com/issue/040614.htm</a><br />
My recent article on The Server Side .NET: Build a Data Access Layer with the Visual
Studio DataSet Designer, The Server Side .NET, Oct 2005, <a href="http://www.theserverside.net/articles/showarticle.tss?id=DataSetDesigner">http://www.theserverside.net/articles/showarticle.tss?id=DataSetDesigner</a><br />
My recent article in CoDe magazine: Tackle Complex Data Binding in Windows Forms 2.0,
CoDe Magazine, July/Aug 2005, <a href="http://www.code-magazine.com/Article.aspx?quickid=0507051">http://www.code-magazine.com/Article.aspx?quickid=0507051</a><font size="4"><font size="2"><font size="4"><font size="2"></font></font></font></font></p>
          </font>
        </font>
        <p>
          <span style="FONT-SIZE: 111%; COLOR: #ffff66">
            <font color="#000000">Enjoy!</font>
          </span>
        </p>
        <img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=70acabc4-8554-43cc-8511-c2f6a2827942" />
      </body>
      <title>Build Custom Data Bound Business Objects and Collections Talk at DevConnections this morning</title>
      <guid isPermaLink="false">http://briannoyes.net/PermaLink,guid,70acabc4-8554-43cc-8511-c2f6a2827942.aspx</guid>
      <link>http://briannoyes.net/2005/11/09/BuildCustomDataBoundBusinessObjectsAndCollectionsTalkAtDevConnectionsThisMorning.aspx</link>
      <pubDate>Wed, 09 Nov 2005 20:26:45 GMT</pubDate>
      <description>&lt;p&gt;
I just got finished doing my first talk here at DevConnections in Vegas and I think
it went pretty well. Great crowd, good questions, fun topic. 
&lt;/p&gt;
&lt;p&gt;
You can grab the slides and demos here: &lt;a href="http://www.softinsight.com/downloads/DevConnections/BuildCustomDataBoundBusinessObjectsandCollections.pdf"&gt;Slides&amp;nbsp;&lt;/a&gt;&amp;nbsp; &lt;a href="http://www.softinsight.com/downloads/DevConnections/DataBoundObjectsDemos.zip"&gt;Demos&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The talk highlighted how to define custom objects and collections to make them suitable
for data binding, mostly for Windows Forms, but some of it is applicable to ASP.NET
as well.
&lt;/p&gt;
&lt;p&gt;
The key takeaways from the talk are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Implement INotifyPropertyChanged on any business entitity type you define that you
expect to use in data binding scenarios. This interface defines a contract for the
objects to raise PropertyChanged events whenever a property is set on the object.
It allows containing collections or bound controls to be notified when the contents
of the data object change, which helps with keeping controls synchronized in a form. 
&lt;li&gt;
Use BindingList&amp;lt;T&amp;gt; to create strongly typed collections of objects that support
rich data binding. It provides full implementation of IList, ICollection, IEnumerable
and their generic strongly typed counterparts for whatever type parameter you provide,
and it provides a partial implementation of the IBindingList interface. The part that
it implements is firing ListChanged events when items are added or removed from the
collection. It also looks at the objects type that you provide as a type parameter,
and if it implements INotifyPropertyChanged, the collection will subscribe to the
PropertyChanged event on each object and raise ListChanged events with a change type
of PropertyChanged whenever the contents of an object in the collection change. These
features make BindingList&amp;lt;T&amp;gt; collections work seamlessly with data binding to
multiple controls and keeps the controls all in sync. 
&lt;li&gt;
Use my BindingListView&amp;lt;T&amp;gt; class (in the demos and in my book) to get a generic
container that supports sorting (both IBindingList based single property sorts and
IBindingListView multi-property sorts), searching, and filtering.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
If you were there at the end and saw the on-the-fly demo where I didn't see the saving
behavior that I thought I had just implemented, I tracked down the problem. the changes
were actually being saved. It was just the way I hooked up the data binding I wasn't
seeing those changes. 
&lt;/p&gt;
&lt;p&gt;
In the demo, I used the data sources window to generate a Details view (control collection)
bound to a collection of Album data. I changed one of the controls in the collection
which was bound to a GenreID property on the Album objects to a ComboBox. I then used
the Data Sources window to add data binidng to a Genre object collection to populate
the list of Genres in the combo box. This sets up the ComboBox to have its contents
determined by the Genre collection, but its SelectedValue property is bound to the
GenreID property on the current item in the Album collection - generally exactly what
you want to be able to edit a property on one object collection item through a lookup
list of values in another collection of objects. The problem was that after I selected
a new value in the combo box and saved the changes, then restarted the app, I wasn't
seeing the modified value set for the Album I was viewing in the other controls.
&lt;/p&gt;
&lt;p&gt;
It turns out the problem was just the order that I did the initial binding of the
control collection and the combobox BindingSources. In the form load I had added the
following two lines of code to bind the control collection and the combo box binding
sources:
&lt;/p&gt;
&lt;p&gt;
albumBindingSource.DataSource = &lt;font color=#008080&gt;Album&lt;/font&gt;&lt;font size=4&gt;&lt;font size=2&gt;.GetAlbums();&lt;br&gt;
genreBindingSource.DataSource = &lt;font color=#008080&gt;Genre&lt;/font&gt;.GetGenres();&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=4&gt;&lt;font size=2&gt;The problem is that when you set the DataSource, that is
when it intializes the bound controls. So I was initializing the data bindings for
all of the controls based on the album data, then intializing the combo box of Genres
with a new set of data. That set the SelectedIndex of the ComboBox back to zero, so
I wasn't seeing the actual value of the Genre for the current Album, I was just seeing
the first Genre value in the Genre collection. The fix is simply to do the initial
binding in the reverse order:&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;font size=4&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;font size=4&gt;&lt;font size=2&gt;genreBindingSource.DataSource = &lt;font color=#008080&gt;Genre&lt;/font&gt;.GetGenres();&lt;br&gt;
albumBindingSource.DataSource = &lt;font color=#008080&gt;Album&lt;/font&gt;&lt;font size=4&gt;&lt;font size=2&gt;.GetAlbums();&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Then it works as expected.
&lt;/p&gt;
&lt;p&gt;
Some resources I mentioned in the talk, as well as some additional ones I gave related
to after-session questions:
&lt;/p&gt;
&lt;p&gt;
My Book: Data Binding in Windows Forms 2.0, Addison Wesley, January 2006&lt;br&gt;
&lt;a href="http://www.amazon.com/exec/obidos/ASIN/032126892X/qid%3D1124482085/sr%3D11-1/ref%3Dsr%5F11%5F1/102-3039504-6850510"&gt;http://www.amazon.com/exec/obidos/ASIN/032126892X/qid%3D1124482085/sr%3D11-1/ref%3Dsr%5F11%5F1/102-3039504-6850510&lt;/a&gt; 
&lt;br&gt;
Rocky Lhotka binding refresh problem post:&lt;br&gt;
&lt;a href="http://www.lhotka.net/WeBlog/PermaLink.aspx?guid=d8306469-7e76-4734-9811-777498808b85"&gt;http://www.lhotka.net/WeBlog/PermaLink.aspx?guid=d8306469-7e76-4734-9811-777498808b85&lt;/a&gt; 
&lt;br&gt;
Rocky Lhotka article on binding to business objects: Windows Forms Object Data Binding
in .NET 2.0, 15seconds.com, &lt;a href="http://www.15seconds.com/issue/040614.htm"&gt;http://www.15seconds.com/issue/040614.htm&lt;/a&gt; 
&lt;br&gt;
My recent article on The Server Side .NET: Build a Data Access Layer with the Visual
Studio DataSet Designer, The Server Side .NET, Oct 2005, &lt;a href="http://www.theserverside.net/articles/showarticle.tss?id=DataSetDesigner"&gt;http://www.theserverside.net/articles/showarticle.tss?id=DataSetDesigner&lt;/a&gt; 
&lt;br&gt;
My recent article in CoDe magazine: Tackle Complex Data Binding in Windows Forms 2.0,
CoDe Magazine, July/Aug 2005, &lt;a href="http://www.code-magazine.com/Article.aspx?quickid=0507051"&gt;http://www.code-magazine.com/Article.aspx?quickid=0507051&lt;/a&gt; &lt;font size=4&gt;&lt;font size=2&gt;&lt;font size=4&gt;&lt;font size=2&gt;
&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&gt;&gt; 
&lt;p&gt;
&lt;span style="FONT-SIZE: 111%; COLOR: #ffff66"&gt;&lt;font color=#000000&gt;Enjoy!&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&gt;&gt;&lt;img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=70acabc4-8554-43cc-8511-c2f6a2827942" /&gt;</description>
      <comments>http://briannoyes.net/CommentView,guid,70acabc4-8554-43cc-8511-c2f6a2827942.aspx</comments>
      <category>.NET</category>
      <category>Data Binding</category>
      <category>DevConnections</category>
      <category>Languages and Tools</category>
      <category>Speaking</category>
    </item>
    <item>
      <trackback:ping>http://briannoyes.net/Trackback.aspx?guid=352749cf-f624-4103-9a0a-f9176b92b1d0</trackback:ping>
      <pingback:server>http://briannoyes.net/pingback.aspx</pingback:server>
      <pingback:target>http://briannoyes.net/PermaLink,guid,352749cf-f624-4103-9a0a-f9176b92b1d0.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://briannoyes.net/CommentView,guid,352749cf-f624-4103-9a0a-f9176b92b1d0.aspx</wfw:comment>
      <wfw:commentRss>http://briannoyes.net/SyndicationService.asmx/GetEntryCommentsRss?guid=352749cf-f624-4103-9a0a-f9176b92b1d0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.dasblonde.net/PermaLink.aspx?guid=d27b43d3-bbcb-4611-96a0-89cdea5dee21">Great
post </a>by my colleague <a href="http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=3&amp;tabid=5#bustamante">Michele</a> from
IDesign following a discussion we had on ClickOnce permissions and what users are
allowed to do. Check it out!<img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=352749cf-f624-4103-9a0a-f9176b92b1d0" /></body>
      <title>ClickOnce user privilege requirements discussion</title>
      <guid isPermaLink="false">http://briannoyes.net/PermaLink,guid,352749cf-f624-4103-9a0a-f9176b92b1d0.aspx</guid>
      <link>http://briannoyes.net/2005/11/09/ClickOnceUserPrivilegeRequirementsDiscussion.aspx</link>
      <pubDate>Wed, 09 Nov 2005 04:26:54 GMT</pubDate>
      <description>&lt;a href="http://www.dasblonde.net/PermaLink.aspx?guid=d27b43d3-bbcb-4611-96a0-89cdea5dee21"&gt;Great
post &lt;/a&gt;by my colleague &lt;a href="http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=3&amp;amp;tabid=5#bustamante"&gt;Michele&lt;/a&gt; from
IDesign following a discussion we had on ClickOnce permissions and what users are
allowed to do. Check it out!&lt;img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=352749cf-f624-4103-9a0a-f9176b92b1d0" /&gt;</description>
      <comments>http://briannoyes.net/CommentView,guid,352749cf-f624-4103-9a0a-f9176b92b1d0.aspx</comments>
      <category>.NET</category>
      <category>ClickOnce</category>
      <category>DevConnections</category>
      <category>Languages and Tools</category>
    </item>
    <item>
      <trackback:ping>http://briannoyes.net/Trackback.aspx?guid=0a11df39-72f7-47fb-a0a8-7222e0c8d19c</trackback:ping>
      <pingback:server>http://briannoyes.net/pingback.aspx</pingback:server>
      <pingback:target>http://briannoyes.net/PermaLink,guid,0a11df39-72f7-47fb-a0a8-7222e0c8d19c.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://briannoyes.net/CommentView,guid,0a11df39-72f7-47fb-a0a8-7222e0c8d19c.aspx</wfw:comment>
      <wfw:commentRss>http://briannoyes.net/SyndicationService.asmx/GetEntryCommentsRss?guid=0a11df39-72f7-47fb-a0a8-7222e0c8d19c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm catching a flight early tomorrow morning to Vegas for <a href="http://www.vsconnections.com">VS
Connections </a>and am really looking forward to it. VS Connections in particular,
and <a href="http://www.devconnections.com">DevConnections</a> in general (the overall
conference event) is well run, in great locations, and always has a lot of great content
that I can benefit from as well.
</p>
        <p>
I've been spending most of my recent prep time fine tuning the demos for my two WCF
sessions, Build Event Driven Applications with Indigo and Connecting Smart Client
Applications with Indigo. The more I work with Windows Communications Foundation (aka
"Indigo"), I am struck by a number of things:
</p>
        <ul>
          <li>
I am impressed by how capable Indigo is. 
</li>
          <li>
I am awed by how elegant and simple solutions are to complex aspects like security,
transactions, queuing, callbacks, and so on. 
</li>
          <li>
I am dumbfounded by how hard it is to figure out how to get to those elegant and simple
solutions.</li>
        </ul>
        <p>
The last bullet is not really a criticism of what they have come up with, it is just
the nature of the beast. I would draw on an analogy <a href="http://www.softinsight.com/LifeBeforeProgramming.aspx">from
my flying days </a>to explain why this is so. Imagine the cockpit of a WW I fighter
aircraft. You probably have half a dozen or less simple dials and gauges, and a stick
and throttle. Imagine trying to use that set of controls on an aircraft that can fly
at high subsonic speeds at high altitude carrying hundreds of passengers for 12 hour
transoceanic flights. Not going to work too well. This is basically where you were
at with past technologies to build complex, distributed, heterogenous, connected enterprise
systems. It could be done, but the end result was not going to be pretty and it was
going to take you a long time to get there.
</p>
        <p>
Now with WCF, it is more like climbing into the <a href="http://www.militaryfactory.com/cockpits/777_cockpit.asp">cockpit
of a 777</a>. There is a technological elegance to everything that is there. But there
are still hundreds (if not thousands) of individual switches, controls, displays,
electronic gages and dials, menu driven control panels, etc. A great deal of human
engineering has gone into everything that is in there so that for any given common
task, there are only a couple of relevant controls that you have to touch and put
into place to get the job done. The challenge is in knowing which one of those hundreds
of knobs and dials to tweak.
</p>
        <p>
The same is true for WCF. Microsoft has created an incredibly powerful and technologically
advanced platform that is well adapted to building large distributed enterprise systems.
In order to do that, there needs to be hundreds of switches and knobs that you can
throw to address different scenarios. The downside to that is bullet number three
above - you have to learn which switches and knobs are relevant for a given task,
and in what order to throw them.
</p>
        <p>
This is somewhat aggravated right now in that we are only at Beta 1 of WinFx (and
its parts WCF, WPF, and WinWF), and the names, shapes, and locations of all the knobs
and switches is constantly changing as they work on that human engineering task of
trying to make it easier to use. Meanwhile the documentation and samples are seriously
lagging, so working with it right now is a little like stepping into that 777 cockpit
without any labels on the controls. When you say to yourself, "I just need transactions
and certificate based security", it is kind of like saying "I just need to call the
flight attendant at the second aft flight station". Simple to describe, but God help
you in figuring out which switches and knobs to throw. At least there are not really
any destructive ones that you can throw by accident. If you get it wrong, your app
may not work, but you would have to go out of your way to write some code that would
do bad things when WCF fails to let you communicate.
</p>
        <p>
I'm looking forward to continuing to work with this technology and learn what all
those knobs and buttons are for. Learning all the controls of the aft cockpit of the
F-14 to run the weapons system, navigation systems, communications systems, and other
tasks was one of the funnest things I have done in my life. The fact that we got to
do that while strapped to a couple of 50K lb + of thrust zorching through the sky
pulling G's and landing on the carrier certainly helped make it interesting. Sitting
at a computer leaves a little to be desired in that department, but the learning challenge
is still just as fun.
</p>
        <img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=0a11df39-72f7-47fb-a0a8-7222e0c8d19c" />
      </body>
      <title>Las Vegas Bound - Impressions of WCF</title>
      <guid isPermaLink="false">http://briannoyes.net/PermaLink,guid,0a11df39-72f7-47fb-a0a8-7222e0c8d19c.aspx</guid>
      <link>http://briannoyes.net/2005/11/08/LasVegasBoundImpressionsOfWCF.aspx</link>
      <pubDate>Tue, 08 Nov 2005 07:13:55 GMT</pubDate>
      <description>&lt;p&gt;
I'm catching a flight early tomorrow morning to Vegas for &lt;a href="http://www.vsconnections.com"&gt;VS
Connections &lt;/a&gt;and am really looking forward to it. VS Connections in particular,
and &lt;a href="http://www.devconnections.com"&gt;DevConnections&lt;/a&gt; in general (the overall
conference event) is well run, in great locations, and always has a lot of great content
that I can benefit from as well.
&lt;/p&gt;
&lt;p&gt;
I've been spending most of my recent prep time fine tuning the demos for my two WCF
sessions, Build Event Driven Applications with Indigo and Connecting Smart Client
Applications with Indigo. The more I work with Windows Communications Foundation (aka
"Indigo"), I am struck by a number of things:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
I am impressed by how capable Indigo is. 
&lt;li&gt;
I am awed by how elegant and simple solutions are to complex aspects like security,
transactions, queuing, callbacks, and so on. 
&lt;li&gt;
I am dumbfounded by how hard it is to figure out how to get to those elegant and simple
solutions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The last bullet is not really a criticism of what they have come up with, it is just
the nature of the beast. I would draw on an analogy &lt;a href="http://www.softinsight.com/LifeBeforeProgramming.aspx"&gt;from
my flying days &lt;/a&gt;to explain why this is so. Imagine the cockpit of a WW I fighter
aircraft. You probably have half a dozen or less simple dials and gauges, and a stick
and throttle. Imagine trying to use that set of controls on an aircraft that can fly
at high subsonic speeds at high altitude carrying hundreds of passengers for 12 hour
transoceanic flights. Not going to work too well. This is basically where you were
at with past technologies to build complex, distributed, heterogenous, connected&amp;nbsp;enterprise
systems. It could be done, but the end result was not going to be pretty and it was
going to take you a long time to get there.
&lt;/p&gt;
&lt;p&gt;
Now with WCF, it is more like climbing into the &lt;a href="http://www.militaryfactory.com/cockpits/777_cockpit.asp"&gt;cockpit
of a 777&lt;/a&gt;. There is a technological elegance to everything that is there. But there
are still hundreds (if not thousands) of individual switches, controls, displays,
electronic gages and dials, menu driven control panels, etc. A great deal of human
engineering has gone into everything that is in there so that for any given common
task, there are only a couple of relevant controls that you have to touch and put
into place to get the job done. The challenge is in knowing which one of those hundreds
of knobs and dials to tweak.
&lt;/p&gt;
&lt;p&gt;
The same is true for WCF. Microsoft has created an incredibly powerful and technologically
advanced platform that is well adapted to building large distributed enterprise systems.
In order to do that, there needs to be hundreds of switches and knobs that you can
throw to address different scenarios. The downside to that is bullet number three
above - you have to learn which switches and knobs are relevant for a given task,
and in what order to throw them.
&lt;/p&gt;
&lt;p&gt;
This is somewhat aggravated right now in that we are only at Beta 1 of WinFx (and
its parts WCF, WPF, and WinWF), and the names, shapes, and locations of all the knobs
and switches is constantly changing as they work on that human engineering task of
trying to make it easier to use. Meanwhile the documentation and samples are seriously
lagging, so working with it right now is a little like stepping into that 777 cockpit
without any labels on the controls. When you say to yourself, "I just need transactions
and certificate based security", it is kind of like saying "I just need to call the
flight attendant at the second aft flight station". Simple to describe, but God help
you in figuring out which switches and knobs to throw. At least there are not really
any destructive ones that you can throw by accident. If you get it wrong, your app
may not work, but you would have to go out of your way to write some code that would
do bad things when WCF fails to let you communicate.
&lt;/p&gt;
&lt;p&gt;
I'm looking forward to continuing to work with this technology and learn what all
those knobs and buttons are for. Learning all the controls of the aft cockpit of the
F-14 to run the weapons system, navigation systems, communications systems, and other
tasks was one of the funnest things I have done in my life. The fact that we got to
do that while strapped to a couple of 50K lb + of thrust zorching through the sky
pulling G's and landing on the carrier certainly helped make it interesting. Sitting
at a computer leaves a little to be desired in that department, but the learning challenge
is still just as fun.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=0a11df39-72f7-47fb-a0a8-7222e0c8d19c" /&gt;</description>
      <comments>http://briannoyes.net/CommentView,guid,0a11df39-72f7-47fb-a0a8-7222e0c8d19c.aspx</comments>
      <category>.NET</category>
      <category>Architecture</category>
      <category>DevConnections</category>
      <category>Languages and Tools</category>
      <category>Speaking</category>
      <category>Travel</category>
      <category>WinFx</category>
    </item>
    <item>
      <trackback:ping>http://briannoyes.net/Trackback.aspx?guid=69fc7632-be37-4dde-8290-6c9aa4e57fc4</trackback:ping>
      <pingback:server>http://briannoyes.net/pingback.aspx</pingback:server>
      <pingback:target>http://briannoyes.net/PermaLink,guid,69fc7632-be37-4dde-8290-6c9aa4e57fc4.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://briannoyes.net/CommentView,guid,69fc7632-be37-4dde-8290-6c9aa4e57fc4.aspx</wfw:comment>
      <wfw:commentRss>http://briannoyes.net/SyndicationService.asmx/GetEntryCommentsRss?guid=69fc7632-be37-4dde-8290-6c9aa4e57fc4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'll be speaking at <a href="http://www.vsconnections.com">Visual Studio Connections </a>(part
of <a href="http://www.devconnections.com">DevConnections</a>) in Las Vegas from 5-8
November. This is a great and growing conference that happens twice annually in the
US, usually Orlando in the spring and Las Vegas in the fall, that I have been privileged
to speak at for the last couple years. If you haven't been to one yet, you ought to
be hammering your boss for permisson/funding to attend for the following reasons:
</p>
        <ul>
          <li>
It will rapidly and time-effectively expose you to new solution technologies you might
not get a chance to explore on your own 
</li>
          <li>
You will get concentrated advanced training in current and future technologies, getting
you up to speed on them in far less time than you can achieve on your own 
</li>
          <li>
You will get presentations from the top speakers in the business 
</li>
          <li>
You will get a chance to network with peers in the industry, learn from others experiences
employing .NET technologies, which will make you more effective at employing them
yourself 
</li>
          <li>
You will have a lot of fun (OK, maybe don't tell your boss this...)</li>
        </ul>
        <p>
You can learn a lot peripherally from the conference too by reading the <a href="http://aspadvice.com/blogs/devconnections/default.aspx">DevConnections
blog here</a>. There are posts from other speakers as they develop their talks and
their own observations and experiences at the conference.
</p>
        <p>
I'll be presenting the following sessions:
</p>
        <p>
          <strong>VSM356: Build Custom Data Bound Business Objects and Collections</strong>
          <br />
          <strong>VSM351: Secure Smart Client ClickOnce Deployments</strong>
          <br />
          <strong>VID306: Build Event-Driven Applications with Indigo</strong>
          <br />
          <strong>VID309: Connect Smart Client Applications with Indigo</strong>
        </p>
        <p>
If you make it to the show (and you should!!), stop by and say hi!
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=69fc7632-be37-4dde-8290-6c9aa4e57fc4" />
      </body>
      <title>Upcoming DevConnections Talks</title>
      <guid isPermaLink="false">http://briannoyes.net/PermaLink,guid,69fc7632-be37-4dde-8290-6c9aa4e57fc4.aspx</guid>
      <link>http://briannoyes.net/2005/10/24/UpcomingDevConnectionsTalks.aspx</link>
      <pubDate>Mon, 24 Oct 2005 20:48:04 GMT</pubDate>
      <description>&lt;p&gt;
I'll be speaking at &lt;a href="http://www.vsconnections.com"&gt;Visual Studio Connections &lt;/a&gt;(part
of &lt;a href="http://www.devconnections.com"&gt;DevConnections&lt;/a&gt;) in Las Vegas from 5-8
November. This is a great and growing conference that happens twice annually in the
US, usually Orlando in the spring and Las Vegas in the fall, that I have been privileged
to speak at for the last couple years. If you haven't been to one yet, you ought to
be hammering your boss for permisson/funding to attend for the following reasons:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
It will rapidly and time-effectively expose you to new solution technologies you might
not get a chance to explore on your own 
&lt;li&gt;
You will get concentrated advanced training in current and future technologies, getting
you up to speed on them in far less time than you can achieve on your own 
&lt;li&gt;
You will get presentations from the top speakers in the business 
&lt;li&gt;
You will get a chance to network with peers in the industry, learn from others experiences
employing .NET technologies, which will make you more effective at employing them
yourself 
&lt;li&gt;
You will have a lot of fun (OK, maybe don't tell your boss this...)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
You can learn a lot peripherally from the conference too by reading the &lt;a href="http://aspadvice.com/blogs/devconnections/default.aspx"&gt;DevConnections
blog here&lt;/a&gt;. There are posts from other speakers as they develop their talks and
their own observations and experiences at the conference.
&lt;/p&gt;
&lt;p&gt;
I'll be presenting the following sessions:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;VSM356:&amp;nbsp;Build Custom Data Bound Business Objects and Collections&lt;/strong&gt;
&lt;br&gt;
&lt;strong&gt;VSM351:&amp;nbsp;Secure Smart Client ClickOnce Deployments&lt;/strong&gt;
&lt;br&gt;
&lt;strong&gt;VID306:&amp;nbsp;Build Event-Driven Applications with Indigo&lt;/strong&gt;
&lt;br&gt;
&lt;strong&gt;VID309:&amp;nbsp;Connect Smart Client Applications with Indigo&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you make it to the show (and you should!!), stop by and say hi!
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://briannoyes.net/aggbug.ashx?id=69fc7632-be37-4dde-8290-6c9aa4e57fc4" /&gt;</description>
      <comments>http://briannoyes.net/CommentView,guid,69fc7632-be37-4dde-8290-6c9aa4e57fc4.aspx</comments>
      <category>.NET</category>
      <category>Architecture</category>
      <category>ClickOnce</category>
      <category>Community</category>
      <category>Languages and Tools</category>
      <category>Speaking</category>
      <category>DevConnections</category>
    </item>
  </channel>
</rss>