У меня есть проект ASP.NET MVC 4, и я застрял в архитектурном решении, на котором JavaScript framework или библиотека использует Angular.js или Knock.js. В настоящее время я склоняюсь к использованию Angular.js над Knockout.js, но не хочу выяснять, что на полпути во время разработки проекта я допустил ошибку.
Вот какой фон:
- Нам нужна привязка данных двухсторонней модели.
- Нам нужна возможность проверки просмотров. Я хочу иметь возможность выполнять сквозное модульное тестирование. Кроме того, мы используем непрерывную интеграцию.
- "Сохранить изменения". то есть, если пользователь вносит изменения на странице, нам нужна возможность обнаруживать любые изменения и предлагать пользователю сохранить их изменения до того, как они перейдут от страницы.
- "Уведомления". то есть пользователь будет зарегистрирован примерно через 8 часов и должен быть уведомлен и обновлен об изменениях, сделанных другими пользователями (ошибки, изменения статуса данных и т.п.).
- Нам нужно "будущее доказательство" нашего приложения. В настоящее время бизнес-единица не решила, нужно ли нам поддерживать мобильные устройства, но я знаю, что это всего лишь вопрос времени.
- Наша команда состоит из разработчиков с различными уровнями опыта от самых младших до старших разработчиков.
- В настоящее время наши модели сложны и могут получить еще больше
- Нам также необходимо рассмотреть RAD, повторное использование кода и ремонтопригодность
Я прочитал отличный ответ здесь и посмотрел интервью Скотта Аллена о Angular здесь
Поскольку мы не можем изменить нашу существующую архитектуру ASP.NET MVC 4, чтобы использовать что-то на стороне сервера, например, веб-API, у меня есть проблемы при попытке реализовать Angular.js с MVC 4. Из-за этого у нас будет две модели на сервере и одна на клиенте?
Я не ищу "что лучше" обсуждение Angular и нокаута, потому что я думаю, что у них обоих есть свои плюсы и минусы. Я ищу фактический код для реализации фреймворка или библиотеки JavaScript в приложении ASP.NET MVC 4. Мне нужно решение, с которым я могу жить через 2 года:)
Любые идеи или предложения? Может быть, ответ не Knock или Angular, а какая-то другая фреймворк JavaScript?