powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Интеграция с системой Реформа ЖКХ
18 сообщений из 18, страница 1 из 1
Интеграция с системой Реформа ЖКХ
    #39349208
archelite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день форумчане.

Мне нужно сделать интеграцию с системой Реформа ЖКХ. Для работы с БД выбран MS SQL Server 2012
В качестве интерфейсной части выбран Win.Forms, пишем на C#.

Эти исходные поменять скорее всего не получится.

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

При работе с интерфейсом нужно обрабатывать эти данные, чаще всего стандартные CRUD-операции.

Чем можно и нужно работать в данном случае? Я надеюсь разделом форума не ошибся)

Вопрос возник потому что я не знаю фреймворков и учил только основы Java SE и чуть чуть SQL :D
Это отдельная история, задание для меня сейчас сложновато, но нужно делать)

Главный вопрос: есть ли возможность уйти от 6-7 уровней вложенных циклов, каждый из которых содержит еще кучу ветвлений ?
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39349214
Фотография Смузи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну у них шикарная документация, всё предельно понятно https://www.reformagkh.ru/misc/reglament_api.doc
Добавляешь ссылку на их сервис и согласно документации вызываешь методы https://msdn.microsoft.com/en-us/library/bb628649(v=vs.120).aspx
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39349219
archelite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да с документацией всё ок, всю структуру БД я уже сделал, методы тоже вызываю, вопрос в том, как правильно обработать полученные данные, чтобы не писать огромные портянки кода?

Мне хотя бы понять в какую сторону смотреть, NHibernate? это как в джаве? впрочем я и в джаве пока только сделал простенький HelloWorld с гибернейтом.
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39349251
Фотография Смузи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
archeliteвопрос в том, как правильно обработать полученные данные, чтобы не писать огромные портянки кода?
Обрабатывать - это записать в БД? Entity Framework.

archeliteNHibernate?
Да, любую ORM. Но лучше EF.
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39349257
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
archeliteNHibernate?
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39349336
archelite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
какой есть хороший туториал по Entity Framework на ваш взгляд? msdn?

особенно интересует возможность генерации классов по существующим в БД таблицам и связывание таблиц между собой
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39349359
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39349361
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
archelite,

насчёт генерации классов, EF это умеет, существуют инструменты. но лучше рассмотреть обратный случай: генерации БД из классов со всеми связями, это его самая сильная сторона, так как поддерживает ручные и автоматические миграции. раз попробуешь, не захочешь отказаться никогда :)
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39349390
Фотография Смузи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttгенерации БД из классов со всеми связями ...миграции
Бесполезная функция для корпоратива. Никто не даст учеткам апп / пула для обновлении схемы данных. Только полноценный VS Database Project со всей его фундаментальностью и мощью. Миграции - детская шелуха для дева и теста.
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39349562
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СмузиhVosttгенерации БД из классов со всеми связями ...миграции
Бесполезная функция для корпоратива. Никто не даст учеткам апп / пула для обновлении схемы данных. Только полноценный VS Database Project со всей его фундаментальностью и мощью. Миграции - детская шелуха для дева и теста.

Это речь старпёра, который держится за свой SQL из последних своих сил. Говорю по существу, уже много проектов, и крупных, секьюрных и ответственных, было выпущено на миграциях. В начале тоже было много сомнений, отдельные упоротые SQL-щики из последних сил бодались и яростно защищали свой любимый дизайн БД, боясь странного и неизведанного.

Тут главное не засцать, и всё будет путём :) Миграции -- величайший вин.

Насчёт каких-то там учёток с правами, знаешь, я разницы не вижу, грохнешь ли ты таблицу, или покоцаешь данные — однофигственно. Поэтому это всё детские страхи. От бекапов никуда не денешься, все миграции проверяются на ряде стендов, пока доходят до релиза. CI понимаешь.

Зато в базу ручонками никто не лезет. Всё под полным контролем.
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39349610
Фотография Смузи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, сразу видно, что дальше десятка таблиц в БД ты не ходил :) В корпоративе есть четкое разделение между dev, quality assurance, quality control, app admins, dba. Никто ни разработчику не даст права в прод. Никто не даст права учетной записи app / pool на изменение схемы данных. Есть четкое разделение ответственности, причем тут "упоротые SQL-щики"? Дев выкатывает change requests, прикладывает документ с обновления с нужными скриптами в пакете. Никто не пишет никакой SQL. В MS Database Project достаточно инструментов для ведения схемы, данных, генерации схемы, генерации тестовых данных, merge в обе стороны, sync, много всего. Миграции это детский сад по сравнению с MS Database Project :)
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39349636
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СмузиhVostt, сразу видно, что дальше десятка таблиц в БД ты не ходил :)

Ты кажется не понимаешь о чём говоришь. Количество таблиц? Ты смешон. Текущая разработка над которой мы работаем генерирует тысячи таблиц, любой ДБА там встанет раком и возопит «помилуйте».


СмузиНикто не даст права учетной записи app / pool на изменение схемы данных. Есть четкое разделение ответственности, причем тут "упоротые SQL-щики"? Дев выкатывает change requests, прикладывает документ с обновления с нужными скриптами в пакете.

С таким подходом вы просто бездарно тратите время и деньги компании на чушь, которую можно полностью автоматизировать. Кто виноват, что в разработку просочились неандертальцы?

Ты мне скажи, в чём принципиальная разница между изменением схемы и данных? Я вижу разницу только в том, кто это делает. Приложение делает это по заданным оттестированным, проверенным и надёжным алгоритмам.


СмузиНикто не пишет никакой SQL. В MS Database Project достаточно инструментов для ведения схемы, данных, генерации схемы, генерации тестовых данных, merge в обе стороны, sync, много всего. Миграции это детский сад по сравнению с MS Database Project :)

Под SQL я имею в виду ручную манипуляцию схемой и данными. Как именно ты это будешь делать, писать SQL, или возить мышкой в дизайнере -- не имеет значения. При чём, никто не мешает писать тебе тот же SQL в миграции. Фишка в том, что количество затраченного времени сокращается колоссально, это проверено опытном путём за последние годы разработки. Никто больше не возится с проектами БД, тем более, что баз данных гораздо больше, чем одна.
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39349641
Фотография Смузи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttТекущая разработка над которой мы работаем генерирует тысячи таблиц, любой ДБА там встанет раком и возопит «помилуйте».
Чем твоя генерация тысячи таблиц отличается от генерации тысячи таблиц в MS Database Project?

hVosttС таким подходом вы просто бездарно тратите время и деньги компании на чушь, которую можно полностью автоматизировать. Кто виноват, что в разработку просочились неандертальцы?
Есть уровни ответственности. Обновление данных / схемы на продуктиве - это не ответственность разработчика как по вопросам безопасности, так и по вопросам той самой ответственности. Пойди предложи накатить EF-миграцию в каком-нибудь Альфа банке, тебя кастрируют еще на подходе к данному уровню

hVosttТы мне скажи, в чём принципиальная разница между изменением схемы и данных?
1. Никакой разницы с точки зрения ответственности (регламент по сопровождению приложений, в частности change request).
2. Огромная разница с точки зрения ответственности (работающее приложение).

P.S. Хвост, это мой последний пост по теме. Ибо чистый оффтоп. Если ты понял суть, молодец. Если нет, продолжай решать свои школьные миграции, я не против.
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39349658
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СмузиЧем твоя генерация тысячи таблиц отличается от генерации тысячи таблиц в MS Database Project?

Тем что она напрямую связана с кодом. Коду нужна таблица, она будет создана. Коду нужно поле в таблице, оно будет создано. Коду нужна связь. Она будет создана. Не нужно привлекать дополнительные силы, чтобы проверять требуемое соответствие. Не нужно сначала создавать таблицу, потом писать код. Не нужно писать код, потом лезть в дизайнер и сверяясь с названиями создавать нужную структуру. Всё это автоматизировано.

СмузиЕсть уровни ответственности. Обновление данных / схемы на продуктиве - это не ответственность разработчика как по вопросам безопасности, так и по вопросам той самой ответственности. Пойди предложи накатить EF-миграцию в каком-нибудь Альфа банке, тебя кастрируют еще на подходе к данному уровню

Я ещё раз повторю. Чем отличается возможность изменять данные и возможность изменять схему с точки зрения безопасности? Говоря об Альфа-Банке, пользователя волнует состояние и безопасность счёта, данные и схема здесь в абсолютно равной позиции.

По поводу накатывания миграци. Чем это отличается от накатыванием изменений в БД другим инструментом? Если ты делаешь это вручную, то яйца твои останутся в целости? Не смеши.


Смузи1. Никакой разницы с точки зрения ответственности (регламент по сопровождению приложений, в частности change request).
2. Огромная разница с точки зрения ответственности (работающее приложение).

Поясни конкретно в чём разница по пункту 2? Если приложение само контролирует схему, которая нужна ему для работы и гарантирует, что она будет содержать всё нужное, то здесь только плюсы. Минусы какие?


СмузиP.S. Хвост, это мой последний пост по теме. Ибо чистый оффтоп. Если ты понял суть, молодец. Если нет, продолжай решать свои школьные миграции, я не против.

Ты один в один повторяешь когда-то прошедшие у нас дискуссии. Суть не в том, чтобы переубедить. А выбрать наиболее эффективное решение, даже по религиозным соображениям кто-то против. Религия это тонкая материя, но хорошо отсекаемая в корпоративном ключе.
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39349775
archelite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за ссылку, пойду вникать)
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39350946
archelite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Умные люди, помогите пожалуйста нубу)

Как правильно организовать структуру БД, чтобы на неё можно было натравить EntityFramework?

При вызове метода API мне приходит Object, который имеет древовидную структуру.
Например: объект - GetCompanyProfileResponse содержит поля INT - inn, String - name_full, String - name_short, Object[] - company_profile_data, Object[] - files_info.
Массивы объектов в свою очередь содержат примитивы и другие массивы объектов и так далее в глубину.

Сейчас есть готовая структура таблиц и я сгенерировал структуру классов при помощи Entity Database First как показано здесь http://metanit.com/sharp/entityframework/2.4.php , но еще не делал связи(только расставил Primary Key)

Как правильно сделать связь между таблицами, и возможно ли вообще её сделать так чтобы Entity при вызове метода API автоматически делал INSERT - UPDATE каскадом во все таблицы, при вышеуказанной структуре?
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39351433
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
archelite,

Разве в БД этих связей нет? Связи в EF организуются навигационными свойствами. Связь на другую таблицу, это свойство на объект класса, представляющего эту таблицу:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
[Table("ObjectOne")]
public class ObjectOne
{
   public int Id { get; set; }
   public virtual ObjectTwo { get; set; }
}

[Table("ObjectTwo")]
public class ObjectTwo
{
   public int Id { get; set; }
   public string Name { get; set; }

   public virtual ICollection<ObjectOne> ObjectOnes { get; set; }
}




ObjectOne ссылается на ObjectTwo, а в ObjectTwo есть коллекция всех объектов ObjectOne, которые на него ссылаются (определять эту коллекцию не обязательно, но даёт большую гибкость при написании запросов).

При этом подразумевается, что в БД в таблице ObjectOne будет присутствовать foreign key с именем ObjectTwo_Id.

В общем, в доках всё очень подробно написано.
...
Рейтинг: 0 / 0
Интеграция с системой Реформа ЖКХ
    #39351455
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
archeliteУмные люди, помогите пожалуйста нубу)

Как правильно организовать структуру БД, чтобы на неё можно было натравить EntityFramework?

При вызове метода API мне приходит Object, который имеет древовидную структуру.
Например: объект - GetCompanyProfileResponse содержит поля INT - inn, String - name_full, String - name_short, Object[] - company_profile_data, Object[] - files_info.
Массивы объектов в свою очередь содержат примитивы и другие массивы объектов и так далее в глубину.

Сейчас есть готовая структура таблиц и я сгенерировал структуру классов при помощи Entity Database First как показано здесь http://metanit.com/sharp/entityframework/2.4.php , но еще не делал связи(только расставил Primary Key)

Как правильно сделать связь между таблицами, и возможно ли вообще её сделать так чтобы Entity при вызове метода API автоматически делал INSERT - UPDATE каскадом во все таблицы, при вышеуказанной структуре?
Что-то я не понял. Вы структуру БД завязываете на сторонний API? ИМХО что-то здесь не правильно.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Интеграция с системой Реформа ЖКХ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]