Přejít k navigační liště

Zdroják » Různé » Flex kontra Silverlight aneb když dva dělají totéž…

Flex kontra Silverlight aneb když dva dělají totéž…

Články Různé

Když dva dělají totéž, není to vždy totéž. Rich Internet application – Flex i Silverlight se snaží o něco podobného, ale každý je jiný. Kterou technologii si vybrat? Která vám víc sedne? Na to se pokusíme dnes odpovědět. A jak jinak, než subjektivně.

Dnešní článek patří do rubriky Subjektivně. Jejím cílem je zejména poskytovat prostor pro názory a pohledy na aktuální dění v oblasti webových technologií i na jejich vývoj do budoucna. Jedná se o osobní názory, které se nemusí vždy shodovat s názory redakce. Pokud máte co říct, pojďte k nám psát Subjektivně.

Hledání rozdílu

O Flexu i mladším Silverlightu se poslední dobou mluví víc než dost. Oba se hodí, pokud vytváříte aplikaci, která má fungovat na webu, a z nějakých důvodů se chcete vyhnout klasickým webovým technologiím (HTML+CSS+JS). Jenže, který z nich si vybrat, na to už tak snadno odpověď nenajdete.

Přesvědčil jsem se o tom i nedávno, když jsem se účastnil akce, která měla mj. obě technologie představit a srovnat. Ovšem pokud jsme se něco z celé akce nedozvěděli, bylo to právě ono srovnání obou technologií. Možná to bude tím, že jsou komplexní a málokdo je obě zná do hloubky, aby je mohl zhodnotit, nebo prostě proto, že jsou to natolik jiné technologie, že se těžko srovnávají.

Já využiji toho, že jsem se se základy obou z nich seznámil a pokusím se o jakési mělké srovnání určené hlavně pro ty, kdo ani o jedné z těchto technologií prakticky nic nevědí. Tenhle článek by se asi správně měl jmenovat Jak Flex a Silverlight vidí Martin Hassman, nic víc v něm nehledejte.

Každý pes jiná ves

Hned na začátku je nutné poznamenat, že ačkoliv mají obě technologie plnit podobný účel, jsou naprosto jiné. To je způsobeno mj. zázemím, ve kterém vznikají, a následně to předurčuje jejích primární cílové skupiny, čili rozhodujete o tom, která z nich se vám nejspíš bude víc líbit, a kterou se snáze naučíte. Obě technologie se vyvíjí a předhání v tom, co která toho umí (Flex tady má díky delší historii zatím náskok, ale kdo ví, jak dlouho mu vydrží), ale jejich základní paradigmata zůstanou víceméně stejná. A těm se bude celý článek věnovat.

Flex je když…

Pokud jste zkušený webový vývojář a úspěšně křižujete mezi pojmy JavaScript, HTML, CSS nebo AJAX, vyznáte se v nich a baví vás, pak vám Flex dobře sedne. Flex na první pohled totiž vypadá a funguje skoro stejně jako klasické webové technologie.

Flex je, když vezmete webové technologie, trochu je očešete, dáte jim řád a přihodíte něco málo z principů desktopového vývoje.

Ačkoliv je Flex postavený na Flashi (a jak Flash, tak samotný vývoj pro něj se vám jako klasickému vývojáři pravděpodobně příliš nelíbí), má Flex svou podobou mnohem blíž webovým technologiím než Flashi. Alespoň po té stránce, se kterou budete denně přicházet do styku. Je samozřejmě možné, že se ponoříte hlouběji (např. pokud budete chtít vytvářet vlastní skin všech ovládacích prvků), a pak se samotnému Flashi nevyhnete, ovšem při běžném programování ve Flexu o něm nemusíte mít ani tušení.

Co mají Flex a webové technologie společného?

Celkem hodně, počítejte se mnou:

  1. Skriptovací jazyk. JavaScript i současný ActionScript jsou postavené na stejném standardu (ECMAScriptu) a je to na nich znát. Dokonce natolik, že když umíte JavaScript, můžete začít v ActionScriptu téměř rovnou začít programovat. Ačkoliv na první pohled najdete mezi oběma jazyky řadu rozdílů (ActionScript je typový, má odlišný objektový model, neobsahuje eval atd.), po hodině zkoumání zjistíte, že vám tyto rozdíly nevadí (někdy se vám možná i zalíbí) a jste schopni v novém jazyku programovat bez problémů (podrobnější sepsání rozdílů mezi oběma jazyky alias třicetiminutový rychlokurz ActionScriptu pro javascriptové vývojáře necháme na případný zvláštní článek).
  2. Kaskádové styly. Vzhled aplikace se ve Flexu definuje pomocí kaskádových stylů (vlastní layout už ne, ten najdete přímo v MXML, ale to není teď podstatné). On je to tedy malý podvod. Ačkoliv tomu Adobe říká CSS, o žádné CSS se nejedná (tedy nejedná se o implementaci žádné CSS specifikace), ovšem je to technologie podobná CSS jako vejce vejci – základní věci, které z CSS znáte, zde fungovat budou a na to, že Flex nezná pokročilejší selektory a má řadu svých CSS vlastností, si velmi rychle zvyknete.
  3. MXML je (se zavřenýma očima) skoro takové úzce zaměřené XHTML na aplikační prvky. MXML (Magic eXtensible Markup Language) je dialekt XML, kterým popisujete dialogy vaší aplikace (jaká bude mít tlačítka atd.). Ve srovnání s předchozími dvěma technologiemi, je tahle ze všech nejodlišnější. Na první pohled zcela odlišná od HTML (zejména tím, jaké používá značky), ale jakmile si v MXML zkusíte něco vytvořit, zjistíte, že onen „feel“ technologie a uvažování jsou velmi podobné. A ostatně i práce s MXML z ActionScriptu se velmi podobá práci s DOM, kterou znáte z (X)HTML. Takže ačkoliv na první pohled mezi MXML a XHTML moc podob nenajdete (společné mají co jsem našel snad jen tři značky: button, form a canvas), přesto zjistíte, že se vám s oběma pracuje velmi podobně a základní paradigmata si můžete přenést od jedné technologie ke druhé. To, že v HTML používáte k pozicování divy+CSS a v MXML zase VBoxy, HBoxy nebo absolutní pozicování, je detail, na který si rychle zvyknete.

Zmíněná podobnost mezi technologiemi, na kterých stojí Flex, a webových technologií způsobí, že klasický webový vývojář se ve Flexu bude cítit jako doma. V zásadě není důvodu, aby po několika dnech zkoumání nebyl schopen vytvářet plnohodnotné Flexové aplikace.

S Flexem ovšem přichází jeden zásadní rozdíl, na který si budete muset zvyknout. Zatímco webové aplikace jste mohli dělat třeba i na koleně (resp. v Notepadu), s Flexem na to zapomeňte. Ne, že by to do jisté míry nešlo (zkusil jsem to, jde to!), ale zjistíte, že bez pomocných nástrojů to jaksi není ono. Stačí, když si srovnáte třeba vlastnosti CSS a onoho „Flex CSS“, nebo si prohlédnete všechny možné atributy v MXML, které budete používat.

Zjistíte, že to, co se u HTML snadno vešlo do jedné hlavy, to se u Flexu špatně pamatuje. Je toho prostě víc. Bez pořádného IDE proto na vývoj ve Flexu raději zapomeňte. IDE s názvem Flex Builder k dispozici nabízí přímo Adobe, ale jedná se o placený produkt. Obchodní model je zde jasný. Základní technologie je zdarma, platíte za nástroje. Ono se to ve výsledku třeba nakonec i vyplatí, ale pro klasického webového vývojáře je platit za nástroj umožňující mu psát kód každopádně nezvyk.

Silverlight je když…

Silverlight k problému přistupuje z opačné stránky. Pokud jste onen webový vývojář, kterému se Flex tolik líbil, o to méně se vám bude líbit Silverlight. Pokud to shrneme, tak programovací jazyk pro vás bude nejspíš naprosto cizí, podobně tak šablonovací mechanismus pro definování vzhledu a nakonec budete i se XAML (dialekt XML definující formuláře aplikace) poměrně zápasit.

Zcela jinak to ovšem bude vidět desktopový vývojář, ten totiž na výše zmiňovaných výhodách Flexu nejspíš nenajde nic moc zajímavého, zato u Silverlightu bude možná v sedmém nebi.

Silverlight je, když vezmete technologie desktopového vývoje, malinko je přiohnete, aby šly „nacpat“ do webového prohlížeče a pak je do toho prohlížeče taky skutečně nacpete.

Pozitiva Silverlightu pro desktopové vývojáře

  1. Programovací jazyk. Ostřílený vývojář bude mít pravděpodobně svůj oblíbený programovací jazyk, a proč by jej měl opouštět, když chce vyvíjet aplikaci pro web? V Silverlightu si může z řady jazyků vybrat, případně je i v jedné aplikaci kombinovat.
  2. Knihovny. V Silverlightu lze používat stejné .NET knihovny jako na desktopu (tedy pokud nevyužívají zrovna „něco“, co v prostředí prohlížeče nespustíte). Takových knihoven bude existovat mnohem víc, než jen pro specializované prostředí v prohlížeči, které má Flex (i když u něj se to může trochu zlepšovat s příchodem technologie AIR, což je stručně řečeno Flex pro desktop).
  3. XAML (eXtensible Application Markup Language). Stejný dialekt XML používají desktopové aplikace pro Windows, tak proč se učit nový? V tom je další výhoda Silverlightu.

Co se týče IDE, platí zde totéž, co pro Flex. Bez dobrého IDE budete aplikace pro Silverlight tvořit jen těžko. U Silverlightu to ovšem vůbec nevadí, protože desktopoví vývojáři jsou už dávno na různá IDE zvyklí. Takže když při tvorbě aplikací pro Silverlight můžou zůstat u Visual Studia, je to pro ně další plus.

Pozn.:Omlouvám se, že jsem výše zjednodušeně používal termín „desktopový vývojář“. Zmíněné důvody totiž platí hlavně pro vývojáře v .NETu (což bude dnes celá řada windowsích vývojářů), už slaběji platí pro jiné vývojáře (např. javisty, C++…), i když i pro ně nebudou tyto důvody bezvýznamné. Dokonce i pro webové vývojáře v ASP.NET zůstává většina důvodů platná.

Čtěte k tématu

Pokud byste se chtěli o obou technologiích dozvědět víc, přečtěte si naše články o Flexu:

a Silverlightu:

Závěr

Mohli bychom najít řadu důvodů, proč použít raději Flex nebo Silverlight (např. Flex už dnes umí řadu z toho to, co přinese teprve Silverlight ve verzi 3), většina z těchto důvodů se bude měnit s časem, ovšem paradigmata zmíněná v článku zůstanou nejspíš stejná. A ačkoliv nejsou nepřekonatelná (webový vývojář je schopen se naučit technologie Silverlightu a desktopový vývojář se zase bez problému naučí Flex), jedná se o jasné vstupní výhody pro konkrétní cílové skupiny, které si s sebou obě technologie nesou.

Když už jsem Flex a Silverlight pěkně srovnal, měl bych možná říct, který z nich u mě vede. Odpověď zni, že zatím ani jeden. Což možná vychází z toho, že patřím do obou zmíněných kategorií (jak webový, tak desktopový vývojář). Navíc si myslím, že klasické webové technologie nám stále mají co říct, a proto se při tvorbě RIA nikdy nebudu rozhodovat jen mezi Flexem a Silverlightem, ale vždy mezi webovými technologiemi a Flexem a Silverlightem.

Líbí se vám víc Silverlight nebo Flex?

Komentáře

Subscribe
Upozornit na
guest
56 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Langi

Není v Závěru tahle věta "webový vývojář je schopen se naučit technologie Silverlightu a desktopový vývojář se zase bez problému naučí Flex)" obráceně? Nebo jsem už já obráceně?

Pavel

Vážení, máte někdo subjektivní názor na Silverlight vs. JavaFX nebo Flex vs. JavaFX? Na první dojem mně osobně JFX přijde jako docela zajímavá reinkarnace (nejen) appletů.

Borek Bernard

Velka vyhoda Javovskych appletu je moznost bezet s vyssimi pravomocemi (pokud to uzivatel povoli) – funguji tak treba veci jako vlozeni obrazku ze schranky Windows do Javovskeho textoveho editoru a podobne. Efektni je taky pretazeni aplikace z prohlizece na desktop a tim vytvoreni aplikace bezici mimo browser. Ale treba mne osobne se moc nelibi vyvojovy model a i to je mozna jeden z duvodu, proc Java(Fx) na webu moc popularni neni.

Solvina

Dobry den,
pekny clanek, diky.

Pan Hassman se twiteru zminuje, ze je k dispozici beta flex builderu 4, lec nedari se mi ji najit ani kdyz UTFG. Nevite mahodou, kde, jestli teda, se da sehnat?

Solvina

Ok, tak sem nic neprehlidl. Musime si vazit malych vitezstvi.

(Jj, po MAXu sem vlastne googloval na tema: "Adobe MAX ISO rapidshare" :-).)

Borek Bernard

Beta ma vyjit v cervnu, ta zminovana verze byla velmi, VELMI pre-release. Pokud jde pouze o funkcnost Flex frameworku jako takoveho, lze ho stahnout z webu Adobe a integrovat do soucasneho Flex Builderu 3.

Solvina

Yep, slo mi prave o ten Builder. Veci jako refaktoring, drobny neprijemnosti; posledni mesic mi nefuguje profiler, tak sem si myslel, ze by to vsechno mohla vyresit nova verze FB.

Plus, samozrejme, delat analyzy a busit kod.

David

Já osobně používám technologii Silverlight. Co se týče toho IDE, pak Visual Studio je v Express Edici zdarma a v rámci programů MSDN AA, DreamSPark jsou vyšší edice pro akademické účely také zdarma. V tom vidím také velkou výhodu, jelikož nejsem nucen platit za IDE jako v případě Flexe. Další výhodou je, že pokud jsem vývojářem WPF, pak naučení Silverlightu nebude žádný problém. Navíc, od verze SL 3.0 je možné nainstalovat SL aplikaci i na desktop, přičemž není za potřebí žádné jiné běhové prostředí. Dále se mi libí podpora Pixel Shaderů (vlastní pomocí jazyka HLSL) nebo animace založené na časové ose. Samozřejmostí je oddělení aplikačního kódu (Code behind) od designu (XAML). Jistě, každý si najde tu svojí technologii, protože každá nabízí něco.

pas

Doplnil bych, že Flex SDK je open source. Nepotřebujete IDE od Adobe (resp. nepotřebujete žádné IDE) a existují alternativní produkty (Flash Develop, FDT, …). Co se týče těch dalších výhod, které zmiňujete (desktop aplikace, pixel shaders, animace na časové ose), nemůžete se zlobit, když se pousměju, jelikož Microsoft v posledních dvou verzích Silverlightu postupoval tak, že vzal seznam novinek posledních verzí Flash Playeru a naimplementoval je prostě také. :) Nicméně pořád mu jich spousta zbývá k implementaci (a ty stávající k dotažení), hlavně práce s mikrofonem a webkamerou a další.

pas

Však ano, já jsem za Silverlight rád, přestože se zrovna teď živím Flashem. Konkurence tady funguje perfektně, přímo učebnicově, a vývojáři i uživatelé z toho profitují. To mi na tom celém tématu přijde nejzajímavější – konkurence tady zahrnuje i samotné definování technologie, ne jen implementaci, což je z pohledu teoretika hrozný hřích, ale na druhou stranu to má výsledky. :)

Petr

Na Silverlight taky nepotřebujete IDE.

Mirek.Charvat

"… (a jak Flash, tak samotný vývoj pro něj se vám jako klasickému vývojáři pravděpodobně příliš nelíbí) … "

Zajímalo by mne důvody nebo východiska, proč si to myslíte. Přdesílám, že nechci vyvolat flame ani plameně reagovat … prostě mne to zajímá. Díky.

Mirek.Charvat

Abych řekl pravdu, mám dojem, že ten axióm vznikl na základě naznalosti Flashe resp. předsudků vůči němu. Rád si počkám na možné budoucí obšírné rozvedení tohoto tématu, ale přesto, mohu požádat alespoň o jeden dva důvody (nemusí to být zrovna exaktní) … jde mi jen o to jestli je můj dojem správný, nebo jsem mimo. :o)

pas

Také by mě to zajímalo. Pan Hassmann říká axiom, já říkám předsudek. :) Já jsem se dřív zabýval desktopovým programováním, dnes programuju pro Flash platformu a nevidím tam žádný filozofický rozdíl… používají se stejné design patterny, stejné dovednosti. Jistě, myšlenka CSS (lépe řečeno myšlenka kaskádování a dědičnosti properties) a MXML jsou inspirované webem, ale to je jen třešnička na dortě, kterou ostatně může vývojář klidně obejít.

dc

Ja si myslim ze ten axiom vznikol z toho ze flex vychadza a pouziva flash ktory bol a je primarne skor urceny pre grafikou a designerov, a vlastne bez Flexoveho "frameworku" sa tam moc naprogramovat neda pokial clovek hlbsie nepozna flash. Na druhu stranu to je aj vyhoda ze ked sa nieco nebude dat spravit vo flexe je este moznost siahnut po klasickom flashi (flash cs3 atd.) a urobit to "manualne".

pas

No a to jsou právě ty mýty. :) I když musím říct, že do značné míry si za to může Adobe tím, že blbě pojmenovali své produkty.

Ve Flex Builderu (nebo pomocí free Flex SDK) se dají tvořit čistě flashové aplikace, aniž by člověk použil cokoliv z knihovny zvané Flex Framework. Čili programování pro Flash platformu vypadá úplně stejně jako programování tzv. flexové a byla by chyba, kdyby lidi nabyli dojmu, že udělat si třeba hru nebo nějakou animaci je nějaký opruz, protože se sestupuje na nějakou nižší úroveň oproti Flexu – nesestupuje.

pas

Jako by mě Adobe četlo. :)

Právě ohlásili, že nová verze Flex Builderu se bude jmenovat – logicky – Flash Builder.

http://www.webkitchen.be/2009/05/16/next-version-of-flex-builder-will-be-named-flash-builder-4/

Mirek.Charvat

Hm, … ve Flashi je stejne jako ve Flexu k dipozici ActionSCript 3.0 … takže se tam dá naprogramovat prakticky totéž. Můžete také pracovat se SWC komponentami, které mohou obsahovat jen kód a nic jiného. Můžete mít a používat SWF jen s kódem bez grafiky, takže stačí umět jen otevřít FLA dokument v editoru Flashe a v něm pak okno pro psaní kódu :o). Můžete zrovna tak naspat kód do AS souboru v čemkoli, co se na psaní kódu hodí a incudovat ho do FLA.

Vážně nevím, co by mohlo klasickým vyvojařům vadit, kromě případných omezení stran možností samotného AS3. Proto za tím cítím spíše předsudky, než racionální důvody. Když někde vládnou předsudky, je to vždycky škoda :o/

Martin Svárovský

Já si osobně myslím že ony nzory jsou dané historicky a pocházejí z doby kdy Flash měli v ruce spíš grafici než programátoři. Postupy používané při návrhu aplikací (interaktivních animací) byly logicky jiné než postupy používané "běžnými" vývojáři, pro které byl postup nepochopitelný. Jak říká Pavel – je to nyní nejspíš jen předsudek, znám lidi, kteří byli schopni přijít k Flashi AS3 od MS Visual Studia a během jednoho dne začít vyvíjet aplikace.

pas

Myslím, že ActionScript má jako jazyk výrazně blíže k Javě než k JavaScriptu (ale o tom můžeme vést debaty až u ohlášeného článku, který se bude ActionScriptem zabývat). Proto bych také nesouhlasil s tím, že Flash/Flex si oblíbí webový vývojář, zatímco SL desktopový vývojář. Spíše bych řekl, že Flex si oblíbí javař a SL logicky microsofťák. Vím to i z vlastní praxe a svědčí o tom mimo jiné i ocenění, která Flex sbírá v java světě.

pas

Jo, samozřejmě, měřit se to nedá, každý vycházíme z nějakých osobních zkušeností. Já jsem potkal několik javařů, kteří byli schopni začít psát v AS prakticky hned. A naopak existuje mnoho flashařů, kteří odmítají přejít z AS1/AS2 (což byly právě jazyky skoro totožné s JavaScriptem) na AS3, který se jim zdá úplně jiný. :)

pas

Já myslím, že ten příklon k Javě byl už v samotné ECMA specifikaci (od ní se AS3 údajně liší jen mikroskopicky) a všeobecně se předpokládalo, že tak bude vypadat i JavaScript (viz projekt Tamarin, kdy Adobe poskytlo VM Mozille, takže to vypadalo, že browser i Flash Player budou mít stejné jádro), z čehož nakonec sešlo… ale nejsem odborník na JS…

pas

Vážně "jen pár"? Pokud vím, tak Adobe se na ECMA-262 odkazovalo v dokumentaci AS3 a drželo se ho až do chvíle než ten standard odpískali… Ale jsem líný tu specifikaci studovat (a vy asi zase AS3 :)), takže rozhřešení asi nedostaneme.

pas

Díky. Projel jsem to a o některých konstrukcích jsem opravdu neměl tušení. Ale polovina jich určitě není (nehledě na to, že jsou to ty méně významné). Každopádně bych je v AS uvítal, i když už je to mrtvý standard.

pas

Ještě bych chtěl uvést na pravou míru větu o tom, že "při běžném programování ve Flexu o Flashi nemusíte mít ani tušení". Mohlo by to vytvářet dojem, že Flex je jakási vyšší vrstva vytvořená nad nějakou nižší vrstvou, ve smyslu jako je C++ nad assemblerem. Tak to ovšem není, Flex není nic jiného než knihovna actionscriptových tříd (plus jazyk MXML, což je ovšem jen jiný způsob zápisu ActionScriptu). Každý "flexový vývojář" se automaticky stává "flashovým vývojářem". Různé projekty se můžou lišit mírou využití knihovny zvané Flex.

none_

Tohle bych zase netvrdil. Ja mam za sebou jiz dve aplikace napsane pomoci Flex, ale ve Flashi nedokazu vytvorit ani pitomej reklamni banner. Pravdepodobne to bude tim, ze Flex mi umoznuje pracovat temer shodne jako programovat napr v Java a umet neco ve Flash jsem zatim nepotreboval. Spis bych to videl tak, ze proste jsou to dva ruzne pristupy ke tvorbe interaktivniho obsahu na webovych strankach postavene nad stejnou technologii. Ale rozhodne "flex vyvojar" != "flash vyvojar". mozna to plati pro dost lidi, co prejdou od Flash ke Flex, ale urcite to neplati pro lidi, co prejdou napr z Java ke Flex.

pas

Asi si nerozumíme. Když říkám "Flash vývojář", nemám na mysli člověka, který ovládá program Flash Professional – ten je samozřejmě hodně odlišný od všeho, na co je zvyklý klasický programátor. Pojmem "Flash vývojář" jsem měl na mysli vývojáře pro Flash Platformu. Ať už používá Flex Framework nebo ne. Článek podle mě budil dojem, že Flex je samostatná platforma postavená nad jinou platformou – Flashem. Tak to ale vůbec není, Flex je jen knihovna, nic víc. Každý flexový programátor je zcela určitě zároveň flashovým programátorem, protože (ať si to uvědomuje nebo ne) pracuje i s objekty, které jsou definované na flashové úrovni (např. celý událostní mechanismus). Abych vymyslel jiné přirovnání – ze světa Javy: Programátor pracující s J2ME, je "J2ME programátor" a samozřejmě zároveň "java programátor". Ostatně, Adobe mi zrovna včera dalo za pravdu, když ohlásilo přejmenování Flex Builderu na Flash Builder, což je správnější. Ve Flash Builderu totiž můžete udělat i ten reklamní banner (jistě, na pomoc byste si měl vzít Flash Professional, čili ten historicky nejstarší program, který se vývojem posunul do pozice "resource editoru").

Anton

Docela rád bych vyvrátil marketingové mýty ohledně Silverlightu.
1. Knihovny – není pravda, že knihovny z .Net se dají použít pro Silvelight aplikaci. Nedají. Musíte je speciálně pro Silverlight zkompilovat a pokud používají něco mimo ostrouhaný .Net v Silverlight, tak máte smůlu. Nejtypičtějším příkladem budiž IoC Container.

2. IDE – VisualStudio sice podporuje syntakticky C#, ale podpora Silverlight je zoufalá. Designer není schopen vykreslit něco více, než základní formulář (page). Na věci jako je FireBug zapomeňte. Debugování XAML je prostě peklo.

3. Nedodělaný – spousta API je sice nadefinovaná, ale nejsou implementovaná, což zjistíte až v okamžiku, kdy se je pokusíte použít. Tohle je trošku smutné,

4. Databinding – prakticky nefunguje.

5. Styling – nefunguje.

Zájemcům doporučuji počkat až na verzi Silverlight 3 a doufat, že se to MS podaří dodělat do použitelného stavu.

dc

tak nejak to vystihuje co som chcel tiez napisat.Zo silverlightu mam skor pocit ze je to len konkurencny produkt nez nieco co ma aj nejaku myslienku/filozofiu za ktorou si ide.Skor MS si vsimol novy trh tak si chce z neho utrhnut. Nevravim ze SL sa nemoze vypracovat na schopnu a fungujucu technologiu len to bude az pri nejakej xtej verzii.Ako keby sa opakovala situacia pri .Nete vs Java.

David

Kdyby se opakovala situace .NET vs JAVA byl bych, alespoň v mém případě, rádv :). S Javou jsem strávil tři roky než jsem přešel na .NET. Dnes raději dělám s .NETem ..

David

Nevím, kde jste četl / slyšel, že v Silverlightu se dají použít všechny .NET knihovny. Ono nacpat celý .NET Framework do 4MB pluginu nejde. Silverlight používá jen základní sadu knihoven .NET frameworku.
Na design aplikace jsou tu speciální nástroje jako je Expression Blend, Expression Design. Taktéž pro akademické účely zdarma.
Databinding – chybí, ve trojce se nachází pouze Element To Element Binding.
Styling – co je tím myšleno?

Myslím si, že Microsoft nikdy takové marketingové "mýty" oficiálně nevypustil.
Dále je nutné si uvědomit, že SL je technologie cca 3 roky stará a je nutné se dívat na pokrok, který dosáhla. SL 1 (pouze javascript), SL 2 (podpora .NET jazyků, dynamických jazyků), SL 3 (OutOfBrowser podpora, Writeable Bitmap, Pixel Shader atd.) Nabizí velice dobrou alternativu k Adobe produktům.
A jsem rád, že na vývoj RIA existuje více variant.

David

Oprava : chybí? Ve trojce se nachází EtE binding navíc od SL 2.

Anton

Expression Bledn je to samé v tmavě modré (teda spíš šedo-hnědé). Až budete dělat reálnou aplikaci a budete honit, co máte ve stylech špatně, tak vám Expression… nepomůže.

Styling – témata, styly.

Tyto mýty MS vypouští dnes a denně. Jsme rád za alternativu k Fleshi, ale je potřeba se na to koukat bez růžových brýlí.

Anonymní

Z toho lze soudit, že moc v Expression Blendu neděláte.

Petr

Já Experession Blend používám, a kromě mírné pomalosti je to slušný nástroj.

jiravanet

Ahoj,
docela rád bych vyvrátil některá nedorozumění, která zde byla prezentována, nebo je spíše jen upřesnil.
ad 1. ano, s tím se dá souhlasit, jen velmi zřídka vezmu to, co mám na desktopu a rovnou to "plácnu" do silverlight projektu. Co většinou takto převzít lze jsou DTO objekty.
ad 2. od toho je zde Blend pro designéry. Teď nejspíš někdo namítne, že je to podvolování se marketingu MS, ale vývojář prostě není grafik. A osobně raději něco napíšu v XAML než budu "šoupat" posuvníky -> ale nebude to mít ten efekt, jako od grafika, který to v Blendu vymazlí.
ad 3. byl by nějaký příklad?
ad 4. tak o tom nevím. Ve verzi 2.0 ještě nefunguje element binding, který přijde s verzí 3.0. Binding na zdroje je však funkční a pokud by binding nefungoval, jen stěží by se dal použít vzor M-V-VM, který se hojně používá.
ad 5. nebyl by opět příklad, jinak si nedovedu představit tu kupu ostylovaných aplikací.
— J.

jiravanet

Jen ještě doplním narážku na IoC. Nevidím důvod, proč by tento princip nebyl v Silverlight možný. Navíc IoC != dependency injection container, asi došlo ke zmatení pojmů. Ale pro Silverlight můžeš použít třeba Unity jakožto DI Container, což je projekt p&p teamu, a tak využít principu IoC.
— J.

Jan Jelínek

Jen bych si malinkato dovolil nesouhlasit s některými body:

1- knihovny mimo SL můžete použít vesele, jedinou nepříjemností zůstává, že si je pak app nese sebou.

2- pravda je že by to mohlo být lepší (databinding, styly, šablony), ale všichni doufají že VS2010 bude lepší

3- příklad?

4- Databinding je naprosto fantastický nástroj, který na webové platformě dosud chyběl. Nefunguje? Nebo neumím používat? A v SL3 bude ještě další vylepšení binding component to component

5- to samé co DataBinding

pas

> Databinding je naprosto fantastický nástroj, který na webové platformě dosud chyběl.

Ale jděte… my flashaři z data bindingu už pár let učůráváme. Ale ze srdce vám přejeme, abyste si to tam u vás taky užívali. :)

Anton

Zkuste si vzít nějakou .Net dll (ne-silverlight) a referencnout si ji do Silverlight projektu. Uvidíte.

Anonymní

Myslím si, že jste bohužel moc nepochopil filozofii Silverlightu.

treto

Že nejde vyvíjet ve free režimu FLEX aplikace? A co takhle přímo v Eclipse? (nemyslím tím Flex Builder na Eclipse založený)

pas

Pokud vím, tak ne. Debugger nebo profiler ve Flex Builderu fungují skvěle, horší je to paradoxně s editorem kódu, takže konkurence se zaměřuje hlavně na to. O komplexní alternativě k Flex Builderu nevím, asi ani není poptávka, protože FB je levný. Spíše čekám rozvíjející se trh s RIA komponentami.

treto

Něco málo (zatím dost málo) existuje a je použitelné – třeba LogWatcher.

eniac

Je celkem zajímavé číst o mrtvých technologiích, co umřely krátce po svém vzniku. Silverlight je v tomhle ohledu vyloženě potrat, flex zase něco jako uhnívající zombie. Vzhledem k tomu, že se soudruzi probrali z letargie a začali nám servírovat podobné možnosti bez nutnosti vyžadovat po uživatelích instalaci zabugovaných pluginů, je to jenom dobře.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.