EPiServer  /  CMS May 17, 2010

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.

Joel Abrahamsson

Joel Abrahamsson

I'm a passionate web developer and systems architect living in Stockholm, Sweden. I work as CTO for a large media site and enjoy developing with all technologies, especially .NET, Node.js, and ElasticSearch. Read more


comments powered by Disqus

My book

Want a structured way to learn EPiServer 7 development? Check out my book on Leanpub!

More about EPiServer CMS