NHibernate что, где, когда Артур Дробинский ЗетаСофт Томск, 2012.

Презентация:



Advertisements
Похожие презентации
Дмитрий Петухов ЦКЗ Аргус. Технологии доступа к данным Популярные ORM ы NHibernate Демо.
Advertisements

Статический анализ кода (на примере DDD-фреймворка) Алексеев Алексей Николай Гребнев
ORM Паттерны. Repository Repository (хранилище) выступает в роли посредника между слоем домена и слоем отображения данных, предоставляя интерфейс в виде.
Технология ORM и её реализации. Что такое ORM? ORM (Object-relational mapping) технология программирования, которая связывает базы данных с концепциями.
ПЛИСКО ВЯЧЕСЛАВ. Удобная работа с базой данных в PHP.
Hibernate cashe. Part 4 Для студентов старших курсов университетов Ст.преподаватель Дудник О.А.
Автоматическая генерация схемы реляционной базы данных на основе объектной схемы данных Богданов Алексей.
Использование Dynamic Data на практике Гайдар Магдануров t: twitter.com/gaidar p: +7 (905) e:
Объектный доступ к Cache из среды.NET Александр Харитонов, InterSystems.
Высокоуровневые методы информатики и программирования Лекция 30 Работа с БД с использованием технологий связывания.
Object Relational Mapping (ORM) Объектно-реляционное отображение.
Тренинг «Разработка веб-приложений на ASP.NET» Занятие 5 Работа с данными Гайдар Магдануров
Fuse8.DomainFramework – библиотека для работы с данными Арсен Фазылзянов fuse8 3-я конференция.NET разработчиков 25 сентября 2011.
Object Relational Mapping (ORM) Объектно-реляционное отображение
Использование Hibernate Java Persistence. Part 2. Для студентов старших курсов университетов Ст.преподаватель Дудник О.А.
Высокоуровневые методы информатики и программирования Лекция 27 Основы ADO.Net.
Лекция 19. ADO.NET. Сервера баз данных: MS SQL Server, Oracle, MySQL, DB2, Foxpro, FireBird, PostgreSQL, … Хранят данные в виде таблиц Хранят отношение.
Разработка приложений для работы с БД На примере PHP и ASP.Net.
Work with databases in Java. JDBC Tutorial for students of universities Author: Dudnik Oxana.
Внедрение зависимостей. IoC-контейнеры Лекция 03.
Транксрипт:

NHibernate что, где, когда Артур Дробинский ЗетаСофт Томск, 2012

Способы работы с БД из.NET ADO.Net – DataSet/DataReader Linq2SQL ORM

Object-Relational Mapper public class BaseEntity { public virtual int Id { get; set; } } public class User : BaseEntity { public virtual string Login { get; set; } public virtual string FirstName { get; set; } public virtual string LastName { get; set; } } public class Topic : BaseEntity { public virtual string Title { get; set; } public virtual User Creator { get; set; } public virtual IList Messages { get; set; } } public class Message : BaseEntity { public virtual Topic Topic { get; set; } public virtual string Text { get; set; } public virtual DateTime DateTime { get; set; } public virtual User Author { get; set; } }

Object-Relational Mapper var connection = SessionConstructor.OpenConnection(); var command = connection.CreateCommand(); command.CommandText TOP 5 * FROM [Message] INNER JOIN [User] Author ON Author.Id = [Message].Author_Id WHERE Author.Login='Shaddix' ORDER BY [Message].[DateTime] DESC"; var reader = command.ExecuteReader(); var result = new List (); while (reader.Read()) { result.Add(new { Text = reader["Text"], Id = reader["Id"] }); } var session = SessionConstructor.OpenSession(); var data = session.Query ().Where(x => x.Author.Login == "Shaddix").OrderByDescending(x => x.DateTime).Take(5).ToList();

Плюсы ORM Работа с классами удобнее, чем с DataSet Проектирование на уровне классов Отсутствие «переключений контекста» Строгая типизация при работе с БД Удобные инструменты работы (профилирование, кэширование, миграции, etc) Использование знаний в LINQ вместо изучения SQL Ускорение разработки

Существующие ORM Микро-ОРМ Dapper.NET Massive PetaPoco Полнофункциональные ORM NHibernate Entity Framework LLBLGen + маленькие + базовый ORM-функционал + простые, старый-добрый SQL + linq-запросы + БД-независимость + сложные сценарии маппинга (наследование/компоненты/связи) + кэширование/оптимизация запросов

Подходы при работе с ORM Database-First Code-First

Маппинги в NHibernate NHibernate и *.hbm.xml FluentNHibernate и отсутствие всех этих ужастиков (Convention over Configuration) Здесь мы смотрим примеры public class BaseEntity { public virtual int Id { get; protected set;} } public class User : BaseEntity { public virtual string Login { get; set; } public virtual string FirstName { get; set; } public virtual string LastName { get; set; } }

Вопросы?! Артур Дробинский ЗетаСофт, Томск

Всем спасибо за внимание Успехов! Артур Дробинский ЗетаСофт, Томск