Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Создание облачных, мобильных и веб-приложений на F#

Покупка
Артикул: 477134.03.99
Доступ онлайн
279 ₽
В корзину
Книга рассказывает о ключевых аспектах создания облачных, мобильных и веб-решений на языке F# в комбинации с различными технологиями для платформы .NET. На практических примерах демонстрируется, как решать проблемы конкуренции, асинхронного выполнения и другие, встречающиеся на стороне сервера. Вы узнаете, как повысить свою продуктивность с помощью языка F#, интегрируя его в существующие веб-приложения или используя его для создания новых проектов. Опытные разработчики для .NET узнают, как этот выразительный язык функционального программирования помогает писать надежные и простые в сопровождении решения, легко масштабируемые и способные адаптироваться для работы на самых разных устройствах. Издание предназначено для программистов разной квалификации, желающих использовать возможности функционального программирования в своих проектах.
Мол, Д. Создание облачных, мобильных и веб-приложений на F# : практическое руководство / Д. Мол ; пер. с англ. А. Н. Киселёва. - 2-е изд. - Москва : ДМК Пресс, 2023. - 209 с. - ISBN 978-5-89818-584-8. - Текст : электронный. - URL: https://znanium.com/catalog/product/2107948 (дата обращения: 10.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Создание облачных, мобильных 
и веб-приложений на 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, Ja-
vaScript, jQuery и jQuery Mobile, позволят вам создавать удивительные 
приложения, не только соответствующие, но и превосходящие 
текущие и будущие требования к ним.
Что необходимо для опробования примеров

Для кого эта книга 

Эта книга предназначена для специалистов с опытом работы 
в .NET, слышавших о преимуществах F#, имеющих хотя бы общее 
представление о его синтаксисе, и желающих узнать, как объединять 
F# с другими технологиями для создания облачных, мобильных и 
веб-приложений. Если вы совершенно не знакомы с F#, я предлагаю 
заглянуть в другие книги, описывающие основы программирования 
на этом языке, такие как книга Криса Смита (Chris Smith) «Program-
ming F#, 3.0» (O’Reilly)1. Если вы не знакомы с другими платформами 
и фреймворками, упоминаемыми в этой книге, такими как ASP.
NET MVC, WCF, ASP.NET Web API, Windows Azure, HTML, CSS 
и/или jQuery Mobile, их описание можно найти во множестве 
других книг, где вы сможете почерпнуть всю необходимую информацию.


Что необходимо для опробования 
примеров

Большая часть примеров для этой книги была создана с помощью 
Visual Studio 2012. Для опробования примеров я рекомендую 
использовать версию Visual Studio 2012 Professional или выше; однако, 
большинство примеров будет также работать в среде F# Tools 
для Visual Studio Express 2012 for Web, анонсированной 12 сентября 
2012 в блоге команды разработчиков F#2. Загрузить F# Tools для 
Visual Studio Express 2012 for Web можно по адресу: http://www.
microsoft.com/web/gallery/install.aspx?appid=FSharpVWD11. В зависимости 
от целевой платформы или фреймворка, может потребоваться 
установить следующие инструменты:
 
ASP.NET MVC 4, можно загрузить по адресу: http://www.asp.
net/mvc/mvc4.
 
Windows Azure SDK и Developer Tools, можно загрузить по 
адресу: http://www.windowsazure.com/en-us/develop/net/.
Дополнительные библиотеки и инструменты, которые могут потребоваться, 
упоминаются в соответствующих главах.

1 Крис Смит, «Программирование на F#», ISBN: 978-5-93286-199-8, Символ-
Плюс, 2011. – Прим. перев.

2 http://bit.ly/fsharp-blog.
Предисловие

Структура книги 

В этой книге рассказывается обо всем, что необходимо знать, чтобы 
приступить к разработке облачных, мобильных и веб-приложений 
на языке F#. Кроме того, здесь описывается множество новейших 
технологий, платформ и библиотек, таких как Windows Azure, jQue-
ry Mobile, SignalR, CouchDB, RavenDB, MongoDB и других. Ниже 
подробнее описывается, что вы увидите в каждой главе.

Глава 1, «Создание веб-приложений для ASP.NET 
MVC 4 на языке F#»
В этой главе рассказывается обо всем, что необходимо знать, 
чтобы приступить к созданию веб-приложений на языке F# 
с использованием фреймворка ASP.NET MVC 4 на стороне 
сервера. Здесь также демонстрируются некоторые дополнительные 
возможности и особенности языка F#, позволяющие 
писать более элегантный код.

Глава 2, «Создание веб-служб на языке F#»
Эта глава знакомит с инструментами и понятиями, используемыми 
при создании веб-служб различных типов, включая 
службы WCF SOAP и HTTP, и особенностями взаимодействий 
с некоторыми маленькими веб-фреймворками. Здесь 
также рассказывается об инструментах и приемах модульного 
тестирования этих веб-служб.

Глава 3, «К облакам! Использование преимуществ 
Azure»
Эта глава проведет вас через создание веб-приложений и веб-
служб на языке F#, выполняющихся под управлением Win-
dows Azure. Дополнительно в ней даются примеры на F# взаимодействий 
с различными библиотеками Azure. В конце главы 
будут представлены некоторые замечательные библиотеки и 
фреймворки на F# для использования на платформе Azure.

Глава 4, «Создание масштабируемых мобильных 
и веб-приложений»
В этой главе более подробно освещаются вопросы совместного 
использования F# с другими технологиями для создания 
масштабируемых решений, позволяющими повторно 
использовать мобильные и веб-интерфейсы. Глава включает 
информацию и примеры использования веб-сокетов, библио-
теки SignalR, различных баз данных NoSQL, и многих других 
механизмов.

Глава 5, «Разработка интерфейсов в функциональном 
стиле»
Эта глава знакомит с LiveScript, Pit и WebSharper – инструментами, 
позволяющими, кроме всего прочего, писать клиентский 
код в функциональном стиле. Они делают возможным 
создавать комплексные веб-стеки с использованием концепций 
функционального программирования. Для каждого инструмента 
перечисляются его преимущества, начальная информация 
и примеры использования.

В конце книги вы найдете несколько приложений с информацией, 
которая может вам пригодиться в освоении приемов разработки 
ультрасовременных облачных, мобильных и веб-приложений, но не 
относящаяся к темам, обсуждаемым в основных главах.

Приложение A, «Полезные инструменты и библиотеки»
Здесь перечисляются и коротко описываются некоторые инструменты, 
которые могут облегчить вам жизнь, как разработчика 
облачных, мобильных и веб-решений.

Приложение B, «Полезные веб-сайты»
Здесь приводятся ссылки на веб-сайты, предлагающие информацию 
о языке F#, а также инструменты и библиотеки, 
упоминаемые в книге.

Приложение C, «Клиентские технологии, совместимые 
с F#»
Здесь дается краткий обзор некоторых технологий, дополняющих 
F# при разработке мобильных и веб-приложений.

Типографские соглашения

В этой книге приняты следующие соглашения:
Курсив
Курсив применяется для выделения новых терминов, имен 
файлов и их расширений.

Моноширинный шрифт
Применяется для представления листингов программного кода, 
а также в основном тексте для выделения элементов про-

Типографские соглашения
Предисловие

грамм, таких как имена переменных и функций, базы данных, 
типы данных, переменные окружения, инструкции и ключевые 
слова.

Моноширинный жирный
Используется для выделения команд или другого текста, которые 
должны вводиться пользователем.

Моноширинный наклонный
Обозначает текст, который должен замещаться фактическими 
значениями, вводимыми пользователем или определяемыми 
из контекста.

Примечание. Так обозначаются советы, предложения и примечания 
общего характера.

Внимание. Так обозначаются предупреждения и предостережения.

Использование программного кода 
примеров

Данная книга призвана оказать вам помощь в решении ваших задач. 
Вы можете свободно использовать примеры программного кода 
из этой книги в своих приложениях и в документации. Вам не нужно 
обращаться в издательство за разрешением, если вы не собираетесь 
воспроизводить существенные части программного кода. Например, 
если вы разрабатываете программу и используете в ней несколько 
отрывков программного кода из книги, вам не нужно обращаться за 
разрешением. Однако в случае продажи или распространения компакт-
дисков с примерами из этой книги вам необходимо получить 
разрешение от издательства O’Reilly. Если вы отвечаете на вопросы, 
цитируя данную книгу или примеры из нее, получение разрешения 
не требуется. Но при включении существенных объемов программного 
кода примеров из этой книги в вашу документацию, вам необходимо 
будет получить разрешение издательства.
Мы приветствуем, но не требуем добавлять ссылку на первоисточник 
при цитировании. Под ссылкой на первоисточник мы 
подразумеваем указание авторов, издательства и ISBN. Например: 
«Building Web, Cloud, and Mobile Solutions with F# by Daniel Mohl 
(O’Reilly). Copyright 2013 Daniel Mohl, 978-1-449-33376-8».
За получением разрешения на использование значительных объемов 
программного кода примеров из этой книги обращайтесь по 
адресу permissions@oreilly.com.

Safari® Books Online

Safari Books Online (www.safaribooksonline.com) – это виртуальная 
библиотека, содержащая авторитетную информацию в виде книг 
и видеоматериалов, созданных ведущими специалистами в области 
технологий и бизнеса.
Профессионалы в области технологии, разработчики программного 
обеспечения, веб-дизайнеры, а также бизнесмены и творческие 
работники используют Safari Books Online как основной источник 
информации для проведения исследований, решения проблем, обучения 
и подготовки к сертификационным испытаниям.
Библиотека Safari Books Online предлагает широкий выбор продуктов 
и тарифов для организаций, правительственных учреждений и 
физических лиц. Подписчики имеют доступ к поисковой базе данных, 
содержащей информацию о тысячах книг, видеоматериалов и рукописей 
от таких издателей, как O’Reilly Media, Prentice Hall Professional, 
Addison-Wesly Professional, Microsoft Press, Sams, Que, Peachpit Press, 
Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, 
IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New 
Riders, McGraw-Hill, Jones & Bartlett, Course Technology и десятков 
других. За подробной информацией о Safari Books Online обращайтесь 
по адресу: http://www.safaribooksonline.com/.

Как с нами связаться

С вопросами и предложениями, касающимися этой книги, обращайтесь 
в издательство:

O’Reilly Media
1005 Gravenstein Highway North
Sebastopol, CA 95472
800-998-9938 (в Соединенных Штатах Америки или в Канаде)
707-829-0515 (международный)
707-829-0104 (факс)

Список опечаток, файлы с примерами и другую дополнительную 
информацию вы найдете на сайте книги: http://oreil.ly/building-web.

Как с нами связаться
Доступ онлайн
279 ₽
В корзину