Помогите мне разработать приложение Silverlight (в частности, форму ввода основных / подробных данных) - PullRequest
2 голосов
/ 11 апреля 2011

Я ищу советы по дизайну / архитектуре для приложения Silverlight.

Это будет приложение TimeTicket (TimeSheet), куда сотрудники могут заходить и вводить свое ежедневное время.

У нас есть существующее приложение ASP .Net и база данных, которую это новое приложение будет «использовать». Существующее приложение содержит вакансии, цитаты, счета-фактуры, сотрудников, клиентов и т. Д. И т. Д. И т. Д. Это полноценное финансовое приложение для определения стоимости работы.

Мы хотим начать позволять Сотрудникам вводить свои собственные TimeTicket. Я решил сделать это приложение Silverlight по нескольким причинам. 1. - Чтобы предоставить сотрудникам более богатый интерфейс (большинство из них в любом случае не используют приложение Job Cost или не нуждаются в доступе к нему) 2. - Чтобы отделить приложение, просто добавьте еще один слой, чтобы предотвратить возможность доступа сотрудников конфиденциальная информация в приложении Стоимость работы. 3. - Я действительно хочу использовать Silverlight и улучшить свои навыки в WPF / WCF (и, возможно, реализовать MVVM). И кто знает, я мог бы купить, чтобы переписать пользовательский интерфейс для основного приложения в качестве приложения Silverlight. :)

Хорошо, подробнее об этом приложении Silverlight ....

Будет некоторый базовый «рабочий процесс», потому что Менеджеры должны будут «утвердить» (и, возможно, отредактировать) расписание каждого сотрудника. Все время заносится либо на работу (которая может быть "накладной" работой, такой как обучение, встречи и т. Д.), Либо на работу (отпуск, болезнь и т. Д.). Наконец, TimeTicket будет «опубликован» в приложении «Стоимость работ» кем-то из бухгалтерии (прямо сейчас этот человек должен вводить каждый билет из «бумажного билета»!).

Главное, с чем мне нужна помощь (хотя я приму любой совет по поводу заявки), это фактическая форма ввода данных TimeTicket. Это будет форма ввода данных типа Master / Detail (Header / LineItem).

Я строго ищу руководство для формы "Добавить" ("C" в Crud. Lol) .... (Хотя, я уверен, я буду использовать эту же форму для редактирования / обновления.)

Форма ввода данных будет записываться в две таблицы: TimeTicket (главная таблица или таблица заголовков) и TimeTicketDetails (дочерняя таблица или таблица LineItems).

Если бы это было приложение ASP .Net, я бы, вероятно, использовал FormView для «Master» и ListView для Child. Что меня немного озадачило, так это то, что я хотел бы, чтобы форма начиналась примерно с 8 «позиций», уже находящихся в «списке» (или сетке). Я думал о том, чтобы пойти дальше и использовать фреймворк MVVM (просто накатить свой, фреймворк стороннего производителя или что-то в этом роде). Это дало бы мне разделение между Model и ViewModel, и при создании экземпляра я мог бы просто пойти дальше и добавить 8 строк (в ViewModel), с которых я хочу начать. Затем, когда пользователь заполняет форму (и она была проверена, конечно), я бы добавил только те строки, которые фактически использовались в базе данных. Мысли?

Я знаю, что могу это усложнить! Но по какой-то причине я просто не могу выбрать лучший способ начать. Я полагаю, что самая главная причина - это отсутствие опыта Silverlight.

Кстати, я просматривал довольно много демонстраций и статей о сервисах RIA WCF, и я рассматриваю возможность использования этой технологии. Это начнется как довольно маленькое приложение, но оно может значительно вырасти, поэтому я хочу иметь хорошую отправную точку, чтобы я мог легко расширяться (и действительно, я просто хочу изучить некоторые новые технологии и фреймворки ..)

Любой совет очень ценится!

Шэйн

1 Ответ

0 голосов
/ 11 апреля 2011

Два указателя помимо того, что этот вопрос слишком широкий (просто начните и задавайте меньшие вопросы):

  1. Не катите свою собственную структуру MVVM. Хотя это и забавно, но добавляет много работы, и лучше полагаться на проверенный код.
  2. Что касается принятия решения, когда добавлять данные в базу данных: это зависит от функциональных требований. Что и когда ожидает пользователь?

РЕДАКТИРОВАТЬ

Основные детали очень просты в Silverlight:

  1. Создать коллекцию.
  2. Привязать элемент управления Items к списку и установить для его IsSynchronizedWithCurrentItem значение true.
  3. Затем привяжите ContentControl к той же коллекции.
  4. Добавьте ContentTemplate в ContentControl, который содержит элементы управления для отображения сведений / полей с помощью привязки.

Если вы поместите элемент управления содержимым в UserControl, вы легко сможете добавить элементы в коллекцию: 1. Добавление пустого элемента (или со значениями по умолчанию) в коллекцию 2. Сделайте новый Предмет текущим, выбрав его в Коллекции Предметов. Таким образом, новый элемент будет доступен для редактирования.

С некоторыми изменениями можно поддерживать более сложные сценарии, но в двух словах это так.

...