Reportviewer: The report definition is not valid. Details: Data at the root level is invalid. Line 1, position 1.

20. Januar 2010

Nach dem Deployen (Web Deployment Project) von lokalen rdlc Reports aus Visual Studio 2008 heraus, gab es auf dem IIS folgenden Fehler:

[ReportProcessingException: The report definition is not valid.  
Details: Data at the root level is invalid. Line 1, position 1.]

[DefinitionInvalidException: The definition of the report
'Main Report' is invalid.]

 

Das Problem ist, dass die Reports vorkompliliert werden, was leider kontraproduktiv ist. Durch ergänzen der csproj Datei für das Deploy kann der Fehler umgangen werden:

<Target Name="AfterBuild">
  <Delete Files="$(OutputPath)\Reports\Report.rdlc" />
  <Copy SourceFiles="$(SolutionDir)WebSites\MyWebApp\Reports\Report.rdlc" 
        DestinationFolder="$(OutputPath)\Reports" />
< /Target>

 

.NET, ASP.NET

Mehrere Stored Procedures im SQL Server Management Studio selektieren

7. Januar 2010

Für die Verwaltung und die Entwicklung auf SQL Server stellt Microsoft SQL Server Management Studio zur Verfügung. Ein Problem, das ich schon öfter hatte, ist das Selektieren von mehreren Objekten im Object Explorer, um z.B. mehrere Stored Procedures auf einmal zu löschen. Das geht leider nicht.

Wesley Brown hat mir hierzu einen Tipp gegeben: Object Explorer Details. Dieser kann über View -> Object Explorer Details bzw. F7 erreicht werden.

Damit können dann auch mehrere Stored Procedures auf einmal gelöscht werden.

 

Development

Google Reader Shared Posts

16. Dezember 2009

Blogs und RSS Feeds sind für mich erst so mit Google Reader interessant geworden und ich kann nur jedem empfehlen mal einen Blick darauf zu werfen!

Eine nette Funktion vom Goolge Reader ist, dass man Posts mit anderen Personen sharen kann. Entweder dadurch, dass Personen einem folgen, über eine seperate Webseite wie http://www.google.com/reader/shared/sven.soennichsen oder als Clip in der eigenen Seite:

Einfach cool!

, ,

Line-In Soundkarte auf USB Headset streamen

8. Dezember 2009

Seit kurzem verwende ich ein Logitech Wireless USB Headset, mit dem ich recht zufrieden bin. Zwar ist die Aufnahmequalität des Mikrofons nicht 100% optimal, aber für meine Zwecke reicht es.

Nun wollte ich Podcasts von einem iPod über die Line-In Buchse auf das USB Headset 'übertragen'. Allerdings funktioniert das nicht mit Boardmitteln von Windows. Zumindest nicht bei der von mir verwendeten integrierten Soundkarte. Line-In der Soundkarte lässt sich lediglich auf Line-Out derselbe Soundkarte 'streamen', aber nicht auf eine beliebige andere Soundkarte. Nach Experimenten mit Winamp und der DirectSound-Ausgabe, welches ich nicht zum Laufen bekommen habe, bin ich beim Audiorepeater von http://software.muzychenko.net/eng/vac.html hängen geblieben:

 

 

Damit lassen sich beliebigen Eingänge mit beliebigen Ausgängen verknüpfen. Die Software steht als Trial-Version ohne Funktionseinschränkung zur Verfügung.

Gadgets, Tools

Windows Home Server Power Pack 3 kann nicht installiert werden

30. November 2009

Wer Probleme beim Installieren vom Home Server Power Pack 3 hat, dem empfehle ich mal Windows Search 3.1 vorher vom Home Server zu deinstallieren. Windows Search 4.0 ist Bestandteil vom Power Pack 3, und wird daher automatisch installiert (hier scheint genau das Problem zu liegen). 

Android Phone

29. Oktober 2009

Seit einigen Wochen benutze ich ein Google G1 Handy. Im Großen und Ganzen bin ich recht begeistert von dem Gerät. Es gibt zwar einige Schwächen, zu dem der Akku und die geringe CPU Leistung zählen, doch insgesamt ist das Konzept sehr vielversprechend. Ich denke, daß die Android Plattform eine der Bestimmenden der nächsten Jahre sein wird.

Das grundlegende Kozept, die Hardware und das (offene) Betriebssystem zu trennen und sich wieder auf die jeweiligen Kernkompetenzen zu konzentrieren, wird für reichlich Bewegung auf dem Smartphone Markt sorgen. Ich meine damit, dass Hardwarehersteller wie z.B. Motorola sich wieder voll der Hardware widmen können und sich nicht mit der Erstellung/Anpassung eines Betriebssystems und den entsprechenden Anwendungen dafür rumschlagen müssen.

Android und nicht zuletzt das iPhone, welches die wesentlichen neuen Bedienkonzept etabliert hat, wird noch für ordentlichen Wirbel bei Nokia und Microsoft sorgen.

Da ich nun schon eine Weile mit Android experimentiert habe, werde ich in loser Reihenfolge einige Applikationen vorstellen. Fangen wir mit Evernote an:

Evernote ist ein OnlineTool zur Verwaltung von Notizen, und Dateien bzw. Bildern. Bei den Bildern bezieht sich dies im Wesentlichen auf den darin enthaltenen Text, dem Evernote automatisch einer optischen Zeichenerkennung (OCR) unterzieht. Als Bilder sind also Screenshot, Visitenkarten und Texte jeglicher Art geeignet. Evernote gibt's als Anwendung für diverse Betriebssysteme und Browser.

Seit kurzem gibt es nun eine App für Android unter: http://s.evernote.com/androidbeta und die ist recht übersichtlich aufgebaut:

 

Evernote Hauptmenu

 

Es können Bilder, Dateien, Texte und Audioaufnahmen erfasst und zu Evernote hochgeladen werden. Über das Suchfeld öffnet sich der Browser und zeigt die gefundenen Notizen in einer für Smartphones optimierten Ansicht an. Insgesamt ist Evernote ein hilfreiches Tool, wenn man von überall auf seine Notizen zurückgreifen will.

Tools, Android

Dateien unter Windows suchen

11. September 2009

Welcher Entwickler kennt das nicht: man sucht in einem Verzeichnis samt Unterverzeichnissen nach Dateien, die eine bestimmte Zeichenfolge enthalten. 

Die Windowssuche (zumindest unter XP und Vista) hilft hier selten weiter und noch viel schlimmer: Ich vertraue den Suchergebnissen oft nicht. Unixanwender werden jetzt innerlich lächeln, denn der Befehl "find" bzw. "locate" ist dort ein mächtiges Werkzeug, und die Anwender von cygwin können diese Werkzeuge auch unter Windows nutzen. Doch Windows hat auch ein recht unbekanntes Tool für die Kommandozeile:

findstr

Sucht nach Zeichenfolgen in Dateien.

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P]
        [/F:Datei] [/C:Zeichenfolge] [/G:Datei] [/D:Verzeichnisliste]
        [/A:Farbattribute] [/OFF[LINE]] Zeichenfolgen
        [[Laufwerk:][Pfad]Dateiname[ ...]]

  /B    Sucht am Zeilenanfang.
  /E    Sucht am Zeilenende.
  /L    Sucht nach dem Text buchstabengetreu.
  /R    Sucht nach der Zeichenfolge als regulärem Ausdruck.
  /S    Sucht nach entsprechenden Dateien im aktuellen Verzeichnis
        und allen Unterverzeichnissen.
  /I    Ignoriert Groß-/Kleinschreibung.
  /X    Gibt Zeilen aus, die vollkommen übereinstimmen.
  /V    Gibt Zeilen aus, die die Zeichenfolge nicht enthalten.
  /N    Gibt die Zeilennummer vor jeder Trefferzeile an.
  /M    Gibt nur die Namen der Dateien aus, die die Zeichenfolge enthalten.
  /O    Gibt den Offset des Zeichens vor jeder gefundenen Zeile aus.
  /P    Überspringt Dateien mit Zeichen, die nicht gedruckt werden können.
  /OFF[LINE] Überspringt keine Offlinedateien.
  /A:Attrib         Gibt die Farbattribute als zwei hexadezimale Ziffern an.
                    Siehe "COLOR /?"
  /F:Datei          Liest eine Dateiliste aus der angegebenen Datei ein.
  /C:Zeichenfolge   Sucht nach Zeichenfolge buchstabengetreu.
  /G:Datei          Liest Suchzeichenfolge aus der angegebenen Datei ein.
  /D:Verzeichnis    Durchsucht eine mit Semikolons getrennte Verzeichnisliste.
  Zeichenfolge      Text, nach dem gesucht werden soll.
  [Laufwerk:][Pfad] Dateiname
                    Angabe der zu durchsuchenden Datei(en).

Leerzeichen weisen auf mehrere getrennte Zeichenfolgen hin, außer es wurde /C
als Option angegeben. Zum Beispiel sucht 'FINDSTR "Windows NT" BR.TXT' nach
"Windows" oder "NT" in der Datei BR.TXT.  'FINDSTR /C:"Windows NT" BR.TXT'
hingegen sucht nach "Windows NT" in der Datei BR.TXT.

Schnellübersicht regulärer Ausdrücke:
  .         Platzhalter: beliebiges Zeichen
  *         Wiederholung: keine oder mehrere Wiederholungen
            des/der vorhergehenden Zeichens/Klasse
  ^         Zeilenposition: Anfang der Zeile
  $         Zeilenposition: Ende der Zeile
  [Klasse]  Zeichenklasse: beliebiges Zeichen aus einem Zeichensatz
  [^Klasse] Umgekehrte Klasse: beliebiges Zeichen nicht im Zeichensatz
  [x-y]     Bereich: beliebige Zeichen im angegebenen Bereich
  \x        Escape: direkte Verwendung eines Metazeichens x
  \  xyz\>     Wortposition: am Ende des Wortes

 

Beispiel: findstr /i /s /p ".body" *.*

Sucht ausgehend vom aktuelllen Verzeichnis in allen Unterverzeichnissen nach Dateien, welche die Zeichenfolge ".body" enthalten. Dabei wird Gross/Kleinschreibung nicht beachtet und zusätzlich werden Binärdateien nicht durchsucht.

Tools

Windows Mobile

19. April 2009

Ich bin ja kein Freund von Windows Mobile. Meine Erfahrungen waren einfach zu negativ. Eine Benutzerführung, die nicht an den Anwendungsfall (nämlich mobiler Geräte) angepasst ist, und zudem noch ein Hardwaredesign, das jedem Hersteller es erlaubt hat alles zu verschlimmbessern. Nach 3 Geräten mit unterschiedlichen Windows Mobile Versionen habe ich jedenfalls genug von den sogenannten PDAs. Es ist mir zumindest eine Freude zu sehen, wie Apple mit dem iPhone den Markt von hinten aufrollt, und ein Gerät entwickelt hat, das in Design und Funktion Maßstäbe setzt.

Wie dem auch sei. Neulich stand bei uns um die Ecke ein "Windows Mobile" Auto. Irgendwie musste ich ziemlich lachen, denn der Mini Laster spiegelt meine negativen Erfahrungen ziemlich exakt wieder: Altes Design, alte Technologie und weder Fisch noch Fleisch.

Hoffentlich wird Windows Mobile 7 (oder schon 6.5) mal ein Schritt in die richtige Richtung und folgt einer zeitgemäßem Benutzerführung. Dann werde ich auch wieder einen ernsthaften Blick auf das .NET Compact Framework werfen - das hingegen ziemlich genial ist.

 

.NET

ASP.NET Performance von Visual Studio steigern

16. April 2009

Visual Studio verlangt nach schnellen Festplatten. Je schneller, desto besser. Nichts ist allerdings so schnell wie eine RamDisk. Wer glaubt, dass die RamDisk eine Sache aus der alten DOS-Zeit ist, der irrt. Speicher ist billig und 64 Bit Betriebssysteme sind auch schon fast Mainstream (na ja, noch nicht so ganz).

Was liegt also näher, die brach liegenden Megabytes des RAMs als RamDisk zu nutzen. Unter Vista x64 nutze ich die RAMdrive von QSoft, welche sich recht komfortabel über den Gerätemanager einstellen lässt. Zur Zeit nutze ich 1GB als Laufwerksgröße.

Damit nun ASP.NET Projekte diese RamDisk nutzen können, muß in der machine.config das tempDirectory angepasst werden:

<compilation tempDirectory="R:\Temp\aspnet"/>


Details zu diesem Eintrag findet sich bei MSDN.

Weiterhin lassen sich auch das Cache-Verzeichnis vom FireFox oder IE auf die RamDisk legen, um die Performance zu steigern.

.NET, ASP.NET

Neues Blog Online

8. April 2009

Lange Zeit hat sich nichts mehr hier im Blog bzw. auf meiner Seite getan. Das wird sich nun ändern! Zuerst habe ich das Blog nach BlogEngine.NET konvertiert und alle weiteren Seiten innerhalb des Blogs integriert. Wer also weiterhin nach Wetterinfos oder den neusten Fotos von Malte und Jonna Ausschau halten möchte, der muss einfach nur in der oberen Navigationsleiste den entsprechenden Link anwählen. 

Für die Zukunft habe ich einige interessante Themen im Blick, über die ich gerne mehr berichten möchte. Bleibt also dran!

BlogEngine.NET