Wie unschwer zu erkennen ist, habe ich mich von dasBlog verabschiedet, und setze bei neuen Projekten von nun an ausschließlich auf meine eigene Software. Letztes Mosaik im "Must have"-Puzzle war nun das Empfangen und Verarbeiten von sogenannten Trackbacks, also Nachrichten anderer Blogs an meines, wenn diese mich verlinkt haben.
Die grundlegenden Informationen erhält man hier:
Meine Quick'n-Dirty-Implementierung sieht wie folgt aus:
if (!string.IsNullOrEmpty((string)Request.Form["excerpt"]))
{
Response.ContentType = "text/xml";
Response.Write("");
Response.Write("");
try
{
// Übertragene Informationen
string url = Request.Form["url"];
string blog = Request.Form["blog_name"];
string title = Request.Form["title"];
string excerpt = Request.Form["excerpt"];
// Blog-Kommentar erstellen
BlogComment comment = new BlogComment();
comment.Text = excerpt;
comment.AuthorWebsite = url;
comment.AuthorName = blog;
comment.ArticleID = ArticleId;
comment.IsActive = false;
comment.IsTrackback = true;
comment.AuthorEmail = string.Empty;
comment.AuthorIP = string.Empty;
// Kommentar speichern
EasyBase.Customer.DAL.BlogComments.AddNewComment(comment);
// Infomail verschicken
SendInfoMail(comment, "Trackback");
// Output, alles ok
Response.Write("0");
}
catch(Exception exc)
{
// Output, Fehler angeben
Response.Write("1");
Response.Write(string.Format("{0}", exc.Message));
}
Response.Write("");
Response.End();
}
Ich habe keine Lust mich mit den einzelnen XML-Objekten zu beschäftigen und mühsam zu suchen, nur um 3 Zeilen XML auszuspucken ... also nicht wundern.
Nice to know: dabei habe ich übrigens die Erkenntnis gewonnen, dass man den Output tatsächlich auch mitten im Lifecycle manipulieren und ändern kann, sogar in einem Usercontrol *irgendwo* mittendrin im Ablauf. Im Endeffekt ein logisches Verhalten: solange noch nichts an den Client gesendet wurde, hat man freie Hand. Wie früher auch mit ASP.
Nice to know 2: Beim Testen des Ganzen mit einem eigenen Testformular, immer dem
ein name-Attribut geben, sonst erkennt ASP.NET den Postback nicht ... ich wäre fast verrückt geworden.
Das Ganze wurde erfolgreich mit Wordpress getestet, dasBlog will leider nicht - halt nicht die einzige Macke (keine Fehlermeldung, Trackback wird versandt, kommt aber nie an ...).