<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>jQuery</title>
        <link>http://blog.codemurai.de/category/jQuery.aspx</link>
        <description>jQuery</description>
        <language>de-DE</language>
        <copyright>André Krämer</copyright>
        <generator>Subtext Version 2.6.0.1</generator>
        <item>
            <title>Mein jQuery Vortrag auf der dotnet Cologne</title>
            <link>http://blog.codemurai.de/archive/2010/06/01/mein-jquery-vortrag-auf-der-dotnet-cologne.aspx</link>
            <description>&lt;p&gt;Das Beispielprojekt meines jQuery Vortrags während der dotnet Cologne kann ab sofort &lt;a title="André Krämers jQuery und ASP.NET MVC Beispielprojekt der dotnet Cologne" href="http://www.codemurai.de/downloads/akraemer_jquery.zip" target="_blank"&gt;hier&lt;/a&gt; herunter geladen werden.&lt;/p&gt;  &lt;p&gt;Es handelt sich dabei um ein kleines ASP.NET MVC 2 Projekt, in dem folgendes genutzt wurde:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;ASP.NET MVC 2 ;-) &lt;/li&gt;    &lt;li&gt;StructureMap als IOC Container &lt;/li&gt;    &lt;li&gt;SQLite als leichtgewichtige In-Memory-DB &lt;/li&gt;    &lt;li&gt;NHibernate für den Datenbankzugriff &lt;/li&gt;    &lt;li&gt;jQuery für den Wow-Faktor ;-) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Die Solution liegt passend zur Veranstaltung im VS 2010 Format vor. Bei Bedarf kann ich aber auch eine VS 2008 Solution bereit stellen.&lt;/p&gt;  &lt;p&gt;Hauptaugenmerk solltet ihr auf die Datei aufgabenlist.js setzen. Hier befindet sich der relevante jQuery / JavaScript Code. Der ganze Rest ist nur "Infrastruktur", damit ich jQuery an einem halbwegs realistischen Beispiel zeigen kann ;-)&lt;/p&gt;  &lt;p&gt;An Feedback zu den Quellcodes bin ich immer interessiert. Am besten über das Kontaktformular, oder die während des Vortrags mitgeteilte E-Mail Adresse.&lt;/p&gt;  &lt;p&gt;Ich weiß übrigens, dass das ASP.NET MVC Projekt keine Unit Tests beinhaltet. Angesichts der Projektgröße und der verfügbaren Zeit habe ich hier ein wenig geschludert. &lt;a href="http://blog.thomasbandt.de/39/de/blog.html" target="_blank"&gt;Thomas Bandt&lt;/a&gt; hat mich während des Vortrags übrigens auch darauf aufmerksam gemacht, dass mein JavaScript Code nicht via Unit Tests geprüft wurde. Auch hier gelobe ich Besserung :-)&lt;/p&gt;  &lt;h2&gt;Literaturempfehlungen&lt;/h2&gt;  &lt;p&gt;Im Anschluss an den Vortrag wurde ich außerdem gefragt, welche Literatur ich zu dem Thema empfehlen könnte.&lt;/p&gt;  &lt;p&gt;Nun, da sich jQuery hauptsächlich mit der Modifikation des DOMs, insbesondere dem Ein- / Ausblenden sowie dynamischem CSS befasst, sollte man meiner Meinung nach zunächst über solide (X)HTML und CSS Kenntnisse verfügen (kein Witz).&lt;/p&gt;  &lt;p&gt;Zu diesem Thema kann ich das Buch Head First HTML with CSS &amp;amp; XHTML empfehlen:&lt;/p&gt; &lt;iframe style="width: 120px; height: 240px" marginheight="0" src="http://rcm-de.amazon.de/e/cm?t=codemurai-21&amp;amp;o=3&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=059610197X&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;p&gt;Außerdem können generelle JavaScript Kenntnisse auch nicht schaden ;-) Hier habe ich persönlich sehr gute Erfahrung mit dem Buch Professional JavaScript for Web Developers gemacht.&lt;/p&gt; &lt;iframe style="width: 120px; height: 240px" marginheight="0" src="http://rcm-de.amazon.de/e/cm?t=codemurai-21&amp;amp;o=3&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=047022780X&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;p&gt;Speziell zum Thema jQuery hat mir das Buch &lt;em&gt;&lt;a href="http://www.manning.com/bibeault2/" target="_blank"&gt;jQuery in Action, Second Edition&lt;/a&gt;&lt;/em&gt; sehr gut gefallen. Ich habe es mir im Rahmen des Manning Early Access Program als E-Book bestellt. Wer lieber ein gedrucktes Exemplar haben möchte, muss sich noch ein wenig gedulden, kann es aber dann auch z. B. bei Amazon bestellen.&lt;/p&gt; &lt;iframe style="width: 120px; height: 240px" marginheight="0" src="http://rcm-de.amazon.de/e/cm?t=codemurai-21&amp;amp;o=3&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=1935182323&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:765ddd0d-f614-4316-8867-2bf89f0098f9" class="wlWriterEditableSmartContent"&gt;Tags: &lt;a href="http://blog.codemurai.de/tags/.NET/default.aspx" rel="tag"&gt;.NET&lt;/a&gt;, &lt;a href="http://blog.codemurai.de/tags/ASP.NET/default.aspx" rel="tag"&gt;ASP.NET&lt;/a&gt;, &lt;a href="http://blog.codemurai.de/tags/Community/default.aspx" rel="tag"&gt;Community&lt;/a&gt;, &lt;a href="http://blog.codemurai.de/tags/jQuery/default.aspx" rel="tag"&gt;jQuery&lt;/a&gt;, &lt;a href="http://blog.codemurai.de/tags/Lernen/default.aspx" rel="tag"&gt;Lernen&lt;/a&gt;, &lt;a href="http://blog.codemurai.de/tags/Vortr%c3%a4ge/default.aspx" rel="tag"&gt;Vorträge&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blog.codemurai.de/aggbug/126.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>André Krämer</dc:creator>
            <guid>http://blog.codemurai.de/archive/2010/06/01/mein-jquery-vortrag-auf-der-dotnet-cologne.aspx</guid>
            <pubDate>Tue, 01 Jun 2010 00:25:11 GMT</pubDate>
            <comments>http://blog.codemurai.de/archive/2010/06/01/mein-jquery-vortrag-auf-der-dotnet-cologne.aspx#feedback</comments>
            <wfw:commentRss>http://blog.codemurai.de/comments/commentRss/126.aspx</wfw:commentRss>
        </item>
        <item>
            <title>dotnet Cologne 2010 - was ein riesen Spa&amp;szlig;</title>
            <link>http://blog.codemurai.de/archive/2010/06/01/dotnet-cologne-2010-was-ein-riesen-spa.aspx</link>
            <description>&lt;p&gt;Letzten Freitag hatte ich die Freude, an der &lt;a href="http://dotnet-cologne.de" target="_blank"&gt;dotnet Cologne&lt;/a&gt; teilzunehmen. Mit über 300 Teilnehmern war es ein wirklich riesiges Event, dass sich vor "professionellen", oder besser gesagt kommerziellen Konferenzen nicht verstecken muss.&lt;/p&gt;  &lt;h2&gt;Der Teilnehmer&lt;/h2&gt;  &lt;p&gt;Vor Ort war ich in mehreren Rollen. Zum einen natürlich als Teilnehmer. In dieser Rolle nutzte ich die Möglichkeit, endlich mal die Gesichter zu einigen Bekannten aus der Community zu sehen und auch mal persönlich das ein oder andere Wort zu wechseln. Außerdem hörte ich mir auch spannende Vorträge, unter anderem von &lt;a href="http://dotnet-cologne.de/Sprecher.ashx#J%C3%B6rg.Krause" target="_blank"&gt;Jörg Krause&lt;/a&gt; zu &lt;a href="http://dotnet-cologne.de/Vortraege.ashx#SP-Dev" target="_blank"&gt;Sharepoint als Entwicklungsplattform&lt;/a&gt;, &lt;a href="http://dotnet-cologne.de/Vortraege.ashx#SL4" target="_blank"&gt;Neues in Silverlight 4&lt;/a&gt; von &lt;a href="http://dotnet-cologne.de/Sprecher.ashx#Stefan.Lange" target="_blank"&gt;Stefan Lange&lt;/a&gt; sowie &lt;a href="http://dotnet-cologne.de/Vortraege.ashx#WebForms4" target="_blank"&gt;Neues in ASP.NET 4.0&lt;/a&gt; von &lt;a href="http://dotnet-cologne.de/Sprecher.ashx#Jan.Welker" target="_blank"&gt;Jan Welker&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Irritierend fand ich, dass gefühlte 90 % der Besucher von Jörg Krauses Sharepoint Vortrag keinerlei Sharepoint Vorkenntnisse hatten und somit wohl nicht im geringsten wussten, wie so eine Site, eine Sitecollection, ein Web, eine Liste, ein Webpart ... an der Oberfläche wohl aussehen. Die gleiche Situation habe ich übrigens auch mehrfach schon auf der Shareconnect (Basta Sharepoint Days) beobachtet. Vielleicht wäre hier einfach mal ein "Was ich über Sharepoint wissen sollte, bevor ich Visual Studio aufmache" Vortrag angebracht. Leider habe ich einen solchen Vortrag bisher noch auf keiner (Entwickler-)Konferenz im Angebot gesehen. Nichts desto trotz fand ich Jörgs Vortrag prima! Auch die anderen besuchten Vorträge haben mir gut gefallen, daher mein Fazit als Teilnehmer:&lt;/p&gt;  &lt;p&gt;Voller Erfolg! Gute Vorträge, gute Kontaktmöglichkeiten zur Community, was will man mehr.&lt;/p&gt;  &lt;h2&gt;Der Aussteller&lt;/h2&gt;  &lt;p&gt;Unter den Sponsoren des Events war unter anderem auch die Firma &lt;a href="http://www.infragistics.com" target="_blank"&gt;Infragistics&lt;/a&gt;. Wie auch auf anderen Konferenzen lies ich es mir als fleißiger &lt;a href="http://blogs.infragistics.com/blogs/mvps/archive/2010/05/17/introducing-infragistics-mvp-andr-233-kr-228-mer.aspx" target="_blank"&gt;Infragistics MVP&lt;/a&gt;  in den Pausen natürlich nicht nehmen, &lt;a href="http://blogs.infragistics.com/blogs/kiril_matev/default.aspx" target="_blank"&gt;Kiril&lt;/a&gt; und Nils tatkräftig zu unterstützen. Dies war auch bitter nötig, da der Andrang am Stand weit höher war, als ich es von anderen Konferenzen gewohnt war. Kamen wir normalerweise zu zweit immer ganz gut zurecht, waren dieses Mal sogar drei Personen eigentlich schon fast zu wenig.&lt;/p&gt;  &lt;p&gt;Fazit als Aussteller: Tolle Veranstaltung! Viele Kontakte, interessante und zum Teil sogar sehr trickreiche Fragen, genauso muss es sein!&lt;/p&gt;  &lt;h2&gt;Der User Group Leader&lt;/h2&gt;  &lt;p&gt;Jeder der schon mal ein User Group Treffen besucht hat wird sich sicherlich fragen:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Wo kommen eigentlich die Sprecher her?&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Nun ja, als sie ganz klein waren, wird sie voraussichtlich einer der beiden hier unten gebracht haben.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.codemurai.de/images/dotnetCologne2010waseinriesenSpa_14431/image.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="/images/localhost/image_thumb.png" width="244" height="184" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Foto: &lt;a href="http://www.flickr.com/photos/valter/"&gt;&lt;b&gt;Valter Jacinto | Portugal&lt;/b&gt;&lt;/a&gt;   &lt;a title="http://www.flickr.com/photos/valter/87429062/sizes/m/" href="http://www.flickr.com/photos/valter/87429062/sizes/m/"&gt;http://www.flickr.com/photos/valter/87429062/sizes/m/&lt;/a&gt;       &lt;br /&gt;Creative Commons License&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Irgendwann werden die Jungs und Mädels dann aber groß und spätestens dann stellt sich für einen User Group Leiter die Frage: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Wo bekomme ich eigentlich Sprecher her?&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Ein besonders guter Ort, Sprecher für die eigene User Group zu finden ist selbstverständlich eine Konferenz, denn dort treten Speaker häufig in Rudeln auf ;-)&lt;/p&gt;  &lt;p&gt;Also machte ich mich während der dotnet Cologne auf den Weg und zog Sprecher für die nächsten Treffen der .&lt;a href="http://www.dnug-koblenz.de" target="_blank"&gt;NET User Group Koblenz&lt;/a&gt; an Land.&lt;/p&gt;  &lt;p&gt;Die Ausbeute war übrigens mit zwei definitiven, einer relativ verbindlichen und einer losen Zusage recht gut. Daher auch hier: dotnet Cologne, 12 Points ;-)&lt;/p&gt;  &lt;h2&gt;Der Sprecher&lt;/h2&gt;  &lt;p&gt;Zu guter letzt (und angesichts der Agenda ist dies wörtlich gemeint), war ich auch als Sprecher unterwegs. &lt;a href="http://dotnet-cologne.de/Sprecher.ashx#Andre.Kraemer" target="_blank"&gt;Mein&lt;/a&gt; Thema war die &lt;a href="http://dotnet-cologne.de/Vortraege.ashx#jQuery" target="_blank"&gt;Einführung in jQuery&lt;/a&gt; unter dem spontan geänderten Titel:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;jQuery - oder warum Sie JavaScript in Zukunft nicht mehr hassen werden.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Den Verlauf des Vortrags würde ich wie folgt beschreiben&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Der Saal füllt sich, die Menge wird still. Ich will loslegen, aber mein Mikro überlegt sich, dass es sich lieber in meinem T-Shirt verdreht. Kein Mensch hört mich ... so ein Mist &lt;/li&gt;    &lt;li&gt;Mikro Problem gelöst, schnell durch die Folien gejagt. Auf gehts zur Demo! &lt;/li&gt;    &lt;li&gt;Meine ASP.NET MVC Anwendung reißt niemand vom Hocker und stößt kaum auf Interesse &lt;/li&gt;    &lt;li&gt;Ist zum Glück nicht schlimm, schließlich ist mein Thema ja auch jQuery und nicht ASP.NET MVC ;-) &lt;/li&gt;    &lt;li&gt;Die ersten UI Gimmicks (alternierende Tabellenzeilen, Hover Effekte) zaubern ein müdes Lächeln auf die Gesichter der Menge - da muss wohl noch mehr her &lt;/li&gt;    &lt;li&gt;Ich erstelle mit einer Zeile jQuery Code auf- und zuklappbare Bereiche in der Sidebar der Anwendung. Im Publikum sehe ich die ersten funkelnden Augen &lt;/li&gt;    &lt;li&gt;Auf der Welle muss ich weiter reiten, also jetzt schnell ein wenig Ajax;-) &lt;/li&gt;    &lt;li&gt;In der Einleitung habe ich etwas vom Update Panel erzählt. Heißt dann wohl ich sollte auch ein wenig WebForms zeigen. Ich entschließe mich also, im Firebug mal zu zeigen, was über die Leitung geht wenn man Ajax mit dem Update Panel &lt;strike&gt;erlegt&lt;/strike&gt; erledigt. Als ich zum ViewState scrolle scheinen einige Teilnehmer zu glauben ich hätte gerade die Matrix gehacked oder zumindest gedebugged. &lt;/li&gt;    &lt;li&gt;Oh je, nur noch 3 Minuten Zeit und ich habe doch versprochen früher Schluss zu machen - jetzt muss schnell etwas großartiges her. Ich greife also noch mal in die Trickkiste und greife zu meinem größten Trumpf:      &lt;br /&gt;&lt;strong&gt;runde Ecken;-)        &lt;br /&gt;&lt;/strong&gt;Puh, geschafft, die Zuschauer jubeln. Ein Glück, dass es runde Ecken gibt ;-) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Mein Fazit als Sprecher lautet also:&lt;/p&gt;  &lt;p&gt;Wahnsinn! Auch wenn es nur ein Einsteiger Vortrag war und laut Handzeichen mindestens die Hälfte der Anwesenden jQuery bereits kannte und nutzte war das Publikum allem Anschein nach während des Vortrags voll dabei. So macht vortragen Spaß!&lt;/p&gt;  &lt;h2&gt;Der Grillfreund&lt;/h2&gt;  &lt;p&gt;Zum Abschluss fand für einige Teilnehmer, Sprecher und Sponsoren dann noch die durch Microsoft gesponsorte und durch Jan Welker gestifftete Grill-Party des dotnet Forums statt. Essen und Getränke waren sehr lecker, die Gespräche spannend, von daher auch hier mein Kompliment.&lt;/p&gt;  &lt;h2&gt;Fazit&lt;/h2&gt;  &lt;p&gt;Der Besuch der dotnet Cologne hätte in keinster Weise besser laufen können. Großes Lob und alle Achtung an die Organisatoren! Nächstes Jahr bin ich - in welcher Form auch immer - sicherlich auch wieder mit dabei!&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Hey, du hast dir die Zeit genommen, den ganzen Beitrag zu lesen, oder zumindest bis hier hin zu scrollen. Nimm dir doch bitte auch noch die Zeit, ihn über den unten stehenden Button bei dotnet-kicks.de zu kicken!&lt;/em&gt;&lt;/p&gt;&lt;img src="http://blog.codemurai.de/aggbug/127.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>André Krämer</dc:creator>
            <guid>http://blog.codemurai.de/archive/2010/06/01/dotnet-cologne-2010-was-ein-riesen-spa.aspx</guid>
            <pubDate>Tue, 01 Jun 2010 00:03:46 GMT</pubDate>
            <comments>http://blog.codemurai.de/archive/2010/06/01/dotnet-cologne-2010-was-ein-riesen-spa.aspx#feedback</comments>
            <wfw:commentRss>http://blog.codemurai.de/comments/commentRss/127.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Ein zweites Zuhause</title>
            <link>http://blog.codemurai.de/archive/2010/05/23/ein-zweites-zuhause.aspx</link>
            <description>&lt;p&gt;Habe ich für meine Blog Beiträge gefunden. Zumindest die englischen, die einen Bezug zu den &lt;a title="NetAdvantage for .NET" href="http://www.infragistics.com/dotnet/netadvantage.aspx" target="_blank"&gt;Infragistics NetAdvantage Controls&lt;/a&gt; haben. &lt;/p&gt;  &lt;p&gt;Seit kurzem gibt auf der Infragistics Homepage nämlich &lt;a title="Infragistics MVPs" href="http://blogs.infragistics.com/blogs/mvps/default.aspx" target="_blank"&gt;einen MVP Blog&lt;/a&gt;, für das ich einer der Autoren bin.&lt;/p&gt;  &lt;p&gt;Selbstverständlich gibt es auch schon einen &lt;a title="Introducing Infragistics MVP André Krämer" href="http://blogs.infragistics.com/blogs/mvps/archive/2010/05/17/introducing-infragistics-mvp-andr-233-kr-228-mer.aspx" target="_blank"&gt;ersten Blog Post von mir&lt;/a&gt;. Dieser beinhaltet neben einer kurzen (OK, langen ;-)) Vorstellung ein kleines jQuery Script, welches hilfreich beim Einsatz des Infragistics ASP.NET Aikido WebDropdown Controls ist.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.codemurai.de/images/EinzweitesZuhause_E6B7/igmvpblog.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="igmvpblog" src="/images/localhost/igmvpblog_thumb.png" width="244" height="131" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:60231d41-80be-4142-957a-819716f52cd9" class="wlWriterEditableSmartContent"&gt;Tags: &lt;a href="http://blog.codemurai.de/tags/ASP.NET/default.aspx" rel="tag"&gt;ASP.NET&lt;/a&gt;, &lt;a href="http://blog.codemurai.de/tags/Infragistics/default.aspx" rel="tag"&gt;Infragistics&lt;/a&gt;, &lt;a href="http://blog.codemurai.de/tags/Community/default.aspx" rel="tag"&gt;Community&lt;/a&gt;, &lt;a href="http://blog.codemurai.de/tags/jQuery/default.aspx" rel="tag"&gt;jQuery&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blog.codemurai.de/aggbug/128.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>André Krämer</dc:creator>
            <guid>http://blog.codemurai.de/archive/2010/05/23/ein-zweites-zuhause.aspx</guid>
            <pubDate>Sun, 23 May 2010 17:24:47 GMT</pubDate>
            <comments>http://blog.codemurai.de/archive/2010/05/23/ein-zweites-zuhause.aspx#feedback</comments>
            <wfw:commentRss>http://blog.codemurai.de/comments/commentRss/128.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Lebendige ASP.NET Webseiten mit jQuery</title>
            <link>http://blog.codemurai.de/archive/2010/05/04/lebendige-asp-net-webseiten-mit-jquery.aspx</link>
            <description>&lt;p&gt;Moderne Webseiten beinhalten in der heutigen Zeit einen hohen Anteil clientseitiger Quellcodes in Form von JavaScript. Für diesen Anwender führt dies im Idealfall zu einer verbesserten Benutzbarkeit der Applikation, da diese neben netten UI Effekten nun meist durch Ajax auch weitaus flüssiger bedienbar ist.&lt;/p&gt;  &lt;p&gt;Bei vielen Entwicklern solcher dynamischer Webseiten führt der vermehrte JavaScript Anteil allerdings häufig zu Wein- und/oder Schreikrämpfen, denn nur die wenigsten mögen JavaScript wirklich. Die Ursachen für diese Antipathie liegen jedoch selten an JavaScript als Sprache selbst, sondern in den meisten Fällen eher an der unterschiedlichen Implementation des DOMs / BOMs durch die verschiedenen Browserhersteller. Diese Inkonsistenz führt nämlich dazu, dass JavaScript Code, der in einem Browser bzw. einer Version eines Browsers problemlos läuft im nächsten Browser Fehler verursacht und schlichtweg nicht läuft.&lt;/p&gt;  &lt;p&gt;Weiter wird häufig bemängelt, das Selektionen fernab von einem einfachen &lt;em&gt;document.getElementById(IdMeinesElements)&lt;/em&gt; relativ kompliziert sind. Als Beispiel wären hier zu nennen: alle Elemente mit einer bestimmten Klasse, ungerade Zeilen einer Tabelle, das aktivierte Element einer RadioButtonGroup usw.&lt;/p&gt;  &lt;h2&gt;Und nun?&lt;/h2&gt;  &lt;p&gt;Nun gibt es folgende Strategien mit diesen Problemen umzugehen:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Man drückt sich immer davor JavaScript zu schreiben und wälzt dies auf einen Kollegen ab &lt;/li&gt;    &lt;li&gt;Man kopiert sich irgendwoher JavaScript Codeschnippsel, die angeben browserunabhängig zu sein und hofft, das dem auch so ist &lt;/li&gt;    &lt;li&gt;Man investiert Unmengen Zeit in die eigene browserübergreifende Implementierung diverser Funktionalitäten &lt;/li&gt;    &lt;li&gt;Man bedient sich eines der am Markt verfügbaren JavaScript Frameworks &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Strategie Nr. 1 mag eine Weile ganz gut funktionieren, früher oder später wird aber der Zeitpunkt kommen, an dem man sich nicht mehr drücken kann (ich spreche da aus eigener Erfahrung ;-)). &lt;/p&gt;  &lt;p&gt;Strategie Nr. 2 funktioniert immer dann, wenn der Umfang des benötigten JavaScript Codes überschaubar ist. Gemeinsam mit der Applikation wird aber auch irgendwann der zusammenkopierte Code wachsen und die Wartbarkeit entsprechend sinken.&lt;/p&gt;  &lt;p&gt;Strategie Nr. 3 ist sicherlich eine prima Idee für alle die außerdem auch ein eigenes Logging Framework, einen eigenen OR Mapper usw implementiert haben, oder kurz gesagt für alle die gerne das Rad neu erfinden ;-)&lt;/p&gt;  &lt;p&gt;Gangbar scheint also nur Strategie Nr. 4 zu sein. Schaut man sich nun am Markt um, stößt man unweigerlich auf &lt;a href="http://www.jquery.com" target="_blank"&gt;jQuery&lt;/a&gt;. Die freie JavaScript Library adressiert unter anderem genau die zuvor genannten Probleme und hat in letzter Zeit einen wahren Hype verursacht. Dieser Rummel wurde sicherlich auch dadurch verstärkt, dass Microsoft jQuery &lt;a title="jQuery and Microsoft, Scott Gu" href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx" target="_blank"&gt;offiziell supportet, mit Visual Studio ausliefert&lt;/a&gt; und die Arbeiten an der &lt;a title="Microsoft, jQuery, and Templating" href="http://stephenwalther.com/blog/archive/2010/03/16/microsoft-jquery-and-templating.aspx" target="_blank"&gt;hauseigenen JavaScript Bibliothek ASP.NET Ajax Library zugunsten von jQuery eingestellt hat&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Wie legen wir nun aber mit jQuery los? Genau diese Frage möchte ich in diesem und den folgenden Blog Posts beantworten. Da jQuery in einem neuen ASP.NET MVC Projekt automatisch hinzugefügt wird und ASP.NET MVC Entwickler somit sowieso jQuery gewöhnt sind, soll als Beispiel zunächst eine Webforms Anwendung dienen. &lt;/p&gt;  &lt;h2&gt;Auf die Plätze, fertig, los!&lt;/h2&gt;  &lt;p&gt;Wenn man jQuery benutzen möchte, besteht der erste Schritt darin, die freie JavaScript Library in seine Seite einzubinden. Dazu lädt man unter &lt;a href="http://www.jQuery.com"&gt;http://www.jQuery.com&lt;/a&gt; einfach die aktuelle Version der Bibliothek herunter und kopiert diese anschließend zum Beispiel in einen Unterordner Scripts seiner Webanwendung. jQuery ist übrigens in einer für Menschen lesbaren (z. B. jQuery-1.4.2.js) und in einer verkleinerten Version (z, B. jQuery-1.4.2.&lt;strong&gt;min&lt;/strong&gt;.js) verfügbar. In der verkleinerten Version sind unnötige Leerzeichen, Zeilenumbrüche und Kommentare entfernt. Außerdem wurden die Namen der Variablen und nicht öffentlichen Funktionen auf ein oder zwei Buchstaben verkürzt. Sinn dieser Maßnahme ist es die zum Client übertragene Datenmenge zu reduzieren. So ist die verkleinerte Version knappe 100 kb kleiner als die lesbare Variante. Für Produktivszenarien sollte demnach also in jedem Fall die &lt;strong&gt;.min&lt;/strong&gt; Version genutzt werden, wohingegen während der Entwicklungszeit eher die lesbare Variante eingebunden werden sollte. So kann man den Scriptcode im Fall der Fälle nämlich noch debuggen.&lt;/p&gt;  &lt;p&gt;So, genug der Vorrede und zurück zur Praxis. Tatsächlich einbinden können wir jQuery nun über folgende Zeile:&lt;/p&gt;  &lt;pre class="brush: xml"&gt;&amp;lt;script src="Scripts/jquery-1.4.2.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;

&lt;p&gt;Platzieren sollte man diese Zeile übrigens innerhalb des Kopfbereichs der Seite:&lt;/p&gt;

&lt;pre class="brush: xml"&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %&amp;gt;
&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;
&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;
&amp;lt;head runat="server"&amp;gt;
    &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;
    &amp;lt;script src="Scripts/jquery-1.4.2.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;&lt;/pre&gt;

&lt;h2&gt;Prima, aber was mache ich nun damit?&lt;/h2&gt;

&lt;p&gt;Gute Frage! Jetzt haben wir jQuery zwar eingebunden, aber wie geht es jetzt weiter. Dazu sollten wir zunächst kurz einen Blick darauf werfen, was wir normalerweise mit JavaScript machen. In den meißten Fällen reduziert sich dies auf:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Elemente aus dem DOM zu selektieren &lt;/li&gt;

  &lt;li&gt;Selektierte Elemente zu manipulieren (ein- / ausblenden, Styledefinitionen zu verändern...) &lt;/li&gt;

  &lt;li&gt;Code bei bestimmten Ereignissen ausführen (z. B. click event) &lt;/li&gt;

  &lt;li&gt;Neue Elemente dem DOM hinzuzufügen &lt;/li&gt;

  &lt;li&gt;Elemente aus dem DOM zu löschen &lt;/li&gt;

  &lt;li&gt;AJAX Aufrufe zum Server zu machen und die Antwort zu Verarbeiten &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Als kleinen Einstieg picken wir uns exemplarisch die ersten drei Punkte heraus. Wir werden also DOM Elemente selektieren und diese manipulieren. Geschehen wird dies bei dem Klick auf einen Button. &lt;/p&gt;

&lt;p&gt;Dazu werden wir eine Meldungszeile, ähnlich wie man sie von Stackoverflow kennt nachbauen.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.codemurai.de/images/LebendigeASP.NETWebseitenmitjQuery_10249/01_so_message.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="01_so_message" src="/images/localhost/01_so_message_thumb.png" width="244" height="50" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Der erste Schritt besteht in der Erstellung eines HTML und CSS Grundgerüsts:&lt;/p&gt;

&lt;pre class="brush: xml" name="code"&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %&amp;gt;

&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;
&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;
&amp;lt;head runat="server"&amp;gt;
    &amp;lt;title&amp;gt;jQuery Demo&amp;lt;/title&amp;gt;

    &amp;lt;style type="text/css"&amp;gt;
        body
        {
            margin: 0px;
        }
        #message
        {
            background-color: #FFFF88;
            border-bottom: solid 1px #000000;
            font-weight: bold;
            text-align: center;
            padding: 8px;
            margin: 0px;
            display:none;
            font-family: Arial, Verdana, Sans-Serif;
        }
        #message a
        {
            float: right;
            border: solid 3px black;
            font-family: Arial, Verdana, Sans-Serif;
            font-weight: bold;
            text-decoration: none;
            color: Black;
        }
    &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;form id="form1" runat="server"&amp;gt;
    &amp;lt;div id="message"&amp;gt;&amp;lt;span&amp;gt;Dummy Nachricht&amp;lt;/span&amp;gt;&amp;lt;a href="Default.aspx"&amp;gt;X&amp;lt;/a&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div id="content"&amp;gt;
        &amp;lt;p&amp;gt;
            Dies ist eine jQuery Demowebsite&amp;lt;/p&amp;gt;
        &amp;lt;button id="showMessage"&amp;gt;
            Klick mich&amp;lt;/button&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;

&lt;p&gt;Wie man sieht, wird ein DIV Element  mit dem Namen "&lt;em&gt;message&lt;/em&gt;" erstellt, dass als Unterlemente ein SPAN Element und einen Link enthält. Über CSS wird dieses DIV Element noch ein wenig gestyled und initial ausgeblendet. Außerdem ist auf der Seite noch ein Button definiert. Ein Klick auf diesen Button soll der Auslöser sein, um die Meldung anzuzeigen.&lt;/p&gt;

&lt;p&gt;Wie aber genau sieht nun der Code aus, um die Nachricht - mit verändertem Text - anzuzeigen?&lt;/p&gt;

&lt;p&gt;Mit der Hilfe von jQuery ist dies garnicht so schwer:&lt;/p&gt;

&lt;pre class="brush: js" name="code"&gt;$("#showMessage").click(function(evt) {
    evt.preventDefault();
    $("#message span").text("Du hast den Button geklickt. Klicke nun auf das X, um die Nachricht auszublenden.");
    $("#message").fadeIn(2000);
});&lt;/pre&gt;
Auf den ersten Blick mag der Code etwas verwirrend aussehen. Vor allem durch die vielen $-Zeichen. Daher ein paar erklärende Worte: 

&lt;p&gt;In Zeile 1 selektieren wir mit dem Befehl: &lt;em&gt;$("#showMessage")&lt;/em&gt; zunächst das DOM Element mit der ID showMessage, also unseren Button. Das $-Zeichen ist übrigens ein Alias für die jQuery Funktion. Statt $("message") hätte ich also auch jQuery("$message") schreiben können. Die Rückgabe des Aufrufs - unabhängig ob via jQuery(...) oder $(...) ist ein Objekt vom Typ jQuery. Dieses Objekt beinhaltet die selektieren DOM Elemente bzw. das selektierte DOM Element sowie einige weitere Funktionen.&lt;/p&gt;

&lt;p&gt;In unserem Fall bekommen wir also ein Objekt vom Typ jQuery zurück, dass das DOM Element &lt;em&gt;showMessage&lt;/em&gt; beinhaltet. Für dieses DOM Element wird nun eine anonyme Funktion als Handler für das Ereignis Click registriert.&lt;/p&gt;

&lt;p&gt;In Zeile 2 wird mit dem Befehl &lt;em&gt;evt.preventDefault();&lt;/em&gt; nun die Standardaktion die der Browser bei diesem Ereignis, also z. B. das posten des Formulars nach Klick auf den Button, verhindert.&lt;/p&gt;

&lt;p&gt;In Zeile 3 werden anschließend alle span Elemente innerhalb des DOM Elements mit der Id message selektiert. In unserem Fall ist dies also genau eins. Für dieses span Element wird mit der Funktion &lt;em&gt;text&lt;/em&gt; jetzt ein neuer Text vergeben. Außerdem wird das Element mit der Id &lt;em&gt;message&lt;/em&gt; in Zeile 4 langsam (über einen Zeitraum von zwei Sekunden) eingeblendet.&lt;/p&gt;

&lt;p&gt;Der Quellcode zum Ausblenden der Nachricht sieht ähnlich aus:&lt;/p&gt;

&lt;pre class="brush: js"&gt;$("#message a").click( function(evt) {
     evt.preventDefault();
     $("#message").fadeOut("slow");
 });&lt;/pre&gt;

&lt;p&gt;In Zeile 1 wird an alle A-Elemente innerhalb des DOM Elements mit der Id &lt;em&gt;message &lt;/em&gt;ein Eventhandler für das Ereignis Click angehangen. Dieser verhindert in Zeile 2 die Standardaktion des Links und blendet in Zeile 3 unsere Nachrichtenzeile wieder aus. Dieses mal wird statt einer Angabe in Millisekunden der String "slow" als Argument übergeben. Dieser ist in den jQuery Quellcodes mit einem Wert von 600 ms hinterlegt.&lt;/p&gt;

&lt;h2&gt;Perfekt, aber wo schreibe ich den Code nun rein?&lt;/h2&gt;

&lt;p&gt;So, jetzt wo wir eigentlich den ganzen Quellcode fertig haben stellt sich natürlich die Frage, wie wir ihn in unsere Seite einbinden. Eine naive Implementierung sähe wie folgt aus:&lt;/p&gt;

&lt;pre class="brush: js" name="code"&gt;&amp;lt;head&amp;gt;
&amp;lt;!-- ... --&amp;gt;
&amp;lt;script type="text/javascript"&amp;gt;
    $("#showMessage").click(function(evt) {
        evt.preventDefault();
        $("#message span").text("Du hast den Button geklickt. Klicke nun auf das X, um die Nachricht auszublenden.");
        $("#message").fadeIn(2000);
    });
    $("#message a").click( function(evt) {
        evt.preventDefault();
        $("#message").fadeOut("slow");
    });
&amp;lt;/script&amp;gt;
&amp;lt;!-- ... --&amp;gt;
&amp;lt;/head&amp;gt;&lt;/pre&gt;

&lt;p&gt;Der Code würde also einfach in ein Scripttag innerhalb des Head Tags kopiert werden. &lt;strong&gt;Dies läuft so nicht&lt;/strong&gt;! Der Grund ist, dass mit diesem Code versucht wird, ein Eventhandler an ein DOM Element zu binden, das es zu diesem Zeitpunkt noch garnicht gibt.&lt;/p&gt;

&lt;p&gt;Wie sieht aber die Lösung für das Problem aus?&lt;/p&gt;

&lt;h2&gt;Alles zu seiner Zeit&lt;/h2&gt;

&lt;p&gt;Wie wir zuvor gesehen haben, ist unser Code wirkungslos, wenn wir ihn ausführen ehe es ein entsprechendes DOM Element gibt. Daher sollten wir ihn erst auslösen, sobald das DOM vollständig initialisiert ist.&lt;/p&gt;

&lt;p&gt;Ein weg dies zu erreichen wäre es, den Code aufzurufen wenn das Ereignis &lt;em&gt;window.onload&lt;/em&gt; eintritt:&lt;/p&gt;

&lt;pre class="brush: js"&gt;window.onload = function() {
  $("#showMessage").click(function(evt) {
     evt.preventDefault();
     // Restlicher Code hier
  });
}&lt;/pre&gt;

&lt;p&gt;Diese Variante würde bereits fehlerfrei funktionieren. Allerdings wird das Ereignis onload erst ausgelöst, wenn das DOM vollständig initialisiert wurde &lt;strong&gt;und&lt;/strong&gt; alle externen Ressourcen, wie zum Beispiel Bilder oder Stylesheets geladen wurden. Dies kann von Fall zu Fall recht lange dauern, so dass der Anwender den Button bereits anklicken könnte, ohne dass unser Script ausgeführt wird. Zum Glück bietet jQuery einen besseren Ansatz, nämlich &lt;em&gt;$(document).ready&lt;/em&gt;. In dieser Variante wird das Ereignis ready ausgelöst, sobald das DOM vollständig initialisiert wurde, aber &lt;strong&gt;bevor&lt;/strong&gt; externe Ressourcen geladen wurden.&lt;/p&gt;

&lt;p&gt;Das vollständige Beispiel mit $(document).ready sieht dann wie folgt aus:&lt;/p&gt;

&lt;pre class="brush: xml"&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %&amp;gt;

&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;
&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;
&amp;lt;head runat="server"&amp;gt;
    &amp;lt;title&amp;gt;jQuery Demo&amp;lt;/title&amp;gt;

    &amp;lt;script src="Scripts/jquery-1.4.1.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;

    &amp;lt;style type="text/css"&amp;gt;
        body
        {
            margin: 0px;
        }
        #message
        {
            background-color: #FFFF88;
            border-bottom: solid 1px #000000;
            font-weight: bold;
            text-align: center;
            padding: 8px;
            margin: 0px;
            display:none;
            font-family: Arial, Verdana, Sans-Serif;
        }
        #message a
        {
            float: right;
            border: solid 3px black;
            font-family: Arial, Verdana, Sans-Serif;
            font-weight: bold;
            text-decoration: none;
            color: Black;
        }
    &amp;lt;/style&amp;gt;

    &amp;lt;script type="text/javascript"&amp;gt;
        $(document).ready(function() {
            $("#showMessage").click(function(evt) {
                evt.preventDefault();
                $("#message span").text("Du hast den Button geklickt. Klicke nun auf das X, um die Nachricht auszublenden.");
                $("#message").fadeIn(2000);
            });
            $("#message a").click(function(evt) {
                evt.preventDefault();
                $("#message").fadeOut("slow");
            }
        }
      });
    &amp;lt;/script&amp;gt;

&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;form id="form1" runat="server"&amp;gt;
    &amp;lt;div id="message"&amp;gt;&amp;lt;span&amp;gt;Dummy Nachricht&amp;lt;/span&amp;gt;&amp;lt;a href="Default.aspx"&amp;gt;X&amp;lt;/a&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div id="content"&amp;gt;
        &amp;lt;p&amp;gt;
            Dies ist eine jQuery Demowebsite&amp;lt;/p&amp;gt;
        &amp;lt;button id="showMessage"&amp;gt;
            Klick mich&amp;lt;/button&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;

&lt;h2&gt;Ausblick und Fazit&lt;/h2&gt;

&lt;p&gt;Wie dieser Blog Eintrag gezeigt hat, ist jQuery eine recht komfortabel zu bediene JavaScript Library, mit der sich mit wenigen Zeilen Script Code interessante Effekte erzielen lassen. Neben der intuitiven und Browser unabhängigen API besticht die Bibliothek vor allem durch die Fülle an Funktionen und erhältlichen Plug-Ins. Selbstverständlich konnte ich hier nur einen kurzen (ersten) Einblick verschaffen. Da ich das Thema Clientseitige Entwicklung in (ASP.NET) Webanwendungen jedoch für sehr interessant halte, habe ich vor in der nächsten Zeit weitere Einträge zum Thema jQuery mit folgenden Schwerpunkten zu schreiben:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Nutzen von Content Delivery Networks (CDNs) &lt;/li&gt;

  &lt;li&gt;jQuery Selektoren &lt;/li&gt;

  &lt;li&gt;Möglichkeiten der DOM Manipulation &lt;/li&gt;

  &lt;li&gt;jQuery und Firebug &lt;/li&gt;

  &lt;li&gt;jQuery Plugins selber entwickeln &lt;/li&gt;

  &lt;li&gt;jQuery UI &lt;/li&gt;

  &lt;li&gt;jQuery Utility Funktionen &lt;/li&gt;

  &lt;li&gt;jQuery und Ajax für Webforms und ASP.NET MVC &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eventuell werde ich im Anschluss an die Artikel auch kurze Video Tutorials bereitstellen.&lt;/p&gt;

&lt;p&gt;Bevor ich allerdings loslege würde mich natürlich interessieren, ob das Thema für euch überhaupt von Interesse ist. Am liebsten in Form eines kurzen Kommentars.&lt;/p&gt;

&lt;p&gt;Sollte jemand von euch übrigens das Verlangen haben, das Thema jQuery, oder auch generell ASP.NET mit mir persönlich in lockerer Atmosphäre zu diskutieren: Am 28. Mai werde ich einen &lt;strong&gt;Einsteigervortrag&lt;/strong&gt; zu jQuery auf der &lt;a title="Homepage der dotnet Cologne 2010" href="http://dotnet-cologne.de/" target="_blank"&gt;dotnet Cologne 2010&lt;/a&gt; halten. Über zahlreiche Besucher des Vortrags und natürlich auch spannende Diskussionen danach würde ich mich sehr freuen.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.dotnet-cologne.de/public/Upload/Werbung/dc2010_Sprecher_180x80.png" /&gt; &lt;/p&gt;

&lt;p&gt;In den Pausen findet man ihr mich übrigens wahrscheinlich im Ausstellerbereich am Stand der Firma &lt;a title="Homepage der Firma Infragistics" href="http://www.infragistics.com" target="_blank"&gt;Infragistics&lt;/a&gt;. Dort wäre ich dann zusätzlich auch für den ein oder anderen Plausch über die &lt;a href="http://www.infragistics.com/dotnet/netadvantage.aspx" target="_blank"&gt;Infragistics NetAdvantage&lt;/a&gt; Komponenten zu haben.&lt;/p&gt;

&lt;p&gt;&lt;em /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;War dieser Artikel hilfreich für dich? Dann kicke ihn doch bitte bei dotnet-kicks.de!&lt;/em&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e333657d-0716-4fda-972d-3b6d14bd7580" class="wlWriterEditableSmartContent"&gt;Tags: &lt;a href="http://blog.codemurai.de/tags/jQuery/default.aspx" rel="tag"&gt;jQuery&lt;/a&gt;, &lt;a href="http://blog.codemurai.de/tags/ASP.NET/default.aspx" rel="tag"&gt;ASP.NET&lt;/a&gt;, &lt;a href="http://blog.codemurai.de/tags/Webentwicklung/default.aspx" rel="tag"&gt;Webentwicklung&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blog.codemurai.de/aggbug/130.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>André Krämer</dc:creator>
            <guid>http://blog.codemurai.de/archive/2010/05/04/lebendige-asp-net-webseiten-mit-jquery.aspx</guid>
            <pubDate>Tue, 04 May 2010 20:47:09 GMT</pubDate>
            <comments>http://blog.codemurai.de/archive/2010/05/04/lebendige-asp-net-webseiten-mit-jquery.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blog.codemurai.de/comments/commentRss/130.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Microsoft, Ajax und JQuery</title>
            <link>http://blog.codemurai.de/archive/2010/03/17/microsoft-ajax-und-jquery.aspx</link>
            <description>&lt;p&gt;Wie &lt;a title="Stephen Walters Blog" href="http://stephenwalther.com/" target="_blank"&gt;Stephen Walter&lt;/a&gt; in seinem Blog angekündigt hat, stoppt Microsoft die Entwicklung des eigenen &lt;a href="http://ajax.codeplex.com" target="_blank"&gt;clientseitigen ASP.NET Ajax Libra&lt;/a&gt;ry und steuert stattdessen &lt;a href="http://blog.jquery.com/2010/03/16/microsoft-to-expand-its-collaboration-with-the-jquery-community/" target="_blank"&gt;Code zu jQuery&lt;/a&gt; bei. Bedeutet Microsoft hat jQuery nicht "übernommen", sondern steuert wie jeder andere einfach nur Quellcode bei bzw. schlägt Features vor, die anschließend durch das jQuery Team geprüft werden.&lt;/p&gt;  &lt;p&gt;Da die Beta der &lt;a href="http://ajax.codeplex.com" target="_blank"&gt;ASP.NET Ajax Library&lt;/a&gt; nun bereits seit November verfügbar war, überraschte mich diese Ankündigung ein wenig. Andererseits fragte ich mich, je tiefer ich mich mit der Library beschäftigte, sowieso weshalb man den clientseitigen Teil neben jQuery überhaupt brauchen würde.&lt;/p&gt;  &lt;p&gt;Jedem der sich nun genötigt fühlt, jQuery zu lernen, dem kann ich nur wärmstens &lt;a title="Blog von Dave Ward mit vielen Tipps und Tricks zu jQuery" href="http://encosia.com/" target="_blank"&gt;Dave Wards Blog&lt;/a&gt; empfehlen. Außerdem ist seine &lt;a href="http://tekpub.com/view/jquery/1" target="_blank"&gt;Tekpub jQuery Serie&lt;/a&gt; die er gemeinsam mit James Avery aufzeichnet natürlich auch Pflichtprogramm.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:807f195f-55ec-4cf0-b03d-a6f0dc4c9fe1" class="wlWriterEditableSmartContent"&gt;Tags: &lt;a href="http://blog.codemurai.de/tags/ASP.NET/default.aspx" rel="tag"&gt;ASP.NET&lt;/a&gt;, &lt;a href="http://blog.codemurai.de/tags/jQuery/default.aspx" rel="tag"&gt;jQuery&lt;/a&gt;, &lt;a href="http://blog.codemurai.de/tags/Webentwicklung/default.aspx" rel="tag"&gt;Webentwicklung&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blog.codemurai.de/aggbug/139.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>André Krämer</dc:creator>
            <guid>http://blog.codemurai.de/archive/2010/03/17/microsoft-ajax-und-jquery.aspx</guid>
            <pubDate>Wed, 17 Mar 2010 11:41:29 GMT</pubDate>
            <comments>http://blog.codemurai.de/archive/2010/03/17/microsoft-ajax-und-jquery.aspx#feedback</comments>
            <wfw:commentRss>http://blog.codemurai.de/comments/commentRss/139.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>
