<?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>RichardSoeteman.net - CMSImport</title>
    <link>http://www.richardsoeteman.net/</link>
    <description />
    <language>en-us</language>
    <copyright>Richard Soeteman</copyright>
    <lastBuildDate>Fri, 16 Apr 2010 13:09:04 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>richard@richardsoeteman.net</managingEditor>
    <webMaster>richard@richardsoeteman.net</webMaster>
    <item>
      <trackback:ping>http://www.richardsoeteman.net/Trackback.aspx?guid=7e6085b3-5a80-4cda-ae85-887828ca675a</trackback:ping>
      <pingback:server>http://www.richardsoeteman.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.richardsoeteman.net/PermaLink,guid,7e6085b3-5a80-4cda-ae85-887828ca675a.aspx</pingback:target>
      <dc:creator>Richard Soeteman</dc:creator>
      <wfw:comment>http://www.richardsoeteman.net/CommentView,guid,7e6085b3-5a80-4cda-ae85-887828ca675a.aspx</wfw:comment>
      <wfw:commentRss>http://www.richardsoeteman.net/SyndicationService.asmx/GetEntryCommentsRss?guid=7e6085b3-5a80-4cda-ae85-887828ca675a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When I released <a href="http://www.cmsimport.com/" target="_blank">CMSImport 1.0</a> two
months ago, <a href="http://www.richardsoeteman.net/2010/02/16/CMSImportPRO103Released.aspx" target="_blank">I
briefly described the FieldAdapters feature</a> that  I was going to build for
version 1.1. Today I want to go more into detail about the FieldAdapters feature for
CMSImport. 
</p>
        <h3>The problem
</h3>
        <p>
The reason I started to think about fieldadapters was because I wanted to solve a
very common problem. As you might know Umbraco only accepts three kinds of  data;
string, integer and datetime. What happens when you try to map a boolean value to 
a yes/no Umbraco datatype? An exception is thrown.  The following screenshot
contains several products that we want to import into Umbraco.
</p>
        <p>
          <a href="http://www.richardsoeteman.net/content/binary/WindowsLiveWriter/FieldAdaptersforCMSImport_D108/products_2.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="products" border="0" alt="products" src="http://www.richardsoeteman.net/content/binary/WindowsLiveWriter/FieldAdaptersforCMSImport_D108/products_thumb.png" width="632" height="323" />
          </a>
        </p>
        <p>
When we’ve mapped the InStore column to a yes/no datatype the import will fail because
it can’t map the boolean value to a 0 or 1 and we will see the following ugly screen
</p>
        <p>
          <a href="http://www.richardsoeteman.net/content/binary/WindowsLiveWriter/FieldAdaptersforCMSImport_D108/errors_2.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="errors" border="0" alt="errors" src="http://www.richardsoeteman.net/content/binary/WindowsLiveWriter/FieldAdaptersforCMSImport_D108/errors_thumb.png" width="499" height="302" />
          </a> 
</p>
        <h3>And a FieldAdapter can fix that?
</h3>
        <p>
Yes a fieldadapter inspects the value and tries to parse it, in this case it will
try to pares a true/false value to 1/0, best to explain by exploring the source code.
The whole feature is based on the new IFieldAdapter interface. 
</p>
        <pre>
          <span style="color: #0000ff">using</span> System; <span style="color: #0000ff">namespace</span> CMSImportLibrary.Interfaces
{ <span style="color: #808080">/// &lt;summary&gt;</span><span style="color: #808080">///
Implement the IFieldAdapter interface to convert an mallformed field to a correct
type.</span><span style="color: #808080">/// &lt;/summary&gt;</span><span style="color: #0000ff">public</span><span style="color: #0000ff">interface</span> IFieldAdapter
{ <span style="color: #808080">/// &lt;summary&gt;</span><span style="color: #808080">///
Contains the GUID of the datatype we want to parse using this FieldAdapter</span><span style="color: #808080">///
&lt;/summary&gt;</span> Guid DataTypeId { <span style="color: #0000ff">get</span>;
} <span style="color: #808080">/// &lt;summary&gt;</span><span style="color: #808080">///
Parse the data </span><span style="color: #808080">/// &lt;/summary&gt;</span><span style="color: #808080">///
&lt;param name="value"&gt;The value to parse&lt;/param&gt;</span><span style="color: #808080">///
&lt;returns&gt;&lt;/returns&gt;</span><span style="color: #0000ff">object</span> Parse(<span style="color: #0000ff">object</span><span style="color: #0000ff">value</span>);
} }</pre>
        <p>
As you can see in the code snippet the interface contains the property DataTypeId.
The value needs to correspondent to the Id (GUID) of the datatype you are creating
the fieldadapter for. During the import a factory inspects the underlying datatype
of the document property, if a fieldadapter is found it will execute  the Parse
method. This will work on all Umbraco datatypes (also custom datatypes or datatypes
from third party packages) as long as you know the Id of the datatype. You can find
the id by opening the datatype in Umbraco, there you see the RenderControl .
</p>
        <p>
          <a href="http://www.richardsoeteman.net/content/binary/WindowsLiveWriter/FieldAdaptersforCMSImport_D108/truefalsedatatype_2.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="truefalsedatatype" border="0" alt="truefalsedatatype" src="http://www.richardsoeteman.net/content/binary/WindowsLiveWriter/FieldAdaptersforCMSImport_D108/truefalsedatatype_thumb.png" width="578" height="215" />
          </a>
        </p>
        <p>
When opening the source code of the rendercontrol you’ll see the Id of the datatype
(a GUID). Don’t worry if you can’t open the source code of the datatype i’ll add the
Id’s of all known datatypes to the documentation of CMSImport and I’ll make a free
tool that shows the Id of any datatype.
</p>
        <h3>Implementation of the BooleanFieldAdapter
</h3>
        <p>
Now enough with all the boring stuff, let’s see the fieldadapter in action. Below
you’ll see the implementation of the BooleanFieldAdapter. I’ve mapped the id of the
True/false datatype to the DataTypeId property so CMSImport knows that it needs to
call the Parse method during the mapping of a yes/no document property. In the Parse
method I simply check if the value is already in the correct format , if not it will
try to convert the value to 1 or 0 and return that , otherwise it will just return
the original value.
</p>
        <pre>
          <span style="color: #0000ff">using</span> System; <span style="color: #0000ff">using</span> CMSImportLibrary.Interfaces; <span style="color: #0000ff">namespace</span> CMSImportLibrary.FieldAdapters.DefaultFieldAdapters
{ <span style="color: #0000ff">public</span><span style="color: #0000ff">class</span> BooleanFieldAdapter
: IFieldAdapter { #region IFieldAdapter Members <span style="color: #0000ff">public</span> Guid
DataTypeId { <span style="color: #0000ff">get</span> { <span style="color: #0000ff">return</span><span style="color: #0000ff">new</span> Guid("<span style="color: #8b0000">38b352c1-e9f8-4fd8-9324-9a2eab06d97a</span>");
} } <span style="color: #0000ff">public</span><span style="color: #0000ff">object</span> Parse(<span style="color: #0000ff">object</span><span style="color: #0000ff">value</span>)
{ <span style="color: #0000ff">if</span> (!(<span style="color: #0000ff">value</span>.Equals("<span style="color: #8b0000">0</span>")
|| <span style="color: #0000ff">value</span>.Equals("<span style="color: #8b0000">1</span>")))
{ <span style="color: #0000ff">bool</span> boolValue = <span style="color: #0000ff">false</span>; <span style="color: #0000ff">if</span> (<span style="color: #0000ff">bool</span>.TryParse(<span style="color: #0000ff">value</span>.ToString(), <span style="color: #0000ff">out</span> boolValue))
{ <span style="color: #0000ff">return</span> boolValue ? 1 : 0; } } <span style="color: #0000ff">return</span><span style="color: #0000ff">value</span>;
} #endregion } }</pre>
        <p>
Now when we run the import  again it will just import the data without any errors,
just by adding a few lines of code, isn’t that powerful? 
</p>
        <h3>Beyond fixing problems
</h3>
        <p>
        </p>
        <p>
        </p>
        <p>
Now that we have this mechanism we can also use it to modify data during the import.
Let’s say we import a piece of content from an old site that contains an image tag.
This will just run fine but when you have a reference to an image on your old site
and  you delete that old site all the references to the images are dead. FieldAdapters
can help solve this issue by inspecting the text, extract the image tags, import these
images into the media library and update the image tag with a reference to the media
item. This will really help keep your site consistent. The same applies for Upload
fields.
</p>
        <h3>Will all of this be included in the free version of CMSImport also?
</h3>
        <p>
All FieldAdapters that fix errors (Like the BooleanFieldAdapter) will be included
into the free version of CMSImport. FieldAdapters that helps you updating the content
will only be included in the PRO version of CMSImport. And again you can also create
your own FieldAdapters, free for both versions. 
</p>
        <p>
This will be the major feature of the V1.1 release of CMSImport. Please let me know
what you think about this feature.
</p>
        <img width="0" height="0" src="http://www.richardsoeteman.net/aggbug.ashx?id=7e6085b3-5a80-4cda-ae85-887828ca675a" />
      </body>
      <title>FieldAdapters for CMSImport</title>
      <guid isPermaLink="false">http://www.richardsoeteman.net/PermaLink,guid,7e6085b3-5a80-4cda-ae85-887828ca675a.aspx</guid>
      <link>http://www.richardsoeteman.net/2010/04/16/FieldAdaptersForCMSImport.aspx</link>
      <pubDate>Fri, 16 Apr 2010 13:09:04 GMT</pubDate>
      <description>&lt;p&gt;
When I released &lt;a href="http://www.cmsimport.com/" target="_blank"&gt;CMSImport 1.0&lt;/a&gt; two
months ago, &lt;a href="http://www.richardsoeteman.net/2010/02/16/CMSImportPRO103Released.aspx" target="_blank"&gt;I
briefly described the FieldAdapters feature&lt;/a&gt; that&amp;#160; I was going to build for
version 1.1. Today I want to go more into detail about the FieldAdapters feature for
CMSImport. 
&lt;/p&gt;
&lt;h3&gt;The problem
&lt;/h3&gt;
&lt;p&gt;
The reason I started to think about fieldadapters was because I wanted to solve a
very common problem. As you might know Umbraco only accepts three kinds of&amp;#160; data;
string, integer and datetime. What happens when you try to map a boolean value to&amp;#160;
a yes/no Umbraco datatype? An exception is thrown.&amp;#160; The following screenshot
contains several products that we want to import into Umbraco.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.richardsoeteman.net/content/binary/WindowsLiveWriter/FieldAdaptersforCMSImport_D108/products_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="products" border="0" alt="products" src="http://www.richardsoeteman.net/content/binary/WindowsLiveWriter/FieldAdaptersforCMSImport_D108/products_thumb.png" width="632" height="323" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
When we’ve mapped the InStore column to a yes/no datatype the import will fail because
it can’t map the boolean value to a 0 or 1 and we will see the following ugly screen
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.richardsoeteman.net/content/binary/WindowsLiveWriter/FieldAdaptersforCMSImport_D108/errors_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="errors" border="0" alt="errors" src="http://www.richardsoeteman.net/content/binary/WindowsLiveWriter/FieldAdaptersforCMSImport_D108/errors_thumb.png" width="499" height="302" /&gt;&lt;/a&gt;&amp;#160;
&lt;/p&gt;
&lt;h3&gt;And a FieldAdapter can fix that?
&lt;/h3&gt;
&lt;p&gt;
Yes a fieldadapter inspects the value and tries to parse it, in this case it will
try to pares a true/false value to 1/0, best to explain by exploring the source code.
The whole feature is based on the new IFieldAdapter interface. 
&lt;/p&gt;
&lt;pre&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System; &lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; CMSImportLibrary.Interfaces
{ &lt;span style="color: #808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt; &lt;span style="color: #808080"&gt;///
Implement the IFieldAdapter interface to convert an mallformed field to a correct
type.&lt;/span&gt; &lt;span style="color: #808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;interface&lt;/span&gt; IFieldAdapter
{ &lt;span style="color: #808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt; &lt;span style="color: #808080"&gt;///
Contains the GUID of the datatype we want to parse using this FieldAdapter&lt;/span&gt; &lt;span style="color: #808080"&gt;///
&amp;lt;/summary&amp;gt;&lt;/span&gt; Guid DataTypeId { &lt;span style="color: #0000ff"&gt;get&lt;/span&gt;;
} &lt;span style="color: #808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt; &lt;span style="color: #808080"&gt;///
Parse the data &lt;/span&gt; &lt;span style="color: #808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt; &lt;span style="color: #808080"&gt;///
&amp;lt;param name=&amp;quot;value&amp;quot;&amp;gt;The value to parse&amp;lt;/param&amp;gt;&lt;/span&gt; &lt;span style="color: #808080"&gt;///
&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;object&lt;/span&gt; Parse(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;);
} }&lt;/pre&gt;
&lt;p&gt;
As you can see in the code snippet the interface contains the property DataTypeId.
The value needs to correspondent to the Id (GUID) of the datatype you are creating
the fieldadapter for. During the import a factory inspects the underlying datatype
of the document property, if a fieldadapter is found it will execute&amp;#160; the Parse
method. This will work on all Umbraco datatypes (also custom datatypes or datatypes
from third party packages) as long as you know the Id of the datatype. You can find
the id by opening the datatype in Umbraco, there you see the RenderControl .
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.richardsoeteman.net/content/binary/WindowsLiveWriter/FieldAdaptersforCMSImport_D108/truefalsedatatype_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="truefalsedatatype" border="0" alt="truefalsedatatype" src="http://www.richardsoeteman.net/content/binary/WindowsLiveWriter/FieldAdaptersforCMSImport_D108/truefalsedatatype_thumb.png" width="578" height="215" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
When opening the source code of the rendercontrol you’ll see the Id of the datatype
(a GUID). Don’t worry if you can’t open the source code of the datatype i’ll add the
Id’s of all known datatypes to the documentation of CMSImport and I’ll make a free
tool that shows the Id of any datatype.
&lt;/p&gt;
&lt;h3&gt;Implementation of the BooleanFieldAdapter
&lt;/h3&gt;
&lt;p&gt;
Now enough with all the boring stuff, let’s see the fieldadapter in action. Below
you’ll see the implementation of the BooleanFieldAdapter. I’ve mapped the id of the
True/false datatype to the DataTypeId property so CMSImport knows that it needs to
call the Parse method during the mapping of a yes/no document property. In the Parse
method I simply check if the value is already in the correct format , if not it will
try to convert the value to 1 or 0 and return that , otherwise it will just return
the original value.
&lt;/p&gt;
&lt;pre&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; CMSImportLibrary.Interfaces; &lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; CMSImportLibrary.FieldAdapters.DefaultFieldAdapters
{ &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; BooleanFieldAdapter
: IFieldAdapter { #region IFieldAdapter Members &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Guid
DataTypeId { &lt;span style="color: #0000ff"&gt;get&lt;/span&gt; { &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Guid(&amp;quot;&lt;span style="color: #8b0000"&gt;38b352c1-e9f8-4fd8-9324-9a2eab06d97a&lt;/span&gt;&amp;quot;);
} } &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;object&lt;/span&gt; Parse(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;)
{ &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!(&lt;span style="color: #0000ff"&gt;value&lt;/span&gt;.Equals(&amp;quot;&lt;span style="color: #8b0000"&gt;0&lt;/span&gt;&amp;quot;)
|| &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;.Equals(&amp;quot;&lt;span style="color: #8b0000"&gt;1&lt;/span&gt;&amp;quot;)))
{ &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; boolValue = &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;bool&lt;/span&gt;.TryParse(&lt;span style="color: #0000ff"&gt;value&lt;/span&gt;.ToString(), &lt;span style="color: #0000ff"&gt;out&lt;/span&gt; boolValue))
{ &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; boolValue ? 1 : 0; } } &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;;
} #endregion } }&lt;/pre&gt;
&lt;p&gt;
Now when we run the import&amp;#160; again it will just import the data without any errors,
just by adding a few lines of code, isn’t that powerful? 
&lt;/p&gt;
&lt;h3&gt;Beyond fixing problems
&lt;/h3&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Now that we have this mechanism we can also use it to modify data during the import.
Let’s say we import a piece of content from an old site that contains an image tag.
This will just run fine but when you have a reference to an image on your old site
and&amp;#160; you delete that old site all the references to the images are dead. FieldAdapters
can help solve this issue by inspecting the text, extract the image tags, import these
images into the media library and update the image tag with a reference to the media
item. This will really help keep your site consistent. The same applies for Upload
fields.
&lt;/p&gt;
&lt;h3&gt;Will all of this be included in the free version of CMSImport also?
&lt;/h3&gt;
&lt;p&gt;
All FieldAdapters that fix errors (Like the BooleanFieldAdapter) will be included
into the free version of CMSImport. FieldAdapters that helps you updating the content
will only be included in the PRO version of CMSImport. And again you can also create
your own FieldAdapters, free for both versions. 
&lt;/p&gt;
&lt;p&gt;
This will be the major feature of the V1.1 release of CMSImport. Please let me know
what you think about this feature.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.richardsoeteman.net/aggbug.ashx?id=7e6085b3-5a80-4cda-ae85-887828ca675a" /&gt;</description>
      <comments>http://www.richardsoeteman.net/CommentView,guid,7e6085b3-5a80-4cda-ae85-887828ca675a.aspx</comments>
      <category>CMSImport</category>
      <category>Umbraco</category>
    </item>
    <item>
      <trackback:ping>http://www.richardsoeteman.net/Trackback.aspx?guid=90ffa866-c315-42be-9d32-bcf85c20e6bd</trackback:ping>
      <pingback:server>http://www.richardsoeteman.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.richardsoeteman.net/PermaLink,guid,90ffa866-c315-42be-9d32-bcf85c20e6bd.aspx</pingback:target>
      <dc:creator>Richard Soeteman</dc:creator>
      <wfw:comment>http://www.richardsoeteman.net/CommentView,guid,90ffa866-c315-42be-9d32-bcf85c20e6bd.aspx</wfw:comment>
      <wfw:commentRss>http://www.richardsoeteman.net/SyndicationService.asmx/GetEntryCommentsRss?guid=90ffa866-c315-42be-9d32-bcf85c20e6bd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I’m very pleased to announce that CMSImport 1.0.3 is released. Now I can hear you
think CMSImport? Must be a fork of the great UmbImport package. No this isn’t the
case. A few weeks back Niels (AKA @Umbraco) asked me to change the name since <a title="Umbraco" href="http://www.umbraco.org." target="_blank">Umbraco</a> HQ
got a lot of requests about this package. So now the name is CMSImport and that’s
not going to change anymore.
</p>
        <h3>CMSImport PRO
</h3>
        <p>
Finally we’ve finished our commercial edition of CMSImport.  CMSImport PRO gives
you all the options of the default package and the following extra features: 
</p>
        <ul>
          <li>
Update Content 
</li>
          <li>
Save Import Steps 
</li>
          <li>
Schedule imports for a certain time and day 
</li>
        </ul>
        <h3>Pricing
</h3>
        <p>
You can buy a single domain license of CMSImport. With a single domain license you
are allowed to use  CMSImport PRO for a single domain and all subdomains, such
as www.example.com, accept.example.com, and local.example.com. 
</p>
        <p>
We also have a Enterprise license available. With an Enterprise license you are allowed
to install the CMSImport PRO on unlimited production web servers, and use it for unlimited
Umbraco instances within the Enterprise.  
</p>
        <p>
A single domain license will be available for  <strong>99 Euro</strong>, an enterpise
license for <strong>389 euro. </strong></p>
        <p>
When you buy a license you’ll get free updates within 90 days of purchase and 
free updates for all minor releases within a major release.  For example, if
you purchased a  1.0 version of CMSImport, you get free updates of all 1.x versions
through our <a href="http://www.cmsimport.com/clientarea.aspx" target="_blank">client
area</a>. 
</p>
        <p>
          <strong>Special 1.0 offer.</strong>When you buy the 1.0 release you’ll get a free
update to 2.x. <strong>This is a 1.0 offer only!</strong></p>
        <h3>
        </h3>
        <h3>What’s more in this release?
</h3>
        <p>
Several issues are solved in this release(both in the free and Pro release):
</p>
        <ul>
          <li>
"item with the same key already added" error when using duplicate column
names 
</li>
          <li>
Automapping column names 
</li>
          <li>
The imported document creator is not always the administrator anymore. It's using
the logged in user now. When you schedule an import you can select the user that should
be used as the creator of the document 
</li>
          <li>
Special characters in CSV are now supported, we’ve changed the reader from ANSI text
to Unicode 
</li>
          <li>
Sometimes CSV replaced spaces with empty strings, this is solved now 
</li>
          <li>
With member import you can now merge any member property into the template. Simply
surround the member property with [#(property here)] 
</li>
          <li>
Using a renamed Umbraco folder. This is possible now, although it will be better to
change it after install, otherwise you have to install manually. 
</li>
          <li>
We’ve removed the limitation to allow only one DataAdapter. We are thinking to build
a DataAdapter pack which contains adapters to import from wordpress, Rss, Outlook,
excel etc. These adapters will be available for free in the Commercial Edition and
for a small fee for the Free edition. 
</li>
        </ul>
        <h3>Roadmap
</h3>
        <p>
In the 1.x version we will add the following functionality:
</p>
        <ul>
          <li>
            <strong>FieldAdapters.</strong> Sounds boring but this is a big thing. When you import
data now, sometimes the import will fail. For example if you import boolean as text
(true/false) and want to store that in a True/False field in Umbraco it will fail.
Umbraco expects that the value will be 0/1. FieldAdapters will solve this problem.
If a insert of data fails. CMSImport will check if 1 o more FieldAdapters are available
to convert the data in the right format. This will be added to version 1.1 which must
be ready before CodeGarden 2010. 
</li>
          <li>
            <strong>Dictionary Import</strong>. Need I say more? 
</li>
          <li>
            <strong>
              <b>Hierarchical </b>imports</strong>(PRO only). 
</li>
        </ul>
        <p>
In the 2.x version we will add the following functionality:
</p>
        <ul>
          <li>
            <strong>
              <b>Hierarchical </b>import support in Data Adapters</strong>. Not the same
as the 1.x Hierarchical<strong></strong>import feature ;-) 
</li>
          <li>
            <strong>Export/import definitions (PRO only)</strong>. An easy way to deploy Import
definitions 
</li>
        </ul>
        <h3>
        </h3>
        <h3>More Info
</h3>
        <p>
For more info, download, or purchase you’ll go to <a title="http://www.cmsimport.com/" href="http://www.cmsimport.com/">http://www.cmsimport.com/</a></p>
        <img width="0" height="0" src="http://www.richardsoeteman.net/aggbug.ashx?id=90ffa866-c315-42be-9d32-bcf85c20e6bd" />
      </body>
      <title>CMSImport (PRO) 1.0.3 released</title>
      <guid isPermaLink="false">http://www.richardsoeteman.net/PermaLink,guid,90ffa866-c315-42be-9d32-bcf85c20e6bd.aspx</guid>
      <link>http://www.richardsoeteman.net/2010/02/16/CMSImportPRO103Released.aspx</link>
      <pubDate>Tue, 16 Feb 2010 08:57:09 GMT</pubDate>
      <description>&lt;p&gt;
I’m very pleased to announce that CMSImport 1.0.3 is released. Now I can hear you
think CMSImport? Must be a fork of the great UmbImport package. No this isn’t the
case. A few weeks back Niels (AKA @Umbraco) asked me to change the name since &lt;a title="Umbraco" href="http://www.umbraco.org." target="_blank"&gt;Umbraco&lt;/a&gt; HQ
got a lot of requests about this package. So now the name is CMSImport and that’s
not going to change anymore.
&lt;/p&gt;
&lt;h3&gt;CMSImport PRO
&lt;/h3&gt;
&lt;p&gt;
Finally we’ve finished our commercial edition of CMSImport.&amp;#160; CMSImport PRO gives
you all the options of the default package and the following extra features: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Update Content 
&lt;/li&gt;
&lt;li&gt;
Save Import Steps 
&lt;/li&gt;
&lt;li&gt;
Schedule imports for a certain time and day 
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Pricing
&lt;/h3&gt;
&lt;p&gt;
You can buy a single domain license of CMSImport. With a single domain license you
are allowed to use&amp;#160; CMSImport PRO for a single domain and all subdomains, such
as www.example.com, accept.example.com, and local.example.com. 
&lt;/p&gt;
&lt;p&gt;
We also have a Enterprise license available. With an Enterprise license you are allowed
to install the CMSImport PRO on unlimited production web servers, and use it for unlimited
Umbraco instances within the Enterprise.&amp;#160; 
&lt;/p&gt;
&lt;p&gt;
A single domain license will be available for&amp;#160; &lt;strong&gt;99 Euro&lt;/strong&gt;, an enterpise
license for &lt;strong&gt;389 euro. &lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
When you buy a license you’ll get free updates within 90 days of purchase and&amp;#160;
free updates for all minor releases within a major release.&amp;#160; For example, if
you purchased a&amp;#160; 1.0 version of CMSImport, you get free updates of all 1.x versions
through our &lt;a href="http://www.cmsimport.com/clientarea.aspx" target="_blank"&gt;client
area&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Special 1.0 offer.&lt;/strong&gt;When you buy the 1.0 release you’ll get a free
update to 2.x. &lt;strong&gt;This is a 1.0 offer only!&lt;/strong&gt;
&lt;/p&gt;
&lt;h3&gt;
&lt;/h3&gt;
&lt;h3&gt;What’s more in this release?
&lt;/h3&gt;
&lt;p&gt;
Several issues are solved in this release(both in the free and Pro release):
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&amp;quot;item with the same key already added&amp;quot; error when using duplicate column
names 
&lt;/li&gt;
&lt;li&gt;
Automapping column names 
&lt;/li&gt;
&lt;li&gt;
The imported document creator is not always the administrator anymore. It's using
the logged in user now. When you schedule an import you can select the user that should
be used as the creator of the document 
&lt;/li&gt;
&lt;li&gt;
Special characters in CSV are now supported, we’ve changed the reader from ANSI text
to Unicode 
&lt;/li&gt;
&lt;li&gt;
Sometimes CSV replaced spaces with empty strings, this is solved now 
&lt;/li&gt;
&lt;li&gt;
With member import you can now merge any member property into the template. Simply
surround the member property with [#(property here)] 
&lt;/li&gt;
&lt;li&gt;
Using a renamed Umbraco folder. This is possible now, although it will be better to
change it after install, otherwise you have to install manually. 
&lt;/li&gt;
&lt;li&gt;
We’ve removed the limitation to allow only one DataAdapter. We are thinking to build
a DataAdapter pack which contains adapters to import from wordpress, Rss, Outlook,
excel etc. These adapters will be available for free in the Commercial Edition and
for a small fee for the Free edition. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Roadmap
&lt;/h3&gt;
&lt;p&gt;
In the 1.x version we will add the following functionality:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FieldAdapters.&lt;/strong&gt; Sounds boring but this is a big thing. When you import
data now, sometimes the import will fail. For example if you import boolean as text
(true/false) and want to store that in a True/False field in Umbraco it will fail.
Umbraco expects that the value will be 0/1. FieldAdapters will solve this problem.
If a insert of data fails. CMSImport will check if 1 o more FieldAdapters are available
to convert the data in the right format. This will be added to version 1.1 which must
be ready before CodeGarden 2010. 
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dictionary Import&lt;/strong&gt;. Need I say more? 
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;b&gt;Hierarchical &lt;/b&gt;imports&lt;/strong&gt;(PRO only). 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
In the 2.x version we will add the following functionality:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;b&gt;Hierarchical &lt;/b&gt;import support in Data Adapters&lt;/strong&gt;. Not the same
as the 1.x Hierarchical&lt;strong&gt; &lt;/strong&gt;import feature ;-) 
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Export/import definitions (PRO only)&lt;/strong&gt;. An easy way to deploy Import
definitions 
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
&lt;/h3&gt;
&lt;h3&gt;More Info
&lt;/h3&gt;
&lt;p&gt;
For more info, download, or purchase you’ll go to &lt;a title="http://www.cmsimport.com/" href="http://www.cmsimport.com/"&gt;http://www.cmsimport.com/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.richardsoeteman.net/aggbug.ashx?id=90ffa866-c315-42be-9d32-bcf85c20e6bd" /&gt;</description>
      <comments>http://www.richardsoeteman.net/CommentView,guid,90ffa866-c315-42be-9d32-bcf85c20e6bd.aspx</comments>
      <category>CMSImport</category>
      <category>Package</category>
      <category>UmbImport</category>
      <category>Umbraco</category>
    </item>
  </channel>
</rss>