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

Презентация:



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

Проверяем качество сайтов Ключевые моменты оценки качества веб-проектов Мациевский Николай, Web Optimizator 1 / 16 webo.in / webo.name.
WEB- ТЕХНОЛОГИИ Лекция 1. WEB- ПРИЛОЖЕНИЯ 1 Особый тип программ, построенных по архитектуре « клиент - сервер » Основа получение запросов от пользователя.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – оптимизация скорости работы приложений Из цикла лекций.
Объектный доступ к Cache из среды.NET Александр Харитонов, InterSystems.
Eduard Vasiljauskas - Разработка сайта объявлений о продаже транспортных средств и предоставление услуг. На языке программирования C# Эдуардa Василяускасa.
Симпозиум 2008 Сергей Шутов, ДИМАС Борис Егоров, Интерсистемс Практика использования Zen и Прототип-6.
JavaFX for interface TEACHER NAME | Oxana Dudnik.
CGI Common Gateway Interface.
Александр Гарибов MCP-клуб Белгород 25 февраля 2011 г.
Самарский Государственный Архитектурно – Строительный Университет Факультет Информационных Систем и Технологий «Система тестовых заданий с решением» ГИП.
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Знакомьтесь FitNess! Антон Куликов Active Systems.
Применение Microsoft ASP.NET AJAX Андрей Скляревский.NET Developer
Влияние качества на бизнес веб-студий.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – класс Control Из цикла лекций «Технологии разработки.
Эффективная разработка отчётов на платформе.NET Александр Федяшов Fast Reports Inc.
Тестирование безопасности или Security and Access Control Testing.
Oracle APEX для Парус 8: направления использования APEX, учебные курсы Парус 8.
#html5camp JavaScript на сервере – node.js на Windows Гайдар Руководитель направления веб-технологий, Microsoft.
Транксрипт:

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

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

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

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

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

Комиляция 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)

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

Удалённый вызов 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

Привязки 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)

Пользовательские привязки Copyright © Kiev ALT.NET #6http:// | 10 [ ] let eval (s : string) = X

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

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

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

Автоматизация зависимостей Copyright © Kiev ALT.NET #6http:// | 14 module Styles = [ ] type Table() = inherit Resources.BaseResource("Styles.css") [ )] module UI =

К делу! Copyright © Kiev ALT.NET #6http:// | 15

Спасибо за внимание! Copyright © Kiev ALT.NET #6http:// | 16