Мне действительно нужно содержимое App_Start в Ninject.MVC3? - PullRequest
3 голосов
/ 18 марта 2011

При загрузке пакета Ninject.MVC3 из NuGet создается эта папка App_Start с простым классом в ней;Который даже не компилируется из коробки, я мог бы добавить.

Просматривая его, он, похоже, не обладает какой-либо впечатляющей ... функциональностью ... или вообще никакой.Я также не нахожу его в SampleApplication для Ninject.Web.Mvc, откуда берется сам проект.(https://github.com/ninject/ninject.web.mvc/tree/master/mvc3/src/SampleApplication)

Может кто-нибудь объяснить цель этой папки / класса? Удаление их, похоже, никак не повлияет на мой проект. Есть ли какая-то мистическая причина, по которой мне нужно их хранить? (Или даже почему их делаютна первом месте?)

Ответы [ 3 ]

5 голосов
/ 18 марта 2011
1 голос
/ 18 марта 2011

Последняя версия Ninject.MVC3 создает папку с именем App_Start в вашем проекте.Эта папка содержит класс NinjectMVC3.cs, который является кодом начальной загрузки для инфраструктуры Ninject.Он имеет два атрибута сборки, которые используются для запуска и остановки кода NinjectMVC3.Именно эти атрибуты заставляют платформу WebActivator вызывать методы класса начальной загрузки и запускать платформу Ninject.Установка NinjectMVC3 также добавляет ссылки на сборки для Microsoft.Web.Infrastructure, Ninject, NinjectMVC3 и WebActivator.

Класс NinjectMVC3 содержит метод RegisterServices, в который вы добавляете код для привязки интерфейсов к их конкретным реализациям.Это файл, который вы должны отредактировать для настройки ваших зависимостей.

Это требуется и является единственным требованием для использования Ninject с вашим приложением MVC для обработки ваших зависимостей.Другие инструкции по добавлению кода в global.asax.cs следует игнорировать.

0 голосов
/ 25 января 2013

Тот же вопрос здесь дает краткий ответ = "Нет".Это просто новое соглашение, которое имеет смысл только для крупных веб-сайтов, и даже в этом нет уверенности.

http://weblogs.asp.net/pjohnson/archive/2012/09/07/mvc-4-and-the-app-start-folder.aspx

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

Обычный случай со специальными папками ASP.NET заключается в том, что они предоставляют разные разрешения безопасности.Кто-нибудь знает, нужна ли эта папка App_Start в среде с частичным доверием?то есть с ограниченным веб-хостингом, это единственное место, где вы можете вызывать функции, чтобы изменить способ маршрутизации сайта?

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

...