Time to DNN
Tuesday, April 25, 2006, 05:15 PM
I've been using the ASP.NET Portal Starter Kit (PSK) for a couple of years, but it is aging and is coming to the end of its lifecycle. I've also been looking at DotNetNuke (DNN) as the replacement framework for any Web applications we build. Once the folks at www.asp.net endorsed DNN, my decision was finalized.
We recently hired a contractor to convert our custom Check-In Administration Console application (PSK-based) to the DNN 4.0 framework and I'm now in the process of testing the cut over/installation. Compared to the PSK, DNN has too many great features to list here, but I especially like the behavior of its integrated Windows Authentication mode: when a new user hits the application for the first time, they are automatically added as a subscribed/registered user to the application. That leaves only granting the new user access/authorization to specific functionality (if appropriate). There is however some strange behavior that I have yet to figure out which happens if a user clicks the "logout" button. After doing so, the typical login box (username/password) is shown but it is not possible to login using the domain credentials. I did stumble across this page http://localhost/admin/Security/WindowsSignin.aspx which seems to perform the authentication check again and makes everything well again.
Do you use DNN, if so, for what applications? If you do not use DNN but do develop custom ASP.NET apps why aren’t you using it yet?
[ add comment ] | [ 0 trackbacks ] | permalink |




( 5 / 1 )One-Click Subscription Mayhem
Tuesday, March 14, 2006, 12:07 PM - General
My boss, Phil, and I were having lunch while discussing the topic of podcasting. One thing we agreed should be easier is the process of "subscribing" to a podcast. I said. "it needs to be as easy as the mailto: handler prefix." Later that afternoon while upgrading my iPodder software to Juice, I was surprised to see the installer ask me if it could register to handle some new "file types": 
.rss
.pcast
pcast://
podcast://
I thought "that's great news", however after doing a bit more research I'm not sure which approach is best for maximum interoperability. Sure, "podcast://" works for me using IE with Juice on Windows, but what about my Mac friends on a Safari using iTunes or my Firefox neighbors? And what about Apple's "itpc://" handler prefix??? Good grief.
It's enough to make me wonder if the the good old RFC process is relatively dead.
[ add comment ] | [ 0 trackbacks ] | permalink |




( 1.5 / 2 )Yahoo RSS Grief
Wednesday, February 1, 2006, 12:50 PM - General
I really like the services offered by Yahoo, but their "Add RSS by URL" feature, is just plain buggy. While it works for most of the URLs I've added, they seem to just get stuck on certain ones. These are valid (as per feedvalidator.org) and also work in other services/readers like Feedburner and Google. 
Has anyone else experienced similar problems with RSS in Yahoo?
[ add comment ] | [ 0 trackbacks ] | permalink |




( 1.5 / 2 )Out with the old...
Tuesday, January 10, 2006, 09:24 AM
While RSS.NET has a clean design, it was just not as "friendly" to use as RSSMaster. Since the source was available, after a quick study I decided to write an additional helper class (RssChannelBuilder) that mimicks the ultra easy-to-use interface of RSSMaster.
Now creating RSS from a DataTable is again as easy as:
// Get feed from Page Clip
DataTable dTable = PageClip.GetDataTableByID( 6 );
RssChannelBuilder channel = new RssChannelBuilder();
channel.Title = "CCCEV Next Week's Message";
channel.Description = "The upcoming sermon message at Central Christian Church of the East Valley";
channel.Link = new Uri("http://www.cccev.com/weekend/CurrentSeries.aspx");
// Set the channel's DataSource
channel.DataSource = dTable;
// Set the channel item's DataSource fields
channel.ItemTitleField = "DisplayText";
channel.ItemDescriptionField = "Content";
channel.ItemPubDateField = "ApprovedDate";
channel.ItemLinkField = "PageClipID";
channel.ItemLinkFormat = "http://www.cccev.com/weekend/CurrentSeries.aspx?id={0}";
// Bind to the DataSource
channel.DataBind();
channel.LastBuildDate = channel.Items.LatestPubDate();
RssFeed feed = new RssFeed();
feed.Channels.Add(channel);
Response.ContentType = "text/xml";
feed.Write(Response.OutputStream);
Response.End();
[ add comment ] | [ 0 trackbacks ] | permalink |




( 2 / 1 )Context Menu
Wednesday, November 30, 2005, 09:15 AM - Tips
Here is a little menu control I found yesterday that's pretty handy. I wanted a quick "function menu" that would behave like the ones you see on http://my.msn.com. I also wanted it to have a clean event handling model (not the URL-based type that are so common in menu controls). I found this Cutting Edge article and code by Dino Esposito that almost did the trick. I tweaked the source code a bit so that “icons” could also be added to the menu (css background style) and modified a few other things.
Here is a final product in action on a scheduling control I’m working on. The first image shows the menu as seen by a normal user and the second image is the menu as seen by someone with an ‘admin’ role. 
Once you've included the library/dll in the right place, you can easily create the menu with some markup in your ascx/aspx as seen here:
<cc1:contextmenu id="cmFunctions" runat="server" Width="100px" ForeColor="Black"
Font-Names="Tahoma" Font-Size="8pt" AutoHide="False" CellPadding="1">
<cc1:ContextMenuItem Icon="images/menu/availability.gif" Text="Availability"
CommandName="Availability"
Tooltip="Click here to edit your availability"></cc1:ContextMenuItem>
<cc1:ContextMenuItem></cc1:ContextMenuItem>
<cc1:ContextMenuItem Icon="images/menu/refresh.gif" Text="Refresh" CommandName="Refresh"
Tooltip="Click to refresh the calendar"></cc1:ContextMenuItem>
</cc1:contextmenu>
Handling the user's selection event is like normal event handling:
private void cmFunctions_ItemCommand(object sender, CommandEventArgs e)
{
Response.Write(e.CommandName);
}
[ add comment ] | [ 0 trackbacks ] | permalink |




( 5 / 1 )Back Next
