Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2013, 22:00   #1
programisto
 
Аватар для programisto
 
Регистрация: 18.05.2013
Сообщений: 5
Сообщение Самый простой и проверенный спобоб разделения кода от интерфейса при написании базы данных на 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
По умолчанию

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

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

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

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

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

programisto

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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