Тренинг «Разработка веб-приложений с использованием ASP.NET MVC Framework» Занятие 6 Мобильное представление и локализация Гайдар Магдануров
Локализация Задача: обеспечить прозрачную локализацию представлений Решение: воспользоваться стандартным механизмом ASP.NET – Строго типизированные глобальные ресурсы – Ресурсы для каждого представления в App_LocalResources
Локализация Глобальные ресурсы размещаются в App_GlobalResources
Локализация Для локальных ресурсов уровня представления необходимо самостоятельно реализовать поддержку Вспомогательный метод Html.Resource()
Локализация Вспомогательный метод - расширение
Локализация Использование метода Html.Resource() Глобальные ресурсы – Html.Resource(MyStrings, Hello") Локальные ресурсы – Html.Resource(Hello") Форматирование строк – В ресурсах строка вида Привет, {0}! – Html.Resource(Hello, Билл)
Captcha Задача: создать повторно используемый компонент форм - Captcha Решение: создать метод-расширение для объекта Html, ActionFilter для обработки результатов работы контрола и HttpHandler для генерации изображения
Captcha
HttpHandler для генерации изображения – Регистрация в web.config – Исключение пути к HttpHandler из таблицы маршрутов
Captcha Атрибут CaptchaValidationAttribute
Captcha Использование в контроллере и представлении
Частичное кэширование Задача: обеспечить актуальность некоторых данных на кешируемой странице Решение: метод-расширение Html, использующий метод WriteSubstitution
Частичное кэширование Метод-расширение Html.Substitution()
Частичное кэширование Использование для представления
Тестирование Задача: обеспечить автоматическое тестирование кода, содержащего внешние зависимости Решение: использовать интерфейсы для всех компонентов, чтобы обеспечить возможность подмены реализации в тестовом окружении, для инициализации контроллеров использовать фабрику
Тестирование Контроллеры и фабрика
Тестирование Контроллеры и фабрика
Тестирование Подмена реализации в тестовом окружении