WPF динамическая архитектура данных - PullRequest
1 голос
/ 04 марта 2010

Так что у меня есть некоторый уровень сложности при разработке конкретного решения с некоторыми динамическими элементами данных ....

Таким образом, у меня есть два места, где я храню данные - база данных и PDF (хотя я пишу только в PDF - я никогда не читаю из него). Вы можете думать о том, что PDF работает во многом как база данных - за исключением того, что схемы для таблицы и PDF разные. Различные поля будут включены в базу данных и PDF. Пользователи смогут редактировать определенные поля, но не все поля. Я изо всех сил стараюсь обеспечить разделение пользовательского интерфейса и логики здесь, но я сталкиваюсь с трудностями. Моя логика, по сути, заключается в том, чтобы сообщать моему пользовательскому интерфейсу, какие элементы пользовательского интерфейса создавать и какие ограничения применять к ним (обязательные параметры, и т. Д.), Поэтому я чувствую, что создаю пользовательский интерфейс из своей бизнес-логики; но я не знаю, как еще сделать это с динамическими элементами данных. Когда это будет сделано, я должен написать в базу данных, а затем распечатать PDF.

По сути, вы можете думать об этом вопросе как ... "У меня тонна разрозненных данных. Мне нужно делать разные вещи с разными частями данных. Я не могу придумать способ сделать это в общем, не делая некоторые кодирование злодеяний ". У кого-нибудь есть идеи?

Ответы [ 2 ]

1 голос
/ 04 марта 2010

То, что вы делаете, - это разработка каркаса приложения, а не приложения. Вам может быть полезно взглянуть на другие фреймворки приложений (их насчитывается миллиард), чтобы увидеть, как другие подошли к проблеме.

Я могу вам сказать прямо сейчас, что ваш проект будет успешным в прямой зависимости от того, насколько хорошо вы разработали схему обработки метаинформации. Общее правило Стива Макконнелла о том, что данные легче отлаживать, чем код, в значительной степени является ориентиром для такого рода проектов.

WPF действительно очень хорошо подходит для такого рода вещей. Я портировал свою собственную платформу приложений из Windows Forms в WPF и удивляюсь тому, сколько кода мне не нужно писать.

0 голосов
/ 04 марта 2010

На вашем месте я бы посмотрел всю информацию о полях, которые пользователи должны просматривать / редактировать, и посмотреть, какие общие темы я вижу. Глядя на ваш вопрос, я бы, вероятно, создал класс / структуру, содержащую следующее:

struct FieldInfo
{
    string FieldName;
    string DisplayName;
    string DataType;
    bool Required;
    delegate Validator;
    string OldValue;
}

delegate bool Validator(string input, out string message);

Я бы вернул FieldInfo [] из Business Logic, а затем в пользовательском интерфейсе использовал этот массив, чтобы определить, что показывать пользователю. Таким образом, даже логин проверки - это бизнес-логин (с использованием делегата), и пользовательский интерфейс должен только решить, какие элементы отображать для каждого типа. Можно даже пойти еще дальше, и у структуры FieldInfo будет имя элемента, сообщающее UI, какой элемент использовать для этого поля (Textbox, DDL и т. Д.)

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