'

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

Понравилась презентация – покажи это...





Слайд 0

WebSharper веб-программирование без слёз Владимир Матвеев, IntelliFactory Антон Таяновский, IntelliFactory


Слайд 1

Пример дня: Excel в браузере Редактирование таблиц Добавление формул Сохранение данных на сервере Публикация веб-сервис интерфейса к данным И всё это на F# - благодаря WebSharper Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com | 2


Слайд 2

Почему WebSharper? Когда пишешь JavaScript, хочется плакать: Нет вывода типов - опечатки приводят к ошибкам Нет толковой среды разработки Нет стандартной платформы, библиотек, коллекций Нет стандарта упаковки модулей и документации Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com | 3


Слайд 3

Почему WebSharper? Еще хуже дело с клиент-серверными приложениями: Нужно думать о передаче данных и их упаковке Нужно привязывать скрипты, стили и HTML Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com | 4


Слайд 4

Почему F#? Функциональное программирование Вывод типов Удобная среда разработки Хорошая платформа Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com | 5


Слайд 5

Комиляция F# в JavaScript Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com | 6 namespace Hello module Main = [<JavaScript>] let rec Fac n = match n with | 0 -> 1 | n -> n * Fac (n - 1) > Hello.Main.Fac(10) 3628800


Слайд 6

Стандартная библиотека Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com | 7 let d = Dictionary() for (k, v) in pairs do d.[k] <- v d


Слайд 7

Удалённый вызов Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com | 8 [<Rpc>] let Save (user: User) = database.Save user async { return OK } [<JavaScript>] let AddAccount() = let user = .. async { let! response = Save user do! Show response } |> Async.Start


Слайд 8

Привязки JavaScript библиотек Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com | 9 let config = JQueryUI.DialogConfiguration( Draggable = true, Modal = true, Height = 370, Width = 500 Title = "..", CloseOnEscape = true) JQueryUI.Dialog.New(element, config)


Слайд 9

Пользовательские привязки Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com | 10 [<Inline "eval($s)">] let eval (s : string) = X<_>


Слайд 10

Функциональный подход к UI Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com | 11 Formlet.Do { let! name = functionName let! text = functionText return name, text } |> Formlet.Flowlet


Слайд 11

Функциональная маршрутизация Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com | 12 type Actions = | Main | DownloadWorksheet let Sitelet = Sitelet.Content "/" Main mainPage <|> Sitelet.Infer (function | Main -> mainPage | DownloadWorksheet -> download ())


Слайд 12

Статическая проверка ссылок Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com | 13 fun ctx -> A [Href (ctx.Link Main)] [Text "Home"]


Слайд 13

Автоматизация зависимостей Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com | 14 module Styles = [<Sealed>] type Table() = inherit Resources.BaseResource("Styles.css") [<Require(typeof<Styles.Table>)] module UI =


Слайд 14

К делу! Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com | 15


Слайд 15

Спасибо за внимание! http://websharper.com http://intellifactory.com http://bitbucket.org/IntelliFactory/talk-kiev-alt.net-6 Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com | 16


×

HTML:





Ссылка: