It seems self evident to me that the
Microsoft Feed API is going to be important enough that people
are going to want to make sure that their feeds work well with this
new platform.
However, not everybody is in a position where they have ready
access to a machine running Windows XP Service Pack 2 (SP2) with
IE7
Beta 2 Preview loaded on it.
So, to make life easier, I’ve converted
Dave Johnson’s program to a web application, and
I’m looking for volunteers to host it. If you are in a
position to help with a public server, please leave a comment here
with your URL.
Installation
I’ve made the source available in
SFW and
NSFW versions.
As this is an ASP.Net application, the interfaces provided by
the msfeeds.dll need to be exposed via an interop
assembly. You can use
tlbimp.exe yourself, or simply pick up the
imsfeeds.dll I produced using this same tool.
The .aspx file goes into the C:\Inetpub\wwwroot
directory, and the dll goes into a nested bin
subdirectory. Depending on your set up, you may need to
define a virtual directory and adjust permissions to allow these
files to be accessed. All this can be done through the IIS
console.
Usage
Usage is pretty straightforward. Simply enter the URI of
the feed, optionally select whether or not you want the results to
be pretty printed, and click on the button. What you should
see back is the normalized feed that the Microsoft Feed API
produces.
Depending on the browser you use, you may need to view-source to
see the underlying feed. But more importantly, you can copy
and paste the URI of the feed into your favorite
feed
reader or Feed
Validator.
Requests
While I understand the value of normalizing to a common feed
format, I do have a number of requests:
If you wish to normalize a valid feed with all the necessary
pieces of information to a common feed format, please respect all
the requirements and norms of the feed format that you chose.
If, for example, you want to convert atom:content to RSS
2.0’s description, consider resolving any relative URIs that
might be contained therein. There really is no need to
stick it to the man. If you pick RSS 2.0, by all means,
get Dave Winer’s help.
If you find the need to create extensions, please document
them. Things like cf:type, cf:id,
and cf:read are not mentioned
here.
Consider adding a method to retrieve the original feed.
This can be important for applications that wish to support things
like cf:sort.
Please host the Windows RSS Feed Normalizer
The Feed Normalizer makes it easy for you to see how the Windows RSS normalizes your feed, or any feed for that matter. Let's help the Microsoft Feeds API live up to it's package name, which, by the way, is Microsoft.Feeds.Interop.
I’ve started the integration of the WebFeed engine into the Extf.Net/GlobalClip/AtomicRSS.NET projects. You can view the current state at > [link].
I’ve used yours and Dave’s code as a starting point > [link]
Here’s how I plan/my reasoning for using the web feed engine as the basis for all of this:
some basic changes to check in. I’ve started work (FINALLY!) on the Extf.Net.WebFeed piece of this. This will provide the ability allow the local webfeed manager in IE7 manage our web feed subscriptions for us so we can simply deal with the transformations of these feeds into whatever it is we want them to be. The primary goal with this is to keep intact as much as possible, the original webfeed and all related information. We can then create a local copy using local values for things like xml:base and all related resource files. This will ensure that we can always be sure of things like the original copyright information, etc... are left intact and accessible at any given time while ensuring that we don’t have to use other peoples resources to build out our visitors pages each and every time. Obviously this could become a REAL problem REALLY fast, so to avoid this all together I am using the beauty of the web feed engine provided by MS to manage all of that stuff for us, of which we can simply copy into our own stream the pieces we have interest in, serving them up locally as we should.
My question: I’ve got both the normalizer > [link] and the bastardizer > [link] running and would be happy to offer these to anybody who wants to use them as a reference point. The problem at the moment has to do with the COM component not being properly registered on the system (which is the error code you will see if you attempt to use one of the above scripts.) My immediatte reaction was RegSvcs.exe but it seems that theres an issue with the assembly not being signed. Obviously this is something simple, but a quick Google doesn’t turn up anything of value in how to properly handle this. It could also be a permissions error but even this doesn’t seem to remedy the problem.
Any advice? Again, I’m sure its something simple thats not immediatelly coming to mind, and I have no problem ripping into MSDN to locate the fix. But if you happen to know off hand what to do to get this working correctly, I would appreciate the time and frustration that you save me.
One machine down... One to — I better not use the words I would like to use... :)
So while the bandwidth this particular machine is connected to is slower than the one I have [link] hosted on, I do have the normalizer and bastardizer running @
Once I have this other machine figured out (I have IE7 installed, but all sorts of weird things are taking place... I think it might need to be updated with the latest patches, but thats a completely blind guess as to why I can’t seem to get it to take. When I do, I will move this URI to that same machine as again, its a TON faster. None the less, feel free to propagate this URI to anyone who may want to make use of this for testing.
I cannot seem to set the permissions correctly on the c:\documents and settings folder to allow the ASP.NET process to create its necessary “Feeds” directory there. Since this is the only ASP.NET application I’ve seen that uses the Windows RSS Platform, I was wondering if you ran into similar problems when you were deploying your sample. I’m running Windows Server 2003, if that makes any difference. Thanks in advance for the help!