25 июля 2011 г.

Использование HttpHandler-a для отображения картинок в ASP.Net MVC

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

Причем здесь изображения?
Давайте представим простую ситуацию - у нас есть некое подобие социальной сети на asp.net mvc. На личной странице пользователя отображается его аватар. Само изображение аватара (к слову, загруженное пользователем, хранится где-то далеко, в какой-то папке, имея название равное айдишнику пользователя). В ресурсе страницы тег картинки будет выглядеть как-то так:

<img src="/Uploads/Avatars/5e840171-3150-4014-a652-88945a9f7656.jpg" alt="my avatar" />

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

18 июля 2011 г.

Размещение проекта на Codeplex, с возможностью работы через TFS

Уже давно я убедился в важности использования системы контроля версий для своих проектов. Ну а что? Кому удобно хранить десятки архивов с названиями типа "проект(13.07.2011)", "проект(17.07.2011)" и т.д. Очевидно, что нужно искать выход из такой ситуации. В своей главной работе мы используем Visual Studio Team Fundation Server. Тоесть, сам проект лежит далеко на сервере (конечно же нашем), и разработка ведется несколькими людьми. Но что делать со своими мелкими проектами? Личного сервера у меня нет, но есть VS Ultimate с TFS, поэтому я начал искать способ бесплатного использования именно этой системы контроля версий. Решение нашлось. И это - codeplex.com

14 июля 2011 г.

Диалоговое окно на ASP.Net MVC, с помощью Jquery UI

Некоторое время назад, я рассматривал вариант подключения плагина-модального окна к проекту. Thickbox, сам по себе, штука хорошая, но у всех сторонних (и особенно бесплатных) Jquery-плагинов есть один огромный недостаток - никто не дает вам гарантии, что после подключения новой версии библиотеки плагин не сломается.
По-моему, здесь есть 3 варианта решения проблемы:

  1. Всегда оставаться на одной версии Jquery (тогда не будут работать все новые, крутые плагины);
  2. Покупать плагины, к которым прилагается поддержка, и которые постоянно обновляются (денег жалко);
  3. Минимизировать риски использовав плагины от самого Jquery. Под словом плагин, я здесь имею в виду Jquery UI.

5 июля 2011 г.

Восстановления пароля из Membership, в проекте на ASP.Net MVC

В большинстве проектов, для работы с пользователями, я использую встроенный Membership, инфраструктуру которого переношу в проект на самой первой стадии. Подробнее о том, как это сделать, можно посмотреть здесь.
Сам по себе Membership - штука очень хорошая. Новый, созданный MVC-проект включает AccountController, в котором имеется вся логика по работе с пользователями через Membership. Но вот, чего там нет, так это восстановления забытого пароля. В связи с этим, каждый выкручивается по-своему. Приходится писать дополнительный функционал. Этим мы сегодня и займемся.