Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Технология .NET. ASP.NET, ADO.NET. Язык C#.


Информационный Канал Subscribe.Ru


 Технология .NET: ASP.NET, ADO.NET, C#

Тематическая рассылка сайта http://www.daoto.net/

Выпуск 4-ый.

Доброго дня, уважаемые читатели!

Перед вами четвертый выпуск рассылки сайта Путь к .NET, посвященной, технологии .NET.

Что будет в рассылке

Свои мысли, замечания и идеи по поводу рассылки вы можете присылать на мой ящик: daoto@daoto.net.

Мысли вслух

1. Кеширование пользовательских элементов управления (ASP.NET).

Помимо кеширования aspx-страниц в ASP.NET возможно кеширование отдельных пользовательских элементов управления:

<%@ Control Language="c#" Inherits="DaoSql.Controls.News" %>
<%@ OutputCache Duration="120" VaryByParam="none" %>
<html>
<!-- ... код страницы ... -->
</html>

При этом большинство параметров директивы OutputCache, применимых для кеширования aspx-страниц, становятся неприменимыми. Скажем так, при кешировании пользовательских элементов управления имеет смысл указывать только Duration - время кеширования и VaryByControl - кеширование страницы в зависимости от значений свойств контрола.

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

2. Пул соединений с базой данных и его преимущества.

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

Поддержка СУБД пула соединений позволяет избежать напрасной траты ресурсов. После выполнения запроса соединение не закрывается, а помещается в пул. Когда следующий пользователь запросит страницу он возьмет из пула первое свободное соединение и использует его, а не будет создавать новое. Если для него не найдется свободного подключения - он создаст новое (если, конечно, размер пула соединений при этом не превысит максимально разрешенного).

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

Максимальное и минимальное кооличество соединений в пуле задается в строке подключения с помощью параметров Min Pool Size и Max Pool Size соотвественно. Значения по умолчанию - 0 и 100.

3. Протокол SOAP (Web-сервисы)

Как известно Web-сервисы используют протокол SOAP. Здесь мы рассмотрим его преимущества, благодаря которым он был выбран в качестве протокола Web-сервисов и его строение.

SOAP-сообщение представляет собой обычный XML - документ. В корневом элементе документа Ebvelope содержатся два дочерних элемента: обязательный элемент Body (который содержит само сообщение) и необязаьельный элемент Header, который содержит информацию о сообщении:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap= "http://schemas.xmlsoap.org/soap/envelope"> 
 <soap:Header> 
  <!-- здесь содержится заголовочная информация -->
 </soap:Header>
 <soap:Body> 
  <!-- здесь содержится основное сообщение --> 
 </soap:Body>
</soap:Envelope>

Как видите SOAP-сообщение (называемое еще конвертом), содержит только текстовую информацию в формате XML, и может передаваться с помощью любого транспортного протокола, поддерживающего передачу текста. Последнее обстоятельство обеспечивает передаваемость сообщений через всевозможные брандмауэры (сообщение же текстовое и может передаваться с помощью, скажем SMTP или HTTP).

Для передачи информации в двоичном формате, информация сначала кодируется в BASE64, а затем при получении раскодируется обратно.

4. Чем шифрование отличается от хеширования.

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

Кеширование - это преобразование информации по определенному алгоритму в т.н. хеш-код. Алгоритмы используются такие, что из хеш-кода нельзя получить исходные данные. Как правило, хешируют, например, пароли и хранят хеш-пароля в базе данных. Злоумышленник, даже если сможет получить хеш-пароля не сможет получить сам пароль. Проверка пароля осуществляется следующим образом: пользователь воодит пароль, пароль хешируется. И сравнимаются уже хеши.

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

Последние статьи

Web-сервисы. Пример создания XML Web-сервиса

Как-то запомнилось восклицание одного программиста: "Мощь технологии .NET заметна только при использовании Web-сервисов". Казалось бы их создание и использование должны быть связано с определенными трудностями. И программисты встречаются с этими трудностями, и тратят столь драгоценное время. И только потому, что они не понимают одного - Web-сервисы в .NET - это очень просто!

Журнал CompDocs. CompDocs #10

Офф-лайн журнал "Компьютерная документация и статьи №10"

Архив рассылки. Выпуск 3-й

1. Кеширование aspx-страниц. 2. Использование шаблонов редактирования в серверном элементе управления DataGrid. 3. Пример создания статистики сайта.


PARKING.RU
Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка .NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты.
http://www.parking.ru/hosting.asp


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное