Архив

Архив раздела ‘Web’

Общая рубрика. Все, что связано с интернет: технологии, события, новости.

ASP.NET MVC. Перехватываем нулевую модель (null model handling).

19 декабря 2012 Нет комментариев
Много раз сталкивался с тем, что контроллеры в ASP.NET MVC со временем начинают обрастать бизнес-логикой или, что еще хуже, «сервисной» логикой (создание/удаление файлов, редактирование каких-нибудь конфигов и тд.). Слова «контроллеры», «контроллер» и «вьюха» сейчас будут повторяться слишком часто, но ничего не поделать :). Так вот,  такие контроллеры сложно тестировать и поддерживать. В идеале, контроллер должен содержать только логику по формированию представления (View), а на деле — контроллер превращается в своеобразный комбайнер (собиратель), который по частям заполняет модель отовсюду, откуда только можно, выглядеть это может примерно так:

    public class AbstractController : Controller
    {
        public ActionResult Index()
        {
            var model = new SomeModel();
            model.Property1 = SomeService1.GetProperty1();
            model.Property2 = AnotherService.GetProperty2();
            SomeStrangeHelper.DoSomethingWithModel(model);
            ...

            return View(model);
        }
    }

[Читать далее…]

ScriptManager для ASP.NET MVC. Третий вариант.

18 декабря 2012 Нет комментариев
Очередная вариация на тему ScriptManager’а, это скорее отрефакторенный вариант второго решения. В прошлый раз мы использовали HttpModule, но из-за особенностей обработки запросов модулем его использование влечет за собой накладные расходы, поскольку любой запрос, будь то файл стилей или файл с клиентскими скриптами или же изображение, проходит через всю цепочку модулей, которые зарегистрированы в ASP.NET приложении. В предыдущем скрипт-менеджере мы делали проверку, что текущий запрос — это запрос именно html-страницы, и если это так, то мы запускали обработку html. Однако, по умолчанию, в приложениях ASP.NET MVC весь выходной html-код генерится контроллером и вьюхой, а если это и ваш случай, то можно сделать все проще, мы будем использовать ActionFilterAttribute.

[Читать далее…]

ScriptManager для ASP.NET MVC. Второй вариант.

11 августа 2012 Нет комментариев
В продолжении предыдущего поста выкладываю стопроцентно-"трушный" вариант ScriptManager`а для ASP.NET MVC, с которым ваш сайт пройдет HTML-валидацию. Как я уже говорил, общая идея заключается в том, что нам нужно перехватить ответ сервера и изменить его перед отправкой. Перехватить Response нам поможет HttpModule.

[Читать далее…]

ScriptManager для ASP.NET MVC.

10 декабря 2011 5 комментариев
Открываю новый цикл статей по ASP.NET MVC. Все описанные плюшки реализованы в нашей CMS. Начну пожалуй с такой штуки, как ScriptManager. Наверное каждый, кто занимался разработкой на ASP.NET использовал этот удобный функционал для добавления скриптов и файлов-стилей на страницу. ScriptManager широко применяется в классических ASP.NET Webforms и по понятным причинами отсутствует в ASP.NET MVC, я очень активно искал аналоги этого класса для ASP.NET MVC, но ничего вразумительно найти не смог, поэтому пришлось писать свой. Дело было весной, поэтому возможно, что сейчас уже есть более хорошие решения, буду признателен за ссылки на них.
[Читать далее…]

Обновление основного сайта.

27 ноября 2011 4 комментария
Сегодня наконец-то был обновлен наш основной сайт. Обновилось абсолютно все:

  • движок — сайт переписан с нуля на новый движок;
  • технология — ASP.NET Webforms заменена на ASP.NET MVC3;
  • дизайн;
  • портфолио — добавлены новые работы.

Была проделана достаточно большая работа, много-много раз хотелось остановиться и все бросить, часто возникали ситуации, когда мы заходили в тупики (так нам казалось), потому что не хотелось изобретать велосипеды и втыкать какие-то немыслимые решения, вопрос "кому и зачем это нужно?" в последние месяцы не выходил из головы. К системе было прикручено все, что прикручивать изначально не планировалось в принципе, поскольку было очевидно, что реализация подобного функционала в отсутствии свободного времени сильно затянет дату выхода прототипа. Но теперь работа окончена, и мы очень ей довольны :).

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

Ждем комментариев по поводу нового дизайна :).

Categories: Разное Tags:

Partial Views и Areas в ASP.NET MVC.

23 февраля 2011 Нет комментариев
Всех с праздником :).

В ASP.NET MVC 2 появилось такое новое понятие как области (Areas), а поскольку релиз второй версии MVC вышел уже почти год назад, то понятие это уже далеко не новое, и проблема, с которой я недавно столкнулся, должна была к настоящему времени ну хоть кого-нибудь затронуть, однако, на просторах сети ее описания не нашлось. Смысл Areas в том, чтобы разделить большой проект на несколько маленьких, не создавая отдельных проектов в солюшене. Т.е., например, есть веб-приложение, состоящее из некоторой общей публичной части, какой-то административной части, блога и форума, каждая из частей выносится в отдельную независимую область (area), в результате все лежит в одном проекте, но в то же время разграничено по смысловой нагрузке. Это очень удобно (проверено лично). Появляется возможность иметь одноименные контроллеры, вьюхи и тд.

Это было как введение, на самом деле пост не об Areas. Речь пойдет о Partial Views (частичные представления), которые находятся в некоторой области (Area). Partial Views — это аналог User Controls в классическом ASP.NET, которые могут использоваться для отрисовки каких-то кусков страницы, например блока новостей.
[Читать далее…]

Categories: ASP.NET Tags: , , ,

ASP.NET MVC 3 Релиз.

24 января 2011 Нет комментариев
Новость немного запоздалая, но важная. Команда разработчиков ASP.NET выпустила очередную версию фреймворка ASP.NET MVC 3. Загружать я советую с Microsoft Web Platform Installer потому что отдельным пакетом новая версия у меня устанавливаться не захотела по непонятным причинам. Установка весьма долгая.

Новичкам рекомендую почитать обучающие материалы ASP.NET MVC на русском языке. В новой версии помимо всего прочего добавлена поддержка новой View Engine под названием Razor. Я не стал пробовать этот движок разметки в бета-версиях ASP.NET MVC 3, поэтому в релизе он произвел на меня очень положительное впечатление. Вообщем, сейчас с Razor`ом делать вьюхи стало офигительно удобно, кто сомневается — не сомневайтесь, разница в удобстве просто огромна. Ближе к концу недели постараюсь сделать маленький пост о Razor. Производительность Razor тоже на уровне, результаты тестов здесь. Книги по Razor и примеры использования можно бесплатно скачать здесь.

Categories: ASP.NET Tags: , ,

jsTree. JavaScript jQuery treeview дерево с богатыми возможностями. Часть 1.

10 января 2011 12 комментариев
Всех с наступившим 2011 годом и Рождеством! Давненько я ничего не писал, потому что два последних месяца 2010 года выдались весьма напряженными в рабочем плане:). Короче, ближе к делу — пара слов о плагине jsTree. Сразу оговорюсь, эта статья — скорее небольшое введение, здесь не будет никаких технических подробностей, это просто мои впечатления как разработчика от работы с плагином.

Иногда я пилю свою цмску на ASP.NET MVC. Среди всех особенностей ASP.NET MVC сразу бросается в глаза отсутствие таких привычных стандартных аспнетных контролов как Tree, Menu, Grid и прочих, поэтому такие части ты либо пишешь сам, либо используешь чужое, так я и столкнулся с jsTree.
[Читать далее…]

Categories: Вебмастеру Tags: ,

Редактирование карты сайта Web.sitemap. How to edit Web.sitemap.

19 ноября 2010 Нет комментариев
Любой разработчик ASP.NET, причем не важно, будь то MVC или WebForms, знает про такой класс как SiteMap. Этот класс предоставляет большие возможности для навигации по сайту, он может быть использован как DataSource к TreeView или Menu. Я не буду рассказывать про то, как этим классом пользоваться, как, где, куда создавать и что записывать в Web.sitemap — об этом информации полно, лучше расскажу я про редактирование. В дальнейшем, говоря о карте сайта, я буду говорить про стандартный функционал ASP.NET, а не про что-либо еще.

[Читать далее…]

Categories: ASP.NET Tags: , ,

Asus 1201N. Eee PC 1201N — нетбук Asus на Nvidia ION.

Я давно подумывал о покупке нетбука, основными требованиями к которому были дисплей с разрешением более чем 1024х768, объем оперативной памяти в р-оне 2Гб, по возможности двухъядерный процессор, воспроизведение HD-видео и Blue-ray и чтобы работал Warcraft III и Visual Studio 2010. Аппаратом, полностью удовлетворяющим всему перечисленному, стал Asus 1201N.
[Читать далее…]

Categories: Разное Tags: