Книга: ASP.NET MVC Framework
Прочие улучшения в API
Прочие улучшения в API
Кроме перечисленных ранее значительных нововведений, ASP.NET MVC 2 предложит еще ряд менее значительных изменений в API:
? новый защищенный виртуальный метод createActioninvoker
в классе controller
, который вызывается свойством Actioninvoker
и позволяет создавать отложенное создание экземпляра (instantiation) инициатора, если он не установлен;
? новый защищенный виртуальный метод OnAuthorizationFailed
в классе AuthorizationFilter
, который позволяет фильтрам авторизации отрабатывать ситуации, когда авторизация была провалена;
? новый метод Add(stringkey, object value)
у класса ValueProviderDictionary
, который позволяет проще задавать значения для экземпляров класса;
? новое свойство ActionDescriptor
в классе AuthorizationContext
;
? метод Controller.Execute
теперь вызовет исключение в ситуации, когда он вызван более одного раза в одном экземпляре. Это означает явное ограничение на вызов единственного экземпляра контроллера на каждый запрос;
? класс Controller
более не наследуется от MarshalByRefObject
;
? конструктор AuthorizationContext(ControllerContext context)
объявлен устаревшим, вместо него предлагается использовать вариант с двумя параметрами;
? внесены изменения в типы моделей так, что они теперь могут быть не только ссылочными типами, но и значениями. Например, в MVC 2 можно будет использовать System.Int32
как тип модели;
? поиск контроллеров в пространстве имен, указанном при регистрации маршрутов, теперь будет выполняться и в подпространствах имен.
Кроме нововведений, MVC 2 содержит изменения, которые "ломают" совместимость с существующим кодом:
? из класса DefaultControllerFactory
исключено свойство RequestContext
, вместо этого значение RequestContext
передается в методы GetControllerinstance
и GetControllerType
. Это изменение нарушает работу пользовательских вариантов фабрики контроллеров, которые наследовались от класса DefaultControllerFactory
;
? строковое значение area
в MVC 2 стало зарезервированным значением, которое нельзя использовать в качестве параметров маршрута при создании маршрутизации. В этом area стало похоже на бывшие ранее зарегистрированными строки controller
и action
;
? методы расширения хелпер-классов (вспомогательных классов) отныне возвращают MvcHtmlString
, вместо строки. Это нововведение рассчитано на использование в окружении ASP.NET 4.0 для получения преимуществ от нового синтаксиса элементов HTML-кодирования;
? действия, которые возвращают JsonResult
, в MVC 2 обязаны вызываться только в ответ на POST-запросы, это ограничение введено в целях повышения безопасности, поскольку обнаружены новые типы атак JSON Hijacking, осуществляемые при GET-запросах JSON-данных. Однако MVC 2 будет поддерживать способ обойти это ограничение через использование свойства JsonRequestBehavior
у класса JsonResult
;
? свойства Model
и ModelType
объявлены устаревшими, вместо них предлагается использовать новое свойство ModelMetadata
, которое содержит в себе данные Model
и ModelType
.
- Новые функции API для работы с Blob и массивами
- Вводящие в заблуждение заявления и прочие стратегии использования посланий
- 12.4.5. Прочие виджеты
- 12.5.4. Ruby и Windows API
- Windows API Tutorials
- Другие способы создания GUI — платформно-независимые оконные API
- Регламентированные и прочие отчеты
- Reshaping Data
- 10.5. API сигналов System V Release 3: sigset() и др.
- API, POSIX и библиотека С
- Книги по API Unix
- Прочие операторы