So, einige der Anregungen habe ich aufgegriffen und gestern Nacht bzw. gerade eben noch umgesetzt:

  • Bei den Links zu den Kommentaren steht nun auch die Zahl der vorhandenen Kommentare mit dabei.
  • Das Layout funktioniert nun auch im Internet Explorer 6. Hatte es selbst nur mit Firefox, Opera und IE7 getestet, konnte ja keiner wissen, dass der 6er IE da so rumzickt.
  • In der mittleren Spalte steht nun unter "RSS-Feed" auch der Link, über den man die Inhalte der gewählten Kategorie abonnieren kann.

Andere Sachen, wie das Speichern der Benutzerdaten im Cookie oder die automatische Mailbenachrichtigung für Leser werde ich vorerst nicht einbauen, aber vielleicht demnächst wenn sich die Anfragen danach häufen ;-).

Außerdem habe ich noch ein paar andere Sachen eingebaut bzw. geradegebogen:

  • Die Einträge haben jetzt auch eine Uhrzeit ... alle RSS-Abonnenten wird es freuen ;-).
  • Geschwindigkeit der Detailseiten unter Home enorm verfielfacht (Flaschenhals im System beseitigt).
  • Anzahl der enthaltenen Artikel per Kategorie in der Navigation hinzugefügt.

Letzteres hat mir heute übrigens den Feierabend gründlich versaut.

Da ein Artikel mehreren Kategorien zugeordnet sein kann, reicht es nicht einfach einen Select Count auf alle Artikel in einer Kategorie zu machen, um die enthaltenen Artikel zu bekommen - denn die Kategorie hat ja noch weitere Unterkategorien ... typischer Fall von n:m-Verknüpfung. Um das sauber hinzubekommen, habe ich mir gedacht, dass es klug wäre zum (bereits installierten) SQL Server 2005 zu wechseln, da dieser im Gegensatz zu 2000 ein nettes Feature bietet: Common Table Expressions.

Soweit so gut. Habe ich mir also meine CTE in einer Userdefined Function geschrieben, mein Category-Objekt um eine ArticleCount-Eigenschaft erweitert und den Select entsprechend angepasst.

Das alles funktionierte auch in meiner duplizierten Datenbank am SQL Server Express, auf die ich via Management Studio zugriff hatte. Sobald ich allerdings den Spaß via ASP.NET ausführen wollte, bekam ich schrecklich nette Meldungen, von wegen "Function ist nicht bekannt". Nun kann man sich ja vorstellen, wo man erstmal rumdoktort: man sucht den Fehler bei der Function.

Als das nichts hilft der erste Workaround: packen wir den Spaß in eine Stored Procedure und kapseln das ab. Gesagt, getan. Gleicher Fehler: Sproc nicht gefunden. Hä??? Tabelle angelegt, Select auf die Tabelle gemacht. Tabelle nicht gefunden. Aha!

Der Connectionstring war korrekt, er zeigte auf den Server und auf die Instanz, unter der der SQL Server Express läuft ...

Dann kam der richtige Anstoß von Chris (danke hierfür): Ich hatte für die Zwischenzeit, bis ich mit der Erweiterung fertig war, das Live-Web auf dem 2000er belassen, und dort nichts geändert. Also existierten zur Zeit der Entwicklung 2 gleichnamige Datenbanken - eine im SQL Server 2000, und eine in der SQL-2005-Instanz "unterhalb".

Die Ursache für all die Fehlermeldungen auf IP\Instanz: alle Anfragen werden scheinbar zuerst über den "Root", und damit SQL2000 geschickt - wenn dort eine gleichnamige Datenbank vorhanden ist, wird der Instanz-Name einfach ignoriert, und das Paket wird nie zur Instanz weitergeleitet. Damit hatte ich also via ADO.NET ständig auf den 2000er zugegriffen, wo die neu angelegten Objekte natürlich nicht vorhanden waren. Und das, obwohl mein Connectionstring korrekt war.

Des Rätsels Lösung war dann einfach: Datenbank am 2000er aushängen, fertig. Natürlich nicht ganz, weil ich mich dann erstmal mit dem Sicherheitskonzept vom 2005er rumschlagen musste, aber das ist ein anderes Thema ...

Merke: Es wäre schön, einen DB-Admin zu haben und nicht alles selbst machen zu müssen. Aber letztendlich bekommt man dann doch alles hin ;-).

So, und da nun mein Feierabend sowieso im Arsch ist und ich bis auf 3 Brezeln und 5 Kaffee noch nix zu mir genommen habe, fahre ich jetzt erstmal bei Mc Doof sündigen.

Nice Weekend!

Kommentare

#1 GENiALi schrieb am Freitag, 17. November 2006 20:23:00:
Also das mit den Cookies würde ich auch begrüssen.
Die EMailbenachrichtigung auch. Das kenn ich von einem anderen Blog und ich finde es cool.
Leider kann das dasBlog noch nicht. Oder? :-)
#2 Alex schrieb am Freitag, 17. November 2006 23:15:00:
Ich frage mich ernsthaft, was bei dasBlog überhaupt gemacht wird.

Hiermit vote ich nochmal für meine Vorschläge Cookies & Mail-Notification.
#3 Erich schrieb am Samstag, 18. November 2006 00:27:00:
Danke für die Anzeige der Gesamtanzahl der Kommentare. Ist man einfach schon gewohnt. :)

Eine Emailbenachrichtigung wäre natürlich top.
Cookies? Die esse ich lieber. ;)

Dein Kommentar