Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 18.05.2013, 22:00   #1
programisto
 
Аватар для programisto
 
Регистрация: 18.05.2013
Сообщений: 5
Репутация: 10
Сообщение Самый простой и проверенный спобоб разделения кода от интерфейса при написании базы данных на C# (Win Forms)

Собственно вопрос в том - какими способами разделения кода и интерфейса вы пользуетесь когда пишите базы данных?
Нужен именно проверенный рабочий метод разделения кода от интерфейса (на примере ADO .NET + C# + Access).

Посмотрел исходники одного чувака на CodeProject вот там конечно немного о другом (о применении фреймворка MEF для написания модульных приложений на C#), но если всмотреться как он разделяет код, данные и интерфейс можно увидеть что там для каждой таблицы в БД он создает отдельный класс (как бы сервис) в котором имеються методы для манипуляции данными в этой таблице. Далее создает класс для управления расшаренным подключением к СУБД. При таком подходе для заполнения DataGridView например потребуться написать что то вроде этого:

Код:
CustomerService customer = new CutomerService(); //CustomerService это //тот самый класс/сервис который дает нам доступ к таблице Cutomers

DataTable CustomerTable = customer.GetAllCustomers();
DataGridView.DataSource = DataTable;
При этом при изменеии/удалении ЛБЮОЙ записи БД через такие классы необходимо обратно перезагрузить на клиент ВСЕ записи ВСЕХ таблиц (кто знает может в БД произошло каскадное изменение другиз записей в связанных таблицах , ведь при этом записи на нашем клиенте устареют).
Это только одно из подводных камней такого подхода.

Подскажите пожалуйста каким методом разделения Вы сами пользуетесь при создании БД (или дайте ссылку на исходники где можно посмотреть как это сделать).
programisto вне форума   Ответить с цитированием
Старый 18.05.2013, 22:56   #2
Paleolit
Пользователь
 
Аватар для Paleolit
 
Регистрация: 27.05.2012
Адрес: В интернете
Сообщений: 14
Репутация: 10
По умолчанию

Смотри в сторону паттернов проектирования. Здесь два пути:
- Попробовать самому реализовать один из шаблонов проектирования (например MVC) .
- Взять готовый фреймворк который берет на себя всю рутиную работу при реализации паттерна ( вот этот например).

А вот и оффициальный майкрософтовский фреймоворк для реализации MVC паттерна в WinForms приложениях. Качай здесь

Но учти - в любом случае юзание паттернов малой кровью не обойдеться особенно если ты имеешь мало опыта в области создания корпоративных приложений.

А то что привел в коде - полная чушь. Там минимум должно быть три слоя - 1. сам вид (твои датагридвюшки) , 2. контроллеры привязанные к твоим конролам 3. Слой для работы с данными.
__________________
Скажи мне на каком языке ты пишеш и я скажу тебе кто ты

Последний раз редактировалось Paleolit; 18.05.2013 в 23:07.
Paleolit вне форума   Ответить с цитированием
Старый 18.05.2013, 23:48   #3
Rififi
Профессионал
 
Регистрация: 19.08.2009
Сообщений: 2,119
Репутация: 887
По умолчанию

programisto

Собственно вопрос в том - какими способами разделения кода и интерфейса вы пользуетесь когда пишите базы данных?

ORM для изоляции БД от приложения, для бизнес-логики хорошо подходит паттерн MVP
Советую прочитать Мартина Фаулера "Архитектура корпоративных программных приложений" - это супер-книга.
Rififi вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ветикальные линии при написании кода в IDE fezilk25 Общие вопросы Delphi 12 17.08.2012 11:44
Простой пример базы данных? Iceman БД в Delphi 2 28.06.2010 06:32
Ошибка при написании ассемблеровского кода на Визе 6.0 Познающий Assembler 3 03.11.2009 20:09
Нудна помошь при написании кода. Denisko Помощь студентам 4 06.06.2009 23:07
При написании кода не открывается список типов, объектов. garic Microsoft Office Excel 3 14.03.2009 19:56


21:00.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.