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

Содержание

Слайд 2

Пример дня: Excel в браузере

Редактирование таблиц
Добавление формул
Сохранение данных на сервере
Публикация веб-сервис интерфейса

Пример дня: Excel в браузере Редактирование таблиц Добавление формул Сохранение данных на
к данным
И всё это на F# - благодаря WebSharper

Copyright © 2004-2011 IntelliFactory

WebSharper @ Kiev ALT.NET #6

http://www.intellifactory.com |

Слайд 3

Почему WebSharper?

Когда пишешь JavaScript, хочется плакать:
Нет вывода типов - опечатки приводят к

Почему WebSharper? Когда пишешь JavaScript, хочется плакать: Нет вывода типов - опечатки
ошибкам
Нет толковой среды разработки
Нет стандартной платформы, библиотек, коллекций
Нет стандарта упаковки модулей и документации

Copyright © 2004-2011 IntelliFactory

WebSharper @ Kiev ALT.NET #6

http://www.intellifactory.com |

Слайд 4

Почему WebSharper?

Еще хуже дело с клиент-серверными приложениями:
Нужно думать о передаче данных и

Почему WebSharper? Еще хуже дело с клиент-серверными приложениями: Нужно думать о передаче
их упаковке
Нужно привязывать скрипты, стили и HTML

Copyright © 2004-2011 IntelliFactory

WebSharper @ Kiev ALT.NET #6

http://www.intellifactory.com |

Слайд 5

Почему F#?
Функциональное программирование
Вывод типов
Удобная среда разработки
Хорошая платформа

Copyright © 2004-2011 IntelliFactory

WebSharper @ Kiev

Почему F#? Функциональное программирование Вывод типов Удобная среда разработки Хорошая платформа Copyright
ALT.NET #6

http://www.intellifactory.com |

Слайд 6

Комиляция F# в JavaScript

Copyright © 2004-2011 IntelliFactory

WebSharper @ Kiev ALT.NET #6

http://www.intellifactory.com |

Комиляция F# в JavaScript Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET

namespace Hello
module Main =
[]
let rec Fac n =
match n with
| 0 -> 1
| n -> n * Fac (n - 1)
> Hello.Main.Fac(10)
3628800

Слайд 7

Стандартная библиотека

Copyright © 2004-2011 IntelliFactory

WebSharper @ Kiev ALT.NET #6

http://www.intellifactory.com |

let d

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

Слайд 8

Удалённый вызов

Copyright © 2004-2011 IntelliFactory

WebSharper @ Kiev ALT.NET #6

http://www.intellifactory.com |

[]
let Save

Удалённый вызов Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com
(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 © 2004-2011 IntelliFactory

WebSharper @ Kiev ALT.NET #6

http://www.intellifactory.com |

let

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

Слайд 10

Пользовательские привязки

Copyright © 2004-2011 IntelliFactory

WebSharper @ Kiev ALT.NET #6

http://www.intellifactory.com |

[]
let

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

Слайд 11

Функциональный подход к UI

Copyright © 2004-2011 IntelliFactory

WebSharper @ Kiev ALT.NET #6

http://www.intellifactory.com |

Функциональный подход к UI Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET

Formlet.Do {
let! name = functionName
let! text = functionText
return name, text
}
|> Formlet.Flowlet

Слайд 12

Функциональная маршрутизация

Copyright © 2004-2011 IntelliFactory

WebSharper @ Kiev ALT.NET #6

http://www.intellifactory.com |

type Actions

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

Слайд 13

Статическая проверка ссылок

Copyright © 2004-2011 IntelliFactory

WebSharper @ Kiev ALT.NET #6

http://www.intellifactory.com |

fun

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

Слайд 14

Автоматизация зависимостей

Copyright © 2004-2011 IntelliFactory

WebSharper @ Kiev ALT.NET #6

http://www.intellifactory.com |
module Styles

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

Слайд 15

К делу!

Copyright © 2004-2011 IntelliFactory

WebSharper @ Kiev ALT.NET #6

http://www.intellifactory.com |

К делу! Copyright © 2004-2011 IntelliFactory WebSharper @ Kiev ALT.NET #6 http://www.intellifactory.com |
Имя файла: WebSharper-веб-программирование-без-слёз.pptx
Количество просмотров: 112
Количество скачиваний: 0