Тип работы:
Предмет:
Язык работы:


РАЗРАБОТКА БИБЛИОТЕКИ ДЛЯ ENTITY FRAMEWORK, УСКОРЯЮЩЕЙ ОПЕРАЦИИ НАД МНОЖЕСТВОМ СУЩНОСТЕЙ

Работа №191144

Тип работы

Дипломные работы, ВКР

Предмет

математика

Объем работы50
Год сдачи2020
Стоимость4700 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
12
Не подходит работа?

Узнай цену на написание


Реферат
ВВЕДЕНИЕ 5
1 Анализ существующих решений 7
1.1 Программный интерфейс Entity Framework 8
1.2 Библиотека Entity Framework Utilities 9
1.3 Библиотека Entity Framework Extensions/Plus 10
2 Используемые технологии 12
2.1 Выбор языка программирования 12
2.2 Выбор платформы 13
2.3 Entity Framework 13
3 Разработка 16
3.1 Проектирование 17
3.1.1 Построение диаграмм классов 17
3.1.2 Построение диаграмм последовательностей 18
3.1.3 Дополнительные архитектурные решения 20
3.2 Реализация 20
3.2.1 Получение имени таблицы 21
3.2.2 Разбиение исходного множества 22
3.2.3 Построитель SQL-запросов 24
3.2.4 CUD методы 28
3.3 Тестирование 33
3.3.1 Создание тестового проекта 33
3.3.2 Замеры производительности 35
ЗАКЛЮЧЕНИЕ 42
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 43
Приложение А Демонстрация 44

В последнее время множество приложений обрабатывают все большие объемы данных. Зачастую, такими данными являются сущности предметной области приложения. Обычно их обработка производится самой системой независимо от пользователя на основе каких-либо правил или требований. Такую обработку проще всего проводить в фоновом режиме или во время, когда нагрузка от клиентов минимальна. Пользователь не будет ожидать сиюминутного исполнения преобразований, так как он не производил их сам. Это дает системе провести изменения над данными в удобное для нее время.
Однако, возникают ситуации, когда самим пользователям нужно провести какие-то изменения над большим множеством сущностей. Такие функции нужно тщательно реализовывать, чтобы не нагружать приложение тяжелой обработкой и производить операцию в приемлемое для пользователя время. Для примера, хорошим тоном для веб-приложения считается ответ на HTTP-запрос в течение секунды.
При разработке приложений с Entity Framework для этого можно воспользоваться набором методов, для операций над множествами сущностей. Данный фреймворк облегчает жизнь разработчика, заменяя необходимость писать запросы к базе данных на удобный программный интерфейс. К сожалению SQL-запросы, которые генерируют методы Entity Framework, показывают плохую производительность на ощутимо больших количествах сущностей. Это недопустимо для многих высоко-нагруженных приложений.
С технической точки зрения проблема заключается в том, что Entity Framework создает множество транзакций при произведении операции. Говоря конкретней, для каждой сущности, над которой происходят какие-либо преобразования создается отдельная транзакция для базы данных. При обработке транзакций база данных производит проверку целостности и тратит на это некоторое время. Соответственно, можно представить насколько становится затратной во временном плане обработка существенно большого количества таких сущностей.
Для этой проблемы уже существуют решения, но они имеют свои недостатки. Главными из них являются отсутствие поддержки асинхронности, устаревшая реализация с неисправленными ошибками, необходимость оплаты программного продукта, а также стремительное уменьшение производительности при росте количества сущностей.
Целью данной работы является разработка библиотеки, расширяющей удобный программный интерфейс Entity Framework, ускоряющей его методы, и устраняющей недостатки уже существующих реализаций.
Задачами данной работы являются изучение программного интерфейса Entity Framework, реализация механизма разбиения при больших объемах данных, реализация построителя SQL-запросов, реализация CUD методов и их асинхронных версий и проведение анализа производительности.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


Разработана библиотека, ускоряющая операции над множествами относительно стандартных методов Entity Framework. Она добавлена в библиотеку NuGet пакетов, через которую и распространяется. Библиотека удобна в использовании так как расширяет класс DbSet и легко устанавливается в проект с помощью менеджера NuGet пакетов.


1. Entity Framework Documentation [Электронный ресурс] / Microsoft, 2020. - URL: https://docs.microsoft.com/en-us/ef/ (дата обращения: 26.05.2020)
2. Entity Framework Utilities: GitHub репозиторий [Электронный ресурс] / GitHub, Inc., 2020. - URL: https://github.com/MikaelEliasson/EntityFramework.Utilities (дата обращения: 26.05.2020)
3. Entity Framework Extensions/Plus [Электронный ресурс] / ZZZ Projects Company, 2020. - URL: https://entityframework-extensions.net/ (дата обращения: 26.05.2020)
4. C# Programming Language [Электронный ресурс] / Wikipedia Foundation, Inc., 2020. - URL:
https://en.wikipedia.org/wiki/C Sharp(programming language) (дата обращения: 26.05.2020)
5. Extension Methods Documentation [Электронный ресурс] / Microsoft, 2020. - URL: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and- structs/extension-methods (дата обращения: 26.05.2020)
6. Microsoft Visual Studio [Электронный ресурс] / Wikipedia Foundation, Inc., 2020. - URL: https://en.wikipedia.org/wiki/Microsoft Visual Studio
7. Code First Tutorial [Электронный ресурс] / Microsoft, 2020. - URL: https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-st arted-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-n et-mvc-application (дата обращения: 26.05.2020)
Postman [Электронный ресурс] / Postman Inc., 2020. - URL: https://www.postman.com/ (дата обращения: 26.05.2020)


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ