Как стать автором
Обновить

Вышел Bundle Transformer 1.6.2 или что изменилось за полгода?

Время на прочтение21 мин
Количество просмотров8.3K
Логотип Bundle Transformer
Bundle Transformer – это разработанное мной модульное расширение для Microsoft ASP.NET Web Optimization Framework (другие названия: ASP.NET Bundling and Minification, System.Web.Optimization, Microsoft.Web.Optimization и ASP.NET Optimization – Bundling). В апреле этого года я уже делал подробный обзор возможностей Bundle Transformer, но за это время данный продукт очень сильно изменился. Поэтому я решил написать данный обзор и рассказать об основных изменениях, которые произошли в Bundle Transformer за прошедшие полгода.
Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Комментарии4

Использование Dynamic Data совместно с Entity Framework 5

Время на прочтение5 мин
Количество просмотров8.6K


Добрый день!

Как известно, уже вышла релиз-версия .NET Framework 4.5, а также стала доступна для загрузки финальная версия Visual Studio 2012.

Познакомиться с новой Visual Studio я успел еще с beta версии, а после релиза начал использовать rtm релиз Visual Studio и .NET Framework 4.5 в реальной работе.
В новую версию .NET Framework входит так же новая версия Entity Framework. Уже пятая. Точнее она туда не совсем входит — у меня при создании проекта файлы подгружаются из репозитория NuGet. Но в любом случае в новом проекте используется именно 5 версия библиотеки.

Прежде чем продолжить, хочу вкратце рассказать, что же нового появилось в EF5 и почему я решил начать использовать эту версию.
Читать дальше →
Всего голосов 8: ↑5 и ↓3+2
Комментарии4

Нестандартное использование Protected Configuration Provider в проектах ASP.NET Web Forms

Время на прочтение3 мин
Количество просмотров1.8K
Сегодня я хотел бы рассказать об одной интересной, на мой взгляд, возможности, которую можно получить от Protected Configuration Provider.

Итак, что такое Protected Configuration Provider? Это класс, который позволяет производить шифрование и дешифрование содержимого определённых секций файла конфигурации web.config. Обычно это используется при развёртывании готового проекта на хостинге для защиты конфиденциальной информации — имена пользователей, пароли, строки подключения к базе данных, ключи шифрования, и т.д.
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии2

Модуль кэширования ASP.NET приложений

Время на прочтение5 мин
Количество просмотров4K
При работе над большим, высоконагруженным проектом часто возникает необходимость кэширования ряда страниц. Это помогает уменьшить нагрузку, избавив от повторного выполнения страниц и, как следствие, повторной загрузки данных. Так же необходимым условием является возможность проверки валидности кэша по определенному условию или набору условий. В принципе, задача выглядит стандартной, но, как мы увидим далее, решение ее далеко не тривиальное.
Читать дальше →
Всего голосов 11: ↑8 и ↓3+5
Комментарии2

Введение в работу с AppHarbor — облако для ASP.NET приложений

Время на прочтение3 мин
Количество просмотров9.5K
Каждый из вас наверняка хочет видеть свое приложение на просторах сети Интернет. Сколько раз мы спрашивали у Google, Яндекса, Bing и других: «Бесплатный хостинг ASP.NET». Иногда чтобы показать прототип потенциальному клиенту, обсудить проект или просто похвастаться перед девушкой, мол, вот что я сделал. Зачастую для этого надо найти хостинг, но это требует определенного количества времени, сил и денег. Альтернатива проста – поместить приложение «облако». Причем сделать это действительно проще чем кажется т.к. есть такой замечательный сервис AppHarbor. На нем можно размещать свои ASP.NET приложения, подключить базу, поиск, кэш и многое другое, список смотреть тут. Делается это, как вы увидите, довольно просто и не требует каких-то особых знаний, т..е. всю нагрузку на работу железа и ПО для работы вашего сайта берет на себя AppHarbor. Кстати, про бесплатность. Я немного слукавил, это все счастье бесплатно, но только до какого-то момента предельного роста вашего проекта ну и если вы хотите использовать какие-то платные дополнения. Т.е. прототип вы разместите, но если нужен хостинг для большого проекта придется раскошелиться, но думаю, к тому времени у вас уже будет более четкое видение развития вашего проекта. Если все же вам понравится, то прошу смотреть цены. Для меня AppHarbor является полигоном для испытаний, но чем больше я им пользуюсь, тем больше мне нравится.

Читать дальше →
Всего голосов 26: ↑20 и ↓6+14
Комментарии16

Вышел Bundle Transformer 1.6.5

Время на прочтение4 мин
Количество просмотров7.6K
Логотипы библиотек Bundle Transformer, в которые были добавлены изменения в версии 1.6.5
Основным нововведением в новой версии Bundle Transformer стала поддержка языка TypeScript. Кроме того, были внесены изменения в ядро продукта и в следующие модули: BundleTransformer.MicrosoftAjax, BundleTransformer.Yui и BundleTransformer.Csso.

Рассмотрим основные нововведения данной версии:
Читать дальше →
Всего голосов 24: ↑17 и ↓7+10
Комментарии6

Несколько способов ускорить приложение на ASP.NET WebForms

Время на прочтение6 мин
Количество просмотров17K
Существует распространенное мнение, что приложения на ASP.NET WebForms очень медленные, тяжеловесные, подходят только для корпоративных порталов и в основном работают в интрасетях. Однако есть несколько способов существенно повысить скорость работы вашего приложения. Большинство этих способов не новы, применяются многими разработчиками. Здесь мы собрали те из них, которые хорошо себя зарекомендовали при разработке движка AdVantShop.NET Ultimate.
Читать дальше →
Всего голосов 30: ↑21 и ↓9+12
Комментарии16

Стажеры в OpenSource

Время на прочтение1 мин
Количество просмотров14K

Давайте договоримся сразу, все нижеописанное исключительно случайный полет моей фантазии.
Цель поста — спросить совета у хабрасообщества касательно возникшей идеи и получить звиздюлей поддержку, а может и опыт практического применения.

В нашей компании на протяжении от 3 до 6 месяцев постоянно стажируется энное количество программистов ASP.NET. Стажировка предполагает выполнение под руководством куратора большого количества лабораторных заданий, которые совершенно никому не нужны и никак не используются после окончания разработки. И в один прекрасный момент у меня возникла мысль — а не подключить ли их к разработке какого-либо open-source проекта?
Читать дальше →
Всего голосов 59: ↑46 и ↓13+33
Комментарии24

Использование функционала фреймворка MVC4 для авторизации пользователей и использование ролевой модели доступа к сайту

Время на прочтение8 мин
Количество просмотров22K
Приветствую.
Сегодня мне бы хотелось рассказать в совсем небольшом уроке (уровень скорее для очень начинающих), как можно достаточно быстро и легко настроить аутентификацию пользователей, а так же авторизацию при их доступе к некоторому функционалу на Вашем сайте, используя штатные средства фреймворка MVC(4).

Вводная

Я сейчас пишу личный простенький сайт для учета и ведения расходов, доходов, напоминания о периодических платежах (жкх, кредиты, школа и т.п.) + аналитика (в основном диаграммы), поскольку меня и мою жену функциональность Google Docs устраивать перестала.
Соответственно, встал вопрос о том, как закрыть информацию, в данном случае финансового состояния семьи от посторонних глаз под аутентификацию а так же распределить роли доступа (авторизация) — что могут жена, ребенок, анонимные пользователи, а что может администратор глава семьи.

UPD: описал способы создания пользователей, ролей более правильным способом (не надо лезть напрямую в БД)
Код, показывающий меню, стоит перевести в более правильный вид, соответствующий идеологии MVC, поскольку текущий код далек от образцового и написан быстро, для демонстрации, я над этим работаю.
Перейти к активным действиям
Всего голосов 24: ↑14 и ↓10+4
Комментарии18

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

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

Вышел ReSharper 7.1

Время на прочтение2 мин
Количество просмотров20K
image

Мы несколько месяцев не покладая рук работали над выпуском следующей версии ReSharper. И вот — свершилось! Официальную, только что выпущенную версию 7.1 можно загрузить здесь.

Есть много причин обновиться до версии 7.1.
Каких таких причин?
Всего голосов 45: ↑36 и ↓9+27
Комментарии18

IIS — изменяем размер картинок на лету

Время на прочтение2 мин
Количество просмотров12K
Почти в каждом веб-проекте мы сталкиваемся с задачей показывать те или иные изображения в разных размерах. Всё просто — изображение должно показываться в размере, требуемом контекстом. Если вы разрабатываете каталог с разными представлениями, то таких контекстов может быть много. А возможно, что потребуется сделать размер картинки адаптивным по отношению к размеру окна браузера (например, так делают Picasa Web Albums).

Я расскажу о способе решить эту проблему раз и навсегда.
Читать дальше →
Всего голосов 28: ↑19 и ↓9+10
Комментарии19

Вышел Bundle Transformer 1.6.10

Время на прочтение3 мин
Количество просмотров4.7K
Логотипы библиотек Bundle Transformer, в которые были внесены изменения в версии 1.6.10
Новая версия Bundle Transformer характеризуется следующими изменениями: большая часть сборок теперь подписана; в ядре, были исправлены ошибки, возникавшие при обработке путей; были обновлены некоторые модули (BundleTransformer.SassAndScss, BundleTransformer.CoffeeScript, BundleTransformer.TypeScript, BundleTransformer.MicrosoftAjax, BundleTransformer.Yui, BundleTransformer.UglifyJs, BundleTransformer.Csso и BundleTransformer.WG) и создана новая версия демонстрационного сайта ASP.NET Web Pages.

Рассмотрим основные нововведения данной версии:
Читать дальше →
Всего голосов 9: ↑6 и ↓3+3
Комментарии4

Международный Web Camp придет в Россию в рамках Windows Azure Summit

Время на прочтение3 мин
Количество просмотров1.6K
azure summit

Уважаемые разработчики, спешу поделиться хорошей новостью. Серия международных мероприятий Web Camp, целиком посвященных веб-разработке на платформе .NET и ASP.NET, приходит в Россию. В рамках Windows Azure Summit пройдет крайне интересный и насыщенный трек докладов по разработке современных веб-приложений на базе технологий ASP.NET, MVC, SignalR, HTML5, jQuery, Web API и Windows Azure.

Доклады Web Camp будут читать известные в сообществе эксперты из Microsoft: Натан Тоттен (Nathan Totten) и Ник Харрис (Nick Harris). Вы могли видеть Натана и Ника в блогах MSDN и записях портала Channel 9, где они часто ведут видео-записи.

Расписание и темы докладов:

  • Построение и размещение веб-сайтов на базе ASP.NET MVC 4, Nathan Totten
  • Создание приложений HTML5 с помощью jQuery, Nathan Totten
  • Коммуникации в реальном времени с SignalR, Nathan Totten
  • Построение приложений для мобильного веба, Nathan Totten 
  • Использование облачных сервисов Windows Azure в своем веб-приложении, Nick Harris
  • Построение сервисного уровня приложений с помощью ASP.NET Web API, Nick Harris
  • Построение приложений с использованием социальных сервисов в ASP.NET, Nick Harris

Большая конференция Windows Azure Summit состоится 20 февраля 2013 года в Москве. Конференция бесплатна для всех! Увы мы не можем вместить всех желающих, поэтому требуется регистрация.

Регистрация уже открыта!  Торопитесь занять место


Ниже вы можете найти информацию о докладчиках.
Читать дальше →
Всего голосов 18: ↑12 и ↓6+6
Комментарии0

Модуль ImageResizer для IIS

Время на прочтение4 мин
Количество просмотров4.6K

По следам недавней статьи об изменении размеров изображений на сервере, я решил поделиться опытом внедрения модуля ImageResizer для IIS. Конечно написать простой обзор было бы слишком скучно, но мы не ограничились простым внедрением модуля.
Итак, у нас в распоряжении был купленный ImageResizer + набор плагинов Cloud Bundle для работы с облаками.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии5

SignalR в помощь, или как оживить web

Время на прочтение7 мин
Количество просмотров103K

Введение


Во многих web проектах присутствуют элементы, значение которых необходимо часто менять. Это могут быть счётчики, индикаторы, уведомления и подобные элементы. Показывать ли актуальные значения после обновления страницы или же можно реализовать автообновление всех этих данных? Для нас ответ очевиден: если есть возможность динамически менять элементы, то для обновления страниц не остается места.
Читать дальше →
Всего голосов 44: ↑33 и ↓11+22
Комментарии26

Listeners в Ext.NET

Время на прочтение7 мин
Количество просмотров6.4K
В Ext.NET понимание разницы между различными типами событий и их обработчиками является очень важным. Выбор зависит от конкретного сценария, который вы хотите реализовать вашем приложении.
В данной серии из четырех статей мы рассмотрим различные события на клиенте и на сервере, как они вызываются, обрабатываются и какие имеют преимущества. В данной статье будут рассмотрены Listeners – позволяющие «слушать» события на клиенте и обрабатывать его там же, на клиенте, избегая запроса к серверу.
Все компоненты в Ext.NET, такие как Panel, Window, Button, имеют следующие четыре типа обработчиков событий:
Listeners
Слушают события на клиенте и обрабатывают их так же на стороне клиента.

DirectEvents
Слушают события на клиенте, но выполняют их обработку на стороне сервера, вызов происходит посредством AJAX запроса.
DirectMethods
Позволяют вызывать функции на сервере, например написанные на C# или VB, вызов происходит посредством AJAX запроса.
MessageBus
MessageBus позволяет передавать различные события между компонентами, которые могут друг о друге не знать. Обработка сообщений происходит через подписку на определенные сообщения и отправку сообщений о событиях через MessageBus. Каждый компонент на клиенте имеет специальный обработчик MessageBusListeners, а также  MessageBusDirectDirectEvents для передачи обработки на сторону  сервера.


Listeners


Listeners являются обработчиками событий на клиенте. Они выполняют ваш код после появления некоторого события, например, нажатия на кнопку (Button).
Использование Intellisense в Visual Studio дает возможность узнать какие конкретные события есть у каждого компонента. Каждый компонент наследует события от своего предка и обычно добавляет свои.
Все классы в Ext.NET наследуют события от базового класса Observable. Все события находятся в Listeners.

Все доступные события могут быть просмотрены с помощью Intellisense

Если компонент вызывает некоторое событие на клиенте, то для того чтобы ваш код на клиенте обработал данное событие вы должны подписаться на это событие добавив JavaScript функцию.


Читать дальше →
Всего голосов 9: ↑4 и ↓5-1
Комментарии2

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

Время на прочтение5 мин
Количество просмотров8.7K

Что такое 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, которое нужно загрузить.

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

Читать дальше →
Всего голосов 17: ↑11 и ↓6+5
Комментарии18

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

Время на прочтение3 мин
Количество просмотров7.7K

Старые добрые 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.

Читать дальше →
Всего голосов 17: ↑9 и ↓8+1
Комментарии11