|
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 14
|
|||||||
Информационная система на C#08.04.2014, 19:26. Показов 14147. Ответов 9
Метки нет (Все метки)
Всем доброго времени суток, уважаемые!
Быстренько опишу ситуацию и задам вопросы. Предисловие: пишу дипломный проект - информационную систему на C# с помощью технологии ADO.NET. Сама система уже есть готовая: это курсач, который был разработан "на вырост" - сделано больше, чем требовалось. Он представляет из себя типичное MDI-приложение по работе с базой данных магазина розничной торговли. Вопросы: 1. Прочитал, что MDI уже неактуально и старо, как мир - что думают спецы по этому поводу? Нормально ли писать ИС в многодокументном приложении или есть идеи, как это сделать более эффективно и красиво? 2. Переходить ли на WPF? Достаточно ли ресурсов WForms или эффективнее и лучше будет использовать WPF для написания ИС? 3. Выкладываю скриншот текущего состояния интерфейса. Цветовая схема пока такая, однако планирую добавить возможность менять её. Кому не сложно, выскажитесь, пожалуйста. Ваши комментарии и мнения очень ценны для меня. Всем заранее спасибо! Надеюсь не миснул темой.
0
|
|||||||
| 08.04.2014, 19:26 | |
|
Ответы с готовыми решениями:
9
Информационная система Учета успеваемости студентов Разработать объектную модель (мин 4 класса - информационная система) Поисково-информационная система (база с документами-текстами) |
|
46 / 46 / 32
Регистрация: 10.05.2013
Сообщений: 180
|
|
| 08.04.2014, 21:29 | |
|
Тоже планирую клиент-серверное приложение для учета заказов, писать буду на WinForms, но ответ тоже интересует.
0
|
|
|
|
|||
| 08.04.2014, 21:50 | |||
|
Что касается интерфейса, то в случае с MDI самым неприятным, на мой взгляд, будет синхронизация данных во всех открытых окнах. В целом всё решаемо, конечно. Возможность изменения схемы лучше через готовые решения делать в Вашем случае, так как это всё побочно для дипломного проекта. С точки зрения стилей, конечно, WPF будет на порядок мощнее, но выше уже объяснил свою позицию.
1
|
|||
|
|
|||||
| 08.04.2014, 21:52 | |||||
|
Всему свое применение, главное - чтобы было юзабельно. Понятия "модно" и "не модно", тут как-то не сильно уместны. Другое дело, что после изобретения MDI, появились другие варианты организации интерфейса Лично меня MDI не устраивает тем, что окна в контейнере скрывают друг друга, кстати Devex эту проблему решил и сделал своеобразный табконтрол, на вкладках которого располагаются формы, оч удобно, но денег стоит. Я в своих приложениях реализовал практически devex'овский подход, только я не формы делаю, а user-контролы, и затем в зависимости от надобности динамически кидаю их на вкладки общего для всего приложения табконтрола. Взаимодействие общей менюшки с контролами через интерфейсы. Подход относительно гибкий, и позволяет быстро писать и добавлять всякие доп. типы документов.
1
|
|||||
| 08.04.2014, 21:54 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 14
|
|
| 10.04.2014, 13:35 [ТС] | |
|
Spawn, спасибо за комментарий. Насчёт синхронизации данных - да, очень неудобный момент, потому что у меня в программе после изменения чего-то идёт постоянная проверка на наличие открытой формы, связанной с изменениями, чтобы, если что, обновить её. Есть ли какой-то для этого более универсальный метод?
nio, спасибо за развёрнутый ответ, есть, над чем подумать. Возьму на вооружение идею с табконтролами, пересмотрю свой интерфейс, подумаю, что можно сделать. Реализацию вашего подхода представляю весьма смутно пока.
0
|
|
|
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 14
|
|
| 10.04.2014, 14:46 [ТС] | |
|
Spawn, не могли бы поподробнее расписать, что там конкретно за события должны быть? В общем виде.
Насколько понял, я должен буду создать событие, отвечающее за изменения данных в какой-то определённой форме - если оно происходит, обновлять данные в форме. Только я плохо понимаю саму механику процесса: что записать в обновляемой форме, что записать в обновляющей (там, где мы что-то поменяли).
0
|
|
|
|
||
| 10.04.2014, 16:27 | ||
|
Джошуа, механика событий по сути проста. К примеру в программе магазина могут быть 2 формы: одна отображает список товаров на складе, другая предназначена для расчета с покупателями. Пример конечно не самый, потому что как правило с этим работают разные пользователи и одновременно они врядли будут открыты, но всё-таки... Прикол заключается в том что эти 2 формы между собой не будут связаны никакой логикой, они всего-лишь работают с общими данными. Теперь нужно сделать для склада возможность генерировать событие изменения списка товаров на складе. При этом самому складу в принципе знать не нужно, кто работает с этим событием, он его сгенерировал и всё. Зато все подписанные на события, при его получении смогут выполнить некие действия, в данном случае обновить список товаров на складе.
Добавлено через 2 минуты Не по теме: на самом деле всё гораздо сложнее, формы не должны обмениваться между собой информацией об изменении данных. Данные должны быть отдельно, интерфейс отдельно, но раздление логики на слои - это уже совсем другая тема :) Добавлено через 2 минуты
1
|
||
|
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 14
|
|
| 10.04.2014, 22:46 [ТС] | |
|
nio, спасибо, я во всём разобрался.
0
|
|
| 10.04.2014, 22:46 | |
|
Помогаю со студенческими работами здесь
10
Информационная система Информационная система на C# Информационная система Информационная система Нужна информационная система Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|