OOB rakendusele suuremad õigused

Silverlight 3 tõi võimaluse Silverlight rakendusi töölauale paigaldada (out of browser applications), ega see palju muud juurde ei toonud kui selle, et veebilehitseja raam kadus rakenduse ümbert. Alates Silverlight 4 RC versioonist on aga võimalus nendele samadele veebilehitsejavälistele rakendustele anda suuremaid õiguseid – elevated trust mode.

Mida elevated trust rakendusele juurde annab?

  • Ligipääsu Documents, Music, Videos kataloogidele.
  • Võimalust kasutada täisekraanil kõiki klaviatuuri nuppe, mitte ainult alamhulka.
  • Tavalistel Silverlight rakendustel on mõningatel operatsioonidel piirang peal, et neid võib käivitada ainult kasutaja sündmuse peale (näiteks pärast nupu vajutust ja siis ka 1 sekund pärast nupu vajutust). Elevated Trust rakendus võib näit. täisekraanile minna ka kohe rakenduse avamisel. Selliseid tegevusi on tegelikult veel.
  • Võimalus muuta OOB rakenduse akna välimust. jm.

Kuidas seadistada?

Kõrgendatud õiguste saamiseks tuleb kõigepealt seadistada Silverlight projekt OOB projektiks:

enable oob thumb OOB rakendusele suuremad õigused

Siis seejärel saab lubada ka kõrgendatud õiguseid:

enable oob elevated trust thumb OOB rakendusele suuremad õigused

Selle tulemusena lisandub projekti Properties kataloogi OutOfBrowserSettings.xml fail, mis näeb pärast neid kahte sammu välja selline:

 Capture thumb OOB rakendusele suuremad õigused

Edasi oleks kusagil oma koodis viisakas ka kontrollida, kas rakendusel tõesti siis on kõrgendatud õigused ja siis vastavalt käituda. Aga see on õnneks lihtne:

if(App.Current.HasElevatedPermissions) {

}

 

Kõige täpsem info on alati dokumentatsioonis: http://msdn.microsoft.com/en-us/library/ee721083(VS.96).aspx

OOB rakenduste uuendusmudel.

OOB ehk Out Of Browser rakendused on need, mille saab paigaldada oma arvutisse. Väga lahe on see, et kui siis hiljem seal algses veebikeskkonnas oma rakendust uuendada, siis uuendatakse automaatselt ka kõikide klientide arvutite koopiad. Kui seda paluda:

public App() {
    this.Startup += this.Application_Startup;

    this.UnhandledException += this.Application_UnhandledException;
    InitializeComponent();

    if (Application.Current.IsRunningOutOfBrowser){
       App.Current.CheckAndDownloadUpdateAsync();
    }
}

Rakenduse ikoonide muutmine

Ühes varasemas postituse rääkisime sellest, kuidas Silverlight rakendust brauserist väljaspool tööle panna. Kes selle ise järgi proovisid, siis võib-olla märkasid, et vaikimisi on iga rakendus ikoon midagi sellist:

image thumb5 Rakenduse ikoonide muutmine

See ei ole küll kole ikoon, aga ikka tahaks ju enda rakenduse teistest eristamiseks midagi huvitavamat. Tuleb välja, et see on täiesti võimalik, kuigi Expression Blendi kasutades natuke keerulisem kui arvata võiks.

Ikoonide ettevalmistamine

Silverlight tahab ikoone saada neljas erinevas suuruses ja PNG formaadis. Nõutuavad suurused on 16×16, 32×32, 48×48 ja 128×128 pikslit. Meie kasutasime piltide erinevatesse suurustesse salvestamiseks Painti, kuigi selleks on ilmselt ka paremaid rakendusi, sest Paint kaotab PNG failide salvestamisel ära läbipaistvuse ja tekib natuke häiriv valge taust. Meie ikoonid olid näiteks sellised:

16×16 32×32 48×48 128×128
16x16 thumb Rakenduse ikoonide muutmine 32x32 thumb Rakenduse ikoonide muutmine 48x48 thumb Rakenduse ikoonide muutmine 128x128 thumb Rakenduse ikoonide muutmine

Kindlasti on vajalikud kõik eri suurustest failid, sest neid näidatakse erinevates kohtades (Start-menüü, töölaud jne.).

Failide projekti lisamine

See on Expression Blendis kõige keerulisem samm ja selle tööle saamiseks kulus mul ikka päris mitu tundi, sest internetist ei õnnestunud ühtegi juhendit ka leida. Visual Studios oleks see ilmselt palju lihtsamalt käinud ja VS kohta leidub netis ka päris palju juhendeid.

Kõigpealt tuleb luua projekti alla uus kaust, mida saab teha näiteks niimoodi:

image thumb6 Rakenduse ikoonide muutmine

Järgmisena tuleb vajutada parema klahviga loodud kaustal ja valida Add Existing Item…

image thumb7 Rakenduse ikoonide muutmine

Avanenud aknas tuleks üles otsida päris alguses loodud ikoonid ja need sinna kausta lisada. Tulemus võiks näha välja midagi sellist:

image thumb8 Rakenduse ikoonide muutmine

Build actioni muutmine

Järgmine samm ongi kõige keerulisem, sest kui niimoodi faile lisada, siis paneb Expression Blend build actioni väärtuseks Resource, aga ikoonide puhul peab see olema Content. Lisaks ei ole võimalik kasutajaliideses seda kuidagi muuta. Lahenduseks on see, kui minna Windows Exporeriga projekti kausta ning avada suvalise tekstiredaktoriga ProjektiNimi.csproj fail. Minul asub see näiteks sellises kohas:

C:\Users\alasoo\Documents\Expression\Blend 3\Projects\SilverlightApplication1\SilverlightApplication1

Kui see fail on avatud, siis tuleb sealt üles otsida pildifailide kohta käivad read

<Resource Include="icons\128x128.png" />
<Resource Include="icons\16x16.png" />
<Resource Include="icons\32x32.png" />
<Resource Include="icons\48x48.png" />

ja neis sõna Resource asendada sõnaga Content:

<Content Include="icons\128x128.png" />
<Content Include="icons\16x16.png" />
<Content Include="icons\32x32.png" />
<Content Include="icons\48x48.png" />

Nüüd peaks olema kõik failid õigesti projekti lisatud.

Ikoonide asendamine

Ikoonide asendamiseks tuleb avada meile juba tuttav OutOfBrowserSettings.xml fail ja lisada sinna järgmised read:

<OutOfBrowserSettings.Icons>
    <Icon Size="16,16">icons/16x16.png</Icon>
    <Icon Size="32,32">icons/32x32.png</Icon>
    <Icon Size="48,48">icons/48x48.png</Icon>
    <Icon Size="128,128">icons/128x128.png</Icon>
</OutOfBrowserSettings.Icons>

Kui nüüd järgmine kord rakendust installeerima hakata, siis on ikoon juba muutunud.

image thumb9 Rakenduse ikoonide muutmine

Brauserivälise rakenduse loomine

Üks Silverlight 3-e uusi omadusi on see, et nüüd on võimalik luua ka selliseid rakendusi, mis töötavad brauserist väljaspool.  Väga kasulik on see näiteks selliste programmide puhul, mis töötamiseks tingimata internetiühendust ei vaja, nagu näiteks meie Home Reading Helper sõnaraamaturakendus.

Alustamine

Esimene samm on Expression Blend 3-s väga lihtne. Tuleb lihtsalt avada oma projekt ja valida ülevalt menüüst Project > Silverlight Project Preferences > Enable Application Outside Browser.

image thumb Brauserivälise rakenduse loomine

Kui nüüd Run Project teha, siis on peale rakenduse laadimist võimalik sellel parema klahviga vajutada ja see oma arvutisse paigaldada.

image thumb1 Brauserivälise rakenduse loomine

Seadistamine

Kui nüüd aga rakendus käima panna, siis võib märgata, et akna suurus on vale ja nimi ei ole ka päris selline nagu ta olla võiks.

image thumb2 Brauserivälise rakenduse loomine

Nende vigade parandamiseks tuleb muuta OutOfBrowserSettings.xml faili, mis asub Properties kaustas.

image thumb3 Brauserivälise rakenduse loomine

Selle sisu näeb tavaliselt välja umbes järgmine:

<?xml version="1.0" encoding="utf-8" ?>
<OutOfBrowserSettings ShortName="SilverlightApplication1" EnableGPUAcceleration="True">
    <OutOfBrowserSettings.Blurb>
        A short description of the application.
    </OutOfBrowserSettings.Blurb>
    <OutOfBrowserSettings.WindowSettings>
        <WindowSettings Height="600" Width="800" Title="SilverlightApplication1" />
    </OutOfBrowserSettings.WindowSettings>
</OutOfBrowserSettings>

Meile piisab sellest, kui muuta natuke 7. rida ja kirjutada sinna näiteks:


<WindowSettings Height="480" Width="640" Title="Home Reading Helper" />

Lõpptulemus on juba palju ilusam.

image thumb4 Brauserivälise rakenduse loomine

Ongi valmis!

Brauserivälised rakendused töötavat nii Windowsi kui ka Maciga (kuigi esmapilgul natuke aeglasemalt). Kuna Moonlight veel Silverlight 3-e ei toeta, siis selle operatsioonsüsteemi kasutajad on hetkel natuke kõrvale jäetud.

Minu esimene Silverlight rakendus

Nagu postituse ülemisest äärest näha on, siis ei ole ma Jaana, vaid olen hoopis Kaur.  Viimasel ajal olen ma põhiliselt kirjutanud MUG.ee blogisse.  Nädal aega tagasi hakkasin ma ilma igasuguse varasema kogemuseta Jaana abiga ehitama oma esimest Silverlight rakendust. Nüüd, kui programm peaaegu valmis on, mõtlesin õpitust ka siin blogis natuke kirjutada.

Millega on tegu?

Umbes aasta tagasi võtsin ma ülikoolis saksa keelt ning selle aine raames oli meil vaja üsna palju lugeda ja tõlkida. Kuna ma aga ei viitsinud uusi sõnu käsitsi välja kirjutada, siis mõtlesin, et võiks olla selline sõnaraamatu rakendus, kus oleks võimalik ühe hiireklikiga otsitud sõnu salvestada. Selle tulemusena sündis üks hästi kole PHP-rakendus mis parsis BEOLINGUS-e veebisõnastikku.

Kuna ma ei olnud juba algusest saati sellega rahul ning mingil hetkel läks see paratamatult katki ka (BEOLINGUS muutis oma veebilehe struktuuri),  siis otsustasin lõpuks asja kätte võtta.

hrh thumb Minu esimene Silverlight rakendus

Home Reading Helper on lihtne sõnaraamat, kust saab sõnu otsida ja neil klikkides huvitavaid sõnu välja valida. Töö lõpetades saab kõik välja valitud sõnad tekstifailina kettale salvestada. Keeltest on hetkel toetatud eesti-inglise-eesti (eki.ee) ja saksa-inglise-saksa (freedict.de).

Kuidas tehtud?

Lähipäeval kirjutan ma kõigist olulisematest ja huvitavamatest sammudest eraldi postitused ja lisan viited neile ka siia. Sõnade otsimine on realiseeritud ühe varasema Jaana postituse põhjal.