powered by simpleCommunicator - 2.0.33     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Синхронизация книги Excel и БД
14 сообщений из 14, страница 1 из 1
Синхронизация книги Excel и БД
    #39862580
StarDestroyer89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.

Немного вступления.
Я занимаюсь созданием отчётов на VBA + MS SQL(через ADODB драйвер).
Сейчас на работе постепенно хотим уходить от Vba, заменив его более современным языком.
Мой выбор пал на C# - начал постепенно его изучать. В качестве тренировки хочу написать след. решение:

Есть след. задача:
Есть большой файл в Excel 100К+ строк на 60 столбцов, который представляет из себя информацию по всем грузоперевозкам в различных аспектах.

Файл постоянно видоизменяется в плане кол-ва строк(причём строки могут как добавляться,меняться, так и удаляться полностью)
Раньше данную информацию хранили в БД в 1 таблице, но сейчас была проведена реструктуризация хранения информации на сервере и база была нормализована , соответственно информация была распределена по 30 бизнес-таблицам.

Сейчас данные из Excel загружаются мною в БД 1 раз в месяц путем полной перезаписи всех данных за определенный период. Ненормализованные данные закачиваются сначала в промежуточную таблицу на сервере, а затем с помощью хранимой процедуры идет запись/удаление во всех бизнес-таблицах БД.

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

- Собираюсь в Desctop - приложении(в дальнейшем может сделаю надстройку для Excel) сделать загрузку из Excel в GridView c возможностью редактирования данных, с последующей загрузкой на сервер, а также возможностью наоборот выгрузить данные с сервера. При всех операциях пользователь должен работать с шаблоном данных как в Excel(то есть 1 большая ненормализованная таблица, возможно добавлю фильтры по периодам, для сокращения строк)

Перерыл весь интернет, но так и не понял, как лучше спроектировать данную систему, в связи с чем хотел бы услышать мнение опытных разработчиков:
1) Какую библиотеку для работы с Excel использовать в проекте, чтобы приложение работало на всех машинах (компы все примерно одинаковые, ms office стоит у всех)
2) Как работать с ненормализованными данными: Необходимо ли разбивать на сущности на клиенте, а затем каждую сущность закачивать в свою таблицу, либо же оставить 1 сущность, а потом ее гдето делить ...
3) Как производить редактирование данных на сервере, ведь назад с сервера я должен выводить в GridView консолидированные данные из view с сервера
4) Почитав соответствующие форумы был поражен кол-вом решений по взаимодействию с БД , какой метод лучше выбрать в моём случае: чистый ado.net, или одну из ORM?
5) Есть ли хорошие книги/статьи по решению подобных кейсов как у меня?
...
Рейтинг: 0 / 0
Синхронизация книги Excel и БД
    #39862588
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarDestroyer89Есть ли хорошие книги/статьи по решению подобных кейсов как у меня?
Книги по написанию очередной приблуды для импорта данных из Excel? Вряд-ли :)
Статьи... Если в гугле набрать "C# import from excel to datagridview", то получите до фига статей, в том числе и откровенный шлак.

Начните с презентации своей концепции пользователям, формализуйте требования.
...
Рейтинг: 0 / 0
Синхронизация книги Excel и БД
    #39862599
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понял, что импорт из экселя в новой концепции не нужен, нужен интерфейс ВМЕСТО экселя. Но при этом нужен "сырой" нетипизированный ввод.
...
Рейтинг: 0 / 0
Синхронизация книги Excel и БД
    #39862611
StarDestroyer89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

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

1) Импорт
- Загрузка из Excel нового куска данных в интерфейс в GridView
- Первичная валидация данных, информирование об ошибках, исправление ошибок через GridView
- Загрузка на сервер

2)Повседневная работа
- Выгрузка данных использую фильтры в GridView, корректировка
- Загрузка на сервер.

Экспорт
3) Выгрузка обратно в Excel за определенный период


Пока сам еще не определился - в процессе разработки будет виднее. Пока хотел бы больше разобраться, как выстроить объектную модель и структуру приложения, какие технологии применить.
...
Рейтинг: 0 / 0
Синхронизация книги Excel и БД
    #39862673
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А насколько нужен редактор сырых данных, если изначальные данные все равно в экселе? К возможностям редактирования экселя ты даже близко не подойдешь.

Есть такой вариант, я так делал. Пользователь готовит файл в экселе, пытается его загрузить.
Если при загрузке выясняется, что файл неверный, то файл раскрашивается загрузчиком, допустим ошибочные ячейки помечаются красным фоном и добавляется комментарий, описывающий проблему. Либо выводится отчет (например в виде html, чтобы не париться), где в дружественной форме указывается пользователю на его ошибки. А при успешной загрузке пользователю предоставляются уже нормальные редакторы сущностей.
...
Рейтинг: 0 / 0
Синхронизация книги Excel и БД
    #39862941
StarDestroyer89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, Спасибо, учту.

Допустим, файл прошел проверку. Как мне лучше управлять ненормализированными данными? Делить по сущностям(класссам) на клиенте и организовывать связь каждой сущности с соответсвующей таблицей в бд? Далее, допустим, через orm - удалять, изменять, добавлять строки в БД?
...
Рейтинг: 0 / 0
Синхронизация книги Excel и БД
    #39862943
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarDestroyer89Shocker.Pro, Спасибо, учту.

Допустим, файл прошел проверку. Как мне лучше управлять ненормализированными данными? Делить по сущностям(класссам) на клиенте и организовывать связь каждой сущности с соответсвующей таблицей в бд? Далее, допустим, через orm - удалять, изменять, добавлять строки в БД?
А оно вам надо? У вас же уже есть и промежуточная таблица, и хранимая процедура.

Цель-то какая?
...
Рейтинг: 0 / 0
Синхронизация книги Excel и БД
    #39862952
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarDestroyer89Допустим, файл прошел проверку. Как мне лучше управлять ненормализированными данными? Делить по сущностям(класссам) на клиенте и организовывать связь каждой сущности с соответсвующей таблицей в бд? Далее, допустим, через orm - удалять, изменять, добавлять строки в БД?Я бы отдал это на сервер приложения. В твоем описании он не просматривается, как я понимаю, ты хочешь сохранить двухзвенку. Если с нуля - наверное логичнее было бы делать на клиенте, но тут я с Дмитрием согласен - раз есть уже отлаженный механизм, почему бы им не воспользоваться.
...
Рейтинг: 0 / 0
Синхронизация книги Excel и БД
    #39863773
StarDestroyer89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, так как этот проект я буду делать в качестве тренировки, я его буду делать во внерабочее время. Поэтому у меня нет цели сделать его быстрее.

Есть цель сделать его максимально правильно с точки зрения архитектуры и "пощупать" все соответсвующие технологии.

Я так понимаю, что нужно делать трёхзвенку , так как двухзвенка это уже вчерашний век.

То есть необходимо остановиться на MVC модели?

То есть необходимо делить на клиенте, а потом писать на сервер.

Этот подход необходимо применять и при работе с файлом при импорте и при повседневной работе с DataGridView?

Как лучше реализовать бизнес-логику - пробегаться циклом по всем строкам Excel файла/DataGridView и формировать сущности в зависимости от столбца или есть более изящный способ?
...
Рейтинг: 0 / 0
Синхронизация книги Excel и БД
    #39863831
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarDestroyer89Я так понимаю, что нужно делать трёхзвенку , так как двухзвенка это уже вчерашний век.Ну это практичнее и безопаснее, удобнее в управлении версиями. То есть целишься на тонкого клиента (неважно, десктоп или веб) и серверный бэкенд, ну а БД уже за ним и клиенту никак не доступна

StarDestroyer89То есть необходимо остановиться на MVC модели?Если клиент десктопный - на сервере у тебя будет вебапи скорее всего. А на клиенте - как хочешь. Можно, например WPF+MVVM

StarDestroyer89То есть необходимо делить на клиенте, а потом писать на сервер.При наличии сервера приложения - на сервере приложения скорее всего, нужно подробнее задачу смотреть

StarDestroyer89Этот подход необходимо применять и при работе с файлом при импорте и при повседневной работе с DataGridView?Слишком абстрактный вопрос. Какой подход? Что такое "повседневная работа"?

StarDestroyer89к лучше реализовать бизнес-логику - пробегаться циклом по всем строкам Excel файла/DataGridView и формировать сущности в зависимости от столбца или есть более изящный способ?Разделить в голове представление и модель данных. При разделении данных на сущности слово DataGridView у тебя нигде не должно фигурировать.
...
Рейтинг: 0 / 0
Синхронизация книги Excel и БД
    #39863935
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarDestroyer89проект я буду делать в качестве тренировки, я его буду делать во внерабочее времяВ качестве тренировки в нерабочее время лучше пройти пару онлайн курсов по C#.

StarDestroyer89Есть цель сделать его максимально правильно с точки зрения архитектуры и "пощупать" все соответсвующие технологии.

Я так понимаю, что нужно делать трёхзвенку , так как двухзвенка это уже вчерашний век.

То есть необходимо остановиться на MVC модели?

То есть необходимо делить на клиенте, а потом писать на сервер.Архитектура сильно зависит от задачи.

Сейчас "данные из Excel загружаются мною в БД 1 раз в месяц". Не вижу тут смысла городить трёхзвенку.
...
Рейтинг: 0 / 0
Синхронизация книги Excel и БД
    #39863936
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К примеру вот архитектура нашего импорт сервиса:
...
Рейтинг: 0 / 0
Синхронизация книги Excel и БД
    #39863940
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот архитектура интерфейса импорта:
...
Рейтинг: 0 / 0
Синхронизация книги Excel и БД
    #39863942
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для нашего импорта она очень даже правильная, но вот для вашей задачи не подходит :)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Синхронизация книги Excel и БД
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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