Anonymous personalization in V2 Web Parts (or lack thereof)
My favorite feature of ASP.NET V2 by far is Web Parts. I’ve spent the majority of my development time working with Whidbey’s Portal Framework features, and I’ve sent lots of notes and suggestions to that team’s members about what I think, and I never tire of messing with it. Being responsible for running a mid-market news-oriented site, I nearly short my keyboard out after salivating all over it when thinking about the personalization capabilities I’ll be able to add.
However, I’ve taken a bumpy ride in getting the final word down on anonymous personalization - specifically, if it’ll still be around as we move along in the product’s lifecycle. My initial intent, as per the stated shipped functionality of the early alpha bits, was to create a customizable portal, wherein users could reposition and/or turn off content sections of our homepage, to customize it to their preferences.
Because our site’s been around for 4 years, I didn’t want to mandate membership for this feature to work, basing the configuration of the page on anonymous personalization as (1) I felt the former would be too tedious/too dramatic a shift for our users, and (2) past marketing activities indicate that mentioning the word “membership”, no matter how slyly worded, scare our users off, thinking they’ll be charged for reading our news articles and cost us traffic and revenue. It would be too hard a pill to swallow for our customers, despite being so trivial – and free. Besides, if I could do it without membership and essentially achieve the same result, why not? I think it would be a nice gimmick to offer to visitors, which would really catch on immediately, and then be used in normal daily operations by (an estimated) 35% of the people who visit our site.
I first thought it would be possible to use a persistent cookie to retain non-default WebPart positioning within a page, using anonymous personalization and the Profile object in web.config. But after much trial and tribulation, I found out it wouldn’t work. Also, certain properties within the Portal Framework API relative to positioning of a WebPart on a WebForm are, at the moment, private or otherwise sealed off from public access, so rolling a custom solution is impossible, if not extremely difficult.
After much dialoguing with the ASP.NET team, it was made clear that anonymous personalization, in contrast to the feature being an enabled part of the pre-PDC/PDC alpha bits, would likely not be part of the beta and subsequent final RTM versions. Fair enough. After a weekend of resting on the subject, the emotional attachment that I’d built up for my optimal architecture waned a bit, and I saw things more clearly.
It would, for lack of a more appropriate term, be a major bitch to track, maintain and manage non-membership settings without a repository in which to store such data. But now I’ve come across a new issue – that Web Parts, if used without membership, may not work at all.
My latest rant about Web Parts came after I authored an as-of-yet unpublished tutorial, demonstrating how to use Web Parts to build a cool, rich UI for a sports contest (http://www.guam-asp.net/webpartsarticle/index.mht), showing how the feature is more multi-dimensional than just for building portal front-ends. Now apparently, it’s been implied that we won’t be able to do this (http://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=483409), bunking the whole point of my article. Evidently, the plan for the future is to not allow non-membership users to be able to manipulate pages that have WebPartZone(s) & data.
As per a discussion I had with an ASP.NET team member, he was good enough to clarify: “The anonymous user cannot save personalization data, nor do any operation that would cause personalization data to be saved (add a WebPart, delete a WebPart, move a WebPart, etc.)…The anonymous user will not be able to move the WebParts on the page…in the Beta and going forward, personalization will only work for logged-in users, so design your page with this in mind.”
I realize that we’re at the moment still in alpha and therefore subject to much change, and hopefully progressively so. I’ve even tried taking a step back to think about maybe it’s me that’s wrong – that perhaps I’m too excited about the feature and that I confused myself by over-hyping it. But, I’ve managed to find a few sparse people that share my disdain, hoping for anonymous personalization of some sort. At any rate, I think unequivocally requiring membership to use Web Parts in a scenario, not being able to do so anonymously, is a let down. I’ve talked to a lot of people about why this is, and although I’ve never gotten the same answer twice, the end result is consistent.
I guess what I’m after is a definitive answer: is anonymous personalization going to be completely out of the picture, such that membership-based systems are mandated if we are to get Web Parts to work at all?
Thanks for listening!