Вопрос 1:
Нет, вы не должны повторять свой код. Об этом говорится в СУХОЙ (http://en.wikipedia.org/wiki/Don%27t_repeat_yourself) принципах развития.
Вопрос 2:
Рекомендуется сериализовать модель с помощью сериализатора json и отправить ее в пользовательский интерфейс. Он будет обновлен и т. Д., А затем отправлен обратно в службы. Шаблон Google MVVM в javascript, чтобы увидеть, как это делается. KnockoutJs - отличное начало в достижении того, что вы хотите. Вероятно, лучше проверить некоторые примеры, сделанные в knockoutjs, чтобы увидеть, что происходит. В MVVM для WPF также есть много примеров, которые могут помочь понять шаблон на более высоком уровне. Я бы порекомендовал посетить codeproject.com для более подробных примеров MVVM.
Что касается ваших слоев, у вас есть много вариантов, но общая рекомендация будет:
1) Презентация должна запускаться через привязки MVVM, т. Е. Если привязка обновляется, пользовательский интерфейс затем обновляется сам.
2) сторона asp.net должна обновлять модели только при отправке обновлений через ajax в пользовательский интерфейс. (не все нужно отправлять через ajax, я не говорю об этом. Когда это происходит, он также не должен посылать дополнительные html или js для размещения на странице).
3) Ваши модели должны действительно прийти с asp.net на HTML-страницу. (это упростит задачу позже, поскольку страница будет обновляться только через модели asp.net, и вы не будете получать элементы, поступающие из нескольких доменов, что в итоге создает неудобства.
4) Ваш сайт asp.net должен предоставить оболочку для вашей службы WCF и может направлять вызовы в WCF.
OR
Если вы не хотите связывать WCF с asp.net и хотите, чтобы ваш интерфейс пользователя напрямую связывался через ajax с WCF (это должен быть более редкий пример использования, например, создание страницы, похожей на igoogle, с виджетами, или, возможно, разработка мобильных приложений без asp. сетевое взаимодействие, то есть полное приложение js) Затем вы можете исследовать CORS как вариант перехода от JS к WCF и JS к asp.net (это сложная задача, ее легко программировать, трудно приступить к работе для WCF, поскольку очень низкая документация по нему, поскольку в моем случае не IIS размещал WCF). См. Эту страницу для информации: http://enable -cors.org /