Pull to refresh

ASP.NET MVC на реальном примере. Теория и вступление.

Reading time 9 min
Views 63K
.NET *
Команда Microsoft очень интенсивно развивает свои продукты и средства для разработчиков. На эту тему уже и выхлопы шуточные были, по поводу выхода новых версий фреймворков. Разработчики, которые работают в крупных компаниях, ввязаны в большие проекты в общем-то без особого энтузиазма на это смотрят, так как такие махины нельзя в короткие сроки перевести на новую версию. Может быть чревато как всплыванием багов, так и изменением всей структуры проекта, что делать не всегда получается легко. Сказанное выше, к сожалению (или к счастью), меня не касается и это дает мне возможность использовать все самое новое без оглядки на бекграунд. Проекты довольно таки обозримые, часто переводятся на новую версию безболезненно, и новые фичи начинаю внедрять уже при реализации следующей задачи в пректе. На момент внедрения это, конечно, вносит некий хаос в код, так как в разных кусках кода используются разные принципы (например, внедрение LINQ), но последующий рефакторинг кода приводит все к единому виду и все приходит в норму.

К чему все это?


Одним из таких нововведений является ASP.NET MVC — реализация шаблона Model-View-Controller под платформу .NET. Попробуем разобраться что же это такое, зачем нужно, и применим наши знания на простом, но реальном приложении.
Приступим
Total votes 36: ↑33 and ↓3 +30
Comments 166

Вышел ASP.NET MVC Preview 5

Reading time 3 min
Views 3.1K
.NET *
Этой ночью вышел очередной Preview ASP.NET MVC под номером 5.
Кто нетерпеливый, идет качает с Codeplex сам релиз.
А кому интересно, читает изменения под хабракатом.
UPD: Вот и Скотт Гатри отписался: ASP.NET MVC Preview 5 and Form Posting Scenarios . Пост больше охватывает изменения, касающиеся отправки данных на сервер, валидации, обновления данных. Сам он жив здоров, просто уходил в отпуск на полтора месяца :)
Читать дальше →
Total votes 45: ↑30 and ↓15 +15
Comments 33

ASP.NET MVC + jQuery = рай для AJAX

Reading time 3 min
Views 49K
.NET *
Translation
Я никогда раньше не имел дело ни с одним AJAX Toolkit от Microsoft, но недавно у меня появилась необходимость добавить картографический функционал к проекту, который я веду. Нам нужно было, чтобы у пользователей появилась возможность перемещать маркер по карте, а у нас получать его новые координаты на сервере. Очевидно, что нам для этого придется использовать AJAX в каком-либо виде. Сегодня я вам покажу насколько просто использовать связку ASP.NET MVC на сервере и jQuery на клиенте. Так как jQuery теперь включен в поставку ASP.NET MVC, то больше нет оправдания его не использовать.
Читать дальше →
Total votes 44: ↑33 and ↓11 +22
Comments 35

Page-View паттерн в Javascript

Reading time 8 min
Views 1.3K
Lumber room
AJAX
Представьте себе, как построена незамысловатая онлайн-фотогалерея. По-простому говоря, это две отдельные страницы: список всех фотографий и просмотр отдельно взятой фотографии. При переходе от одной странице к другой пользователю приходится ожидать полной перезагрузки страницы. Интерактивность теряется.

Другой подход: использование AJAX. Вся логика навигации по страницам перемещается в JavaScript. При первом обращении к галерее страница загружается полностью, при последующих действиях пользователя обновляется только нужная часть страницы.

У такого подхода есть недостатки:
  • Сложная логика JavaScript.
  • Не работает навигация браузера back/forward.
  • У отдельных фотографий нет своего адреса URL для прямого перехода.
Последние два недостатка сводятся к первому путем ещё большего усложнения JavaScript-кода. В статье я покажу, как разработать приложение простой фотогалереи с применением паттерна Page-View. Основное преимущество подхода — хорошо масштабируемый объектно-ориентированный JavaScript-код.

Читать дальше →
Total votes 14: ↑12 and ↓2 +10
Comments 14

Использование консоли при отладке ASP.Net приложений

Reading time 8 min
Views 4.9K
.NET *
Собираюсь начинать новый проект и постепенно приближаюсь к стадии написания некоторых базовых вещей. Решил собрать и систематизировать свои знания об некоторых аспектах разработки ПО на платформе ASP.Net, полученные за более чем год коммерческой разработки. В результате получилась вот такая статья. Она не претендует на принципиально новые вещи, это все давно знают, в определенном смысле это своеобразные best practices. Все, что написано ниже, скорее всего пригодится новичкам, но и опытные разработчики смогут почерпнуть для себя что-нибуть интересное.
Читать дальше →
Total votes 32: ↑28 and ↓4 +24
Comments 21

Unit тестирование в ASP.NET MVC Framework-е

Reading time 4 min
Views 2K
Lumber room
В свое время делая доклад по ASP.NET MVC Framework я заметил, что данный framework дает возможность разработчиком использовать TDD практики при разработки и тут же получил вопрос, что такое TDD, почему и как именно ASP.NET MVC Framework дает эти самые возможности.

Ответ на вопрос
Total votes 3: ↑2 and ↓1 +1
Comments 0

Поддержка nUnit в asp.net mvc проектах

Reading time 1 min
Views 865
Lumber room
После установки Asp.net mvc framework ставится ряд template в VS студию. И теперь например при создании проекта «asp.net mvc Web application», в самом начале есть возможность выбрать какой именно test framework используется для разработки. Но к сожалению там всего один пункт для выбора. Уже сейчас есть возможность установить кучу расширений. Так как я для разработки использую nUnit, то найти такой «плагин», было бы не плохо.

Качаем небольшой архив с двумя шаблонами:
  • NUnitDemo
  • NUnitAndRhinoMocks

В архиве находим либо NUnitDemo.zip либо, NUnitAndRhinoMocks.zip и NUnitAndRhinoMocks.reg и NUnitDemo.reg.
Копируем их в "\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Test\1033\"
Далее запускаем «devenv /setup».
Теперь при создании проекта можно дополнительно выбрать еще несколько шаблонов.
Total votes 2: ↑2 and ↓0 +2
Comments 0

Большой отрывок (180 страниц) книги Professional ASP.NET MVC (на английском)

Reading time 1 min
Views 1.2K
.NET *
В отрывке рассказывается о том, как сделан сайт www.nerddinner.com

Начиная с создания нового проекта, автор добавляет различный функционал на сайт.

Что освещено:
* Create a database
* Build a model with validation and business rules
* Implement data listing/details UI on a site using Controllers and Views
* Enable CRUD (Create, Update, Delete) data form entry
* Use the ViewModel pattern to pass information from a Controller to a View
* Re-use UI across a site using partials and master pages
* Implement efficient data paging
* Secure an application using authentication and authorization
* Use AJAX to deliver dynamic updates
* Use AJAX to add interactive map support
* Perform automated unit testing (including dependency injection and mocking)

Скачать книгу (14Mb, PDF): прямой линк
Официальная страница анонса
Total votes 18: ↑12 and ↓6 +6
Comments 6

Вышел ASP.NET MVC 1.0

Reading time 1 min
Views 380
Lumber room
Во-первых, чтобы поставить релиз, надо удалить старую версию.
После установки у меня проекты все заработали нормально.

Похоже, релиз ничем не отличается от RC2, которая вышла на прошлой неделе. (Подсказывают, что обновили поддержку последней версии jQuery)

Наверное, пытались к MIX 09 успеть.

Ссылка на закачку,
Ссылка на сайт.
Total votes 15: ↑11 and ↓4 +7
Comments 4

Создаем ASP.NET MVC приложения под MAC OS X

Reading time 1 min
Views 4.3K
.NET *
После релиза preview ASP.NET MVC MonoDevelop addin, я решил попробовать его на Маке.

Хотя MonoDevelop 2.0 на Маке до сих пор в alpha-врсии, он получше того, что было в версии 1.0. Помимо проблем с перерисовкой GTK+, основными проблемами в Мак-интеграции являются реализация Ctrl-Click, меню верхнего уровня и Мак шоркатов. Сделать в MonoDevelop полноценную поддержку Мака –это наша цель в MonoDevelop 2.2.
Читать дальше →
Total votes 19: ↑12 and ↓7 +5
Comments 8

Простой способ добавить роутинг /key/value в ASP .NET MVC

Reading time 6 min
Views 2.6K
.NET *
На днях представился случай познакомиться с ASP .NET MVC 1.0, о которой уже не раз читал в блогах и здесь, на Хабре. С первого взгляда понравилась простота используемой концепции и логичность связи с архитектурой ASP .NET (привычные aspx, ascx, masterpages, Global.asax — только теперь используемые несколько иначе). Однако, при всех удобствах, способа задания роутинга и передачи параметров в виде {Controller}/key1/value1/key2/value2 я не нашел. Их можно задать сколько угодно, но, к сожалению, при этом они должны стоять строго на указанном месте, а это иногда очень неудобно, особенно при передаче большого количества значений. Ведь какие-то аргументы могут иметь значения по умолчанию, и запихивать их в URL принудительно — не лучшее решение. Конечно, можно было бы воспользоваться стандартным, ?key1=value1&key2=value2 способом, но лично мне почему-то захотелось иметь возможность задавать параметры именно в таком, «MVC-style», если можно так выразиться :)
В общем, решил посмотреть, можно ли это исправить.
Total votes 9: ↑7 and ↓2 +5
Comments 7

Учимся проектировать на основе предметной области (DDD: Domain Driven Design)

Reading time 8 min
Views 209K
Java *.NET *

1. Введение



В данной статье я хотел бы рассказать об этих трёх буквах, постоянно находящихся на слуху, но для многих являющихся тайной за семью печатями, а так же привести ряд ресурсов, с которыми неплохо было бы познакомиться при желании продолжить развитие в проектировании на основе предметной области (DDD: Domain Driven Design).


Читать дальше →
Total votes 66: ↑54 and ↓12 +42
Comments 25

NeverMap «Россия — родина слонов»

Reading time 1 min
Views 652
Self Promo
Эта избитая фраза в заголовке неслучайна.
Хочу представить вам гео-сервис NeverMap для работы с заметками Evernote, чьим символом является слон. А для России сервис особенен тем, что построен на движке Яндекс.Карт, и показывает российские города как нельзя лучше.
Читать дальше →
Total votes 9: ↑7 and ↓2 +5
Comments 6

Обработка запросов в ASP.NET MVC

Reading time 7 min
Views 20K
Lumber room
Попробую внести свою лепту в освоение относительно неосвоенного фреймворка ASP.NET MVC и предлагаю вашему вниманию перевод отрывка из книги "Pro ASP.NET MVC Framework" под названием «The Request Processing Pipeline».

***

Давайте рассмотрим, что происходит в режиме runtime, когда ASP.NET MVC обрабатывает входящий запрос.

Конвейер обработки запросов в ASP.NET MVC сравним с жизненным циклом страницы в ASP.NET WebForms в том, что он отображает анатомию системы. Понимание этого процесса необходимо для выполнения каких-либо нестандартных задач. В отличие от традиционного жизненного цикла страницы в ASP.NET, конвейер обработки запросов в MVC очень гибок – можно изменить любую его часть так, как вам хочется, и даже перераспределить или заменить некоторые компоненты. Хотя обычно не приходится расширять или изменять конвейер, можно сделать это в любой момент, потому как расширяемость лежит в основе ASP.NET MVC.
Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Comments 20

ASP.NET MVC Framework – ставим точки

Reading time 4 min
Views 23K
.NET *
Точка первая ставится в вопросе “Нужно ли переходить на MVC Framework и почему?”

Этой статьей я хотел бы открыть цикл статей про MVC Framework. Последнее время я очень плотно работаю с ним и с его внутренностями и у меня накопилось несколько мыслей, интересных наблюдений и знаний которыми хотелось бы поделиться. Если вы программист ASP.NET и не знакомы или знакомы не очень хорошо с MVC Framework, то, хотелось бы верить, мои статьи помогут вам понять этот инструмент лучше. В любом случае, даже если вы очень хорошо знаете предмет, я думаю, нам с вами будет что обсудить в комментариях на каждую поднятую тему.
Читать дальше →
Total votes 64: ↑44 and ↓20 +24
Comments 99

Ставим точки в MVC Framework. Механизм работы, часть первая

Reading time 5 min
Views 7K
.NET *
В этой и следующей статьях точки ставятся в ответе на вопрос “Как работает MVC Framework?”

imageЭто продолжение цикла заметок про ASP.NET MVC Framework. Начало было положено в предыдущей статье, в которой поднимался вопрос необходимости перехода на MVC Framework. После появления комментариев стало очевидно, что статья была написана не зря, так как определенная часть читателей не представляет значение и различие двух подходов: классического ASP.NET и MVC Framework. Надеюсь, что поднятые вопросы первой главы заставили кого-то задуматься.

В этот раз речь пойдет о том как устроен изнутри механизм MVC Framework. На Habrahabr уже была публикация по этому поводу, но я постараюсь дать более подробное описание и затронуть механизмы которые в той статье не были упомянуты.
Читать дальше →
Total votes 50: ↑35 and ↓15 +20
Comments 12

Ставим точки в MVC Framework. Механизм работы, часть вторая

Reading time 4 min
Views 4.3K
.NET *
Это третья статья из цикла статей про MVC Framework. В первой я постарался дать ответ на вопрос “Зачем нужен MVC Framework?”, а во второй начал рассказ о том, как он устроен. Рассказ в предыдущей статье подразумевал поверхностное описание всего процесса работы MVC Framework без углубления в детали. Детали последуют позднее в ходе цикла статей. Эта статья продолжит рассказ про внутренний механизм работы MVC Framework, который был прерван на описании Model Binding. C него и начнем.
Читать дальше →
Total votes 38: ↑26 and ↓12 +14
Comments 8

AtomSite 1.1. Русская версия блог-движка на ASP.NET MVC

Reading time 3 min
Views 2.4K
CMS *
Перевел один из немногих готовых работающих движков на ASP.NET MVC. Далее — объяснение, что такое AtomSite (для тех, кто не слышал о нем) и много скриншотов.

Что такое AtomSite?

AtomSite 1.1 — это блог-движок, написанный на платформе ASP.NET MVC. Он находится на ранних стадиях разработки, тем не менее, основная функциональность уже присутствует и движок вполне работоспособный; окончательной целью поставлено создание аналога WordPress под ASP.NET.
Читать дальше →
Total votes 12: ↑9 and ↓3 +6
Comments 3