Использование Dapper C# в программировании
Авторы: Отинчиев Асет Кайратович, Касенова Лейла Галимбековна
Рубрика: 1. Информатика и кибернетика
Опубликовано в
Дата публикации: 31.01.2019
Статья просмотрена: 2100 раз
Библиографическое описание:
Отинчиев, А. К. Использование Dapper C# в программировании / А. К. Отинчиев, Л. Г. Касенова. — Текст : непосредственный // Актуальные вопросы технических наук : материалы V Междунар. науч. конф. (г. Санкт-Петербург, февраль 2019 г.). — Санкт-Петербург : Свое издательство, 2019. — С. 5-8. — URL: https://moluch.ru/conf/tech/archive/324/14815/ (дата обращения: 16.11.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
Похожие статьи
Контейнеризация как современный способ виртуализации
В данной статье рассматривается контейнеризация как эффективный способ виртуализации для различных приложений (сервисов). Также приведен пример создания простейшего dokcer контейнера.
Многопоточность в языке Swift
В статье рассмотрим основной способ выполнять код асинхронно, который используется в iOS приложениях. Подробно разобран основной функционал Grand Central Dispatch (GCD) и сценарии, в которых можно реализовать многопоточность с его помощью.
Абстрактные и динамически сгенерированные контроллеры в ASP.NET
В данной статье будет рассмотрен подход автоматически сгенерированных контроллеров в одной из самых популярных технологий для написания веб-сайтов — ASP.NET Core MVC.
Защита веб-приложения на фреймворке Django
При проектировании веб-приложения важна защита пользовательских данных. В данной статье рассмотрим основные типы атак и методы защиты на фреймворке Django.
Сравнительный анализ библиотек языка PHP для формирования документов веб- сервисами
Задача автоматического создания файлов часто встает перед web- разработчиками, в частности в сфере разработки платформенных решений для транспорта. Для упрощения процесса формирования документов существует несколько библиотек для языка PHP. В статье ...
Обзор надежности систем загрузки журнальных записей в Big Data
Данная статья фокусируется на обзоре методов надежности ныне существующих систем для загрузки журнальных записей и их реализации. Дано определение надежности таких систем. Определены методы загрузки. Освещена особенность систем потоковой обработки в ...
Язык программирования Python. Библиотеки Python
Язык программирования Python — это высокоуровневый и интерпретируемый язык программирования, который был создан Гвидо Ван Россумом в 1989 году и выпущен в 1991 году, которые «автоматизируют скучные вещи» (как выразилась одна популярная книга по изуче...
Востребованные backend-технологии для разработки программного продукта
В статье авторы определяют востребованные backend-технологии для разработки программного продукта.
PlantUML: создание диаграмм с использованием текстового синтаксиса
В статье автор рассматривает PlantUML как эффективный инструмент для создания диаграмм в разработке программного обеспечения, преимущества использования текстового синтаксиса, разнообразие поддерживаемых диаграмм.
Создание BPM-системы на основе базы данных SQL при поддержке технологии REST API
В статье авторы пытаются определить технологии и механизмы работы bpm системы, написанной на чистом SQL, при поддержке технологии REST API для интероперабельности системы.
Похожие статьи
Контейнеризация как современный способ виртуализации
В данной статье рассматривается контейнеризация как эффективный способ виртуализации для различных приложений (сервисов). Также приведен пример создания простейшего dokcer контейнера.
Многопоточность в языке Swift
В статье рассмотрим основной способ выполнять код асинхронно, который используется в iOS приложениях. Подробно разобран основной функционал Grand Central Dispatch (GCD) и сценарии, в которых можно реализовать многопоточность с его помощью.
Абстрактные и динамически сгенерированные контроллеры в ASP.NET
В данной статье будет рассмотрен подход автоматически сгенерированных контроллеров в одной из самых популярных технологий для написания веб-сайтов — ASP.NET Core MVC.
Защита веб-приложения на фреймворке Django
При проектировании веб-приложения важна защита пользовательских данных. В данной статье рассмотрим основные типы атак и методы защиты на фреймворке Django.
Сравнительный анализ библиотек языка PHP для формирования документов веб- сервисами
Задача автоматического создания файлов часто встает перед web- разработчиками, в частности в сфере разработки платформенных решений для транспорта. Для упрощения процесса формирования документов существует несколько библиотек для языка PHP. В статье ...
Обзор надежности систем загрузки журнальных записей в Big Data
Данная статья фокусируется на обзоре методов надежности ныне существующих систем для загрузки журнальных записей и их реализации. Дано определение надежности таких систем. Определены методы загрузки. Освещена особенность систем потоковой обработки в ...
Язык программирования Python. Библиотеки Python
Язык программирования Python — это высокоуровневый и интерпретируемый язык программирования, который был создан Гвидо Ван Россумом в 1989 году и выпущен в 1991 году, которые «автоматизируют скучные вещи» (как выразилась одна популярная книга по изуче...
Востребованные backend-технологии для разработки программного продукта
В статье авторы определяют востребованные backend-технологии для разработки программного продукта.
PlantUML: создание диаграмм с использованием текстового синтаксиса
В статье автор рассматривает PlantUML как эффективный инструмент для создания диаграмм в разработке программного обеспечения, преимущества использования текстового синтаксиса, разнообразие поддерживаемых диаграмм.
Создание BPM-системы на основе базы данных SQL при поддержке технологии REST API
В статье авторы пытаются определить технологии и механизмы работы bpm системы, написанной на чистом SQL, при поддержке технологии REST API для интероперабельности системы.