Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 13 лет назад пользователемkievaltnet
1 WebSharper веб-программирование без слёз Владимир Матвеев, IntelliFactory Антон Таяновский, IntelliFactory
2 Пример дня: Excel в браузере Редактирование таблиц Добавление формул Сохранение данных на сервере Публикация веб-сервис интерфейса к данным И всё это на F# - благодаря WebSharper Copyright © Kiev ALT.NET #6http:// | 2
3 Почему WebSharper? Когда пишешь JavaScript, хочется плакать: Нет вывода типов - опечатки приводят к ошибкам Нет толковой среды разработки Нет стандартной платформы, библиотек, коллекций Нет стандарта упаковки модулей и документации Copyright © Kiev ALT.NET #6http:// | 3
4 Почему WebSharper? Еще хуже дело с клиент-серверными приложениями: Нужно думать о передаче данных и их упаковке Нужно привязывать скрипты, стили и HTML Copyright © Kiev ALT.NET #6http:// | 4
5 Почему F#? Функциональное программирование Вывод типов Удобная среда разработки Хорошая платформа Copyright © Kiev ALT.NET #6http:// | 5
6 Комиляция F# в JavaScript Copyright © Kiev ALT.NET #6http:// | 6 namespace Hello module Main = [ ] let rec Fac n = match n with | 0 -> 1 | n -> n * Fac (n - 1) > Hello.Main.Fac(10)
7 Стандартная библиотека Copyright © Kiev ALT.NET #6http:// | 7 let d = Dictionary() for (k, v) in pairs do d.[k]
8 Удалённый вызов Copyright © Kiev ALT.NET #6http:// | 8 [ ] let Save (user: User) = database.Save user async { return OK } [ ] let AddAccount() = let user =.. async { let! response = Save user do! Show response } |> Async.Start
9 Привязки JavaScript библиотек Copyright © Kiev ALT.NET #6http:// | 9 let config = JQueryUI.DialogConfiguration( Draggable = true, Modal = true, Height = 370, Width = 500 Title = "..", CloseOnEscape = true) JQueryUI.Dialog.New(element, config)
10 Пользовательские привязки Copyright © Kiev ALT.NET #6http:// | 10 [ ] let eval (s : string) = X
11 Функциональный подход к UI Copyright © Kiev ALT.NET #6http:// | 11 Formlet.Do { let! name = functionName let! text = functionText return name, text } |> Formlet.Flowlet
12 Функциональная маршрутизация Copyright © Kiev ALT.NET #6http:// | 12 type Actions = | Main | DownloadWorksheet let Sitelet = Sitelet.Content "/" Main mainPage Sitelet.Infer (function | Main -> mainPage | DownloadWorksheet -> download ()) mainPage | DownloadWorksheet -> download ())">
13 Статическая проверка ссылок Copyright © Kiev ALT.NET #6http:// | 13 fun ctx -> A [Href (ctx.Link Main)] [Text "Home"]
14 Автоматизация зависимостей Copyright © Kiev ALT.NET #6http:// | 14 module Styles = [ ] type Table() = inherit Resources.BaseResource("Styles.css") [ )] module UI =
15 К делу! Copyright © Kiev ALT.NET #6http:// | 15
16 Спасибо за внимание! Copyright © Kiev ALT.NET #6http:// | 16
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.