Membership, Profile & Role Management Frustration
I've been migrating a classic ASP web application to ASP.NET 2.0. I'm converting the existing user management system to the ASP.NET 2.0 profile, roles, and membership API because it is the new standard. However, I have been frustrated by the lack of a back end user management system. Microsoft provided the Web Site Administration Tool which can be invoked in Visual Studio during development but you can't use that as part of your web application management back end. There really should have been a pre-built user management tool to include in your project.
I've been working on my own set of pages to manage users, profiles, and roles but I suspected that I was duplicating work that many other developers have done. Yesterday I tried using the Membership Editor that Peter Kellner developed. It was written in C# and I'm using VB because the ASP web application is in VBScript. Fortunately, I was able to copy the C# classes into my App_Code directory without doing a conversion because you can mix C# and VB code using seperate folders in that directory. All I had to do was convert the Membership.aspx code behind page to VB. This is certainly an improvement over my set of custom pages.
Today I searched for open source projects that might address this need. On CodePlex I found a few promising projects:
1. http://www.codeplex.com/sbMembershipSuite this seems to be an AJAX solution. AJAX is a bit fancy for a back end site. I would only consider AJAX for a public web site, but I'll take AJAX as long as I'm not writing the code! There is also some talk of MVP and unit tests which may make it too complicated for my skill level.
2. http://www.codeplex.com/IAAA - the screenshots show a very nice design. Also seems to be using some AJAX.
3. http://www.codeplex.com/CodeFxMySqlProvider - role, profile, and membership providers for MySQL.
I agree with the comment I found on the first open source project, "It is a common use case to desire having non technical people provided access to membership administration. I am, frankly, surprised there is nothing from the mothership." This is a perfect opportunity for the ASP.NET community to come together and create a tool to meet a real need. Creating the user management administration is just a tedious chore, simple CRUD work, that has little commercial value. It should be provided as an open source solution available to every ASP.NET developer.
Unfortunately I don't see any evidence of collaboration on these CodePlex projects. They all have a single developer listed. It would be a shame if there is little collaboration among ASP.NET developers. That would mean we just don't get it. The whole point of community is to put the wisdom of the crowd to work finding solutions to common problems. We should not be wasting our time duplicating the same effort. I'm sure PHP developers don't need to write a lot of code from scratch because they have a wealth of open source web applications with plenty of modules and plugins.
That reminds me that this web application will be sharing a database with DotNetNuke which also uses the ASP.NET 2.0 role, membership, and profile API. It may be possible to manage users with its tools.