Обновить
1.15

ASP *

Технология создания веб-приложений и веб-сервисов

Сначала показывать
Порог рейтинга
Уровень сложности

Средства построения графиков для .NET

Время на прочтение4 мин
Просмотры105K

Не так давно пришлось столкнуться с тривиальной задачей — найти решение, которое позволит рендерить рисунки графиков для .NET. Сразу оговорюсь, что меня интересовали только линейные графики. Камнем преткновения, который подтолкнул к переделыванию уже существующего решения (это были графики, встроенные в rdlc отчеты), было быстродействие. В целом, к искомому решению были предъявлены такие требования:
  1. Необходимо оставить данную оптимизацию незамеченной для конечного пользователя, следовательно, решение должно быть широко настраиваемым, чтобы, в конечном счете, выглядеть так же, как и предшественник.
  2. Работать быстро (ну понятно, пользователи не любят ждать).
  3. Желательно, быть бесплатным или с открытым исходным кодом. Покупка не стала бы большой проблемой, найди я отличное платное решение, но начать лучше с open source.

Интересно

Настройка шаблонов ASP.NET MVC 5 Scaffolding в Visual Studio 2013

Время на прочтение3 мин
Просмотры18K


Наверное уже многие успели оценить удобство создания веб-приложений используя технологию скаффолдинга появившуюся еще в ASP.NET MVC 3. Прошло время, и вот, уже вышли Visual Studio 2013 и ASP.NET MVC 5. Возможности скаффолдинга стали больше: появилась поддержка bootstrap. асинхронных методов и многого другого.
В этой статье, я хочу рассказать о том, как можно расширить возможности этого замечательного инструмента.
Читать дальше →

Плагинная система на ASP.NET. Или сайт с плагинами, мадемуазелями и преферансом

Время на прочтение9 мин
Просмотры23K
image

Вместо предисловия


Данный материал является исключительно результатом работы по сбору информации в сети и создания сайта, работающего на основе плагинов. Здесь я постараюсь описать идею работы такой системы и основные компоненты, необходимые для её работы.
Данная статья не претендует на оригинальность, а описанная система не является единственно правильной и красивой. Но если тебе, уважаемый $habrauser$, интересно, как создать такую систему, милости прошу под кат
Читать дальше →

Библиотека X.Scaffolding

Время на прочтение4 мин
Просмотры13K


Внимание! Обновил пакет в NuGet. Подробности в конце статьи.

С выходом Visual Studio 2013, ASP.NET MVC 5 и Entity Framework 6 возможности скаффолдинга встроенные в Visual Studio стали еще лучше. Однако до сих пор создавая новое веб-приложение приходится делать много действий, которые можно было бы автоматизировать.
Поэтому для себя и разработчиков с которыми я работаю был создан пакет X.Scaffolding позволяющий более продуктивно создавать веб-приложения. Именно на основе этого пакета у нас сейчас разрабатывается большинство новых веб-приложений для работы с данными.

Сегодня же я решил поделится этим проектом и с читателями Хабрахабра. Возможно кому-то он покажется интересным и поможет в его работе, а кто-то и сам захочет поучаствовать в его развитии.
Подробности

Проблемы использования IEnumerable

Время на прочтение5 мин
Просмотры70K
В этой статье я хочу рассказать о проблемах использования интерфейса IEnumerable. Мы рассмотрим, какие проблемы может принести использование этого интерфейса, когда его на самом деле нужно использовать, и чем его заменить.

А начать статью я хотел с пары примеров кода, а точнее с пары багов, встречавшихся мне в реальных проектах.
Читать дальше →

Разделяй и властвуй. Или система разделения прав для ASP MVC

Время на прочтение49 мин
Просмотры9.5K
Очень часто в работе сталкиваюсь с проблемой разделения прав доступа к разделам сайта и элементам управления.
Сначала мне хватало инструментов, которые предоставляет ASP MVC «из коробки», но, со временем, я столкнулся с необходимостью создания своего инструмента разделения прав. Если тебе, уважаемый %habrauser%, интересно как можно решить эту проблему, добро пожаловать под кат.
Читать дальше →

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

Время на прочтение5 мин
Просмотры45K
Захотелось мне посмотреть, как работает реализация .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
  • Создадим и настроим простой сайт, чтобы проверить работоспособность всей связки.

Сразу под катом находится строчка для автоматического выполнения всей процедуры, описанной в статье.
Читать далее...

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

Время на прочтение27 мин
Просмотры29K
Разработка любого бизнес приложения так или иначе связана с обработкой определенного количества данных, выстраиванием связей между этими данными, а так же их удобным представлением. В данной статье мы рассмотрим работу с межтабличным взаимодействием в ASP.net MVC, а так же возможности по визуализации этого взаимодействия, попробуем разработать свой компонент, с одной стороны позволяющий удобно выбирать нужные данные, с другой легко конфигурироваться. Будем использовать JqGrid, для реализации поиска, сортировки и выбора связанных данных. Коснемся формирования динамических предикатов, посмотрим как можно использовать метаданные в html helper и в заключении рассмотрим уже существующие компоненты этого класса.
Читать дальше →

ASP.NET MVC client-side routing

Время на прочтение6 мин
Просмотры20K

Постановка проблемы


Система маршрутизации ASP.NET MVC избавляет разработчика от необходимости вручную поддерживать URL, используемые в приложении при помощи таблиц маршрутизации и url шаблонов. Таким образом, с программиста снимается задача по формированию URL вручную. Напротив, в его распоряжении оказывается богатый набор URL-хелперов. Это замечательно! Но все меняется, когда приходят они — AJAX-запросы.

Проблема заключается в том, что таблицы маршрутизации и механизм генерации URL являются частью серверной архитектуры asp.net mvc и недоступны из Javascript-файлов.
Читать дальше →

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

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

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

Под катом — очень простое и короткое решение, примеры кода на C#. Не смотря на это, что пост предлагает заготовку-рецепт под ASP.NET, по аналогичным принципам вполне возможно реализовать решение и под другие платформы.
Читать дальше →

ASP.NET 2.0 Login control + MySQL, VS2008, авторизация пользователей на сайте

Время на прочтение7 мин
Просмотры8.3K
Штатные средства ASP.NET позволяют упростить процесс разграничения прав доступа пользователей к тем или иным страницам сайта. Речь о использовании Login control совместно с MySQL базой данных для авторизации пользователей на ASP.NET сайте. После успешной авторизации будет производиться перенаправление на разные страницы, соответствующие заданным ролям некоторых директорий проекта.
Читать дальше →

Основы архитектуры IIS, или запросопровод для ASP.NET

Время на прочтение20 мин
Просмотры213K



В прошлом году мне пришлось отсобеседовать около 10-15 кандидатов на должность веб-программиста на ASP.NET средней квалификации. В качестве вопросов «на засыпку», или «со звёздочкой», я просил рассказать, что происходит с HTTP-запросом от момента его поступления на 80-й порт сервера до передачи управления коду aspx-страницы. Статистика была удручающей: ни один из кандидатов не смог выдать хоть что-нибудь внятное. И этому есть своё объяснение: ни в MSDN с technet, ни на специализированном ресурсе iis.net, ни в книгах a-la «ASP.NET для профессионалов», ни в блогах данной теме не уделяется должного внимания – информацию приходится собирать чуть ли не по крупицам. Я даже знаю людей, которые решили написать свой собственный веб-сервер (Игорь, Георгий, привет!), чтобы не разбираться в работе IIS. Единственная толковая статья – «Introduction to IIS Architectures» Риган Темплин (Reagan Templin). Но и она остаётся на периферии интересов аспнетчиков.

Хотя мне лично уже не так интересны чисто технические вопросы, я решил собрать в кучу свой накопленный опыт, раскопать на просторах Сети любопытные детали и передать сие сакральное знание массам, пока оно ещё не устарело. Сразу оговорюсь, что статья ориентирована в большей степени на IIS 7.x, иногда будут ответвления про 6-ку. С 8-й версией в работе не сталкивался, поэтому решил обойти её в этой статье стороной. Но, уверен, читатель без труда разберётся с восьмёркой, освоив изложенный ниже материал.
Познать...

Ближайшие события

Система управления данными на базе ASP.NET Dynamic Data

Время на прочтение7 мин
Просмотры16K

Концепция


Я работаю с ASP.NET достаточно давно. При разработке многих проектов я часто сталкивался с тем, что однотипные операции по управлению данными занимают слишком много времени. Естественно для сайтов существуют CMS системы, а для более сложных систем различные генераторы шаблонных страниц, которые создают заготовки для форм редактирования и просмотра информации. Но мне хотелось получить более универсальный инструмент, который в тоже время не накладывал бы ограничений на процесс построения архитектуры приложения.
Заинтересовавшиеся могут узнать об инструменте и поучаствовать в его разработке

Внутренняя работа плагина unobtrusive jQuery validate в ASP.Net MVC

Время на прочтение7 мин
Просмотры27K
Это 3 часть серии «Понимание ненавязчивой валидации в ASP.Net MVC».

1. Работа плагина jQuery validate изнутри
2. Понимание Html-кода, сгенерированного ненавязчивой валидацией в ASP.Net MVC
3. Внутренняя работа плагина unobtrusive jQuery validate в ASP.Net MVC.

О чем мы поговорим в этой статье:
  • Метод «parse»
    • секция «parceElement»
      • объяснение параметра «skipAttach»
      • объяснение функции «parceElement»

    • секция «validateInfo»
      • объяснение функции «validateInfo»
      • объяснение объекта «return»


  • Адаптеры


Метод «parse»


Мы объясним цикл ненавязчивой валидации, который происходит, когда документ загружается, и поймем роль каждого компонента.
Если мы посмотрим в конец jquery.validate.unobtrusive.js мы найдем

$(function () {
  $jQval.unobtrusive.parse(document);
});

Итак, мы вызываем метод «parse()» и передаем ему «document»
Что представляет собой метод «parse()»?
Читать дальше →

Понимание Html-кода, сгенерированного ненавязчивой валидацией в ASP.Net MVC

Время на прочтение6 мин
Просмотры21K
Это 2 часть серии «Понимание ненавязчивой валидации в ASP.Net MVC»

1. Работа плагина jQuery validate изнутри
2. Понимание Html-кода, сгенерированного ненавязчивой валидацией в ASP.Net MVC
3. Внутренняя работа плагина unobtrusive jQuery validate в ASP.Net MVC.

О чем мы поговорим в этой статье:

  • Идея ненавязчивого JavaScript
  • Разница между нормальной и ненавязчивой валидацией
  • Понимание ненавязчивой валидации:
    • Элементы «input», правила их валидации и как они работают
    • Сообщения валидации и как они работают в ненавязчивой валидации.


Основная идея ненавязчивого JavaScript



Microsoft представил первый модуль валидации в первой верисии MVC. Модуль совершенствовался с каждой версией, и превратился в ненавязчивую валидацию в ASP.Net MVC 3.
Если коротко, даже в современном JavaScript, который мы пишем в основном в отдельном js файле, мы нуждаемся иногда в данных, связанных с Html, и поэтому записываем метаданные объектов JavaScript внутри страницы Html. Мы вызываем функцию из файла js, которой передаем метаданные объекта на странице.

Одна из целей ненавязчивого JavaScript отделить JavaScript от Html разметки.
Почитать больше об этом можно тут ( автор отсылает нас к статье о ненавязчивом JavaScript в англоязычной Википедии, прим. переводчика)

Разница между нормальной и ненавязчивой валидацией.



Ниже представлен код модели и Html разметки, сгенерированной используя валидацию MVC 2 и ненавязчивую валидацию MVC 3.
Читать дальше →

Логинимся на сайт под чужим аккаунтом не имея пароля

Время на прочтение4 мин
Просмотры46K


День добрый, сегодня я расскажу про довольно полезный прием при поддержке крупных сайтов-сервисов. А именно, возможность зайти на ваш сайт под обычным пользователем, не имея пароля (вы же не храните пароли в БД открытым текстом верно?).
Читать дальше →

nopCommerce 3.00 open source CMS: обзор новых функций, поддержка Windows Azure

Время на прочтение4 мин
Просмотры16K
clip_image001 
nopCommerce – это open source движок для электронной коммерции, написанный на ASP.NET MVC 4. По данным разработчиков, на сегодняшний день система была скачана более одного миллиона раз и продолжает набирать популярность.

Четвертого мая этого года вышла новая версия системы – 3.00. Ключевыми нововведениями стали поддержка multi-store и multi-vendor. Примечательно, что nopCommerce стала одной из первых open source CMS в мире, которая поддерживает оба данных функционала.

Давайте рассмотрим подробнее каждый из них.

Multi-store


Multi-store позволяет иметь два и более онлайн магазина, установив nopCommerce только один раз, и использую только одну общую базу данных. Эти магазины могут быть доступны на разных доменах (URL). Вам не надо дублировать продукты и категории ддя каждого из магазинов, а пользователи могут использовать одну и ту же учетную запись для всех магазинов. Каждый из магазинов может иметь уникальные настройки и графическое оформление. А администратор может обрабатывать заказы и управлять каталогом в одной единой панели администрирования.
Читать дальше →

Новый взгляд на старый MS Ajax

Время на прочтение3 мин
Просмотры5.4K
Чуть больше года назад мне на глаза попался один сайт. На первый взгляд он не чем не отличался от сотни подобных сайтов, но мой коллега заметил множественное обновление мелких модулей при клике на функциональных элементах. Дальнейшим открытием было то, что он работает без перегрузок. На сегодняшний день у каждого из нас это не вызовет большого впечатления, но данный сайт работает уже больше 5 лет.
После двухдневного анализа сайта мы нашли ответ на вопрос — «Как он работает? ». Центром данного сайта был файл с названием msajax.js, что побудило нас к поискам в интернете. Информации оказалось мало, но достаточно для начала экспериментов.
Читать дальше →

IIS 7: компрессия JSON ответа

Время на прочтение4 мин
Просмотры14K
Несколько дней назад мой знакомый обратил внимание, что его большие JSON ответы (порядка 0,5-1 мегабайт) не паковались. Рабочая связка Windows 2008 R2 + IIS 7.5 + ASP.NET MVC 4. Проблема обозначена, начался поиск решения. Чтобы воспроизвести наши действия, для статьи я написал отдельное приложение.
Читать дальше →