ASP.Net MVC создание XML-фид данных для диаграммы - PullRequest
0 голосов
/ 18 июня 2009

Мне нужно создать вывод XML, который представляет данные, структурированные для гибкой диаграммы, помещенной в представление. У меня есть несколько вариантов:

  1. чтобы контроллер создал xml (используя данные из БД) и вернул его в представление, которое фактически ничего не делает, поскольку все готово.

  2. имеет строго типизированное представление для модели данных из БД и декларативно отображает xml в представлении.

  3. создайте метод расширения Html, который будет содержать логику для создания xml и использовать ее в представлении.

с точки зрения разделения интересов, что будет лучшим вариантом? в будущем я не ожидаю много изменений в структуре XML, возможно, время от времени. Я склонен выбирать вариант 1, так как он более тестируемый, и я чувствую себя более комфортно с контроллером, подготавливающим данные XML.

Ответы [ 3 ]

0 голосов
/ 18 июня 2009

Вариант 2 самый лучший. Ваша модель имеет данные, ваш контроллер запрашивает их и предлагает их для просмотра. Представление просто имеет тег, чтобы сказать, куда он идет. Для меня это разделение забот.

Видя ответ Раззи, мне также понравился 1, и я полагаю, что модель должна была бы обеспечить некоторый метод для сериализации некоторого класса сущностей (результатов вашей диаграммы) в xml, чтобы ваше строго типизированное представление могло сделать использовать это.

В любом случае, я надеюсь, что ответ поможет, в основном я не думаю, что 3 очень хорошо. : -)

0 голосов
/ 18 июня 2009

Я бы сказал, что это зависит от того, что вам удобнее, так как оба варианта 1 и 2 жизнеспособны. Люди скажут, что вариант 1 хорош, так как вы можете использовать XmlWriter, чтобы убедиться, что вы получили верный xml, и люди скажут, что вариант 2 действителен, поскольку mvc полностью контролирует то, что отображается в вашем представлении ( который может быть xml).

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

И я согласен с Марком, я не думаю, что вариант 3 - это хороший путь.

Это только мои мысли, надеюсь, это поможет: -)

0 голосов
/ 18 июня 2009

Я бы выбрал вариант № 1, так как я чувствую, что он лучше всего соответствует шаблону MVC. Это не обязанность View создавать XML-файл на основе некоторой модели данных. Это бизнес-логика и поэтому лучше в контроллере.

И, что не менее важно, как вы говорите, если у вас есть контроллер, создающий файл XML, вы можете создать для него модульный тест, который подтверждает, что выходной XML является допустимым, содержит все необходимые узлы и так далее.

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