Слайды со встречи http://getdev.net/Event/webapi
Платформа ASP.NET Web API позволяет с легкостью создавать службы HTTP для широкого диапазона клиентов, включая браузеры и мобильные устройства. ASP.NET Web API идеально подходит для разработки приложений RESTful на платформе .NET Framework. Будут упомянуты понятия REST и отличие REST-пути от RPC (WCF)-пути, рассмотрен стандарт OData, сказаны слова OWIN и Katana
Презентация с технической секции #BitByte - фестиваля профессионального развития, который прошел 19 мая в Санкт-Петербурге.
Даниил Павлючков, Team Lead компании ITMozg: «REST: от GET до HMAC или как создать качественное REST API».
Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта".Badoo Development
О чем доклад:
- Как в нашем проекте устроен Zabbix, применяемые нами способы автоматизации, собственные методы "дискавери" серверов и сервисов. Плюс как правильно держать Zabbix под высокой нагрузкой и не упираться в ресурсы серверов.
- Для чего мы используем Pinba, какие именно метрики помогают нам узнать о реальных проблемах пользователей.
- Как мы храним графики в RRD. Мониторинг этих графиков: User activity monitoring.
- Zabbix -> RRD => Capacity Planning.
Как быстро найти слабые места среди кластеров в десятки и сотни нод.
Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...Ontico
1. Описание предметной области, объектов и понятий, с которыми работает приложение.
2. Выделение сущностей и связей между сущностями, представление в терминах ORM.
3. Описание конфигурации ORM и ObjectCache.
4. Работа с БД
- применение паттерна Команда и Компоновщик для выполнения операций на БД;
- конфигурация исполнителя команд;
- команда как транзакция в БД;
- инструменты, доступные ORMLite для реализации транзакций.
5. Проблема доступа из UI потока к данным, изменяемым в других потоках.
6. Memoization подход для решения проблемы доступа из разных потоков.
7. Описание архитектуры кэшей с применением memoization.
8. Задача поддержания когерентности кэшей;
- использование HaMeR framework для актуализации UI кэша;
- использование механизма блокировок и батч-операций над данными в кэшах.
9. Ограничения ORM ObjectCache при работе с объектами DAO.
10. Реализация DAO с расширенными возможностями работы с ObjectCache.
Разработка мобильного и веб интерфейса для CachéInterSystems CEE
Клиент, сервер и их взаимодействие, разработка веб и мобильных приложений, Лебедюк Эдуард /
Client & server overview & communication between them, how to develop mobile apps based on existing webapp, Eduard Lebedyuk
Презентация с технической секции #BitByte - фестиваля профессионального развития, который прошел 19 мая в Санкт-Петербурге.
Даниил Павлючков, Team Lead компании ITMozg: «REST: от GET до HMAC или как создать качественное REST API».
Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта".Badoo Development
О чем доклад:
- Как в нашем проекте устроен Zabbix, применяемые нами способы автоматизации, собственные методы "дискавери" серверов и сервисов. Плюс как правильно держать Zabbix под высокой нагрузкой и не упираться в ресурсы серверов.
- Для чего мы используем Pinba, какие именно метрики помогают нам узнать о реальных проблемах пользователей.
- Как мы храним графики в RRD. Мониторинг этих графиков: User activity monitoring.
- Zabbix -> RRD => Capacity Planning.
Как быстро найти слабые места среди кластеров в десятки и сотни нод.
Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...Ontico
1. Описание предметной области, объектов и понятий, с которыми работает приложение.
2. Выделение сущностей и связей между сущностями, представление в терминах ORM.
3. Описание конфигурации ORM и ObjectCache.
4. Работа с БД
- применение паттерна Команда и Компоновщик для выполнения операций на БД;
- конфигурация исполнителя команд;
- команда как транзакция в БД;
- инструменты, доступные ORMLite для реализации транзакций.
5. Проблема доступа из UI потока к данным, изменяемым в других потоках.
6. Memoization подход для решения проблемы доступа из разных потоков.
7. Описание архитектуры кэшей с применением memoization.
8. Задача поддержания когерентности кэшей;
- использование HaMeR framework для актуализации UI кэша;
- использование механизма блокировок и батч-операций над данными в кэшах.
9. Ограничения ORM ObjectCache при работе с объектами DAO.
10. Реализация DAO с расширенными возможностями работы с ObjectCache.
Разработка мобильного и веб интерфейса для CachéInterSystems CEE
Клиент, сервер и их взаимодействие, разработка веб и мобильных приложений, Лебедюк Эдуард /
Client & server overview & communication between them, how to develop mobile apps based on existing webapp, Eduard Lebedyuk
Многофункциональный сервер приложений, обеспечивающий среду запуска на одном сервере и группе серверов, дающий полный набор инструментов для создания прикладного программного обеспечения.
Видео с доклада: http://getdev.net/Event/asp-net-mvc-4
Доклад об ASP.NET MVC, откуда и зачем он появился, какие задачи решает, какой подход к разработке исповедует. Этот доклад больше пригодится тем, кто хочет углубить и структурировать свои знания об ASP.NET MVC
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»Yulia Tsisyk
Ни один современный продукт не обходится без API. Этот API может быть внешним, для публичного использования, а может быть сугубо внутренним, но требования к созданию расширяемого, версионируемого, тестируемого, документированного программного интерфейса очень похоже. В этом докладе мы поговорим о том, как создавать подобные API на основе REST, какие существуют best-practices, чего следует избегать, на что обращать внимание при проектировании.
Нагрузочное тестирование API. Как летать, а не ползать?IT61
Вячеслав Марков, инженер по автоматизированному тестированию в Distillery, расскажет об особенностях нагрузочного тестирования REST API с помощью JMeter.
Вот что пишет Вячеслав: "Вместе со слушателями постараемся разобраться, каким аспектам нагрузочного тестирования стоит уделить наибольшее внимание. Порассуждаем о том, как составить реалистичный тестовый сценарий и выясним, чем же так хорош JMeter. В заключении уделим немного внимания стресс-тестированию."
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...WDDay
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»
Online WDDay 2021
https://wdday.org/
Facebook: https://www.facebook.com/wdday.org
Linkedin: https://www.linkedin.com/company/wdday
Слайды доклада https://getdev.net/Event/go-language
Зачем придумали Go и что нам с этим делать
Доклад будет про историю возникновения, про основы синтаксиса, сферы применения и чуточку залезть под капот главной фишки языка - goroutines.
Leap Motion - игрушка с заделом на будущееGetDev.NET
Leap Motion - это контроллер ввода путем захвата движений с использованием одноименной технологии. На встрече мы рассмотрим аппаратную часть, готовые программные решения и некоторые смежные технологии.
Нескучная гирлянда на новогодние праздники и приятная подсветка в течение года. Программируем ардуино со смартфона по блютусу.
Материалы со встречи:
https://getdev.net/Event/arduino
Mind Mapping, или как заставить свой мозг работать лучшеGetDev.NET
Слайды со встречи https://getdev.net/Event/mind-mapping
На встрече пойдет речь о том, что же это за зверь такой - ментальная карта, почему эта техника визуализации так популярна, где и зачем ее использовать, и как с ее помощью познать Силу
По традиции приглашаем вас на встречу с кратким обзором новых функций обновленной версии среды разработки Visual Studio 2015. Мы также поговорим о кроссплатформенной разработке для мобильных платформ, изменениях в веб-стеке, новой версии языка C# и open source инициативах Microsoft
Материалы со встречи:
https://getdev.net/Event/docker
Docker: зачем нужен и почему выстрелил? Контейнеры против виртуальных машин - кто лучше? Docker на Windows: как и когда? А также демо: создание и deploy контейнера на ваших глазах
Windows 10 для пользователей и разработчиковGetDev.NET
Чего ждать от Windows 10, выходящей летом 2015 года? Рассказ про улучшения для разработчиков приложений для Магазина Windows и про исправления досадных недоразумений, к которым все давно привыкли.
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКGetDev.NET
Видео со встречи: http://getdev.net/Event/phonegap
Кратко поговорим о том как появился, как развивался, что внутри. Рассмотрим явные косяки и неприкрытые плюсы PhoneGap пути. Обратим внимание на скрытые проблемы, которые вы непременно найдёте при активной разработке. Рассмотрим позитивные моменты, которые никто не замечает, но они то есть. Потыкаем существующий инструментарий и варианты интеграции. И решим, где стоит применять PhoneGap и стоит ли вообще.
Видеозапись со встречи:
http://getdev.net/Event/vs2013
Всего год прошел с выпуска Visual Studio 2012, а разработчики уже могут пользоваться новой версией. Так ли много изменений? Зачем обновленная IDE спрашивает логин и пароль? Можно ли отлаживать свой код по дороге в офис прямо с планшета?
Видеозапись встречи:
http://getdev.net/Event/angularjs
Стремительно набирающий популярность фреймворк, облегчающий создание клиентских приложений. SPA, MVC, MVVM и множество других облегчающих разработку акронимов.
В докладе предполагается общий обзор, показывающий отдельные части, из которых состоит фреймворк, то, как они живут вместе друг с другом и существуют в окружающем мире страниц, серверов и источников данных.
Видеозапись встречи:
http://getdev.net/Event/typescript
TypeScript - язык программирования от Microsoft, который является надмножеством JavaScript. Он поддерживает статическую типизацию, модули, определение классов и интерфейсов и транслируется в чистый JS. Спецификации языка открыты, а код компилятора распространяется под лицензией Apache.
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...GetDev.NET
Материалы со встречи: http://getdev.net/Event/xaf-reuse
Задумывались ли вы когда-нибудь, что с переходом от SQL к DataSet, а затем и к ORM типа Entity Framework развитие технологий для доступа и управления данными приостановилось? Что еще нового можно придумать к уже привычному оперированию записями таблиц БД как объектами CRL и при этом поднять удобство разработчика на следующий уровень? На этот и другие вопросы попробует дать ответ доклад о технологии Domain Components (часть DevExpress eXpressApp Framework), которая облегчает создание повторно используемых бизнес моделей за счет легкого комбинирования путем использования интерфейсов вместо классов (это позволяет вам эмулировать "множественное наследование" в C# и VB.NET), а также свободы от особенностей конкретной ORM.
Видео со встречи:
http://getdev.net/Event/lego-mindstorms
Совместный доклад Сергея Шебанина и Дмитрия Филиппова. Конструктор для создания программируемого робота. Расширение возможностей программирования до физического контакта с предметами. Внутренности, комплектация, технические параметры сенсоров и приводов. Как программировать - графический вариант и обычный текстовый. Какие есть варианты креплений и подвижных соединений. Простейшие алгоритмы слежения за линией (с примером на NXC).
Особенности мобильной платформы Windows Phone 8GetDev.NET
Видеозапись и материалы доклада: http://getdev.net/Event/wp8
Можно ли писать приложения на C++? Правда ли, что у Windows 8 и Windows Phone 8 единое ядро? Будет ли аналог Siri в новых смартфонах? Вся правда о новой мобильной платформе от Microsoft только на GetDev.NET!
Материалы с доклада: http://getdev.net/Event/async-javascript
Рассказ о том, как работает асинхронность в JavaScript, кто стоит в очереди выполнения, почему в JavaScript никогда не будет процессорной гонки, как давать отсроченные обещания и что делать, если одна из ваших функций подхватила заразу асинхронности
Видео со встречи: http://getdev.net/Event/xaml
Доклад посвящен XAML — основанному на XML языку разметки для декларативного программирования приложений. Он является основой технологий WPF и Silverlight, a также используется в WinRT.
Видео и материалы со встречи:
http://getdev.net/Event/dynamic-language-runtime
В докладе рассмотрим скриптовые языки на платформе DLR, способы автоматизации рутинной работы с их помощью, а также интегрирование в конечное приложение.
Видео со встречи: http://getdev.net/Event/javascript-good-form
Рассказ о том, как в приличном обществе принято структурировать свой JavaScript, разбивать его на отдельные логические единицы, инкапсулировать его от внешней среды, подключать скрипты к своему веб-приложению, и организовывать процесс юнит-тестирования и как заменять им компилятор
Видео со встречи - http://getdev.net/Event/roslyn
Roslyn Project - это компилятор, который предоставляет разработчику API для доступа к его внутренним данным. Теперь можно анализировать код, проводить его модификацию и создавать дополнительную функциональность для .NET-языков.
Видеозапись доклада: http://getdev.net/Event/asp-net-mvc-4
Обзор возможностей новой версии платформы ASP.NET MVC 4. Web API, Bundling & Minification, разработка для мобильных устройств, Single-Page Web Applications, а также другие, не столь крупные, нововведения.
2. ASP.NET Web API – история
▪ Первый релиз – 2012 год
▪ Текущая версия
Web API 2.1 – 20 января 2014 года
▪ Перерождение WCF
3. Эволюция доступа к данным
▪ RPC (SOAP, WCF) -> REST
▪ От абстракции – возвращение к четко определенному протоколу HTTP
▪ RPC – Remote Procedure Call – удалѐнный вызов кода на серверной стороне
посредством магии
▪ Подход RPC позволяет использовать небольшое количество сетевых
ресурсов с большим количеством методов и сложным протоколом. При
подходе REST количество методов и сложность протокола строго
ограничены, из-за чего количество отдельных ресурсов может быть
большим.
4. Representational state transfer (REST)
▪ REST (сокр. англ. Representational State Transfer, «передача состояния
представления»[1] или «передача репрезентативного состояния») — стиль
построения архитектуры распределенного приложения. Был описан и
популяризован в 2000 году Роем Филдингом (Roy Fielding), одним из
создателей протокола HTTP. Самой известной системой, построенной в
значительной степени по архитектуре REST, является
современная Всемирная паутина.
▪ Данные в REST должны передаваться в виде небольшого количества
стандартных форматов (например HTML, XML, JSON). Сетевой протокол
(как и HTTP) должен поддерживать кэширование, не должен зависеть от
сетевого слоя, не должен сохранять информацию о состоянии между
парами «запрос-ответ». Утверждается, что такой подход обеспечивает
масштабируемость системы и позволяет ей эволюционировать с новыми
требованиями.
5. REST <-> HTTP
▪ Методы HTTP, используемые в REST, определяют тип совершаемой
операции
▪ GET – получение существующих сущностей
▪ POST – модификация существующих сущностей
▪ PUT – создание сущностей
▪ PUT DELETE – как слышится, так и пишется
6. REST
▪ Вызываемый метод определяется адресом URI и методом Verb
▪ Отсутствие состояния у системы (stateless система – в противоположность
statefull системе)
▪ Кэширование
8. Контроллеры и методы
▪ Рекомендованный путь – один контроллер на одну сущность данных
BookController
AuthorController
ReaderController
▪ Каждый контроллер содержит множество методов
▪ Имя метода (action) сопоставляется c методом (verb) запроса
EventController: ApiContoller{
public Event GetMyCoolEvent() {
return new Event();
}
}
Данный метод сопоставляется со всеми GET-запросами. Остаток имени
(MyCoolEvent) игнорируется
Если Get*-методов несколько – выбирается первый соответствующий по
параметрам
▪ Параметры могу приходить из URL, в HTTP-заголовках или из тела запроса (для
POST/PUT/DELETE запросов)
9. Роутинг
▪ При разработке устанавливаются правила соответствия пришедшего
запроса и наших классов *Controller и их методов
▪ В пришедшем запросе (по умолчанию) смотрят на:
o путь (URL)
o HTTP-метод (GET, POST, PUT, UPDATE)
▪ Классический подход, пришедший из ASP.NET MVC – заполнение набора
правил роутинга
▪ Новый подход – установка атрибутов на действия
10. OData
▪ Стандарт протокола запросов при обращении к данным
▪ Попытка Майкрософт и К стандартизовать язык запросов к REST-сервисам
▪ Задает стандартные операции над сущностями –
фильтрация, сортировка, разбиение на страницы и получение связанных
сущностей
11. Odata и Web API 2.1
▪ Поддерживаемые Web API v.2.1 операции:
$filter – фильтрация выборки
$orderby - сортировка
$top/$skip – первые N записей и пропуск первых N записей; разбиение на
страницы
$inlinecount – добавляет в ответ информацию о количестве
записей, удовлетворяющих условию
$select – выбор того, какие данные сущности будут возвращены
$expand – позволяет как результат запроса к сущностям одного типа
получить также связанные сущности другого типа (например, при запросе к
данным о книгах – получить в том же запросе ответ об авторах этих книг)
▪ По умолчанию выключены, включаются централизованно либо
для нужных методов через атрибуты
14. Справка по API
▪ Web API из коробки поддерживает возможность автоматического создания
справочных страниц на основе сгенерированного Web API
▪ Туда собираются данные об известных сущностях, поддерживаемых
операциях и URL-адресах
▪ Если необходима тонкая настройка – возможен непосредственный доступ к
данным через ApiExplorer
16. Размещение Web API
▪ Классическое – как часть ASP.NET сайта на IIS
▪ Self-hosting – возможность встроить Web API куда угодно (в разного рода
демонстрациях – в консольное приложение, в реальной жизни – в Windows-
сервисы)
▪ OWIN – то же самое, что и предыдущий пункт, но по-новому
Open Web Interface for .NET
Новая реализация стэка работы с сетью по протоколу HTTP, не привязанная
к IIS вообще и к System.Web.dll в частности
17. Интересное чтение
▪ Официальный сайт. Документация, примеры и статьи
http://asp.net/web-api
▪ REST на Википедии
▪ ASP.NET MVC 4 and the Web API: Building a REST Service from Start to Finish
by Jamie Kurtz
▪ OData
http://www.odata.org