Что такое ASP.NET MVC?

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

15
задан tereško 13 July 2012 в 07:46
поделиться

8 ответов

. aspx не выполняет шаблон MVC, потому что aspx страницу ('представление') называют перед кодом позади ('контроллер').

Это означает, что контроллер имеет 'трудную зависимость' от представления, которое является очень против принципов MVC.

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

Тестирование контроллера совершенно отдельно намного быстрее, чем необходимость инстанцировать всего конвейера asp.net (приложение, запрос, ответ, состояние отображения, состояние сеанса и т.д.).

14
ответ дан 1 December 2019 в 03:05
поделиться

Scott Guthrie объяснил это в этом сообщении" ASP.NET Платформа MVC ",

  • Это включает чистое разделение проблем, тестируемости и TDD по умолчанию. Все базовые контракты в платформе MVC являются интерфейсом, базирующимся и легко mockable (это включает базирующийся IHttpRequest/IHttpResponse intrinsics интерфейса). Вы можете единица тестировать приложение, не имея необходимость выполнять Контроллеры в рамках процесса ASP.NET (делающий поблочное тестирование быстро). Можно использовать любую платформу поблочного тестирования, которую Вы хотите к - делают это тестирование (включая NUnit, MBUnit, Тест MS, и т.д.).

  • Это является очень расширяемым и сменным. Все в платформе MVC разработано так, чтобы она могла быть легко заменена/настроена (например: Вы можете дополнительно сменный Ваш собственный механизм представления, направляя политику, сериализацию параметра, и т.д.). Это также поддерживает использующее существующее внедрение зависимости и модели контейнера МОК (Виндзор, Spring. Сеть, NHibernate, и т.д.).

  • Это включает очень мощный компонент отображения URL, который позволяет Вам создать приложения с чистыми URL. URL Не должны иметь расширений в них и разработаны для легкой поддержки SEO и благоприятных для REST шаблонов именования. Например, я мог легко отобразить/products/edit/4 URL на действие "Редактирования" класса ProductsController в моем проекте выше или отобразиться/Blogs/scottgu/10-10-2007/SomeTopic/URL к действию "DisplayPost" класса BlogEngineController.

  • поддержка платформы MVC с помощью существующего ASP.NET.ASPX.ASCX, и.Master файлов разметки как "представление обрабатывает по шаблону" (значение, что можно легко использовать существующие функции ASP.NET как вложенные основные страницы, < % = %> отрывки, декларативное управление сервером, шаблоны, привязка данных, локализация, и т.д.). Это, однако, не использует существующую модель обратной передачи для взаимодействий назад к серверу. Вместо этого Вы направите все взаимодействия конечного пользователя к Классу контроллера вместо этого - который помогает гарантировать чистое разделение проблем и тестируемости (это также не означает состояния отображения, или жизненный цикл страницы с MVC основывал представления).

  • платформа MVC ASP.NET полностью поддерживает существующие функции ASP.NET как формы/аутентификация Windows, авторизация URL, членство/роли, вывод и кэширование данных, управление состоянием сессией/профилем, медицинский контроль, система конфигурации, архитектура поставщика, и т.д.

7
ответ дан 1 December 2019 в 03:05
поделиться

Прежде всего, это делает очень легким создать тестируемые веб-сайты с четко определенными разделениями ответственности. Его также намного легче создать допустимый XHTML UIs с помощью новой платформы MVC.

я использовал 2-й CTP (я думаю, что они находятся на пять теперь) запустить работу над веб-сайтом и, создав несколько веб-приложений прежде, я должен сказать что его сотни времен лучше, чем использование модели управления сервером.

Управление сервером прекрасно, когда Вы не знаете то, что Вы делаете. Поскольку Вы начинаете узнавать о том, как веб-приложения должны функционировать, Вы начинаете бороться с ними. В конечном счете необходимо записать собственное для заканчивания недостатков текущих средств управления. В этой точке, где MVC начинает сиять. И это даже не рассматривает тестируемости Вашего веб-сайта...

1
ответ дан 1 December 2019 в 03:05
поделиться

Большая статья Dino Esposito, который предназначен, чтобы объяснить ASP.net MVC разработчикам веб-форм ASP.net:

http://dotnetslackers.com/articles/aspnet/AnArchitecturalViewOfTheASPNETMVCFramework.aspx

1
ответ дан 1 December 2019 в 03:05
поделиться

Более автоматически сгенерированные идентификаторы HTML!!! Любой делающий любой вид JavaScript ценит этот факт.

1
ответ дан 1 December 2019 в 03:05
поделиться

ASP.NET с он - код позади, почти MVC - но не - одна большая вещь, которая делает его не, то, что codebehinds связываются непосредственно с aspx's - который является большим компонентом MVC. При размышлении о codebehinds как о контроллере - должен полностью отделяется от представления. Новая.NET MVC закругляет это - и приносит полную платформу MVC. Хотя уже существуют существующие для.NET (см. Spring.NET).

0
ответ дан 1 December 2019 в 03:05
поделиться

Я просмотрел пару простых примеров такой как этот . Я могу отчасти видеть различие. Однако я действительно не вижу, как MVC разъединяет представление от контроллера. Представление все еще ссылается, наполняют, это находится в контроллере. Я действительно вижу, как это делает намного легче протестировать, и что, по крайней мере, в MVC контроллер не имеет никакого знания представления. И Вы не должны были бы обрабатывать представление для вызова методов в контроллере. Я вижу, что это - настоящий прыжок, даже при том, что на первый взгляд он не может походить на много.

я действительно соглашаюсь с @Will о борьбе с управлением сервером. Я никогда не работал в ситуации, где они на самом деле использовались, но многие люди, которых я знаю, кто имеет, столкнулись с довольно многими ограничениями с ними.

0
ответ дан 1 December 2019 в 03:05
поделиться

Статья о ASP.net MVC По сравнению с Веб-формой

ASP.net http://weblogs.asp.net/shijuvarghese/archive/2008/07/09/asp-net-mvc-vs-asp-net-web-form.aspx

0
ответ дан 1 December 2019 в 03:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: