Images / Out Of Browser

Ein Feature, das im Silverlight CD-Viewer natürlich nicht fehlen darf, ist das Anzeigen der CD-Cover. Das ist das einzige was ich in der PHP nicht umgesetzt habe (obwohl es natürlich möglich wäre). Natürlich wollte ich mich hier in erster Linie davor schützen Ärger zu bekommen – ich glaube einfach so CD-Cover anzuzeigen ist sicherlich Lizenzrechtlich bedenklich. Im Silverlight CD-Viewer hätte ich das auch nur optional für mich eingebaut. Ja, hätte! Warum mach ich es nicht? Ganz einfach: Weil es nicht geht. 😕
Silverlight ist bei der Auswahl der Bildformate etwas wählerisch und obwohl ich jpg Dateien in meiner Cover Datenbank ablege, kann ich diese in Silverlight nicht anzeigen. Eine ’normale‘ .NET Anwendung kann das Bild ohne Probleme verarbeiten, laden, anzeigen, speichern, …
Man findet zu dem Problem viele Einträge, aber weitergeholfen hat mir keiner. Unter Umständen ist das auch einfach nur ein Bug. Vielleicht gibt’s hier mit Silverlight 5 noch ein paar Verbesserungen …


Ich will aber natürlich nicht nur jammern. Ich hab‘ auch wieder was Interessantes gefunden. Ein kleines Video das zeigt, wie man eine Silverlight Anwendung für Out of Browser konfiguriert. Das alleine wäre jetzt noch nicht so aufregend. Interessanter sind noch drei – für Out of Browser – elementare Funktionen.

1. Erkennen ob die Anwendung ‚Out of Browser‘ läuft

1
2
3
4
5
6
7
8
if (Application.Current.IsRunningOutOfBrowser)
{
    // Running out of browser
}
else
{
    // Running in browser
}

2. Feststellen ob eine Verbindung zum Internet besteht / Über Änderungen des Netzwerkstatus benachrichtigt werden

1
2
3
4
5
6
7
8
9
10
11
private void CheckNetworkStatus()
{
    if (NetworkInterface.GetIsNetworkAvailable())
    {
        // I'm glad we're connected
    }
    else
    {
        // Code red! We're currently not connected!
    }
}

Für die Benachrichtigung über Änderungen gibt’s bereits ein Event …

1
2
3
4
5
6
NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged);
 
void NetworkChange_NetworkAddressChanged(object sender, EventArgs e)
{
    CheckNetworkStatus();
}

3. Updates für Out of Browser Anwendungen
An sich braucht man dafür nur eine Zeile Code. Ich zeige hier mal den ganzen Ausschnitt der App.xaml.cs.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public App()
{
    this.Startup += this.Application_Startup;
    this.Exit += this.Application_Exit;
    this.UnhandledException += this.Application_UnhandledException;
    this.CheckAndDownloadUpdateCompleted += new CheckAndDownloadUpdateCompletedEventHandler(App_CheckAndDownloadUpdateCompleted);
 
    InitializeComponent();
}
 
void App_CheckAndDownloadUpdateCompleted(object sender, CheckAndDownloadUpdateCompletedEventArgs e)
{
    if (e.UpdateAvailable)
    {
        // Here you can inform the user, that a new update was installed
    }
}
 
private void Application_Startup(object sender, StartupEventArgs e)
{
    this.CheckAndDownloadUpdateAsync();
    this.RootVisual = new MainPage();
}

Zeile 6: Hier wird ein Event zugewiesen, das Aufgerufen wird, sobald die Updateprüfung abgeschlossen ist
Zeile 11 – 17: Hier das Event das Aufgerufen wird sobald die Updateprüfung abgeschlossen ist.
Zeile 21: Mit dieser Anweisung wird im Hintergrund nach Updates gesucht. Wenn Updates vorhanden sind werden diese automatisch installiert.

Hier noch das Video dazu:
Out-of-browser Experiences (presented by: Tim Heuer)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert