Der-Albert.com sein Blog!


März 2006 Entries

Version 1.1 von UrlRewritingNet.UrlRewrite veröffentlicht

Thomas und ich haben eine neue Version unseres [url=http://www.urlrewriting.net]Url Rewrite Moduls[/url] [1] für ASP.NET 2.0 online gestellt. Folgendes hat sich verbessert: [list] [*]Outputcache funktioniert wieder (Dank an Dmitry Robsman) [*]permant-Option entfernt Für das alte verhalten einfach redirect="Application" und redirectMode="Permanent" in die Regel eintragen [*]Redirect auch mit Domains möglich [*]Code-Optimierungen [/list] Also, ran an den Speck.
[1] [url]http://www.urlrewriting.net[/url]

Fensterhöhe und Fensterbreite im Internet Explorer und Co.

Wenn man mit DHTML arbeitet da kommt man schonmal in "Versuchung" via Javascript etwas an der Fensterhöhe und Fensterbreite ausrichten zu wollen, dazu bietet z.B. der Firefox [b]window.innerWidht[/b] und [b]window.innerHeight[/b] an. Sehr praktisch, leider hat der Internet Explorer sowas nettes nicht. Wenn man sich nun via Google auf die Suche beginnt erhält man wieder und wieder den Hinweis auf [b]document.body.offsetWidth[/b] und [b]document.body.offsetHeight[/b], dies soll dann die gewünschte Information beeinhalten. Leider stimmt dies nicht so ganz, man erhält halt die Höhe und Breite vom BODY-Tag. Und dies kann sowohl kleiner als auch größer wie dass Fenster sein. Also irgendwie nicht wirklich zu gebrauchen. Also in die tiefen des DOM Modells abgestiegen und geschaut ob man nicht was passenderes findet (das Javascript Debugging im VS2005 ist wirklich nett), und siehe da. Es gibt die gewünschte Information. Sucht man danach findet man genug darüber :) [b]document.documentElement.clientWidth[/b] und [b]document.documentElement.clientHeight[/b]. So, hier nun zwei Funktionen die einem das bestmögliche Ergebnis zurückzuliefern. Für die Nachwelt zur freien Verwendung. [code] function getWindowWidth(win) { if (win == undefined) win = window; if (win.innerWidth) { return win.innerWidth; } else { if (win.document.documentElement && win.document.documentElement.clientWidth) { return win.document.documentElement.clientWidth; } return win.document.body.offsetWidth; } } function getWindowHeight(win) { if (win == undefined) win = window; if (win.innerHeight) { return win.innerHeight; } else { if (win.document.documentElement && win.document.documentElement.clientHeight) { return win.document.documentElement.clientHeight; } return win.document.body.offsetHeight; } } [/code] Die Anwendung ist denkbar einfach [code] var width = getWindowWidth(); var height = getWindowHeight(); [/code] Wenn man möchte kann man den Funktionen noch ein bestimmtes Fenster übergeben, ansonsten wird das aktuelle genommen.

Intellisense für SQL Server im Visual Studio

Anfang Februar ging ein Tool in den Blogs um die Welt: SqlAssist [1] sollte es ermöglichen innerhalb vom Visual Studio mit einer Intellisense Unterstützung im Sql Editor zu arbeiten. Also runtergeladen und getestet ... und da habe ich mich gerfragt, ob die Leute die sowas empfehlen und verlinken sich es auch vorher mal ansehen ... es war gelinde gesagt eine Katastrophe, wirklich arbeiten konnte man damit nicht. Fehlerhafte Installationen, Abstürze, kaum Intellissense, brauchte Administratorrechte usw. Jetzt etwas mehr als einen Monat später und einem Entwickler mit viel Einsatz und gutem Willen, ist das AddIn wirklich brauchbar. Es nimmt einem sehr viel Tipparbeit ab. Und man muss nicht mehr die gesammte Tabellenstruktur der Anwendung im Kopf haben. Wer also das vor einem Monat mal einen Test gewagt hat und es dann vor lauter Frust wieder gelassen hat, der sollte es umbedingt nocch einmal mit der aktuellen Version (1.3.157) probieren [2]. Wer es nicht gewagt hatte, der kann es jetzt gefahrlos ausprobieren [2], Intellisense für SQL fehlte schon lange im Visual Studio.
[1] [url=http://www.roundpolygons.com]Round Polygons[/url] [2] [url=http://www.roundpolygons.com/SqlAssist/Download/tabid/94/Default.aspx]SqlAssist Download[/url]

Fehlerhafte AddIn Installationen für Visual Studio 2005

Problem

Da ich in letzter Zeit ein paar AddIns in die Finger bekommen habe die einfach nicht im Visual Studio 2005 auftauchen und funktionieren wollten, schreibe ich ein paar Zeilen dazu. Das Problem tritt nur bei nicht englischsprachigen Windows Systemen auf. Da Visual Studio 2005 immer die AddIn-Definitionen in %ALLUSERSPROFILE%\Application Data\Microsoft\MSEnvShared\Addins sucht und die sprachspezifische Bennenung des Application Data Ordners ignoriert. Bei einem Windows auf Deutsch müsste Visual Studio also in %ALLUSERSPROFILE%\Anwendungsdaten\Microsoft\MSEnvShared\Addins die für alle Benutzer installierten AddIns suchen. Macht es aber nicht. Es sucht immer im Ordner Application Data. Das Problem hat vor einiger Zeit Roland Weigelt [1] mit seinem Tool GhostDoc [2] gehabt. Die Entdeckung geht also auf sein Konto, ich dokumentiere dies hier nur. Wird die AddIn-Defintion im Benutzerverzeichnis installiert, dann verhält sich Visual Studio korrekt. Auch die übersetzten Versionen von Visual Studio 2005 suchen die AddIns an der falschen Stelle.

Workaround

Mit diesem Wissen ist ein Workaround sehr einfach.

für Entwickler

Nun kann man dies als AddIn-Entwickler nun so umgehen das man bei einem nicht englischen Betriebsystem die AddIn-Definition zusätzlich in %ALLUSERSPROFILE%\Application Data\Microsoft\MSEnvShared\Addins installiert. Zusätzlich deshalb weil es ja sein kann das Microsoft den Fehler im Service Pack 1 behebt.

für Anwender

Als Anwendung kann man den Ordner %ALLUSERSPROFILE%\Anwendungsdaten\Microsoft\MSEnvShared\Addins unter Tools/Options/Enviroment/Add-in/Macro Security eintragen, so das auch dort gesucht wird. Da es den passenden Bug Report noch nicht gab, habe ich ihn mal im Feedback Center [3] angelegt.

Update

Wie man nun beim Bugfix nachlesen kann, wird der Fehler in der nächsten Version behoben (ob das nun ServicePack 1 bedeutet oder Orcas, keine Ahnung).
[1] [url]http://www.roland-weigelt.de[/url] [2] [url]http://www.roland-weigelt.de/ghostdoc/[/url] [3] [url=http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=8ece8368-5fa9-46bd-9186-64db770f8c6a]Bug Report im Product Feedback Center[/url]

Origami Emulator

Ok, für den von Intel und Microsoft ins Leben gerufenen Formfaktor für Ultra Mobile PCs (UMPC) [1] genannt Origami braucht man keinen Emulator da ja ein vollwertiges Windows XP darauf läuft. Doch eine Programmentwicklung in 800x480 Pixeln ist nicht wirklich prickelnd ... Mit dem UMPC Display Emulator [2] von Microsoft wird dem Programm vorgespielt in einer 800x480 Pixel Umgebung zu laufen, inkl. aller anfragen an Auflösung, Position und Display-Typ. Und dies in der normalen Arbeitsumgebung. So kann man einfach seine Programme, sofern man will, auf Origami Tauglichkeit prüfen und anpassen.
[1] [url=http://www.heise.de/newsticker/meldung/70562]Origami bei Heise Online[/url] [2] [url=http://www.microsoft.com/downloads/details.aspx?FamilyID=9c01c822-e6d2-4240-9fb3-b00e8ff4fbbf]Ultra-mobile PC (UMPC) Display Emulator Beta[/url]

Anti-Cross Site Scripting Library 1.0 von Microsoft für ASP.NET

Microsoft hat vor ein paar Tagen eine Anti-Cross Site Scripting Library [1] veröffentlicht. Damit ist es möglich HTML Text und URLs so im Browser auszugeben das keine Cross Site Scripting (XSS) Attacken [2] mehr möglich ist. Dazu stellt die Library zwei statische Methoden zu Verfügung. [code] AntiXSSLibrary.HtmlEncode(string) AntiXSSLibrary.UrlEncode(string) [/code] Die Library verwendet ein White-Listing, gibt also nur Zeichen aus die ungefährlich sind. Eine Anwendung der Library ist mit den beiden Methoden sehr einfach, es müssen nur alle Ausgaben auf der Seite die aus einer nicht vertrauenswürdigen Quelle stammen mit den Methoden [i]vorbehandelt[/i] werden. Nicht vetrauenswürdige Quelle sind alle Benutzereingaben, oder Daten von fremden Quellen z.B. RSS-Feeds. [code] string msg = GetUserMessage(347); Response.Write(AntiXXSLibrary.HtmlEncode(msg)); [/code] Die Library kann unter ASP.NET 1.0, 1.1 und 2.0 verwendet werden.
[1] [url=http://www.microsoft.com/downloads/details.aspx?familyid=9a2b9c92-7ad9-496c-9a89-af08de2e5982&displaylang=en]Microsoft Anti-Cross Site Scripting Library V1.0[/url] [2] [url=http://de.wikipedia.org/wiki/XSS]Wikipedia Artikel: Cross Site Scripting[/url]

Geschenkter Gaul - Giveaways aus Karlsruhe (II)

Nachdem ich nun heute wieder im Büro aufgeschlagen bin, erwartete auch mich die Nachlieferung des Ready-To-Rock Launch [1]. Die MSDN Library und der SQL Server 2005 Developer Edition vervollständigen nun fast komplett die Give-Aways. Schneller als erwartet und mit einer Entschuldigung von Dr. Said Zahedani [2]. Jetzt stehen also nur noch zwei Lieferungen aus. Der Konferenz DVD mit allen Vorträgen (im laufe des März), und der BizTalk Server 2006 Developer Edition (im Mai).
[1] [url=http://der-albert.com/archives/26-Geschenkter-Gaul-Giveaways-aus-Karlsruhe.html]Geschenkter Gaul - Giveaways aus Karlsruhe[/url] [2] [url=http://www.microsoft.com/germany/presseservice/service/management/zahedani.mspx]Dr. Said Zahedani[/url]