Pull to refresh

Введение в новые возможности ASP.NET MVC 4

Microsoft corporate blog
В этой статье дается описание новых возможностей веб-фреймворка ASP.NET MVC 4, представленных в первой Developer Preview версии.

Мобильный веб


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

Именно поэтому в ASP.NET MVC 4 большой упор сделан на предоставление специальных возможностей разработчику, который желает сделать мобильную версию сайта.

Мобильный сайт – два подхода

При создании мобильной версии сайта можно воспользоваться двумя подходами:
  • создать отдельную мобильную версию сайта;
  • добавить основному сайту возможность корректно отображаться на мобильных устройствах (адаптивная разметка).
Оба подхода нашли свою поддержку в ASP.NET MVC 4.

Читать дальше →
Total votes 28: ↑23 and ↓5 +18
Views 25K
Comments 5

Бесплатный вебинар про новые API в ASP.NET MVC 4

Microsoft corporate blog


Уважаемые коллеги, веб-разработчики и просто интересующиеся! Приглашаю вас посетить бесплатный вебинар (онлайн-мероприятие доступное через браузер), на котором я расскажу слушателям про новые возможности платформы ASP.NET MVC 4 и новые API добавленные в него в вышедшей недавно beta-версии.

В рамках 30 минут вебинара я познакомлю вас с нововведениями в ASP.NET MVC 4, призванными повысить эффективность программиста. Вашему вниманию будет представлен новый ASP.NET Web API, новые возможности по созданию мобильных представлений сайтов, новый API для автоматического сжатия и упаковки JavaScript и CSS файлов для увеличения производительности веб-приложений. Кроме того, будут рассмотрены некоторые новые возможности Visual Studio 11 новой версии.

Вебинар пройдет 1 марта в 17-00 московского времени и будет доступен всем желающим. Сессия займет от 30 до 45 минут, после чего я буду рад ответить на любые ваши вопросы. Вебинар будет записываться, запись станет доступна для свободного просмотра через несколько дней после проведения мероприятия.

Я прошу всех желающих зарегистрироваться на вебинар по следующему адресу на странице мероприятий Microsoft.

До встречи на вебинаре!
Total votes 43: ↑30 and ↓13 +17
Views 3.2K
Comments 6

Валидация Datetime полей при переводе проекта от ASP.NET MVC 3 к ASP.NET MVC 4

Website development *.NET *
Sandbox

Описание


Недавно решил попробовать новую версии платформы ASP.NET MVC 4, и перевел проект с MVC 3 на MVC 4.
И тут возникли нежданно, негаданно проблемы (хотя кого я обманываю, переход на бета версию всегда означает некий риск) с валидацией на клиентской стороне полей типа Datetime. Внезапно представление отказывалось валидировать такие поля, хотя раньше они проходили ее, учитывая тот факт что настройки для культур сервера и представления остались те же.
Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Views 3.5K
Comments 2

Асинхронное программирование в приложениях ASP.NET MVC 4

.NET *ASP *C# *
Translation
Прочитав статью об изучении MVC и увидев комментарий пользователя RouR, я очень заинтересовался данной темой, ну и на ходу решил перевести указанную им оригинальную статью.

Если и тебе, дорогой хабражитель, это интересно — прошу под кат!

«Я попробую показать вам, что нового несет в себе C# 5.0 с точки зрения асинхронного программирования при использовании ключевого слова await. Особенно для веб-приложений ASP.NET MVC 4.»

Читать дальше →
Total votes 18: ↑14 and ↓4 +10
Views 40K
Comments 12

Делаем чат на ASP.NET с помощью Web Socket

.NET *ASP *

Вступление



Я думаю, что многие веб-разработчики задают себе вопрос о том, как передать пользователю какое-либо сообщение, напоминание. Раньше для этого было необходимо постоянно отправлять запросы к веб-серверу, но теперь появилась такая удобная технология, как Web Socket.

В этой статье я хочу показать, как можно написать простой чат на ASP.NET MVC 4 с помощью Web Socket.

Читать дальше →
Total votes 42: ↑33 and ↓9 +24
Views 73K
Comments 26

Создание сайта Windows Azure Web Site и развёртывание там приложения ASP.NET MVC 4

Microsoft corporate blog Website development *

Итак, вы решили попробовать, что же такое Windows Azure Web Site и что там можно сделать. Начинать нужно, если у вас нет подписки Windows Azure, с получения пробного доступа. Этот шаг мы опустим в статье, как простой и сразу перейдём к главному — созданию Web Site.
Создание Windows Azure Web Site и развёртывание ASP.NET MVC 4 - много картинок
Total votes 41: ↑27 and ↓14 +13
Views 26K
Comments 11

Robofollower — автоматизация продвижения в Instagram

Website development *.NET *
image Приветствую! Хочу представить вашему вниманию свой небольшой стартап — Robofollower

Robofollower — проект, позволяющий раскрутить свой аккаунт в Instagram без вложения каких-либо средств. Мы предоставляем две основные фукнции: Обмен фолловерами, обмен лайками. Подробности под катом.
Читать дальше →
Total votes 55: ↑8 and ↓47 -39
Views 42K
Comments 34

ASP.NET MVC 4 Mobile Features устарели быстрее чем появились

«Дневник.ру» corporate blog Website development *.NET *

Что такое Mobile Features в ASP.NET MVC 4


ASP.NET MVC 4 вышел с очень ожидаемой и долгожданной новой возможностью — то, что по английски называют Mobile Features — поддержкой мобильных устройств. По большому счету, название сразу удивило, так как немного расходится с техническим описанием нововведения. Но промоушен — есть промоушен. Все упоминания про шаблоны страниц (layout) с поддержкой HTML 5, указание viewport, CSS media — все это к MVC фреймворку непосредственно отношения не имеет.

К новой возможности самого фреймворка можно отнести только два пункта:
  • создание View и шаблонов специфичных для мобильных браузеров
  • возможность на лету изменять то, какое View будет рендерится пользователю — а именно переключаться в рантайме между различными View

И здесь сразу стоит заметить, что слово «мобильный» упоминается исключительно в рекламных целях. MVC 4 позволяет создавать несколько View для каждой из требуемых страниц и определять для какого браузера каждая из них должна показываться. То есть, возможности ни коем образом не ограничиваются именно мобильными браузерами.

Все гениальное просто — «hook» во ViewEngine


Реализация данной возможности очень проста. Это просто «hook» во ViewEngine.

Вы делаете разные страницы (Views) для разных устройств или браузеров. Именуете файлы добавляя ключевое слово:
  • Catalog.cshtml
  • Catalog.iPhone.cshtml

Задаете критерий по которому будет выбираться нужная View — пользуясь DisplayModeProvider задаете нужные DefaultDisplayMode с нужным именем.

DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("iPhone")
{
    ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf
         ("iPhone", StringComparison.OrdinalIgnoreCase) >= 0)
});

В рантайме, когда отработает метод контроллера, подготовленный ViewResult передается во View Engine, проверяются условия DisplayModeProvider-a, он изменяет имя файла View, которое нужно загрузить.

Можем ли мы этим реально пользоваться?

Читать дальше →
Total votes 17: ↑11 and ↓6 +5
Views 8.6K
Comments 18

Сериализация .NET объекта в JavaScript variable на HTML странице внутрь Script-блока

Website development *.NET *C# *

Старые добрые hidden inputs


Часто приходится передавать в HTML страницу данные, которые необходимо потом использовать из JavaScript. Издавна для этого используется самый простой способ: hidden inputs. То есть, если нам нужно передать Uri адрес веб сервиса, мы на странице рендерим что-то вроде

  <input type="hidden" name="webServiceUri" value="URI we need"/>

и можем при помощи jQuery или plain old JavaScript найти этот input по имени и прочитать переданное значение.

Но когда нужно передавать много параметров или даже массивы, то этот способ становится не удобным. Можно конечно сделать REST сервис, который отдает все данные по AJAX-запросу со страницы (сессионные данные), но в большенстве случаев это излишне.

В настоящее время часто используется другой способ — на стороне сервера отрендерить в HTML все необходимые данные в виде JavaScript переменной внутри Script-блока.

Рассмотрим как это сделать в ASP.NET MVC.

Читать дальше →
Total votes 17: ↑9 and ↓8 +1
Views 7.4K
Comments 11

Простой путь создания сложных ASP.NET MVC контролов

.NET *ASP *C# *
Наверняка все создавали свои asp.net mvc контролы (речь, конечно, про asp.net mvc кодеров). Вам должен быть знаком метод создания контролов, используя TagBuilder? Пробовали писать реально сложные контролы (например с большим количеством javascript-та или разметки, которая зависит от опций)? Тогда наверняка вам знаком адЪ экранирования кавычек, конкатенации строк (или вызова .Format() функции) и т.п. «неудобства». Я предлагаю взглянуть на достаточно простую методику, которая позволит избежать подобных вещей и в тоже время сосредоточиться на функциональной стороне контролов, а не на программировании шелухи.
Читать дальше →
Total votes 24: ↑18 and ↓6 +12
Views 23K
Comments 8

DropDownList, Задать «value» для default option в MVC 4

.NET *ASP *C# *
Recovery mode
Tutorial
Здравствуйте. Больше двух лет создавал сайты на ПХП и все было прекрасно. Но в один прекрасный день проснулся и понял, что пхп — хорош, но не то. Потом рассматривал еще долго на чем лучше писать веб приложения, сравнивал, анализировал. В итоге остановился на C# и ASP.NET MVC 4. Даже после Zend Framework 2 — MVC 4 просто нечто: легко, красиво, просто, быстро, мало кода.

Но вот столкнулся с проблемой, решение которой в Гугле не нашел. Как вывести выпадающий список и задать значение по умолчанию. Думаю для «бывалых» — это будет не проблема. Это то, что один раз «проехать» и больше никогда не вспомнишь, что были проблемы с этим. но вот проехать для новичка бывает довольно затруднительно. Если честно, то поначалу было просто вывести выпадающий список тяжко. Хотя мануалы по ASP.NET MVC на порядок превосходят «Быстрый старт» для любого фреймворка пхп.

Сей мануал предполагает, что Вы уже оперируете знаниями, полученными при ознакомлении с этими статьями: Entity Framework в приложении ASP.NET MVC. Или этими: ASP.NET MVC 4 Tutorials

Начнем с вывода Выпадающего списка.
1) Модель. Аннотаций и связей нету для упрощения примера.
Читать дальше →
Total votes 11: ↑7 and ↓4 +3
Views 19K
Comments 13

ASP.NET MVC 4 RAZOR Динамическое многоуровневое меню из БД

.NET *ASP *C# *
Tutorial
Как и обещал в предыдущем посте DropDownList, Задать «value» для default option в MVC 4, сегодня расскажу про построение динамического многоуровневого меню с бесконечной вложенностью, хранящееся в БД MsSQL. Помню в свое время на ПХП это тоже было задачкой на пару дней. Но для MVC 4 с движком RAZOR — еле разобрался, хотя в итоге как всегда ничего сложного или сверхъестественного. Статья рассчитана на тех, кто делать это не умеет. Если Вы знаете как сделать лучше — поделитесь. Приступим.

Сей мануал предполагает, что Вы уже оперируете знаниями, полученными при ознакомлении с этими статьями: Entity Framework в приложении ASP.NET MVC. Или этими: ASP.NET MVC 4 Tutorials

1) Сначала нужно разобраться со структурой БД. Это главное. С теорией можно ознакомиться в статье Иерархические структуры данных в реляционных БД. Мы будем использовать максимально простую структуру, называемой «структура со ссылкой на предка».
Читать дальше →
Total votes 9: ↑4 and ↓5 -1
Views 23K
Comments 11

Описание связей с помощью Code First Fluent API

.NET *ASP *C# *
Translation
Tutorial
Пытаясь более подробно разобраться с мануалами по ASP.NET MVC 4 столкнулся с такими понятиями как Fluent API, Code First, аннотации и многими другими. По Fluent API оказалось не так и много информации. Особенно на русском. Смотрим.

Подход Code First в Entity Framework позволяет использовать свои собственные доменные классы для представления модели, которую EF использует для построения запросов, отслеживания изменений и обновления. Code First использует паттерн программирования, который называется соглашение конфигураций. Это означает, что Code First считает, что Ваши классы следуют соглашением схемы, которую EF использует для концептуальной модели. В этом случае EF сможет использовать необходимые детали для выполнения своих функций. Однако, если Ваши классы не используют правильно соглашения, Вы можете добавить необходимую конфигурацию вручную, для того, что б EF смог правильно понимать их.

Используя подход Code Firs, Вы можете определить эти конфигурации двумя способами. Первый — использовать простые атрибуты, называемые аннотациями (DataAnnotations). Второй – использовать Fluent API, который позволяет описывать конфигурации императивно в коде.

В данной статье внимание уделено настройке с помощью Fluent API. Конвенции Code Firs очень удобно использовать для описания отношений между классами, основанных на свойствах, указывающих на потомков или отдельные классы. Если в Ваших классах нет внешних ключей, Code Firs может сам их создать. Но бывают случаи, когда описание класса не предоставляет достаточно информации относительно отношений, что б Code Firs смог правильно все понять и правильно добавить «не хватающие» части.

Рассмотрим модель



Начнем с двух простых классов «Blog» и «Post», где Blog имеет отношение один-ко-многим к Post.
Читать дальше →
Total votes 10: ↑7 and ↓3 +4
Views 35K
Comments 9

Перенос сайта из Visual Studio 2012 на хостинг. Панель управления Parallels Plesk Panel

.NET *ASP *C# *
Tutorial
Здравствуйте!

Про разработку сайта на ASP.NET MVC 3/4 написано достаточно. По крайне мере, что б начать само развиваться. однако почти ничего не написано про то, как его перенести на хостинг / сервер. Мне, как человеку, пришедшему с линукс хостингов и ПХП сама панель, папки, да и компиляция проекта — все было в новинку. Есть мануалы — если достаточно долго помучатся, то можно выГуглить. Однако оказалось, что запросы «выложить сайт, перенос сайта, развернуть сайт, создать сайт» практически не дают результата. Или листать нужно достаточно далеко. Правильный запрос в данной ситуации «публикация сайта». Однако на Хабре есть всего Создание сайта Windows Azure Web Site и развёртывание там приложения ASP.NET MVC 4 и Публикация сайта ASP.NET MVC в обновленный Windows Azure. однако это по Azure.

Так же, столкнулся с проблемой, что нет возможности напрямую опубликовать сайт сразу из Visual Studio 2012 на хостинг — стоит прокси, который не дает это сделать. хотя подключиться через FileZilla — позволяет. Не знаю в чем проблема, ходил к администраторам — они развели руками и сказали что проблема в моей Windows 8 Pro. Ладно. Не такая и проблема.

Ну и сама панель управления хостингом. Мануалы есть, но в одном месте конкретно по началу работы с ней и развертыванию сайта — маловато информации. Особенно для «новичков» или ПХПешников, привыкших к немного «другой» логике этого процесса. Да и часть информации на английском. Программиста это удивлять или сбивать с толку не должно. Но бывает всякое.

Начну с хостинга. панель выглядит так:

Осторожно картинки!
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Views 32K
Comments 3

Работа с данными из связанных таблиц в ASP.NET MVC или разработка Lookup компонента

.NET *ASP *C# *
Разработка любого бизнес приложения так или иначе связана с обработкой определенного количества данных, выстраиванием связей между этими данными, а так же их удобным представлением. В данной статье мы рассмотрим работу с межтабличным взаимодействием в ASP.net MVC, а так же возможности по визуализации этого взаимодействия, попробуем разработать свой компонент, с одной стороны позволяющий удобно выбирать нужные данные, с другой легко конфигурироваться. Будем использовать JqGrid, для реализации поиска, сортировки и выбора связанных данных. Коснемся формирования динамических предикатов, посмотрим как можно использовать метаданные в html helper и в заключении рассмотрим уже существующие компоненты этого класса.
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Views 26K
Comments 8

Запускаем приложение ASP.NET MVC 4 на Ubuntu Server 12.04 + nginx

.NET *ASP *
Sandbox
Захотелось мне посмотреть, как работает реализация .NET на Linux. Решено было развернуть Ubuntu Server на нашем гипервизоре, установить свежий пакет mono и через nginx запустить ASP.NET MVC4 сайт.

На официальном сайте mono готовый пакет для Ubuntu только 2-х летней давности. С этого момента начались поиски в сети путей осуществления задуманного. Результатом полученного опыта стал скрипт для автоматического развертывания на голой Ubuntu Server 12.04.3 или 13.04 всего необходимого для запуска сайтов ASP.NET MVC4:
  • Соберем из исходников и установим mono 3.2.1
  • Добавим monoserve скрипт в init.d для автоматического запуска сайтов и управления ими.
  • Установим nginx 1.4.1
  • Создадим и настроим простой сайт, чтобы проверить работоспособность всей связки.

Сразу под катом находится строчка для автоматического выполнения всей процедуры, описанной в статье.
Читать далее...
Total votes 43: ↑42 and ↓1 +41
Views 44K
Comments 51

Создаем первое приложение на NancyFX часть пятая. Тестирование приложения

.NET *
В предыдущих статьях я продемонстрировал Вам как можно с легкостью создать и сконфигурировать под свои нужды приложение на NancyFX. Однако в нынешнее время преставить себе процесс промышленной разработки програмного обеспечения в отрыве его от тестирования просто не возможно. Давайте добавим к нашему первому приложению проект для его тестирования.
Читать дальше →
Total votes 14: ↑12 and ↓2 +10
Views 3.1K
Comments 0

Windows Identity Foundation — для ASP.NET MVC проектов

.NET *

В этой статье, хотелось бы рассказать о том, как можно использовать Windows Identity Foundation в своих ASP.NET MVC проектах, и написать свой Identity Server, на WIF платформе. Во первых, потому что, общей информации, в интернете, достаточно, а вот когда дело касается конкретики, тут возникают проблемы. Так как идеологию и частные случаи можно ещё найти, а вот когда дело касается конкретики, приходится собирать по крупицам. И во вторых, то что сейчас предлагает Microsoft, используя надстройки над Visual Studio, не совсем годится, я бы даже сказал, совсем не годится при разработке решений, сложнее домашней странички или сайта — визитки. Кроме всего прочего, я не очень люблю, когда мифический мастер настройки что сделал с солюшеном, и сказал что «вроде должно работать».
Читать дальше →
Total votes 19: ↑18 and ↓1 +17
Views 23K
Comments 7

Уроки по FluentNHibernate c ASP.NET MVC и SQL Server. Часть 1

.NET *ASP *
Sandbox
Что будет? Уроки по FluentNHibernate на примере книжного сайта, где будем возможность просматривать информацию о книге, выводить список книг, фильтровать его по жанрам, осуществлять поиск по названию, а также добавлять, редактировать, удалять книги. Будут рассмотрены все виды связей таблиц (один-к-одному, один-ко-многим, многие-ко-многим), создание, редактирование, удаление записей, фильтрация, поиск, отображение постранично. Программы, используемые в уроках: Visual studio 2013, SQL Server 2008 Manager Studio.

Для быстрого ознакомления с простой операцией CRUD с NHibernate и MVC рекомендую прочитать следующую статью на английском: www.dotnetjalps.com/2014/07/fluent-nhibernate-asp-net-mvc-crud.html.

Также полезные статьи можно найти здесь: github.com/jagregory/fluent-nhibernate/wiki/Getting-started (англ); и его перевод: habrahabr.ru/post/125135.

Еще ссылки на русском языке: slynetblog.blogspot.com/2009/10/nhibernate-1.html

Содержание
Часть 1. Запуск первого приложения
Часть 2. Создание классов, маппингов и заполнение БД

1. ЗАПУСК ПЕРВОГО ПРИЛОЖЕНИЯ
1.1 Установка Fluent NHibernate
Открываем Visual Studio, открываем меню File, переходим на подменю New и Project. В открывшемся окне выбираем ASP.NET MVC 4 (Если выбран .Net Framework 4 Версии). Вводим ему название «BibliotecaTutor» и выбираем тип «Basic». (Далее я буду сокращено писать File->New->Project, а RClick — правая кнопка)



Далее запускаем Nuget Package (Tools->Library Package Manager->Package Manager Console). Прописываем следующую строку: Install-Package FluentNHibernate. Нажимаем Enter, и ждем завершения установки FluentNHibernat'a.



Если нужно установить определенную версию FluentNhibernate, то ищем строку на сайте NuGet www.nuget.org/packages/FluentNHibernate/2.0.1 в таблице Version.
Читать дальше →
Total votes 11: ↑9 and ↓2 +7
Views 22K
Comments 1

Часть 2. Создание классов, маппингов и заполнение БД

.NET *ASP *
Tutorial
КЛАССЫ И МАППИНГИ

Уроки по FluentNHibernate c ASP.NET MVC и SQL Server. Часть 1
Часть 3. Отображение данных из таблицы (Операция LIST)

В предыдущей части были рассмотрены виды связей (один-к-одному, один-ко-многим, многие-ко-многим), а также один класс Book и его маппинг-класс BookMap. Во второй части обновим класс Book, создадим остальные классы и связи между ними, как это было изображено в предыдущей главе в Диаграмме баз данных, расположившейся над подзаголовком 1.3.1 Связи.

Читать дальше →
Total votes 12: ↑9 and ↓3 +6
Views 16K
Comments 5
1