MyBlogroll Consortium
If you are interested in MyBlogroll, please read this post ! Thanks !
Since I'm pretty new to .NET technologies (in fact, MyBlogroll is my very first .NET application), I think I'll need your help and advices so that I can give you a software of quality... I have a lot of questions in my head since I started the development of MyBlogroll... Mostly about how it should be structured and organized.
- XML/XSLT:
MyBlogroll is an online/web-based RSS aggregator/reader. The purpose of it is to download and aggregate RSS feeds, and to display them to the user. Since RSS is an XML document, can you tell me what's better than XSLT to display this kind of data. I have a very strong background in XML/XSLT (+4 years of daily use) and I'm very very comfortable with XSLT. Actually, *all* screens of MyBlogroll are rendered with XSLT. The Toolbar on top, the Treeview for subscribed feeds, the TabControl and the Blue Action Panel on some screens (Feed Properties, OPML Import, etc.), everything is rendered using XSLT ! Pretty cool, no ? Well, it may be not so cool... The problem I encountered with this technique I really like (moreover, XSLT is a standard technology), is that I don't really use ASP.NET... I only have an XML WebControl in all my ASPX files... I might be wrong, but, by doing this, I'm not using any advantages of ASP.NET technology. In fact, I'm doing it the old ASP way without using server forms/webcontrols... I don't have the Viewstate, and I can't programmatically access what's rendered with the XML/XSL transformation... Maybe I should take some time to learn how to create ASP.NET Server Controls to migrate the Toolbars, TabControls, and Action Panel XSL components to ASP.NET ones. The fact is that it's all about XML rendering and XSLT is so tailor-made for that...
One another point: since I'm loading XML to directly apply an XSLT stylesheet on it, I don't use any Objects to manipulate RSS Feeds, Items, etc... There are a lot of RSS libraries out there, such as RSSComponents, RSS.NET... I've been reading some articles about XML Serialization/Deserialization. I started to think how I can use all these in MyBlogroll... but is there a reason for me to use OOP and all these RSS Libraries ? Since I don't have a strong OOP background, I just want to know the advantages of using objects, etc, when it's all about XML data manipulation and rendering...
What do *YOU* think ?
- Aggregation Service:
If you tried MyBlogroll, you have probably noted that you have to manually refresh each feed.. There is not "Refresh All" button. Since there is no asynchronous action (yet) to download RSS feeds, I told myself it would be too long to refresh all feeds (even using a progress bar). That's the reason why there is no "Refresh all" button :) Then I had the idea of creating a Windows Service which would download, aggregate all subscribed RSS feeds and update the feeds user database.. Scott Watermasysk did this, but I couldn't put my hands on it yet... And there is also Syndicache which has the same purpose. In my opinion, a Windows Service that would consolidate RSS Feeds into a database or as XML files is the best idea: decoupling MyBlogroll in different logical application blocks sounds as a good architectural design. It would offers the possibility to use many different ways of displaying the feeds database content. The problem (there's always a damn fuckin' problem) is : What if you can't setup a Windows Service on the server on which you want to host MyBlogroll. For instance, I'm hosting www.myblogroll.com on a shared server at WebHost4Life, using the 20$/month account.. I don't think I can install a Windows Service on this kind of server and I can't afford my own personnal server. Other people may not have the possibility to install a Windows Service too. But the fact is that I don't think it's the user's responsability (more particulary in a web based application context) who has to refresh and updates it's RSS feeds database.. So, Windows Service or not ?
Does a technique like this one ("Scheduled Execution in ASP.NET" by Ashutosh Nilkanth inspired from Paul Wilson's article) could make it ?
Or is it possible to install a service on a shared server, by using the trick of Craig Andera : HowTo: Write a Self-Installing Service ?
- ASP Mode:
For the moment, MyBlogroll is an application that need to be installed on your own computer, or better, your own server. What I plan to do, is to provide MyBlogroll in ASP mode. I'd like people to be able to subscribe to an account on www.myblogroll.com, import their OPML file, and read their favorite feeds directly on the website. I think this is a very good idea, but I also think that a really powerfull server, with a very large bandwidth would be required, since it would be like a Hotmail service for RSS Feeds. I'd really like to be able to provide this. Would you pay for that kind of service (if so, how much) ?
- What do you expect from a web aggregator ?
What are you expecting from MyBlogroll ? Do you want a simple Web version of a traditionnal Windows Aggregator like SharpReader or FeedDemon (same UI with a 3 pane view, Feed Items Selection, etc) ? Or do you think it should be more web-adapted ? In my head, Feed reading should be fast and simple. Desktop aggregators just do that very well... See why Roy Osherove likes SharpReader so much. But, I just want to be able to do this from home, from school, from work, from holidays, from anywhere.. That's why I started out MyBlogroll development... I've noticed many discussions on RSS Aggregators : here at Alan Dean's blog for instance.. So, what's your opinion ?
- Database or XML files ?
How should I store RSS feeds content ? Into an MSSQL Database or as XML Files on disk. MyBlogroll is currently storing all these as XML files, just like all other Desktop aggregators... Database or XML files ?
I'll stop now... PLEASE, I REALLY DO WANT TO KNOW YOUR OPINION AND SUGGESTIONS :) THANKS TO ALL !!!