Создание облачных, мобильных и веб-приложений на F#
Покупка
Тематика:
Web-технологии. Web-дизайн
Издательство:
ДМК Пресс
Год издания: 2023
Кол-во страниц: 209
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-89818-584-8
Артикул: 477134.03.99
Книга рассказывает о ключевых аспектах создания облачных, мобильных и веб-решений на языке F# в комбинации с различными технологиями для платформы .NET. На практических примерах демонстрируется, как решать проблемы конкуренции, асинхронного выполнения и другие, встречающиеся на стороне сервера. Вы узнаете, как повысить свою продуктивность с помощью языка F#, интегрируя его в существующие веб-приложения или используя его для создания новых проектов.
Опытные разработчики для .NET узнают, как этот выразительный язык функционального программирования помогает писать надежные и простые в сопровождении решения, легко масштабируемые и способные адаптироваться для работы на самых разных устройствах.
Издание предназначено для программистов разной квалификации, желающих использовать возможности функционального программирования в своих проектах.
- Полная коллекция по информатике и вычислительной технике
- Web-технологии. Web-дизайн
- Веб-разработка
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Мобильная разработка
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.04: Программная инженерия
- 10.03.01: Информационная безопасность
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Создание облачных, мобильных и веб-приложений на F# Дэниел Мол
Building Web, Cloud, and Mobile Solutions with F# Daniel Mohl
Создание облачных, мобильных и веб-приложений на F# Москва, 2023 Дэниел Мол 2-е издание, электронное
УДК 004.432.42F# ББК 32.973-018.1 М74 М74 Мол, Дэниел. Создание облачных, мобильных и веб-приложений на F# / Д. Мол ; пер. с англ. А. Н. Киселёва. — 2-е изд., эл. — 1 файл pdf : 209 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-584-8 Книга рассказывает о ключевых аспектах создания облачных, мобильных и веб-решений на языке F# в комбинации с различными технологиями для платформы .NET. На практических примерах демонстрируется, как решать проблемы конкуренции, асинхронного выполнения и другие, встречающиеся на стороне сервера. Вы узнаете, как повысить свою продуктивность с помощью языка F#, интегрируя его в существующие веб-приложения или используя его для создания новых проектов. Опытные разработчики для .NET узнают, как этот выразительный язык функционального программирования помогает писать надежные и простые в сопровождении решения, легко масштабируемые и способные адаптироваться для работы на самых разных устройствах. Издание предназначено для программистов разной квалификации, желающих использовать возможности функционального программирования в своих проектах. УДК 004.432.42F# ББК 32.973-018.1 Электронное издание на основе печатного издания: Создание облачных, мобильных и веб-приложений на F# / Д. Мол ; пер. с англ. А. Н. Киселёва. — Москва : ДМК Пресс, 2015. — 208 с. — ISBN 978-5-97060-247-8. — Текст : непосредственный. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-584-8 © 2012 Daniel Mohl © Оформление, перевод ДМК Пресс, 2015
Содержание Предисловие ....................................................................... 10 Для кого эта книга .................................................................. 11 Что необходимо для опробования примеров ........................... 11 Структура книги ...................................................................... 12 Типографские соглашения ...................................................... 13 Использование программного кода примеров ........................ 14 Safari® Books Online ................................................................ 15 Как с нами связаться ............................................................... 15 Благодарности ........................................................................ 16 Глава 1. Создание веб-приложений для ASP.NET MVC 4 на языке F# ...................................... 17 Шаблоны проектов F# ASP.NET MVC 4 .................................... 18 Поиск и установка шаблонов .............................................. 19 Проект на C# ...................................................................... 20 Проект на F# ...................................................................... 21 Global.fs ......................................................................... 21 HomeController.fs ............................................................ 23 Контроллеры и модели на F# .................................................. 24 Контроллеры ...................................................................... 25 Модели ............................................................................... 26 Взаимодействие с базой данных ............................................. 28 Entity Framework .................................................................. 28 Извлечение данных ............................................................. 31 Извлечение данных с использованием поставщиков типов .................................................................................. 32 Использование преимуществ F# ............................................. 34 Переход на функциональную парадигму ............................ 34 Конвейеры и частичное применение функций ..................... 36 Создание более функционального контроллера ................. 38
Содержание Упрощение за счет сопоставления с образцом ................... 40 Дополнительные темы и понятия ............................................. 44 Улучшение времени отклика с помощью асинхронных операций ............................................................................ 44 Кеширование с применением MailboxProcessor .................. 46 Сообщения, как значения типа размеченного объединения .................................................................. 47 Основной агент .............................................................. 48 Использование агента CacheAgent ................................. 49 Шина сообщений ................................................................ 51 SimpleBus ....................................................................... 52 Публикация сообщений .................................................. 54 Извлечение сообщений .................................................. 56 Стиль продолжений ............................................................ 57 Создание собственных вычислительных выражений ........... 58 В заключение .......................................................................... 60 Глава 2. Создание веб-служб на языке F# ................... 62 Установка шаблона проекта WCF ............................................ 63 Исследование получившегося решения .................................. 64 Использование службы ....................................................... 67 Погружение в записи .......................................................... 72 Создание службы ASP.NET Web API .......................................... 73 Анализ шаблона .................................................................. 74 Взаимодействие с HTTP-службой ....................................... 78 С использованием объекта HttpClient ............................. 79 Поставщик типов JSON .................................................. 82 Прежде чем покинуть ASP.NET Web API ........................... 83 Другие веб-фреймворки ......................................................... 84 Service Stack ...................................................................... 84 Nancy .................................................................................. 87 Frank ................................................................................... 90 Тестирование своих творений ................................................. 94 Подготовка ......................................................................... 94 Улучшение тестов с применением F# .................................. 97 FsUnit .................................................................................. 99 Unquote ............................................................................ 101 NaturalSpec ....................................................................... 102 В заключение ........................................................................ 104
Содержание Глава 3. К облакам! Использование преимуществ Azure ......................................................... 105 Создание и развертывание приложений F# на платформе Azure ..................................................................................... 106 Создание рабочей роли на F# ............................................... 108 Введение в библиотеку Fog ................................................... 109 Взаимодействие с хранилищами данных Azure ...................... 110 Большие двоичные объекты .............................................. 110 Таблицы ............................................................................ 112 Служба хранения очередей ............................................... 114 SQL Azure .......................................................................... 115 Использование преимуществ Azure Service Bus ..................... 116 Очереди ........................................................................... 116 Темы ................................................................................. 117 Аутентификация и авторизация ............................................. 119 Аутентификация и авторизация с применением ACS ........ 120 Аутентификация на основе заявок ................................ 121 Авторизация на основе заявок .......................................... 122 Создание масштабируемых приложений ............................... 123 Создание веб-роли ........................................................... 124 PlaceOrderCommand ......................................................... 126 Рабочие роли .................................................................... 127 Рабочая роль SQL Azure ................................................... 128 Последние штрихи ............................................................ 130 Кеширование .................................................................... 131 CDN и автоматическое масштабирование ........................ 132 Блистательные примеры на F# ............................................. 133 {m}brace ........................................................................... 134 Cloud Numerics ................................................................. 135 Hadoop MapReduce для .NET ............................................ 136 В заключение ........................................................................ 136 Глава 4. Создание масштабируемых мобильных и веб-приложений ........................................................... 137 Масштабирование с применением веб-сокетов ........................................................................... 138 Пример использования веб-сокетов на платформе .NET 4.5 и IIS 8 .................................................................. 139 Создание сервера веб-сокетов с помощью Fleck .............. 144
Содержание SignalR .................................................................................. 147 Пример создания постоянного соединения ...................... 148 Клиент на JavaScript ......................................................... 149 Клиент на F# .................................................................... 150 Пример создания хаба ...................................................... 150 Серверная сторона ..................................................... 151 Клиентская сторона ..................................................... 152 Обретаем мобильность ......................................................... 153 Способ на основе jQuery Mobile ....................................... 153 Добавляем поддержку Windows Phone .............................. 155 Объединение F# и NoSQL ...................................................... 158 MongoDB .......................................................................... 159 RavenDB ........................................................................... 162 CouchDB ........................................................................... 163 В заключение ........................................................................ 165 Глава 5. Разработка интерфейсов в функциональном стиле ............................................... 166 Подготовка почвы.................................................................. 167 Знакомство с LiveScript ......................................................... 168 Преимущества .................................................................. 168 Применение ..................................................................... 169 Пример ............................................................................. 171 Исследуем Pit ........................................................................ 173 Преимущества .................................................................. 174 Применение ..................................................................... 175 Пример ............................................................................. 176 Погружение в WebSharper ..................................................... 179 Преимущества .................................................................. 180 Применение ..................................................................... 181 Пример ............................................................................. 182 В заключение ........................................................................ 184 Приложение A. Полезные инструменты и библиотеки ..................................................................... 186 FAKE (F# Make)...................................................................... 186 NuGEt .................................................................................... 186 Основы использования ..................................................... 187 Полезные NuGet-пекты ..................................................... 188 ExpectThat ............................................................................. 192
Содержание Приложение B. Полезные веб-сайты .......................... 194 fssnip.net ............................................................................... 194 tryfsharp.org .......................................................................... 194 Visual Studio Gallery ................................................................ 195 jQueryMobile.com .................................................................. 195 Приложение C. Клиентские технологии, совместимые с F# ........................................................... 196 CoffeeScript ........................................................................... 196 Sass ...................................................................................... 197 Underscore.js ......................................................................... 200 Об авторе .............................................................................. 201 Предметный указатель ................................................... 202
Предисловие Если проанализировать самые последние веянья в развитии информационных технологий, можно увидеть, что основным направлением является создание облачных, мобильных и веб-решений, масштабируемых в широких пределах и связанных с управлением большими объемами данных. С появлением этих направлений возникла потребность в инструментах, позволяющих специалистам, таким как вы или я, создавать собственные решения в этой области. Что для этого нужно? Какие архитектуры, инструменты, языки и технологии можно использовать для разработки программ, способных выполняться на самых разных устройствах и легко масштабироваться, и при этом обеспечить высокую надежность решений, простоту их сопровождения, тестирования и многократного использования? Существует множество инструментов, отвечающих нашим потребностям, но для решения наших задач в полном объеме, их возможностей оказывается недостаточно. Чтобы получить максимальную отдачу, необходим язык, специально предназначенный для преодоления сложностей, возникающих в описанных областях разработки. Он должен иметь встроенные средства для преодоления проблем, связанных с конкуренцией, выполнением асинхронных операций и большими объемами данных, и при этом прозрачно интегрироваться с другими языками, технологиями и инструментами, лучше подходящих для решения других задач. К счастью, такой язык существует и называется F#. В этой книге я покажу, как использовать язык F# для реализации ключевых элементов облачных, мобильных и веб-приложений, и решения упомянутых проблем. Выразительность, широта возможностей, лаконичность и функциональная природа языка F#, в сочетании с уже известными вам технологиями, такими как ASP.NET MVC, ASP.NET Web API, WCF, Windows Azure, HTML5, CSS3, JavaScript, jQuery и jQuery Mobile, позволят вам создавать удивительные приложения, не только соответствующие, но и превосходящие текущие и будущие требования к ним.