Yvision.kzYvision.kz
kk
Разное
Разное
399 767 постов40 подписчиков
Всяко-разно
-4
23:59, 07 апреля 2011

Что нужно начинающему разработчику веб-приложений с использованием технологии ASP.NET?

Перво-наперво ему нужен ASP.NET, как велосипеду автомобильные литые диски с низкопрофильной резиной и красными, такими, тормозными колодками.

Колеса крутые, тормоза мощные, резина зашибись, осталось только прикрутить к велосипеду и он, типа, поедет. Точно также делают многие "учебники для начинающих ASP.NET-разработчиков", которые начинаются словами "...Давайте создадим новый файл веб-формы (*.aspx) и перетащим на него несколько веб-контролов — Label, TextBox и Button...".

В результате этого маленького урока, мы создаем веб-страничку, где можно ввести в текстовое поле некий текст, нажать кнопку "Отправить" и увидеть, как в заголовке веб-страницы появился введенный нами текст.

Охренеть. И это всего два-три клика мышью, пара строчек кода и вот такая вот динамика и интерактивность технологии ASP.NET Web Forms (авторы часто умалчивают, что речь чаще всего идет об именно о технологии ASP.NET Web Forms).

"Охренеть" — подумал я, когда у меня забрали велосипед, прикрутили колеса к Рендж Роверу, прокатили с ветерком, спросили "Круто, да?", потом отдали обратно велосипед, колеса и сказали, что теперь и я могу ехать. И снова я баран с велосипедом и колесами от Рендж Ровера.

Поэтому, начинающему веб-разработчику на ASP.NET, прежде всего надо знать общую концепцию .NET (т.е., что .NET, это масса библиотек, с удобными классами и функциями для работы с системой, окнами, файлами, памятью, XML, процессами, потоками, транзакциями, строками, числами, массивами, которые можно расширять и дописывать сколько тебе душе угодно). И со всем этим добром можно работать, используя любой из языков программирования для .NET (C#, VB, Java).

Чем библиотека .NET особенно вставляет? Тем, что трудно придумать такую прикладную (типовую) задачу, которую бы .NET не предусматривал.

ASP.NET это масса библиотек, с удобными классами и функциями для веб-разработки, которые написали программеры Майкрософт, используя .NET.

ASP.NET Web Forms, это масса библиотек, с удобными классами и функциями для разработки веб-приложений в рамках концепции "веб-формы".

ASP.NET MVC, это пара-тройка (что удивительно) библиотек, с классами и функциями для разработки веб-приложений в рамках концепции "Model-View-Controller".

ADO.NET это масса библиотек, с удобными классами и функциями для работы с базами данных, XML, транзакциями и пр. Написано также программерами Майкрософта, с использованием .NET.

Холодильник.NET это масса библиотек, с удобными классами и функциями для работы с холодильником, морозильником и лампочкой освещения в нем. Написано вами, для вашего холодильника, с использованием .NET, ADO.NET и ASP.NET (для удаленного доступа к холодильнику, через веб-интерфейс).

И так далее.

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

Поэтому ему стоит узнать, что веб-приложение ASP.NET не запускается каждый раз заново по очередному запросу, а создается один раз при первом запросе веб-сервером и сидит в нем постоянно (в виде экземпляра класса System.Web.HttpApplication) и обрабатывает все запросы к этому веб-приложению. А если веб-разработчик хочет сам обрабатывать запросы? Или расширить класс HttpApplication? Для этого есть файл Global.asax, в котором можно указать свой собственный класс, наследованный от HttpApplication и после этого в памяти веб-сервера будет загружен не базовый HttpApplication, а RefrigeratorHttpApplication. И в нем перехватывая все мыслимые и немыслимые события (программеры Майкрософта придумали), которые происходят при обычном запросе (перед началом запроса, начало запроса, перед концом начала запроса, перед началом сесии, перед концом сессии, в конце-концов) можно обрабатывать этот самый запрос.

Вот начальная точка. Вот где можно написать echo "Hello World", мля, сорри, Context.Response.Write("Hello World").И никаких Web Forms или MVC здесь в помине нет и не будет никогда. Потому что для Web Forms нужен обработчик запросов *.aspx-страниц их разбор, парсинг и рендеринг. А это делают специальные классы (PageHandlerFactory, Page, PageBuilder, Controlb и т.п.). Собственно ASP.NET здесь не при чем. Страницы *.aspx можно рендерить в командной строке. Какие в задницу визуальные контролы?

Пишите, как на PHP. Попишите немного "велосипед".

Элементарно, перехватите запросы к файлам *.html, открывайте их в каталоге (по имени запрошенного файла), найдите путем парсинга тег <title></title>, вставьте в него строку "Технология ASP.NET Dynamic Html Files" и выведите этот массив HTML-кода в ответ клиенту, присобачив тип контента "text/html".

Реализация такой простой задачи, дает первоначальное представление о среде ASP.NET. А дальше, можно хватать учебники по ASP.NET Web Forms или ASP.NET MVC.

Чтобы начать изучение ASP.NET именно таким образом, рекомендую почитать книги (настоящие книги, написанные профессиональными техническими писателями):

1. C# 2008 и платформа .NET 3.5 для профессионалов (чтобы знать, как объектно-ориентироваться на C#`пе в .NET`е), писали пять авторов. И ещё ссылка на MSDN по C#.

2. Microsoft ASP.NET 2.0. Углубленное изучение (только главы "Модель компиляцииASP.NET", "Обработчики и модули HTTP", "Конфигурация ASP.NET" и на этом хватит), писал Дино Эспозито.

3. Microsoft ASP.NET 2.0. Базовый курс (это уже про то, как используя Web Forms можно быстро набрасывать сайты-визитки, веб-сайты, веб-порталы...), писал Дино Эспозито, причем в названии тоже не уточнил, что речь идет об ASP.NET Web Forms. После прочтения этой книги, можно дочитать "Microsoft ASP.NET 2.0. Углубленное изучение".

4. Разработка Web-приложений в среде ASP.NET 2.0. Задача - проект - решение (когда не просто учишься, а ещё и надо уже что-то делать), автор Беллиньясо Марко.

5. ASP.NET MVC Framework с примерами на C# для профессионалов (очень и очень менее навороченная технология, в отличие от Web Forms, но надо много делать ручками, что обеспечивает в результате повышенное знание среды ASP.NET, HTML :) и паттерна MVC), писал Стивен Сандерсон.

-4
981
2