RSS voogude värskete uudiste korjamise rakendus
Idee oli koostada webi teenus mis oskaks kasutajate RSS voogude nimekirjast koostada viimaste uudiste nimekiri.
Probleemide nimekiri oli teada:
1) RSS voogud on disaini poolest erinevad
2) RSS aja formaati standart on uurimata
3) Uudiste sünkrooniline uuendamine on aeglane
Pakkutav lahendus oli:
1) Rakenduses kasutakse ainult ühine osa RSS voogudest
2) Aja formaat uurida ja leida lahendust
3) Uudised uuendada asünkroonselt
Rakendus on paigaldatud siin (google code)
Koodi saab kätte SVN kliendi abil, näiteks tortoise SVN
Selleks, et veenduda et RSS web teenus töötab tegin juurde kah väikse web saiti,
ehk kogu komponentide pilt oleks selline:
Kõige pealt pidi uurima millist aja formaati kasutab RSS standart,
uurides standarti selgus et kasutakse RFC822 aja standart
Rfc822DateTimeFormat csharp RSS aja standarti c# implementatsioon
public static string[] Rfc822DateTimePatterns {
get {
formats = new string[35];
// two-digit day, four-digit year patterns
formats[0] = "ddd',' dd MMM yyyy HH':'mm':'ss'.'fffffff zzzz";
Edasi oli vaja implementeerida RSS voogu kätte saamine
RssFeed Retrieve
/// <summary>
/// Retrieves an RSS feed using the given Url, parses it and
/// creates and new <see cref="RssFeed">RssFeed</see> object with the information.
/// If an error occurs in the XML loading of the document, or parsing of
/// the RSS feed, the error is trapped and stored inside the RssFeed's
/// ErrorMessage property.
/// </summary>
/// <param name="Url">The url to retrieve the RSS feed from, this can
/// be in the format of http:// and also file://.. (ftp?)</param>
/// <returns>An <see cref="RssFeed">RssFeed</see> object with information
/// retrieved from the feed.</returns>
public RssFeed Retrieve(string Url) {
Siis tegin kah andmebaasi selleks. et saaks kasutajate RSS voogud salvestada
Viimane samm oli teha testimiseks vebi leht,
Veb koosneb vaba registreerimisest, isiku voogude lisamise ja vatamise komponendist ja RSS web teenuse ühendusest.
Ehk see oligi kõik, ülesanne oli suht lihtne :)