kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 sestocker
sestocker
Вопрос

Лучшее решение .NET для часто изменяемых баз данных

В настоящее время я разрабатываю архитектуру небольшого CRUD-приложения. Их база данных представляет собой огромный беспорядок и будет часто меняться в течение следующих 6 месяцев или года. Что бы вы порекомендовали для слоя данных:

  1. ORM (если да, то какой?)

  2. Linq2Sql

  3. Хранимые процедуры

  4. Параметризированные запросы

Мне действительно нужно решение, которое будет достаточно динамичным (одновременно быстрым и простым), чтобы я мог часто заменять таблицы и добавлять/удалять столбцы.

Примечание: у меня нет большого опыта работы с ORM (только немного SubSonic), и я обычно использую хранимые процедуры, так что, возможно, это будет подходящим вариантом. Я бы с удовольствием изучил Ling2Sql или NHibernate, если бы они позволили реализовать ситуацию, которую я описал выше.

8 2008-08-15T01:50:02+00:00 12
Jarrod Dixon
Jarrod Dixon
Редактировал вопрос 22-го марта 2012 в 12:27
Программирование
change-management
.net
database
Решение / Ответ
 lomaxx
lomaxx
15-го августа 2008 в 3:37
2008-08-15T03:37:32+00:00
Дополнительно
Источник
Редактировать
#8415569

Здесь необходимо помнить о том, что если схема базы данных часто меняется, то необходимо иметь некоторый уровень безопасности типов во время компиляции. Я обнаружил, что это является проблемой для NHibernate, поскольку он использует xml файлы отображения, поэтому если вы измените что-то в схеме базы данных, вы не узнаете до момента выполнения, что отображение нарушено.

Это также будет проблемой с хранимыми процедурами.

Использование Linq2Sql даст вам преимущество в том, что вы будете знать, где именно ваш код ломается, когда вы меняете схему во время компиляции. Для меня это то, что будет иметь приоритет над всем остальным, если я работаю с часто меняющейся схемой.

6
0
Jon Galloway
Jon Galloway
15-го августа 2008 в 3:57
2008-08-15T03:57:06+00:00
Дополнительно
Источник
Редактировать
#8415570

Я'd посмотрите на дозвуковых с поставщиком строить (сайт проекта) установки. Это прекрасно работает, потому что он автоматически восстанавливает даль объекты каждый раз, когда вы строите свой проект, так что если изменений в базе данных таким образом, что ломает ваш код, вы получите ошибку построения.

Он работал хорошо, пока на схемы базу было очень сложным, и мы уперлись в пределы картины и ActiveRecord, но до тех пор, как схема's не чрезвычайно сложной, он работает довольно хорошо. Как только схема стабилизируется, вы можете переключиться так, что вы'повторно только строить даль, когда вы хотите.

5
0
 komma8.komma1
komma8.komma1
16-го сентября 2008 в 6:40
2008-09-16T18:40:41+00:00
Дополнительно
Источник
Редактировать
#8415572

Вы наверняка хотите использовать ORM. Каких-либо ОРМ в порядке, но вы хотите что-то, что будет создавать строго типизированные классы. Когда поля будут добавлены, изменены или удалены из таблицы, вы хотите быть в состоянии восстановить эти классы, и дело с фиксацией только ошибки времени компиляции. Если вы используете динамическую модель, вы'повторно, вероятно, имеют много неприятных ошибок во время выполнения. Это очень важно! Я вхожу в <а href="и http://www.mygenerationsoftware.com/">MyGeneration</а> команда разработчиков на SourceForge, и я думаю, что это отличное решение вашей проблемы. Вы можете создать декорации, NHibernate на, EasyObjects, EntitySpaces и т. д. Если вы хотите, чтобы пойти с более дорогостоящее решение, пойти на <а href="и http://www.codesmithtools.com/">CodeSmith</а> или <а href="и http://www.llblgen.com/defaultgeneric.aspx">LLBLGen Pro и ЛТ;/а>. Удачи - всем, кто интересуется использованием MyGeneration, не стесняйтесь обращаться ко мне с вопросами.

 komma8.komma1
komma8.komma1
Редактировал ответ 16-го сентября 2008 в 7:15
2
0
Jon Limjap
Jon Limjap
15-го августа 2008 в 2:00
2008-08-15T02:00:55+00:00
Дополнительно
Источник
Редактировать
#8415567

NHibernate, но только если вы готовы использовать объектно-ориентированный подход, при котором вы определяете свои классы, затем определяете желаемую структуру таблиц в файлах отображения, а затем создаете схему базы данных, используя встроенные в NHibernate'классы генерации схем.

Если делать все наоборот (например, у вас есть куча таблиц, а затем вы основываете свой объектный дизайн на этом), я нашел MyGeneration + NHibernate работающим, хотя я не слишком доволен полученными классами (в основном потому, что я такой приверженец истинного объектно-ориентированного программирования).

1
0
 Webjedi
Webjedi
19-го августа 2008 в 4:54
2008-08-19T16:54:48+00:00
Дополнительно
Источник
Редактировать
#8415571

Если бы я был в вашей обуви я хотел бы попробовать использовать то, что я знал (хранимые процедуры) с Linq2Sql. Linq2Sql все еще можете использовать хранимые процедуры, но тогда у вас есть дополнительный бонус, поставив новый инструмент в свой пояс. Я думаю, имея представление о Linq2XXX (X является случайной технологии не для взрослых....это'т плохая идея сейчас, что я думаю об этом) синтаксис и методика будет отличным дополнением к вашей компетенции, используя LINQ по коллекции объектов как сладкий.

Но в конечном счете что-то вроде NHibernate на вам подойдет лучше в долгосрочной перспективе.

 Webjedi
Webjedi
Редактировал ответ 19-го августа 2008 в 8:58
1
0
Анонимный пользователь
23-го января 2009 в 2:30
2009-01-23T14:30:23+00:00
Дополнительно
Источник
Редактировать
#8415576

EntitySpaces можете восстановить свой дал/бизнес-слой в одну минуту, и отсутствие потери кода см. В разделе демо-версию ==> здесь

Нет необходимости регистрации, работает в Visual студии.

1
0
Ron H
Ron H
8-го мая 2010 в 9:09
2010-05-08T21:09:21+00:00
Дополнительно
Источник
Редактировать
#8415577

Использовать EntitySpaces. вы пришлите мне цветы, гарантированно. просто удивительным. изменить БД, как вам нравится. нажмите на кнопку, хлоп. все изменения сделаны. без изменения вашего кода. Я люблю его.

1
0
 TheEruditeTroglodyte
TheEruditeTroglodyte
8-го мая 2010 в 10:00
2010-05-08T22:00:21+00:00
Дополнительно
Источник
Редактировать
#8415578

Как простое приложение? Если я буду работать со схемой/дизайн вещи на пару месяцев, и не особо переживать по поводу фактическое приложение . . . Я бы рассмотреть возможность использования EDM и динамической сущности данных веб-приложения проекта. Это вам Ваш будет с наименьшим количеством усилий, на мой взгляд. Это держит вас сосредоточены на схемы, данные и другие groovey вещи. Я надеюсь, Дон'т получить слишком много ударов нег от этого!

Здесь's, как новое диалоговое окно проекта будет выглядеть как это

1
0
Marek Blotny
Marek Blotny
17-го декабря 2008 в 7:13
2008-12-17T19:13:22+00:00
Дополнительно
Источник
Редактировать
#8415575

Любое решение может работать, что вам действительно нужно-это набор тестов, который будет гарантировать, что основные операции, такие как вставлять, выбирать, обновлять и удалять работы. Таким образом, вы можете просто запустить тесты и проверить, если сопоставления актуальной.

0
0
Aidan Ryan
Aidan Ryan
15-го августа 2008 в 2:05
2008-08-15T02:05:46+00:00
Дополнительно
Источник
Редактировать
#8415568

Вы уже довольны хранимыми procs, и их может быть достаточно, чтобы абстрагироваться от меняющейся схемы. Если ORM не устраивают хранимые procs, то, возможно, они будут работать с Views, которые вы поддерживаете в актуальном состоянии поверх меняющейся схемы.

0
0
Davide Vosti
Davide Vosti
16-го сентября 2008 в 6:54
2008-09-16T18:54:35+00:00
Дополнительно
Источник
Редактировать
#8415573

При изменении схемы базы данных часто предпочитают рамках предприятия за LINQ2SQL. Если изменения схемы, с помощью L2S вы должны

  1. удалить и заново добавить вас в таблицу (с потерей всех настроек)
  2. модифицировать модель вручную (как сделано здесь на сайте StackOverflow)

Эф-это супер-набор L2S, давая вам большую гибкость использования и СУБД-независимость

0
0
Steven  A. Lowe
Steven A. Lowe
17-го декабря 2008 в 7:06
2008-12-17T19:06:27+00:00
Дополнительно
Источник
Редактировать
#8415574

смотреть на то, почему он меняется, и посмотреть, если вы можете прогнозировать и обобщать типы изменений, которые надвигаются на вас так, что они Дон'т сломать ваш код

система может сделать любезный изменения проще, но более глубокий анализ будет иметь долгосрочные выгоды

0
0
Похожие сообщества 16
DotNetRuChat
DotNetRuChat
6 630 пользователей
Чат русскоязычного .NET сообщества http://dotnet.ru/ Правила: https://t.me/DotNetRuChat/704399 Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia, @DotNetRuJobs, @uwp_ru Флуд в @dotnettalks
Открыть telegram
DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
3 542 пользователей
Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.
Открыть telegram
Вакансии .NET
Вакансии .NET
3 530 пользователей
Правила: https://t.me/DotNetRuJobs/123 Канал с вакансиями - https://t.me/DotNetRuJobsFeed Вам могут быть интересны: @dotnetruchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia Флуд в @dotnettalks
Открыть telegram
pro.net
pro.net
1 820 пользователей
Обсуждение .NET и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). https://t.me/pro_net/34653 Флудилка: @dotnettalks
Открыть telegram
var chat = new Chat();
var chat = new Chat();
1 428 пользователей
Обсуждение вопросов по .NET Правила чата – https://blog.devdigest.today/chat-rules Чат для флуда – https://t.me/+zwxI91RGG6s2YzAy
Открыть telegram
.NET Talks - День сурка
.NET Talks - День сурка
1 324 пользователей
Свободный чат .NET разработчиков. Правила: https://t.me/dotnettalks/548269 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @DotNetRuJobs, @uwp_ru, @AvaloniaRu, @dotnettalksenglish
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Денис Васьков
Зарегистрирован 17 часов назад
2
Dima Patrushev
Зарегистрирован 2 дня назад
3
sirojidddin otaboyev
Зарегистрирован 1 неделю назад
4
Елена Гайдамамакинат
Зарегистрирован 1 неделю назад
5
Иван Степанюк
Зарегистрирован 1 неделю назад
ID
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией