Привет всем. Самостоятельно изучаю программирование. На основной работе (не связанная с ИТ) провожу обучение и аттестацию. Решил написать программу для учета аттестованных (замучился писать руками в журнале, особенно когда народу навалом). Программа будет пока только на моем ПК с возможностью установки на другие (если получиться её качественно написать и работодатель захочет её купить). Идея в следующем: внесение данных об обучающихся (фио, адрес, должность и т.д., дата аттестации и последующие даты переаттестации), просмотр списка обучающихся с возможностью фильтрации по должности, организации и т.д., просмотр инфы о каждом учащемся отдельно, составление отчетов. Расписал 4 шага:
1. нужна БД, выбрал MySQL, установил, создал БД с таблицами. Вопрос: т.к. программа будет на одном ПК т.е. БД локальная, с возможностью в дальнейшем установкой на другие ПК, правильный ли выбор БД или лучше использовать другую, склоняюсь к Microsoft SQL Server 2016 Express
2. т.к. изучаю С# логика будет писаться этом ЯП
3. Графический интерфейс с помощью Windows Presentation Foundation
4. как-то соединить все эти компоненты в одно, как пока не знаю.
Сейчас остановился на 1-ом шаге.
Подскажите, правильный ли ход мыслей (архитектура программы), поправьте где ошибся.
Ваши предложения, замечания. Спасибо за помощь.
Да нигде не ошиблись вроде. Всё это можно связать в одно и работать будет. Если нужна сетевая БД - можете использовать MySQL или Postgresql.
Вместо WPF можно использовать WinForms. А можно и WPF - как больше нравится.
Не забудьте про ORM - Entity Framework, например.
Думаю вам надо сначала понять, что вы хотите получить в итоге.
Если программа будет работать на одном ПК, то возможно стоит посмотреть в сторону SQLite, при этом для установке на др. компьютер вам надо будет просто скопировать папку с проектом.
Если подразумевается многопользовательский доступ, то тут есть несколько вариантов:
- клиент-sql server;
- клиент-сервер-sql server;
Преимущества и недостатки обоих методов можно будет посмотреть в интернете.
Далее, если вы планируете в дальнейшем развивать проект, то стоит задуматься об архитектуре и условно разделить приложение на несколько уровней:
- Уровень работы с БД или DAL (тут нужно и использовать ORM);
- Уровень бизнес-логики или BLL, на этом уровне уже выполняться все проверки и обеспечение правильной логики работы;
- Уровень представления, тут уже можете отображать данные, вводить данные и т.п. с помощь WPF, ASP.NET, Winform.
Ну если вы решите использовать трехзвенную структуру, то еще думаю стоит посмотреть WCF.
Советую почитать книгу Применение DDD и шаблонов проектирования
пока программа будет работать на одном компе с одним пользователем, когда отлажу, протестирую, если все будет работать, в планах вторым этапом будет установка удаленного сервера и клиентов на компах с многопользовательским доступом.
книгу Применение DDD и шаблонов проектирования скачал, вечером возьмусь за неё.
На счет дальнейшего развития, ваши предложения учту, но это будет чуток позже, таки мысли были тоже.
У вас типичная учетная задача.
Лучший инструмент для решения подобных задач - 1С, но это если вы действительно хотите решить задачу о которой написали. Если же вам хочется поупражняться в программировании, то можете выбирать наиболее подходящий вам вариант.
Я думаю лучший инструмент для подобных задач это excel. Если у тебя не 1 миллион обучающихся. Тем более если все это хранится будет на 1 пк и не требует изменений со стороны десятка другого пользователей.
excel подошел бы может, но тут задача научиться создавать программы на C#, работать с БД и т.д., т.к. самостоятельно изучаю дотнет, а это прога пойдет в портфолио, а если повезет купит текущий работодатель.
Константин Нагибович: вообще работодатель закостенелая бюрократизированная гос. структура где до сих пор пишут все в журналах, все на бумаге, а компьютер используют как калькулятор или печатную машинку, возможно ему вообще ничего не надо, точно могу сказать про свой филиал, хотя скорей всего так везде, купит он её или нет это на втором плане, основная задача научиться писать программы + в портфолио, т.к. собираюсь отсюда уходить.