Microsoft .NET

Создание веб-сайта при помощи ASP.NET 2.0 и каскадной таблицы стилей (CSS)

В числе возможностей ASP.NET 1.0 были адаптивные возможности обработки, которые позволяли обозревателю отображать разметку, обработанную ASP.NET-страницей. Если вкратце: в момент посещения ASP.NET-страницы элементы управления на ней обрабатываются в разметку, которая впоследствии отсылается в браузер и там отображается. Разметка, сгенерированная элементами управления, зависима от браузера, используемого для открытия страницы. При посещении с помощью браузера типа "uplevel" элементы управления ASP.NET генерируют разметку, соответствующую стандартам HTML 4.0; в браузерах типа "downlevel" элементы управления вырабатывают разметку в соответствии со стандартным HTML 3.2.  В ASP.NET 1.x типы браузеров (а именно "uplevel" или "downlevel") были определены посредством элемента <browserCaps> в machine.config или web.config. Причем  недостатком ASP.NET 1.x было то, что по умолчанию только IE 4.0 и версии выше были типа "uplevel", следовательно, современные браузеры типа FireFox и Opera были маркированы типом "downlevel".

Контекстно-зависимая помощь для веб-страницы в ASP.NET 2.0

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

Динамическая установка заголовка страницы в ASP.NET 2.0

Стандартный язык HTML содержит несколько элементов метаданных, которые могут быть добавлены на веб-страницу. Одним из наиболее распространенных является элемент <title>, который встречается в пределах элемента <head> и содержит название страницы. Значение элемента Title, в случае если оно указано, появляется в области заголовка окна браузера, а также является стандартным именем закладки при ее создании. Более того, многие поисковые системы отображают заголовок страницы в виде ссылки на странице результатов поиска. Для этого, с точки зрения разработчика, одной из главных задач является назначение описательного, значащего заголовка страницы.

Навигация по сайту в ASP.NET 2.0

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

Обмен информацией между страницами с содержимым (Content Pages) и мастер–страницами (Master Pages)

При создании верстки веб-сайта дизайнеры обычно разбивают ее на несколько областей, таких как общая верхняя часть, включающая в себя логотип и различные навигационные ссылки, а слева, скорее всего, будет меню навигации, область основного содержимого и наверняка какая-нибудь карта сайта или информация о правах в нижней части. В ASP.NET 2.0 объявление таких областей и использование их на нескольких страницах веб-сайта возможно при помощи мастер-страниц (Master Pages). Мастер-страница позволяет разработчикам создать верстку для всего сайта, при этом отметив те области, которые нужно настроить на каждой странице.

Краткий обзор мастер-страниц (Master Pages) в ASP.NET 2.0

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

ASP.NET AJAX: Отключение пользовательского интерфейса во время выполнения частичного постбэка

При использовании Microsoft ASP.NET AJAX Framework и UpdatePanel (свойство ChildrenAsTriggers  которого  по умолчанию установлено в True "Истина"),  в случае, если находящийся в пределах UpdatePanel элемент интерфейса  вызывает полноценный постбэк, вместо него производится частичный постбэк. Например, при нажатии на элемент управления Button (кнопка) или при выборе какого-то другого значения в элементе управления DropDownList (Выпадающий список), свойство которого AutoPostBack установлено в значение True ("Истина"), обычно вызывается полноценный постбэк. Однако, если данные элементы находятся в UpdatePanel, то взамен вызывается частичный постбэк. Но что произойдет, если вызванный частичный постбэк затянулся, и пользователь опять вызовет частичный постбэк? Или что произойдет, если во время этой паузы он нажмет на какую-то другую кнопку в UpdatePanel и тем самым вызовет выполнение второго частичного постбэка?

Создание элемента управления Calendar (календарь), использующего AJAX

Зайдите на любой сайт, регистрирующий поездки либо события, и вы найдете там один и тот же пользовательский интерфейс для сбора информации - календарь (Calendar). Вы с легкостью можете предоставить такой интерфейс в приложениях ASP.NET благодаря встроенному веб-элементу управления Calendar. Использование элемента  управления Calendar  имеет некоторые недостатки: во-первых, он не очень пригоден при выборе дат, которые находятся в далеком будущем или прошлом, так как вы можете передвигать только к следующему либо к предыдущему месяцу; во-вторых, календарь (Calendar) не использует концепцию AJAX, так что каждый клик - будь то выбор даты или переход к следующему либо предыдущему месяцу - требует выполнения полноценного постбэка.

ASP.NET AJAX: используем закладки и браузерную кнопку 'Назад'

AJAX-приложения предоставляют более интерактивные пользовательские интерфейсы , путем замены традиционных полноценных постбэков более плавными и эффективными частичными постбэками. Данные частичные постбэки выполняются в браузере асинхронно при помощи кода JavaScript. Когда пользователь нажимает на ссылку либо отсылает форму (посредством полноценного постбэка), браузер автоматически добавляет страницу в браузерную историю. Это позволяет пользователю использовать кнопки Back (Назад) и Forward (Вперед) для того, чтобы передвигаться по данной истории. Тем не менее, частичные постбэки, исполняемые AJAX-приложениями, не заставляют браузер регистрировать что-либо в истории. Как следствие, если пользователь посещает страницу, использующую AJAX, выполняет несколько частичных постбэков, и затем нажимает кнопку Back (Назад), то он не будет возвращен на страницу, отображенную до последнего постбэка. На самом деле, он будет возвращен на страницу, которая была отображена до того, как была открыта данная страница, использующая AJAX.

Элемент управления Timer в ASP.NET AJAX Framework

Элемент управления Timer, который является главной темой данной статьи, вызывает постбэк каждый раз, как пройдет какое-то определенное количество миллисекунд. Элемент управления Timer необходим тогда, когда намнужнообновить часть экрана через какое-то определенное время. Например, многие финансовые веб-сайты предоставляют котировки акций, которые периодически обновляются. До появления технологии AJAX, обновление котировок означало обновление всего документа, что в результате дало бы мигание экрана и необходимость перезагрузки всего содержимого страницы (даже если изменилась всего одна котировка). Используя технологию AJAX мы можем заставить страницу асинхронно связываться с сервером для получения новых котировок каждые n миллисекунд и плавно обновить котировки на экране. Элемент управления Timer, а также UpdatePanel, делают реализацию такого механизма очень простой.

ASP.NET AJAX: Клиентский объект PageRequestManager

ASP.NET AJAX Framework также включает в себя богатую клиентскую библиотеку и модель событий, что позволяет разработчикам создавать и выполнять клиентские скрипты и даже обработчики которые включены в ASP.NET AJAX Framework. Данная статья начинает исследование разработки клиентской части при помощи ASP.NET AJAX Framework. В частности, она исследует объект клиентской стороны PageRequestManager, который включает в себя методы и события привязанные к механизму частичного постбэка. Короче говоря, мы можем использовать объект PageRequestManager для того, чтобы выполнить скрипт клиентской стороны сразу же после частичного постбэка.

Визуальный фидбэк в ASP.NET AJAX с помощью элемента управления UpdateProgress

Microsoft ASP.NET AJAX Framework помогает разработчикам в создании более интерактивных веб-страниц путем ускорения механизма постбэка. В традиционных веб-страницах, полный постбэк подразумевает повторный запрос всей страницы, которая потом заново обрабатывается. Эта обработанная разметка возвращается во всей полноте, чтобы браузер отобразил ее. Технологии Ajax упрощают работу пользователя посредством использования частичных постбэков двумя путями: во-первых, частичный постбэк является асинхронным, тем самым подразумевая то, что пользователь может работать со страницей, одновременно ожидая завершения частичного постбэка; во-вторых, что более важно, меньше информации передается между клиентом и сервером, так как частичный постбэк обновляет только конкретную часть (область) страницы, что предоставляет более быстрое и гладкое взаимодействие.

Использование UpdatePanel в ASP.NET AJAX

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

Основы AJAX и начало работы с Microsoft ASP.NET AJAX Framework

За последние несколько лет веб-разработчики начали использовать JavaScript для того, чтобы делать такие асинхронные постбэки к веб-серверу, которые передают и принимают только необходимую информацию; эти технологии, как правило, называют AJAX. Если верно реализовать веб-приложения, использующие AJAX, они предлагают достаточно интерактивный пользовательский интерфейс, и его отзывчивость может составить конкуренцию системным приложениям. Популярные веб-приложения, такие как социальный новостной сайт, как Digg и GMail, являются ключевыми примерами технологии AJAX в действии.

Введение в AJAX и Atlas c использованием ASP.NET 2.0

Веб-приложения оставляют желать лучшего, так как еще не совсем совершенны, в основном из-за цикла "запрос\ответ". Любое взаимодействие со страницей обычно требует postback к веб-серверу ("запрос"), которое впоследствии производит необходимую работу на сервере и возвращает разметку обновленной страницы ("ответ"). За пределами приложений интрасети такое поведение добавляет небольшую задержку во время взаимодействия со страницей. Одним из способов улучшения процесса является использование AJAX. AJAX - это метод для использования JavaScript и объекта XMLHttpRequest для того, чтобы создать легковесные HTTP - запросы на веб-сервер из скрипта клиентской части. Как только ответ был принят, внешний вид страницы может быть плавно обновлен , используя JavaScript для пересылки странице настроек Document Object Model (DOM) и CSS. Страницы, использующие AJAX, предусматривают быструю и отзывчивую работу, тем самым, делая веб-приложения похожими на системные приложения.

Скрипт-инъекции с использованием ASP.NET

Атаки, использующие скрипт-инъекции, происходят, когда хакер заполняет одно или более полей вредоносным программным кодом и затем сабмитит форму. Если данный вредоносный код не обработан и сохранен в базе данных, он может вызывать надоедливые предупредительные сообщения о нежелательном удалении базы данных, либо получении доступа к информации базы данных. Основной техникой атаки скрипт-инъекцией является отсылка содержимого страницы, включающего в себя теги. Эти теги могут быть <script>, <iframe>, <applet> и т.д.

Динамическая загрузка мастер-страниц в ASP.NET 3.5

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

Краткий обзор валидации в ASP.NET 3.5

Многие веб-приложения включают в себя пользовательский ввод данных. При этом неприятным фактом является следующая пользовательская ошибка: пропуск обязательных полей, вводят 6 цифр номера телефона, и они возвращают в ваше приложение любую неверно форматированную информацию. Работа вашей базы данных может быть засорена искаженной информацией, и заказы могут быть потеряны. Неправильно введенный номер кредитной карточки или пропуск адреса может служить причиной упущения возможности сбыта. К счастью, вы можете написать такой код, который будет проверять пользовательский ввод ещё до того, как какая-либо опасная информация приблизится к коду вашей базы данных. Процесс проверки пользовательского ввода называется контролем данных (валидацией). Обычно написание надежного кода проверки данных требует большого количества времени и усилий. Вам необходимо проверить каждое поле и создать подпрограммы, обеспечивающие целостность данных. Если была найдена неверная информация, то вы должны вывести сообщение об ошибке, чтобы пользователь знал, что она существует, а также как исправить ее.

Доступ к базе данных из ASP.NET

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

Управление состоянием в ASP.NET

С момента появления Web одной из главных проблем разработчиков стала задача сохранения данных веб-приложения между запросами пользователей, поскольку протокол HTTP по своей природе является протоколом без состояния (stateless). Существуют различные подходы к решению этой задачи. В данной статье рассмотрены механизмы, реализованные в ASP.NET.

ASP.NET: Очищаем HTML от лишних знаков

Однажды посмотрев HTML-документ, генерируемый ASP.NET и содержащий GridView, я заметил, что большое количество символов, содержащихся на странице - пробелы и знаки табуляции. Очевидно, ASP.NET щедро расставлял их, где только можно. Конечно, избавиться от лишних килобайтов HTML-документа можно, воспользовавшись библиотеками, которые сжимают HTML-документы при помощи различных алгоритмов. Но такой метод заставит сервер сначала сжать генерируемый HTML-документ, а браузеру пользователя придется распаковывать пришедший ему документ.
Я же хочу в своей статье предложить способ как избавиться от различных ненужных символов, которые содержатся на страницах. Этот способ основан на использовании сборки HTTPModule.

Знакомство с ASP.NET 2.0

Каждый раз, разрабатывая проект и создавая Web-приложение, пользуются различными средствами для создания архитектуры приложения, редактирования кода и публикации результатов своего труда на Web-сервере. При этом для конечного пользователя Web-приложение любой сложности остается набором HTML-страниц, каждая из которых имеет свой уникальный URL. По большом счету, пользователю нет дела до того на какой платформе или с использованием какой технологии создано приложение. У пользователя есть цель, которую он хочет достичь и универсальное средство, практически любой используемый им Web-браузер. В этом заключено огромное преимущество приложений для Internet по сравнению с приложениями для настольных систем – существование общепринятого «языка общения», HTML кода. Для того, чтобы развернуть Web-приложение достаточно установить его на сервер, после чего приложение может быть доступно любому клиенту с установленным Web-браузером. К сожалению, здесь тоже существует очевидная проблема в обработке HTML кода браузерами разных производителей.

Аутентификация в ASP.NET

Большинство web-сайтов работают в режиме анонимного доступа. Они содержат информацию, которую могут просматривать все желающие, и поэтому не проводят аутентификацию пользователей. Web-приложения ASP.NET предоставляют анонимный доступ к серверным ресурсам посредством назначения учетной записи анонимному пользователю. По умолчанию учетная запись для анонимного доступа имеет имя в виде IUSER _ имя компьютера.

Защита данных в .NET

Данная статья кратко объясняет распространенные криптосистемы и подробно описывает два самых популярных шифра с закрытым ключом: DES –  наиболее широко используемый, и AES – собирающийся заменить DES.

Асинхронный вызов метода

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

Формат файла .bin Office 2007

Новыми форматами файла Office 2007 являются файлы ZIP, содержащими части, некоторые из которых являются XML, некоторые другие являются родными форматами файлов, такими как изображения JPEG, а остальные двоичные части называются частями BIN. Части BIN представляют особый интерес для потребителя или обновителя формата файла, так как нижележащие форматы файла недокументированы (в момент написания, 10 августа 2006), и надо разобраться с несколькими дополнительными форматами файла.

Упрощенный распределенный кэш

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

Написание заданий ETL на чистом C#

Если вы любите писать на C# и не любите использовать DTS/SSIS для создания заданий ETL (или общую идею щелканья по конструктору с целью сделать работу), то эта статья для вас.