Pull to refresh
  • by relevance
  • by date
  • by rating

Razor — новый движок представлений в ASP.NET

.NET *
Translation

Одним из проектов, над которым работала моя команда, был новый движок представления для ASP.NET.

ASP.NET MVC всегда поддерживал концепцию “движка представлений”, собственно он представляет из себя заменяемые модули, которые реализуют выбор различного синтаксиса шаблона. Сегодня, стандартный движок представлений для ASP.NET MVC использует аналогичные файлы, что и ASP.NET Web Forms — .aspx/.ascx/.master. Существуют и другие популярные ASP.NET MVC движки представлений — Spark и NHaml.

Новый движок представлений, над которым мы работаем, оптимизирован под генерацию HTML-кода, фокусируясь на коде шаблона. Кодовое имя для данного движка – “Razor”, первая бета-версия будет доступна уже скоро.
Читать дальше →
Total votes 77: ↑61 and ↓16 +45
Views 66K
Comments 37

Внутренний мир Razor. Часть 1–Рекурсивный пинг-понг

.NET *
Translation
Это первая статья о новом ASP.NET парсере – Razor. Над которым мы работали достаточно долго, и я хотел бы рассказать читателям, как же он работает.

Razor-парсер сильно отличается от существующего ASPX-парсера. Фактически ASPX-парсер, почти полностью, построен на регулярных выражениях, потому что синтаксис достаточно простой для разбора. Razor-парсер же разделен на три компонента:
  1. Парсер разметки, который имеет базовое представление о HTML-синтаксисе.
  2. Парсер кода, который имеет базовое представление C# или VB.
  3. И главный “дирижер”, которые знает, как соединить два парсера вместе.

Когда я говорю “базовое представление” я подразумеваю именно основы, мы не говорим о полностью самостоятельном C# и HTML парсере. У себя в команде мы шутим, называя их “Опознователь разметки” и “Осмыслитель кода” :)
Читать дальше →
Total votes 42: ↑30 and ↓12 +18
Views 1.6K
Comments 16

2Гига.Выпуск #17: Game-инвесторы в очередь!

Lumber room
2Гигаgame marioУчастники:
Евгений Жарков
Владимир Юнев
 
 

Содержание:Длительность: ~40 минут
Подкаст на RPOD
Подкаст на POD.FM
Total votes 19: ↑11 and ↓8 +3
Views 163
Comments 1

Microsoft WebMatrix — Reloaded

.NET *
Все новое — это хорошо забытое старое. Видимо, руководствуясь этим принципом, спустя 7 лет Microsoft решила вернуть к жизни одну из своих старых идей — но в новом облачении. Речь идет о WebMatrix — платформе для web-разработки, бета которой стала доступна недавно. Бета включает в себя много всего вкусного — обещанный IIS Express, SQL Server CE 4 и движок представлений для MVC — Razor. А так же — галерею приложений (интегрировано с WebPI), инструменты мониторинга и анализа сайта, средства публикации. Но хватит вступлений, давайте посмотрим что же есть собственно внутри WebMatrix.
Читать дальше →
Total votes 61: ↑43 and ↓18 +25
Views 34K
Comments 35

Выпущены финальные версии ASP.NET MVC 3, WebMatrix, IIS Express, SQL Server Compact 4.0, Orchard 1.0 и Nuget

.NET *


Microsoft выпускает финальные версии своих инструментов веб-разработки. Для загрузки и установки доступны фреймворк ASP.NET MVC 3 (вместе с исходными кодами под опенсорс-лицензией) и среда разработки WebMatrix 1.0.

ASP.NET MVC 3 привносит следующие нововведения по сравнению со второй версией:
  • внутренняя интеграция с IoC-контейнерами и повсеместная поддержка Dependency Injection;
  • добавлен новый движок представлений Razor ViewEngine;
  • расширение механизма валидации: новые атрибуты, поддержка IValidatableObject, исключение параметров при валидации запросов;
  • поддержка динамического типа данных (зависимость от .NET 4.0);
  • глобальные фильтры;
  • встроенная поддержка JSON при работе с параметрами действий;
  • ненавязчивый JavaScript;
  • бессессионные контроллеры;
  • кэширование вложенных действий.
Более подробно обо всех этих нововведениях можно узнать из следующих статей: первая часть, вторая часть, третья часть, четвертая часть.

Нужно сказать, что финальная версия ASP.NET MVC 3 RTM отличается от предыдущей версии RC2 (выпущенной в декабре 2010 года) только исправлением пары ошибок.

Загрузить ASP.NET MVC 3 RTM можно по следующей ссылке.
Читать дальше →
Total votes 79: ↑69 and ↓10 +59
Views 2K
Comments 55

Использование Razor за пределами ASP.NET

.NET *
Итак, вчера Microsoft выпустила ASP.NET MVC3 RTM, который включает в себя новый движок представлений Razor. Как вы наверняка уже знаете, Razor не содержит каких-то компонентов, специфичных для web, а значит, его можно использовать и в других приложениях. Ну, а если вы этого еще не знаете – то самое время узнать!

В этом посте я покажу, как использовать Razor в качестве движка шаблонов для ваших нужд. Источником для него послужил блог-пост Andrew Nurse «Hosting Razor outside of ASP.Net», но это не прямой перевод.

Читать дальше →
Total votes 62: ↑53 and ↓9 +44
Views 5.2K
Comments 20

Razor: вывод секций в мастер-страницах мастер-страниц

ASP *
Всем доброго времени суток. С недавних пор занимаюсь активной разработкой на ASP.NET MVC 3 & Razor «непростого» веб-приложения и вот сегодня наткнулся на проблему, которая опытными разработчиками, может быть, уже исследована и решена, но вот новичкам информация ниже, думаю и надеюсь, окажется полезной.

Описание проблемы


Пусть в приложении есть пара представлений: View.cshtml и ViewWithSide.cshtml, а ещё есть две мастер-страницы: Layout.cshtml и LayoutWithSide.cshtml, причём первая является мастер-страницей для второй. Как можно догадаться по именам файлов, XxxWithSide.cshtml добавляет в странице боковую панель, формат вывода которой определён в мастер странице, а внутренности — в представлении. В главной мастер-странице Layout помимо основной разметки определён вывод секции «navigation», которая задаётся в представлениях.

И вот когда в коде ViewWithSide определена секция «navigation», а в LayoutWithSide нет, потому что эта секция должна обрабатываться «следующей» мастер-страницей (Layout), то при попытке открыть ViewWithSide в приложении будет выдана ошибка: The following sections have been defined but have not been rendered for the layout page "~/Views/Shared/LayoutWithSide.cshtml": «navigation» (Секция «navigation» определена, но нигде не выведена в мастер-странице).

Идея решения этой проблемы довольно проста: нужно передать вывод этой секции «следующей» мастер-странице, а там пусть сами разбираются.
Как это решается и примеры кода есть подкатом
Total votes 11: ↑6 and ↓5 +1
Views 20K
Comments 5

Declarative HTML Helpers

ASP *

@functions @helpers


Большинство хелперов в asp.net mvc 3 это методы-расширения класса System.Web.Mvc.HtmlHelper.
Однако не всегда удобно создавать отдельный статический класс для 2-3 хелперов необходимых в одной вьюшке. И совсем неудобно создавать хелперы возвращающие большие блоки html-кода: ни подсветки синтаксиса, ни интеллисенса, ни прочих плюшек.

Для решения этих проблем в Razor есть два замечательных блока. Они позволяют создавать хелперы непосредственно в .cshtml-файлах.

image
Круто! но зачем это нужно?
Total votes 42: ↑37 and ↓5 +32
Views 14K
Comments 12

Официальный ASP.NET MVC 4 Roadmap

Microsoft corporate blog
Translation


Очередной год проходит, и самое время для работы над новым релизом ASP.NET MVC. Информация представленная ниже покрывает общие сведения из roadmap для фреймворка ASP.NET MVC 4.

Важно понимать, что мы находимся на раннем этапе разработки ASP.NET MVC 4 и представленный roadmap – документ, планируемый для следующего релиза. Это не спецификация, описывающая, как будет. Мы просто надеемся реализовать большую часть описанного ниже, но нет никаких гарантий того, что это получится. Планы меняются, и вы можете помочь изменить их! Для этого, пожалуйста, оставьте свой отзыв на нашем Uservoice site, дабы мы имели большее представление о том, что вы хотите видеть в новом релизе.

Цели


Перед разбором предлагаемых функций давайте рассмотрим основные цели релиза. Ради великой и прекрасной цели мы поставили перед собой задачу сделать ASP.NET MVC лучшей платформой для создания современных «богатых» веб-приложений. Поэтому мы сконцентрировались на тех функциях ASP.NET MVC 4 (и сетевого стека), которые приблизят нас к выполнению этой цели.

Читать дальше →
Total votes 27: ↑20 and ↓7 +13
Views 14K
Comments 14

ASP.NET MVC, Web API, Razor и Open Source

Open source *.NET *
Translation
Исходный код ASP.NET MVC компания Microsoft сделала доступным по лицензии открытого исходного кода с выпуска первой версии. В этот продукт мы внедрили несколько замечательных технологий с открытым кодом и теперь поставляем jQuery, jQuery UI, jQuery Mobile, jQuery Validation, Modernizr.js, NuGet, Knockout.js и JSON.NET как часть этого решения.

Сегодня я рад объявить о том, что исходный код технологий ASP.NET Web API и ASP.NET Web Pages (также известной как Razor) доступен по лицензии открытого исходного кода (Apache 2.0). Также мы усиливаем прозрачность разработки всех трёх проектов путём размещения их хранилищ кода на CodePlex (используя поддержку Git, о чём было объявлено на прошлой неделе). Поступив так, мы реализуем более открытую модель разработки, когда каждый член сообщества сможет дать отзыв о коде, исправлении ошибок, новых возможностях разработки, а также ежедневно собирать и тестировать продукты, используя последние версии исходного кода и тестов.
Читать дальше →
Total votes 36: ↑28 and ↓8 +20
Views 3.8K
Comments 2

Валидация 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.4K
Comments 2

Шаблонизация в JavaScript с использованием Razor

Website development *JavaScript *.NET *
В силу всё большего и большего усложнения веб-приложений на стороне клиента, хочется иметь шаблонизаторы, которые работали бы прямо на клиенте. И таких средств, надо сказать, появилось не мало. Но так как я легких путей не ищу все они мне не нравятся, я решил сделать свой с блэкджеком и дамами лёгкого поведения (я так понял, на Хабре жестко карают и банят, если этой фразы нет в посте).

И вот я решил создать строготипизированный шаблонизатор на Razor.
А как это у меня получилось и чем мне помог SharpKit, скрывается под катом
Total votes 25: ↑19 and ↓6 +13
Views 7.8K
Comments 10

Добавляем Bundling and Minification на сайт ASP.NET Web Pages

Client optimization *.NET *ASP *
Translation
Представляю вашему вниманию перевод статьи Рика Андерсона (Rick Anderson) «Adding Web Optimization to a Web Pages Site».

При добавлении ASP.NET Bundling and Minification (далее B/M) на сайт ASP.NET Web Pages мы следуем тому же рецепту, что и в ASP.NET MVC и Web Forms:
  1. Объявляем и регистрируем Bundle`ы;
  2. Используем Bundle`ы в коде наших представлений.

Данная статья описывает базовые принципы использования B/M на сайте ASP.NET Web Pages. Для получения общей и более подробной информацией о B/M смотрите мой учебник по Bundling and Minification. Вы также можете прочитать об использовании B/M c ASP.NET MVC — здесь, и c ASP.NET Web Forms — здесь.
Читать дальше →
Total votes 14: ↑9 and ↓5 +4
Views 5K
Comments 0

Использование Razor отдельно от ASP.NET MVC

.NET *HTML *C# *
Tutorial
По роду деятельности студентом мне часто приходится писать различные лабораторные и курсовые работы. Неотъемлемая часть этих работ(как и в 80% задач бизнес-программирования) — код составления отчета о найденных элементах в базе данных или выполненной длительной и сложной операции. В десктопном программировании в рамках .NET Framework есть различные способы решения подобных проблем:
  • Старая школа: формат RTF никто не отменял, однако вручную составить что-либо сложнее цветного текста со шрифтами разного цвета и ссылками лично у меня не получалось. Способ действенный, но стандарт не самый легкий для понимания, на последнюю версию даже смотреть страшно
  • Для Silverlight/WPF — формирование FlowDocument своими руками. Объектная модель однозначно удобнее формирования старого формата вручную, но вариант тоже только для смелых
  • Сторонние решения вроде Crystal Reports, возможно и очень мощный инструмент для создания отчетов, но не всегда в этом есть необходимость, к тому же не всегда есть возможность тянуть пару-тройку дополнительных программных продуктов1
  • Использование Microsoft Office Interop. Нет, это издевательство. Ручная работа с памятью в управляемой среде вызывает лишь бурю радости. Начинающий программист выпьет не одну упаковку кофе, прежде чем смирится с подобным принципом работы.
  • Формирование HTML. На нашу радость, стандарт позволяет создать документы средней степени форматированности, с помощью CSS можно довести до ума. Минусы — оформить документ по всем требованиям крайне затруднительно. Но это если в этом есть необходимость. Плюсы: простота стандарта и всеобщий переход «в облака и браузеры» стимулирует развитие HTML.

О последнем я и буду вести речь.
Читать дальше →
Total votes 32: ↑26 and ↓6 +20
Views 10K
Comments 9

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 22K
Comments 11

ASP.NET MVC Урок 8. View, Razor, страница ошибки

.NET *ASP *
Tutorial
Цель урока. Научиться делать вывод данных в html, использование Razor. Helperы. PageableData. Динамические формы. RedirectToLogin, RedirectToNotFoundPage. Страница ошибки. RssActionResult.

Основа

Итак, рассмотрим как устроена часть View.
В контроллере все action-методы возвращают тип ActionResult. И для вывода результата мы используем:
return View(modelData);

Читать дальше →
Total votes 136: ↑92 and ↓44 +48
Views 72K
Comments 1

Хлебные крошки (breadcrumbs) в asp.net MVC3

.NET *
Sandbox
В данном посте будет рассмотрен процесс создания меню навигации и хлебных крошек в проекте asp.net MVC3. Сначала мы создадим пустой проект, потом добавим sitemap провайдер, несколько контроллеров и представлений и в итоге заставим провайдер вывести хлебные крошки.
Продолжение
Total votes 10: ↑9 and ↓1 +8
Views 8.9K
Comments 2

Генерируем PDF из HTML-шаблона с условиями, при помощи wkhtmltopdf и RazorEngine

.NET *ASP *PDF
Не смотря на то, что пост предлагает заготовку, рецепт под ASP.NET, по аналогичным принципа вполне возможно реализовать решение и под другие платформы.

Задача:
  • генерировать DOC или PDF из шаблона файла, с подстановкой значений
  • нужна возможность включать минимальную логику в шаблон, что бы писать кода меньше, при необходимо править только внешние файлы
  • update. результат работы должен сохраняться в файл для возможности дальнейшего им манипулирования

Под катом — очень простое и короткое решение, примеры кода на C#. Не смотря на это, что пост предлагает заготовку-рецепт под ASP.NET, по аналогичным принципам вполне возможно реализовать решение и под другие платформы.
Читать дальше →
Total votes 4: ↑3 and ↓1 +2
Views 18K
Comments 10

AngularJS vs IML

JavaScript *.NET *C# *
Sandbox
image

disclaimer: сравнение не подразумевает поднятие “холивара”, а делает обзор задач, решаемых одним инструментом в сравнении с другим. Я не являюсь знатоком всех тонкостей angularJs, но прочитав 10 статьей обзора этого инструмента, привожу альтернативный пример решения тех же самых задач на IML.
Читать дальше →
Total votes 30: ↑8 and ↓22 -14
Views 8.2K
Comments 68

JavaScript-приложение, или зачем нам Razor в ASP.NET MVC?

Website development *JavaScript *.NET *
image

Не думал, что напишу это, но JavaScript победил. Мы перестали использовать Razor для создания веб-приложений. Вместо этого реализуем front-end в отдельном проекте на JavaScript-фреймворках. От ASP.NET остался только WebAPI и «движок», на котором мы пишем бизнес-логику и API для пользовательского интерфейса.

Читать дальше →
Total votes 22: ↑14 and ↓8 +6
Views 21K
Comments 22
1