Asp net — С# для мобильной разработки


Содержание

ASP.NET

Изучение ASP.NET Core MVC / #1 — Создание сайта на C#

Видеоурок

Полезные ссылки:

Подавляющее большинство хоть что-то, но слышали о платформе ASP.NET. Правда, знания очень разбросанные и неструктурированные, от чего нет чёткого представления о возможностях данной платформы. В рамках данного материала рассмотрим ключевые особенности ASP.NET.

ASP.NET – это платформа для разработки в вебе (сайты, приложения). Она поддерживает работу с несколькими языками программирования, входящими в сборку фреймворка: Basic NET, C# , J# и ряд прочих. С данной платформой есть возможность создавать как простейшие веб-ресурсы, так и очень сложные сайты, способные к обработке многотысячного потока пользователей.

ASP.NET по скорости работы значительно превосходит прочие скриптовые языки. Причина быстрой обработки заключается в том, что основа компилируется при первом подключении пользователя и сразу добавляется в кэш компьютера. Все последующие переходы по сайту используют уже кэшированный код, который просто извлекается из памяти, а не скачивается с сервера повторно. Такой подход сильно экономит время на парсинге, загрузке и обработке файлов.

Популярнейшие технологии и языки программирования для разработки веб-ресурсов:

В нынешних реалиях ASP .NET невероятно популярна, она лежит в основе огромных интернет-порталов. Нам удалось найти хороший материал , в котором освещено 10 лучших веб-ресурсов, созданных на данной платформе.

В этом списке присутствуют:

  • StackOverflow – это один из самых больших форумов. С его помощью тысячи людей ежедневно получают ответы на насущные вопросы;
  • Основной портал корпорации Microsoft ;
  • Крупнейший сайт для регистрации доменов GoDaddy . Сегодня занимает лидирующие места в сфере веб-хостинга.
  • Официальный веб-сайт Dell .

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

В ASP .NET применяется традиционная схема MVC – Модель-Вид-Контроллер. Все элементы отвечают за конкретные действия. Для примера, пользователь запускает процесс регистрации и отправляет на сервер регистрационные данные. Контроллер интерпретирует действия человека и передаёт модели информацию о внесённых изменениях в статус пользователя. Модель реагирует на действия контроллера и работает с поставляемыми данными. Вид отвечает за отображение информации с модели.

После отправки запроса на сервер, его начинает обрабатывать контроллер, затем передаёт изменения в модель, которая реагирует на обновление и выдаёт всё нужное для отображения сайта. Вид выполняет только роль отображения внешнего вида страницы – обычный HTML-шаблон.

Если подытожить, это очень удачная и перспективная технология. Отдав ей предпочтение, вы наверняка не пожалеете в будущем.

ASP .NET или ASP .NET Core?

.NET Core – кроссплатформенная среда выполнения для приложений из веба или консольных программ. Программные продукты, разработанные на ней, могут успешно исполняться на Linux, Windows, MacOS.

Основные плюсы: мультиплатформенность, открытый исходный код.

.NET Framework – среда исполнения, которая предназначена исключительно для Виндовс. Помогает в разработке десктопных программ под Windows и веб-приложений ASP .NET под IIS.

Ключевые достоинства: огромный ассортимент готовых библиотек, значительно больше возможностей в сравнении с прошлой платформой.

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

Лично я выбрал .Net Core, ведь считаю эту платформу перспективнее, да и на сегодняшний день её функционала мне достаточно. Очень много NuGet модулей и библиотек берут курс на адаптацию под .NET Standart, то есть становятся доступными в Core.

Пара сценариев для разработчиков веб-ресурсов на профессиональном уровне.

ASP .NET Core – лучше применять, если вы:

  • Желаете установить таргетинг в приложении на все популярные ОС;
  • Не страшитесь изучения нового;
  • Не боитесь уделять достаточно времени исправлениям и доработкам, ведь Core не дошёл до статической точки, периодически меняется.

ASP .NET – идеальное решение, если вы:

  • Не испытываете необходимости организовывать кросплатформенную поддержку веб-приложения;
  • Нуждаетесь в стабильной среде разработки;
  • Не имеете большого количества времени для разработки, то есть дедлайны поджимают;
  • Уже занимаетесь разработкой или модернизацией существующей программы;
  • Входите в состав команды, обладающей опытом работы с ASP.NET.

Тем, кто сегодня только планирует начать обучение и в ближайший год начать работать на крупные компании, ASP .NET Core идеально подходит. С этой средой вы получаете много перспектив на будущее.

Дополнительные курсы

Фреймворк .NET поддерживает множество языков, но самым популярным является C#. Прежде чем приступать к видео курсу вам следует изучить C#. На нашем ресурсе представлено множество курсов на эту тематику. Просмотреть их все можете по этой ссылке .

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Работа с мобильными устройствами

Вы будете часто оптимизировать приложения MVC Framework для мобильных устройств, а для этого необходимо адаптировать контент, который вы предоставляете пользователю, а также учитывать доступные функции и ограничения устройства. Между мобильными устройствами и настольными компьютерами есть много различий, но больше всего хлопот вызывают сенсорный ввод и ограниченный размер экрана. Чтобы в представлениях, которые визуализируются для мобильного клиента, можно было использовать сенсорный ввод, необходимы элементы большего размера и свободное пространство между ними, чтобы ввод был достаточно точным. Также необходимо убедиться, что контент можно прочитать на маленьком экране.

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

Когда вы создаете новый проект MVC Framework, доступна опция Mobile template , но это всего лишь вариант шаблона Internet , в котором добавлена поддержка библиотеки jQuery Mobile. Нам очень нравится jQuery Mobile, и, как вы уже догадались, Адам подробно описал ее в других своих книгах. Однако нам не нравится шаблон Mobile , поскольку он добавляет стандартные представления и контроллеры для аутентификации, которые, по нашему мнению, не очень хорошо работают. Вместо этого мы рекомендуем вам установить jQuery Mobile и другие необходимые библиотеки JavaScript с помощью NuGet.

Пересматриваем приложение

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

Для начала попытаемся понять, как наше приложение выглядит на различных мобильных устройствах. Для этого мы будем использовать эмулятор Opera Mobile Emulator, который можно бесплатно скачать с www.opera.com/developer/tools/mobile. Конечно, ничем нельзя заменить тестирование мобильного приложения на реальных мобильных устройствах, но Opera Mobile Emulator позволит быстро оценить, где мы находимся. Он распространяется бесплатно, обеспечивает верную эмуляцию браузера Opera Mobile, который используется на многих мобильных устройствах, и позволяет протестировать различные профили и возможности аппаратного обеспечения.

Есть другие эмуляторы, в том числе для платформ Windows Phone, Android и Blackberry. Как правило, они работают довольно медленно и трудны в использовании, потому что они эмулируют целую мобильную операционную систему, а не только браузер. Мы еще не нашли ни одного вменяемого эмулятора iPhone для Windows PC: в них обычно используется Windows-версия Safari, которая отличается от версии IOS и похожа на неудачную копию браузера Apple.

На рисунке 24-5 показано, как отображается в мобильном браузере представление /Home/MakeBooking . В эмуляторе мы использовали профиль HTC Hero, который имитирует типичное, ничем не выдающееся мобильное устройство с сенсорным дисплеем 320 × 480 пикселей и разрешением 180 пикселей на дюйм.

Рисунок 24-5: Приложение в мобильном браузере

Так как это очень простое приложение, оно не так уж плохо отображается на экране. Если придираться, то можно сказать, что элементы расположены не лучшим образом для использования на сенсорном экране. Большинство реальных приложений, разработанных и протестированных в браузерах для РС, в мобильных браузерах выглядят ужасно.

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

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

В качестве примера мы создали новый файл представления под названием Views/Home/MakeBooking.Mobile.cshtml . Обратите внимание на фрагмент .Mobile перед расширением файла. Содержимое представления показано в листинге 24-13.

Листинг 24-13: Представление /Views/Home/MakeBooking.Mobile.cshtml


Мы внесли небольшие коррективы в это представление, чтобы метки для элементов input отображались отдельно, а также изменили содержание элемента h4 title , чтобы стало очевидно, какое представление отображается.

MVC Framework применяет мобильное представление автоматически. Если вы запустите приложение и перейдете по ссылке /Home/MakeBooking в браузере настольного компьютера, то увидите HTML, сгенерированный для представления /Views/Home/MakeBooking.cshtml . Но если вы перейдете по той же ссылке в эмуляторе мобильного браузера, то увидите HTML, сгенерированный для представления /Views/Home/MakeBooking.Mobile.cshtml , как показано на рисунке 24-6.

Рисунок 24-6: Переход по ссылке в настольном и мобильном браузерах

Способ обнаружения мобильных браузеров немного странный и опирается на набор текстовых файлов, которые входят в.NET Framework. Мы нашли их в C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers , но в других операционных системах директория может отличаться. Здесь находится ряд файлов, каждый из которых идентифицирует мобильный браузер – есть файл и для Opera Mobile. Когда MVC Framework получает запрос от мобильного эмулятора, он смотрит на строку UserAgent , которую отправляют все браузеры, и определяет, что запрос был отправлен с мобильного устройства; далее используется представление MakeBooking.Mobile.cshtml .

Создаем пользовательские режимы отображения

По умолчанию MVC Framework обнаруживает только мобильные устройства и рассматривает их в одной категории. Если вы хотите уточнить, как отвечать различным типам устройств, то можете создать свои собственные режимы отображения. Чтобы это продемонстрировать, мы будем использовать профиль Amazon Kindle Fire, который имеется в Opera Mobile Emulator. Opera Mobile, установленная на планшете, посылает строку UserAgent , которая не соответствует тому, что ожидает .NET Framework от Opera Mobile; таким образом, к устройству отправляется стандартное представление MakeBooking.cshtml .

В листинге 24-14 показано, как мы изменили файл Global.asax , чтобы создать новый режим отображения для браузера Opera Tablet.

Листинг 24-14: Создаем новый режим отображения в файле Global.asax

Статическое свойство DisplayModeProvider.Instance.Modes возвращает коллекцию, с помощью которой мы можем определить пользовательские режимы отображения; для этого необходимо создать экземпляр объекта DefaultDisplayMode и установить в качестве значения свойства ContextCondition лямбда-выражение, которое получает объект HttpContextBase и возвращает логическое значение. Аргументом конструктора для класса DefaultDisplayMode является имя режима отображения, которое будет использоваться для поиска макетов и представлений, адаптированных для конкретного типа устройств. Мы указали OperaTablet , что означает, что MVC Framework будет искать такие представления, как /Views/Home/MakeBooking.OperaTable.cshtml .

Обратите внимание, что мы использовали метод Insert , чтобы поместить объект DefaultDisplayMode с нулевым индексом в коллекции, которую возвращает свойство DisplayModeProvider.Instance.Modes . MVC Framework проверяет режимы отображения по очереди и останавливает поиск, если выражение ContextCondition какого-либо режима возвращает true . Есть резервный режим отображения, который будет соответствовать любому запросу и использовать представление по умолчанию (т.е. без дополнений OperaTable или Mobile ). Мы должны гарантировать, что наш режим отображения находится в очереди перед резервным вариантом.

Мы используем объект HttpContextBase , чтобы решить, соответствует ли полученный запрос искомому режиму отображения. Мы проверяем, содержит ли свойство Request.UserAgent значение Opera Tablet , и если да, то возвращаем true .

Чтобы воспользоваться этим режимом, мы создали новое представление под названием /Views/Home/MakeBooking.OperaTablet.cshtml , которое показано в листинге 24-15.

Листинг 24-15: Содержимое файла MakeBooking.OperaTablet.cshtml

Здесь мы внесли только одно изменение — в элемент h4 , который сообщает нам, какое используется представление. Если мы запустим Opera Mobile Emulator с профилем Kindle File и перейдем по ссылке /Home/MakeBooking , то увидим, что используется наше новое представление, как показано на рисунке 24-7.

Рисунок 24-7: Результат создания пользовательского режима отображения

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

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

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

| Вторник, 26 февраля, 2013

В ASP.NET MVC 4 появились шаблоны разработки сайтов для мобильных устройств. Но размещать такие сайты можно только с использованием субдомена, на который перенаправляются пользователи, зашедшие на сайт через мобильный браузер. Данная статья расскажет о том, как разработать приложение ASP.NET MVC 4, чтобы оно работало сразу и для обычных браузеров и для мобильных устройств без перенаправления на специальный субдомен с мобильным приложением.

В MVC 4 появилась новая возможность изменения режима отображения, когда можно создавать различные версии представления, и выбирать соответствующую версию в зависимости от используемого браузера. Например, если десктопный браузер запросил начальную страницу сайта, то генерируется страница через представление Views\Home\HomePage.cshtml, а если запрос пришел от браузера мобильного устройства, то выбирается представление Views\Home\HomePage.Mobile.cshtml, причем URL будет тем же самым.

Так же работают мастер-представления и частичные представления. То есть, для каждого запроса десктопного браузера будет использоваться Views\Shared\_Layout.cshtml, а для мобильного — Views\Shared\_Layout.Mobile.cshtml.

Как работает режим отображения

Чтобы начать использовать различные представления для различных браузеров, нужно зарегистрировать режим отображения в событии Application_Start в файле global.asax.cs. И затем приложение сможет выбирать нужную версию представления в зависимости от того, каким условиям удовлетворяет браузер.

Зарегистрировать новый режим отображения можно с помощью класса DefaultDisplayMode. Например, следующий код зарегистрирует режим отображения «Mobile», который будет использоваться для запросов от мобильных браузеров.

В коде выше свойству ContextCondition передается делегат функции проверки браузера. И затем объект режима отображения помещается в коллекцию для дальнейшего использования. Как можно увидеть из кода, есть возможность зарегистрировать произвольное количество режимов отображения.

Пример использования двух режимов отображения

Рассмотрим небольшой пример приложения с двумя режимами отображений — для десктопных браузеров и для мобильных.

  • Создадим новое приложение ASP.NET MVC 4
  • В папках Views/Home и Views/Shared добавим новые представления для мобильных устройств. Можно перенести представления из проекта для мобильного приложения и переименовать их как показано на рисунке ниже.
  • И добавим следующий код в событие Application_Start файла global.asax.cs.
  • Скомпилируем, сбилдим и запустим проект.
  • Откроем один и тот же URL в десктопном браузере и в браузере любого мобильного эмулятора. Или можно установить в браузер Mozilla дополнения Mozilla User Agent Switcher Add-ons и переключить user agent на iPhone. В браузерах откроются разные версии страницы.

Самое важное в этом примере, то что в браузеры открыли содержимое с одинаковым URL, но сгенерированы страницы по-разному.

Как сделать ASP.NET для поддержки мобильных устройств.

в Cоветы ПК 146 Просмотров

Мобильные устройства, такие как сотовые телефоны с веб-доступом и персональным цифровым помощником (PDA) становятся всё более распространенными. Инфраструктуры, которые поддерживают «Беспроводные сети» становятся всё больше и более надежными. Существует мнение, что мобильные пользователи будут продолжать расти с огромной скоростью.


[help]Почти для любой работы нужны инструменты. Инструмент для борьбы с вирусами –антивирусная программа. В этой статье я рассказываю о своём наборе антивирусных программ–своеобразном антивирусном боекомплекте [/help] В этом сценарии есть хорошие возможности для разработки
специальных веб-страниц для мобильных устройств, и они могут сделать хорошее применение технологии ASP.NET. Но эта идея не понравилась многим разработчикам. Основной причиной является стоимость добавления дополнительных страниц на своём веб-сайте. Особенно, если мы посмотрим на сотовые телефоны,которые используют разные стандарты «Wireless Markup Language» (WML) для просмотра веб-страниц. И мы знаем, что разработки WML страниц никаких дополнительных усилий со стороны разработчика не сделали, следовательно, более мобильные устройства более экономичные.
Итак, что предлагает ASP.NET из интернет-приложений для мобильных устройств? При использовании ASP.NET для мобильных устройств Software Development Kit (Mobile SDK), разработчик может создавать веб-страницы с теми же нормами и конструкциями, которые необходимы для создания любой традиционной страницы.
Данная статья написана,что бы изучить некоторые аспекты ASP.NET Mobile SDK. В конце этого урока, читатель должен иметь представление о:
1.Как мобильные устройства различаются по своим возможностям в режиме реального времени сценариев.
2.Как написать ASP.NET страницу для мобильных устройств, которые могут быть использованы в мобильных устройствах.
3.Использование различных ASP.NET для мобильных устройств
Разница между различными мобильными устройствами.
Существуют присущие трудности ,когда как мы имеем дело с мобильными устройствами. Так как ,они имеют ряд ограничений. В некоторых из них можно использовать JavaScript и многие это не делают. Некоторые из них могут отображать HTML-страницы, но большинство сотовых телефонов этого не может делать. Для доступа к сети они вынуждены полагаться на стандартные WML. Так, что сделать веб-сайт, который поддерживает все эти устройства трудно.
Если бы Вы ,изучили их ограничения в деталях, вы бы узнали, что проектирование доступных веб-сайтов для КПК относительно легко. Потому что:
1.КПК может сделать HTML страницы и отображать многие существующие веб-сайты без проблем.
2.Многие из них поддерживают JavaScript.
3.Многие из них поддерживают Cookies (куки) и файлы изображений.
4. Но их основным ограничением является маленький экран.

И напротив, дело с мобильными телефонами не очень лёгкое.Такими причинами являются:
5.Многие сотовые телефоны не могут показывать HTML страницы.
6.Есть некоторые сотовые телефоны высокого класса, которые могут показать HTML, но они могут поддерживать только ограниченный набор стандартных HTML.
7.Многие из них не поддерживает JavaScript, Cookies или файлы с изображениями.
Что такое WML и XML?
Как правило, мобильные телефоны могут устанавливать WML файлы. WML является Wireless Markup Language, основанный на XML (Extensible Markup Language). XML, в отличие от HTML поддерживает пользовательские метки. Он поддерживает естественный способ представления данных. XML-файлы имеют схемы, связанные с ними и которые показывают структуру, в которой эти файлы находятся. Не беспокойтесь, если вы не знаете, XML в деталях. Но всё же, рекомендуется, посмотреть на него (www.w3schools.com).
Код ниже показывает пример страницы WML.

Welcome to ASP.NET mobile device programming

Первая строка является стандартным заголовком XML, который присутствует во всех страницах WML.В следующих двух строках указывается схема для файла WML. Эти три линии являются неотъемлемой частью в каждой странице WML. Каждая страница WML состоит из тегов. WML файлы состоят из карт, которые могут вставлять различные HTML тегов внутри. В листинге 1.1, выход генерируется только в один тег.
Описание: ASP.NET делает WML файлы в автоматическом режиме (так что вам не нужно явно писать WML файлы). Он определяет характер вызывающего- сотовый телефон или PDA. Так как КПК не может создать WML страницы, ASP.NET работает с такими проблемами, управляя рендерингом страниц на себя.
Программы эмуляторы: Вы можете проверить страницы в стандартном веб-браузере, но это не дало бы реальную картину того, что вы разработали. Чтобы решить эту проблему, были разработаны некоторые эмуляторы. Они имитируют мобильный телефон или КПК на рабочем столе компьютера так, чтобы его можно было рассматривать в качестве виртуального мобильного устройства. Вы можете использовать эмуляторы для тестирования веб-страниц, дизайна для мобильных устройств.
Microsoft были разработаны два эмуляторы. Один из них для сотовых телефонов ,друой для КПК. Их можно загрузить и установить до начала испытания ваших страниц (это было бы наиболее трудоемкой задачей в обучении).
Создание ASP.NET для мобильных веб-страниц.
Теперь мы обсудим основные темы этой статьи. Как вы можете создавать мобильные веб-страницы (обычно называется веб-формы в среде ASP.NET). Приведенный ниже код выводит простое сообщение для любого мобильного устройства. Обратите внимание, что классы мобильной библиотеки ASP.NET должны быть включены в каждую мобильную веб-страницу. Эти классы определяют мобильные веб-элементы управления.

Цукерберг рекомендует:  Обучение - Ищу программиста html+css+php+js

6,0,1,0,0


Первые две строки включают MobilePage класс, который содержит определения запасов мобильных классов. Следующие четыре строки указывают пространство имен, которые определяют мобильные устройства. Всё, что вам нужно сделать, это включить строки 1-6 в каждую мобильную веб-страницу, которую вы проектируете. TextView отображает текстовые сообщения. Каждая мобильная веб-форма соответствует одной странице отображаемой на мобильном устройстве. Вы можете держать одну форму на странице. Но лучший способ заключается в использовании нескольких форм на веб-странице. Для отображения других форм, вы должны добавить ID второй формы, чтобы URL использовали символ #. Есть два преимущества использования различных форм на странице.
1.В целом, вам потребуется меньше файлов.
2.Все соответствующие экраны могут быть помещены в один файл.

В коде выше, первая форма (Form1) связана со второй формой (Form2) с помощью NavigateURL и путём добавления в Form2 идентификатора ссылки предшествующей #. При подключении двух различных форм на той же странице, это стандартная процедура. Вы также можете установить ActiveForm свойства страницы, чтобы достичь той же цели.
ASP.NET для мобильных веб-элементов управления .
Программирование для мобильных устройств включает в себя множество элементов управления, которые используются для решения ввода / вывода данных и их представления. Некоторые из этих элементов управления вы обычно используете в традиционном программировании ASP.NET. Я даю краткий список мобильных устройств наряду с их описанием.
TextView
Описание:Используется для отображения текстовых сообщений на экране.
Пример: См. его использования в листинге 1,2 и 1,3
Этикетка
Описание: Отображает строки на экране. Его значение может быть установлено динамически.
Пример:

if (age 13,1,0,0,0

MyLabel.text = » Under 21 «

Список
Описание:Используется для отображения маркированного списка пунктов, которые пользователи могут выбирать. Когда пользователь выбирает пункт, ItemCommandEvent отправляется и может быть обработан программными средствами.
Пример: См. ближайшие пример (Листинг 1,4).
SelectionList
Описание: отображает список элементов, а также может быть заполнен серверным кодом.
ObjectList
Описание:Для отображения пользовательских элементов, используется этот элемент управления. Комплекс элементов списка может быть обработан с использованием этого элемента управления.
Входной контроль:
Есть некоторые элементы управления для получения ввода от пользователя. Они включают кнопку (которая отображается как ссылка сотовых телефонов), TextBox (что позволяет пользователю ввести буквенно-цифровые значения), и ссылку.
Проверка управления:
Все проверяющиеся элементы управления, которые мы видим в традиционных страницах ASP.NET могут быть использованы в мобильном программировании. К ним относятся RangeValidator (проверяет диапазон значений), CompareValidator (сравнивает определенные поля ввода), RegularExpressionValidator (может быть использовано для ограничения пользователей конкретных входных форматов), CustomValidator (определяется программист) и SummaryValidator (принимает результаты контроля и проверки форматов этих результатов).
Управление вызовами:
Это интересный контроль, который может совершать телефонные звонки с вашего мобильного телефона и КПК. Для того чтобы это сделать, установите свойство PhoneNumber на номер устройства,который необходимо набрать при выборе элемента управления.
Другие элементы управления:
Есть некоторые другие элементы управления, такие как календарь, AdRotator и управление изображением, которые не могут быть поддержанными некоторыми мобильными устройствами. Но есть заместители , чтобы сделать эти задачи.

В приведенном выше примере кода, пользователю будет предоставлено два варианта: Показать комментарии на конкретный день или отображать название дня .Здесь Вы можете видеть роль ActiveForm. В списке меню, есть обработчик событий, который мы определили как GiveComments. Этот пример должен быть достаточным, чтобы сделать практически все задачи, связанные с взаимодействием с пользователем.
Наконец, в заключении я собираюсь разработать разбиение на страницы. Поскольку мобильные устройства имеют небольшие экраны и данные для отображения могут быть больше чем размер экрана, вы можете использовать Pagination ,что бы разбить длинное сообщение на более мелкие сообщения. Таким образом, пользователь может читать меньше сообщений, нажав кнопку в нижней части экрана или нажав кнопку Выбрать, чтобы показать следующеую часть сообщения. Разбивка на страницы достигается путем установки разбиения на страницы :

Резюме:
•При использовании ASP.NET для мобильных устройств Software Development Kit (Mobile SDK), разработчик может создавать веб-страницы с той же конструкцией, которые необходимы для создания любой традиционной страницы.
•Возможности различных мобильных устройств различаются по HTML рендерингу, JavaScript и Cookies поддержкой. КПК имеет больше возможностей и проектирование для КПК доступных веб-сайтов относительно легче.
•WML (Wireless Markup Language) основан на XML (Extensible Markup Language)
ASP.NET контроль рендеринга страниц через себя
•Программы эмуляторы помогают программисту в тестировании вывода страницы для мобильных устройств.
ASP.NET классы мобильной библиотеки должны быть включены в каждой мобильной веб-странице
•Вы можете использовать для мобильных устройств ввод, проверку и отображение данных ,взаимодействуя с пользовательскими данными.
•Разбивка на страницы — делает длинное сообщение в более маленькие сообщения, которое будут отображаться на экране мобильного устройства.

26,0,0,0,1

LAV_ СИТспец_маг2014-15 / Модуль1_2013-14 / Web-приложения ASP_NET

Разработка Web-приложений ASP .NET с использованием Visual Studio .NET

Принципы работы и структура Web-приложений на основе ASP.NET

Основы работы в Visial Studio .NET

Основы Web-программирования с использованием ASP.NET

Принципы разработки пользовательского интерфейса интернет-приложения

Использование Master Page и навигация при построении интернет-приложений

Навигация по Web-приложению

Использование тем при оформлении Web-приложения

Использование кэширования в Web-приложениях

Использование баз данных в приложениях ASP.NET

Принципы работы и структура Web-приложений на основе ASP.NET

Рассматривается архитектура современных Web-приложений, взаимодействие клиентской и серверной частей таких приложений, принципы их организации в среде ASP.NET

Цель лекции: познакомиться с архитектурой и особенностями организации Web-приложений, особенностями архитектуры ASP.NET и .NET Framework, принципами взаимодействия клиента и сервера при выполнении Web-приложения на основе ASP.NET.

Web-приложения представляют собой особый тип программ, построенных по архитектуре «клиент-сервер». Особенность их заключается в том, что само Web-приложение находится и выполняется на сервере — клиент при этом получает только результаты работы. Работа приложения основывается на получении запросов от пользователя (клиента), их обработке и выдачи результата. Передача запросов и результатов их обработки происходит через Интернет ( рис.1.1).

Рис. 1.1. Архитектура Web-приложения

Отображением результатов запросов, а также приемом данных от клиента и их передачей на сервер обычно занимается специальное приложение — браузер (Internet Expolrer, Mozilla, Opera и т. д.). Как известно, одной из функций браузера является отображение данных, полученных из Интернета, в виде страницы, описанной на языке HTML, следовательно, результат, передаваемый сервером клиенту, должен быть представлен на этом языке.

На стороне сервера Web-приложение выполняется специальным программным обеспечением (Web-сервером), который и принимает запросы клиентов, обрабатывает их, формирует ответ в виде страницы, описанной на языке HTML, и передает его клиенту. Одним из таких Web-серверов является Internet Information Services (IIS) компании Microsoft. Это единственный Web-сервер, который способен выполнять Web-приложения, созданные с использованием технологии ASP.NET.

В процессе обработки запроса пользователя Web-приложение компонует ответ на основе исполнения программного кода, работающего на стороне сервера, Web-формы, страницы HTML, другого содержимого, включая графические файлы. В результате, как уже было сказано, формируется HTML-страница, которая и отправляется клиенту. Получается, что результат работы Web-приложения идентичен результату запроса к традиционному Web-сайту, однако, в отличие от него, Web-приложение генерирует HTML-код в зависимости от запроса пользователя, а не просто передает его клиенту в том виде, в котором этот код хранится в файле на стороне сервера. То есть Web-приложение динамически формирует ответ с помощью исполняемого кода — так называемой исполняемой части.

За счет наличия исполняемой части, Web-приложения способны выполнять практически те же операции, что и обычные Windows-приложения, с тем лишь ограничением, что код исполняется на сервере, в качестве интерфейса системы выступает браузер, а в качестве среды, посредством которой происходит обмен данными, — Интернет. К наиболее типичным операциям, выполняемым Web-приложениями, относятся:

прием данных от пользователя и сохранение их на сервере;

выполнение различных действий по запросу пользователя: извлечение данных из базы данных (БД), добавление, удаление, изменение данных в БД, проведение сложных вычислений;

аутентифицирование пользователя и отображение интерфейса системы, соответствующего данному пользователю;

отображение постоянно изменяющейся оперативной информации и т. д.

Краткое описание архитектуры ASP.NET и .NET Framework

ASP.NET — это платформа для создания Web-приложений и Web-сервисов, работающих под управлением IIS. Сегодня существуют другие технологии, позволяющие создавать Web-приложения. К ним относятся прежде всего, очень популярные сегодня языки PHP и PERL, более старая и менее популярная технология CGI и т. д. Однако ASP.NET отличается от них высокой степенью интеграции с серверными продуктами, а также с инструментами Microsoft для разработки доступа к данным и обеспечения безопасности. Кроме того, ASP.NET позволяет разрабатывать Web- и Windows-приложения, используя очень похожие технологические цепочки, одинаковые языки программирования, технологии доступа к данным и т. д. Более того, базовые языки программирования, с помощью которых сегодня возможна разработка Web-приложений, являются полностью объектно-ориентированными, что делает разработку исполнимой части, а также ее модификацию, обслуживание, отладку и повторное использование гораздо более простым занятием, чем в других технологиях. Существует достаточно большой перечень сильных сторон использования ASP.NET для создания сложных Web-приложений. Целью данного курса не является описание всех сильных и слабых сторон этой платформы.

Заметим лишь, что ASP.NET функционирует исключительно на серверах Windows, так как требует наличия IIS. Для создания Web-приложений, не требующих IIS, а использующих, например, Web-сервер Apache и работающих на серверах под управлением операционных систем, отличных от Windows, применяются другие технологии.

Важным моментом в понимании архитектуры ASP.NET является тот факт, что она является частью инфраструктуры .NET Framework. Более подробно об архитектуре и принципах работы .NET Framework можно узнать в [2]. Так как эта тема является слишком объемной и выходит за рамки данного курса, ограничимся лишь кратким описанием инфраструктуры .NET Framework.


Архитектура .NET Framework

Как утверждает корпорация Microsoft, до 80% средств, направленных на исследования и разработки, тратится на платформу .NET и связанные с ней технологии. Результаты такой политики на сегодняшний день выглядят впечатляюще. Так, область охвата платформы .NET просто огромна. Платформа состоит из четырех групп программных продуктов:

набор языков, куда входят С# и Visual Basic .NET; набор инструментальных средств разработки, в том числе Visual Studio .NET; обширная библиотека классов для построения Web-служб и приложений, работающих в Windows и в Интернете; а также среда выполнения программ CLR (Common Language Runtime — общеязыковая среда выполнения), в которой выполняются объекты, построенные на этой платформе;

набор серверов .NET Enterprise Servers, ранее известных под именами SQL Server 2000, Exchange 2000, BizTalk 2000 и др., которые предоставляют специализированные функциональные возможности для обращения к реляционным базам данных, использования электронной почты, оказания коммерческих услуг «бизнес-бизнес» (В2В) и т. д.;

богатый выбор коммерческих Web-служб, называемых .Net My Services. За умеренную плату разработчики могут пользоваться этими службами при построении приложений, требующих идентификации личности пользователя и других данных;

новые некомпьютерные устройства, поддерживающие средства .NET, — от сотовых телефонов до игровых приставок.

Microsoft .NET поддерживает не только языковую независимость, но и языковую интеграцию. Это означает, что разработчик может наследовать от классов, обрабатывать исключения и использовать преимущества полиморфизма при одновременной работе с несколькими языками. Платформа .NET Framework предоставляет такую возможность с помощью спецификации CTS (Common Type System — общая система типов), которая полностью описывает все типы данных, поддерживаемые средой выполнения, определяет, как одни типы данных могут взаимодействовать с другими и как они будут представлены в формате метаданных .NET. Например, в .NET любая сущность является объектом какого-нибудь класса, производного от корневого класса System.Object. Спецификация CTS поддерживает такие общие понятия, как классы, делегаты (с поддержкой обратных вызовов), ссылочные и размерные типы.

Важно понимать, что не во всех языках программирования .NET обязательно должны поддерживаться все типы данных, которые определены в CTS. Спецификация CLS (Common Language Specification — общая языковая спецификация) устанавливает основные правила, определяющие законы, которым должны следовать все языки: ключевые слова, типы, примитивные типы, перегрузки методов и т. п. Спецификация CLS определяет минимальные требования, предъявляемые к языку платформы .NET. Компиляторы, удовлетворяющие этой спецификации, создают объекты, способные взаимодействовать друг с другом. Любой язык, соответствующий требованиям CLS, может использовать все возможности библиотеки FCL (Framework Class Library — библиотека классов платформы). CLS позволяет и разработчикам, и поставщикам, и производителям программного обеспечения не выходить за пределы общего набора правил для языков, компиляторов и типов данных.

Платформа .NET Framework является надстройкой над операционной системой, в качестве которой может выступать любая версия Windows 1) . На сегодняшний день платформа .NET Framework включает в себя:

четыре официальных языка: С#, VB.NET, Managed C++ (управляемый C++) и JScript .NET;

объектно-ориентированную среду CLR (Common Language Runtime), совместно используемую этими языками для создания приложений под Windows и для Internet;

ряд связанных между собой библиотек классов под общим именем FCL (Framework Class Library).

Отношения архитектурных компонентов платформы .NET Framework с концептуальной точки зрения представлены на рис.1.2.

Рис. 1.2. Архитектура .NET Framework

Самым важным компонентом платформы .NET Framework является CLR (Common Language Runtime), предоставляющая среду, в которой выполняются программы. Главная ее роль заключается в том, чтобы обнаруживать и загружать типы .NET и производить управление ими в соответствии с полученными командами. CLR включает в себя виртуальную машину, во многих отношениях аналогичную виртуальной машине Java. На верхнем уровне среда активизирует объекты, производит проверку безопасности, размещает объекты в памяти, выполняет их, а также запускает сборщик мусора.

Под сборкой мусора понимается освобождение памяти, занятой объектами, которые стали бесполезными и не используются в дальнейшей работе приложения. В ряде языков программирования (например, C/C++) память освобождает сам программист, в явной форме отдавая команды как на создание, так и на удаление объекта. В этом есть своя логика — «я тебя породил, я тебя и убью». Однако в CLR задача сборки мусора (и другие вопросы, связанные с использованием памяти) решается в нужное время и в нужном месте исполнительной средой, ответственной за выполнение вычислений.

На на рис.1.2. над уровнем CLR находится набор базовых классов платформы, над ним расположены слой классов данных и XML, а также слой классов для создания Web-служб (Web Services), Web- и Windows-приложений (Web Forms и Windows Forms). Собранные воедино, эти классы известны под общим именем FCL (Framework Class Library). Это одна из самых больших библиотек классов в истории программирования. Она открывает доступ к системным функциям, включая и те, что прежде были доступны только через API Windows, а также к прикладным функциям для Web-разработки (ASP.NET), доступа к данным (ADO.NET), обеспечения безопасности и удаленного управления. Имея в своем составе более 4000 классов, библиотека FCL способствует быстрой разработке настольных, клиент-серверных и других приложений и Web-служб.

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

Над этим уровнем находится уровень классов, которые расширяют базовые классы с целью обеспечения управления данными и XML. Классы данных позволяют реализовать управление информацией, хранящейся в серверных базах данных. В число этих классов входят классы SQL (Structured Query Language, язык структурированных запросов), дающие программисту возможность обращаться к долговременным хранилищам данных через стандартный интерфейс SQL. Кроме того, набор классов, называемый ADO.NET, позволяет оперировать постоянными данными. Платформа .NET Framework поддерживает также целый ряд классов, позволяющих манипулировать XML-данными и выполнять поиск и преобразования XML.

Базовые классы, классы данных и XML расширяются классами, предназначенными для построения приложений на основе трех различных технологий: Web Services (Web-службы), Web Forms (Web-формы) и Windows Forms (Windows-формы). Web-службы включают в себя ряд классов, поддерживающих разработку облегченных распределяемых компонентов, которые могут работать даже с брандмауэрами и программами трансляции сетевых адресов (NAT). Поскольку Web-службы применяют в качестве базовых протоколов связи стандартные протоколы HTTP и SOAP, эти компоненты поддерживают в киберпространстве подход «Plug & Play».

Инструментальные средства Web Forms и Windows Forms позволяют применять технику RAD (Rapid Application Development — быстрая разработка приложений) для построения Web- и Windows-приложений. Эта техника сводится к перетаскиванию элементов управления с панели инструментов на форму, двойному щелчку по элементу и написанию кода, который обрабатывает события, связанные с этим элементом.

Компиляция и язык MSIL

.NET-приложения исполняются иначе, чем традиционные Windows-приложения. Такие программы компилируются фактически в два этапа. На первом этапе исходный код компилируется во время построения проекта и вместо исполняемого файла с машинными кодами получается сборка 2) (assembly), содержащая команды промежуточного языка MSIL (Microsoft Intermediate Languageпромежуточный язык Microsoft). Код IL сохраняется в файле на диске. При этом файлы MSIL (сокращенно IL), генерируемые компилятором, например, С#, идентичны IL-файлам, генерируемым компиляторами с других языков .NET. В этом смысле платформа остается в неведении относительно языка. Самой важной характеристикой среды CLR является то, что она общая; одна среда выполняет как программы, написанные на С#, так и программы на языке VB.NET.

Второй этап компиляции наступает непосредственно перед фактическим выполнением страницы. На этом этапе CLR транслирует промежуточный код IL в низкоуровневый собственный машинный код, выполняемый процессором. Процесс происходит следующим образом: при выполнении .NET-программы системы CLR активизирует JIT-компилятор, который затем превращает MSIL во внутренний код процессора. Этот этап известен как оперативная компиляция «точно к нужному моменту» (Just-In-Time) или JIT-компиляция (JIT’ing), и он проходит одинаково для всех приложений .NET (включая, например, приложения Windows). При исполнении программы CLR берет на себя управление памятью, контроль типов и решает за приложение ряд других задач. На рис.1.3. показан этот двухэтапный процесс компиляции.

Рис. 1.3. Схема компиляции .NET-приложения

Стандартный JIT-компилятор работает по запросу. Когда вызывается тот или иной метод, JIT-компилятор анализирует IL-код и производит высокоэффективный машинный код, выполняемый очень быстро. JIT-компилятор достаточно интеллектуален, чтобы распознать, был ли код уже скомпилирован, поэтому во время выполнения программы компиляция происходит лишь при необходимости. По ходу своего выполнения .NET-программа работает все быстрее и быстрее, так как повторно используется уже скомпилированный код.

Спецификация CLS подразумевает, что все языки платформы .NET генерируют очень похожий IL-код. Кроме того, при компилировании программы в дополнение к MSIL формируется еще один компонент — метаданные. Они описывают данные, используемые программой, и это позволяет коду взаимодействовать с другим кодом. В результате объекты, созданные на одном языке, доступны и могут наследоваться на другом. То есть можно создать базовый класс на языке VB.NET, а производный от него класс — на языке С#.

Цукерберг рекомендует:  Расчет стоимости - мое первое приложение

В целом при написании приложения создается так называемый управляемый код (managed code), который выполняется под контролем среды исполнения CLR-приложения, не зависящей от языка. Поскольку приложение запускается под контролем CLR, управляемый код должен соответствовать определенным требованиям (т. е. компилятор должен создать MSIL-файл, предназначенный для CLR, а также использовать библиотеки .Net Framework 3) ), при выполнении которых он получает множество преимуществ, включая современное управление памятью, способность совмещать языки, высокий уровень безопасности передачи данных, поддержку контроля версии и понятный способ взаимодействия компонентов программного обеспечения 4) .

Таким образом, компиляция .NET делится на два этапа с целью предоставления разработчикам удобных условий и мобильности. Перед созданием низкоуровневого машинного кода компилятору необходимо знать, в какой операционной системе и на каком базовом оборудовании будет функционировать приложение. Благодаря двум этапам компиляции можно создать скомпилированную сборку с кодом .NET и распределить ее более чем на одну платформу.

Конечно, компиляция не будет столь полезна, если ее выполнение будет необходимо каждый раз при запросе пользователем Web-страницы. К счастью, приложения ASP.NET не нужно компилировать всякий раз при запросе Web-страницы или Web-службы. Вместо этого код IL создается один раз и повторно генерируется только при изменении исходного кода. Подобным образом файлы собственного машинного кода кэшируются в системном каталоге с путем вроде С:\[WinDir]\Microsoft.NET\ Framework\[Version]\Temporary ASP.NET Files, где WinDir является каталогом Windows, a Version — номером установленной в данный момент версии .NET.

Каждое Web-приложение, разрабатываемое на основе ASP.NET состоит из информационной части, программного кода и сведений о конфигурации.

Информационная часть содержит статические и динамические элементы страницы и реализуется в виде Web-форм. Статические элементы представляют собой типичные элементы языка HTML, динамические же компонуются программным кодом приложения во время его выполнения (например, запросы к базе данных).

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

Сведения о конфигурации представляют собой файлы, содержащие параметры, определяющие способ исполнения приложения на сервере, параметры безопасности, реакцию приложения на возникающие ошибки и т. д.

Основным элементом Web-приложения является Web-форма (или Web-страница), которая, с одной стороны, похожа на Windows-форму, т. к. позволяет размещать внутри себя различные элементы управления, способные отображать данные и реагировать на действия пользователя, а с другой — представляет собой HTML-страницу, т. к. содержит все ее атрибуты. Описания элементов управления, упомянутых ранее, представляются в коде HTML-страницы в виде специальных тегов.

На рис.1.4. представлен пример простейшей страницы Web-приложения, содержащего всего лишь один элемент — кнопку. Как видно из рисунка, основой страницы является тело стандартного HTML-документа, внутри которого находится элемент form, а также кнопка button. Кроме того, в начале документа здесь присутствуют некоторые дополнительные элементы, которые будут рассмотрены позднее.

Рис. 1.4. Пример простейшей страницы Web-приложения

При запуске приложения данная страница отображается в окне браузера и выглядит следующим образом (рис.1.5.).

Рис. 1.5. Отображение страницы Web-приложения в окне браузера

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

Рис. 1.6. Файл, содержащий программный код Web-страницы

На самом деле при разработке Web-приложений на основе ASP.NET возможны два варианта организации Web-форм.

В первом случае весь код информационной части и программная часть хранятся в одном файле с расширением .aspx. Программный код при этом помещается в так называемые блоки сценариев. При этом со- храняется возможность использования всех принципов современного программирования, таких как реакция на события элементов управле- ния, подпрограммы и т.д. Эту модель целесообразно использовать при со- здании простых Web-приложений, поскольку в этом случае все хранится в одном пакете.

Во втором случае каждая Web-страница разделяется на две части: Web-форму и файл, содержащий программный код. При этом форма, как и в первом случае, сохраняется в файле с расширением .aspx, а программный код — в файле с расширением .cs. Такая модель обеспечивает лучшую организацию элементов Web-приложения за счет отделения пользовательского интерфейса от программной логики.

В примере, рассмотренном ранее, Web-страница разделена на две части, при этом форма и программный код хранятся в разных файлах.

В следующем примере, изображенном на рис.1.7., показана аналогичная предыдущей Web-страница, в которой форма и программный код объединены в одном файле.

Рис. 1.7. Пример Web-формы, содержащей описание формы и программный код в одном файле

Изучив этот пример, можно описать типовой сценарий взаимодействия элементов Web-приложения друг с другом и с клиентом, осуществляющим запрос формы этого приложения (рис 1.8).

Рис. 1.8. Типовой сценарий взаимодействия элементов Web-приложения с клиентом

Как видно из рис.1.8, при обращении клиента к Web-приложению последнее запускается на сервере IIS. Запущенное приложение формирует отклик. Для этого на сервере создается экземпляр запрошенной Web-формы, она генерирует HTML-текст отклика, который и передается браузеру клиента. Сразу после этого экземпляр Web-формы уничтожается. Пользователь, получив HTML-страницу, сгенерированную приложением, имеет возможность заполнять различные поля формы (тестовые поля, переключатели и т. п.). После заполнения всех необходимых полей формы пользователь инициирует отправку данных, введенных им в страницу, обратно на сервер. Это происходит за счет использования технологии обратной отсылки, которая вызывается при выполнении определенных действий (например, нажатия на кнопку). Получив данные от пользователя, сервер создает новый экземпляр Web-формы, заполняет его полученными данными и обрабатывает все необходимые события. По окончании обработки сервер формирует HTML-код ответа и отправляет его клиенту, а затем уничтожает экземпляр Web-формы. Более подробно описанный сценарий изображен на рис. 1.9 и 1.10


Рис. 1.9. Подробный сценарий взаимодействия элементов Web-приложения с клиентом при первом запросе

Рис. 1.10. Подробный сценарий взаимодействия элементов Web-приложения с клиентом при запросе обратной отсылки

В момент окончания работы с Web-приложением пользователь либо закрывает браузер, либо переходит на другую интернет-страницу. В этот момент завершается сеанс работы пользователя с данным приложением, однако само приложение может быть завершено сервером не сразу после окончания последнего сеанса работы пользователя. Это связано с управлением распределением памяти платформой .NET Framework, которая основана на периодической проверке ссылок объектов. Если в результате такой проверки обнаружится, что объект больше не используется, сервер уничтожает его, освобождая таким образом занимаемую им память. Поэтому нельзя точно сказать, когда именно наступит событие Application_End для данного Web-приложения.

Такой принцип организации выполнения Web-приложений хорошо подходит для масштабируемых приложений с интенсивным сетевым обменом. Однако у него есть и недостатки. В частности, оказывается невозможным сохранять данные, принадлежащие форме, даже в течение работы пользователя с приложением. Т. е. если мы захотим создать некую переменную, хранящую, например идентификатор заказа, с которым мы в данный момент работаем, сделать это будет невозможно, т. к. форма после отправки клиенту сразу же уничтожается. Чтобы обойти этот недостаток, ASP.NET использует специальный механизм для сохранения данных, введенных в элементы управления Web-формы. Согласно этому принципу, в рамках каждого запроса на сервер отправляются все данные, которые были введены в элементы управления. При этом, как уже упоминалось выше, на сервере возникает событие Page_Init, целью которого является создание Web-формы и ее инициализация. В процессе инициализации в элементы управления созданной формы записываются переданные от клиента данные. Теперь эти данные становятся доступны приложению посредством обработки события Page_Load, возникающего при каждом обращении к странице.

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

Итак, при запросе страницы прежде всего инициируется событие Page_Init, которое производит начальную инициализацию страницы и ее объекта. В рамках обработки данного события программист может разместить код, осуществляющий начальную инициализацию страницы. Тем не менее это событие нельзя использовать для инициализации элементов управления, размещенных на странице, так как они еще не созданы.

После этого инициируется событие Page_Load. Большинство Web-страниц используют это событие для выполнения инициализации, например, заполнения полей данными, установки начальных значений для элементов управления и т. д. Кроме того, в процедуре обработки данного события возможно определение того, была ли загружена страница впервые или обращение к ней осуществляется повторно в рамках технологии обратной отсылки, произошедшей в результате нажатия пользователем кнопки либо другого элемента управления, размещенного на странице. В английской терминологии обратная отсылка данных на сервер называется post back. Для определения текущего состояния страницы необходимо проверить свойство Page.IsPostBack, которое будет иметь значение false при первом запуске страницы. Определение того, производится ли первое обращение к данной странице либо повторное, важно, так как позволяет производить инициализацию только в том случае, когда страница запрашивается впервые. Так, например, при обратной отсылке данных на сервер не только нет необходимости производить инициализацию, устанавливая начальные значения элементов управления, но это даже может быть ошибкой, так как эти элементы управления должны получить значения, переданные им от пользователя. В дальнейшем, в случае, если для страницы была произведена обратная отсылка, вызываются события элементов управления, размещенных на странице. Эти события запоминаются в тот момент, когда пользователь производил действия с элементами управления в окне браузера, а при передаче данных на сервер исполняются по порядку.

После вызова события Page_Load происходит так называемая проверка достоверности страницы. Необходимость такой проверки возникает тогда, когда пользователь ввел в элементы управления, расположенные на странице, данные, которые впоследствии необходимо сохранить или использовать для обработки. В идеале проверка достоверности должна происходить на стороне клиента, чтобы пользователь был проинформирован о проблемах с вводом данных перед их отправкой на сервер, т. к. это позволяет уменьшить объем информации, передаваемой по сети, и ускорить процесс обмена данными с сервером. Однако, независимо от того, была ли произведена проверка достоверности данных на стороне клиента или нет, ее необходимо осуществлять и на стороне сервера. Осуществление проверки достоверности — достаточно сложная задача. Сложность эта обусловлена различием моделей клиентского и серверного программирования. В ASP.NET существует несколько элементов управления проверкой достоверности. Они выполняют автоматическую клиентскую и серверную проверку. В случае, если проверка достоверности выявила ошибки во введенных данных, ASP.NET уведомит об этом пользователя и не позволит осуществлять дальнейшую работу со страницей до устранения ошибок. Более подробно организация проверки достоверности рассматривается в лекции 5.

Следующим шагом обработки Web-формы является обработка всех событий, инициированных пользователем с момента последней обратной отсылки. Для иллюстрации этого приведем пример.

Пусть у нас существует страница с кнопкой (Button) «Отправить» и текстовым полем (TextBox) без автоматической обратной отсылки. При изменении текста в текстовом поле и щелчке на кнопке «Отправить» инициируется обратная отправка данных страницы на сервер (этого не произошло при изменении текста в текстовом поле, так как соответствующая опция этого элемента управления AutoPostBack установлена в false). В момент обратной отправки страницы на сервер ASP.NET запускает следующие события:

В результате обработки всех инициированных событий генерируется HTML-код страницы, который и передается клиенту, после чего выполняется Очистка, в рамках которой инициируется событие Page_Unload. Оно предназначено для освобождения ресурсов, занятых данной страницей. Событие Page.PreRender инициируется после того, как сервер обработал все события страницы, но генерация ее HTML-кода еще не произошла. Обычно это событие используется ASP.NET для привязки элементов управления к источникам данных непосредственно перед созданием HTML-кода и отправкой его клиенту.

Описанная последовательность событий позволяет создать описание жизненного цикла Web-страницы, изображенного на рис 1.11.

Рис. 1.11. Жизненный цикл страницы ASP.NET

Вернемся, однако, к проблеме сохранения данных страницы в промежутке между обращениями к ней. Для реализации этого механизма в ASP.NET используются состояния отображения (view state). Состояние отображения Web-формы доступно только внутри этой Web-формы. Если необходимо сделать данные, введенные в Web-форму, доступными другим Web-формам одного и того же приложения, эти данные необходимо сохранить в объектах с более глобальной областью видимости, которые называют переменными состояния. Объектов переменных состояний два: Application и Session. Переменные состояния Application доступны всем пользователям приложения и могут рассматриваться как глобальные переменные, обращение к которым возможно из любых сеансов. Переменные состояния Session доступны только в рамках одного сеанса, и поэтому они оказываются доступными только одному пользователю. В переменных состояния можно хранить данные любого типа. В силу того, что переменные состояния фактически являются глобальными переменными, для работы с ними желательно выработать стратегию их использования в приложении.

Более подробно работа с состояниями отображения и переменными состояния будет рассмотрена в разделе «Класс Page» в лекции 2.

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

Существует несколько технологий разработки информационных систем, ориентированных на Интернет. Одной из наиболее мощных технологий является ASP.NET. Web-приложения, разработанные на основе ASP.NET работают исключительно в среде IIS платформы Windows. ASP.NET является частью инфраструктуры .NET Framework. Данная архитектура является основой для построения современных приложений, ориентированных на работу в среде Windows, и может использовать любой из совместимых языков программирования для написания программного кода. Особенностью .NET Framework является то, что различные модули одной и той же программной системы могут быть написаны на различных языках программирования. Одним из важнейших элементов данной архитектуры является наличие сборщика мусора, осуществляющего очистку неиспользуемых областей памяти и избавляющего программиста от проблемы «утечки памяти».

Каждое Web-приложение ASP.NET состоит из 3 частей: информационной, программного кода и сведений о конфигурации. Информационная часть включает в себя описание страницы в формате HTML и содержит как элементы языка гипертекстовой разметки документа, так и элементы ASP.NET. Программный код реализует бизнес-логику, оформленную в виде процедур обработки данных. Этот код исполняется сервером и взаимодействует с динамическими элементами информационной части, позволяя динамически формировать содержимое страницы, передаваемой клиенту. Сведения о конфигурации содержат параметры, определяющие способ исполнения приложения на сервере, параметры безопасности, реакцию на возникающие ошибки и др.

Типовой сценарий взаимодействия Web-приложения с другим Web-приложением и с клиентом выглядит следующим образом: клиент посылает запрос на открытие страницы Web-приложения, Web-сервер осуществляет запуск приложения, создает экземпляр запрашиваемой клиентом формы, исполняет программный код, связанный с формой, формирует HTML-текст отклика, который и передает браузеру клиента, после чего уничтожает Web-форму. Пользователь просматривает переданную ему сервером страницу, при необходимости вводит данные в расположенные на ней поля ввода и инициирует их отправку на сервер. Сервер создает новый экземпляр формы приложения, заполняет поля данными, полученными от клиентского компьютера, формирует HTML-текст отклика и передает его клиенту.

1) Благодаря архитектуре среды CLR в качестве операционной системы может выступать любая версия Unix и вообще любая ОС. 2) Сборка (assembly) – это коллекция файлов, которая предстает перед программистом в виде единой библиотеки динамической компоновки (DLL) или исполняемого файла (EXE). В технологии .NET сборка является базовой единицей для повторного использования, контроля версий, защиты и развертывания. Среда CLR представляет программисту ряд классов, позволяющих манипулировать сборками. 3) Библиотека классов .NET открывает доступ ко всем возможностям CLR. Классы, составляющие эту библиотеку, организованы при помощи пространств имен. Каждое пространство имен заключает в себе классы, выполняющие близкие функции. 4) Альтернативой управляемому коду является неуправляемый код, который не выполняется CLR. Однако до появления .NET Framework все Windows-программы использовали именно неуправляемый код.

.NET Developer

C#/.NET разработчик – это программист, который использует в своей работе технологии платформы .NET. Платформа Microsoft .NET Framework состоит из большого количества инструментов для разработки и технологий, используя которые разработчик может создавать различные типы приложений, от обычных настольных приложений и сайтов, заканчивая решениями для мобильных платформ и компьютерными играми. В основе платформы Microsoft .NET Framework лежит язык программирования C#. Именно этот язык программирования в подробностях должен освоить .NET разработчик.

Язык программирования C# более десяти лет занимает лидирующие позиции во всех рейтингах языков программирования. Так, как рынок труда активно развивается, программисты, которые хорошо знают C# и технологии .NET, являются очень востребованными. .NET разработчики способны развивать логическую последовательность команд для связи с сетями, приложениями и базами данных. От них требуется знание объектно-ориентированного проектирования и программирования с использованием систем, баз данных, а также языков программирования, которые разрабатывают программные приложения с .NET Framework. Сюда входят знания и навыки программирования на языке C#, XML и создание баз данных приложений, таких как Microsoft SQL Server.

Например, разработка интернет магазинов, форумов, онлайн сервисов, потребует знаний языка программирования, который способен реализовать полноценное взаимодействие с сайтом: организовать работу с базой данных, принять и обработать данные пользователя. Это означает, что для реализации полноценного сайта «под ключ», Вам понадобится создать не только разметку с динамическими эффектами, но и позаботиться о полноценном взаимодействии пользователя с сайтом.

Знакомство с программной платформой .NET Framework начинается с видео уроков по языку программирования С# (c sharp): С# Starter, С# Essential и С# Professional. Далее слушателю предлагается набор видео курсов, посвящённых работе с базами данных: SQL Essential, SQL Практикум, Entity Framework 5 и 6.

Только после освоения одного уровня, стоит переходить ко второму, к обучению более сложных и узконаправленных технологий. В качестве дополнительных материалов, рекомендуется просмотреть такие видео курсы: Алгоритмы и структуры данных, Рефакторинг .NET приложений, TDD (разработка через тестирование) и WCF Essential (Windows Communication Foundation). Каждый из перечисленных видео курсов направлен на расширение базовых знаний о платформе .NET Framework и составлен в полном соответствии с современными требованиями ведущих IT компаний к разработчикам программного обеспечения.

Требования к C#/.NET разработчику:

  • Владение языком программирования C#
  • Владение ООП
  • Знание технологий работы с базами данных
  • Практический опыт работы с MS SQL Server
  • Навык использования Transact-SQL
  • Знание Entity Framework
  • Базовый уровень знаний и опыт работы с .NET Framework
  • Знание технологии WCF
  • Базовый уровень знаний технологии ASP.NET MVC
  • Знание и умение применять средства коллективной работы, умение читать и понимать чужой код
  • Английский язык на уровне чтения технической документации (углубленные знания будут преимуществом)
  • Знания основ командной разработки SCRUM или Agile

C#/.NET разработчик может занимать такие должности:

BestProg

Пример создания Web -приложения в C#

Содержание

Условие задачи

Дано три стороны треугольника: a , b , c .

Используя формулу Герона, разработать приложение, которое находит площадь треугольника. Приложение реализовать как Web-application .

Формула Герона имеет вид:

где p – полупериметр:

a, b, c – длина сторон треугольника.

Выполнение

1. Запустить MS Visual Studio

Пример создания приложения в MS Visual Studio по шаблону Windows Forms Application подробно описывается в теме:

2. Создание Web-приложения

Приложения типа Web могут вызываться из любого компьютера, подключенного к сети Internet. Для открытия такого приложения используется Web -браузер (например Opera , Google Chrome , Internet Explorer и другие).

Ниже указаны два способа создания Web -приложения в MS Visual Studio .

2.1. Создание Web-приложения (способ № 1)


Для этого способа, чтобы создать Web -приложение, нужно сначала вызвать команду (рис. 1):

Рис. 1. Команда создания нового веб-сайта

В открывшемся окне (рис. 2), нужно выбрать шаблон « C#» и вложение « ASP .NET Empty Web Site «. Можно также указать путь, где будут созданы рабочие файлы приложения (кнопка « Browse… «).

Цукерберг рекомендует:  Вакансии ПАО Газпром нефть

Например, в нашем случае, файлы будут сохраняться в папке

Место расположения файлов указывается в поле « Web-location» . Доступны три способа размещения файлов:

  • файловая система ( File system );
  • http -соединение;
  • ftp -соединение.

Выбираем « File system «. В этом случае файлы приложения будут размещаться на локальном сервере ( localhost ), который создается системой. Это означает, что программа-клиент (наше приложение) и программа-сервер (условно отдаленный компьютер в сети) размещены на одном и том же (домашнем) компьютере. Фактически localhost – это IP -адрес, с помощью которого компьютер может обратиться в сети к самому себе, независимо от наличия или вида компьютерной сети.

Рис. 2. Создание Web-сайта

2.2. Создание Web-приложения (способ № 2)

Существует также и другой способ создания Web -приложения с помощью команды (рис. 3)

Рис. 3. Команда создания нового проекта

После этого откроется окно (рис. 4), в котором нужно выбрать шаблон « Visual C# » и тип проекта « ASP .NET Web Application «.

Рис. 4. Команда создания Web-приложения

3. Создание приложения как веб-сайта

Для решения задачи выбираем первый способ.

После выполненных операций создается решение ( Solution ), в котором есть один проект типа веб-сайт (рис. 5).

Рис. 5. Окно « Solution Explorer » после создания веб-сайта

Если запустить на выполнение данный проект, то внизу в правой части экрана ( SySTray ) отобразится окно загруженного локального сервера (рис. 6).

Рис. 6. Загрузка локального сервера для выполнения приложения

Следующим отобразится окно, изображенное на рисунке 7. В этом окне нужно подтвердить на кнопке « ОК «, чтобы модифицировать файл « Web.config » таким образом, чтобы можно было выполнять наше приложение.

Рис. 7. Запрос к модификации файла « Web.config «

В результате запуска, в активном веб-браузере откроется страница с приблизительно таким текстом (рис. 8):

Рис. 8. Текст, который выводится в веб-браузере

Для завершения работы приложения, нужно в MS Visual Studio вызвать команду « Stop Debugging » из меню « Debug «.

4. Добавление формы к приложению

Добавим новую форму к Web -приложению.

Для этого нужно выделить название приложения в Solution Explorer , сделать клик правой кнопкой «мыши» и в контекстном меню выбрать команду « Add New Item… » (рис. 9).

Рис. 9. Команда « Add New Item… «

Существует и другой способ добавления формы – вызов команды « Add New Item… » из меню « Website «.

В результате откроется окно « Add New Item «. В этом окне нужно выбрать шаблон « Visual C# » и элемент « Web Form » (рис. 10). Имя формы ( Name ) оставляем без изменений « Default.aspx «.

Рис. 10. Добавление новой формы

После добавления, в Solution Explorer можно увидеть дополнительные два файла (рис. 11):

  • « Default.aspx » – файл формы в терминологии HTML языка разметки гипертекста;
  • « Default.aspx.c s» – файл формы, который отвечает программному коду на языке C# .

С помощью этих двух файлов можно изменять внешний вид формы и организовывать работу в ней.

Рис. 11. Файлы формы « Default.aspx » и « Default.aspx.cs «

С помощью кнопок Design и Source можно переключаться между режимом проектирования и режимом кода страницы Default.aspx (рис. 12).

Рис. 12. Режимы проектирования ( Design ) и кода ( Source )

5. Конструирование формы

Согласно с условием задачи, форма должна содержать следующие элементы управления:

  • три поля ввода для ввода значений a , b , с ;
  • текстовые строки для вывода сообщений;
  • кнопку для задания начала вычисления;
  • текстовую строку, выводящую результат вычисления.

5.1. Изменение размеров формы

Переходим в режим проектирования с помощью кнопки « Design » (рис. 12).


С помощью «мышки» увеличиваем размер формы, как показано на рисунке 13 (необязательно).

Рис. 13. Изменение размеров формы в режиме проектирования

5.2. Формирование информационных сообщений и вывод на форму элементов управления

С помощью «мышки» можно выносить на форму различные элементы управления. Работа с Web -формой есть точно такая же как и с формой типа Windows Forms . Текст на форме можно вносить непосредственно.

Для нашей задачи нужно вынести на форму следующие элементы управления:

  • три элемента управления типа Label для обозначения « а = «, « b = «, « c = «;
  • один элемент управления типа Button ;
  • три элемента управления типа TextBox ;
  • один элемент управления типа Label для вывода результата.

При вынесении элемента управления в правой нижней части экрана (окно Properties ) можно изменять свойства элементов управления (рис. 14).

Рис. 14. Изменение свойств элементов управления Web -формы

В целом, после построения, форма приложения должна иметь вид как показано на рисунке 15.

Рис. 15. Форма приложения в режиме проектирования

6. Программирование события клика на кнопке « Calculate «

Последним шагом есть программирование события, которое будет генерироваться при клике на кнопке « Calculate «. Для Web -приложений это осуществляется стандартным для MS Visual Studio способом. Программный код обработки события будет сформирован в файле « Default.aspx.cs «.

Таким образом, выделяем элемент управления Button1 . В списке свойств Properties переходим к вкладке Events . В вкладке Events делаем двойной клик «мышкой» напротив названия события « OnClick «. Система откроет файл « Default.aspx.cs » со следующим кодом:

В обработчик события Button1_Click(…) вводим код расчета площади треугольника по трем сторонам. В целом текст модуля « Default.aspx.cs » будет иметь вид.

После запуска приложения на выполнение можно проконтролировать его работу в Web -браузере (рис. 16).

Рис. 16. Выполнение Web -приложения в браузере Opera

После этого можно выносить приложение на Web-сервер. Но это уже другая тема.

Как создать сайт для мобильных телефонов с помощью asp.net(С#)

Есть ли какой-либо инструмент для разработки мобильных веб-сайтов с использованием asp.net(С#). или какой-либо другой инструмент.

Те же инструменты, что и на других веб-сайтах в С#: обычно Visual Studio. Мобильный сайт отличается только в представлении и в некоторых возможностях (например, javascript/css может быть ограничен), но функционально он такой же, как «немобильный» сайт.

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

Есть ли у вас конкретная проблема, которую вы не можете решить?

Если вы собираетесь разрабатывать веб-сайт для мобильных телефонов (в отличие от собственного приложения), тогда язык на стороне сервера не имеет большого значения. Это больше зависит от платформы css и клиентской стороны (если она есть).

Разработка приложений на C# для Android

Monodroid и Monotouch это фреймворки от xamarin, которые дают возможность разрабатывать приложение на языке C# для Android и iOS соответственно. Это относительно новая технология информации в интернете не слишком много (за исключением официального сайта и большого количества тем на stackoverflow.com), на русском языке о ней практически нет никакой информации.

Что бы устранить это недоразумение решил написать небольшой туториал о том как начать разрабатывать приложения под мобильные платформы при помощи этих фреймворков. В этой статье я рассмотрю только Monodroid.

Что нужно для начала разработки?
1) Visual studio C# версии professional и выше (пойдет и крякнутая)
2) Сам фреймворк (а он, в свою очередь установит за нас и джаву, и виртуальную машину и все остальное)

Если с первым все понятно, то со вторым сложнее- как оказалось в процессе использования фришная версия монодроида не умеет компилировать .apk файлы, так что стоит либо его купить, либо воспользоваться кряком из интернета (который лежит далеко не на первой странице гугла).

Запустив после установки всего необходимого студию мы заметим новые типы проектов для создания:

Выбираем Android Application. Будет создано несколько стандартных директорий:

В папке Assets хранятся все используемые программой файлы аля видео, звуков, хтмл файлов и т.д. Изначально в ней ничего нет кроме текстовика с описанием самой директории и для чего она нужна.

В папке Drawable нужно размещать файлы изображений, используемые программой.

Папка Layout содержит файлы графического интерфейса.

В папке Values различные параметры, которые можно создавать и загружать при работе приложения (к примеру можно запомнить логин и пароль туда).

После создания пустого проекта мы можем его скомпилировать, нажав F5 — откроется настройки виртуальной машины с выбором устройства на котором запускать тест программы. Если подсоединить свой девайс на андроиде со включенной функцией отладки по USB (это в настройках, вкладка ) то можно запустить и потестить непосредственно на нем. Очень советую проводить тесты на реальном устройстве т.к. многие тач элементы нельзя протестировать на виртуалке, к тому же, лично у меня на виртуальной машине приложение развертывается довольно долго. Между компиляцией и запуском на виртуалке проходит около минуты.

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

Откроем файл интерфейса и попробуем его поменять.

Снизу 2 вкладки- просмотр кода интерфейса и самого интерфейса. Справа- различные компоненты.
Сразу скажу: пользоваться встроенной формоклепалкой это не для слабонервных. Она на столько лагуча и делает не то, что ожидаешь что просто ужас. Вместо этого можно пользоваться сайтом droiddraw.org/ после составления интерфейс там и нажатие на кнопку Generate можно скопипастить код во вкладку кода и все будет ок.

А в прочем, самый лучший способ это создавать интерфейс из кода, посредством формул исходя из соотношений разрешения экрана. Без этого нормальный интерфейс, привлекательно смотрящийся на всех экранах создать сложно.
Однако, пока пойдем по простому пути.

Есть несколько типов расположения объектов на экране- типов слоев. При этом многие из них могут содержать друг друга и уживаться вместе. Рассмотрим из них:

1) LinearLayout — каждый элемент ниже предыдущего.
2) RelativeLayout — каждый элемент находится по отношению к предыдущему (к примеру, можно задать параметр находиться слева от кнопки1, снизу от текстбокса, в отступе в 40 пикселей снизу от кнопки 2 и т.д.

Настройки каждого компонента у нас в окне свойств- все довольно привычно, а сами свойства схожи с винформ элементами.

Создав более или менее привлекательный интерфейс его надо как то запустить.
Для этого существует Activity. По умолчанию у нас файл с названием Activity1, в котором класс- наследник от класса Activity.

Строка над объявлением класса —

описывает заголовок окна приложения, иконку и узнает запускать ли эту активити при запуске приложения.
Из основной автозапускаемой активити можно запустить любую другую. После автозагрузки данной активити после старта приложения мы загружаем интерфейс строкой SetContentView(Resource.Layout.Main);

Для получения доступа к любому элементу мы должны воспользоваться функцией FindViewById<>(); при присвоении экземпляру класса таго элемента, который нам нужен. Конкретно в нашем примере мы видим строчку


это название кнопки, посмотреть его можно при создании интерфейса во вкладке код.

Посредством простой конструкции Button button = FindViewById(Resource.Id.MyButton);
мы можем работать с кнопкой и обрабатывать все действия с ней. В данном случае обработчик клика выглядит так:

Спроектировав и написав приложение мы моем скомпилировать apk файл посредством перехода во вкладку построение и нажатии кнопки Package for android. В папке проекта появится 2 файла, один из которых подписан автоматической подписью- его мы и можем использовать для установки па устройство.

На этом, думаю, этот краткий туториал можно закончить. В будущем скорее всего напишу подобный туториал по портированию и разработке на iOS.

IT Notes

четверг, 26 августа 2010 г.

Основы Asp.Net – Часть 3

В этой статье мы создадим наше первое приложение на ASP.NET.

Первое приложение ASP.NET

Перед тем как завершить эту вводную часть, давайте произведем следующую операцию: откроем файл default.htm и внесем в него следующие изменения (не забудем добавить к расширению файла ASP букву x):

Затем изменим расширение нашего файла ASP на * .aspx и запустим наше при­ложение снова. Как можно убедиться, все будет работать так же, как и раньше.

Нас можно поздравить! Мы только что создали первое приложение ASP.NET. Это было не очень сложно — достаточно было изменить расширение файла классических ASP с * .asp на *.aspx. Вывод напрашивается сам собой — то, что мы ис­пользовали в нашем файле классических ASP, используется и в ASP.NET. Одна­ко, конечно же, в ASP.NET достаточно много отличий от технологии классичес­ких ASP. Многие из этих различий (как и общие возможности ASP и ASP.NET) мы сейчас рассмотрим.

Некоторые проблемы классических ASP

Классические ASP — это очень популярная архитектура создания web-приложе­ния, однако она не лишена недостатков. Главный недостаток классических ASP заключается в том, что в них используются языки скриптов. Несмотря на всяческие хитрые приемы (например, кэширование откомпилированных скриптов для более быстрого повторного выполнения), языки скриптов — это большой проиг­рыш как в производительности (поскольку они являются интерпретируемыми), так и в возможностях (поскольку в них не поддерживаются многие технологии объектно-ориентированного программирования).

Еще одно неудобство классических ASP связано с тем, что в них код HTML смешан с кодом скриптов. В принципе, классические ASP позволяют размещать код HTML отдельно от кода скриптов, но суть дела от этого не меняется: логика представления (код HTML) не отделена от бизнес-логики (то есть от собственно исполняемого кода).

Еще один момент, знакомый любому web-разработчику, использующему ASP, заключается в том, что из проекта в проект приходится переносить одни и те же повторяющиеся блоки кода скриптов. В большинстве web-приложений требуется выполнять одни и те же действия: проверять данные, вводимые пользователем, обеспечивать форматирование HTML и т. п. Гораздо удобнее было бы использовать уже готовые решения, а не копировать код скриптов из одного проекта в другой.

Некоторые преимущества ASP.NET

В ASP.NET устранены многие недостатки классических ASP. Например, в файлах ASP.NET (*.aspx) языки скриптов не используются. Вместо этого мы можем применять обычные полнофункциональные языки программирования, такие как С#, JScript.NET или Visual Basic.NET. В результате любые богатейшие возможности объектно-ориентированного программирования можно применять непосредственно в web-приложениях. На страницах ASP.NET можно использовать как типы из библиотеки базовых классов .NET, так и типы из пользовательских сборок.

Кроме того, в приложениях ASP.NET количество кода, которое приходится писать вручную, резко сокращается. Например, при помощи серверных объектов WebControls мы можем автоматически генерировать код элементов управления HTML, который будет передаваться браузеру пользователя. Другие объекты WebControls могут быть использованы для реализации проверки вводимых пользователем данных (в результате нам не нужно будет создавать браузерные клиентские скрипты вручную).

Кроме этого, применение ASP.NET предоставляет в распоряжение разработчика множество мелких, но очень привлекательных удобств. Например, создание приложений ASP.NET производится в стандартной среде разработки Visual Stu­dio.NET, возможности которой (в том числе в отношении удобства отладки) дале­ко превосходят то, что было реализовано в Visual InterDev.

Пространства имен ASP.NET

в библиотеке базовых классов .NET предусмотрено множество пространств имен, которые имеют отношение к созданию web-приложений. Эти пространства имен можно отнести к трем основным группам: основные элементы web-приложений (например, типы для работы с протоколом НТТР, типы системы безопасности и т. п.), элементы графического интерфейса (элементы управления WebForms) и web­-службы (о них речь пойдет немного позднее). Исчерпывающее рассмотрение каждой из этих групп потребовало бы нескольких отдельных книг, однако с главными типа­ми этих пространств имен мы познакомимся и поработаем на примерах. Наиболее важные пространства имен, типы из которых используются для создания приложений ASP.NET, представлены в табл. 2.

Таблица 2. Пространства имен ASP.NET

Пространство имен Описание

System.Web в этом пространстве имен определены наиболее важные типы для организации взаимодействия между браузером и web-сервером (запрос и ответ, работа с cookie, передача файлов и т.п.)

System.Web.Caching В этом пространстве имен представлены типы для поддержки кэширования при работе web-приложений

System.Web.Configuration Типы этого пространства имен позволяют настроить web-приложение в соответствии с файлами конфигурации проекта

System.Web.Security Реализация системы безопасности web-приложений

System.Web.Services В этих пространствах имен представлены типы для

System.Web.Services.Description построения web-служб

System.Web.UI Типы этих пространств имен нужны для построения System.Web.UI.WebControls графического интерфейса пользователя web-приложений

Наиболее важные типы пространства имен System.Web

В пространстве имен System.Web определен минимальный набор типов, которые позволяют организовать взаимодействие между браузером клиента и web-серве­ром. Перечень этих типов представлен в табл. 3.

HttpResponse Объекты этого класса используются для создания ответа НТТP, передаваемого web-сервером клиенту (например, страниц HTML)

Таблица 3. Наиболее важные типы пространства имен System.Web

HttpAppication Этот класс определяет члены, которые являются общими для всех приложений ASP.NET. Класс, производный от HttpAppication, определен в файле global.asax

HttpAppicationState Этот класс позволяет определять общую информацию приложения ASP.NEТ для множества запросов, сеансов и каналов передачи данных

HttpBrowserCapabilities Этот класс позволяет собирать информацию о возможностях браузера, при помощи которого клиент обращается к web-серверу

HttpCookie Обеспечивает безопасный способ для работы с множеством объектов НПР cookie

HttpRequest Объекты этого класса обеспечивают прием информации, передаваемой клиентом

HttpResponse Объекты этого класса используются для создания ответа НТТP, передаваемого web-сервером клиенту (например, страниц HTML)

Приложение и сеанс подключения пользователя

Web-приложение — это набор взаимосвязанных файлов, которые расположены в виртуальном каталоге. В ASP.NET предусмотрен тип HttpApplication, который представляет методы, свойства и события, общие для всех web-приложений. В файле global.asax определен тип Global, который является производным от HttpApplication.

С классом HttpApplication тесно связан класс HttpApplicationState. Этот класс позволяет предоставлять общую информацию приложения в совместное использование множеству сеансов подключения. Сеанс подключения (session) можно рассматривать как взаимодействие одного пользователя в данный конкретный момент с web-приложением. Например, если с нашим приложением Cars в дан­ный конкретный момент работает 20 000 пользователей, то это значит, что к нему открыто 20 000 сеансов.

В ASP.NET для каждого открытого сеанса хранится своя уникальная информация, представленная при помощи типа HttpSessionState. Можно сказать, что каждому пользователю выделена область оперативной памяти, в которой хранятся промежуточные результаты его взаимодействия с web-приложением.

В классических ASP понятия приложения и сеанса представлены двумя отдельными типами (Application и Session). В ASP.NET они представлены вложенными типами HttpApplicationState и HttpSessionState, доступ к которым производится через свойства Application и Session типов, производных от Page.

Создание простого, web-приложения на С#

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

Первое, что нужно сделать, — создать новый проект С#, выбрав для него шаблон WebApplication. Мы назовем этот проект FirstWebApplication.

После того как создание проекта будет завершено, перед нами откроется шаблон времени разработки. Этот шаблон действует, как обычный шаблон Windows Forms, представляя графический интерфейс создаваемого нами файла *.aspx. Главное отличие заключается в том, что мы используем элементы управления не Windows Forms, а Web Form Controls, основанные на коде HTML. Обратите также внимание, что по умолчанию этой странице присвоено имя WebForm1. Учитывая, что к этой странице будут обращаться «из внешнего мира», лучше переименовать ее в default.aspx.

Если же мы откроем Internet Services Manager, то сможем убедиться, что на сервере IIS появился новый виртуальный каталог FirstWebAppLication. Как можно убедиться, каждый файл, который мы добавим в наш проект, будет по­мещен в этот виртуальный каталог. Физически этому виртуальному каталогу будет соответствовать каталог FirstWebAppLication в подкаталоге :\Inetpub\wwwгооt.

Исходный файл * .aspx

Если мы откроем автоматически сгенерированный файл *.aspx, то найдем в нем минимальный набор тегов с единственной формой:

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих