Silverlight – Windows vs Mac

Silverlight on 2.5 aasta jooksul jõundud oma 4. versioonini, algusest peale on SL olnud cross-platform ja töötanud identselt nii Windowsil kui ka Macil. Vaatamata sellele kohtun ma vahel inimestega, kes on üllatunud, et SL Macil üldse töötab või siis, et SL Macil ja Windowsil on identsed.

Päris identsed ei ole, aga dokument, mis kirjeldab neid erinevusi on ikke imelühike. Seal ei ole asju stiilis “seda Macis teha ei saa” vaid pigem sellised tähelepanekud erinevuste kohta.

Näiteks, et Maci rahval ei pruugi olla hiirel füüsilist nuppu paremkliki jaoks ja siis Silverlight tõstatab ikka MuseRightButtonUp sündmuse, kui Maci-inimene teeb kombinatsiooni ctrl + klikk.

Uurige täpsemalt siit:http://msdn.microsoft.com/en-us/library/cc838247%28VS.95%29.aspx

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.

Silverlight arendamine Macis – viskame Windowsi minema?

Pean tunnistama, et ma vaikselt ikka lootsin, et Silverlight arendus Macis on sujuv ja lihtne ja tore aga tegelikult on veel sellise kogemuseni pikk maa minna.

Kasutajaliides

Üks asi, mis on Eclipses täiesti teistmoodi on see, et disaini eelvaade renderdab koguaeg reaalset rakendust, ehk siis ühe minu näidisrakenduse puhul mängis mediaelement, muudkui mängis ja mängis…

ui png 300x191 Silverlight arendamine Macis   viskame Windowsi minema?

Intellisense ja Eclipse

Intellisensi mõju produktiivsusele on tõenäoliselt juba keegi teaduslikult tõestanud, enda kogemusest tean, et intellisense on äärmiselt oluline ka alles uut tehnoloogiat õppides (nagu mina aasta tagasi 5. märtsil alustasin SL2B1-ga).

Intellisense Eclipses töötab veidi teisiti, kui Visual Studios. VS-is ma kirjutaksin <Bu… ja siis juba ootaksin, et ta pakuks mulle Button ja ma saaksin lüüa TAB-i. Kui Eclipse4Sl-is nii kirjutada, siis ma ei saa midagi vastuseks. Naeruväärne, Button on ju kõige lihtsam control üldse!

picture 2 300x118 Silverlight arendamine Macis   viskame Windowsi minema?

Mässasin mõnda aega ja lõpuks jõudsin asja juureni: <Button automaatse lõpetamise saab XAMLis siis, kui mõni Button on juba selles XAML dokumendis olemas. ja siis ta tunneb ka ilusti ära erinevad atribuudid.

picture 3 300x177 Silverlight arendamine Macis   viskame Windowsi minema?

Aga kui ma tahan lihtsalt kirjutada kaks esimest tähte mõne pikema elemendi nimest ja siis automaatset lõpetamist saada? Näiteks DoubleAnimationUsingKeyFrames?

Siis nähtavasti ei tohi alustada sümboliga < vaid lihtsalt kirjutada Do… ilma nurksulgudeta ja siis leiab kõik erinevad võimalused üles.

picture 4 300x239 Silverlight arendamine Macis   viskame Windowsi minema?

Ma olen harjumuste ohver ja minu jaoks oli suhteliselt ebamugav kasutajakogemus aga ma mõtlen, et paljud, kes Maci peal arendust teevad, kasutavad niikuinii selleks Eclipse-i ja tõenäoliselt on see selline kasutajakogemus Eclipse jaoks tavaline.

Kohtuotsus: XAMLi kirjutamine on Eclipses OK.

Kood?

Siin peitub põhjus, miks tõenäoliselt keegi Windowsist ei loobu – erinevalt XAMList C# intellisense puudub aga ausõna ma ei tea kõiki oma muutujate nimesid peast – okei ma võiksin õppida aga kaugeltki ei tea ma peast kõikide erinevate sündmustekuularite nimesid ja täpselt, milliseid argumente nad tahavad.

picture 1 300x225 Silverlight arendamine Macis   viskame Windowsi minema?

Kohtuotsus: Veidi Silverlightiga mängimiseks ok ja väga lahe, et Microsoft sellega tegeleb, aga enne sellest asjast asja ei saa, kui korralik C# intellisense ka on. Siis võibolla isegi kasutaks, sest ma väga drag-and-drop kasutajaliidese tegemisest ei hooli.