A blog about .NET, Graffiti, Community Server, and Kevin's life

Version 2 of DotText-CS-Converter is released!

DotText-CS-Converter is a conversion program to convert all .Text content to Community Server. Read my previous post about DotText-CS-Converter 1.x for background info.

Changes in Version 2.0

  • URL's can remain the same! The CS PostID's for posts, articles, comments, and trackbacks will use the same numbers as the corresponding .Text Entry ID to keep the same URL's and prevent 404 errors. This is an option that you can turn off or on. It will only work if you don't already have content in your CS database (because if you did you might already be using some of the .Text IDs).
  • Now converts .Text Galleries! Optionally, you can convert .Text image galleries into CS::Galleries. You can also create empty CS Galleries for those users without .Text galleries.
  • Now, with turbo mode. I spent some time refactoring the code and making performance improvements where I could. The tool should now run significantly faster than before. Additionally, (at the suggestion of Scott W.) the conversion of Referrals is optional. If you have a very old blog with a ton of referrals, or are converting a very large number of blogs, then not converting referrals can save some time.
  • Entry names will now be converted properly. Previously I was ignoring them. Entry names allow you to have a "friendly" url for a blog post instead of using the primary key.
  • The utility can now (optionally) skip over errors instead of stopping.
  • Prevents duplicate email constraint errors. The CS database requires each user to have a unique email, whereas .Text doesn't. If you are converting over multiple .Text users with same email, you would get an error. I added code to version 2, so that when creating a new user it will check if the user's email is already being used by an existing user in Community Server. If so, it changes the new user's email to the format "CSInvalidEmail_[USERNAME]_[BLOG_APPLICATION]@example.org" where the username and blog_application values are from whatever user/blog is being added.
  • Content Replacer. New option allows you to do search-and-replace on one or more pieces of text in your blog content as you convert. So for example if your .Text blog was at blogs.mydomain.com and your CS blog is at www.mydomain.com/blogs then you can enter those into the new and old values and all instances of the old value will be replaced with the new value in your content.
  • Some other small bug fixes, mostly related to converting content into an existing CS User and/or blog.

Download Link: DotText-CS-Converter_v2.0.zip

  1. Unzip the file.
  2. Read the READ_ME_FIRST.txt file for more information and detailed directions.
  3. Run the DotText-CS-Converter.exe program.

For questions or help, email me or just ask on this blog or in the CommunityServer.org forums so everyone can see the answer. I will post any updates to this tool on my blog and in the Community Server forums. Thank you to everyone who helped me test this tool and have offered suggestions and feedback!

Update: New Version 2.1 - 3/24/05

DotText-CS-Converter version 2.1 is now available. Version 2.0 is obsolete. Read this post for more information.

» Similar Posts

  1. Version 2.1 of the DotText-CS-Converter is available
  2. Announcing the DotText-CS-Converter tool
  3. Version 2.2 of the DotText-CS-Converter is now available

» Trackbacks & Pingbacks

  1. So, mainly because of my comment problems with dottext 0.95, I decided to go


    ahead and take the plunge....

    Blue Phoenix — March 17, 2005 1:47 PM
  2. .NET Blog - Chris Frazier Style — March 17, 2005 1:47 PM
  3. Community Server に統合された .Text (ブログシステム)に関して、データをきちんと引き継ぎつつマイグレーションをする方法を紹介します。

    Shinichi Haramizu's Blog — March 18, 2005 8:59 PM
  4. A few people have sent me some suggestions for improvements to the DotText-CS-Converter, so I will be...

    Kevin Harder — March 19, 2005 9:57 PM
  5. DotText-CS-Converter is a conversion program to convert all .Text v0.95 content to Community Server....

    Kevin Harder — March 24, 2005 1:06 AM
  6. Como prometí, unos comentarios de como me fue con la migración de .Text a Community Server.

    Nazul's Weblog — March 27, 2005 7:23 PM

» Comments

  1. Dave Burke avatar

    Thanks for posting this. I was still debating on which option to go, and I like the URLs not changing! I'll be able to use the ngallery to CSG feature, too, if it works...

    Dave Burke — March 16, 2005 10:07 AM
  2. Dave Burke avatar

    Kevin, I've gone through migrating from 0.95 to CS using your app a few times tonight to work through the kinks and want to say you did a FANTASTIC job with this. Phenomenal! And in such a short period of time, too.



    I'll be blogging about the particulars soon, maybe add a few screenshots and tips.



    I'm really impressed.

    Dave Burke — March 17, 2005 12:53 AM
  3. kevin avatar

    Thanks for the kind comments Dave! I'm glad it's worked out well for you. I'm looking forward to seeing your blog in Community Server flavor =)

    kevin — March 17, 2005 12:12 PM
  4. Dave avatar

    I converted successfully, and when I go to the site I now get:



    [NullReferenceException: Object reference not set to an instance of an object.]


    CommunityServer.Data.WeblogSqlDataProvider.GetWeblogs() +231


    CommunityServer.Blogs.Components.Weblogs.GetWeblogs(CSContext csContext, User user, Boolean ignorePermissions, Boolean cacheable, Boolean flush) +338


    CommunityServer.Blogs.Components.Weblogs.GetWeblogsByGroupID(Int32 groupID, User user, Boolean ignorePermissions, Boolean cacheable, Boolean flush) +99


    CommunityServer.Blogs.Components.WeblogGroups.GetWeblogGroups(CSContext csContext, User user, Boolean cacheable, Boolean ignorePermissions, Boolean flush) +523


    CommunityServer.Blogs.Components.WeblogGroups.GetWeblogGroups(User user, Boolean cacheable, Boolean ignorePermissions, Boolean flush) +102


    CommunityServer.Blogs.Controls.AggregateColumn.DataBind() +29


    CommunityServer.Blogs.Controls.AggregateColumn.OnLoad(EventArgs e) +53


    System.Web.UI.Control.LoadRecursive() +35


    System.Web.UI.Control.LoadRecursive() +98


    System.Web.UI.Control.LoadRecursive() +98


    System.Web.UI.Page.ProcessRequestMain() +750





    Any ideals?

    Dave — March 20, 2005 11:26 AM
  5. Dale Courtney avatar

    I converted three DotText blogs to CS 1.1



    The converter worked flawlessly in all three instances.



    Thanks *so* much for making that tool available.



    best,


    Dale

    Dale Courtney — August 23, 2005 9:28 AM

Comments are closed