Page Type Builder 1.2 Released!

A few weeks have passed since the second Beta release of Page Type Builder 1.2. Since then it has been used in a number of projects and I’ve also been doing to profiling of it to ensure that it works as it should performance wise. Therefore I’m happy to announce the release of Page Type Builder 1.2, the first official release for EPiServer CMS 6. Go and download it now! And please rate it!

Compared to the 1.2 Beta release version 1.2 only contains one very minor change, better error message when using StructureMapTypedPageActivator to instantiate a page type class that doesn’t have a public constructor. However, compared to version 1.1 this version contains quite a lot of interesting new features and fixes.

Changes since version 1.1

  • Support for EPiSever CMS 6. This means that version 1.2 is compiled with references to EPiServer CMS 6 and also that it addresses an issue where admin mode would crash if you used version 1.1 with CMS 6 due to EPiServer no longer accepting null values for help texts.
  • Automatic properties now use PageData[“propertyName”] instead of PageData.GetValue(“propertyName”). This means that Page Type Builder behaves more like one would expect as a seasoned to EPiServer developer. You can read more about why this change was made and what problems it addresses in my post A common problem with Page Type Builder and UniqueValuePerLanguage set to false and it’s comments.
  • A new initialization process. This means that Page Type Builder no longer depends on a “hack” to get itself started. This has some important implications on how to create code that is dependent on Page Type Builder first having been initialized.
  • A second, optional, assembly called PageTypeBuilder.Activation.StructureMap. Using this you can inject dependencies into PageData objects using StructureMap.
  • TypedPageActivator.CreateInstance has been made public and virtual and PageTypeResolver.Activator has been made public. This enables you to take control over how PageData objects are instantiated, enabling for instance the feature in the previous bullet point.
  • Validation that page type names don't have more then 50 characters in their names. EPiServer only saves 50 characters any way and creating classes that specify longer names can cause you some trouble.
  • Slightly more informative error message when the current page isn't of the correct type. The exception message now includes a hint about one of the most likely causes of this error.
  • Null check in DataFactory_LoadedPage to play nicer with Composer. Thanks to Stefan Forsberg for pointing this out. There still seems to be some issues in using Page Type Builder and Composer though. If anyone is interested in looking into them I’d be more than happy to see if there are any changes that can be done to PTB to better accommodate Composer.
  • The type of the DefaultValue property on the PageTypePropertyAttribute class has been changed from string to object. For a motivation check out Henrik Nyströms ticket about it.

I hope you’ll find the new release useful! Don’t hesitate to let me know if you have any questions or other feedback. Also, I would appreciate it if you rate the release on the CodePlex site once you’ve downloaded it.

PS. For updates about new posts, sites I find useful and the occasional rant you can follow me on Twitter. You are also most welcome to subscribe to the RSS-feed.

Comments

  1. Kalle Hoppe's avatar

    Kalle Hoppe 1 years ago

    Great work!
    I have a question, is it a hard dependency to the CMS 6 or does this version work with older versions, like CMS 5.x?

  2. Joel Abrahamsson's avatar

    Joel Abrahamsson 1 years ago

    I'm afraid it's a hard dependency as version 1.2 is dependent on the new initialization/module system in EPiServer Framework that ships with CMS 6.

  3. Kalle Hoppe's avatar

    Kalle Hoppe 1 years ago

    Ok, but then we could do a 1.1.5 version that has the other nice features except for the loading mechanism =).

Follow me on Twitter

  1. @chraas You might want to use it for complex parts of the site and not use it for simple rendering pages. 1 days ago
  2. @chraas In theory more SOLID, but I'm not sure it's worth the price. 1 days ago
  3. @chraas Be warned that you're introducing one big chunk of complexity with EPiMVP :) 1 days ago
follow me

Latest comments

  1. Berra S wrote "Read your post at http://joelabrahamsson.com/entry/using-xfo..." on PageData objects not returned as typed when using Page Type Builder and FindPagesWithCriteria
  2. Linus wrote "1 up for behaviour being as close as expected as possible!" on A common problem with Page Type Builder and UniqueValuePerLanguage set to false
  3. Joel Abrahamsson wrote "Hi Hans, Could it be that you previously didn't have Page..." on Page Type Builder 2.0 released

About this site

This blog is built with EPiServer Community, EPiServer CMS, ASP.NET MVC and a bunch of other great products. The source code is available for download at the projects page, where you also can read more about this site and my other projects.

read more