2015-07-07 3 views
2

Я пытаюсь понять архитектуру современных веб-приложений. В ASP.NET MVC все классы бизнес-логики находятся в Model и Controller, которые принимают и направляют пользовательские запросы. Если я использую его, можно ли использовать Angular JS, который сам является MVC-архитектурой, но вся бизнес-логика находится в контроллере и модель - только POJO. Может ли Angular JS использоваться только с Web API 2, где он получает данные из службы RESTful и выполняет все манипуляции на стороне клиента? Какая архитектура наиболее часто используется?В чем разница между MVC в Angular JS и MVC в ASP.NET или Spring MVC?

+0

Вы можете найти [этот вопрос] (http://stackoverflow.com/questions/29919834/asp-net-mvc-and -angularjs-together-asp-net-web-api). Подводя итог: существует множество возможных комбинаций, выберите то, что соответствует вашим потребностям. –

+0

Как я вижу, ASP.net занимается управлением взаимодействием с бизнес-логикой приложения, Angular занимается управлением пользовательским интерфейсом (пользовательским интерфейсом). Это не конкурирующие цели, и Angular может использоваться как SPA с поддержкой сервера или использоваться как новое приложение на каждой странице, чтобы обеспечить поддержку тяжелого рабочего процесса сервера. – Claies

ответ

1

В ASP.NET MVC, все бизнес-логики классов в модели и контроллер принимает и направляет запросы пользователя

Это не верно. Модели (a.k.a. ViewModels) должны быть прозрачными («POCO») контейнерами данных в ASP.NET MVC. Бизнес-логика должна исходить от уровня, потребляемого контроллерами, но в небольших приложениях или до рефакторинга контроллер является более подходящим выбором, чем модель (View).

Может ли Angular JS использоваться только с Web API 2, где он получает данные из службы RESTful и выполняет все манипуляции на стороне клиента? Какая архитектура наиболее часто используется?

Нет, вы можете использование ASP.NET MVC с угловой JS, а также путем возврата JsonResults от действий регулятора. Тем не менее, WebAPI является лучшим/более подходящим выбором. Конечно, вы также можете использовать Angular со многими другими инструментами, отличными от Microsoft, которые возвращают JSON через http (s) (например, узел, ruby, java и т. Д.).

Чтобы более точно ответить на ваш реальный вопрос, основное различие между ними состоит в том, что один является шаблоном MVC для сервера, а другой является шаблоном MVC для браузера. Угловая на самом деле любит называть ее «MVW», где «W» означает «Что бы ни было».

+0

Это очень радикальное утверждение «Это неверно. Модели должны быть прозрачными (« POCO ») контейнерами данных в ASP.NET MVC. Бизнес-логика должна либо поступать в действия контроллера, либо на другом уровне, который потребляют контроллеры». ... Контроллеры не должны содержать бизнес-логику, на мой взгляд, и «модели» не всегда должны быть просто объектами poco ... – BenjaminPaul

+0

Хорошо, я ссылался на это: https://msdn.microsoft.com/en-us/library/dd381412 (v = vs.108) .aspx – CodeBeginner

+0

«В ASP.NET MVC все классы бизнес-логики в Model и Controller принимают и направляют пользовательские запросы». << Это на самом деле более верно, на мой взгляд. – BenjaminPaul

1

С моей точки зрения, вы смешиваете две очень разные технологии; Один из них - серверный (ASP.NET MVC), один - клиентский (AngularJS).

Эти два варианта можно использовать вручную, так как они не зависят от других существующих. И, IIRC, в NuGet есть модуль лесов, который помогает привязывать друг к другу (создавать объекты JS из объектов ASP.NET POCO).

С учетом этого, нет причин для вас использовать оба. Вы можете использовать один или другой, оба, или вообще использовать другую технологию (KnockoutJS и т. Д.)?

1

Как и другие шаблонов проектирования (Singleton, Factory, метод Factory) MVC также шаблон дизайна, который мы можем использовать в любой технологии, как (Java, .net, PHP) или каких-либо скриптов клиента сайта. нет никакой разницы между MVC в Angular JS и MVC в ASP.NET и Spring MVc

Смежные вопросы