Seminar ASP.NET und AJAX by usr10478

VIEWS: 16 PAGES: 8

									                                       Seminar ASP.NET und AJAX

                                                               o
                                                  Philipp Br¨ mser
                                                                        a
                                           Johannes Gutenberg-Universit¨ t
                                                         u
                                               Institut f¨ r Informatik
                                          broemser@students.uni-mainz.de


                        Abstract                               Das klassische ASP wurde bereits 1996 von Microsoft
                                                                   o                   u                          u
                                                               ver¨ ffentlicht, die Abk¨ rzung ASP steht hierbei f¨ r Active
                                                                                                                     ”
   Innerhalb des Seminars           Web Entwicklungen“         Server Pages“.
                                  ”
besch¨ ftigt sich die folgende Ausarbeitung mit der
      a                                                        ASP ist eine Technologie mit deren Hilfe serverseitig Web-
Technologie ASP.NET, diese ist Teil der .NET-Strategie von                               o           u
                                                               seiten erzeugt werden k¨ nnen. Hierf¨ r wurde keine eigene
Microsoft und erm¨ glicht die serverseitige Generierung
                   o                                           Programmiersprache entwickelt, sondern es kann eine Rei-
von Webseiten.                                                 he verschiedener Skriptsprachen verwendet werden, z. B.
ASP.NET bringt keine eigene Programmiersprache mit sich,       Perl.
sondern vereint Komponenten verschiedener Sprachen.            Die Weiterentwicklung wurde 2002 durch den Release des
Eine Anwendung in Form einer Webseite besteht vor allem        Nachfolgers ASP.NET eingestellt. Das klassische ASP wird
aus den drei Grundbausteinen HTML, .NET-Code und               seitdem nur noch vereinzelt und bei meist kleineren Projek-
Server-Steuerelementen.                                        ten verwendet.
                        u
Nach einer kurzen Einf¨ hrung in die Historie von ASP
und .NET werde ich den Aufbau und das Zusammenspiel
                    a       a
dieser Elemente n¨ her erl¨ utern und mit Beispielen
veranschaulichen. Hierbei werde ich die Umwandlung             1.2    Der Nachfolger ASP.NET
der Server-Steuerelemente in eine browserkompatible
Ausgabe behandeln und kurz auf einige weitere Features
                                                    u
von ASP.NET eingehen, beispielsweise die Unterst¨ tzung
                                                                   Im Jahr 2002 erschien mit dem .NET Framework 1.0 die
                                              o
von Webservices. Im Anschluss zeige ich die M¨ glichkeiten
                                                               wichtigste Komponente der .NET-Strategie von Microsoft
                                        a
zur Realisierung von AJAX-Funktionalit¨ t mittels ASP.NET
                                                                                                                 u
                                                               und dadurch auch eine komplett neue Plattform f¨ r die An-
auf.
                                                               wendungsentwicklung unter Windows. Mit dem neuen Fra-
                                           u
Am Ende werde ich ein Fazit bez¨ glich meiner
                                                                                                                o
                                                               mework wurde auch das neue ASP.NET 1.0 ver¨ ffentlicht,
      a
Besch¨ ftigung mit dem Thema ziehen und einen kurz-
                                                               das auf .NET aufbaut und das klassische ASP abl¨ ste.  o
en Ausblick in die weitere Entwicklung von ASP.NET
                                                               Das Anwendungsgebiet, die serverseitige Webseitengene-
geben.
                                                               rierung, ist zwar noch gleich, im Kern haben ASP und
                                                               ASP.NET aber nur noch wenig gemeinsam. Vor allem durch
                                                               die Integration in .NET ergeben sich viele Unterschie-
1     Die Historie von ASP.NET                                                           a
                                                               de, wie z. B. die vollst¨ ndige Objektorientierung, Kom-
                                                               pilierung statt Interpretation, verbessertes Exceptionhand-
   Obwohl ASP.NET im Unterschied zu anderen Techno-            ling, etc. aber auch komplett neue Funktionen wie die Un-
                                       o
logien noch vergleichsweise jung ist, m¨ chte ich im folgen-        u
                                                               terst¨ tzung von Webservices.
den kurz auf die Geschichte und Entwicklung von ASP.NET        Mit dem Erscheinen von ASP.NET 2.0 im Jahr 2005 wur-
eingehen.                                                                                                             u
                                                               den vor allem viele neue Server-Steuerelemente eingef¨ hrt,
                                                               wodurch laut Microsoft nochmal eine Code-Einsparung von
1.1    Das klassiche ASP                                                          u
                                                               bis zu 70% gegen¨ ber Version 1.0 erreicht wurde.
                                                               Im Jahr 2007 wurde die aktuelle Version 3.5 freigegeben
                  a                               a
   Um Missverst¨ ndnisse zu vermeiden, sollte zun¨ chst        (es gab keine Version 3.0), hier waren die direkte Integra-
   a
erw¨ hnt werden, dass ASP und ASP.NET nicht das Glei-                                                     a
                                                               tion von LINQ- und AJAX-Funktionalit¨ t die wichtigsten
che sind, sondern ASP.NET der Nachfolger von ASP ist.          Neuerungen.
1.3    Das .NET Framework                                                  u                    a
                                                                press verf¨ gbar, den auch ich w¨ hrend meiner Arbeit ver-
                                                                wendet habe. Unter den vielen Features von Visual Studio
    Da ASP.NET, wie bereits am Namen zu erkennen, auf           ist vor allem der integrierte WYSIWYG Editor hervorzu-
dem .NET Framework aufbaut, ist es wichtig zu wissen, was               ¨
                                                                heben, uber den man sehr einfach das Layout und die An-
dessen wichtigste Merkmale und Konzepte sind.                   ordnung der Server-Steuerelemente und des HTML-Codes
Das Framework, das mittlerweile in Version 3.5 vorliegt,        festlegen kann. Auch sonst werden alle Standardfunktionen
ist eine vollst¨ ndig objektorientierte Plattform und dient
                a                                               wie Syntax-Highlighting, Projektmanagement, Debugging,
vor allem zur Anwendungsentwicklung. Wichtige Kom-              etc. abgedeckt.
ponenten des Frameworks sind eine umfassende Samm-
lung von Klassenbibliotheken und eine eigene Laufzeitum-        2. ASP.NET Webforms
           ¨
gebung, ahnlich der JRE von Java. Das Konzept hierbei
ist es, den Quellcode nicht direkt in Maschinensprache zu           Um nun zu illustrieren, wie eine ASP.NET Anwendung
¨                         a
ubersetzen, sondern zun¨ chst in eine sogenannte Zwischen-                                               a
                                                                aufgebaut ist und arbeitet, muss man zun¨ chst verstehen wie
sprache (Bytecode). Der Code der Zwischensprache wird           diese strukturiert ist. In der Zusammenfassung habe ich be-
dann zur Laufzeit von einem Just-in-time-Compiler in nati-                a                                               u
                                                                reits erw¨ hnt, dass es keine eigene Programmiersprache f¨ r
                  u
ven Code weiter¨ bersetzt. Die von .NET verwendete Zwi-         ASP.NET gibt, sondern vielmehr verschiedene Technologi-
schensprache ist die Common Intermediate Language, kurz         en kombiniert werden.
CIL.                                                            Der HTML-Code wird von der Laufzeitumgebung nicht
Die Verwendung einer Zwischensprache bringt verschie-           weiter verarbeitet und genau so, wie er im Quelltext steht,
                                              o
dene Vorteile, z. B. mehr Optimierungsm¨ glichkeiten und        auch an den Browser weitergeleitet.
       o                a
eine h¨ here Portablilit¨ t mit sich, hervorzuheben ist unter   Der .NET-Code (in der Praxis meist C# oder Visual Basic)
                                o
.NET aber vor allem die M¨ glichkeit, verschiedene Pro-         wird vom Server weiterverarbeitet. Ich werde in Beispielen
                                            a
grammiersprachen zu benutzen. Grunds¨ tzlich kann jede          immer die Sprache C# verwenden.
                                u
Sprache verwendet werden, f¨ r die es einen Compiler gibt,      Die Server-Steuerelemente haben eine HTML-¨ hnliche a
         ¨                 u                     a
der die Ubersetzung in g¨ ltigen CIL-Code gew¨ hrleistet. Es    Syntax, werden aber ebenfalls vom Server umgewandelt
                                           ¨
gibt hier mittlerweile eine Auswahl von uber 50 Sprachen.       und nicht direkt an den Browser weitergegeben. Zweck und
Durch die separate Laufzeitumgebung erreicht man                                                                a
                                                                Funktion der Server-Steuerelemente werden sp¨ ter noch ge-
    a                                       a
zus¨ tzlich eine gewisse Plattformunabh¨ ngigkeit mit der               a
                                                                nau erl¨ utert.
         a                 u
Einschr¨ nkung, das es f¨ r die jeweilige Plattform auch ei-                                               o
                                                                ASP.NET bietet nun zwei verschiedene M¨ glichkeiten die-
ne kompatible Version des .NET Frameworks geben muss,           se Codeteile zu verwalten:
was in der Praxis jedoch bis heute nicht der Fall ist. Bisher
wird lediglich das Microsoft eigene Betriebssystem Win-                                  u
                                                                 1. Der gesamte Code f¨ r jeweils eine Webseite wird in
                  u
dows voll unterst¨ tzt. Das Open Source-Projekt Mono“ ar-           einer Datei mit der Endung .aspx gespeichert.
                                                   ”
                                                     a
beitet an der Portierung auf unioxide Systeme, h¨ ngt je-
doch immer einige Monate hinter der aktuellen Entwick-                                   a
                                                                 2. Die .aspx Datei enth¨ lt lediglich den HTML-Code und
lung zur¨ ck und unterst¨ tzt nicht alle Funktionen.
          u              u                                          die Server-Steuerelemente. Der .NET-Code wird in ei-
Weitere bereits integrierte Features von .NET sind bei-             ner separaten Datei mit der Endung .aspx.cs (cs steht
spielsweise die Garbage Collection und das Exceptionhand-            u
                                                                    f¨ r C#, bei Visual Basic ist die Endung .aspx.vb) ge-
ling.                                                               speichert.
Durch den konsequent objektorientierten Aufbau des Fra-                                 u
                                                                    Durch eine Verkn¨ pfung, die Visual Studio auto-
meworks, der großen Klassensammlung und der guten Do-                                                            a
                                                                    matisch generiert, werden die Dateien sp¨ ter von
kumentation ist die Entwicklung generell sehr komfortabel.          ASP.NET selbst verschmelzt, es hat also keinerlei Aus-
Hierzu tr¨ gt auch die Entwicklungsumgebung bei.
           a                                                                                        a              u
                                                                    wirkung auf die Funktionalit¨ t der Webseite, f¨ r wel-
                                                                           o
                                                                    che M¨ glichkeit man sich entscheidet. Die Aufteilung
                                                                                                   u
                                                                    des Codes bringt jedoch f¨ r den Entwickler einige
1.4    Entwicklungsumgebung                                                                      ¨
                                                                    Vorteile mit sich, da die Ubersichtlichkeit durch die
                                                                    Trennung von Verhalten und Design steigt und somit
   Microsoft bietet dem Entwickler mit Visual Studio eine                                                           o
                                                                    auch eine einfachere Aufteilung der Arbeit m¨ glich
        a                                       u
sehr m¨ chtige Entwicklungsumgebung, sowohl f¨ r das Pro-           wird. Diese Vorgehensweise nennt man Code-Behind-
grammieren von Desktop- als auch von Webanwendungen                 Konzept.
unter NET. Die Software ist kostenpflichtig, es gibt jedoch
           a
eingeschr¨ nkte Versionen, die einen Großteil der Funktio-                                                            o
                                                                Jede .aspx Datei (und falls vorhanden die dazugeh¨ rige
     a                                          u
nalit¨ t abdecken und kostenlos sind. Speziell f¨ r die Ent-                                 u
                                                                Code-Behind-Datei) steht f¨ r eine Webseite, die intern
wicklung mit ASP.NET ist der Visual Web Developer Ex-                                 a
                                                                durch eine Klasse repr¨ sentiert wird und die stets von der
Basisklasse System.Web.UI.Page abgeleitet ist.                                            automatisch generiert und kann zur Initialsierung be-
Der folgende Code stellt ein einfaches HelloWorld-Beispiel                                nutzt werden. Das onclick-Attribut des Buttons zeigt auf
                       a
dar. Die Webseite enth¨ lt lediglich einen Label und einen                                die Methode Button1 Click, in der die Funktionalit¨ t a
                                       u    ¨
Button, sobald der Benutzer diesen dr¨ ckt, andert sich der                               implementiert wurde.
Text des Labels zu Hello World“.
                   ”
                                                                                          2.2       Die Abfolge eines Seitenaufrufs

2.1        Beispiel                                                                          Um gleich das Konzept der in ASP.NET wichtigen
                                                                                          Server-Steuerelemente gut zu verstehen, schaut man sich
    Code der .aspx Datei:                                                                     a                         a
                                                                                          zun¨ chst am besten die grunds¨ tzlichen Schritte beim Auf-
                                                                                          ruf einer ASP.NET Webseite an:
<% Page Language =”C# ” A u t o E v e n t W i r e u p =” t r u e ”
  @
    C o d e F i l e =” D e f a u l t . a s p x . c s ” I n h e r i t s =” D e f a u l t            a
                                                                                             1. Zun¨ chst stellt der Client in Form eines Browser die
    ” % >
                                                                                                                  u          u
                                                                                                HTTP-Anfrage f¨ r die gew¨ nschte Webseite (mit der
<!DOCTYPE html PUBLIC ” −//W3C / / DTD XHTML 1 . 0                                              Endung .aspx in der URL).
    T r a n s i t i o n a l / / EN” ” h t t p : / / www. w3 . o r g / TR /
    x h t m l 1 /DTD/ xhtml1−t r a n s i t i o n a l . d t d ”>                              2. Der Webserver sucht nun die entsprechende Datei mit
                                                                                                               ¨
                                                                                                der Endung und ubergibt sie an die ASP.NET Laufzeit-
<html xmlns=” h t t p : / / www. w3 . o r g / 1 9 9 9 / x h t m l ”>
                                                                                                umgebung.
<head r u n a t =” s e r v e r ”>
                 </
     < t i t l e> t i t l e>
</ head>
                                                                                             3. Beim ersten Aufruf dieser Datei wird sie kompiliert,
<body>                                                                                          falls sie bereits vorher aufgerufen wurde, liegt sie unter
     <form i d =” form1 ” r u n a t =” s e r v e r ”>                                                  a
                                                                                                Umst¨ nden schon in kompilierten Zustand vor.
     <d i v>
            <a s p : Button ID=” B u t t o n 1 ” r u n a t =” s e r v e r ”                          a                                         u
                                                                                             4. Als n¨ chstes wird die kompilierte Datei ausgef¨ hrt.
                   o n c l i c k =” B u t t o n 1 C l i c k ”
                   Text =” l o s g e h t s ! ” />                                                               u
                                                                                             5. Durch die Ausf¨ hrung generiert ASP.NET dem jewei-
            <a s p : Label ID=” L a b e l 1 ” r u n a t =” s e r v e r ”
                                                                                                ligen Code entsprechend HTML, CSS, JS etc., also
                                        </
                   Text =” T e x t ”> a s p : Label>
     </ d i v>                                                                                  Code den der Browser versteht. Das besondere hier-
     </ form>                                                                                                                  a        u           a
                                                                                                bei ist, dass ASP.NET selbstst¨ ndig daf¨ r Sorge tr¨ gt,
</ body>                                                                                        dass der generierte Code auch kompatibel zum ver-
</ html>
                                                                                                wendeten Browser des Benutzers ist. Der Entwickler
Code der aspx.cs Datei:                                                                         muss sich also nicht um spezifische Eigenheiten der
using      System ;                                                                                                          u
                                                                                                unterschiedlichen Browser k¨ mmern, es werden alle
using      System . C o l l e c t i o n s . G e n e r i c ;                                                                 u
                                                                                                verbreiteten Browser unterst¨ tzt, wobei es in der Dar-
using      System . L i n q ;                                                                   stellung durchaus Unterschiede geben kann.
using      System . Web ;
using      System . Web . UI ;
                                                                                             6. Die generierte Ausgabe wird nun an den Browser
using      System . Web . UI . W e b C o n t r o l s ;
                                                                                                   u
                                                                                                zur¨ ck geschickt
p u b l i c p a r t i a l c l a s s D e f a u l t : System . Web . UI .
        Page
{                                                                                         3. Server-Steuerelemente
       protected void Page Load ( o b j e c t sender ,
              EventArgs e ) { }                                                              Bisher habe ich einige Male die sogenannten Server-
       protected void Bu tt on 1 Cl ic k ( object sender ,
              EventArgs e ) {                                                                                a                          a
                                                                                          Steuerelemente erw¨ hnt, ohne genauer zu erkl¨ ren, wobei
             L a b e l 1 . T e x t = ” H e l l o World ! ” ;                              es sich hierbei handelt, dies werde ich in diesem Kapitel
       }                                                                                  nachholen.
}

                a
Die HTML-¨ hnlichen Tags              asp:Button..“ bzw.                                  3.1       Syntax
                                     ”
                                              u
 asp:Label..“ sind erste Beispiele f¨ r Server-
”                                                                                            Wie wir bereits im Beispiel weiter oben gesehen haben,
Steuerelemente. In der ersten Zeile der .aspx-Datei
                                                                                          ¨
                                                                                          ahnelt die Syntax der von HTML-Elementen. Die grundle-
sieht man die Page-Direktive, in der die .NET-Sprache                                     gende Struktur sieht folgendermaßen aus:
festgelegt und der Verweiß auf die Code-Behind-Datei und
          o
die zugeh¨ rige Klasse gesetzt wird.                                                                                                              <a
                                                                                          <a s p : B e z e i c h n e r r u n a t =” s e r v e r ”> s p : B e z e i c h n e r>
                                  a
In der C#-Datei werden zun¨ chst einige Standard-                                         bzw .
Namespaces eingebunden. Die Methode Page Load wurde                                       <a s p : B e z e i c h n e r r u n a t =” s e r v e r ” />
Das Attribut runat“ darf nicht weggelassen werden, da der      ren Strukturen sind jedoch beispielsweise auch Server-
             ”
Server das Element sonst nicht als solches erkennt und nicht                      u
                                                               Steuerelemente f¨ r Aufgaben wie Datenbankanbindung
                      o                   a
verarbeiten kann, es k¨ nnen jedoch zus¨ tzliche Attribute                                      u
                                                               oder Formularvalidierung verf¨ gbar.
         u
hinzugef¨ gt werden.                                                                    o
                                                               Wenn man einem gew¨ hnlichem HTML-Element das At-
                                                                                              u
                                                               tribut runat=“server“ hinzuf¨ gt, wird dieses ebenfalls als
3.2    Konzept                                                 Server-Steuerelement behandelt und kann serverseitig mo-
                                                               difiziert werden. Hierdurch verschlechtert sich jedoch die
   Server-Steuerelemente stellen in ASP.NET eine neue          Performanz, da eine Verarbeitung durch den Server stets
Abstraktionsebene dar, durch die eine schnelle Entwicklung                                             ¨
                                                               Zeit kostet, es sollte also jeweils gut uberlegt werden wann
von Standardkonstrukten erm¨ glicht werden soll.
                              o                                ein einfaches HTML-Element ausreichend ist.
                     a
Der Nutzen einer zus¨ tzlichen Abstraktion wird einem be-
                                  u
wußt, wenn man sich vor Augen f¨ hrt, das sehr viele Web-      3.5      Vor- und Nachteile
                                ¨
seiten aus gleichen bzw. sehr ahnlichen Bausteinen auf-
                             a                    ¨
gebaut sind und man sehr h¨ ufig immer wieder ahnlichen             Durch das Konzept der Server-Steuerelemente ist es
                                             u
Code schreibt oder kopiert, beispielsweise f¨ r ein Login-       o
                                                               m¨ glich mit wenig selbst geschriebenem Code relativ
                          u
Element mit Textfeldern f¨ r ID und Passwort, Beschriftun-     schnell bereits sehr komplexe Strukturen und Verhaltens-
gen und Buttons.                                               weisen zu implementieren, hierdurch kann man sich mehr
Das Konzept der Server-Steuerelemente versucht diese im-                                       a
                                                               auf die eigentliche Funktionalit¨ t anstatt auf die Program-
mer wiederkehrenden Konstrukte zu kapseln und die Pro-         mierung des Layouts konzentrieren. Durch Die Kapselung
grammierung des entsprechenden HTML-Layouts und Ja-            ist eine hohe Wiederverwendbarkeit gegeben, man kann ei-
             ¨
vascripts zu ubernehmen.                                       gene Server-Steuerelemente erstellen und im Web nach zur
                                                                    u
                                                               Verf¨ gung gestellten Elementen suchen, die die gesuchte
3.3    Umsetzung                                                            a
                                                               Funktionalit¨ t implementieren.
                                                                                                           u
                                                               Der große Nachteil des Konzepts ist nat¨ rlich, dass eine
   Die Syntax der Server-Steuerelemente ist einfach und                          o
                                                               standardisierte L¨ sung in der Regel zwar schneller entwi-
umfasst pro Element in der Regel nur eine Codezeile, das       ckelt, jedoch auch weniger effizient im Vergleich zu einer
Ergebnis im Browser hingegen kann jedoch mitunter sehr                          o
                                                               individuellen L¨ sung ist. Durch die Abstraktion und die
komplex sein, der Code muss also intern irgendwie umge-        serverseitige Umwandlung muss man darauf vertrauen, das
wandelt werden.                                                ASP.NET nicht zu viel Overhead produziert und die Per-
Zun¨ chst entspricht jedes Server-Steuerelement genau ei-
     a                                                         formanz und Skalierbarkeit der Anwendung nicht zu sehr
ner .NET Klasse. Diese Klasse besitzt unter anderem Me-        leidet.
thoden die bestimmen wie ASP.NET das abstrakte Element
  a                            ¨
sp¨ ter in HTML, CSS, JS, etc. ubersetzt, damit es im Brow-    4     Weitere ASP.NET Features
                             ¨
ser angezeigt werden kann. Uber die Attribute des Server-
Steuerelements hat man Einfluss darauf, wie das Ergebnis           Wie wir im vorigen Kapitel gesehen haben, ist das
  a                                              a
sp¨ ter aussieht und wie sich das Element verh¨ lt. Hierzu     Konzept der Server-Steuerelemente und die damit ver-
eignet sich in Visual Studio besonders der WYSIWYG-            bundenen Vorteile eine der wichtigsten Errungenschaf-
         ¨
Editor, uber den man z. B. aus verschiedenen vorgefertigten                                                     u
                                                               ten in ASP.NET, es gibt jedoch noch weitere n¨ tzliche
            a                                        o
Layouts w¨ hlen kann, wodurch automatisch die ben¨ tigten      Funktionen, die die Webentwicklung mit ASP.NET at-
Attribute korrekt gesetzt werden. Auch die Position inner-     traktiv machen. Neben dem Code-Behind-Konzept, der
halb der Webseite kann beispielsweise Einfluss auf die Um-        a                                               u
                                                               m¨ chtigen Entwicklungsumgebung und der Unterst¨ tzung
setzung haben, so wird z. B. das Label-Element je nach                                         a              o
                                                               von Webservices, die bereits erw¨ hnt wurden, m¨ chte ich
Kontext in ein HTML-span oder HTML-div umgewandelt.            noch folgende Aspekte hervorheben:

3.4    Anwendungen                                                 1. ASP.NET bietet verschiedene Mechanismen um f¨ r         u
                                                                      das zustandslose HTTP-Protokoll eine Zustandsver-
   Es gibt mittlerweile sehr viele verschiedene Server-                                             u
                                                                      waltung zu realisieren. Hierf¨ r gibt es je nachdem
Steuerelemente f¨ r die unterschiedlichsten Aufgaben. Zum
                u                                                     ¨
                                                                      uber welchen Kontext ein Zustand gespeichert werden
einen gibt es entsprechende Pendants f¨ r die typischen
                                          u                           soll (Elemente einer einzelnen Seite, Zust¨ nde uber
                                                                                                                     a     ¨
HTML-Elemente wie Buttons, Textfelder, Tabellen. Des                  die gesamte Anwendung eines Benutzer, der Zustand
Weiteren gibt es neue zum Teil bereits sehr komplexe                  der Webseite bezogen auf alle Benutzer, ...), besonde-
Konstrukte wie Kalender oder Loginelemente mit entspre-                                                 a
                                                                      re Objekte, die diese Funktionalit¨ t bereitstellen, z. B.
                                a
chender Javascript-Funktionalit¨ t. Neben diesen sichtba-                                                  o
                                                                      das viewstate-Objekt. Neben der M¨ glichkeit Cookies
      zu benutzen, bietet ASP.NET hier auch die Speiche-                                  public s t r i n g HelloWorld ( ) {
                             ¨
      rung von Informationen uber die URL an.                                                 r e t u r n ” H e l l o World ” ;
                                                                                          }
                                              o
  2. ASP.NET bietet bereits vorgefertigte L¨ sungen f¨ r u
                                                                                    }
      a         o                 a
     h¨ ufig ben¨ tige Funktionalit¨ t wie Authentifizierung
     oder eine Rollenverwaltung. Visual Studio bietet hier-                         Jeder Webservice in ASP.NET wird von der Klasse Sys-
     zu ein grafisches Interface in Form einer lokalen                               tem.Web.Services.WebService abgeleitet. Durch das Attri-
     Webseite an, wodurch Einstellungen getroffen werden                            but [WebMethod]“ markiert man diejenigen Methoden,
                                                                                         ”
     k¨ nnen und Rollen hinzugef¨ gt werden k¨ nnen
      o                          u            o                                            a ¨                                o
                                                                                    die sp¨ ter offentlich aufgerufen werden k¨ nnen. ASP.NET
                                                                                                           u
                                                                                    Webservices unterst¨ tzen sowohl SOAP 1.1 und SOAP
                     o
  3. ASP.NET erm¨ glicht das schnelle Erstellen eines                               1.2 als auch den Aufruf durch eigenen Javascript-Code.
     einheitlichen Look&Feels“, indem man sogenannte                                Wenn man die .asmx Seite in einem Browser aufruft erstellt
                   ”
     Masterseiten erstellt. Innerhalb einer Masterseite wer-                                                      ¨        ¨
                                                                                    ASP.NET automatisch eine Ubersicht uber den Webservice
     den die Elemente angeordnet, die auf den verschie-                             mit einer Auflistung der Methoden, der Angabe wie diese
     denen Seiten immer gleich aussehen sollen, z. B.                                                        o
                                                                                    angesprochen werden k¨ nnen und sogar eine Testfunktion.
              u
     ein Men¨ . Durch Contentplaceholder“-Elemente be-
                       ”
     stimmt man welche Bereiche der Masterseite durch
                                                                                    5. ASP.NET und AJAX
                                                   u
     den individuellen Inhalt der Unterseiten bef¨ llt wer-
     den sollen. Sobald man eine Unterseite erstellt muss
                                                                                       Anfang 2007 wurde ein Ajax Framework als Addon f¨ r u
     man lediglich angeben ob und welche Masterseite man
                                                                                    ASP.NET 2.0 von Microsoft bereitgestellt. Mit Version 3.5
                  o
     verwenden m¨ chte.
                                                                                    wurde dieses Framework direkt in ASP.NET integriert. Ur-
  4. ASP.NET        unterst¨ tzt
                           u      verschiedene Caching-                                u
                                                                                    spr¨ nglich gab es verschiedene Komponenten innerhalb des
     Mechanismen um die Performanz einer Webseite                                   Frameworks:
                             u
     zu verbessern. Hierf¨ r werden erzeugte Ausgaben
                                                                                    ASP.NET AJAX Extensions Das Standardpaket, welches
      u                            u
     f¨ r bestimmte Webseiten f¨ r eine festgelegte Zeit
                                                                                               o                                u
                                                                                        die ben¨ tigte und von Microsoft unterst¨ tzte AJAX-
     im Arbeitsspeicher gehalten. Wenn nun ein Benutzer
                                                                                                     a      a
                                                                                        Funktionalit¨ t enth¨ lt.
     dieselbe Webseite mit dem gleichen Browser abfragt,
                                       u
     kann die Ausgabe direkt zur¨ ckgegeben werden                                  ASP.NET AJAX Futures Dieses Paket kann als eine
                                       u
     anstatt diese neu generieren zu m¨ ssen.                                           Art Previewversion verstanden werden, in der be-
                                                                                                 a                     a
                                                                                        reits zus¨ tzliche Funktionalit¨ ten ausprobiert werden
                                          o
  5. Mit ASP.NET lassen sich neben gew¨ hnlichen Web-                                    o
                                                                                        k¨ nnen. Es gibt jedoch keine Garantie, das diese auch
     seiten auch Webdienste entwickeln. Anstelle der Da-                                             a                        ¨
                                                                                        wirklich sp¨ ter ins Standardpaket ubernommen wer-
                           u
     teiendung .aspx wird f¨ r Webservices .asmx verwen-                                den.
     det. Auch hier erlaubt ASP.NET wieder eine sehr
     schnelle Entwicklung ohne lange Einarbeitungszeit.                             ASP.NET AJAX Control Toolkit Eine         Reihe   neuer
     Die Vorlage ASP.NET-Webdienst“ erstellt einem be-                                                                       u
                                                                                        Server-Steuerelemente die speziell f¨ r die schnelle
                  ”
     reits den folgenden Beispielcode, dessen HelloWorld                                                                                a
                                                                                        Realisierung verschiedener AJAX-Funktionalit¨ ten
     Methode bereits angesprochen werden kann:                                                            o
                                                                                        genutzt werden k¨ nnen. Das Control Toolkit ist
                                                                                                  a
                                                                                        standardm¨ ßig nicht in ASP.NET 3.5 enthalten und
                                                                                        muss separat nachinstalliert werden.
using     System ;
using     System . C o l l e c t i o n s . G e n e r i c ;                          Microsoft AJAX Library Diese AJAX Bibliothek besteht
using     System . L i n q ;                                                            aus reinem Javascript und ist im Extensions Paket ent-
using     System . Web ;                                                                halten.
using     System . Web . S e r v i c e s ;

[ W e b S e r v i c e ( Namespace = ” h t t p : / / t e m p u r i . o r g / ” ) ]   5.1     Anwendung
[ W e b S e r v i c e B i n d i n g ( ConformsTo = W s i P r o f i l e s .
       BasicProfile1 1 ) ]                                                                                         o
                                                                                       Das AJAX Framework erm¨ glicht sowohl serverseitige
p u b l i c c l a s s S e r v i c e : System . Web . S e r v i c e s .              AJAX-Programmierung, die wieder durch den Einsatz neu-
        WebService                                                                                              o
                                                                                    er Server-Steuerelemente gel¨ st wird, als auch clientseitige
{                                                                                   AJAX Programmierung durch Erstellung und Einbindung
       public Service ( ) {
       }
                                                                                    von Javascript. Ich werde mich im folgenden vor allem mit
                                                                                                                           a
                                                                                    der serverseitigen Entwicklung besch¨ ftigen, da ASP.NET
      [ WebMethod ]                                                                                     o
                                                                                    hier wieder eine M¨ glichkeit bietet, sehr schnell und ohne
                                              a
viel eigenen Code entsprechende Funktionalit¨ t zu verwirk-      5.5        Der Timer
lichen.
                                  ¨
Im Folgenden werde ich eine Ubersicht zu den wich-                  Der Timer kann dazu verwendet werden, um eine re-
tigen AJAX-Server-Steuerelementen geben und unser                     a
                                                                 gelm¨ ßige Aktualisierung anzustoßen, z. B. alle 30 Sekun-
HelloWorld-Beispiel modifizieren um das typische AJAX-                                     u
                                                                 den. Typische Beispiele f¨ r Anwendungsgebiete sind hier
Verhalten der partiellen Seitenaktualisierung zu implemen-       News-Ticker, Aktienkurse, etc.
tieren.
                                                                 5.6        HelloWorld mit AJAX
5.2    Der Scriptmanager
                                                                   Der folgende Code zeigt das HelloWorld-Beispiel mit
   Der Scriptmanager ist das wichtigste Server-                                   a
                                                                 AJAX-Funktionalit¨ t.
Steuerelement in Bezug auf AJAX, da jede Webseite,
                                                                 Code der .aspx Datei:
                         a
die solche Funktionalit¨ t besitzen soll, auch genau ein
                            o
Scriptmanager-Element ben¨ tigt.                                 <% Page Language =”C# ” A u t o E v e n t W i r e u p =” t r u e ”
                                                                   @
                                                                        C o d e F i l e =” D e f a u l t . a s p x . c s ” I n h e r i t s =” D e f a u l t
                                                a
Der Scriptmanager ist auf der Webseite sp¨ ter nicht
                                                                        ” %   >
            u
sichtbar, k¨ mmert sich aber im Hintergrund darum, dass          <!DOCTYPE h t m l PUBLIC ” −//W3C / / DTD XHTML 1 . 0
         o
alle ben¨ tigten Skripte aus der AJAX Bibliothek an den                  T r a n s i t i o n a l / / EN” ” h t t p : / / www. w3 . o r g / TR /
Browser gesendet werden. Er kann des Weiteren dazu ver-                 x h t m l 1 /DTD/ xhtml1−t r a n s i t i o n a l . d t d ”>
                                                                 <h t m l xmlns =” h t t p : / / www. w3 . o r g / 1 9 9 9 / x h t m l ”>
wendet werden, eigenes Javascript einzubinden und wird           <h e a d i d =” Head1 ” r u n a t =” s e r v e r ”>
              o
ebenfalls ben¨ tigt, um das Teilrendering von Webseiten zu             < t i t l e ></ t i t l e >
    o
erm¨ glichen.                                                    </ head>
                                                                 <body>
                                                                       <form i d =” form1 ” r u n a t =” s e r v e r ”>
5.3    Das UpdatePanel                                                 <d i v>
                                                                               <a s p : S c r i p t M a n a g e r ID=” S c r i p t M a n a g e r 1 ”
    Das UpdatePanel wird genutzt um partielle Seitenaktua-                               r u n a t =” s e r v e r ”>
lisierung zu implementieren. Das Element ist selbst sp¨ ter
                                                          a                     </ a s p : S c r i p t M a n a g e r >
                                                                               <a s p : U p d a t e P a n e l ID=” U p d a t e P a n e l 1 ” r u n a t =
nicht auf der Webseite sichtbar sondern fungiert wie ein
                                                                                         ” s e r v e r ”>
Container. Der Teil der Webseite der bei einem Postback                                 <C o n t e n t T e m p l a t e >
   a
sp¨ ter aktualisiert werden soll wird innerhalb des UpdatePa-                                   <a s p : B u t t o n ID=” B u t t o n 1 ” r u n a t =”
nels platziert. Sobald eine Aktualisierung erfolgt k¨ mmert
                                                      u                                                 s e r v e r ” O n C l i c k =”
                                                                                                        B u t t o n 1 C l i c k ” T e x t =” l o s
sich ASP.NET automatisch darum, dass der Inhalt außer-                                                  g e h t s ! ” />
                               a
halb des UpdatePanels unver¨ ndert bleibt, der Inhalt im In-                                    <a s p : L a b e l ID=” L a b e l 1 ” r u n a t =”
neren jedoch entsprechend modifiziert wird. Das UpdatePa-                                                s e r v e r ” T e x t =” T e x t ”></a s p :
nel bietet somit also eine einfache M¨ glichkeit dynamische
                                        o                                                               L a b e l>
                                                                                         </ C o n t e n t T e m p l a t e >
und statische Elemente von Webseiten abzugrenzen.                               </ a s p : U p d a t e P a n e l >
Das Verhalten des UpdatePanels kann unterschiedlich be-                 </ d i v>
einflusst werden. Zum einen kann man beliebig viele Upda-                </ form>
tePanels ineinander verschachteln, zum anderen kann man          </body>
                                                                 </ html>
explizit festlegen welche Ereignisse, z. B. Aktionen des Be-
nutzers, zu einer Aktualisierung f¨ hren. Hierf¨ r kann man
                                     u           u               Code der aspx.cs Datei:
eine Liste von Triggern erstellen. Des Weiteren kann man          using     System ;
festlegen ob der Inhalt bei jedem Postback oder nur unter         using     System . C o l l e c t i o n s . G e n e r i c ;
bestimmten Bedingungen aktualisiert werden soll.                  using     System . L i n q ;
                                                                  using     System . Web ;
                                                                  using     System . Web . UI ;
5.4    Der UpdateProgress                                         using     System . Web . UI . W e b C o n t r o l s ;

   Das UpdateProgress-Element wird in der Regel in Kom-          p u b l i c p a r t i a l c l a s s D e f a u l t : System . Web . UI .
bination mit einem UpdatePanel eingesetzt und erm¨ glicht
                                                      o                  Page
                                                                 {
                                                 a
die einfache Implementation einer Anzeige w¨ hrend der                  protected void Page Load ( o b j e c t sender ,
Aktualisierung, z. B. einen Fortschrittsbalken. Dies ist sinn-                 EventArgs e ) { }
voll, wenn die Verarbeitung unter Umst¨ nden eine l¨ ngere
                                         a             a                protected void Bu tt on 1 Cl ic k ( object sender ,
                                                                               EventArgs e ) {
Zeit in Anspruch nehmen kann. Optional kann auch ein Dia-                     L a b e l 1 . T e x t = ” H e l l o World ! ” ;
                                 u
log zum Abbruch der Aktion f¨ r den Benutzer angezeigt                  }
werden.                                                          }
Wenn man dieses Beispiel im Browser ausf¨ hrt, sieht man,
                                             u                    • In der Regel ist der ben¨ tigte Internet Information Ser-
                                                                                            o
                                               a
dass beim Klick auf den Button keine vollst¨ ndige Aktua-           ver von Microsoft kostenintensiver als der mit anderen
lisierung der Seite erfolgt. Dadurch, dass lediglich die Be-        Technologien oft verwendete Apache Webserver. F¨ r     u
                           a              a
schriftung des Labels ver¨ ndert wird, erf¨ hrt der Benutzer                                              u
                                                                    diesen gibt es zwar auch Module f¨ r ASP.NET, diese
     ¨
das ubliche Verhalten, das er von Desktopanwendungen ge-            sind jedoch nicht ausgereift.
                                                      u
wohnt ist. Wie man im Quelltext sieht, waren hierf¨ r nur
                                                                  • Dadurch, dass ASP.NET auf dem .NET Framework
                   a                 o
wenige Zeilen zus¨ tzlichen Codes n¨ tig. Es wurden ledig-
                                                                               u
                                                                    basiert, m¨ ssen sich .NET-fremde Entwickler hier
                                                      u
lich ein Scriptmanager und ein UpdatePanel hinzugef¨ gt, in
                                                                        a                         a
                                                                    zun¨ chst einarbeiten, was zus¨ tzlich Zeit in Anspruch
dessen ContentTemplate-Bereich der Button und das Label
                                                                    nimmt. Auf der anderen Seite profitieren Entwickler,
       u
eingef¨ gt wurden.
                                                                    die z. B. vorher Desktopanwendungen mit C# entwi-
                                                                    ckelt haben und nun in die Webentwicklung einstei-
6. Fazit                                                                                                                a
                                                                    gen, da hier der Umstieg in der Regel einfacher f¨ llt
                                                                    als auf andere Sprachen wie PHP.
                   o
   Im folgenden m¨ chte ich noch einmal die verschiedenen
                                                   a
Vor- und Nachteile von ASP.NET nennen, die mir w¨ hrend         7. Ausblick
          a
der Besch¨ ftigung mit dem Thema aufgefallen sind.
                                                                                   o
                                                                   Es ist bereits m¨ glich eine Previewversion von ASP.NET
Vorteile:                                                       4.0 herunterzuladen, es gibt allerdings noch keinen Relea-
  • Durch die Integration in .NET hat man Zugriff auf ei-                  u             u         o
                                                                setermin f¨ r eine endg¨ ltige Ver¨ ffentlichung.
    ne große und gut dokumentierte Klassenbibliothek, die       Durch die Entwicklung der Technologie Microsoft Silver-
    f¨ r viele Probleme bereits L¨ sungsans¨ tze bietet, wor-
     u                           o         a                    light kann in gewissen Teilbereichen der Webanwendungs-
    auf man aufbauen kann.                                      programmierung in Zukunft eine Konkurrenzsituation zwi-
                                                                schen ASP.NET und MS Silverlight entstehen, es ist jedoch
  • Visual Studio ist eine sehr komfortable Entwicklungs-                                                           ¨
                                                                noch nicht klar inwieweit sich diese Technologie uberhaupt
                    ¨                         u
    umgebung, die uber viele Funktionen verf¨ gt, die die       durchsetzen wird.
    Programmierung erleichtern.                                 Abschließend kann ich sagen, dass mir die Arbeit mit
                                                                ASP.NET Spaß gemacht hat und ich mich auch in Zukunft
  • Durch das Konzept der Server-Steuerelemente ist eine                                        a
                                                                weiter mit dem Thema besch¨ ftigen werde. Jedem der sich
                                 o
    sehr schnelle Entwicklung m¨ glich, man muss nur we-                              a                           o
                                                                mit mit ASP.NET n¨ her auseinandersetzen m¨ chte, emp-
                        ¨
    nig gleichen oder ahnlichen Code schreiben und kann         fehle ich einen Blick auf die Tutorials und die umfangreiche
    sich auf die eigentliche Programmierung der Funktio-        Videosammlung auf der offiziellen Internetseite, die auch in
         a
    nalit¨ t konzentrieren.                                     den Quellen angegeben ist.
  • Durch das Code-Behind-Konzept ist eine teilweise
    Trennung von Design und Verhalten m¨ glich.
                                       o                        Literatur
  • ASP.NET ist allgemein gut dokumentiert und vor al-          [1] Wenz, Christian: Programmieren mit ASP.NET AJAX,
    lem die vielen Tutorials und Videos auf der offiziel-            O’Reilly, September 2007
    len Internetseite haben mir sehr gut gefallen und waren
    sehr hilfreich bei der Einarbeitung.                        [2] Liberty, J., Xie, D.: Programmieren mit C# 3.0,
                                                                    O’Reilly, 5. Auflage, 2008
Nachteile:
                                                                [3] Offizielle ASP.NET Webseite, http://www.asp.net/, be-
  • .NET ist nicht f¨ r alle Betriebssysteme verf¨ gbar, wo-
                     u                           u                  sucht: 14.01.2009
    durch man in der Regel stark auf Windows angewiesen
    ist. Wie bereits erw¨ hnt liegt das Mono-Projekt immer
                         a                                      [4] Dr. Schwichtenberg, Holger: Artikel zu ASP.NET 2.0
    einige Zeit hinter der aktuellen Entwicklung zur¨ ck.
                                                      u             / 3.5, http://www.it-visions.de/dotnet/aspnet/start.aspx,
                                                                    besucht: 14.01.2009
  • Wie ich bereits im Kapitel zu den Server-
                                                                      u
                                                                [5] K¨ hnel A.: Visual C# Das umfassende Hand-
                         a
    Steuerelemente erl¨ utert habe, birgt die schnelle
                                                                    buch, http://www.galileocomputing.de/openbook/ visu-
    Entwicklung auch gewisse Nachteile, da man sich
                                                                    al csharp/index.htm, besucht: 14.01.2009
               a
    darauf verl¨ sst, dass ASP.NET automatisch effiziente
     o                           u
    L¨ sungen generiert was nat¨ rlich nicht immer der          [6] Lohrer,     Matthias:    Einstieg    in       ASP.NET,
    Fall ist. Man muss stets darauf achten nicht zu viel            http://openbook.galileocomputing.de/asp/,      besucht:
        o
    unn¨ tigen Overhead zu produzieren.                             14.01.2009
[7] Microsoft             Developer             Network,
    http://msdn.microsoft.com/de-de/asp.net/default.aspx,
    besucht: 14.01.2009

								
To top