Наверняка все создавали свои asp.net mvc контролы (речь, конечно, про asp.net mvc кодеров). Вам должен быть знаком метод создания контролов, используя TagBuilder? Побывали писать реально сложные контролы (например с большим количеством javascript-та или разметки, которая зависит от опций)? Тогда наверняка вам знаком адЪ экранирования кавычек, конкатенации строк (или вызова .Format() функции) и т.п. «неудобства». Я предлагаю взглянуть на достаточно простую методику, которая позволит избежать подобных вещей и в тоже время сосредоточиться на функциональной стороне контролов, а не на программировании шелухи.
Читать полностью »
Рубрика «ASP.NET» - 15
Простой путь создания сложных ASP.NET MVC контролов
2013-01-07 в 21:22, admin, рубрики: .net, ASP, ASP.NET, asp.net mvc, asp.net mvc 4, control, метки: ASP.NET, asp.net mvc, asp.net mvc 4, c++, controlASP.NET MVC 4 Mobile Features устарели быстрее чем появились
2012-12-20 в 9:27, admin, рубрики: .net, ASP.NET, asp.net mvc 4, Блог компании «Дневник.ру», Веб-разработка, метки: ASP.NET, asp.net mvc, asp.net mvc 4Что такое 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, которое нужно загрузить.
Можем ли мы этим реально пользоваться?
Сериализация .NET объекта в JavaScript variable на HTML странице внутрь Script-блока
2012-12-19 в 17:59, admin, рубрики: .net, ASP.NET, asp.net mvc 4, Веб-разработка, метки: ASP.NET, asp.net mvc 4Старые добрые 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.
Модуль ImageResizer для IIS
2012-11-30 в 10:35, admin, рубрики: .net, amazon s3, Amazon Web Services, ASP.NET, cloudfront, iis, метки: amazon s3, ASP.NET, c++, cloudfront, iis
По следам недавней статьи об изменении размеров изображений на сервере, я решил поделиться опытом внедрения модуля ImageResizer для IIS. Конечно написать простой обзор было бы слишком скучно, но мы не ограничились простым внедрением модуля.
Итак, у нас в распоряжении был купленный ImageResizer + набор плагинов Cloud Bundle для работы с облаками.
Читать полностью »
ASP.NET — машина времени в помощь разработчику
2012-11-25 в 18:30, admin, рубрики: .net, ASP, ASP.NET, time machine, vb.net, тестирование, метки: .net, ASP.NET, c++, time machine, vb.net
Если вам приходится разрабатывать систему подписок, биллинга или что-то другое оперирующее временными отрезками, то вам довольно скоро придёт в голову идея, что неплохо было бы иметь возможность менять текущее время для разрабатываемой системы. Ведь это значительно облегчит вам её тестирование (интеграционное как минимум). Менять системное время буквально — муторное занятие. Так давайте подумаем о том, как лучше реализовать «машину времени» для вашего сайта.Читать полностью »
IIS — изменяем размер картинок на лету
2012-11-24 в 12:45, admin, рубрики: .net, ASP.NET, iis, метки: ASP.NET, c++, iisПочти в каждом веб-проекте мы сталкиваемся с задачей показывать те или иные изображения в разных размерах. Всё просто — изображение должно показываться в размере, требуемом контекстом. Если вы разрабатываете каталог с разными представлениями, то таких контекстов может быть много. А возможно, что потребуется сделать размер картинки адаптивным по отношению к размеру окна браузера (например, так делают Picasa Web Albums).
Я расскажу о способе решить эту проблему раз и навсегда.Читать полностью »
Вышел Bundle Transformer 1.6.10
2012-11-19 в 17:37, admin, рубрики: .net, ASP, ASP.NET, ASP.NET Web Pages, Bundle Transformer, Bundling and Minification, coffeescript, css, CSS Optimizer, CSSO, javascript, Microsoft Ajax Minifier, sass, scss, System.Web.Optimization, TypeScript, UglifyJS, WebGrease, YUI Compressor, Клиентская оптимизация, метки: ASP.NET, ASP.NET Web Pages, Bundle Transformer, Bundling and Minification, coffeescript, css, CSS Optimizer, CSSO, javascript, Microsoft Ajax Minifier, sass, scss, System.Web.Optimization, TypeScript, UglifyJS, WebGrease, YUI Compressor, клиентская оптимизация
Новая версия Bundle Transformer характеризуется следующими изменениями: большая часть сборок теперь подписана; в ядре, были исправлены ошибки, возникавшие при обработке путей; были обновлены некоторые модули (BundleTransformer.SassAndScss, BundleTransformer.CoffeeScript, BundleTransformer.TypeScript, BundleTransformer.MicrosoftAjax, BundleTransformer.Yui, BundleTransformer.UglifyJs, BundleTransformer.Csso и BundleTransformer.WG) и создана новая версия демонстрационного сайта ASP.NET Web Pages.
Рассмотрим основные нововведения данной версии:
Читать полностью »
Вышел ReSharper 7.1
2012-11-15 в 4:20, admin, рубрики: .net, ASP.NET, asp.net mvc, css, javascript, jetbrains, ReSharper, silverlight, vb.net, windows forms, windows phone, wpf, XAML, разработка, метки: .net, ASP.NET, asp.net mvc, c++, css, javascript, jetbrains, ReSharper, silverlight, vb.net, windows forms, windows phone, wpf, XAML, разработка
Мы несколько месяцев не покладая рук работали над выпуском следующей версии ReSharper. И вот — свершилось! Официальную, только что выпущенную версию 7.1 можно загрузить здесь.
Есть много причин обновиться до версии 7.1.
Читать полностью »
Использование функционала фреймворка MVC4 для авторизации пользователей и использование ролевой модели доступа к сайту
2012-11-02 в 22:43, admin, рубрики: .net, ASP, ASP.NET, asp.net mvc, web-разработка, авторизация, аутентификация, Веб-разработка, метки: ASP.NET, asp.net mvc, web-разработка, авторизация, аутентификация Приветствую.
Сегодня мне бы хотелось рассказать в совсем небольшом уроке (уровень скорее для очень начинающих), как можно достаточно быстро и легко настроить аутентификацию пользователей, а так же авторизацию при их доступе к некоторому функционалу на Вашем сайте, используя штатные средства фреймворка MVC(4).
Вводная
Я сейчас пишу личный простенький сайт для учета и ведения расходов, доходов, напоминания о периодических платежах (жкх, кредиты, школа и т.п.) + аналитика (в основном диаграммы), поскольку меня и мою жену функциональность Google Docs устраивать перестала.
Соответственно, встал вопрос о том, как закрыть информацию, в данном случае финансового состояния семьи от посторонних глаз под аутентификацию а так же распределить роли доступа (авторизация) — что могут жена, ребенок, анонимные пользователи, а что может администратор глава семьи.
Стажеры в OpenSource
2012-10-26 в 7:46, admin, рубрики: .net, ASP.NET, open source, стажеры, стажировка, управление проектами, метки: ASP.NET, open source, стажеры, стажировка
Давайте договоримся сразу, все нижеописанное исключительно случайный полет моей фантазии.
Цель поста — спросить совета у хабрасообщества касательно возникшей идеи и получить звиздюлей поддержку, а может и опыт практического применения.
В нашей компании на протяжении от 3 до 6 месяцев постоянно стажируется энное количество программистов ASP.NET. Стажировка предполагает выполнение под руководством куратора большого количества лабораторных заданий, которые совершенно никому не нужны и никак не используются после окончания разработки. И в один прекрасный момент у меня возникла мысль — а не подключить ли их к разработке какого-либо open-source проекта?
Читать полностью »