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
Views65K
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
Views1.6K
Comments 16

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

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

Содержание:Длительность: ~40 минут
Подкаст на RPOD
Подкаст на POD.FM
Total votes 19: ↑11 and ↓8+3
Views162
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
Views34K
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
Views2K
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
Views5.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
Views20K
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
Views14K
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
Views14K
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
Views3.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
Views3.4K
Comments 2

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

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

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

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

Client optimization.NETASP
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
Views5K
Comments 0

Подключение проекта ASP.NET MVC к проекту ASP.NET WebForms

.NETASP
Sandbox
Tutorial
Зачем это может понадобится? Допустим у нас есть большое приложение ASP.NET WebForms и есть проект написанный на ASP.NET MVC и мы хотим их объеденить.

Допустим адрес нашего сайта такой: www.my-awesome-site.com и мы хотим чтобы MVC был доступен по адресу www.my-awesome-site.com/mvc-stuff

Предусловия: у нас есть решение с двумя проектами — ASP.NET Web Application (WebFormsApplication) и ASP.NET MVC проект (MvcApplication).

Что нужно сделать.
1. Установить ASP.NET MVC для WebFormsApplication
2. Добавить ссылку в WebFormsApplication на MvcApplication
3. Добавить публичный метод в MvcApplication аналогичный Application_Start
4. Вызвать этот метод в Application_Start приложения WebFormsApplication
5. С помощью Razor Generator включить Views в сборку MvcApplication
4.…
5. Profit!!!

Подробный туториал
Total votes 19: ↑16 and ↓3+13
Views8.6K
Comments 3

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

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

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

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

.NETASPC#
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
Views22K
Comments 11

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

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

Основа

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

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

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

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

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

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

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

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

AngularJS vs IML

JavaScript.NETC#
Sandbox
image

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