sobota, 5. november 2011

Avtomatizacija

Še ne tako dolgo nazaj sem pisal o Chromu, zaznamkih, aplikacijah oz. o hibridu. V zadnji različici (v15) so odstranili zavihek z zaznamki a še vedno lahko potegnemo zaznamek med aplikacije iz vrstice z zaznamki. A situacija ni idealna - ikona je majhna (favicon) ostalo je belina in naziv ni ustrezen, običajno je kar celoten naslov.
Problem lahko rešimo z izdelavo hibrida ampak to ni preveč praktično. Potrebno je poznati postopek, sintakso in semantiko manifesta. Poleg tega pa je potrebno še ročno zmanjšati sliko. Takšen proces kar kriči po avtomatizaciji.
Izdelal sem preprosto namizno WPF aplikacijo po vzorcu MVVM z uporabo vmesnika ICommand. Takšen način popolnoma loči predstavitveni nivo od poslovne logike. V datoteki za grafičnim vmesnikom se nahajajo samo inicializacije pa še to ni potrebno, če imajo konstruktorje brez parametrov. Aplikacija pa je zlepljena z Ninject-om (Dependency injection framework).

Vmesnik in koda zadaj.
Aplikacija najprej prebere datoteko z zaznamki, ki se skriva v mapi kjer je nameščen Google Chrome. Zaznamki so zapisani v JSON obliki in jih je potrebno deserializirati v objektni model. Model si lahko generiramo s pomočjo pretvornika json2csharp. Dobljeni model lahko potem optimiziramo in pobrišemo polja, ki nas ne zanimajo. Tako dobimo enostavnejši podatkovni model.

Branje zaznamkov.
Za pretvorbo lahko izberemo samo en zaznamek naenkrat. V nadaljevanju poljubno dopolnimo zaznamek in izberemo sliko - slika je obvezna!

Urejanje in izbira slike.
Aplikacija nam sliko pretvori v ikono velikosti 128x128px in potem generira datoteko z "aplikacijo".

Namestitev "aplikacije".
Na namizju se ustvari mapa v kateri je *.crx in *.pem. V primeru, da se nam ni prikazalo potrditveno okno za namestitev še enkrat potrdimo naslov v naslovni vrstici (izberemo in pritisnemo ENTER).  Obnašanje se razlikuje glede na kanal (Stable, Beta, Dev, Canary). Možno je, da deluje tudi preprosto vlečenje datoteke *.crx v okno brskalnika.

Končni rezultat.
Spletne strani postajajo aplikacije, meja se briše. Zato naj bodo lepo pomešane med seboj. Pogrešam pa možnost izdelave map in enostavnega urejanja. V tem primeru bi lahko vrstico z zaznamki kar umaknil.