Проф. В.К.Толстых, www.tolstykh.com Технологии разработки Internet- приложений ASP.NET приложения – оптимизация скорости работы приложений Из цикла лекций.

Презентация:



Advertisements
Похожие презентации
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – директивы Из цикла лекций «Технологии разработки Internet-приложений»
Advertisements

Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – пользовательские элементы управления Из цикла лекций.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET примеры: обработка данных форм. работа с формами работа с формами.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET примеры: динамические таблицы, привязка данных к выпадающему списку.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – Модули HTTP, фильтры, события приложения - Global.asax.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET примеры: HtmlControls Из цикла лекций «Технологии разработки Internet-приложений»
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – локализация ресурсов приложения Из цикла лекций «Технологии.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – ASP.NET-процесс, пул, домен приложения, компиляция,
ДонНУ, кафедра КТ, проф.В.К.Толстых Web-службы (Web-сервисы) введение введение Разработка в среде Delphi Из цикла лекций «Internet-технологии разработки.
Проф. В.К.Толстых, Технологии разработки Internet- приложений Администрирование IIS 5, 6 сайт, виртуальный каталог, приложение, пул, рабочий.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – Кэширование вывода страниц Из цикла лекций «Технологии.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – компиляция Из цикла лекций «Технологии разработки Internet-приложений»
ДонНУ, кафедра КТ, проф.В.К.Толстых WCF-службы Создание и тестирование.dll-библиотеки WCF-служб Из цикла лекций «Internet-технологии разработки приложений»
Проф. В.К.Толстых, Технологии разработки Internet- приложений Delphi for.NET примеры: работа с файлами Из цикла лекций «Технологии разработки.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – обработка ошибок страниц и приложения, Global.aspx.
Проф. В.К.Толстых, Технологии разработки Internet- приложений Архитектура IIS 5, IIS 6, исполняющая среда ASP.NET в IIS 7, конфигурирование.
Проф. В.К.Толстых, Пример Web-службы Калькулятор с валидацией Из цикла лекций «Internet-технологии разработки приложений» для студентов.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – класс Control Из цикла лекций «Технологии разработки.
ДонНУ, кафедра КТ, проф.В.К.Толстых Технологии разработки Internet- приложений ASP.NET приложения: Безопасность – аутентификация Из цикла лекций «Технологии.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – валидация, валидационные элементы управления Из цикла.
Транксрипт:

проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – оптимизация скорости работы приложений Из цикла лекций «Технологии разработки Internet-приложений» для студентов 4-го курса кафедры Компьютерных технологий физического факультета Донецкого национального университета

Что надо оптимизировать? 1.Скорость работы приложения на сервере, 2.Скорость работы Web-страниц у клиента в браузере, 3.Скорость доставки ответа клиенту.

1. 1. Скорость работы приложения на сервере Пишите качественные коды C#, которые могли бы быстро работать и генерировать минимальные размеры HTTP ответов клиенту. Кэшируйте вывод страниц как на сервере, так и для браузеров клиентов где это возможно, например, через Кэшируйте Не кэшируйте вывод SQL-сервера, а кэшируйте компоненты и страницы, где этот вывод присутствует. Делайте предкомпиляцию и разумную пакетную компиляцию сборок.разумную пакетную компиляцию Если приложение имеет много сборок и файлов – сжимайте их в одну управляемую сборку, которая будет хранить сжатые сборки в себе и при необходимости загружать их динамически. Загрузка приложения, в котором много зависимостей, занимает обычно больше времени, чем загрузка одного исполняемого файла с последующей подгрузкой необходимых модулей прямо в памяти. Для этого можно использовать открытые библиотеки CodePlex: NBox, SevenZipSharp …NBox SevenZipSharp

2. 2. Скорость работы в браузере Минимизируйте количество файлов, запрашиваемых браузером для каждой Web- страницы – это очень важно! (- и для скорости работы браузера, и для скорости передачи) не разделяйте стили на несколько файлов для одной и той же страницы, скрипты объединяйте в файлы так, чтобы для каждой страницы запрашивался один файл и он содержал минимальное количество «сторонних» скриптов, которые могли бы использоваться на соседних страницах, не злоупотребляйте графическими файлами и по количеству и по размеру, множество графических файлов можно объединить в один и далее посредством CSS background-image и background-position показывать сегменты этого файла через теги и. Размещайте CSS файлы, стили в начале страницы, а скрипты – в конце. При настройке кэширования в приложении устанавливайте кэширование статических компонент на стороне клиента на максимальный срок (never expire).

3. 3. Трафик ответа клиенту Включайте в IIS сжатие ответов Web-приложения (подробнее далее) если передаются большие файлы по каналам с низкой пропускной способностью. Сжимайте файлы CSS и JavaScript посредством автоматического удаления комментариев, лишних пробелов, переносов строк и т.п., например, с использованием библиотеки YUI Compressor for.Net (пример см. далее).YUI Compressor for.Net Объединяйте, сжимайте и кэшируйте файлы CSS и JavaScript в реальном времени посредством добавления обработчика HttpCombiner в ваш проект (пример см. далее) HttpCombiner

Сжатие ответов Web-приложения статическое сжатие результаты статических ответов (.html …) могут быть записаны в кэш IIS, используемый несколькими запросами, без затрат ресурсов ЦП. динамическое сжатие IIS сжимает версии динамического выхода (.aspx …), но не записывает их в кэш Такое сжатие потребляет значительные ресурсы времени ЦП и памяти. Кэш статического сжатия устанавливается для всего сервера Или web.config : HTTP-сжатие, начиная с IIS 7.0, настраивается путем указания типов MIME, которые могут быть сжаты. Настройки сжатия содержатся в applicationHost.config. Их можно изменять и дополнять при помощи командной строки, например, для типа MIME text/xml это будет иметь вид: appcmd set config /section:httpCompression /+staticTypes.[mimeType='text/xml',enabled='true'] /commit:apphost IIS осуществляет сжатие ответов (обычно по UNIX-алгоритму gzip ) при условиях: 1.Разрешение сжатия включено на сервере, 2.Заголовок HTTP-запроса от браузера содержит Accept-Encoding с указанием поддерживаемого алгоритма сжатия, необходимого для декомпрессии ответа.

Yahoo! YUI Compressor for.Net сжатие файлов.css и.js Загрузите файл сборок « Yahoo.Yui.Compressor v….zip (for.NET …).zip » и пример файла настроек MSBuild.xml. Yahoo.Yui.Compressor v….zip (for.NET …).zip Создайте проект «ASP.NET Web Application» и поместите в его папку MSBuild полученные сборки и файл настроек. Уточните в файле MSBuilder.xml для элемента путь к сборке AssemblyFile= "Yahoo.Yui.Compressor.dll", для элемента пути исходных.css и.js файлов, а для – конечных (сжатых) файлов. В свойствах проекта добавьте Post-build событие. Компилируйте проект – Build.

HttpCombiner.ashx Пользовательский HTTP-обработчик для объединения файлов.css и.js, их сжатия (gzip ) и кэширования в ASP.NET ПримерПример подключения стилей и скриптов при помощи HttpCombiner.ashx на HTML-странице. Объединённые файлы, присоединяемые на этой странице, определяются в файле web.config. Это ПО типа «as is», т.е. – отсутствие каких-либо гарантий. Например, какой- либо прокси-сервер может «неадекватно» обработать сжатый ответ. Объединённые файлы