Главная Другое
Экономика Финансы Маркетинг Астрономия География Туризм Биология История Информатика Культура Математика Физика Философия Химия Банк Право Военное дело Бухгалтерия Журналистика Спорт Психология Литература Музыка Медицина |
страница 1Урок 1 – Чопочем или из чего что состоит.Цель урока: Изучить из чего состоит проект asp.net mvc (базовый), с чего всё начинается и как с этим работать. Изучение Nuget и Подключение протоколирования. НачалоСоздадим приложение ASP.NET MVC 4 Web Application «Lesson1». ![]() ![]() Не будем запускать приложение, а сразу установим (если до этого не сделали) NuGet расширение. ![]() NuGet Package Manager – это расширение для Visual Studio, которое позволяет добавлять в существующие проекты модули, которые значительно упрощают работу. При создании «Basic» asp.net mvc 4 приложения в само приложение было добавлено изначально много модулей. Их список мы можем найти, кликнув в Manage NuGet Packages… в контекстном меню проекта ![]() Из них по порядку:
Ок, теперь когда мы так примерно прикинули из чего состоит наше приложение запустим его. Для этого необходимо создать HomeController: ![]() ![]() Для метода (действия) Index добавим View: ![]() ![]() Собственно можно запускать. Всё что мы увидим – это:
Почему контроллер надо было назвать именно Home, как это работает, более подробно мы будем изучать в следующих уроках. Так же мы изменим уже существующую структуру каталогов, чтобы нам потом проще работалось. Global.asaxА счас мы обратим внимание на файл Global.asax: public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); } } Класс MvcApplication наследует HttpApplication и содержит инструкции для инициализации приложения. Есть еще несколько событий, на которые можно добавить код. Рассмотрим их:
Ок, теперь чтобы воочию убедиться, что всё именно так и происходит, добавим протоколирование и сделаем это через добавление NLog модуля в NuGet Package Manager ConsoleВ NuGet есть консоль для выполнения команд по установке\удалению\поиску модулей, и других вещей, типа скаффолдинга. Для вывода всех установленных модулей пишем: Get-Package Для получения всех доступных к установке модулей: Get-Package –ListAvailable Для получения всех доступных модулей с названием NLog Get-Package -ListAvailable -Filter NLog Или
Get-Package -ListAvailable | where {$_.Id -match "NLog"} (это дольше) Для установки модуля NLog необходимо вначале выбрать проект (если их в солюшене больше одного) и ввести команду: Install-Package NLog ![]() Файлы копируются в проект, добавляются ссылки на сборки и web.config может быть обновлен. Для удаления из проекта модуля необходимо, чтобы он не был связан с другими модулями. Удаляем так:
NLogПосле установки пользуемся документацией на NLog (http://nlog-project.org/wiki/Tutorial) – и добавляем в web.config: <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <targets> <target name="logfile" xsi:type="File" fileName="C://file.txt" /> targets> <rules> <logger name="*" minlevel="Info" writeTo="logfile" /> rules> nlog> Мы ее потом исправим, а пока проверим как есть. Добавим в код:
Запустим и откроем файл C://file.txt, завершим приложение (Stop). Мы увидим какие события наступили: 2012-09-18 19:18:11.5668|INFO|Lesson1.MvcApplication|Application Start 2012-09-18 19:18:13.7319|INFO|Lesson1.MvcApplication|Application Init 2012-09-18 19:18:14.2709|INFO|Lesson1.MvcApplication|Application Init 2012-09-18 19:18:14.2769|INFO|Lesson1.MvcApplication|Application BeginRequest 2012-09-18 19:18:14.3579|INFO|Lesson1.MvcApplication|Application AuthenticateRequest 2012-09-18 19:18:14.3579|INFO|Lesson1.MvcApplication|Application AuthorizeRequest 2012-09-18 19:18:14.3579|INFO|Lesson1.MvcApplication|Application ResolveRequestCache 2012-09-18 19:18:14.3989|INFO|Lesson1.MvcApplication|Session Start 2012-09-18 19:18:14.3989|INFO|Lesson1.MvcApplication|Application AcquireRequestState 2012-09-18 19:18:14.3989|INFO|Lesson1.MvcApplication|Application PreRequestHandlerExecute 2012-09-18 19:18:15.9580|INFO|Lesson1.MvcApplication|Application PreRequestHandlerExecute 2012-09-18 19:18:15.9580|INFO|Lesson1.MvcApplication|Application ReleaseRequestState 2012-09-18 19:18:15.9580|INFO|Lesson1.MvcApplication|Application UpdateRequestCache 2012-09-18 19:18:15.9580|INFO|Lesson1.MvcApplication|Application EndRequest 2012-09-18 19:18:15.9580|INFO|Lesson1.MvcApplication|Application PreSendRequestHeaders 2012-09-18 19:18:35.6061|INFO|Lesson1.MvcApplication|Session End 2012-09-18 19:18:38.0833|INFO|Lesson1.MvcApplication|Application Dispose 2012-09-18 19:18:38.0833|INFO|Lesson1.MvcApplication|Application End 2012-09-18 19:18:39.1383|INFO|Lesson1.MvcApplication|Application Dispose В Application_Start выполняется 4 строки регистрации Area (область), Filter (фильтров), Bundle (пучок), Route (маршрутов). Подробности по инициализации Filter, Вundle и Route находятся в папке App_Start.
WebActivatorWebActivator – это модуль, который позволяет запустить код до самого первого старта App_Start. Это может быть необходимо для того, чтобы, например, создать тестовую БД перед запуском (потом сделаем). Установим: Install-Package WebActivator Добавим класс в App_Start папку: [assembly: WebActivator.PreApplicationStartMethod(typeof(PreStartApp), "Start")] namespace Lesson1.App_Start { public static class PreStartApp { private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); /// /// Метод запускается один раз перед стартом приложения /// public static void Start() { logger.Info("Application PreStart"); } } } В файле логов увидим что строка Application PreStart исполняется раньше Application Start: 2012-09-19 10:29:01.3950|INFO|Lesson1.App_Start.PreStartApp|Application PreStart 2012-09-19 10:29:01.6290|INFO|Lesson1.MvcApplication|Application Start Напоследок сделаем запись логов более осмысленными в файлы разложенные по разным категориям и пишущие в папку Contents а не в корень C: Создадим 4 файла отдельно для trace (трассировки), debug (отладки), info (информации), error (ошибки). Определим место записи: /Contents/logs/[текущая дата] Перепишем конфигурацию: <nlog autoReload="true" xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <variable name="logDirectory" value="${basedir}/Content/logs/${shortdate}" /> <targets> <target name="fileLogTrace" xsi:type="File" fileName="${logDirectory}/trace.txt" /> <target name="fileLogDebug" xsi:type="File" fileName="${logDirectory}/debug.txt" /> <target name="fileLogInfo" xsi:type="File" fileName="${logDirectory}/info.txt" /> <target name="fileLogErrors" xsi:type="File" fileName="${logDirectory}/errors.txt" /> targets> <rules> <logger name="*" level="Trace" writeTo="fileLogTrace" /> <logger name="*" level="Debug" writeTo="fileLogDebug" /> <logger name="*" level="Info" writeTo="fileLogInfo" /> <logger name="*" minlevel="Warn" writeTo="fileLogErrors" /> rules> nlog> Log2ConsoleДля NLog есть еще классная программа Log2Console, которая позволяет получать логи прямо в окно программы. ![]() Запускаем программу и настраиваем приемщик: ![]() В Web.config пишем: <target name="TcpOutlet" xsi:type="NLogViewer" address="tcp4://localhost:4505"/> Обращаю внимание, что писать надо address=”tcp4://…”, а не address=”tcp://…” Смотрите также: Урок 1 – Чопочем или из чего что состоит
147.38kb.
1 стр.
Правила чтения Основной курс Урок 1 Урок 2 Урок 3 Урок 4 Урок 5 Урок 6 Урок 7 Урок 8 Урок 9 Урок 10 Урок 11
2279.47kb.
7 стр.
Карл дю Прель – Философия мистики или Двойственность человеческого существа
5372.35kb.
33 стр.
ΜИдрис Шах. Путь суфиев§
2594.74kb.
17 стр.
Конспект одноимённой дискуссии
137.12kb.
1 стр.
Урок по теме. Тема Климат и климатические ресурсы (4ч.) Урок 12. От чего зависит климат нашей страны
153.73kb.
1 стр.
«Влияние состава пластилина на его свойства»
92.27kb.
1 стр.
Темы круглых столов 24 марта
51.37kb.
1 стр.
Урок-исследование по теме «силы в природе»
129.68kb.
1 стр.
Урок 1 26 марта -1 апреля Одеяние, сотканное на небесах Урок 2 2-8 апреля От возвышения до падения
1013.49kb.
23 стр.
Power Blocks Interval Тренировка состоит из чередования силовых блоков урок
51.2kb.
1 стр.
Полезные советы для начинающих работать на сцене 63.15kb.
1 стр.
|