Как обычно создаются приложения, управляемые данными - PullRequest
1 голос
/ 21 сентября 2010

Я начинающий .net программист, изучающий WPF в течение последнего месяца.С самого начала меня смущает то, как создаются приложения, управляемые данными в реальном времени.Я начал с базового приложения, в котором мне нужно было привязать данные к сетке данных, в которой примерно 10 столбцов.Обычный способ привязки данных, который я видел во всех руководствах, состоит в том, что у них есть пример данных, с помощью которых они создают бизнес-объект (максимум два / три поля).Но когда дело доходит до обработки больших объектов данных, пишут ли они методы получения / установки для всех полей 10/15?Для этого я предпочел привязать DataGrid к DataTables напрямую, что потребовало меньше кода.Но кажется, что этот подход может упустить несколько преимуществ, таких как получение уведомлений об изменении источника / коллекции и т. Д.Я не знаю о создании приложений в реальном времени.Было бы хорошо, если бы я получил руководство с этим.

Ответы [ 4 ]

3 голосов
/ 21 сентября 2010

У меня нет опыта работы с более чем 15-20 столбцами в DataGrid, но для этого я создал геттеры и сеттеры для свойств.

Создание фрагмента кода, который шаблонирует свойство с INotifyChanged, конечно, также помогает.http://drwpf.com/blog/2007/11/17/my-wpf-code-snippets/

Это также зависит от того, откуда вы берете свои объекты.В одном проекте, который я сделал, сущности пришли из Entity Framework, который реализовал INotifyPropertyChanged для свойств, поэтому в этом случае мне не нужно было писать свойства обтекания.Я мог бы связать свойства сущностей напрямую со столбцами таблицы данных.

2 голосов
/ 21 сентября 2010

Нет серебряной пули для разработки приложений, управляемых данными.Я пишу приложение Enterprise Resource Planning с использованием структуры приложения в стиле SOA для жизни - и я могу заверить вас, что я никогда не использую DataTables напрямую :-).DataTables подходят для IMO, если у вас есть только один пользователь и ограниченные объемы данных.Как только вы добавите второго пользователя ... вам следует отойти от DataTables (и DataSets и т. Д.)

Но чтобы ответить на ваш вопрос - когда у меня большие наборы данных с объектами со многими свойствами, я склонен показыватьМаксимум около 10 столбцов - если есть больше свойств, я помещаю их в раздел «Детали» / отдельный вид сведений.Затем я связываю отдельные столбцы с 10 (или около того) наиболее важными свойствами объектов.

Я использую DataGrid (табличные данные для чтения и записи) только для очень маленьких коллекций с довольно простыми объектами - обычно это свойство коллекцииродительского объекта.В другом месте я использую ListBox или ListView и показываю только данные (только для чтения), а затем подробный раздел для создания / обновления одного элемента.Это значительно упрощает обработку CRUD-операций (создание / чтение / обновление / удаление) в и из базы данных (или любого хранилища данных).

Запуск в WPF с использованиеммного возможностей - но я бы посоветовал вам взглянуть на MV-VM в какой-то момент, чтобы действительно использовать мощь (и простоту) WPF.Я написал блог-серию из десяти статей для одного способа сделать это - она ​​начинается здесь .Это может быть немного выше вашего уровня, если вы только начинаете, но сохраните его на один из тех дней, когда вы не можете уснуть ... :-)

Надеюсь, это хотя бы дало вам несколькоуказатели: -)

1 голос
/ 22 сентября 2010

Как правило, в крупномасштабных корпоративных приложениях у вас есть Business Objects (BO), имеющие 8-10 свойств (полей). Когда Таблицы в БД становятся больше, выполняется нормализация, чтобы уменьшить количество столбцов и создать разные таблицы (связанные через внешние ключи); То же самое делается в случае Бо, они разработаны (используя различные концепции ООП), так что каждый БО будет иметь все связанные свойства вместе и иметь поддерживаемый размер. Большие BO будут комбинацией этих меньших BO. Это повышает удобство использования, и в то же время вам не нужно иметь дело с БО, имеющими много свойств.

1 голос
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...