blog.atwork.at

news and infos about microsoft, technology, cloud and more

Streaming Video mit IIS7 – Teil 1 Video Encoding

“Gehns, stellens mir doch schnell das Video rauf!” oder so ähnlich bekommt ein IT-Admin oder IT-Dienstleister oftmals einen kleinen Auftrag von der Geschäftsleitung oder vom Kunden. Damit ist gemeint: Ich hab da ein Video bekommen, bitte kümmern Sie sich darum, dass es online angesehen werden kann und dass es funktioniert. Hm, ein Video, ok… Könnte ein großes File mit vielen MB sein… Welches Format? Und mit welchem Player? Oder einfach per FTP oder HTTP zum Download stellen? Und was wenn der Download dann die anderen Webs auf dem Webserver verlangsamt oder blockiert? Muss dazu was programmiert werden? Halt – die Lösung ist nahe: Wenn man Windows Server 2008 und IIS7 als Webserver hat, braucht man nur noch Microsoft Expression Encoder auf dem Client installiert und ein paar kleine Schritte zur Lösung! (Ich weiß, es gibt bereits Microsoft Expression Encoder 4 – aber diese Version ist noch nicht so weit verbreitet und auch auf meinem PC noch nicht installiert, daher wird es Version 3 auch tun ;-). Mit Microsoft Expression Encoder kann mit ein paar Klicks ein Streaming Video mit Silverlight Player erstellt werden. Streaming Video bedeutet, dass der Webserver immer nur Teile des Videos an einen Videoplayer in einer Webseite ausliefert. Damit wird Bandbreite gespart und die “User Experience” durch automatische Erkennung der Bandbreiten-Geschwindigkeit verbessert. Es wird nur ausgeliefert, was und wie es vom Benutzer gebraucht wird – z.B. beim Klicken auf die Mitte des Videos wird der erste Teil nicht geladen. D.h. bei schneller Internet-Leitung erhält der Benutzer die bestmögliche Video-Qualität, sonst eine heruntergestufte Video-Qualität. Durch das Kodieren des Videos können die möglichen Bitrates selbst vorgegeben werden, dazu unten mehr. In diesem kurzen step-by-step Artikel geht es nicht um die vielen Möglichkeiten von Expression Encoder zur Videobearbeitung, sondern nur darum, rasch aus einem Video-File ein Internet-taugliches “Streaming Video” zu erstellen. Als Beispiel wird ein mit einer Flip-Cam aufgenommenes etwa eineinhalb minütiges Kurzvideo von Mary Joe Foley´s Session der #WPC10 verwendet. Also los gehts: Schritt 1: Microsoft Expression Encoder 3 starten und in File / Import… und das Video-File auswählen: Schritt 2: In Register “Encode” das Output-Format “IIS Smooth Streaming” auswählen – hier rot markiert: Schritt 3 - Optional: Sie können auch selbst die gewünschten Kodierungen für verschiedene Bitrates vorgeben. Erweitern Sie die Eigenschaft “Encoding for Silverlight”, “IIS Smooth Streaming” und wählen Sie bei den gewünschten Formaten im Kontextmenü “Apply to selected items” aus. Damit springt dieses Format nach unten in den “Video”-Bereich – oder Sie definieren selbst mit “+” ein eigenes Format. Nicht gewünschte Formate können mit dem Papierkorb-Symbol entfernt werden (alle wesentlichen Elemente sind rot markiert):   Hier im Beispiel werden nur drei Video-Formate codiert (1,4MB, 688KB und 230KB). Grundsätzlich genügen drei Formate (low – medium – high), jedoch lautet die Empfehlung, eher viele Versionen anzubieten: “…BUT it´ll make for more bitrate options for the player to choose and a MUCH better, smoother experience.” Die user experience ist also weit höher, wenn eine möglichst passende Version für die aktuelle Bandbreite ge-streamed wird – das bedeutet natürlich mehr Versionen und höherer Aufwand beim Kodieren – zu mindestens ist der Aufwand einmalig und Expression Encoder macht das automatisch. Schritt 4: Nun muss nur noch im Register “Output” das Player-Template “Smooth Streaming Graphing Player” ausgewählt werden (siehe wieder rote Markierung) – und in den Feldern darunter der Ausgabe-Dateiname und das Verzeichnis – nachdem mehrere Dateien erstellt werden, sollte es ein neues oder leeres Verzeichnis sein:   Schritt 5: Klick auf “Encode” am unteren Fensterrand. Here we go! Das Encoding ins streaming WMV-Format für die verschiedensten Übertragungs-Geschwindigkeiten startet: Wenn das Kodieren fertig ist, öffnet sich automatisch der Browser und das Video kann getestet werden: Das wars. Im Output-Verzeichnis wurden diese Files angelegt: Hier sind von Expression Encoder alle erforderlichen Files für das Streaming in unterschiedlichen Bitrates erstellt worden. Anwender können den folgenden Teil File-Infos getrost überspringen. ;-) [File-Infos] Die *.ism* Dateien sind XML-Dateien. Hier eine kurze Erklärung dazu – wer tiefer gehen möchte, dem empfehle ich Scott Hanselman´s Artikel Installing and Setting Up and Encoding for IIS 7 Smooth Streaming and Silverlight. In der <videofile>.ism Datei sieht man sehr schön die Einstellungen für die verschiedenen Transfer-Rates – nur für den Streaming Server erforderlich: “Describes the relationships between media tracks, bitrates and files on disk. Only used by the IIS Smooth Streaming server – not by client” In der <videofile>.ismc Datei stehen die verwendeten Codecs und beispielsweise die maximale Auflösungen des Players – dieses File wird zuerst zum Client geliefert: “Describes to the client the available streams, codecs used, bitrates encoded, video resolutions, markers, captions, etc. It’s the first file delivered to the client” Hint: Das “Smooth Streaming File Format” basiert auf dem ISO-standardisierten Base Media File Format (das ist das MP4 File Format, dieses folgt der ISO/IEC 14496-12 Spezifikation). Bei Bedarf kann noch die default.html Datei angepasst werden, der wesentliche Teil ist die Einbindung des Silverlight Players MediaPlayerTemplate.xap und SmoothStreaming.xap, die ebenfalls im erzeugten Verzeichnis liegen. [End of File-Infos] Das wars. Nun einfach das ganze erstellte Verzeichnis auf den IIS7 Webserver per FTP o.ä. uploaden. In Teil Zwei gehts um die Konfiguration des IIS7 – das funktioniert noch einfacher. ;-)

Streaming Video mit IIS7 – Teil 1 Video Encoding

“Gehns, stellens mir doch schnell das Video rauf!” oder so ähnlich bekommt ein IT-Admin oder IT-Dienstleister oftmals einen kleinen Auftrag von der Geschäftsleitung oder vom Kunden. Damit ist gemeint: Ich hab da ein Video bekommen, bitte kümmern Sie sich darum, dass es online angesehen werden kann und dass es funktioniert. Hm, ein Video, ok… Könnte ein großes File mit vielen MB sein… Welches Format? Und mit welchem Player? Oder einfach per FTP oder HTTP zum Download stellen? Und was wenn der Download dann die anderen Webs auf dem Webserver verlangsamt oder blockiert? Muss dazu was programmiert werden? Halt – die Lösung ist nahe: Wenn man Windows Server 2008 und IIS7 als Webserver hat, braucht man nur noch Microsoft Expression Encoder auf dem Client installiert und ein paar kleine Schritte zur Lösung! (Ich weiß, es gibt bereits Microsoft Expression Encoder 4 – aber diese Version ist noch nicht so weit verbreitet und auch auf meinem PC noch nicht installiert, daher wird es Version 3 auch tun ;-). Mit Microsoft Expression Encoder kann mit ein paar Klicks ein Streaming Video mit Silverlight Player erstellt werden. Streaming Video bedeutet, dass der Webserver immer nur Teile des Videos an einen Videoplayer in einer Webseite ausliefert. Damit wird Bandbreite gespart und die “User Experience” durch automatische Erkennung der Bandbreiten-Geschwindigkeit verbessert. Es wird nur ausgeliefert, was und wie es vom Benutzer gebraucht wird – z.B. beim Klicken auf die Mitte des Videos wird der erste Teil nicht geladen. D.h. bei schneller Internet-Leitung erhält der Benutzer die bestmögliche Video-Qualität, sonst eine heruntergestufte Video-Qualität. Durch das Kodieren des Videos können die möglichen Bitrates selbst vorgegeben werden, dazu unten mehr. In diesem kurzen step-by-step Artikel geht es nicht um die vielen Möglichkeiten von Expression Encoder zur Videobearbeitung, sondern nur darum, rasch aus einem Video-File ein Internet-taugliches “Streaming Video” zu erstellen. Als Beispiel wird ein mit einer Flip-Cam aufgenommenes etwa eineinhalb minütiges Kurzvideo von Mary Joe Foley´s Session der #WPC10 verwendet. Also los gehts: Schritt 1: Microsoft Expression Encoder 3 starten und in File / Import… und das Video-File auswählen: Schritt 2: In Register “Encode” das Output-Format “IIS Smooth Streaming” auswählen – hier rot markiert: Schritt 3 - Optional: Sie können auch selbst die gewünschten Kodierungen für verschiedene Bitrates vorgeben. Erweitern Sie die Eigenschaft “Encoding for Silverlight”, “IIS Smooth Streaming” und wählen Sie bei den gewünschten Formaten im Kontextmenü “Apply to selected items” aus. Damit springt dieses Format nach unten in den “Video”-Bereich – oder Sie definieren selbst mit “+” ein eigenes Format. Nicht gewünschte Formate können mit dem Papierkorb-Symbol entfernt werden (alle wesentlichen Elemente sind rot markiert):   Hier im Beispiel werden nur drei Video-Formate codiert (1,4MB, 688KB und 230KB). Grundsätzlich genügen drei Formate (low – medium – high), jedoch lautet die Empfehlung, eher viele Versionen anzubieten: “…BUT it´ll make for more bitrate options for the player to choose and a MUCH better, smoother experience.” Die user experience ist also weit höher, wenn eine möglichst passende Version für die aktuelle Bandbreite ge-streamed wird – das bedeutet natürlich mehr Versionen und höherer Aufwand beim Kodieren – zu mindestens ist der Aufwand einmalig und Expression Encoder macht das automatisch. Schritt 4: Nun muss nur noch im Register “Output” das Player-Template “Smooth Streaming Graphing Player” ausgewählt werden (siehe wieder rote Markierung) – und in den Feldern darunter der Ausgabe-Dateiname und das Verzeichnis – nachdem mehrere Dateien erstellt werden, sollte es ein neues oder leeres Verzeichnis sein:   Schritt 5: Klick auf “Encode” am unteren Fensterrand. Here we go! Das Encoding ins streaming WMV-Format für die verschiedensten Übertragungs-Geschwindigkeiten startet: Wenn das Kodieren fertig ist, öffnet sich automatisch der Browser und das Video kann getestet werden: Das wars. Im Output-Verzeichnis wurden diese Files angelegt: Hier sind von Expression Encoder alle erforderlichen Files für das Streaming in unterschiedlichen Bitrates erstellt worden. Anwender können den folgenden Teil File-Infos getrost überspringen. ;-) [File-Infos] Die *.ism* Dateien sind XML-Dateien. Hier eine kurze Erklärung dazu – wer tiefer gehen möchte, dem empfehle ich Scott Hanselman´s Artikel Installing and Setting Up and Encoding for IIS 7 Smooth Streaming and Silverlight. In der <videofile>.ism Datei sieht man sehr schön die Einstellungen für die verschiedenen Transfer-Rates – nur für den Streaming Server erforderlich: “Describes the relationships between media tracks, bitrates and files on disk. Only used by the IIS Smooth Streaming server – not by client” In der <videofile>.ismc Datei stehen die verwendeten Codecs und beispielsweise die maximale Auflösungen des Players – dieses File wird zuerst zum Client geliefert: “Describes to the client the available streams, codecs used, bitrates encoded, video resolutions, markers, captions, etc. It’s the first file delivered to the client” Hint: Das “Smooth Streaming File Format” basiert auf dem ISO-standardisierten Base Media File Format (das ist das MP4 File Format, dieses folgt der ISO/IEC 14496-12 Spezifikation). Bei Bedarf kann noch die default.html Datei angepasst werden, der wesentliche Teil ist die Einbindung des Silverlight Players MediaPlayerTemplate.xap und SmoothStreaming.xap, die ebenfalls im erzeugten Verzeichnis liegen. [End of File-Infos] Das wars. Nun einfach das ganze erstellte Verzeichnis auf den IIS7 Webserver per FTP o.ä. uploaden. In Teil Zwei gehts um die Konfiguration des IIS7 – das funktioniert noch einfacher. ;-)

TFS2010 mit Visual Studio 2008

Diesmal ein kleiner Tipp für Visual Studio-Developer und Developing-Teams. Wer – so wie ich – den neuen TFS 2010 (Visual Studio Team Foundation Server 2010) in seinem Entwicklungsteam einsetzt kann von vielen neuen Funktionen in der Team-Zusammenarbeit profitieren. Also liegt der Gedanke nahe, TFS2010 auch mit Visual Studio 2008 zu verwenden. Unbedarfter Weise öffnet man ein “altes” Projekt mit Visual Studio 2008 und versucht nun die Verbindung zum neuen TFS2010 herzustellen, um das bestehende 2008er-Projekt in TFS2010 einzuchecken… und scheitert. In meinem Fall heißt mein alter TFS 2008 “TFS2” und der neue TFS 2010 “TFS” (beide mit Standard-Port 8080). So sieht mein Verbindungsversuch aus, gefolgt von der Eingabe der Credentials: …jedoch leider ohne Erfolg: Hm. In meinem VS2010 hat das problemlos geklappt… Also mal rasch die Einstellungen in der neuen TFS 2010 Administration Console einsteigen und URLs prüfen: Passt soweit, alles Default, Rechte sind auch gesetzt. Der Pfad zu dem ich mich via meinem VPN verbinden möchte ist eine Team Project Collection “atwork” mit dieser URL: http://tfs:8080/tfs/atwork In Visual Studio 2010 sieht die Connect-Box auch anders aus, hier kann der Path extra angegeben werden und die Verbindung klappt: Nur: wie sag ich’s meinem Visual Studio 2008? Hint: Die Idee, den Path “8080/tfs/atwork” einfach in das “Port”-Feld hinten anzufügen um die richtige URL zusammenzustellen klappt auch nicht, es folgt dieselbe Fehlermeldung – auch mit der korrekt zusammengesetzten URL. So gehts also auch nicht. What next? Zum Glück gibt es Suchmaschinen und netterweise hat Thomas Müller in seinem Blog auch eine Lösung gefunden! Damit dieser TFS-Connection-Pfad im Team Explorer von Visual Studio 2008 akzeptiert wird, müssen zwei Voraussetzungen erfüllt sein: Visual Studio 2008 SP1 und SP1 Patch KB974558 VS 2008 SP1 sollte natürlich schon längst installiert sein… also den Patch installieren und erneut mit der ganzen URL http://TFS:8080/tfs/atwork ausprobieren: Und siehe da – die Verbindung mit der gewünschten URL von Visual Studio 2008 zum TFS2010 funktioniert! Der Rest funktioniert wie gewohnt… plus die neuen TFS2010-Funktionen. Hoffe, dieser Step-by-Step Tipp erspart vielen Developern graue Haare. ;-)

Microsoft SQL Server 2008 R2 Report Builder 3.0

…ist seit gestern zum im Microsoft Download Center verfügbar: Microsoft SQL Server 2008 R2 Report Builder 3.0 “Microsoft SQL Server 2008 R2 Report Builder 3.0 ist eine Berichterstellungsumgebung für Geschäftsbenutzer, die in der vertrauten Microsoft Office-Umgebung arbeiten können, um Auswertungen rasch und einfach selbst zu erstellen.” Der Download ist ein stand-alone Installer und 31MB klein. Was ist neu? Nun, zum Beispiel hinterlegbare Karten (Beispiel unten), Sparklines (die Wellengrafik “2004 Verkaufsverlauf” unten) und zusätzliche Diagrammtypen. Reports werden rascher aufgebaut (cached datasets), Auswertungen sind mit dem neuen Report Builder rascher bearbeitbar und können als Datafeed ausgegeben werden. Der Link What's New in Report Builder 3.0 August CTP informiert darüber – auch wenn der Titel nicht ganz aktuell ist, sind hier die wesentlichen Funktionen aufgelistet. Erste Schritte mit Berichts-Generator 3.0 ist eine gute Startseite um die Funktionalität und Möglichkeiten des Microsoft SQL Server 2008 R2 Report Builder 3.0 kennenzulernen. Demo eines erzeugten Reports mit Karte. Mehr Infos zu Geschäftsdaten mit geografischem Hintergrund siehe Karten (Berichts-Generator 3.0). Business Intelligence für Power-User!

Apple iPhone iOS 4.0 synct nicht mit Exchange

Ich habe seit dem iOS 4.0 Update auf meinem Apple iPhone die Probleme, dass der Kalender nicht mehr vernünftig funktioniert, siehe Ist ein neues (i)OS immer besser?  Heute habe ich einen KB-Artikel TS3398 vom 28. Juni bei Apple gefunden, der sich anscheinend genau mit diesem (meinem) Problem befasst: iOS 4: Exchange Mail, Contacts, or Calendars may not sync after update So wird das Symptom beschrieben: “Immediately after updating to iOS 4, some users may notice that Exchange ActiveSync Mail, Contacts, or Calendars do not sync, or sync very slowly…” Wenn Sie also – so wie ich - mit einem Exchange Server (“on premise” oder “in the cloud”) synchronisieren: Mails, Kontakte und Kalender werden nicht oder nur sehr sehr langsam synchronisiert. Der Grund dürfte daran liegen, dass im Standard-Profil zu wenig Timeout für die Synchronisation mit Exchange eingestellt ist, das heißt, die Synchronisation bricht zu rasch ab. Dieses Verhalten betrifft alle iPhone und iPod Touch Produkte, die mit iOS 4.0 upgedated werden können: iPod touch, iPhone 3G, iPhone 3GS und iPhone 4. Und die Lösung – sprich der Workaround für dieses Problem - sieht so aus: Apple KB TS3398. Hier die Schritt-für-Schritt Anleitung für alle betroffenen iPhone User: Zunächst am iPhone mit Safari auf den Artikel http://support.apple.com/kb/TS3398 surfen und den Link download the configuration profile anklicken.   Tipp: Falls der Link das Profil am iPhone nicht wie in Schritt 2 öffnet: Das Profil am Computer downloaden und sich selbst per E-Mail senden, E-Mails synchronisieren und dann das Attachement am iPhone anklicken (beim 3G hat es direkt von der Website funktioniert, beim 3GS nicht…).   Alternativ: Downgeloadetes Profil selbst emailen: Es folgt “Profil installieren” mit dem Titel “EAS Default Task…”. In der Beschreibung steht: “Sets the default timeout for talking to Exchange servers…”. “Installieren” auswählen.      Es folgt die Warnung “Unsigniertes Profil”. (Herausgeber: Apple Inc, Unsigniert. Autsch…)  Also auf “Installieren” klicken. Gegebenenfalls iPhone-Code eingeben:  Nach der Installation rechts oben auf “Fertig” klicken.  Nun das iPhone aus- und danach wieder einschalten, also ein “Reboot”.  Nach der Installation wird in den “Einstellungen > Allgemeines > Profile” das neue Profil angezeigt. Das sollte dann so aussehen, dass zwei Profile vorhanden sind, jenes des Providers und das “EAS Default Task Timeout” Profil.    Ausprobieren: Mit Exchange synchronisieren. Prüfen. In meinem Fall z.B. mit dem neu synchronisierten Kalender.  Das wars. Ich habe diese Schritte mit meinem iPhone 3G ausprobiert und – hurra – es scheint nun wieder gut zu funktionieren! Was so ein kleines neues Profil ausmacht… Ich hoffe, die kleine Anleitung hilft allen iPhone-Usern, die dieses Problem ebenso haben! Anleitung ohne Gewähr, “but it worked on my machine!” ;-)

Tipps zum mobilen Arbeiten

Wer viel unterwegs ist, muss seine Kommunikation gut planen und – die richtigen Werkzeuge haben. So beschreibt Scott Hanselman von Microsoft seine Tipps für “remote working”: 30 Tips for Successful Communication as a Remote Worker Einige wichtige Punkte herausgepickt: Be clear and precise. It's very easy to misinterpret email... Re-read your emails before sending. Answer all questions asked. Incomplete answers lead to frustration and wasted time. Document everything. Document all decisions - if it's not recorded in email, it didn't happen. Share everything. RT @shanselman: Blog: 30 Tips for Successful Communication as a Remote Worker http://goo.gl/fb/3lD7C

Microsoft Fix it Center Online

Computerprobleme wie Software-Fehler, veraltete Hardware-Treiber oder Abstürze können ab sofort mit dem freien Microsoft Fix it Online Portal (dzt. Beta) analysiert und repariert werden. Voraussetzung dafür sind nur ein Internetzugang und eine Live-ID. Frei nach dem (alten) Motto “Next, Next, Finish.”, oder wie das Fix it Center es bezeichnet: “Click, click, fixed!”   Von der Portalseite lädt man einen kleinen Client, welcher das Microsoft Fix it Center lokal auf dem PC installiert. Folgen Sie einfach den Schritten des Assistenten. Nach der Installation und dem Registrieren bzw. Anmelden mit der eigenen Live-ID zeigt der Assistent empfohlene Schritte speziell für Ihren Computer an, die mit Ausführen durchgeführt werden können: Das Fix it Center kann (via Hyperlink links unten) auch online aufgerufen werden. Hier werden dann die Computerdetails angezeigt – es können auch mehrere Computer mit einem Konto verwaltet werden. Nix für Profis, aber Microsoft Fix it Online Portal ist eine einfache Möglichkeit für Anwender, ihren Computer zu testen und ggf. Computer-Probleme automatisiert lösen zu lassen. Give it a chance. ;-)

Microsoft System Center Configuration Manager 2007 Dashboard Download

Verwenden Sie Microsoft System Center Configuration Manager 2007? Wenn ja, dann hätt´ ich da was Neues, Feines: Ein Dashboard mit den “Key Indicators” zur Systemüberwachung in Windows SharePoint Services. Das Dashboard ist ein “customizable Web interface” für SharePoint, seit gestern verfügbar! Der Download (9MB) liegt im Microsoft Download Center: Microsoft System Center Configuration Manager 2007 Dashboard Die Voraussetzungen für das SCCM Dashboard: Windows Server, Configuration Manager 2007, Windows SharePoint Services 3.0 SP2 oder SharePoint Server 2007 SP2, SQL Server 2005 oder 20087, Microsoft .NET Framework 3.5, MS Word 2007 oder Word Viewer (da die neuen Office-Dateiformate verwendet werden). Mehr Informationen zum Dashboard finden Sie im TechNet: About the Configuration Manager Dashboard Infos zum Microsoft System Center Configuration Manager 2007 gibt es auf der Website des Microsoft System Center.

Microsoft Translator V2 – Automatische Übersetzungen per Click

Wollen Sie Ihre Website oder Ihre Software in mehreren Sprachen anbieten? Und haben Sie die Textinhalte bisher noch nicht übersetzen lassen oder noch nicht eingebaut oder online gestellt? Dann schauen Sie sich doch mal Microsoft Translator an! Bei der mix09 Konferenz wurde Microsoft Translator v1 präsentiert – ein PlugIn, das in eine Website eingebettet werden kann und Text in eine von 30 Sprachen “on the fly” übersetzen kann. Klingt einfach – ist es auch. Das PlugIn erkennt die Sprache der Website und kann den Inhalte der Website – auch nur von bestimmten Teilen, die mit einem <div id=…> markiert sind – übersetzen. So können zum Beispiel Markennamen, Ortsangaben oder bestimmte Textteile unverändert bleiben während der restliche Text übersetzt wird. Microsoft Translator bietet somit eine Möglichkeit an, eigene Websites mit fast Null Aufwand in eine von 30 Sprachen zu übersetzen. Benötigt wird nur eine Live-ID und eine einmalige Registrierung. Damit kann dann das PlugIn und der kurze Javascript-Code generiert werden. “���The Widget is for anyone with a web page. If you can paste a small snippet of code into your page, you will be able to display the widget to your audience. No need to know programming intricacies, or how to call a JavaScript API. No need to write or install server side plug-ins for your specific software.” (siehe blogs.msdn.com/translation) Jeder, der sich mit Sprachen befasst, weiß, wie komplex Übersetzungen sein können. Das Microsoft Research Team arbeitet bereits seit mehr als 10 Jahren an Übersetzungs-Software. Und die Anwender wollen .. mehr! Auf mix10 wurde nun Version 2 des Microsoft Translators vorgestellt: Die Neuerungen? Kurz zusammengefasst: Neben Silverlight-Support, Batch-Übersetzungen via API (z.B. SOAP, HTTP. Also auch für eigene Windows-Software, nicht nur für Websites!), SSL-Support können Benutzer nun auch Vorschläge für bessere Übersetzungen liefern! Fast monatlich kommen neue Sprache hinzu. Hier einige Informationen zu weiteren Ressourcen: Für alle Interessierten: www.microsofttranslator.com www.microsofttranslator.com/mix2010 blogs.msdn.com/translation Wer in Kontakt mit dem Microsoft Research Team treten will: Fügen Sie den Kontakt mtbot@hotmail.com in Ihren Live Messenger hinzu! So können Sie direkt Feedback geben. Schauen Sie mal rein und testen Sie Microsoft Translator!

Freie Tools für Hyper-V R2: RSAT

Letztlich bin ich im TechNet Magazine wieder darüber gestolpert: Den Hinweis auf die freien Tools für Hyper-V: Download a Set of Free Tools for Managing Hyper-V R2. Damit sind die Remote Server Administration Tools für Windows 7 (RSAT) gemeint. Die Tools gibt es schon seit letztem November – und sie sind noch immer genauso praktisch und empfehlenswert wie zuvor (siehe auch RSAT nun auch auf Deutsch und (RSAT) für Windows 7 Beta hier im Blog). Mit RSAT kann ein IT-Admin von seinem Windows 7 Client aus virtuelle Maschinen verwalten – und vor allem auch Hyper-V Core Server! Wichtig: RSAT läuft nur unter Windows 7 Enterprise, Professional oder Ultimate. Es gibt einen eigenen Download (EN, DE, etc.) mit je etwa 220MB für x86 und x64: Download Remote Server Administration Tools for Windows 7 Nach der Installation und dem Start (%windir%\system32\mmc.exe "%ProgramFiles%\Hyper-V\virtmgmt.msc")sieht das MMC mit den Client-Tools genauso aus wie am Hyper-V Server: Und das Beste daran: Auch das “Connect to Computer” öffnet die virtuelle Maschine wie am Hyper-V Server (Ja, das ist natürlich klar, aber alleine die Installation der Integration Services ist so ohne mühsame Tastatur-Steuerung möglich – ich erinnere an meinen Artikel Hyper-V Integration Services ohne Maus installieren ;-) RSAT funktioniert übrigens nicht nur für R2-Server, sondern auch für die “normalen” Windows Server 2008.

Wie bekomme ich binäre Dokumente (BLOBs) in den SQL Server?

Zu Artikel Teil Eins - Wie bekomme ich binäre Dokumente (BLOBs) aus dem SQL Server? – nun das Gegenstück: Teil Zwei - Wie kann ich Dateien IN den SQL Server bringen? Das heißt Files als BLOB (Binary Large Object) in eine Tabelle speichern – und das Ganze möglichst einfach. Diese Lösung ist ebenfalls mit T-SQL zu bewerkstelligen. Die Idee dazu ist von databasejournal.com - Storing Images and BLOB files in SQL Server Part 2 entnommen, hier das Script: (Das ganze Script gibt es hier zum Download, es läuft in SQL Server 2005 und 2008.) Das Einlesen eines Files wird wieder in einer Stored Procedure “savefromfile” gemerkt. Den gewünschten Filestream liefert OPENROWSET (Zeile 11, die Hilfe informiert: …also supports bulk operations through a built-in BULK provider that enables data from a file to be read and returned as a rowset). Damit wird das File eingelesen. Das INSERT (Zeile 9) fügt einfach den Output des SELECTS (Zeile 10-11) in die Tabelle “MyFiles“ ein. Also simpel. Screenshot der Original-Tabelle: hier. Nach dem Starten von "exec savefromfile" und Anzeigen der Tabelle  sieht das Ergebnis so aus: Das File "00006_Bild 1.jpg" wurde mit seinem Inhalt in die Tabelle MyFiles eingefügt. Fertig! Noch ein Tipp für “Massen-Imports” - wenn mehrere Dateien so in die Datenbank insertiert werden sollen: Hier kann man sich sehr rasch damit behelfen, in der Kommandozeile im Bilder-Verzeichnis die Dateinamen mit dir /w > import.txt in ein Textfile zu schreiben. Das Textfile "import.txt" dann mit Notepad öffnen, und die Dateinamen per Zwischenablage in eine neue Excel-Datei kopieren. In Excel werden die SQL-Befehle für die gewünschten Files zusammengebaut, beispielsweise so: Die Bildnamen stehen in Spalte A, in Spalte B wurde – wenn z.B. die ID aus dem Dateinamen weiterverwendet werden soll – diese aus dem Dateinamen extrahiert (B1: =LINKS(A1;5) ). Die "Formel" für Zelle C1: ="INSERT INTO MyFiles (FIL_ID, FIL_FileName, FIL_Content) SELECT " & WERT(B1) & ", '" & A1 & "', BulkColumn FROM OPENROWSET(Bulk 'D:\Temp\bin\" & A1 & "', SINGLE_BLOB) AS BLOB);" Die Formel ergibt dann das korrekte T-SQL-Statement für die jeweilige Datei: INSERT INTO MyFiles (FIL_ID, FIL_FileName, FIL_Content) SELECT 6, '00006_Bild 1.jpg', BulkColumn FROM OPENROWSET(Bulk 'D:\Temp\bin\00006_Bild 1.jpg', SINGLE_BLOB) AS BLOB); Nun Zelle C1 bis ans Ende der Dateinamen “ausfüllen” lassen: Und die so erzeugten SQLs per Zwischenablage im SQL Management Studio einfügen und laufen lassen. GO! Tipp: Excel als Hilfsmittel zum Erzeugen von SQL-Befehlen und zum Nachbearbeiten von Daten ist übrigens eine Methode, die ich wirklich oft verwende und als äußerst praktisch empfehlen kann. Viel schneller gehts kaum. ;-) Mit diesen Werkzeugen ist auch das Manipulieren von BLOBs in SQL Server rasch umsetzbar!

Wie bekomme ich binäre Dokumente (BLOBs) aus dem SQL Server?

Das Leben als Datenbank-Administrator steckt voller Überraschungen. Mal gehören Indizies erstellt oder neu aufgebaut, Volltextkataloge rebuildet, Datenbanken gebackupt, gewartet, restored und natürlich ist ein DB-Admin Ansprechpartner für alle weiteren auftretenden Probleme und Wünsche der IT und der Anwender. So hatte ich vor kurzem die Anforderung, in einer Datenbank gespeicherte Bilder “herauszuholen”, also klassische BLOBs (Binary Large Objects) als Dateien zu speichern. In meiner Datenbank existiert eine Tabelle “MyFiles” mit einer Spalte vom Typ IMAGE. Das Pendant ab SQL Server 2005 wäre der “neue” Datentyp VARBINARY; in meinem Fall handelt es sich um eine konvertierte DB aus SQL 2000 in SQL 2005. In der Spalte ”FIL_Content” ist der Dateistream einer Datei enthalten, z.B. JPG-Bilder, Word- und Excel-Dokumente, PDFs, (BLOB), also ganz egal welche Files (ab SQL 2008 gibt es übrigens einen eigenen Filestream-Datentyp. ;-) Die binären Dokumente können nicht simpel mit Copy & Paste herausgeholt werden, nur die entsprechende Applikation liest und schreibt die Dateien von und in die Datenbank. Diese binären Informationen aus der Tabelle sollen als Files gespeichert werden um sie weiterzuverwenden. So sieht die vereinfachte Tabelle aus, Auszulesen ist die Spalte FIL_Content: Natürlich könnte ich eine kleine .NET Applikation dafür bauen, aber ich wollte eine möglichst rasche Lösung. Und ich habe sie auch gefunden! Ein kleines T-SQL Script im SQLTeam.com Forum von "Peso". Dieses habe ich analysiert und wie folgt angepasst. (Das ganze Script gibt es hier zum Download, es läuft in SQL Server 2005 und 2008.) Ich habe das Script als Stored Procedure “save2file” angelegt. Die Funktionsweise kurz erklärt: Mit einem Cursor (Zeile 16) wird die gesamte Tabelle “MyFiles” durchlaufen und die selektierten Felder in Variablen eingelesen (Zeile 21). Dann wird der Pfad aus Feld FIL_ID und Dateiname zusammengebaut und ausgegeben (Zeile 25-28). Jetzt kommt der Clou: Es wird ein ADODB-Stream als OLE-Objekt angelegt (Zeile 30) und mit den Werten befüttert (Zeile 31 bis 34). Dieser Stream wird auf die Festplatte geschrieben (Zeile 33, 34) und das OLE Objekt zerstört (Zeile 36). Und weiter mit dem nächsten Datensatz (Zeile 38). Anzupassen ist natürlich der Pfad, wohin die Dateien gespeichert werden sollen (Zeile 27). Ausgeführt wird das Script wie gewohnt mit exec save2file Voila! Wenn alles stimmt, wurden die binary Contents als Files in den gew. Pfad extrahiert: Hinweis: Diese Vorgangsweise ist sehr rasch anwendbar, aber nicht unbedingt für “daily use” geeignet. Je nach Datenmenge ist das Erstellen eines OLE-Objekts nicht unbedingt “günstig”. Aber für den Ab-und-zu Export verdient das Script meine Empfehlung als “best practice”! Eine weitere Methode: KB258038: How To Access and Modify SQL Server BLOB Data by Using the ADO Stream Object mit dem VB Beispiel “Saving the Data in a SQL Server Image Column to a File on the Hard Disk” und “Transfer the Image Stored in a .gif File to an Image Column in a SQL Server Table”. In Teil Zwei geht es dann um den umgekehrten Weg – wie bekomme ich Files per T-SQL als BLOB in die Datenbank… Möge T-SQL immer so hilfreich sein! ;-) Beitrag von Toni Pohl