Klávesové zkratky na tomto webu - rozšířené Na obsah stránky

K WebExpu ještě jednou a pořádně

16.19 - 25. října 2008 | Webdesign

Už je to týden, co nám skončila přednáška o ASP.NET 3.5 / futures na konferenci WebExpo 2008. Rád bych se k této konferenci ještě ohlédl.

Moje prezentace

Když mě začátkem léta oslovil Vašek Stoupa, jestli nechci přednášet o ASP.NET MVC na WebExpu, měl jsem zprvu strach. Nikdy jsem veřejně nepřednášel a z malých slideshow, které jsem dělal pro kolegy nebo ve škole, jsem si byl jistý, že mé prezentační schopnosti nejsou skoro žádné. Ale pak jsem si řekl, že zkusit bych to mohl, přinejmenším je to dobrá zkušenost a raději jsem požádal Borka, aby se ke mně přidal. Proč? Protože už jsem ho viděl přednášet na WebCampu a bylo to dobré.

Takže jsme se domluvili, že přednáška bude mít trochu širší záběr než jen ASP.NET MVC, které v té době bylo pouze v ukázkových verzích. V průběhu září jsme vymysleli nějakou osnovu, Borek založil SVN repository a začali jsme připravovat prezentaci.

Nejprve jsem udělal ukázku na využití ADO.NET Data Services ve spolupráci s ASP.NET AJAX (tu najdete přibalenou). Krom toho, že ukazuje základy konzumace RESTových Data Services, tak je i hezkou ukázkou toho, jak takové služby stavět nejen nad Entity Frameworkem, ale i nad ActiveRecord/NHi­bernate. No, ukázka není úplně dokončená, protože jsem se jí přestal věnovat a už jsem nenašel chuť jí dokončit, ale základní koncepce je snad pochopitelná – snažil jsem se vše okomentovat.

Osobně nemám rád psaní zbytečného kódu. Nejsem zastáncem zbytečných ukázkových aplikací, testovacích utilitek a tak. Takže už jsem žádné další ukázkové aplikace nepsal a rozhodl se další možnosti ASP.NET ukázat na již hotových aplikacích, se kterými mám něco společného.

Základní koncept komponent a Master pages jsem se tedy rozhodl ukázat – ať nechodíme daleko – na šabloně tohoto blogu. O něco pokročilejší komponentový framework jsem pak ukazoval na šabloně obchody.atlas.cz. Tahle jedna šablona je v podstatě celý web. Bez knihovny je sice mrtvá a ještě chyběj pravidla URL rewritingu, ale jinak je tam vše. Tyhle dvě ukázky najdete taktéž přibalené.

Poslední mou ukázkou byla aplikace, kterou jsem psal kvůli potřebě naučit se ASP.NET MVC a ADO.NET Data Services prakticky ještě před konferencí a zároveň abychom se v práci zbavili nutnosti zapisovat si příchody někam na papír (formulář) a pak na konci měsíce počítat, kolik kdo dostane stravenek :). Tak vznikla docházka a taky rozcestník projektů a tím pádem základ Twareg.Intranet. Shodou okolností to možná bude i naše první komerčně prodávaná aplikace. Hezký osud bokovky…

Takže na tomto webu jsem se pokusil ukázat, jak se dělá routing, jak je ten systém modulární. Jak deklarativně pomocí atributů nastavit autorizaci k akcím a jak akce snadno přejmenovat. Na víc už moc nezbýval čas. Tahle ukázka přibalená není. Namísto ní najdete Borkovy REST služby postavené nad ASP.NET MVC, které jsme bohužel nestihli ukázat.

Co se týče mého vystoupení, tak moc spokojený nejsem, vůbec se to nedostalo ani na spodní hranici mých představ o dobré přednášce – naštěstí tam byl Borek, aby to zachránil.

Author Stream ty slajdy trochu rozsypal, ale lepší než nic. Jinak pokud si chcete slajdy nebo ukázky stáhnout, pokračujte na Slajdy a ukázky z WebExpa. Pokud vás toto téma zajímá určitě najdete spoustu zajímavých futures bits na Codeplexu. Některá témata z přednášky bych rád rozebral podrobněji tady na blogu, ale až někdy jindy.

Shlédnuté prezentace

Na WebExpu jsem naštěstí nebyl jen jako pokus o přednášejícího, ale i jako divák. Oproti původnímu plánu jsem nakonec navštívil trochu jiné přednášky. Jako opravdu výbornou můžu označit přednášku Juraje Michálka o Flexu. Hodně dobrá byla nejspíš i Karmiho přednáška o Ruby on Rails, ale zastihl jsem jen asi posledních 25 min. Přednáška o Nette z úst nejzasvěcenějšího byla zábavná, nicméně s plánovaným školením PHP frameworky na paměti značně zredukovaná.

Mezi pro mě obsahově hodnotné a pořád dobře odprezentované bych ještě rád zařadil Dagiho přednášku o Springu, přednášku Vlastimila Pečínky o architektuře v Seznamu a přednášku o SproutCore od Antonína Hildebranda. Sice jsem nedostal odpověď na otázku, jestli to funguje i bez JavaScriptu, ale i tak přednášku hodnotím jako přínosnou a můžu rubistům tiše závidět ;).

Sociální vlivy

Na tuhle akci jsem nejvíc těšil hlavně kvůli lidem. Já moc na tydlety akce nechodím, ale jednou za čas se potkat s lidmi, které často čtu, není špatné. Rád jsem osobně potkal i některé nové tváře, které jsem dosud nečetl a třeba to napravím…

Na závěr

Na závěr patří především velíké díky Vaškovi, za velikou zkušenost, za zorganizování téhle veliké party se spostou zajímavých osobností a se širokým záběrem témat. Je dobré když se člověk může podívat na to jak to dělaj jinde a něčemu se třaba přiučit nebo prodiskutovat své pohledy na věc. Ono táhnout konferenci až do první hodiny ranní není žádná sranda. Respekt!

Jo a málem bych zapomněl, na LinkedIn jsem vytvořil k této konferenci skupinu, takže pokud jste se ještě do ní nepřidali, neváhejte a udělejte to ještě teď. A pokud vás zajímají slajdy ostatních nebo chcte nasdílet své, využijte eventu na slide share.

Reference na objekty v ADO.NET Data Services

06.44 - 10. září 2008 | Webdesign

Pokud se rozhodnete pro vaše AJAXové aplikace požívat RESTové služby ADO.NET Data Services, jistě se dostanete do situace, kdy máte komplexní typ a potřebujete vytvořit novou entitu s odkazem na již existující objekt.

Řešení tohoto problému jsem hledal dost dlouho, nakonec bylo celkem jednoduché.

Problém

AJAXově vytvářím entitu, která má vlastnost User, což je reference na uživatele, který danou entitu vytvořil – kterému patří.

Cesta k řešení

Nejprve jsem zkoušel využít něco podobného, jako je u entit, které jsou vráceny pomocí metody GET. Tedy odkaz na jinou entitu je vyjádřen pomocí vlastnosi __deffered a ta má atribut uri, který odkazuje na již existující entitu pomocí jejího URL. Bohužel, to nefungovalo, protože __deffered je metodou POST ignorováno. Kód vypadal asi následujícně:

User: { __deffered: { uri: "/Users(13)" } }

Pak jsem tedy zkusil druhý zoufalý krok. Zkusil jsem použít atribut ID, který je vlastně jediný důležitý pro správné persistování do databáze. Kód následující:

User: { Id: 13 }

Jenže ani to není správná cesta, navíc si tak můžete Usera poškodit.

Konečné řešení

Konečné funkční řešení se od toho původního pokusu skoro neliší, ano byl jsem hodně blízko a vzal to oklikou a až důkladné čtení dokumentace mi otevřelo oči. Vlastnost __metadata byla aktuálně tou správkou, která se měla použít! Takže správný kód vypadá takto:

User: { __metadata: { uri: "/Users(13)" } }

Závěr

Já vím, není to žádná super extra informace, ale já k jejímu získání spotřeboval celkem dost času. Možná to někomu ušetří starosti a hledání… Pokud vás zajímají ADO.NET Data Services – což je velice zajímavá technologie – můžete se přijít podívat na naši přednášku o ASP.NET, kde o nich bude utroušeno několik slov a předvedena pěkná ukázka ve spojení s AJAXem a k databázi budeme přistupovat přes NHibernate místo Entity Frameworku.

Tagy: ,

Povídání o ASP.NET na WebExpu

19.38 - 4. září 2008 | Webdesign

Je to už pár měsíců, co mě oslovil Vašek Stoupa, zda bych nechtěl přednášet na WebExpuASP.NET MVC. WebExpo 2008 Zprvu jsem váhal, protože nemám žádné prezentační zkušenosti a tak jsem to chtěl celé hodit na Borka. Jenže pak jsem si vzpomněl na skvělé přednášky z MIXu, kde nebyl pouze jeden přednášející, ale tandem.

Slovo dalo slovo, Vašek i Borek souhlasili a my jsme zapsaní v programu konference. :) Protože ASP.NET MVC ještě není ve stabilní formě API (ta by měla být více méně stabilní v betafázi, která se blíží), domluvili jsme se na tom, že probereme více věcí.

Doufám, že se Borek nebude zlobit, když prozradím naši předběžnou osnovu. Můžete se k ní vyjádřit v komentářích a my ji můžete případně vylepšit. :)

Osnova

  1. WebForms – povídání o tom, kde je vhodné použít klasické WebForms a novinkách ve verzi 3.5
  2. AJAX – povíme si, jak je integrována podpora AJAXu v ASP.NET
  3. ADO.NET Data Service – bližší seznámení s REST službami postavenými nad ADO.NET a ukázka ve spojení s AJAXem
  4. Dynamic Data – povídání a ukázka dynamicky vytvářených administračních rozhraní ze schématu databáze.
  5. MVC – povídání a ukázka MVC frameworku, jak se liší od WebForms a možná i spojení s Dynamic Data, to jak zbyde čas.

Pokud vás tato témata zajímají, přijďte se na nás podívat, pokud nezajímají, přijďte se podívat na koktajícího rarouše… ;) Každopádně tam bude spousta jiných zajímavých přednášek, třeba Davidův evergreen o Nette Frameworku.

Tagy: , ,

Castle RC3 a Microsoft MVC

07.48 - 9. října 2007 | Webdesign

Vůbec jsem si toho nevšiml, ale RC3 verze Castle je již několik týdnů venku. Stáhnout si jí můžete ze SourceForge.

Další zajímavou zprávou je. že Microsoft pracuje na vlastním ASP.NET MVC frameworku, který bude umožňovat plnou testovatelnost, IoC kontejnery, ASPX jako view bez ViewState a Page lifecyklu a spoustu zajímavých vychytávek využívajících generika a nové možnosti C#3. První CTP by se měla objevit do konce roku a releas někdy na jaře roku příštího. Release by měl být podobný jako AJAX Extensions, časem se pak zařadí přímo do .net frameworku.

Zajímavý je pohled vývojářů MonoRailu. Vítají zdravou konkurenci a podle všeho se budou snažit využít všech výhod ASP.NET MVC a MonoRail budovat dále nad ním.

Související

Exkluzivní zprávy z vývoje Atlas Map

18.28 - 9. listopadu 2006 | Webdesign

Vývoj map trval ultra krátkou dobu. Něco pod tři měsíce. Gattovi diagramy opět prokázali, že když chcete boha rozesmát – sdělte mu své plány. Dnes večer (ale raději až po půlnoci) mapy opět krapet dospějí. Lehká sumarizace, co je nového na Atlas mapách, doplněná stručným komentářem – z pohledu vývojáře.

Nové funkce: GPS souřadnice, nasosnutí i vyhledání.

Brouci:

Opera

Opera ano (skoro) – v průběhu celého vývoje map jsem testoval i v Opeře. Tento nejpomalejší prohlížeč (platí pro AJAX aplikace, které hooodně malují) používají skoro všichni mí přátelé, takže opomenout ho, dodám munici do debat svým názorovým oponentům – a to nechci :) Tak tento prohlížeč byl těsně před releasem map sestřelen unikátním fixem pro IE, jež jediný ho donutí (kromě úpravy HTTP hlaviček) korektně kešovat pozadí.

Takže pozor, fixem fixovat jen IE, jinak XmlHttpRequest v Opeře stávkovat bude.

Další „problém“ Opery. Její pedantské lpění na standardech bohužel způsobilo, že poslední dvě měřítka stále nefungují. DIV o šířce půl miliónu px prostě vadí :) Má ale štěstí holka, protože ten vadí i mě, a půjde-li vše ok, příští týden budou mapy šlapat pod Operou kompletně.

PS: rychlost map v pořadí od nejrychlejšího prohlížeče: IE7, IE6, FF a Opera (nejpomalejší).

PS2: Safari více méně funguje, ale věnovat více se mu budu týden přespříští.

Kolečko myši

Po ostrých debatách mezi zastánci GIS a těmi co o GIS vůbec nic nevědí ;) kolečko otočeno (pro ostatní, teď se chová jako na mapách Googlu)

PNG v Inernet Exploreru

Implementace PNG v IE7 se interně stále spoléhá na staré známé filtry IE6, jež mají tu pěknou vlastnost, že jich nelze aplikovat více přes sebe. (pro ostatní, bublina v IE7 už vypadá ok, bohužel jsme se museli rozloučit s efektem opacity)

A to je zatím vše. O dalších opravených chybách se šířit nebudu ,–)

ASP.NET AJAX Extensions beta 1

20.28 - 20. října 2006 | ASP.NET 2.0

Dnes byla po dlouhé odmlce vypuštěna další verze ‚Atlas‘ Frameworku, tentokráté již pod komerčním názvem a ve fázi beta testování. Co se vše změnilo?

Krom názvu tedy doznal framework značných změn. Prvně byl framework rozdělen na Core a Preview část. Core obsahuje nejdůležitější jádro frameworku (JSON, Class Library, Compatibility layer apod.) a jeho velikost se podařilo stlačit na přibližně 20 KiB (GZip komprese), což je velice dobrá zpráva, konečně se Atlas stává použitelným i v reálném světě :) Preview balíček obsahuje spoustu dalších věcí, které byly součástí předchozích verzí a budou nadále vyvíjeny s možností zařazení do Core po jejich dostatečné stabilizaci a otestování kompatibility. ControlToolkit zůstává a byl opět rozšířen o další nové Extendery.

Krom struktury projektu došlo i na technologické změny. Tou nejdůležitější změnou je přechod z closures na prototypování. Tím doznal framework i značného výkonostního nárůstů, protože prototypy obecně spotřebovávají mnohem méně paměti. Vývojáři si od prototypování slibují také snadnější vývoj a podporu pro Intellisenee v ‚Orcas‘ studiu. Podlě náznaků to vypadá, že Intellisense poběží díky metadatům v JavaScriptu (obdoba Atributů v C#). Nechme se překvapit.

Co se týče serverové části tzv. ASP.NET 2.0 AJAX Extensions, tak všechny controly mají nyní prefix asp namísto atlas a od příští verze dotnet frameworku budou i jeho integrální součástí. AJAX Extensions také nahrazují stávající Validátory, které byly přepsány nad MS AJAX Library. Snad budou fungovat mnohem lépe než ty stávající.

Osobně jsem ještě velice zajímavě vypadající novinky nezkoušel, ale snad se brzy naskytne ta možnost :)

Asynchronní stránkování v ASP.NET

21.05 - 4. července 2006 | ASP.NET 2.0

V jednom z komentářů k článku Začínáme s Atlasem 2 se komentující ptal na to, jak může docílit toho, aby se nenačítala MasterPage celá, ale pouze ContentPages. To jsem označil za nepochopení MasterPages, protože ty slouží pouze jako šablony společných prvků pro skupinu stránek. MasterPages slouží k udržení jednotného vzhledu a struktury stránek a k pomyslnému oddělení obsahu a zbytku stránky dochází pouze na serveru. Na klienta se posílá pouze jedna jediná stránka – složená z mástru a obsahu. Je to zkrátka něco jako razítko na výkresu, jednotlivá políčka musíte vyplnit sami a výkres je také nedělitelný :).

Tazatel však chtěl docílit efektu framů, kde by se načítal jen měnící se obsah a zbytek zůstal v prohlížeči. Jedním z možných řešení je využití ASP.NET komponenty asp:MultiView společně s ASP.NET ‚Atlas‘. To si nyní představíme podrobněji…

Komponenta MultiView je novou kompozitní komponentou v ASP.NET 2.0, která je přímou příbuznou Wizardů. MultiView je elegantnějším řešením tam, kde se dříve využívali skrývané Panely a s množstvím různých panelů na stránce docházelo k velikému zmatku. Nesměli jste zapomenout jedny panely schovat a další zase naopak zobrazit. MultiView pouze zadáte index požadovaného pohledu, který se má zobrazit. Doporučení hodnou praktikou je si pro jednotlivé pohledy vytvořit výčet (enumeraci). Kód pak získá větší přehlednost a i po několika týdnech budete vědět o jaký pohled šlo ;).

Tak jsme si teoreticy probrali komponentu MultiView a nyní si ukážeme praktickou ukázku. Takže mějme následující MasterPage:

<%@ Master Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="cs" lang="cs">
<head runat="server">
    <title>Ukázky s ASP.NET 'Atlas'</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h1>Ukázky s ASP.NET 'Atlas'</h1>
        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
        </asp:contentplaceholder>
        <p>©2006 Aleš Roubíček. Některá práva vyhrazena. creative commons</p>
    </div>
    </form>
</body>
</html>

K ní vytvoříme následující ContentPage:

<%@ Page Language="C#" MasterPageFile="Atlas.master" Title="Ukázka MultiView" %>

<script runat="server">

        enum PageViews
        {
                First = 0,
                Second = 1
        }

        protected void FirstViewButton_Click(object sender, EventArgs e)
        {
                PagesMultiView.ActiveViewIndex = (int)PageViews.First;
        }

        protected void SecondViewButton_Click(object sender, EventArgs e)
        {
                PagesMultiView.ActiveViewIndex = (int)PageViews.Second;
        }

</script>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

        <asp:LinkButton ID="FirstViewButton" runat="server" Text="První stránka"
                        OnClick="FirstViewButton_Click"></asp:LinkButton>

        <asp:LinkButton ID="SecondViewButton" runat="server" Text="Druhá stránka"
                        OnClick="SecondViewButton_Click"></asp:LinkButton>

        <asp:MultiView ID="PagesMultiView" runat="server" ActiveViewIndex="0">

                <asp:View ID="FirstView" runat="server">
                        <h2>První stránka</h2>
                        <p>Obsah první stránky.</p>
                </asp:View>

                <asp:View ID="SecondView" runat="server">
                        <h2>Druhá stránka</h2>
                        <p>Obsah druhé stránky.</p>
                </asp:View>

        </asp:MultiView>

</asp:Content>

Tato stránka obsahuje dvě tlačítka a jeden MultiView. Tlačítka mají nastarosti přepínat pohledy. Přepínání je prováděno v ovladačích události Click. Prozatím nic úchvatného, máme stránku, která umí přepínat svůj obsah, ale stejně se vždy musí poslat požadavek na server, kde se přepne pohled a pak se odešle nová celá stránka. To neřeší náš problém :( Naštěstí konečné řešení je velice blízko :) Stačí oživit stránku pomocí ASP.NET ‚Atlas‘. Výsledná ContentPage bude vypadat následujícně:

<%@ Page Language="C#" MasterPageFile="Atlas.master" Title="Ukázka MultiView" %>

<script runat="server">

        enum PageViews
        {
                First = 0,
                Second = 1
        }

        protected void FirstViewButton_Click(object sender, EventArgs e)
        {
                PagesMultiView.ActiveViewIndex = (int)PageViews.First;
        }

        protected void SecondViewButton_Click(object sender, EventArgs e)
        {
                PagesMultiView.ActiveViewIndex = (int)PageViews.Second;
        }

</script>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

        <atlas:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true">
        </atlas:ScriptManager>

        <asp:LinkButton ID="FirstViewButton" runat="server" Text="První stránka"
                                        OnClick="FirstViewButton_Click"></asp:LinkButton>

        <asp:LinkButton ID="SecondViewButton" runat="server" Text="Druhá stránka"
                                        OnClick="SecondViewButton_Click"></asp:LinkButton>

        <atlas:UpdatePanel ID="ViewUpdate" runat="server" RenderMode="Block">

                <ContentTemplate>
                        <asp:MultiView ID="PagesMultiView" runat="server" ActiveViewIndex="0">

                                <asp:View ID="FirstView" runat="server">
                                        <h2>První stránka</h2>
                                        <p>Obsah první stránky.</p>
                                </asp:View>

                                <asp:View ID="SecondView" runat="server">
                                        <h2>Druhá stránka</h2>
                                        <p>Obsah druhé stránky.</p>
                                </asp:View>

                        </asp:MultiView>
                </ContentTemplate>

                <Triggers>
                        <atlas:ControlEventTrigger ControlID="FirstViewButton" EventName="Click" />
                        <atlas:ControlEventTrigger ControlID="SecondViewButton" EventName="Click" />
                </Triggers>

        </atlas:UpdatePanel>

</asp:Content>

Tímto máme hotovo. Při změně pohledu dojde k asynchronnímu načtení pouze vnitřku stránky a zbytek MasterPage zůstane v prohlížeči.

Evoluce ve webovém vývoji

07.57 - 23. května 2006 | ASP.NET 2.0

Možná jste si všimli, že se v poslední době pouští Microsoft do AJAXu. Jejich Atlas framework je zatím v alfa stádiu, ale i tak je plně použitelný a funkční – až na pár bugů. Tímto frameworkem otevírá dveře vývojářům serverside aplikací (typicky píšících v C#, Javě, VB.NET nebo i v PHP) ke vstupu na klienta. Atlas se snaží přinést do JavaScriptu i jakousi podporu OOP, takže můžete používat namespacy, classy, interfejsy (fuj to je hnusný slovo – zdravím doc. Müllera), dědičnost a další vymoženosti, na které jsem zvyklý ze C#.

Problém je ovšem v tom, že pořád musím psát v JavaScriptu. Nemám rád tenhle jazyk. Občas v něm něco napíšu, ale je to peklo – právě proto že v něm málo píšu, ho tak dobře neumím, a protože ho tak dobře neumím, tak v něm málo píšu. :) Atlas naštěstí přináší i deklarativní metodu psaní aplikací pomocí XML-Scriptu, který je mi podstatně bližší. Ale stejně v něm nejde napsat vše – hlavně vlastní komponenty.

Protože bude Atlas součástí příští verze Visual Studia „Orcas“, přemýšlejí soudruzi v Microsoftu, jakým způsobem zjednodušit vývoj aplikací v Atlasu, připravit kvalitní vývojové nástroje se všemi vymoženostmi (Intellisense, debugging apod.). Vzhledem k tomu, že je JavaScript dynamicky typovaný, je s Intellisence celkem problém – dneska se ve studiu objeví jen zřídka. To by ale nebyl Microsoft, kdyby nepřišel s něčím novým…

Na scénu přichází Script#

Ano, je tu to, na co jsem dlouho čekal, konečně může psát klientské skripty v pořádném jazyku. O co tedy jde? O zimních prázdninách si Nikhil Kothari – duchovní otec Atlas frameworku – uvědomil, že se v JS píše fakt blbě a že by bylo lepší psát v C# i skripty. Jenže jak donutit prohlížeče, aby zpracovali C#? To je prakticky nemožné. Nikhil na to šel od lesa a napsal vlastní kompilátor, který místo MSIL generuje JS. Přidal k tomu ještě sscorelib a máme tu Script# (skriptšárp). Script# je fakticky C#, nemusíte se učit žádný nový jazyk (teda pokud umíte C# jako já). Navíc dostanete v balení knihovnu, která obsahuje standardní DOM a vůbec vše, co můžete najít v JavaSriptu. Kompilátor generuje JS kód určený pro Atlas framework, takže výsledkem může být jak js soubor, tak dll, kde jsou skripty jako resource – stejně jako je tomu u poslední verze Atlasu. Kompilátor zvládá DEBUG – včetně preprocesoru – i minimalizovat kód (a to jak ořezání bílých znaků, tak i náhradu jmen proměnných za zkratky jako $0). Je toho moc, nejlépe, když si to vyzkoušíte sami nebo se podíváte na desetiminutovou video ukázku. Zatím je kompilátor ve fázi funkčního prototypu a k dokonalosti potřebuje ještě hodně práce, ale jako ukázka možného směru je to bomba.

Zajímavost závěrem

Docela zajímavé je, že soudruzi v Google přemýšlejí podobně a podstatě totéž přinášejí ve svém Web Toolkitu.

Zdroj

Nikhil Kothari – Script# Prototype