<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>tsJensen.com</title>
    <link>http://www.tsjensen.com/blog/</link>
    <description />
    <language>en-us</language>
    <copyright>Tyler Jensen</copyright>
    <lastBuildDate>Sat, 02 May 2009 21:20:01 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.1.8139.823</generator>
    <managingEditor>tyler@tsjensen.com</managingEditor>
    <webMaster>tyler@tsjensen.com</webMaster>
    <geo:lat>40.230954</geo:lat><geo:long>-111.680067</geo:long><image><link>http://www.tsjensen.com/blog/</link><url>http://www.tsjensen.com/images/tsjensen.gif</url><title>tsJensen</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/tsjensen" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <trackback:ping>http://www.tsjensen.com/blog/Trackback.aspx?guid=ceea2820-a161-454d-88fe-99c3c98e67fa</trackback:ping>
      <pingback:server>http://www.tsjensen.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.tsjensen.com/blog/PermaLink,guid,ceea2820-a161-454d-88fe-99c3c98e67fa.aspx</pingback:target>
      <dc:creator>Tyler Jensen</dc:creator>
      <wfw:comment>http://www.tsjensen.com/blog/CommentView,guid,ceea2820-a161-454d-88fe-99c3c98e67fa.aspx</wfw:comment>
      <wfw:commentRss>http://www.tsjensen.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=ceea2820-a161-454d-88fe-99c3c98e67fa</wfw:commentRss>
      
      <title>Favorite Win 7 RC Feature</title>
      <guid isPermaLink="false">http://www.tsjensen.com/blog/PermaLink,guid,ceea2820-a161-454d-88fe-99c3c98e67fa.aspx</guid>
      <link>http://feedproxy.google.com/~r/tsjensen/~3/9YvJ178_jgs/Favorite+Win+7+RC+Feature.aspx</link>
      <pubDate>Sat, 02 May 2009 21:20:01 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Here’s my favorite feature’s of Windows 7 release candidate right after install into&#xD;
a VMware virtual machine.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="win7rc" border="0" alt="win7rc" src="http://www.tsjensen.com/blog/content/binary/WindowsLiveWriter/FavoriteWin7RCFeature_D789/win7rc_3.png" width="423" height="536"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.tsjensen.com/blog/aggbug.ashx?id=ceea2820-a161-454d-88fe-99c3c98e67fa"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tsjensen?a=9YvJ178_jgs:11Cr3KBHhfA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tsjensen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tsjensen/~4/9YvJ178_jgs" height="1" width="1"/&gt;</description>
      <comments>http://www.tsjensen.com/blog/CommentView,guid,ceea2820-a161-454d-88fe-99c3c98e67fa.aspx</comments>
    <feedburner:origLink>http://www.tsjensen.com/blog/2009/05/02/Favorite+Win+7+RC+Feature.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.tsjensen.com/blog/Trackback.aspx?guid=316f5697-6b9e-466a-8d7f-f18070b95c6f</trackback:ping>
      <pingback:server>http://www.tsjensen.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.tsjensen.com/blog/PermaLink,guid,316f5697-6b9e-466a-8d7f-f18070b95c6f.aspx</pingback:target>
      <dc:creator>Tyler Jensen</dc:creator>
      <wfw:comment>http://www.tsjensen.com/blog/CommentView,guid,316f5697-6b9e-466a-8d7f-f18070b95c6f.aspx</wfw:comment>
      <wfw:commentRss>http://www.tsjensen.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=316f5697-6b9e-466a-8d7f-f18070b95c6f</wfw:commentRss>
      <slash:comments>8</slash:comments>
      
      <title>PLINQO a Better LINQ to SQL</title>
      <guid isPermaLink="false">http://www.tsjensen.com/blog/PermaLink,guid,316f5697-6b9e-466a-8d7f-f18070b95c6f.aspx</guid>
      <link>http://feedproxy.google.com/~r/tsjensen/~3/EXHNEfIqErM/PLINQO+A+Better+LINQ+To+SQL.aspx</link>
      <pubDate>Tue, 28 Apr 2009 03:31:03 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
A few weeks ago I made a major course correction in our choice of ORM data layer.&#xD;
We had planned to use LLBLGen Pro but several issues with the code that it generates&#xD;
continued to bother me. First, it's support for stored procedures lacked the ability&#xD;
to strongly type the resultset. Second, the data entity classes do not easily support&#xD;
serialization over WCF with the option to dress them up with the appropriate attributes.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
So I took a second look at &lt;a href="http://www.plinqo.com"&gt;PLINQO&lt;/a&gt; with &lt;a href="http://www.codesmithtools"&gt;CodeSmith&#xD;
5.0&lt;/a&gt;, something I had considered some time ago but had decided against because&#xD;
I felt it was not sufficiently mature for our team's use. I wanted to see if the dev&#xD;
team had improved the product to the point that I believed it would work for us. I'm&#xD;
very happy I gave it another try. They have done a great job and restored my confidence&#xD;
in LINQ to SQL.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
With PLINQO, I found that I could return to standard LINQ to SQL queries and enjoy&#xD;
many of the benefits I had looked forward to using in LLBLGen Pro such as "disconnected"&#xD;
entities. And much to my satisfaction, PLINQO resolves the two major issues I had&#xD;
with the LLBLGen Pro. The improvements over standard LINQ to SQL may seem small at&#xD;
first but when dealing with a very large, enterprise class database, the enhancements&#xD;
that PLINQO offers are critical, including the separation of entities into individual&#xD;
class files.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
There are many more features and benefits with PLINQO than I have time to review here.&#xD;
If you're looking for a better LINQ to SQL than LINQ to SQL, look very carefully at &lt;a href="http://www.plinqo.com"&gt;PLINQO&lt;/a&gt;.&#xD;
I mean, who couldn't fall in love with code like this all buttoned up for you automatically:&#xD;
&lt;/p&gt;&#xD;
        &lt;pre name="code" class="brush: c-sharp;"&gt;&#xD;
private long _userId;&#xD;
&#xD;
//// &amp;lt;summary&amp;gt;&#xD;
/// Gets the USER_ID column value.&#xD;
/// &amp;lt;/summary&amp;gt;&#xD;
[System.Data.Linq.Mapping.Column(Name = "USER_ID", Storage = "_userId", &#xD;
     DbType = "bigint NOT NULL IDENTITY", IsPrimaryKey = true, &#xD;
	 IsDbGenerated = true, CanBeNull = false)]&#xD;
[System.Runtime.Serialization.DataMember(Order = 1)]&#xD;
public long UserId&#xD;
{&#xD;
    get { return _userId; }&#xD;
    set&#xD;
    {&#xD;
        if (_userId != value)&#xD;
        {&#xD;
            OnUserIdChanging(value);&#xD;
            SendPropertyChanging("UserId");&#xD;
            _userId = value;&#xD;
            SendPropertyChanged("UserId");&#xD;
            OnUserIdChanged();&#xD;
        }&#xD;
    }&#xD;
}&#xD;
&lt;/pre&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.tsjensen.com/blog/aggbug.ashx?id=316f5697-6b9e-466a-8d7f-f18070b95c6f"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tsjensen?a=EXHNEfIqErM:-Su2m8kQS1k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tsjensen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tsjensen/~4/EXHNEfIqErM" height="1" width="1"/&gt;</description>
      <comments>http://www.tsjensen.com/blog/CommentView,guid,316f5697-6b9e-466a-8d7f-f18070b95c6f.aspx</comments>
      <category>Code</category>
      <category>Review</category>
    <feedburner:origLink>http://www.tsjensen.com/blog/2009/04/28/PLINQO+A+Better+LINQ+To+SQL.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.tsjensen.com/blog/Trackback.aspx?guid=ef244248-d15c-4d5c-aac7-fa52aaee7905</trackback:ping>
      <pingback:server>http://www.tsjensen.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.tsjensen.com/blog/PermaLink,guid,ef244248-d15c-4d5c-aac7-fa52aaee7905.aspx</pingback:target>
      <dc:creator>Tyler Jensen</dc:creator>
      <wfw:comment>http://www.tsjensen.com/blog/CommentView,guid,ef244248-d15c-4d5c-aac7-fa52aaee7905.aspx</wfw:comment>
      <wfw:commentRss>http://www.tsjensen.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=ef244248-d15c-4d5c-aac7-fa52aaee7905</wfw:commentRss>
      
      <title>Enforce WCF Proxy Net.Tcp Config in Code</title>
      <guid isPermaLink="false">http://www.tsjensen.com/blog/PermaLink,guid,ef244248-d15c-4d5c-aac7-fa52aaee7905.aspx</guid>
      <link>http://feedproxy.google.com/~r/tsjensen/~3/e7YYyjpj6VQ/Enforce+WCF+Proxy+NetTcp+Config+In+Code.aspx</link>
      <pubDate>Sun, 15 Mar 2009 15:29:31 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
In a recent project I wanted to simplify the creation and configuration of a WCF proxy&#xD;
client and enforce programmatic configuration so that the client could only be used&#xD;
in a specific configuration. Here’s the result of that effort. Note that there is&#xD;
a static &lt;strong&gt;Create &lt;/strong&gt;method and the standard &lt;strong&gt;ClientBase &lt;/strong&gt;constructors&#xD;
have been marked as internal to prevent creation of the client in any other way.&#xD;
&lt;/p&gt;&#xD;
        &lt;pre name="code" class="brush: c-sharp;"&gt;&#xD;
public class ControlServiceClient : ClientBase&amp;lt;IControlService&amp;gt;, IControlService&#xD;
{&#xD;
    public static ControlServiceClient Create()&#xD;
    {&#xD;
        string controlServiceAddress = ConfigurationManager.AppSettings["controlServiceAddress"];&#xD;
        NetTcpBinding tcpBinding = new NetTcpBinding(SecurityMode.Transport, false);&#xD;
        tcpBinding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Windows;&#xD;
        tcpBinding.Security.Transport.ProtectionLevel = ProtectionLevel.EncryptAndSign;&#xD;
&#xD;
        //set other binding attributes&#xD;
        tcpBinding.CloseTimeout = new TimeSpan(0, 1, 30);     //default is 1 minute.&#xD;
        tcpBinding.MaxBufferPoolSize = 1048576;               //1MB default is 65,536 bytes&#xD;
&#xD;
        //not allowed by partially trusted &#xD;
        //tcpBinding.MaxBufferSize = 262144;                  //256KB default is 65,536 bytes&#xD;
&#xD;
        tcpBinding.MaxConnections = 10;                       //default is 10:&#xD;
        tcpBinding.MaxReceivedMessageSize = 4194304;          //4MB The default is 65,536 bytes&#xD;
        tcpBinding.OpenTimeout = new TimeSpan(0, 1, 30);      //The default value is 1 minute&#xD;
        tcpBinding.ReceiveTimeout = new TimeSpan(0, 10, 0);   //The default value is 10 minute&#xD;
        tcpBinding.SendTimeout = new TimeSpan(0, 1, 30);      //The default value is 1 minute&#xD;
&#xD;
        EndpointAddress endpointAddress = &#xD;
            new EndpointAddress(string.Format("net.tcp://{0}", controlServiceAddress));&#xD;
        ControlServiceClient client = new ControlServiceClient(tcpBinding, endpointAddress);&#xD;
        return client;&#xD;
    }&#xD;
&#xD;
    internal ControlServiceClient() { }&#xD;
&#xD;
    internal ControlServiceClient(string endpointConfigurationName) :&#xD;
        base(endpointConfigurationName)&#xD;
    { }&#xD;
&#xD;
    internal ControlServiceClient(Binding binding, EndpointAddress remoteAddress) :&#xD;
        base(binding, remoteAddress)&#xD;
    { }&#xD;
&#xD;
    internal ControlServiceClient(InstanceContext callbackInstance) :&#xD;
        base(callbackInstance)&#xD;
    { }&#xD;
&#xD;
    public string GetData(int value)&#xD;
    {&#xD;
        return base.Channel.GetData(value);&#xD;
    }&#xD;
&#xD;
    public CompositeType GetDataUsingDataContract(CompositeType composite)&#xD;
    {&#xD;
        return base.Channel.GetDataUsingDataContract(composite);&#xD;
    }&#xD;
}&#xD;
&lt;/pre&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.tsjensen.com/blog/aggbug.ashx?id=ef244248-d15c-4d5c-aac7-fa52aaee7905"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tsjensen?a=e7YYyjpj6VQ:Cyy8qKKAcho:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tsjensen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tsjensen/~4/e7YYyjpj6VQ" height="1" width="1"/&gt;</description>
      <comments>http://www.tsjensen.com/blog/CommentView,guid,ef244248-d15c-4d5c-aac7-fa52aaee7905.aspx</comments>
      <category>Code</category>
    <feedburner:origLink>http://www.tsjensen.com/blog/2009/03/15/Enforce+WCF+Proxy+NetTcp+Config+In+Code.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.tsjensen.com/blog/Trackback.aspx?guid=ed36e2fd-62d4-46d9-b5ad-564142eb36a7</trackback:ping>
      <pingback:server>http://www.tsjensen.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.tsjensen.com/blog/PermaLink,guid,ed36e2fd-62d4-46d9-b5ad-564142eb36a7.aspx</pingback:target>
      <dc:creator>Tyler Jensen</dc:creator>
      <wfw:comment>http://www.tsjensen.com/blog/CommentView,guid,ed36e2fd-62d4-46d9-b5ad-564142eb36a7.aspx</wfw:comment>
      <wfw:commentRss>http://www.tsjensen.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=ed36e2fd-62d4-46d9-b5ad-564142eb36a7</wfw:commentRss>
      <slash:comments>1</slash:comments>
      
      <title>Desktop Book Inventory of an Amazon and Borders Addict</title>
      <guid isPermaLink="false">http://www.tsjensen.com/blog/PermaLink,guid,ed36e2fd-62d4-46d9-b5ad-564142eb36a7.aspx</guid>
      <link>http://feedproxy.google.com/~r/tsjensen/~3/F-udWaqWu_g/Desktop+Book+Inventory+Of+An+Amazon+And+Borders+Addict.aspx</link>
      <pubDate>Sat, 10 Jan 2009 19:12:24 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Every few months I give up on stacking everything on my desk and begin the arduous&#xD;
task of cleaning it up. In my most recent battle with desktop clutter, I came to realize&#xD;
that I am a book addict. Set aside the numerous entertaining novels I've bought and&#xD;
read over the last few months because they don't make it to my work desk. If they&#xD;
did, I'd never get any work done.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Here's a list of just the books currently floating in the stacks on my desk. No, I&#xD;
am not making this up. And no, I'm not going to give you a link to each one of them.&#xD;
You can always hit &lt;a href="http://www.amazon.com"&gt;www.amazon.com&lt;/a&gt; or your favorite&#xD;
alternative and look them up. Many of these come from my local Borders store and others&#xD;
from Amazon. My Amazon Prime account has more than paid for itself.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I must also confess that some of these were not purchased recently but have somehow&#xD;
made their way back off my shelf and onto my desk in recent months. The order is of&#xD;
no particular import except to note that it is essentially a LIFO list which may provide&#xD;
a quasi reverse chronological order to my wandering interests and/or problems/challenges.&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Agile Principles, Patterns and Practices in C#&lt;/strong&gt; by Martin and Martin &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;The Data Model Resource Book Volume 1&lt;/strong&gt; by Silverston &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;The Data Model Resource Book Volume 2&lt;/strong&gt; by Silverston &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;The Data Model Resource Book Volume 3&lt;/strong&gt; by Silverston and Agnew &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Pro ASP.NET 2.0 in C# 2005&lt;/strong&gt; by MacDonald and Szpuszla &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;SQL Server Analysis Services 2005 with MDX&lt;/strong&gt; by Harrinath and Quinn &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Windows Workflow Foundation&lt;/strong&gt; by Scribner &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Programming WCF Services&lt;/strong&gt; by Lowy &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Pro C# 2008 and the .NET 3.5 Platform&lt;/strong&gt; by Troelsen &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;jQuery in Action&lt;/strong&gt; by Bibeault and Katz &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Building a Data Warehouse&lt;/strong&gt; by Rainardi &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Programming Collective Intelligence&lt;/strong&gt; by Segaran &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Workflow in the 2007 Microsoft Office System &lt;/strong&gt;by Mann &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Pro SharePoint 2007 Development Techniques &lt;/strong&gt;by Bruggeman and Bruggeman &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Regular Expressions &lt;/strong&gt;by Friedl &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Regular Expression Recipes for Windows Developers &lt;/strong&gt;by Good &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Microsoft SharePoint Buidling Office 2007 Solutions in C# 2005 &lt;/strong&gt;by&#xD;
Hillier &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;C# Cookbook &lt;/strong&gt;by Teilhet and Hilyard &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Refactoring Databases Evolutionary Database Design &lt;/strong&gt;by Ambler and&#xD;
Sadalage &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;SharePoint Server 2007 Best Practices &lt;/strong&gt;by Curry and English&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;Update&lt;/strong&gt;: Wandering through the house, I found several more at various&#xD;
favorite reading spots. They've now taken their proper place on my desk piles. Here&#xD;
they are:&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Pro Silverlight 2 in C# 2008 &lt;/strong&gt;by MacDonald&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Thinking in C++ Second Edition Volume 1 &lt;/strong&gt;by Eckel&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Chris Crawford on Interactive Storytelling &lt;/strong&gt;by Crawford&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;A Programmer's Introduction to C# Second Edition &lt;/strong&gt;by Gunnerson&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Visual C# 2005: The Base Class Library&lt;/strong&gt; by Balena (I won this one)&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
Yes, this is a sad but not unhealthy addiction. The only detriment here is to my pocketbook&#xD;
and the fact that I'm running out of shelf space. Do you any of you have similar addictions?&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.tsjensen.com/blog/aggbug.ashx?id=ed36e2fd-62d4-46d9-b5ad-564142eb36a7"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tsjensen?a=F-udWaqWu_g:LE0lhJTtB9E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tsjensen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tsjensen/~4/F-udWaqWu_g" height="1" width="1"/&gt;</description>
      <comments>http://www.tsjensen.com/blog/CommentView,guid,ed36e2fd-62d4-46d9-b5ad-564142eb36a7.aspx</comments>
      <category>Personal</category>
    <feedburner:origLink>http://www.tsjensen.com/blog/2009/01/10/Desktop+Book+Inventory+Of+An+Amazon+And+Borders+Addict.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.tsjensen.com/blog/Trackback.aspx?guid=62f46518-9b8e-4873-a95d-56dede0efd05</trackback:ping>
      <pingback:server>http://www.tsjensen.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.tsjensen.com/blog/PermaLink,guid,62f46518-9b8e-4873-a95d-56dede0efd05.aspx</pingback:target>
      <dc:creator>Tyler Jensen</dc:creator>
      <wfw:comment>http://www.tsjensen.com/blog/CommentView,guid,62f46518-9b8e-4873-a95d-56dede0efd05.aspx</wfw:comment>
      <wfw:commentRss>http://www.tsjensen.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=62f46518-9b8e-4873-a95d-56dede0efd05</wfw:commentRss>
      <slash:comments>3</slash:comments>
      
      <title>Party Role and Party Type in Data Model</title>
      <guid isPermaLink="false">http://www.tsjensen.com/blog/PermaLink,guid,62f46518-9b8e-4873-a95d-56dede0efd05.aspx</guid>
      <link>http://feedproxy.google.com/~r/tsjensen/~3/G4_c0-pdczY/Party+Role+And+Party+Type+In+Data+Model.aspx</link>
      <pubDate>Sat, 03 Jan 2009 16:44:35 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Yesterday's post dealt with &lt;a href="http://www.univdata.com/"&gt;Len Silverston's Party&#xD;
Role model&lt;/a&gt; and how to take it to a physical model using ER/Studio. After re-reading&#xD;
the post, I realized that while a party may have a role that distinguishes it as a&#xD;
person rather than an organization such as "Employee," a party might also have a role&#xD;
that is indistinguishable such as "Customer." So if I have a PARTY ROLE with a ROLE&#xD;
TYPE of "Customer," how do I know whether this customer is an individual or an organization&#xD;
if I have some business rule that must handle an order for one in a different way&#xD;
than the for the other?&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The answer, I believe, is in adding a PARTY TYPE which tells me what "sub type" the&#xD;
party is but does not tell me what role the party may play in the system. This distinguishes&#xD;
a "type" from a "role" in that the party can only be one type but might play one or&#xD;
more roles in the system at the same time or at different times. Here's what I ended&#xD;
up with (see update 01/04/09 for corrected diagram):&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.tsjensen.com/blog/content/binary/WindowsLiveWriter/PartyRoleandPartyTypeinDataModel_8981/rolepartytype_2.png"&gt;&#xD;
            &lt;img style="border-right: 0px; border-top: 0px; margin: 0px 15px 0px 0px; border-left: 0px; border-bottom: 0px" height="142" alt="rolepartytype" src="http://www.tsjensen.com/blog/content/binary/WindowsLiveWriter/PartyRoleandPartyTypeinDataModel_8981/rolepartytype_thumb.png" width="172" align="left" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In this way, I can always determine through query what sub-type the party is regardless&#xD;
of the role. Of course, I could perhaps deal with this by having roles that uniquely&#xD;
apply to a specific sub-type but I think that would defeat the purpose of Len's model. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I'd like to hear what you think.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;Update: &lt;/strong&gt;Browsing Len's Volumne 1 on data modeling, I discovered that&#xD;
this is indeed covered in the Party Role model on page 440. And Karen is right about&#xD;
the relationship. I was too eager to post up the image and so overlooked the fact&#xD;
that I'd created the wrong type of relationship between the PARTY TYPE and PARTY entities&#xD;
in ER/Studio. I'll post up a fix soon.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;Update 2 (01/04/09):&lt;/strong&gt; Here's the corrected diagram with the non-identifying&#xD;
relationship. See Karen's comment.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.tsjensen.com/blog/content/binary/WindowsLiveWriter/PartyRoleandPartyTypeinDataModel_8981/rolepartytype1_2.png"&gt;&#xD;
            &lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="343" alt="rolepartytype1" src="http://www.tsjensen.com/blog/content/binary/WindowsLiveWriter/PartyRoleandPartyTypeinDataModel_8981/rolepartytype1_thumb.png" width="417" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Yeah, that looks better.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.tsjensen.com/blog/aggbug.ashx?id=62f46518-9b8e-4873-a95d-56dede0efd05"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tsjensen?a=G4_c0-pdczY:VOcAHBkwznc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tsjensen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tsjensen/~4/G4_c0-pdczY" height="1" width="1"/&gt;</description>
      <comments>http://www.tsjensen.com/blog/CommentView,guid,62f46518-9b8e-4873-a95d-56dede0efd05.aspx</comments>
      <category>Data Modeling</category>
    <feedburner:origLink>http://www.tsjensen.com/blog/2009/01/03/Party+Role+And+Party+Type+In+Data+Model.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.tsjensen.com/blog/Trackback.aspx?guid=397830e4-ccb5-43b9-9d4c-e876985ccc45</trackback:ping>
      <pingback:server>http://www.tsjensen.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.tsjensen.com/blog/PermaLink,guid,397830e4-ccb5-43b9-9d4c-e876985ccc45.aspx</pingback:target>
      <dc:creator>Tyler Jensen</dc:creator>
      <wfw:comment>http://www.tsjensen.com/blog/CommentView,guid,397830e4-ccb5-43b9-9d4c-e876985ccc45.aspx</wfw:comment>
      <wfw:commentRss>http://www.tsjensen.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=397830e4-ccb5-43b9-9d4c-e876985ccc45</wfw:commentRss>
      <slash:comments>2</slash:comments>
      
      <title>From Len Silverston's Party Role Model to Physical Tables in ER/Studio</title>
      <guid isPermaLink="false">http://www.tsjensen.com/blog/PermaLink,guid,397830e4-ccb5-43b9-9d4c-e876985ccc45.aspx</guid>
      <link>http://feedproxy.google.com/~r/tsjensen/~3/eAAlJZLL1Vo/From+Len+Silverstons+Party+Role+Model+To+Physical+Tables+In+ERStudio.aspx</link>
      <pubDate>Fri, 02 Jan 2009 23:31:33 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
A central theme in my current work is the idea of a universal data model. Research&#xD;
in this direction led to noted author and consultant Len Silverston and his work on&#xD;
the subject which led to licensing ER/Studio and Len's models from &lt;a href="http://www.embarcadero.com"&gt;Embarcadero&lt;/a&gt;.&#xD;
Soon after that, we invited Len to our offices to help us better understand his approach&#xD;
to data models and the process of data modeling. It was an informative and very productive&#xD;
three days. I wholeheartedly recommend &lt;a href="http://www.amazon.com/s/ref=nb_ss_gw?url=search-alias%3Daps&amp;amp;field-keywords=Len+Silverston"&gt;his&#xD;
books&lt;/a&gt; and his consulting services to you. (See &lt;a href="http://www.univdata.com"&gt;www.univdata.com&lt;/a&gt;.) &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
One of the most difficult concepts to grasp, for me at least, in the realm of data&#xD;
modeling is the transition from logical data model to physical database schema. When&#xD;
I look at boxes and lines with crow's feet connectors, I think of physical database&#xD;
tables. So looking at a logical model like this one makes me think of twelve tables. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.tsjensen.com/blog/content/binary/WindowsLiveWriter/FromLenSilverstonsPartyRoleModeltoPhysic_E8E4/model1_2.png"&gt;&#xD;
            &lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="626" alt="model1" src="http://www.tsjensen.com/blog/content/binary/WindowsLiveWriter/FromLenSilverstonsPartyRoleModeltoPhysic_E8E4/model1_thumb.png" width="580" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;   &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The model depicted above (created using ER/Studio) is a simplification of Len's party&#xD;
role logical model that he talks about in his book Data Model Resource Book Volume&#xD;
1. I've marked the entities that are "logical" and not physical in nature with a yellow&#xD;
background. ER/Studio allows me to mark these entities in the model as "logical" so&#xD;
that they will not be generated in the physical model that the modeling tool will&#xD;
create for you. The only problem is the PARTY ROLE TYPE entity, if marked as "logical,"&#xD;
does not get generated and the relationship and foreign key does not get created in&#xD;
the PARTY ROLE table in the physical model. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
When you add attributes such as those that PERSON and ORGANIZATION have that are unique&#xD;
to a sub-type, you have to push them to the physical model. Where the sub-type has&#xD;
no unique attributes but can be represented by a unique value record in the super-type&#xD;
entity/table, that entity can remain "logical only." &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
So now I modify the model and remove PARTY ROLE TYPE and create a relationship between&#xD;
ROLE TYPE and PARTY ROLE and then generate a physical model and this is what I get: &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.tsjensen.com/blog/content/binary/WindowsLiveWriter/FromLenSilverstonsPartyRoleModeltoPhysic_E8E4/model2_2.png"&gt;&#xD;
            &lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="282" alt="model2" src="http://www.tsjensen.com/blog/content/binary/WindowsLiveWriter/FromLenSilverstonsPartyRoleModeltoPhysic_E8E4/model2_thumb.png" width="389" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;   &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
From the physical model I can generate a database script and create a database. Perhaps&#xD;
it is not practical to generate the physical model from the logical model in all cases,&#xD;
but where it can be done in order to avoid maintaining two separate models and risk&#xD;
synchronization issues, I would encourage it. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I'm looking forward to getting &lt;a href="http://www.amazon.com/Data-Model-Resource-Book-Universal/dp/0470178450/ref=pd_bbs_sr_3?ie=UTF8&amp;amp;s=books&amp;amp;qid=1230938789&amp;amp;sr=8-3"&gt;Len's&#xD;
next book&lt;/a&gt; that focuses on patterns in data modeling which ships next week. Amazon&#xD;
already has my order.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.tsjensen.com/blog/aggbug.ashx?id=397830e4-ccb5-43b9-9d4c-e876985ccc45"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tsjensen?a=eAAlJZLL1Vo:_o65aXAxEEQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tsjensen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tsjensen/~4/eAAlJZLL1Vo" height="1" width="1"/&gt;</description>
      <comments>http://www.tsjensen.com/blog/CommentView,guid,397830e4-ccb5-43b9-9d4c-e876985ccc45.aspx</comments>
      <category>Data Modeling</category>
    <feedburner:origLink>http://www.tsjensen.com/blog/2009/01/02/From+Len+Silverstons+Party+Role+Model+To+Physical+Tables+In+ERStudio.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.tsjensen.com/blog/Trackback.aspx?guid=05f1b266-906c-4c7e-9d28-227e4ac9465a</trackback:ping>
      <pingback:server>http://www.tsjensen.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.tsjensen.com/blog/PermaLink,guid,05f1b266-906c-4c7e-9d28-227e4ac9465a.aspx</pingback:target>
      <dc:creator>Tyler Jensen</dc:creator>
      <wfw:comment>http://www.tsjensen.com/blog/CommentView,guid,05f1b266-906c-4c7e-9d28-227e4ac9465a.aspx</wfw:comment>
      <wfw:commentRss>http://www.tsjensen.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=05f1b266-906c-4c7e-9d28-227e4ac9465a</wfw:commentRss>
      
      <title>Dabbleboard and Naked Objects for .NET</title>
      <guid isPermaLink="false">http://www.tsjensen.com/blog/PermaLink,guid,05f1b266-906c-4c7e-9d28-227e4ac9465a.aspx</guid>
      <link>http://feedproxy.google.com/~r/tsjensen/~3/XiVwzCuUKJc/Dabbleboard+And+Naked+Objects+For+NET.aspx</link>
      <pubDate>Wed, 31 Dec 2008 21:53:15 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
I've recently been looking for simpler and more effective tools for collaborating&#xD;
with geographically distributed teams. The first order of business is to find something&#xD;
better than a whiteboard that can be shared amongst multiple users. After some brief&#xD;
searching, I found Dabbleboard at &lt;a href="http://www.dabbleboard.com"&gt;www.dabbleboard.com&lt;/a&gt;.&#xD;
This gem was just recently launched and I'm impressed. The image below was created&#xD;
using the free version of the tool online in just a few minutes. I highly recommend&#xD;
that you give it a try.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.tsjensen.com/blog/content/binary/WindowsLiveWriter/DabbleboardandNakedObjectsfor.NET_D1DB/proto_2.png"&gt;&#xD;
            &lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="402" alt="proto" src="http://www.tsjensen.com/blog/content/binary/WindowsLiveWriter/DabbleboardandNakedObjectsfor.NET_D1DB/proto_thumb.png" width="535" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The next order of business is to find a better way to prototype a business application&#xD;
that will allow us to define data and business logic in code and sharing that in a&#xD;
prototype that will allow users to interact with the business model without having&#xD;
to build a complex UI prototype and without having to map business objects to the&#xD;
database. While wandering around a site called &lt;a href="http://www.infoq.com"&gt;InfoQ&lt;/a&gt; I&#xD;
found through &lt;a href="http://martinfowler.com/bliki/BusinessReadableDSL.html"&gt;Markin&#xD;
Fowler's blog&lt;/a&gt;, I ran into &lt;a href="http://www.nakedobjects.net"&gt;Naked Objects&#xD;
for .NET&lt;/a&gt;. I was dubious at first but spend some time watching the videos and wandering&#xD;
around the site. I like what see.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I'm just beginning to use these two tools in a real effort to determine whether they&#xD;
will really make my job and life easier. I am hopeful and impressed with what I've&#xD;
seen so far. The drawing I've created and included in this post illustrates how the&#xD;
Naked Objects technology might be used in what I'm building for my employer. I'm not&#xD;
sure if it represents exactly what will happen in the future but the guys at Dabbleboard&#xD;
have certainly made it easier to envision and to share with my colleagues no matter&#xD;
where they are.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.tsjensen.com/blog/aggbug.ashx?id=05f1b266-906c-4c7e-9d28-227e4ac9465a"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tsjensen?a=XiVwzCuUKJc:h-Kxb51mQHg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tsjensen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tsjensen/~4/XiVwzCuUKJc" height="1" width="1"/&gt;</description>
      <comments>http://www.tsjensen.com/blog/CommentView,guid,05f1b266-906c-4c7e-9d28-227e4ac9465a.aspx</comments>
      <category>Tools</category>
    <feedburner:origLink>http://www.tsjensen.com/blog/2008/12/31/Dabbleboard+And+Naked+Objects+For+NET.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.tsjensen.com/blog/Trackback.aspx?guid=0ed810f1-4207-4bef-983b-be2dfed6745c</trackback:ping>
      <pingback:server>http://www.tsjensen.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.tsjensen.com/blog/PermaLink,guid,0ed810f1-4207-4bef-983b-be2dfed6745c.aspx</pingback:target>
      <dc:creator>Tyler Jensen</dc:creator>
      <wfw:comment>http://www.tsjensen.com/blog/CommentView,guid,0ed810f1-4207-4bef-983b-be2dfed6745c.aspx</wfw:comment>
      <wfw:commentRss>http://www.tsjensen.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0ed810f1-4207-4bef-983b-be2dfed6745c</wfw:commentRss>
      
      <title>Business Process Management with Ultimus and .NET</title>
      <guid isPermaLink="false">http://www.tsjensen.com/blog/PermaLink,guid,0ed810f1-4207-4bef-983b-be2dfed6745c.aspx</guid>
      <link>http://feedproxy.google.com/~r/tsjensen/~3/bT0yMTd7yno/Business+Process+Management+With+Ultimus+And+NET.aspx</link>
      <pubDate>Thu, 11 Dec 2008 15:37:43 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
After a long search for the right business process management platform that would&#xD;
allow us to integrate and extend with .NET, my team selected the &lt;a href="http://www.ultimus.com/pages/12/Ultimus-BPM-suite-Adaptive-BPM-Suite/"&gt;Ultimus&#xD;
BPM Suite&lt;/a&gt;. The primary factors in the decision were the comprehensive nature of&#xD;
the solution which would allow us to deploy process management without requiring the&#xD;
use of some other tool such as InfoPath or SharePoint. Additionally, the solution&#xD;
would allow an incomplete process to be deployed and have assigned "process experts"&#xD;
make final decisions about business rules that may not have been clear or available&#xD;
at the time the process was designed.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I spent all of last week at their North Carolina offices in a "jumpstart" training&#xD;
course and met many of the key players at the company. Good people all around. Their&#xD;
technical expertise and willingness to listen to our team's concerns were impressive.&#xD;
There were a few minor UI glitches that we brought to their attention such as some&#xD;
scrolling issues when designing a process with limited screen real estate. The Ultimus&#xD;
people were genuinely interested in our input.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Having initially found and recommended the product, I was even more impressed with&#xD;
the product as we went through detailed training that brought out a number of features&#xD;
and illustrated an architecture that gave me even greater confidence in the product.&#xD;
This was particularly true in the area of integration points with existing systems&#xD;
and the ability to extend the process using custom developed controls or even process&#xD;
context aware ASP.NET pages hosted outside of the process server.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Our only disappointment was that some of the the training session content could have&#xD;
been improved as at times some of the class members were left a little lost and fell&#xD;
behind. This was in part because the "jumpstart" course was designed to fit a lot&#xD;
of material into a few days, but it was in part due to a lack of maturity in the content&#xD;
and presentation. We were very candid with the Ultimus training director about this&#xD;
and he took our input eagerly and promised improvement. Based on my conversations&#xD;
with key Ultimus employees, I believe that will happen.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
If you are looking for a better way to deliver business process management and enterprise&#xD;
human-centric workflow solutions, you should consider Ultimus. There were other systems&#xD;
that were much more expensive that may have fit our requirements, but this was the&#xD;
only one we found that allowed us the freedom to extend and customize using our .NET&#xD;
dev skills without requiring coding skills to design and modify and manage processes. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I'll be writing more about Ultimus as our experience with the product continues. &#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.tsjensen.com/blog/aggbug.ashx?id=0ed810f1-4207-4bef-983b-be2dfed6745c"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tsjensen?a=bT0yMTd7yno:CmircA0YVNs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tsjensen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tsjensen/~4/bT0yMTd7yno" height="1" width="1"/&gt;</description>
      <comments>http://www.tsjensen.com/blog/CommentView,guid,0ed810f1-4207-4bef-983b-be2dfed6745c.aspx</comments>
      <category>Commentary</category>
      <category>Review</category>
    <feedburner:origLink>http://www.tsjensen.com/blog/2008/12/11/Business+Process+Management+With+Ultimus+And+NET.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.tsjensen.com/blog/Trackback.aspx?guid=3c0819ae-c91c-4971-bd16-089cf017cb9b</trackback:ping>
      <pingback:server>http://www.tsjensen.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.tsjensen.com/blog/PermaLink,guid,3c0819ae-c91c-4971-bd16-089cf017cb9b.aspx</pingback:target>
      <dc:creator>Tyler Jensen</dc:creator>
      <wfw:comment>http://www.tsjensen.com/blog/CommentView,guid,3c0819ae-c91c-4971-bd16-089cf017cb9b.aspx</wfw:comment>
      <wfw:commentRss>http://www.tsjensen.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=3c0819ae-c91c-4971-bd16-089cf017cb9b</wfw:commentRss>
      
      <title>Automated Translation Not Spammer Friendly</title>
      <guid isPermaLink="false">http://www.tsjensen.com/blog/PermaLink,guid,3c0819ae-c91c-4971-bd16-089cf017cb9b.aspx</guid>
      <link>http://feedproxy.google.com/~r/tsjensen/~3/KxldzjvzQzk/Automated+Translation+Not+Spammer+Friendly.aspx</link>
      <pubDate>Sun, 07 Dec 2008 18:19:36 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
The following spam message (less the links) skipped through my spam filters somehow.&#xD;
If you are not a native speaker of English, this message may appear to be in order&#xD;
if your skill level with the language is limited. Otherwise, I suspect you will find&#xD;
this text as amusing as I did. I have not modified a single character. Enjoy...&#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt; welcome to order, &#xD;
&lt;br&gt;&#xD;
Our company is one of the largest wholesalers in Asia ,and we sell products to all&#xD;
over the world,we have the authorithed licence issured by Chinese government,all products&#xD;
in our company ranges from varieties of electronic products like mobilephone ,television,&#xD;
laptop,DVD,GPS,MP3/4 to photograph video game ,scanner, motorcycle prohector and so&#xD;
on.. &#xD;
&lt;br&gt;&#xD;
We have earned our reputation in the world through our honesty business practice in&#xD;
the past years,and obtained many compliments from our clients globally.As we are the&#xD;
direct wholesalers for many reputable brands in the world,so all the products purchased&#xD;
in our website are promised to be at a lower price with the high quality,also all&#xD;
the facuty products will be returned within 7 days,exchange within 14 days,repair&#xD;
within 2 years without charge.&lt;br&gt;&#xD;
We will be right here waiting for your visitation. &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
I hope that as software architects and engineers we are producing code and other textual&#xD;
artifacts that communicate with greater clarity and understanding of the language&#xD;
and idiom in which we express our ideas. Do we write documentation as badly because&#xD;
we can only communicate clearly in code? Or vice versa? It is something to think about.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://www.tsjensen.com/blog/aggbug.ashx?id=3c0819ae-c91c-4971-bd16-089cf017cb9b"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tsjensen?a=KxldzjvzQzk:LD5CkcZzOuQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tsjensen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tsjensen/~4/KxldzjvzQzk" height="1" width="1"/&gt;</description>
      <comments>http://www.tsjensen.com/blog/CommentView,guid,3c0819ae-c91c-4971-bd16-089cf017cb9b.aspx</comments>
      <category>Commentary</category>
    <feedburner:origLink>http://www.tsjensen.com/blog/2008/12/07/Automated+Translation+Not+Spammer+Friendly.aspx</feedburner:origLink></item>
  </channel>
</rss>
