Раздел 2. Основы технологии ASP.NET и ADO.NET 2.1 Введение в ASP.NET
ASP.NET — технология создания WEB-приложений и WEB-сервисов от компании Microsoft. Она является составной частью платформы Microsoft .NET и развитием более старой технологии Microsoft ASP. На данный момент последней версией этой технологии является ASP.NET 4.0b.
ASP.NET внешне во многом сохраняет схожесть с более старой технологией ASP, что позволяет разработчикам относительно легко перейти на ASP.NET. В то же время внутреннее устройство ASP.NET существенно отличается от ASP, поскольку она основана на платформе .NET и, следовательно, использует все новые возможности, предоставляемые этой платформой.
Хотя ASP.NET берёт своё название от старой технологии Microsoft ASP, она значительно от неё отличается. Microsoft полностью перестроила ASP.NET, основываясь на Common Language Runtime (CLR), который является основой всех приложений Microsoft .NET. Разработчики могут писать код для ASP.NET, используя практически любые языки программирования, в том числе, и входящие в комплект .NET Framework (C#, Visual Basic.NET, и JScript .NET). ASP.NET имеет преимущество в скорости по сравнению со скриптовыми технологиями, так как при первом обращении код компилируется и помещается в специальный кэш, и впоследствии только исполняется, не требуя затрат времени на парсинг, оптимизацию, и т. д.
Основа всего в Web-приложении – это страница. Пользователь, пользуясь браузером, перемещается между страницами, периодически возвращаясь к уже просмотренным ранее страницам, вводя какие-то данные в HTML формы и получая некоторый результат. В ASP.NET страница чаще всего представляет собой Web-форму, содержащую различные элементы управления, реагирующую на события, создаваемые пользователем.
ASP.NET 1.x позволяет разделять код логики от кода представления, то есть помещать код программной логики страницы в файл .cs или .vb, отдельно от кода собственно страницы, размещаемом в .aspx файле. Эта технология называется Code-Behind. Таким образом, дизайн страницы может быть изменен не затрагивая кода страницы, что позволяет разделить ответственность за внешний вид и работу страницы между дизайнером и программистом. Для этого в .aspx файле можно задать параметры директивы Page.
<%@ Page Language="c#" Src="User.aspx.cs" %>
Но для поддержки редактирования с помощью Microsoft Visual Studio .NET в ASP.NET странице необходимо указать класс, соответствующей данной странице и файл, в котором находится код этого класса. Для этого директива Page преобразуется с использованием ключевых слов Codebenind и Inherits.
<%@ Page Language="c#" Codebehind="TheProject.User" Inherits="User.aspx.cs" %>
В ASP.NET 2.0 используется иной механизм разделения кода. В директиве Page при этом необходимо использовать другие ключевые слова: CodeFile и Inherits.
<%@ Page Language="c#" CodeFile="TheProject.User" Inherits="User.aspx.cs" %>
В этом случае код класса программной логики страницы будет размещен в файле указанном в атрибуте CodeFile. Надо отметить, что Visual Studio использует разделяемые классы:
public partial class Default : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { }}
Поэтому разработчик может поместить код класса в нескольких файлах, но подобное рассредоточение кода делает приложение весьма громоздким и трудным в поддержке и разработке.
Используемая в Visual Studio модель Code-Behind обладает несколькими весьма существенными недостатками. Прежде всего, используя Visual Studio разработчику необходимо компилировать проект перед публикацией, поскольку ASP.NET компилирует страницы, только если указан атрибут Src, не используемый Visual Studio. При этом, поскольку среда ASP.NET обнаруживает изменение даты создания сборки, после каждой замены старой сборки в каталоге bin происходит перезапуск домена приложения, что выливается во временную «заторможенность» в работе приложения.
Visual Studio использует новые ключевые слова, поддерживаемые средой выполнения ASP.NET 2.0, а среда выполнения, в свою очередь, использует новую технику компиляции страниц. Это позволяет решить проблему замены сборки на более новую.
Несмотря на это, Visual Studio по-прежнему позволяет отказаться от разделения кода и поместить код программной логики в самом файле страницы, и использовать теги . Более того, по умолчанию Visual Studio создает именно страницы без разделения кода.
В ASP.NET 2.0 среда выполнения также анализирует директивы Page, осуществляет поиск сборки соответствующей классу логики страницы, после чего создается класс страницы. В отличие от ASP.NET 1.x, родительским классом для класса страницы является System.Web.UI.Page, поскольку создаваемый динамический класс является собственно классом страницы (используются разделяемые классы для класса страницы и класса программной логики), а не потомком класса программной логики. Поэтому, если в ASP.NET 1.x класс Web-формы мог называться также как и сама Web-форма.
…public class frmDefault : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { }}
В ASP.NET 2.0 это недопустимо, поскольку элемент управления System.Web.UI.Form является элементом класса. Основным преимуществом ASP.NET является то, что в случае отсутствия сборки, необходимой для выполнения страницы, происходит компиляция только файла программной логики страницы, без перекомпиляции всей сборки.Поскольку существует динамическая компиляция, то необходимо обеспечить возможность создавать код, общий для всех страниц приложения. Для этой цели в ASP.NET 2.0 существуют специальные директории, являющиеся дочерними директориями корневой директории приложения, одна из которых App_Code, служит для хранения файлов, содержащих общий код для всех страниц. При выполнении динамической компиляции, код из директории App_Code компилируется и становится доступным для всех страниц Web-приложения. При этом Visual Studio поддерживает код, находящийся в директории App_Code, поэтому работает подсветка синтаксиса и IntelliSense.
Обратите внимание. Технология ASP.NET базируется на технологии ASP (хотя и меет существенные отличия от последней).
Основные возможности ASP.NET.
Далее опишем основные возможности ASP.NET на примере наиболее популярного языка программирования, Visual Basic.NET, поддерживаемого .NET.
Для организации вывода существует объект Response. Вывод осуществляется с помощью метода Write.
<% Response.Write("
Достарыңызбен бөлісу: |