Przejdź do zawartości

ASP.NET

Z Wikipedii, wolnej encyklopedii
To jest stara wersja tej strony, edytowana przez Kabexxxior (dyskusja | edycje) o 02:42, 16 lip 2015. Może się ona znacząco różnić od aktualnej wersji.

ASP.NET – zbiór technologii opartych na frameworku zaprojektowanym przez firmę Microsoft. Przeznaczony jest do budowy różnorodnych aplikacji internetowych, a także aplikacji typu XML Web Services.

Strony ASP.NET są uruchamiane przy użyciu serwera, który umożliwia wygenerowanie treści HTML(CSS), WML lub XML – rozpoznawanych oraz interpretowanych przez przeglądarki internetowe. ASP.NET jest wspierany przez separujący warstwę logiki od warstwy prezentacji, wątkowo-kierowany model programistyczny, co poprawia wydajność działania aplikacji. Logika stron ASP.NET oraz XML Web Services jest tworzona w językach Microsoft Visual Basic .NET, Microsoft Visual C# .NET lub w każdym innym języku wspierającym technologię Microsoft .NET Framework.

Historia

Po publikacji Internet Information Services (IIS) 4.0 w roku 1997, Microsoft zaczął poszukiwać nowych możliwości w tworzeniu efektywnych stron internetowych z użyciem przejrzystego kodu – umożliwiającego separację warstwy logiki od warstwy prezentacji. Mark Anders (menadżer zespołu IIS) oraz Scott Guthrie(absolwent Uniwersytetu Duke'a – najbardziej prestiżowego uniwersytetu w Stanach Zjednoczonych) postanowili odpowiedzieć na pytanie jak taki model programistyczny mógłby wyglądać w rzeczywistości. Na odpowiedź nie trzeba było zbyt długo czekać, bowiem w ciągu następnych dwóch miesięcy – w czasie Świąt Bożego Narodzenia w roku 1997 powstała prototypowa wersja – nazywana początkowo XSL. Początkowa wersja została utworzona przy użyciu Javy, jednak niedługo potem zdecydowano się utworzyć nową platformę przy użyciu Common Language Runtime (CLR), które oferowało obiektowo-zorientowane środowisko programistyczne wraz z narzędziami takimi jak garbage collector. Reimplementacja została dokonana przy użyciu języka C#. Przyjęto nazwę „Project Cool”, jednak dane określenie nie przyjęło się i postanowiono zmienić ją na ASP+, co miało kojarzyć się z łagodnym przystosowaniem dla developerów ASP.

Pierwsza prezentacja ASP+ została dokonana przez Marka Andersa w czasie konferencji ASP Connections w Phoenix (Arizona) w Maju 2000 roku. Demonstracja dla szerokiego grona zainteresowanych oraz wydanie wersji inicjalizacyjnej ASP+ Beta zostały dokonane w czasie „Professional Developers Conference” 11 lipca 2000 roku w Orlando (Floryda).

W drugiej połowie roku 2000 postanowiono zastąpić nazwę ASP+ nazwą ASP.NET. W ciągu kolejnych kilkunastu miesięcy opublikowano kilka wersji beta, aż w końcu 5 września 2002 roku opublikowano ASP.NET w wersji 1.0 jako część .NET Framework 1.0. Niecały rok później, bowiem 2 kwietnia 2003 roku wydano kolejną wersję ASP.NET 1.1. Stanowiła ona część Windows Server 2003, co jako pewna innowacyjność miało zapoczątkować wsparcie w oprogramowywaniu i użytkowaniu urządzeń mobilnych.

Charakterystyka

Pliki

Pliki zawierające treść stron internetowych ASP.NET posiadają rozszerzenie .aspx. Dokumenty tego typu zawierają statyczną treść (X)HTML. Dodatkowo w ramach kodu statycznego istnieje możliwość dodania fragmentów dynamicznych np. <% -- dynamic code -- %> podobnie jak to się ma w przypadku technologii PHP lub JSP. Dodatkowo wraz z wprowadzeniem ASP.NET Framework 2.0 Microsoft postanowił rozdzielić warstwę prezentacji od logiki umieszczając obie części w osobnych plikach. Dane udogodnienie zostało określone nazwą „Code-Behind” i charakteryzuje się tym, że plik z treścią statyczną nazwiemy przykładowo MyPage.aspx, zaś dokument z logiką (w Microsoft Visual Studio stanowiący jednocześnie podwęzeł pliku .aspx) analogicznie MyPage.aspx.cs lub MyPage.aspx.vb (rozszerzenie zależne od języka, w którym programujemy np. C# lub Visual Basic). W praktyce separacja warstw oznacza większą przejrzystość kodu oraz możliwość wielokrotnego wykorzystania implementowanych klas oraz ich zawartości.

Dyrektywy

Dyrektywy są informacją dla ASP.NET w jaki sposób przetworzyć daną stronę internetową. Przykładową dyrektywą może być <%@ Page Language="C#" %>, która mówi o tym jaki język programowania został użyty i odpowiednio w jaki sposób należy interpretować kod.

Inline-code vs. Behind-code

Inline-coding oznacza pisanie statycznego kodu, w ramach którego jako skrypt umieszczany jest kod dynamiczny. Przykład prezentowany jest poniżej.

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "---//W3C//DTD XHTML 1.0 //EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  protected void Page_Load(object sender, EventArgs e)
  {
    // Assign the datetime to label control
    lbl1.Text = DateTime.Now.ToLongTimeString();
 
  }
</script>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>Sample page</title>
</head>
<body>
  <form id="form1" runat="server">
    <div>
      The current time is: <asp:Label runat="server" id="lbl1" />
    </div>
  </form>
</body>
</html>

W przykładzie zauważmy kontrolkę Label, zaimplementowaną w ramach treści statycznej, jednakże logika strony, a mianowicie przypisanie kontrolki Label i jej właściwości Text aktualnego czasu odbywa się dynamicznie, poprzez funkcję Page_Load umieszczoną między znacznikami <script>. W przypadku posługiwaniem się code-behind treść statyczną oraz dynamiczną rozdzielamy między osobne pliki. Na początku pliku z treścią statyczną (.aspx) umieszczamy znacznik <%@ Page %> przykładowo:

<%@ Page Language="C#" CodeFile="SampleCodeBehind.aspx.cs" Inherits="Website.SampleCodeBehind" AutoEventWireup="true" %>

Dyrektywa @Page oznacza, że istnieje dodatkowy plik(code-behind) z treścią odpowiedzialną za logikę programu. Obydwa pliki, analogicznie do poprzedniego przykładu mogłyby wyglądać następująco: MyPage.aspx

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "---//W3C//DTD XHTML 1.0 //EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>Sample page</title>
</head>
<body>
  <form id="form1" runat="server">
    <div>
      The current time is: <asp:Label runat="server" id="lbl1" />
    </div>
  </form>
</body>
</html>

oraz MyPage.aspx.cs czyli nasz code-behind:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Website
{
  public partial class _MyPage : System.Web.UI.Page
  {
    protected void Page_Load(object sender, EventArgs e)
    {
      // Assign the datetime to label control
      lbl1.Text = DateTime.Now.ToLongTimeString();
    }
  }
}

Bibliografia

  • Randy Connolly, ASP.NET 2.0. Projektowanie aplikacji internetowych, marzec 2008, Helion, ISBN 978-83-246-1128-7.

Linki zewnętrzne