Объектный доступ к Cache из среды.NET Александр Харитонов, InterSystems.

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



Advertisements
Похожие презентации
Объектные интерфейсы (.NET) «Школа Инноваций InterSystems 2007»
Advertisements

Используем объекты Caché Бакулин Сергей Москва, 11 апреля.
Дмитрий Петухов ЦКЗ Аргус. Технологии доступа к данным Популярные ORM ы NHibernate Демо.
Низкоуровневые операции в ИС. Сокеты в C#. Понятие сокета Если требуется получить доступ к сетевым операциям низкого уровня, в программе следует использовать.
Отправка файла с использованием электронной почты.
ADO.NET Интегрированная среда разработки. ADO.NET Общая картина Все типы ADO.NET предназначены для выполнения одного набора задач: установить соединение.
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Обработка исключений в C# Единая техника обнаружения ошибок времени выполнения и передачи информации о них.
Java Database Connectivity (JDBC) Универсальное API для доступа к данным.
База данных База данных – это конкретная предметная область, описанная с помощью таблиц.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – работа с базами данных посредством ADO.NET Из цикла.
Коллекции классов Лекция 12. С помощью коллекций вместо создания структур данных программист использует готовые структуры данных, не заботясь об их реализации.
ДЕЛЕГАТЫ Лекция 7 1. Зачем нужны делегаты 2 И данные, и код располагаются в памяти компьютера по определенным адресам. Передача адресов данных в C# происходит.
Язык программирования C# Дмитрий Сошников
Высокоуровневые методы информатики и программирования Лекция 27 Основы ADO.Net.
NHibernate что, где, когда Артур Дробинский ЗетаСофт Томск, 2012.
Корпоративные системы Лекция 5. Механизмы доступа к БД через Web-интерфейс.
Object Relational Mapping (ORM) Объектно-реляционное отображение.
Автоматическая генерация схемы реляционной базы данных на основе объектной схемы данных Богданов Алексей.
Симпозиум 2008 Сергей Шутов, ДИМАС Борис Егоров, Интерсистемс Практика использования Zen и Прототип-6.
Транксрипт:

Объектный доступ к Cache из среды.NET Александр Харитонов, InterSystems

Предпосылки Много разработчиков приложений в среде.NET Много разработчиков приложений в среде.NET Необходимость предоставить возможность объектного доступа к Cache из.NET-приложений Необходимость предоставить возможность объектного доступа к Cache из.NET-приложений

Разработка приложений для Cache

Работа со статическими объектами Классы описываются в Caché Studio. Классы описываются в Caché Studio. - хранимые классы / классы для описания бизнес-логики в Caché Caché Object Binding Wizard создает.NET прокси-классы на основе классов, определенных в библиотеке классов Caché. Caché Object Binding Wizard создает.NET прокси-классы на основе классов, определенных в библиотеке классов Caché. - содержат вызовы методов и ссылки на свойства объектов Caché. Во время выполнения.NET-приложение подключается к серверу Caché, при этом можно создавать экземпляры.NET-объектов, которые связаны с объектами на сервере Caché. Во время выполнения.NET-приложение подключается к серверу Caché, при этом можно создавать экземпляры.NET-объектов, которые связаны с объектами на сервере Caché. - объекты используются также, как и другие объекты.NET.

Унифицированная архитектура

Cache Object Binding Wizard

Что нужно для работы Ссылка в проекте на CacheClient.dll Ссылка в проекте на CacheClient.dll Использование пространств имен Использование пространств имен –using InterSystems.Data.CacheClient; –using InterSystems.Data.CacheTypes; Добавление в проект описания.NET-классов, созданных Cache Object Binding Wizard Добавление в проект описания.NET-классов, созданных Cache Object Binding Wizard

Добавление ссылки

Подключение к серверу Cache CacheConnection CacheConnect; CacheConnection CacheConnect; try { CacheConnect = new CacheConnection(); CacheConnect.ConnectionString ="Server = localhost; Port = 56772; Namespace = SAMPLES;« + " Password = SYS; User ID = _SYSTEM;"; /* CacheConnect.ConnectionString = CacheConnection.ConnectDlg(); */ CacheConnect.Open(); } try { CacheConnect = new CacheConnection(); CacheConnect.ConnectionString ="Server = localhost; Port = 56772; Namespace = SAMPLES;« + " Password = SYS; User ID = _SYSTEM;"; /* CacheConnect.ConnectionString = CacheConnection.ConnectDlg(); */ CacheConnect.Open(); } catch (Exception eConn) { System.Console.WriteLine("Ошибка подключения: " + eConn.Message); } catch (Exception eConn) { System.Console.WriteLine("Ошибка подключения: " + eConn.Message); } System.Console.WriteLine("Подключение успешно."); System.Console.WriteLine("Подключение успешно.");

Базовые операции c Proxy-объектами Создание объекта Создание объекта –Sample.Person person = new Sample.Person(CacheConnect); Открытие объекта Открытие объекта –Sample.Person person = Sample.Person.OpenId(CacheConnect, "1"); Сохранение/удаление Сохранение/удаление –Save, DeleteId

Работа с коллекциями Можно использовать foreach Можно использовать foreach Привычные методы, такие как add, insert, и т.д. Привычные методы, такие как add, insert, и т.д. На примере работы с FavoriteColors, типа CacheListOfStrings На примере работы с FavoriteColors, типа CacheListOfStrings –foreach (string color in ColorList) { }

Исполнение запроса CacheConnect.Open(); string SQLtext = "SELECT * FROM Sample.Person WHERE ID = 1"; string SQLtext = "SELECT * FROM Sample.Person WHERE ID = 1"; CacheCommand Command = new CacheCommand(SQLtext, CacheConnect); CacheCommand Command = new CacheCommand(SQLtext, CacheConnect); CacheDataReader Reader = Command.ExecuteReader(); CacheDataReader Reader = Command.ExecuteReader(); while (Reader.Read()) { while (Reader.Read()) { Console.WriteLine(Reader[Reader.GetOrdinal("ID")] + ": " Console.WriteLine(Reader[Reader.GetOrdinal("ID")] + ": " + Reader[Reader.GetOrdinal("Name")]); + Reader[Reader.GetOrdinal("Name")]); }; }; Reader.Close(); Reader.Close(); Command.Dispose(); Command.Dispose(); CacheConnect.Close(); CacheConnect.Close();

Транзакции CacheTransaction Trans = CacheConnect.BeginTransaction(); CacheTransaction Trans = CacheConnect.BeginTransaction(); Trans.Commit Trans.Commit Trans.RollBack([savepoint]) Trans.RollBack([savepoint])

Спасибо за внимание