Использование Dapper C# в программировании
Авторы: Отинчиев Асет Кайратович, Касенова Лейла Галимбековна
Рубрика: 1. Информатика и кибернетика
Опубликовано в
Дата публикации: 31.01.2019
Статья просмотрена: 2100 раз
Библиографическое описание:
Отинчиев, А. К. Использование Dapper C# в программировании / А. К. Отинчиев, Л. Г. Касенова. — Текст : непосредственный // Актуальные вопросы технических наук : материалы V Междунар. науч. конф. (г. Санкт-Петербург, февраль 2019 г.). — Санкт-Петербург : Свое издательство, 2019. — С. 5-8. — URL: https://moluch.ru/conf/tech/archive/324/14815/ (дата обращения: 20.09.2024).
В данной статье рассматривается проблема обработки больших данных в современных системах. Возможность использования инновационной программы для качественной, быстрой и легкодоступной системы.
Ключевые слова: sql, C#, кросс-платформенность, open source, CRUD методы.
This article presents the problems of big data processing in modern systems. The ability to use innovative programs for high-quality, fast and easily accessible system.
Keywords: sql, C#, cross-platform, open source, CRUD methods
Dapper ASP.NET CORE — инструмент созданный компание Stack Exchange, который преобразует результаты sql запросов с классами C#. У Dapper есть схожести с Entity Framework. Благодаря своему малому весу Dapper предоставляет высокую производительность и позволяет выполнять запросы быстрее, чем EF Core, а так же быстрее Entity Framework в 10 раз(Рис 1). Dapper применяется в работе сайта stackoverflow.com, на котором разработчики со всего мира могут задавать ответы по программированию и получать качественные ответы.
Рис. 1. Сравнение скоростей
Платформа ASP.NET Core технология от компании Microsoft, предназначенную для создания веб-приложений: от простых веб-сайтов до огромных веб-порталов и веб-сервисов.
ASP.NET Core представляет собой следующим этапом развития платформы ASP.NET. Но с другой стороны, это не просто очередной релиз. Появление ASP.NET Core в действительности означает революцию всей платформы, ее качественное изменение. Создание платформы началась еще в 2014 году. Первое название платформы условно называлась ASP.NET vNext. В июне 2016 года вышел первый релиз платформы. А в мае 2018 года вышла версия ASP.NET Core 2.1. ASP.NET Core теперь полностью является opensource-фреймворком.
В качестве инструментария разработки мы можем использовать последние выпуски Visual Studio, начиная с версии Visual Studio 2015. Кроме того, мы можем создавать приложения в среде Visual Studio Code, которая является кросс-платформенной и может работать как на Windows, так и на Mac OS X и Linux. Для обработки запросов теперь используется новый конвейер HTTP, который основан на компонентах Katana и спецификации OWIN. А его модульность позволяет легко добавить свои собственные компоненты. Если суммировать, то можно выделить следующие ключевые отличия ASP.NET Core от предыдущих версий ASP.NET:
Переработанный легковесный и модульный конвейер HTTP-запросов
Возможность развертывать приложение как на IIS, так и в рамках своего собственного процесса
Использование пакетов платформы через NuGet
Единый стек веб-разработки, сочетающий Web UI и Web API Конфигурация для упрощенного использования в облаке
Встроенная поддержка для внедрения зависимостей
Расширяемость
Кроссплатформенность: возможность разработки и развертывания приложений ASP.NET на Mac, Windows и Linux
Развитие как open source, открытость к изменениям
Для работы нужно подключить в Nuget Dapper (Рис 2)
Рис. 2. Nuget Dapper
Проект можно разделить по папкам для оптимальной работы (Рис 3), Content используется для хранения фотографий и файлов HTML & CSS, Controller центральный компонент в архитектуре проекта, отвечающий за вводом пользователя, обработкой данными и возврату результата, Helpers методы которые часто вызываются, для того чтобы не писать огромный код каждый раз, его можно создать как хелпер и вызывать его, данная механика убирает лишние строки кода, requests это DTO (DTO это Data Transfer Object — шаблон проектирования, использующийся для передачи информации между подсистемами приложения) которые принимают данные с FrontEnd, Domain Models модели принимаемых данных, Repositories классы которые содержат запросы к базе MsSql.
Рис. 3.
В Dapper можно использовать CRUD методы (Create, Read, Update, Delete).
Существуют специальные запросы, которые могут ускорить процесс сбора данных и комфортного чтения кода.
Рассмотрим на модели User:
[Table(“Project.Department_User”)]
public class ProjectsUsers
{
public Guid Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public string Grade { get; set;}
}
Примеры Read:
1) public IEnumerable< ProjectsUsers > List()
{
var sql = “SELECT * FROM Project.Department_User ”
return Connection.Query< ProjectsUsers >(sql);
}
2) public IEnumerable< ProjectsUsers > List()
{
Return Connection.GetAll< ProjectsUsers >();
}
В данном случае мы можем увидеть, что в первом примере создается переменная sql в которую мы записываем запрос в базу данных, названия таблиц может быть довольно длинными и нечитабельными
Во втором примере наглядно видно, что вызывается метод GetAll(), этот запрос записан в библиотеке Dapper, данная форма вызова оптимальна, читабельна для разработчика и требует меньше строк кода, что может сыграть на скорости выполнения задач.
Примеры Update:
1) public void Update(ProjectsUsers users)
{
var sql = @”
UPDATE Project.Department_User
SET firstName = @firstname,
lastName = @lastName,
age = @age,
grade = @grade
WHERE id = @id ”;
}
return Connection.Execute(sql);
2) public void Update(ProjectsUsers users)
{
Connection.Update(users);
}
При обновлении таблицы Project.Department_User заметно как отличаются запросы к базе данных, в первом примере мы вводим каждую строку из модели ProjectsUsers и таких моделей может быть множество, что может сказаться на быстродействии, во втором примере все просто написано в одну строку.
Dapper на данный момент один из самых удобных инструментов для работы с большими данными, прост в освоении, универсальный для API, высокопроизводительный, скоростной и легковесный ORM.
Литература:
- Kevin Davis, Notoriously Dapper: How to Be a Modern Gentleman with Manners, Style and Body Confidence Paperback.
- Ben Albahari, C# 6.0 in a Nutshell: The Definitive Reference.
- Maheshwari, Data Analytics Made Accessible.
- Simon, Too Big to Ignore: The Business Case for Big Data
Похожие статьи
Оптимизация взаимодействия web-приложения с базой данных...
В данной работе проведено исследование производительности ORM-библиотек, на основании которого выбрана библиотека для работы с. Оптимизация взаимодействия web-приложения с базой данных в информационно-исследовательской системе «Шлаковые расплавы».
Слушатель события обновления сцены. Кадронезависимое...
Приводится решение кадронезависимого движения в приложениях под Android на примере классов фреймворка PeeKaBoo. Описывается создание слушателя обновления сцены, зависящего от времени, выбранного разработчиком игры.
Модификация архитектуры web-приложения, основанной на...
В работе рассматривается способ организации архитектуры web-приложения на основе паттерна CQRS. В основе архитектуры лежит разделение на write- и read- модели, которые используют SQL и NoSql базы данных. Результатом применения архитектуры стало возможность...
Исследование производительности ASP.NET-приложений
− Использование HTTP-сжатия. Это самое простое правило, так как для его соблюдения чаще всего не требуется дополнительных затрат
Причем в ASP.NET реализованы так называемые профили кэширования. Они позволяют заранее создать в файле web.config настройки...
Системы сбора информации в аспекте кибербезопасности
Легкость настройки системы. Минимальная нагрузка системы на узлы. Универсальная система, не зависящая от ОС, используемой на узлах.
– Система должна иметь возможность извлекать данные анализа для визуализации через API или иметь средство визуализации данных анализа.
Эволюция веб-фреймворков Microsoft. ASP.NET vNext (ASP.NET 5)
Данная статья рассказывает о платформе Microsoft.NET Framework и технологии создания веб-приложений и веб-сервисов от вышеупомянутой компании — ASP.NET. Описывается история развития данной технологии и последние новшества, такие как ASP.NET vNext.
Интеграция Telegram-ботов в информационных системах
В статье раскрывается понятие о создания Telegram ботов для автоматизации получения информации с информационных систем. Даются определения информационной системы и интеграции с базой данных. Делается вывод, что с помощью ботов можно получить...
Организация сбора технологических данных с буровой и передачи...
Автоматизация технологического процесса составляет важную часть научно-технического прогресса в проведении геологоразведочных работ. Теоретические исследования в области совершенствования управления процессом бурения и его оптимизации получили новые...
Ключевые слова научной статьи
Нет параметров.
Похожие статьи
Оптимизация взаимодействия web-приложения с базой данных...
В данной работе проведено исследование производительности ORM-библиотек, на основании которого выбрана библиотека для работы с. Оптимизация взаимодействия web-приложения с базой данных в информационно-исследовательской системе «Шлаковые расплавы».
Слушатель события обновления сцены. Кадронезависимое...
Приводится решение кадронезависимого движения в приложениях под Android на примере классов фреймворка PeeKaBoo. Описывается создание слушателя обновления сцены, зависящего от времени, выбранного разработчиком игры.
Модификация архитектуры web-приложения, основанной на...
В работе рассматривается способ организации архитектуры web-приложения на основе паттерна CQRS. В основе архитектуры лежит разделение на write- и read- модели, которые используют SQL и NoSql базы данных. Результатом применения архитектуры стало возможность...
Исследование производительности ASP.NET-приложений
− Использование HTTP-сжатия. Это самое простое правило, так как для его соблюдения чаще всего не требуется дополнительных затрат
Причем в ASP.NET реализованы так называемые профили кэширования. Они позволяют заранее создать в файле web.config настройки...
Системы сбора информации в аспекте кибербезопасности
Легкость настройки системы. Минимальная нагрузка системы на узлы. Универсальная система, не зависящая от ОС, используемой на узлах.
– Система должна иметь возможность извлекать данные анализа для визуализации через API или иметь средство визуализации данных анализа.
Эволюция веб-фреймворков Microsoft. ASP.NET vNext (ASP.NET 5)
Данная статья рассказывает о платформе Microsoft.NET Framework и технологии создания веб-приложений и веб-сервисов от вышеупомянутой компании — ASP.NET. Описывается история развития данной технологии и последние новшества, такие как ASP.NET vNext.
Интеграция Telegram-ботов в информационных системах
В статье раскрывается понятие о создания Telegram ботов для автоматизации получения информации с информационных систем. Даются определения информационной системы и интеграции с базой данных. Делается вывод, что с помощью ботов можно получить...
Организация сбора технологических данных с буровой и передачи...
Автоматизация технологического процесса составляет важную часть научно-технического прогресса в проведении геологоразведочных работ. Теоретические исследования в области совершенствования управления процессом бурения и его оптимизации получили новые...
Ключевые слова научной статьи
Нет параметров.