TDD: Testen ob eine Cookie gesetzt wurde

by robert 14. May 2009 16:14

Für Webentwickler ist das Auswerten und Setzen von Cookies Business-Logik und Business Logik sollte Testgetrieben entwickelt werden. Hier ein Beispiel Unit-Test: Response _response { get { return _httpCurrent.Response as ResponseNoWeb; } } RequestNoWeb _request { get { return _httpCurrent.Request as RequestNoWeb; } }   [Test] public void SetCookie() { _request.Url = new Uri("http://de.camping.info");   _uiLanguageService.SetLanguageCookie("de"); Assert.That(_response.CookiesCreated[0].Value, Is.EqualTo("de")); Assert.That(_response.CookiesCreated[0].Name, Is.EqualTo("Lang")); Assert.That(_response.CookiesCreated[0].Domain, Is.EqualTo(".camping.info")); }     Ermöglicht wird das über die Abstrakton von HttpRequest und HttpResponse. (Die Entwicklung wurde gestern begonnen, der Quelltext kapselt daher nur das Grundlegenste.)   Erfolgt die Anwendung nicht im Webkontext verwenden wir eine Implementierung für den lokalen Gebrauch:   namespace SpeakFriend.Utilities.Web { public class ResponseNoWeb : Response, IResponse { public void Redirect(string url) { _redirections.Add(url); }   public void Redirect(string url, bool endResponse) { _redirections.Add(url); }   public void SetCookie(HttpCookie cookie) { _cookiesCreated.Add(cookie); } } } …rudimentär, aber wirksam.

TranslatableUserControl in Repeater + TranslationPanel

by Oliver 24. March 2009 14:30

Nach zwei unabhängigen Fällen sieht es nun deutlicher danach aus, dass o.g. Kombination Probleme aufwirft und zwar mit dem EventHandling auf Serverseite. Genauer: Es werden keine Events für DropDownListen, LinkButtons u.ä. gefeuert, obwohl sie sollten. Das macht die Funktionalität im TranslationPanel kaputt.   Spannend ist folgendes Phänomen: Auf einer Seite mit der genannten Kombination und geöffnetem TranslationPanel geschieht folgendes: Erstes Mal die DDL benutzen -> nicht (optisch; im Fiddler sieht man aber einen Request) Zweites Mal die DDL benutzen -> die Seite wird neu geladen (komplett!) Drittes Mal die DDL benutzen -> funktioniert so, wie es soll Ab jetzt funzt es so wie es soll. Warum? Das also als Notiz an mich selbst. Mal schauen, was draus wird. Oli

NHibernate: spannende Fehlermeldung für ein NULL-DateTime

by Oliver 21. March 2009 22:13

DateTime-NULLs versteckte Fehlerquelle [More]

Deeeeeep Zoom

by Robert 30. September 2008 11:01

2442 einzigartige Kätzen von icanhascheezburger.com geben ein Katzenbild und eine schöne Demonstration der Fähigkeiten von Silverlight und "Deep Zoom".    Anwendungsbeispiele in denen Deep-Zoom für uns intersant sein könnte:  Als Navigationstool für umfangreiche Benutzergalerien Für Produktpräsentation ALs Spielzieug auf Unterhatlungsseiten (aus x tausend Bildern ein neues machen und dem Benutzer zur Freude bereitstellen) Interssant wäre es auch, Deep-Zoom nur für eine einziges hochauflösendes Foto einzusetzten: Das x-Megapixel große Bild wird automatisch zerlegt und als Deep-Zoom Bild zur Verfügung gestellt. Vorteil wäre, das die initiale Ladegschwindigkeit hoch ist. So ließe sich auch endlich das 10 Megapixel Produkt- oder Überlaubsbild ins Netz bekommt :-) Gibt es Tools die wie bei Photosynth Überlappung, allerdings in 2D berechnen? Weitere Deep-Zoom Beispiele und Resourcen:  Deep-zoom-composer-user-guide Hardrock-Cafe Deep Zoom Obama [via Robert Mühsig]

jQuery wird zukünftig offiziell von Microsoft supported

by Robert 30. September 2008 00:39

Scott Guthrie kündigt den offiziellen Support von jQuery in seinem Blog an. jQuery wird offiziell ausgeliefter Teil von ASP.NET jQuery wird von Visual Studio unterstützt, mit erweiterter/annotierte Intellisense.  Mircosoft wird jQuery offiziell supporten Komponenten von ASP.NET AJAX sollen auf jQuery Syntax basieren. Die MIT (open source) Lizenz von jQuery wird dabei übernommen. Ein großartiger Schritt :-) der mich wieder eine Schritt weiter in Richtung Microsoft Fanboy bringt. Diabolisch! Danke Scott Guthrie! Resourcen: Ankündigung von Scott Gutheries Ankündigung auf jQueries Team Blog Scott Hanselmann Tutorial

Brauchbare Benutzernachrichten

by admin 23. April 2008 17:37

Folgende Nachricht empfinde ich als sehr hilfreich: Auch wenn ich kein Performance Problem habe, die Information ist passend. Die "Ausblenden" Funktion befreit davon sie ein zweites mal zu sehen. So durchdacht sollten alle Web-Anwendungen sein. [gesehen auf mail.google.com]

Web-Zielgruppen

by admin 19. December 2007 10:00

Ich habe nun schon mehrfach von Kunden Dinge gehört wie: "Die Seite sollte möglichst einfach zu bedienen sein, vor allen für Benutzer die dem Web reserviert gegenüber stehen und es noch nicht regelmäßig benutzen". Das erinnert mich immer so ein bisschen an: "Wir möchten gerne eine Auto bauen, für eine Zielgruppe die noch keinen Führerschein hat und nicht dem automobilen Vergnügen teilnehmen möchte". Klar Webseiten sollen einfach sein, bei der Bedienung bekannte Muster unterstützen und für die Bedürfnisse der Zielgruppe optimiert sein, aber neue Konventionen zu erfinden, um den Nicht-Benutzer zu befriedigen, scheint mir nur in sehr, sehr besonderen Fällen sinnvoll zu sein. Einen vorhandenen Markt (aktive Webnutzer) zu beackern scheint mir zunächst einfacher und sinnvoller zu sein, als einen neuen Markt zu schaffen (nicht aktive Nutzer).

Songza - alternatives Navigationskonzept

by admin 19. November 2007 18:36

Das Kontext Menu in Web-Applikationen ist noch rar. Zwar gibt es vereinzelte Vertreter. Auf Songza ist nun ein besonderer zu bestaunen: Das sogenannte „Pie-Menü“ öffnet sich bei Klick auf einen Suchtreffer. Die gesamte Interaktion geschieht auf einer Seite. Ein gutes Beispiel dafür, dass trotz oder gerade wegen der Limitierungen im Web, außerordentlich effiziente und benutzerfreundliche Oberflächen sich immer weiter verbreiten.

Skalierbares Windows-Hosting

by admin 7. October 2007 03:44

Es geschah an einen Dienstag. Die neue Buzzword-Ready Web 2.0 App war am Freitag zuvor nach 4 Monaten harter Arbeit online gegangen. Zur Feier des Tages wurde abends beim Italiener eine Flasche Wein geordert. Es war der erste freie Abend nach vielen Wochen. Der Wein wirkte sofort, für untrainierte ist ein Rausch preiswerter und preiswert ist gut, wenn man sich darauf einstellt ein junges Produkt langsam am Mark zu etablieren und jeder ausgegebene Euro der Firma gehört, nicht einer Bank oder einem Venture Capitalisten. Die ersten 4 Tage waren ruhig verlaufen. Wie erwartet registrierten sich nur wenige Benutzer, denn trotz automatisierter Test und einer ausführlichen Analyse wie sich das Baby unter Last verhalten würde, sollte sich die Anwendung im Live-Betrieb erstmal bewähren. Es war tägliche Routine, etwas gelangweilt arbeitete einer der Entwickler die letzten Tage von Mashable und Techcrunch auf. Keine großen Highlights, das übliche. Die meisten der 275 ungelesenen Posts landeten nach einem kurzen Blick auf den Betreff und Autor im Papierkorb. Genau wie „Special Interest Trading Platform Launches“ … moment … „Special Interest Trading Platform“  ... (??!) ... STRG-Z beförderte den gerade gesehenen Eintrag aus dem Papierkorb wieder zurück in die aktuelle Ansicht. Es war 23:45Uhr. Von den 900 000 Techchruch Lesern hatten 14 325 die junge Seite innerhalb der ersten 30 Minuten aufgerufen und 1500 neue „Special Interest Trading Platforms“ aufgesetzt. Ca. 15-20 davon waren wohl mehr als ein Test. Der Web-Server schnaufte, hielt sich aber mit 25% Prozessorleistung noch ganz gut, der Datenbankserver lief mit 80-90% Auslastung und war am Limit. Um 1:17 hatte Mashable und wohl 3 Dutzend anderer Blogger das Techcrunch Post aufgegriffen und Ihrerseits über die neue Handelsplatform berichtet. Ab 1:26 lies sich der Web-Server nicht mehr via http erreichen. Mit sehr viel Geduld gelang es dann letztlich um 3:40 die Anwendung durch eine freundlich Dankesseite ersetzen. Die nächsten Wochen versprachen wunderbar zu werden. ...................................................................... Okay genug feuchte Träume. Flexiscale bietet skalierbares Hosting. Das Versprechen ist, das man innerhalb von wenigen Minuten von einem Rechner auf einige tausend Rechner aufrüsten kann. Doch statt wie Amazon EC2/S3 nur Linux zu unterstützen, bietet Flexiscale Windows 2003 Server und Windows SBS an. Windows SBS ist insbesondere interessant, da es eine MS-SQL Server Lizenz bundelt. (Wobei man die sich genaue Lizenz des SBS noch mal genauer anschauen müsste um zu entscheiden ob sich Windows-SBS auch legal für Hosting einsetzen lässt.) Die Preise sind absolut konkurrenzfähig. Wir werden uns das definitiv genauer anschauen. Ich kann kaum erwarten den Zugang zu erhalten :-) [via Techchrunch]

Chaos report - desaster and failure

by admin 2. August 2007 01:47

Die "Standish Group" untersuchte über 40 000 Software-Projekte innerhalb von 10 Jahren. Hier der (gekürzte ;-) "Standish Chaos Report": Software projects: 1995: 16% succeed 31% fail 53% are challenged 2004 29% succeed 18% fail 53% are challenged via "Scott Rosenberg @ google talks" - wenig technisch und immer nett zu hören wenn proklamiert wird, das Software Entwicklung ein hartes Geschäft ist. (Leider) nichts für Mädchen :-) Für den liquiden Interessierten sind die "Standish Group" Reports hier zu kaufen.

About Oliver

shades-of-orange.com code blog logo I build web applications using ASP.NET and have a passion for javascript. Enjoy MVC and Orchard CMS, and I do TDD whenever I can. I like clean code. Love to spend time with my wife and our three children. My profile on Stack Exchange, a network of free, community-driven Q&A sites

About Anton

shades-of-orange.com code blog logo I'm a software developer at teamaton. I code in C# and work with MVC, Orchard, SpecFlow, Coypu and NHibernate. I enjoy beach volleyball, board games and Coke.