Getting ready for breaking changes in Ivonna v.3

Ivonna was conceived during the dark times, when the WebForms framework ruled the Asp.Net development. Sure there was MonoRail, but only a few alpha geeks actually used it. For 99% developers, Asp.Net was equal to WebForms.

Ivonna also suffered from me not seeing a clear distinction between the framework and the runtime. As a result, its core classes have been tightly coupled to WebForms specific ones, and compatibility with all other frameworks was left in a "working, but not supported" state.

The times have changed. More and more devs are shifting to Asp.Net MVC, other frameworks like FubuMVC and Nancy are gaining momentum. It's time for Ivonna to catch with the times. Time for a big change.

Let's get to the point

The main goal for Ivonna v.3 is to decouple the core classes from WebForm dependencies, yet keep the existing code working. Strictly speaking, this is impossible, since, for example, several TestSession methods, such as GetPage, are obviously WebForms-related. The only way to have the decoupling and eat it, I believe, is to move the offending methods to a different namespace, making them extension methods of the TestSession class. This is still a breaking change, however, all you have to do to fix it is to import the corresponding namespace. Vb.Net users are lucky to have global imports, so all they have to do is import the Ivonna.Framework.WebForms namespace globally. Cee Sharpers will have to add it to every test file, sorry.

Fortunately, in my infinite compassion for developers, I'm going to provide a simple migration script that would look for "using Ivonna.Framework;" in all *.cs files of your project, and add "using Ivonna.Framework.WebForms;" to the next line.

So, my next step is to release a "break your tests" version that will contain no new functionality, just these breaking changes. The migration script, as well as the list of breaking changes, will be included. The previous version will be available for download as well. Expect this release some time next week.

In September, I'm finally releasing the 3.0 version, that will finally have tons of Asp.Net MVC related functionality, as well as possibility to extend it for other frameworks. Perhaps I'll even release a FubuMVC extension code as an example. But before that, I'd like to release an alpha version of 3.0, so that I could use your feedback in the final version. I don't want to release it in the wild, but if you ping me in the comments (or on Twitter), I'll send you a link once it's ready.

blog comments powered by Disqus

Latest blog posts

Powered by FeedBurner