- •Минск, бгу,
- •Глава 1. Компьютерные сети и протоколы
- •Глава 2. Проектирование и разработка сайтов……………………….62
- •Глава 3. Краткий обзор основных технологий разработки Веб приложений…………………………………………………………..……......90
- •Глава 4. Информационный обмен, html и css.…..……………….132
- •Глава 5. Язык JavaScript………………………………………………..202
- •Глава 6. Язык серверных скриптов php…………...…………………286
- •Глава 7. Лабораторные работы……………………..………………….400
- •Введение Коротко об истории Интернет
- •Как работает Интернет?
- •Система адресации
- •Способы подключения к сети
- •Сервисы Интернет
- •Электронная почта
- •Передача файлов по ftp
- •Всемирная паутина www
- •Глава 1. Компьютерные сети и протоколы
- •Локальные сети
- •Распределенные и глобальные сети
- •Сеть vpn
- •Адресация в локальных сетях
- •Адресация в глобальных сетях и в Интернет
- •Адресация в iPv6
- •Доменные имена
- •Url адреса
- •Понятие и краткое описание протоколов
- •Соотношение между tcp/ip и osi/iso
- •Межсетевой протокол iPv4
- •Формат пакета iPv6
- •Формат заголовка пакета iPv6
- •Заголовки расширения iPv6
- •Маршрутный заголовок
- •Транспортный протокол tcp
- •Протокол дейтаграмм udp
- •Протоколы arp и rarp
- •Протоколы сетевого уровня
- •Протоколы электронной почты
- •Протоколы smtp и pop3
- •Протокол imap4
- •Протокол ftp
- •Протокол передачи гипертекстов
- •Клиентский запрос http
- •Ответ сервера
- •Развитие прикладных протоколов: rpc, rest, soap
- •Безопасность в сети
- •Протокол ssl
- •Шифрование данных
- •Установление подлинности участников
- •Реализация ssl
- •Как избежать блокирования сайтов
- •Проблемы с кодировкой и Unicode
- •Задания для подготовки рефератов
- •Адресация в iPv6.
- •Глава 2. Проектирование и разработка сайтов
- •2.1. Виды сайтов
- •2.2. Этапы проектирования и разработки сайта
- •2.3. Модели проектирования и управление проектами
- •2.3.1 Модель водопада для управления проектами
- •2.3.2 Итерационная (спиральная) модель
- •2.3.3 Технология Microsoft Solutions Framework (msf)
- •2.3.4 Другие технологии управления проектами
- •2.4. Программные средства управления проектами
- •2.5.1. Стили сайтов
- •2.6. Логическое проектирование дизайна сайта
- •2.7. Главная страница сайта
- •2.8. Внутренние страницы сайта
- •2.9. Оценки качества Веб-сайтов
- •2.9.1. Оценки качества для e-commerce
- •2.9.2. Ключевые индикаторы для e-commerce
- •2.9.3. Определение качества и рейтинга сайтов учебных заведений
- •2.9.4. Оценка качества и стоимости сайта
- •Глава 3. Краткий обзор основных технологий разработки Веб-приложений
- •3.1. Язык разметки гипертекста xml
- •3.1.1. Синтаксис xml
- •Объявление xml. Первая строка xml-документа называется объявление xml.
- •Конструкции языка xml. Повторим еще раз содержимое xml-документа: набор элементов, секций cdata, директив анализатора, комментариев, спецсимволов, текстовых данных.
- •3.1.2. Правильно построенные и действительные документы xml
- •Отображение xml-документа. Наиболее распространены три способа преобразования xml-документа в отображаемый для пользователя вид:
- •3.3. Язык ActionScript
- •3.3.1. Видео-, аудиопроигрыватели
- •3.5. Технология «клиент-сервер»
- •3.6. Программирование для серверов
- •Язык Java на клиентской и серверной странице
- •3.7. Базы данных и язык sql
- •Нормализация модели данных
- •3.8. Язык sql
- •Команды управления транзакциями
- •Извлечение данных, команда select
- •Секция where. Директива where содержит условия отбора (предикат). Синтаксис where выглядит следующим образом:
- •Групповые функции. Если нас интересуют не строки таблицы, а некоторые итоги, мы можем использовать в процессе выборки колонок таблиц групповые функции (табл. 3.5.).
- •Команда insert. Добавление новых записей в таблицу осуществляется посредством команды insert. Она имеет следующий синтаксис:
- •Глава 4. Информационной обмен, нтмl и css
- •4.1. Язык разметки гипертекста html
- •4.2. Ссылки
- •4.3. Списки
- •4.3. Формы html
- •4.2.2. Новые элементы форм html5
- •Поддержка видео
- •4.2.3. Новые возможности html5
- •Поддержка аудио
- •4.3. Каскадные таблицы стилей css
- •4.3.1. Способы включения каскадных таблиц стилей
- •Заголовок 1 Заголовок 2 Заголовок 3
- •4.4. Цвет и фон
- •Свойства таблиц
- •4.5. Псевдоклассы
- •Псевдоэлементы
- •4.5.1. Форматирование псевдоклассов и псевдоэлементов
- •Различные свойства
- •Отступы, поля, позиционирование
- •Границы элементов
- •Новое в css3
- •Глава 5. Язык JavaScript
- •5.1. Включение скриптов JavaScript в html-код
- •Создание простых сценариев
- •Комментарии.
- •Отладка скриптов. Ввод и вывод данных
- •5.2. Описание языка
- •5.2.1. Типы данных
- •Преобразование типа
- •5.2.2 Операторы и выражения
- •Оператор присваивания
- •Арифметические операторы
- •Операторы сравнения
- •Оператор with
- •Оператор switch
- •5.3. Функции
- •5.3.1. Стандартные функции.
- •Eval() : позволяет выполнить строку, содержащую выражение, как javascript-код. Это полезно когда код формируется в ходе выполнения скрипта. Пример реализации простейшего калькулятора приведен ниже:
- •5.3.2. Функции пользователя
- •5.3.3. Передача параметров по значению и по ссылке
- •5.3.4. Глобальные и локальные переменные
- •5.3.5. Модель событий
- •Ключевое слово this
- •5.3.6. Модель событий JavaScript 1.2 и объект Event.
- •5.4. Объектная модель
- •5.4.1. Пользовательские объекты
- •5.4.2. Прототипы
- •5.4.3. Исключения: throw/catch/finally
- •5.4.4. Встроенные объекты String, Array, Date, Math Объект String. Экземпляр объекта можно объявить двумя способами:
- •Объект Array
- •Объект Date (Дата)
- •Методы объекта Date
- •5.5.1. Коллекции
- •Свойства элемента innerHtml и outerHtml
- •Навигация по дереву документа
- •Создание новых узлов
- •Удаление и замена узлов в документе
- •Объект window
- •Свойства окна, передаваемые методу open()
- •Методы объекта window
- •Свойства и методы объекта navigator
- •Свойства и методы объекта history
- •Свойства и методы объекта location
- •Объект layer
- •Каскадные таблицы стилей и объект style
- •Модель ajax:
- •5.6.1 Класс xmlHttpRequest
- •Использование dom
- •Работа с cookie
- •5.7.2. Манипуляции с dom
- •5.5.3. Блочная верстка
- •5.7.3. Обработка событий
- •5.7.3. Обработка событий
- •5.8. Примеры на JavaScript
- •Глава 6. Язык серверных скриптов php
- •Инструменты для разработки
- •Как php работает
- •Описание языка Типы данных
- •Массивы и инициализация массивов
- •Операции и выражения
- •Операции сравнения
- •Логические операции
- •Строковые операции
- •Операторы управления
- •Функции
- •Рекурсивные функции
- •Область действия и время жизни переменных
- •Изменяемые (динамические) переменные
- •Внешние библиотечные функции
- •Функции для работы с массивами
- •Функции для работы со строками.
- •Функции форматных преобразований строк
- •Преобразование строк и файлов к формату html и наоборот
- •Преобразование html в простой текст
- •Установка локальных настроек
- •Регулярные выражения
- •Функции даты и времени
- •Математические функции
- •Объектно-ориентированное программирование в php Основные понятия ооп
- •Классы и Объекты
- •Конструкторы и деструкторы
- •Наследование классов и интерфейсов
- •Магические методы
- •Обработка ошибок
- •Ошибки php и журнал error_reporting
- •Чтение и запись бинарных файлов
- •Работа с каталогами в рнр
- •MySql – сервер: бд1; бд2; бд3; бд4;
- •Команды sql для создания баз данных и таблиц
- •Выборка данных из бд
- •Выборка данных из таблиц бд
- •Работа с MySql (сохранение данных в базе данных).
- •Работа с MySql занесение и получение данных из базы данных
- •Организации работы с данными
- •Передача данных от клиента к серверу и обратно. Протокол http
- •Клиентские методы http
- •Обработка html-форм
- •Передача переменных из формы в скрипт.
- •Передача данных на сервер по методам get и post
- •Ввод данных из различных форм
- •Работа с e-mail
- •Cookies-наборы
- •Сессии (Сеансы)
- •Отмена регистрации сеансовых переменных
- •Сериализация объектов
- •Вывод графических данных с помощью рнр
- •Получение информации об изображении
- •Функции рисования прямых и кривых линий
- •Заливка изображений
- •Удаление и изменение цветов палитры
- •Создание прозрачности в изображениях
- •Рисование с помощью кистей
- •Использование шрифтов и вывод строк
- •Слияние изображений с помощью gd
- •Глава 7. Лабораторные работы Лабораторная работа 1 (4 часа). Инструменты и средства создания простых сайтов
- •Лабораторная работа 3 (4часа). Применение каскадных таблиц стилей css
- •Трехколоночный контейнерный макет сайта
- •Лабораторная работа 4. Применение каскадных таблиц стилей css
- •1. Свойства шрифтов.
- •2. Свойства текста.
- •3. Свойства цвета и фона.
- •4. Свойства рамки.
- •5. Свойства списков.
- •6. Свойства изображений.
- •Лабораторная работа 5 (4 часа). Динамика и JavaScript на Веб – странице.
- •Ответить на следующие вопросы
- •Лабораторная работа 6 по JavaScript (4 часа).
- •1.Проверка правильности заполнения формы на сайте
- •Методы объекта window
- •Задание 2. Функции
- •Задание 4. Работа с базами данных Выполнить одно из перечисленных ниже упражнений
- •Задание 5. Создание web-объектов Список заданий
- •Drupal: практические примеры
- •Приложение 1. Курсовые работы Курсовая работа 1. Создание клиентских приложений
- •Курсовая работа №2. Сайты клиент-сервер
- •Каталог товаров
- •Система вопрос/ответ
- •Курсовая работа №3. Технологии разработки Веб – приложений
- •Приложение 2. Быстрая разработка Веб-приложений
- •Начало работы с сайтом
- •Создание контента
- •Установка нового модуля
- •Создание шаблона
- •Включение блока отображение популярных статей
- •Удаление
3.6. Программирование для серверов
Приложение на стороне сервера позволяет получать и обрабатывать на сервере запросы, введенные приложением-клиентом при помощи формы или с помощью URI. Кроме того, серверное приложение должно обеспечивать динамический доступ к базам данных и другим ресурсам, хранимым на сервере; создание веб-документы в качестве ответа клиенту; использовать серверные компоненты, предназначенные для решения типовых задач; осуществлять аутентификацию пользователя.
Perl
Когда веб-программирование зарождалось, наиболее часто используемым языком программирования был Perl, который был создан в 1986 г. как инструмент для администрирования и конфигурирования системных ресурсов сети, состоящей из Unix-компьютеров. Синтаксис выражений Perl близок к синтаксису C++; это рекурсивный язык с рекурсией произвольной глубины, он приспособлен для сканирования текстовых файлов, но может обрабатывать и двоичные данные. Perl позволяет использовать регулярные выражения, создавать объекты, вставлять в программу на C++ куски кода на этом языке. Perl – интерпретируемый язык, приспособленный для обработки произвольных текстовых документов и файлов, извлечения из них необходимой информации и выдачи сообщений. Данный язык прост в использовании и эффективен. Язык получил большое распространение как инструмент создания исполняемых модулей-скриптов WWW-сервера. Perl-скрипты можно использовать для решения всех задач, возникающих при обеспечении WWW-доступа к базам данных. Perl эффективен также при обработке произвольных структур данных: отчетов, списков, карточек; он является надежным языком программирования, которым до сих пор пользуются многие разработчики.
if ("Hello World" =~ /World/) { print "It matches\n"; }
else { print "It doesn't match\n"; }
Технология ASP .NET
Новейшей версией технологии Active Server Pages является ASP .NET – ключевая в архитектуре Microsoft .NET Framework. Основное отличие этой технологии от ASP заключается в том, что код, присутствующий на Web-странице, не интерпретируется, а компилируется и кэшируется. Это повышает производительность Веб-приложений.
С помощью ASP.NET можно создавать Web-приложения и Web-сервисы, которые не только позволяют реализовать динамическую генерацию HTML-страниц, но и интегрируются с серверными компонентами.
Клиентами веб-сервера могут быть и мобильные устройства, отличающиеся ограниченным размером экрана, малым объемом памяти. Для этих устройств существуют свои протоколы передачи. При этом необходимо передавать данные на мобильное устройство в соответствующем формате, для чего нередко создаются специальные сайты (например, поддерживающие WAP и WML). Более удобным представляется создание приложений, которые способны генерировать тот или иной код в зависимости от типа клиента. Именно такой подход и реализован в Microsoft ASP .NET.
Язык PHP. PHP хорошо справляется с задачей написания серверных скриптов и отлично интегрирован в сферу создания сайтов. Его используют в качестве базового языка программирования при создании сайтов, работающих на веб-сервере Apache и Nginx.
Этот язык программирования более простой, чем технология создания сайтов ASP.NET. Но в отличие от более строгих языков, в которых присутствуют типизация и другие ограничивающие факторы, в этом языке может получаться скрипт, который вроде бы и выполняет необходимый сценарий, но где-нибудь будет появляться то одна, то другая ошибка. В случае с ASP.NET создать конечный продукт, который работал бы с ошибками, трудно. Но и на PHP создают и маленькие сайты, и крупные порталы.
<?php if ($expression) { ?>
<strong>Это истина.</strong> <?php
} else {
?>
<strong>Это ложь.</strong> <?php
}
?>
Технология Ruby On Rails
В последнее время многие стали использовать фреймворк для построения веб-сайтов с каталогом продукции, использующих базы данных, Ruby On Rails. Эта технология совместима со всеми известными вариантами веб-серверов и баз данных. Главным достоинством технологии считают возможность увеличения скорости создания сайтов на 30–40% по сравнению с использованием PHP. Обеспечивается это большим количеством шаблонных библиотек и кода.
Ruby (англ. Ruby – рубин) – интерпретируемый высокоуровневый язык объектно-ориентированного программирования, вышедший в свет в 1995 г. Создатель Ruby – Ю. Мацумото. Целью разработки было создание настоящего объектно-ориентированного, легкого в разработке, интерпретируемого языка программирования. Язык обладает независимой от ОС реализацией многопоточности, строгой динамической типизацией, сборщиком мусора и другими возможностями. Ruby близок по синтаксису к языкам Perl, Smalltalk, Python, Lisp. Сейчас Ruby входит в большинство дистрибутивов ОС Linux и доступен пользователям других операционных систем.
Пример:
#Gemfile
source 'http://rubygems.org'
gem 'rails', '3.0.9'
gem 'sqlite3'
gem 'haml-rails'
Ruby – объектно-ориентированный язык, в котором все данные являются объектами, а каждая функция – методом. Все переменные в Ruby являются ссылками. Например:
a = "abcdefg"
b = a
b #=> "abcdefg"
a[3] = 'R'
b #=> "abcRefg"
При изменении значения переменной a неявно изменилось и значение b, так как они содержат ссылку на один объект. Ruby не поддерживает множественное наследование, но вместо него есть мощный механизм примесей. Все классы Ruby выведены из класса Object, следовательно, любой объект может использовать определенные в нем методы.
Ruby поддерживает процедурный стиль (определение функций и переменных вне классов, все глобальные процедуры неявно являются закрытыми методами класса Object), функциональный (анонимные функции, замыкания, возврат значения всеми инструкциями, возврат функцией последнего вычисленного значения). Он поддерживает отражение, метапрограммирование, информацию о типах переменных на стадии выполнения (динамическая идентификация типа).
Возможности Ruby.
Этот язык имеет ряд характеристик:
Обеспечивает обработку исключений в стиле Java и Python.
Позволяет переопределять операторы (методы).
Не поддерживает множественное наследование, но может использовать концепцию «примесей», основанную на механизме модулей.
Содержит автоматический сборщик мусора.
Легко позволяет создавать расширения для Ruby на Си.
Поддерживает замыкания с полной привязкой к переменным.
Поддерживает блоки кода ({ … } или do … end).
Целые переменные в Ruby автоматически конвертируются между типами Fixnum (32-разрядные) и Bignum (больше 32 разрядов) в зависимости от их значения, что позволяет производить целочисленные математические расчеты со сколь угодно большой точностью.
Не требует предварительного объявления переменных, но для интерпретатора желательно, чтобы переменным присваивалось пустое значение nil (тогда интерпретатор знает, что идентификатор обозначает переменную, а не имя метода). Язык использует простые соглашения для обозначения области видимости. Пример: просто var – локальная переменная, @var – переменная экземпляра, @@var – переменная класса, $var – глобальная переменная.
В языке Ruby реализованы многие шаблоны проектирования, так, например, «одиночка» (singleton) может быть (хотя и не обязан) реализован добавлением необходимых методов к одному конкретному объекту.
Язык Ruby содержит немало оригинальных решений, редко встречающихся в распространённых языках программирования. Можно добавлять методы не только в любые классы, но и в любые объекты. Например, можно добавить к некоторой строке произвольный метод.
# все от символа и до конца строки – комментарий
# = является оператором присваивания,
# символы в «"» – строка, которой можно манипулировать
str = "Привет" # здесь создаётся переменная str, типа String
# def – ключевое слово для объявления функции
def str.bye# str. указывает, кому принадлежит метод (по умолчанию Object)
# bye – имя метода, за ним может следовать необязательный,
#заключенный в круглые скобки список параметров
"Пока!"
# из метода возвращается последнее значение – строка
end # ключевым словом end заканчиваются инструкции
# puts-метод,
# str.bye – обращение к методу bye объекта str
# значение, полученное из метода bye передается методу puts,
# который выводит на экран информацию
puts str.bye #=> Пока!
Этот пример демонстрирует, как в Ruby можно использовать синглтон. В этом примере синглтоном является объект str.
Любая конструкция в Ruby возвращает значение. Например:
# конструкция if вычисляет выражение и, если оно истинно,
# возвращает результат между then и else, иначе между else и end
puts( if 5 > 3 then "Одно" else "Другое" end ) #=> Одно
# происходит присваивание значения переменной var и
# возвращает значение var, которое выводится на экран
puts( var = 5 ) #=> 5
Контейнеры. Работа с массивами – одна из сильных сторон Ruby. Они автоматически изменяют размер, могут содержать любые элементы, а язык предоставляет мощные средства для их обработки.
# создаём массив
a = [1, 'hi', 3.14, 1, 2, [4, 5] * 3]
# => [1, "hi", 3.14, 1, 2, [4, 5, 4, 5, 4, 5]]
# обращение по индексу
a[2] # => 3.14
# «разворачиваем» внутренние массивы, удаляем одинаковые элементы
a.flatten.uniq # => [1, 'hi', 3.14, 2, 4, 5]
# пытаемся найти индекс элемента со значением 6
a.index(6) # => nil
# неудача: возвращается значение nil
#почти для всех функций предоставляется
# аналог с тем же названием, но заканчивающийся на «!»,
# который модифицирует контейнер
a.flatten! # => [1, "hi", 3.14, 1, 2, 4, 5, 4, 5, 4, 5]
# находим индекс первого элемента со значением 4
a.index(4) # => 5
Процедурные объекты и итераторы. В языке Ruby есть 2 эквивалентных способа записи блоков кода:
{ puts "Hello, World!" }
do puts "Hello, World!" end
Сопрограммы применяются с большинством встроенных методов:
File.open('file.txt', 'w') {|file| # открытие файла «file.txt» для записи («w» - write)
file.puts 'Wrote some text.'
} # Конструкция устраняет неопределенность с закрытием файла: закрывается здесь при любом исходе.
Следующий пример показывает использование сопрограмм и итераторов для работы с массивами: представлена краткость записи на Ruby многих достаточно сложных действий (случайно выбираем из последовательности квадратов чисел от «0» до «10» и распечатываем вместе с индексами):
# для работы требуется ruby 1.9
(0..10).collect{|v| v ** 2 }.select{ rand(2).zero? }.map.with_index {|*v| v }
Исключения. Исключения возбуждаются с помощью конструкции raise (или fail), опционально могут быть добавлены текст с сообщением, тип исключения и информация о стеке вызовов:
raise ArgumentError, "Неверный аргумент", caller
# caller - метод, возвращающий текущий стек выполнения
Обрабатываются исключения с использованием конструкции rescue. Опционально можно указать тип обрабатываемого исключения (по умолчанию обрабатываются все) и получение информации. Также можно добавлять блоки else (выполняется если исключения отсутствовали) и ensure (выполняется в любом случае).
begin
# ...
rescue RuntimeError => e
# обрабатываем конкретный тип ошибок
puts e # напечатаем сообщение об ошибке
rescue
# можно писать rescue => e чтобы получить объект исключения
# обрабатываем все исключения
else
# сработает, если исключений не было
ensure
# сработает в любом случае
end
Для Ruby существует несколько реализаций: официальный интерпретатор, написанный на Си, JRuby – реализация для Java, интерпретатор для платформы .NET IronRuby, Rubinius – написанная в основном на Ruby и базирующаяся на идеях Smalltalk-80 VM.
С официальной версией интерпретатора Ruby поставляется командная оболочка Ruby – Interactive Ruby Shell. Запускаемая командой irb в окне терминала (интерфейсе командной строки), она позволяет тестировать код программы очень быстро (построчно):
имитацию irb можно запустить непосредственно в браузере;
в поставке дистрибутива One-Click Installer для Windows поставляется утилита fxri, которая включает в себя справочную систему (ri) и интерактивный интерпретатор (irb).
Стандартная библиотека и расширения. Кроме того, что Ruby имеет мощные возможности, встроенные в язык, он обладает большой стандартной библиотекой, которая включает библиотеки для работы с различными сетевыми протоколами на стороне сервера и клиента, средства для работы с различными форматами представления данных (XML, XSLT, YAML, PDF, RSS, CSV, WSDL). Также есть библиотеки для работы с архивами, датами, кодировками, матрицами; средства для системного администрирования, распределенных вычислений, поддержки многопоточности.
В Ruby заложен простой и удобный механизм для расширения языка с помощью библиотек, написанных на Си.
Для унифицированного доступа к базам данных разработана библиотека Ruby DBI (поддерживает SQLite, Oracle, ODBC, MySQL, DB2, MS SQL, InterBase, ADO и др.). Также существуют библиотеки для конкретных баз данных, поддерживающих специфические для них операции. Реализована библиотека для работы с OpenGL, обеспечивающая программирование трехмерной графики. Win32utils – позволяет обращаться к специфическим возможностям Win32 API. Rmagick – библиотека для работы с изображениями, поддерживающая более 90 форматов (основана на ImageMagick и GraphicsMagick). Библиотека Ruport (Ruby reports) предназначена для легкой реализации отчетов и создания диаграмм на основе данных из баз данных (БД) или прямо из текстовых файлов CSV. Причем результаты можно сохранять в форматах PDF, HTML, CSV и TXT.
Большинство расширений распространяются под свободными лицензиями (LGPL, лицензия Ruby) и может быть использован в любом проекте практически без ограничений.
Система RDoc предназначена для автоматического извлечения документации из исходных кодов и программ на языке Ruby и ее дальнейшей обработки, является стандартом для подготовки документации по программному обеспечению, написанному на Ruby. Онлайн-документация доступна на сайте http://www.ruby-doc.org.
Технология Python
Популярная в среде веб-разработчиков технология Python. В данном случае также существуют объемные готовые библиотеки, облегчающие задачу по созданию промо-сайтов. В целом же Python является многофункциональным языком программирования, с помощью которого можно создавать пользовательские веб-приложения, сценарии для веб-серверов и многое другое.
Пример:
def myWonderfulMethod():
return "Некоторый метод"
myWonderfulMethod = staticmethod(myWonderfulMethod)
ASP.NET
Создание веб-сайта требует использования различных технологий: графический дизайн, верстка HTML, программирование клиентской части – интерфейс пользователя, программирование серверной части. Microsoft ASP.NET представляет собой комплексную технологию серверного программирования со встроенными средствами создания интерфейса пользователя.
Достоинства ASP.NET:
Объектно-ориентированный подход.
Поддержка визуальных компонентов, инкапсулирующих не только вывод HTML, но и Javascript и даже AJAX. Кроме встроенных, существуют компоненты сторонних производителей. Есть возможность наследовать свой компонент от чужого и улучшать его, адаптируя под свои потребности.
Встроенные визуальные компоненты для редактирования и отображения данных, навигации, авторизации и т. д.
Встроенные средства кэширования, мониторинга, позволяющие повысить производительность и масштабируемость приложений.
Полноценный компилируемый язык программирования (C#, VB.NET, Delphi, J#).
Удобная среда разработки и отладки приложений.
Шаблоны дизайна, пользовательские элементы управления, модель codebehind – позволяют не только отделить программный код от представления, но и использовать многократно один и тот же код.
Встроенная авторизация и аутентификация.
Встроенная поддержка веб-сервисов.
Расширяемая архитектура, основанная на провайдерах в таких областях, как:
авторизация;
хранение файлов;
компиляция;
сессия.
Усовершенствованная архитектура доступа к данным ADO.NET.
Встроенная поддержка локализации сайтов (многоязычность).
Разработка веб-сайтов любой сложности.
ASP NET-технология создания веб-сайтов от компании Майкрософт. На данный момент последней версией этой технологии является ASP.NET 4.0. Разработчики пишут код для ASP.NET, используя языки программирования C# или Visual Basic.NET. При первом обращении к странице сайта, созданного на ASP NET, код компилируется и помещается в специальный кэш, поэтому впоследствии не требует затрат времени на парсинг, оптимизацию и т. д. Поэтому ASP.NET имеет преимущество в скорости по сравнению со скриптовыми технологиями (Perl, Python, PHP, Ruby).
В ASP NET встроена поддержка AJAX. Создание сайта на ASP NET ведется в среде разработки Visual Web Developer, которая позволяет большинство ошибок устранять еще на стадии разработки. ASP.NET обеспечивает возможности создания сайтов со сложной бизнес-логикой. Применять ASP.NET для небольших проектов не всегда рационально. На ASP.NET делают сайты финансовых организаций (http://www.webmoney.ru/) и банковские сайты.
Платформа ASP.NET2/MS SQL Server 2005 стала основной для создания очень больших корпоративных порталов и систем.
Язык C#
(Си-шарп) – объектно-ориентированный язык программирования для платформы .NET. Разработан в 2000 г. А. Хейлсбергом, С. Вилтамутом и П. Гольде под эгидой Microsoft Research. Основным постулатом С# является высказывание: "Всякая сущность есть объект". Язык основан на строгой компонентной архитектуре и реализует передовые механизмы обеспечения безопасности кода. C# был создан специально для технологии ASP.NET. В то же время на C# полностью написана и сама ASP.NET. C# – полнофункциональный объектно-ориентированный язык, который поддерживает все три «столпа» объектно-ориентированного программирования: инкапсуляцию, наследование и полиморфизм. Он имеет прекрасную поддержку компонентов, надежен и устойчив благодаря использованию «сборки мусора», обработки исключений, безопасности типов.
Язык C# разрабатывался и вобрал в себя много полезных свойств таких языков, как C++, Java, Visual Basic, Delphy и др. Как и Java, C# разрабатывался специально для Интернет. Примерно 75 процентов его синтаксических возможностей аналогичны языку программирования Java, его также называют очищенной версией Java. Третья версия языка C# была представлена в 2005 г.
