Технология ASP.NET занимает особое место в пестром мире Web-технологий. Если рассматривать системный ландшафт средств и инструментов для создания Web-решений, легко заметить, что самый нижний его сегмент занимают решения, выросшие из «самодеятельных», если так можно выразиться, технологий. Языки программирования, когда-то создававшиеся для «домашних страничек», ОС и Web-серверы, развиваемые энтузиастами, несложные СУБД. Зачастую это великолепные продукты, эффективные, с изящной системной архитектурой… Проблема только в том, что они предназначены для решения какой-то одной узкой задачи. Другой сегмент – масштабные системы, содержащие массу средств и инструментов, но дорогие и чрезмерно усложненные, предъявляющие высокие требования к аппаратной базе и квалификации разработчика.
ASP.NET – не просто «язык программирования», это целый комплекс инфраструктурных решений.
ASP.NET представляет собой золотую середину. Во-первых, это не просто «язык программирования», это целый комплекс инфраструктурных решений: WCF, Workflow, паттерны, темы, органично интегрированные средства AJAX, элементы управления, инструментарий для единообразного доступа к данным и т. д. Во-вторых, основа ASP.NET – фундаментальная технология Microsoft.NET, Common Language Runtime (CLR). Как следствие, разработчики имеют возможность создавать решения для ASP.NET практически на любых языках, доступных в рамках. NET Framework (от C# и Visual Basic.NET до JScript.NET и экзотики вроде IronPython). И при этом Microsoft сумела создать целостную платформу, избежав как чрезмерного усложнения, так и неоправданного упрощения. В качестве примеров, демонстрирующих особенности ASP.NET, мы выбрали две «условно типовые» задачи, довольно часто возникающие в российских реалиях.
Web-стартап: cайт купонов
Купоны, пожалуй, самая модная тема в Рунете второй половины 2011 г. Идея состоит в том, что покупателю предлагается купон на товар или услугу с существенной скидкой. Число купонов ограниченно, но достаточно велико; в сущности, множество пользователей оптом приобретают какую-то услугу, получая более выгодные цены.
Лаконичность и очевидные перспективы идеи привлекли внимание многих стартап-компаний. Тем более что с технической точки зрения ничего сложного такие решения собой не представляют. По сути, сайт купонов можно рассматривать как специализированный коллективный блог, где зарегистрированные участники размещают заявки и имеется система ведения пользовательского баланса.
Существует много готовых систем управления блогами… Но есть нюанс. Идея нового проекта, как правило, оригинальна, а уже готовые разработки в 99 % случаев автоматизируют известные задачи. Отсюда с неизбежностью следует необходимость самостоятельной разработки или всей системы, или, как минимум, модуля для существующей.
Выбор ASP.NET в данном случае будет более чем оправдан. Один из основных инструментов начинающего Web-разработчика – WebMatrix. Впрочем, правильнее сказать, что это целый комплекс продуктов, обеспечивающих простую в освоении среду разработки для создания полнофункциональных Web-решений. В комплект входят Web-сервер, СУБД, редакторы кода, вспомогательные компоненты (например, для интеграции с социальными сетями Facebook или Twitter), шаблоны, набор утилит, упрощающих развертывание и техническое сопровождение. Если в компаниях или на хостинг-площадках обычно уже есть минимальный набор инфраструктурных решений, то для создания собственных Web-решений на локальной машине разработчика все их потребуется установить. Тут и поможет WebMatrix (помимо инсталляции, обеспечивается и настройка, и обновление компонентов).
В качестве основы можно использовать готовые шаблоны Web-проектов и набор «мастеров» Visual Studio, обеспечивающих формирование структуры сайта с многопользовательским доступом, включая систему ролей и т. д. На выбор предлагается целый ряд вариантов, и авторам придется больше сосредоточиваться на дизайне сайта, чем на разработке кода, когда речь идет о базовой функциональности. Исключение – прикладная логика проекта, например процедуры обработки заказов и заявок.