Starting with DotNetNuke v3.3/4.3, all dependencies on the Microsoft MemberRole assembly were removed. DotNetNuke includes a Role Provider, a Profile Provider and a Member Provider that works directly with ASP.Net membership. When the MemberRole dependency was introduced in DotNetNuke v3.x, many portal administrators who used the multi-portal Single Sign-On capability in DotNetNuke v2.x had to resort to third-party solutions to make SSO work across portals. With DNN v4.3 (possibly v3.3 also; I have not tested), it looks like SSO, or at least the potential for SSO is back.

If you add a row for a user in the UserPortals table, the user will effectively be able to authenticate seamlessly to every portal for which her/his user ID has a portal ID assigned. It’s that simple. Everything works as you would expect — roles are portal-specific; the user’s profile is portal-independent and authentication works regardless of which portal a user initially logs into.

Implementing a UI for administering SSO looks to be as simple as having a module where you can link/unlink users to/from portals. Nice.

I have had several emails from people inquiring whether I would be releasing a My Modules version for DNN4. The answer is “Yes.” I’m trying to decide if I should base it on VS.Net WAP or WSP models. If you are not familiar with these models you can learn more about them on Scott Guthrie’s blog

I am trying hard to be objective, but I have a strong bias for the WAP model. Granted, it makes total sense for the DNN project to follow WSP since it allows DNN to be usable with the Express series of Microsoft developer products. However this is not an important consideration for most professional developers. Also, there is a significant cost to change all my existing projects to support the WSP model and it will take quite a bit of time to migrate and test hundreds of VS.Net 2003 projects and migrate them to the WSP model. I am sure there is some ROI there, but it’s just not something that makes you sit up and take notice.

I have allocated some time this weekend to study the DNN Starter Kit in greater detail and make a decision on which model to follow for “My Modules.” If you have any preference on the matter, please leave a comment or contact me using the link at right.

  

After coming up blank on a robust tagging API for ASP.Net apps, and wanting to incorporate this functionality into new versions of most Speerio products, I decided to create one. Along the way, I took a good, hard look at many websites to see how they implemented the UI for tagging. In most cases, everyone ripped Flickr’s UI. This is fine, but in the process they also copied some of limitations of the Flickr UI.

I took a clean-slate approach and decided I wanted to communicate more than just popularity through the tag cloud. The relative age of an item is just as relevant as how often an item is tagged with a certain tag, therefore I decided to introduce the concept of “age” into my tagging API. At a glance, the tag cloud not only tells you which items are more popular, but also which ones have newer/older information.

This ability to convey both popularity and age through a single UI is going to be an important feature of the (clean-slate) discussion forum I am creating. Imagine if you will, a discussion forum that is devoid of categorized groups of sub-forums, with only a tag cloud for navigation. If you’re looking for a solution or an answer to a question, you can instantly find all posts relevant to a keyword of interest to you simply by clicking on it. And then, you can explore clusters of related information to find the handful of posts that are most applicable to your situation. No paging through hundreds of posts only to find content that has no bearing on your situation. And if you want to browse, just click on “age” and you’ll see the topics that have been most recently posted.

Getting back to the API, here’s a screen grab of the cloud which can be added to any ASP.Net page or control with one line of code. The entire UI is customizable with CSS and works identically on IE and FireFox (should work on other browsers too, but I haven’t tested).

Cloud1

I also wanted to automate the detection of clusters between tags and users. I didn’t think this was information that was relevant on the main cloud UI, so I created a context-menu which allows a user to display a cross-browser, modal dialog containing more information about the tag.

Cloud2

I’ll have more details about the tagging API soon and an online demo in the next few days.

 

Umair could not have made a more timely post about Yahoo’s lack of innovation. He discusses Yahoo’s “hyperimitation” and how it never really improves anything in any meaningful way.

I say timely because I have now spent some time engineering a better “forums” application because I have given up on forum software available today. Many of us use web-based discussion forums everyday, and they are all the same. From the common seed of BBS many years ago, there evolved a design for web discussions — forum groups, forums, threads and posts. It all worked quite well until everybody had a computer, a browser, an Internet connection and an opinion. This has resulted in three major problems:

– It’s hard to keep up with the volume of information. With hundreds and sometimes thousands of posts in different forums, across different sites, how does one track information of interest and more importantly relevance. Email digests and email subscriptions don’t cut it. They just move the information to different client software. If you track even 3–5 busy forums, you will be innundated with information.

– It’s hard to find relevant information. Forums are notoriously hard to search because there is no meaningful way to perform contextual searches. Users freely post anything (even in moderated forums) and there is no guarantee that threads will stay focused on a topic. Keyword searches yield tons of results and out of frustration, users will often just post a question which has already been answered umpteen times.

– It’s hard to tell which user’s posts are worth reading. Just because a particular user has a high post count does not make them interesting, relevant or for that matter, credible. For instance, there are many users on the ASP.Net forums with huge post counts that have very little substance in their posts.

As some of you may have noticed, I have not been very active blogging or on the forums lately. And yes, I am also behind on releasing updates to some of Speerio products. This is because I have been hard at work doing a fair amount of re-architechting of existing products, while also working on a Speerio product suite called “Community Studio” (more on that next week). One of the apps in the suite is a discussion application. In working out the design for this app, I was tempted to take the interaction metaphor used by most most forums today and implement it, perhaps with some U.I. goodies to make things interesting. But the more I thought about it, the more I disliked this idea. There is no point in replicating a bad concept with a good U.I. — all it does is give you more of the same problems, albeit with better user interaction. A good example of this is the recent upgrades made to the ASP.net forums. Many client-side U.I. enhancements, but none that substantially help with usability and easily finding relevant information.

I decided that I would take a fresh approach to designing a web-based discussion application (I’m not going to call it a forum any more). Starting with a clean slate, I prioritized some key requirements —

1) The application should enable a user to instantly know what topics are discussed the most.

2) The application should enable a user to instantly find all discussions on a topic, prioritized by relevance, chronology or amount of participation for all time or a user-specified period of time.

3) The application should enable the user to be notified when more discussions about topics of interest to her/him emerge.

4) The application should provide the user with hints about contextually relevant topics that have been discussed when he/she searches for a topic.

5) The application should be incredibly easy to use, very responsive and should be optimized to take advantage of the one trait that is common to all web-based discussions — 99.99% of the time all content is write-once/read-many.

Looking at those requirements, it should be obvious that the group – forum – thread metaphor isn’t going to cut it. The more I thought about it, the more I became convinced that web-discussion applications have been over-engineered and the solution is not to add, but to subtract. Doing just that, I arrived at a design that is quite different from today’s discussion software, but which I think meets all the above requirements. I’ll go into detail in a later blog post, but let me share some high-level ideas here:

1) Information navigation is done using a folksonomy-generated tag cloud.

2) There are no groups or sub-groups or forums…only a flat collection of discussions (100 or 1,000,000…doesn’t matter)

3) Each discussion is natively stored as an RSS feed. A discussion is the originating post and all responses to that post. There is no hierarchical thread, just a linear series of responses.

4) Each user who posts a response, must tag her/his response with tags that are relevant to the content of her/his post. This is key because contextual relevancy is best determined by humans and not computers (at least given today’s technology).

5) Tag clusters are automatically created for contextual relevancy.

This, in a nutshell, is a design that meets all the requirements. Of course, there is a lot of detail in the implementation and the U.I., but from a 20,000–foot perspective, the design is very, very simple. While technical gurus are busy arguing the merits of a folksonomy over structured taxonomies, ordinary people are enjoying their ease of use, both for content creation and retrieval. This makes me confident that even though my folksonomy-based discussion app will take some getting used to, once users see how it makes web-based discussions easier to track, digest and retrieve, they will love it.

More design details and information on Community Studio to follow.

Like many other ASP.Net developers, I couldn’t wait to get my hands on the final VS.Net 2005, SQL 2005 and ASP.Net 2 bits off the MSDN site. This past weekend, after what seemed like an eternity, I managed to get the 4GB+ DVD images downloaded. Knowing that the installation programs would want a clean slate, I first uninstalled everything, including .Net 2 beta.

I then proceeded to install the release version of .Net 2 (small download) just to test some apps that I have sitting around. Everything worked as expected. Great!

When my downloads were finally completed, I proceeded to install VS.Net 2005. The install program complained right away that the old bits need to be uninstalled. And it was right…I had missed the Document Explorer. Click – click – click…it’s uninstalled. Nope…that didn’t do it. Still complaining about something.

I couldn’t figure it out and finally decided to take a shot in the dark and uninstall .Net 2 Release version. That did it!

Now, I may be exaggerating, but that is just INSANE. To require uninstallation of the .Net framework (release version) to get VS.Net 2005 installed is just plain stupid.

Microsoft needs to fix this, and while they are at it, can we dispense with installation programs altogether. With all the talented engineers on Microsoft’s payroll, isn’t there a small team that can replicate what has been available on the Mac for two decades now…just copy (or XCopy in Winspeak) files and you are done. Microsoft should stop trying to impress us with spiffy U.I.’s and focus on getting the basics right first. 

I want to be able to copy a folder containing an app’s files from a CD or DVD onto my computer and have the application work without sitting through five minutes of progress bar hell. (And don’t even get me started on app restarts and system reboots.)

So Scoble and whoever else at Microsoft is listening…for the love of God…fix this!!! Free us from installation and progress bar hell.

Maybe we should add up all the time people worldwide have spent staring at progress bars for the last decade and send Microsoft a bill. Let’s see, if 50 million people each spent two hours waiting on app installations in the past decade and the average hourly rate is $25/hour, that’s a cool $2.5 billion. Spend even 1/1000th of that and the problem can be solved.

If Microsoft’s engineers were forced to evaluate features in terms of productivity dollars, Windows would be a very different beast. Too bad for us that user productivity is only a marketing mantra at Microsoft.

 

 

 

 

© 2012 TechBubble Suffusion theme by Sayontan Sinha