WebSharper<br />веб-программирование без слёз<br />Владимир Матвеев, IntelliFactory<br />Антон Таяновский, IntelliFactory<...
Пример дня: Excel в браузере<br />Редактирование таблиц<br />Добавление формул<br />Сохранение данных на сервере<br />Публ...
Почему WebSharper?<br />Когда пишешь JavaScript, хочется плакать:<br />Нет вывода типов - опечатки приводят к ошибкам<br /...
Почему WebSharper?<br />Еще хуже дело с клиент-серверными приложениями:<br />Нужно думать о передаче данных и их упаковке<...
Почему F#?<br />Функциональное программирование<br />Вывод типов<br />Удобная среда разработки<br />Хорошая платформа<br /...
Комиляция F# в JavaScript<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.inte...
Стандартная библиотека<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intelli...
Удалённый вызов<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory...
Привязки JavaScript библиотек<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www....
Пользовательские привязки<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.inte...
Функциональный подход к UI<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.int...
Функциональная маршрутизация<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.i...
Статическая проверка ссылок<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.in...
Автоматизация зависимостей<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.int...
К делу!<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory.com    ...
Спасибо за внимание!<br />http://websharper.com<br />http://intellifactory.com<br />http://bitbucket.org/IntelliFactory/ta...
Upcoming SlideShare
Loading in …5
×

WebSharper - веб-программирование без слёз

1,710 views

Published on

В докладе мы предоставим обзор WebSharper, платформы для разработки веб-приложений включающей компилятор из F# в JavaScript. WebSharper - наша попытка сделать веб-программирование, в том числе сложные интерфейсы и визуализации, удобным и плодотворным процессом.

Антон Таяновский, IntelliFactory
Владимир Матвеев, IntelliFactory

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,710
On SlideShare
0
From Embeds
0
Number of Embeds
271
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Need more icons: MVC, Linq
  • WebSharper - веб-программирование без слёз

    1. 1. WebSharper<br />веб-программирование без слёз<br />Владимир Матвеев, IntelliFactory<br />Антон Таяновский, IntelliFactory<br />
    2. 2. Пример дня: Excel в браузере<br />Редактирование таблиц<br />Добавление формул<br />Сохранение данных на сервере<br />Публикация веб-сервис интерфейса к данным<br />И всё это на F# - благодаря WebSharper<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory.com |2<br />
    3. 3. Почему WebSharper?<br />Когда пишешь JavaScript, хочется плакать:<br />Нет вывода типов - опечатки приводят к ошибкам<br />Нет толковой среды разработки<br />Нет стандартной платформы, библиотек, коллекций<br />Нет стандарта упаковки модулей и документации<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory.com |3<br />
    4. 4. Почему WebSharper?<br />Еще хуже дело с клиент-серверными приложениями:<br />Нужно думать о передаче данных и их упаковке<br />Нужно привязывать скрипты, стили и HTML<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory.com |4<br />
    5. 5. Почему F#?<br />Функциональное программирование<br />Вывод типов<br />Удобная среда разработки<br />Хорошая платформа<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory.com |5<br />
    6. 6. Комиляция F# в JavaScript<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory.com |6<br />namespace Hello<br />moduleMain =<br /> [<JavaScript>]<br />letrecFac n =<br />match n with<br /> | 0 -> 1<br /> | n -> n * Fac (n - 1)<br />> Hello.Main.Fac(10)<br />3628800<br />
    7. 7. Стандартная библиотека<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory.com |7<br />let d = Dictionary()<br />for (k, v) in pairs do<br /> d.[k] <- v<br />d<br />
    8. 8. Удалённый вызов<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory.com |8<br />[<Rpc>]<br />let Save (user: User) =<br />database.Save user<br />async { return OK }<br />[<JavaScript>]<br />letAddAccount() =<br />let user = ..<br />async {<br />let! response = Save user<br />do! Show response<br /> }<br /> |> Async.Start<br />
    9. 9. Привязки JavaScript библиотек<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory.com |9<br />letconfig =<br />JQueryUI.DialogConfiguration(<br />Draggable = true, Modal = true,<br /> Height = 370, Width = 500<br /> Title = "..", CloseOnEscape = true)<br />JQueryUI.Dialog.New(element, config)<br />
    10. 10. Пользовательские привязки<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory.com |10<br />[<Inline "eval($s)">]<br />leteval (s : string) = X<_><br />
    11. 11. Функциональный подход к UI<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory.com |11<br />Formlet.Do {<br />let! name = functionName<br />let! text = functionText<br />return name, text<br />}<br />|> Formlet.Flowlet<br />
    12. 12. Функциональная маршрутизация<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory.com |12<br />type Actions =<br /> | Main<br /> | DownloadWorksheet<br />letSitelet = <br />Sitelet.Content "/" Main mainPage <|><br />Sitelet.Infer (function<br /> | Main -> mainPage<br /> | DownloadWorksheet -> download ())<br />
    13. 13. Статическая проверка ссылок<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory.com |13<br />functx -><br /> A [Href (ctx.Link Main)] [Text "Home"]<br />
    14. 14. Автоматизация зависимостей<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory.com |14<br />module Styles =<br /> [<Sealed>]<br />type Table() =<br />inheritResources.BaseResource("Styles.css")<br />[<Require(typeof<Styles.Table>)]<br />module UI =<br />
    15. 15. К делу!<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory.com |15<br />
    16. 16. Спасибо за внимание!<br />http://websharper.com<br />http://intellifactory.com<br />http://bitbucket.org/IntelliFactory/talk-kiev-alt.net-6<br />Copyright © 2004-2011 IntelliFactory<br />WebSharper @ Kiev ALT.NET #6<br />http://www.intellifactory.com |16<br />

    ×