www.®olandsee.net

... all kinds of stuff

Webparts Drag and Drop und Firefox

by rolosee 18. July 2008 07:18

Die Unterstützung der ASP.NET 2.0 Webparts im Firefox ist von Microsoft in den letzten ASP.NET Releases leider stark vernachläßigt worden. Besonders die Drag and Drop Funktionalität funktioniert im FF und auch in anderen Browsern überhaupt nicht. Nach längerer Recherche im Web bin ich nun endlich fündig geworden, wie z.B. im Firefox oder im Opera das Drag and Drop für die Webparts ermöglicht werden kann.

Man muss dazu die Microsoft ASP.NET Futures (July 2007) downloaden und installieren. Es handelt sich um ein technology preview release, ist also ohne Support für Produktivseiten. Allerdings - ohne geht Drag and Drop in den genannten Browsern derzeit einfach nicht.

Nach dem Download und dem Ausführen des *.msi Files ist die entspreche Dll im VS2008 in der ToolBox zu registrieren. Die DLL sollte unter c:\Programme\Microsoft ASP.NET\ASP.NET Futures July 2007\v1.3.61025\3.5\Microsoft.Web.Preview.dll zu finden sein. Erst danach stehen die Futures-Controls zur Verfügung:

 

Nun muss lediglich im Code z.B. der Default.aspx oder der Masterpage ein Verweis auf den ScriptManger hinzugefügt werden und im betroffenen Control oder in der betroffenen aspx-Seite müssen ein paar kleine Ergänzungen erfolgen:

<asp:ScriptManager ID="ScriptManager1" runat="server" />
<%@ Register Assembly="Microsoft.Web.Preview" Namespace="Microsoft.Web.Preview.UI.Controls.WebParts" TagPrefix="cc1" %>
<cc1:WebPartManager ID="WebPartManager1" runat="server" />
<cc1:WebPartZone ID="WebPartZone1" runat="server">

Neben der Registrierung der Assembly muss also für den WebPartManager und für WebPartZone(s) der Tag von <asp:WebPartManager ...  zu <cc1:WebPartManager ... geändert werden. Dann klappt das Drag And Drop auch in Browsern wie Firefox und Opera. Vielleicht schafft es Microsoft ja, in der nächsten ASP.NET Version solche von vielen Usern erwünschten Funktionalitäten zu integrieren.

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Visual Studio | WEB 2.0 | ASP.NET | Microsoft

ASP.NET Logout via HttpHandler

by rolosee 26. June 2008 07:24

Omar Al Zabir beschreibt in seinem Buch "Building a Web 2.0 Portal with ASP.NET 3.5" eine interessante Alternative zum ASP.NET Logout Mechanismus über FormsAuthentication.SignOut. Letzteres löscht lediglich das Cookie .DBAUTH, was in vielen Fällen ausreichen mag. Wenn jedoch ein "anonymous identification provider" verwendet wird, werden zwei Cookies erstellt, .DBAUTH und .DBANON. Probleme können dann entstehen, wenn durch SignOut das Authentifizierungscookie gelöscht wird, das anonymous cookie jedoch noch vorhanden ist.

Um dieses Problem zu umgehen, schlägt Zabir die Verwendung eines LogOut Handlers vor, der alle Cookies im Zusammenhang mit dieser Website entfernt. Ein Handler bringt in diesem Fall weniger Overhead mit sich und generiert nur relativ wenig Code, wenn er zur Laufzeit kompiliert wird.

Codebeispiel Logout.ashx, aufzurufen z.B. über lnkLogout.NavigateUrl = "~/Logout.ashx";

<%@ WebHandler Language="C#" Class="Logout" %>

//when logging out remove all cookies related to the site
//instead of just removing the forms authentication cookie
using System;
using System.Web;
using System.Web.Security;
using System.Collections.Generic;
public class Logout : IHttpHandler
{
    public void ProcessRequest (HttpContext context)
    {
     /// Expire all the cookies
        List<string> cookiesToClear = new List<string>();
        foreach (string cookieName in context.Request.Cookies)
       {
            HttpCookie cookie = context.Request.Cookies[cookieName];
            cookiesToClear.Add(cookie.Name);
       }
       foreach (string name in cookiesToClear)
       {
           HttpCookie cookie = new HttpCookie(name, string.Empty);
           cookie.Expires = DateTime.Today.AddYears(-1);
           context.Response.Cookies.Set(cookie);
       }
        context.Response.Redirect"~/Default.aspx");
    }
    public bool IsReusable
    {
         get
        {
            return true;
         }
     }
}

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

ASP.NET

Building a Web 2.0 Portal with ASP.NET 3.5

by rolosee 1. March 2008 16:48

Unter diesem Titel hat Omar AL Zabir sein erstes Buch veröffentlicht.

Dieses brandneue Buch beschreibt in 10 Kapiteln die Programmierung eines komplett Drag and Drop fähigen Ajax Web Portals. Dabei finden die aktuellsten Techniken von Microsoft Anwendung. Für das UI ASP.NET 2.0/3.5 sowie ASP.NET AJAX 1.0, für das Business Layer WPF als eine Kollektion von Workflows und für die Datenzugriffsschicht LINQ to SQL/LINQ to XML.

Der Mitbegründer und CTO von Pageflakes Al Zabir entwirft einen Open Source Ajax-Portal Prototypen, erläutert dabei Design- und Architekturherausforderungen, fortgeschrittene Ajax-Konzepte, Performance optimierende Techniken und wie serverseitige Skalierungsprobleme lösbar sind. Er baut dabei auf seinen Erfahrungen auf, die er in den beiden letzten Jahren bei Pageflakes gesammelt hat. Nach dem ersten Durchlesen des Buches muss ich dem Satz zustimmen, der auf der Rückseite des Buches abgedruckt ist: "If you think you're well versed in ASP.NET, think again".

Der Code des Open Source Projektes kann unter www.codeplex.com/dropthings/ downgeloadet werden. Wer DropThings live in Action sehen möchte, kann auf www.dropthings.com vorbeischauen.

Für ASP.NET Webentwickler, die sich auf Höhe der Zeit bewegen wollen, ist dieses Buch m. E. Pflichtlektüre.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Ajax | WEB 2.0 | WPF | ASP.NET

Anforderungen an eine ASP.NET Website

by rolosee 24. January 2008 08:48

Anläßlich der BASTA! Konferenz 2008, die Ende Februar in Frankfurt stattfinden wird, hält Dr. Holger Schwichtenberg einen interessanten Vortrag zum Thema "ASP.NET Best Practices" mit dem Schwerpunkt "Was muss eine Website sein?"

Als Anforderungen listet er folgende Punkte auf:

Eine Website muss 

  1. benutzerfreundlich
  2. sicher
  3. performant
  4. schnell fertig
  5. wartbar
  6. in Google auf Platz 1 sein.

Allen genannten Anforderungen bin ich in den vergangenen Jahren immer wieder begegnet. Zu jedem Punkt ließen sich stundenlange Diskussionen veranstalten. Ein Schmunzeln haben mir jedoch die Punkte 4 und 6 abgerungen :-)

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

ASP.NET | IT - Menschen

JavaScript in Masterpages mit ASP.NET 2.0

by rolosee 15. November 2007 10:59

Im Zusammenhang mit dem Einbinden des Virtual Earth Map Control 6.0 in eine Testseite bin ich über ein kleines, aber feines Problem gestolpert.
Von meiner Testseite aus, die von der Masterpage abgeleitet ist und folglich keinen eigenen Body hat, muss ich auf den Body meiner Masterpage zugreifen und dort per onload ein JavaScript aufrufen. Über den nachfolgend geschilderten Weg ist das ohne Probleme möglich.

Einzufügen im codeBehind meiner Testseite:

private HtmlGenericControl myBody;
protected void Page_Load(object sender, EventArgs e)
{
  myBody = (HtmlGenericControl)Page.Master.FindControl("MyBody");
  if (myBody.Attributes["onload"] != null)
    myBody.Attributes["onload"] += "GetMap();";
  else
    myBody.Attributes.Add("onload", "GetMap();");
}

Es wird über FindControl und über die ID der Body ermittelt. Falls dieser schon ein Onload-Attribut besitzt, wird die JavaScript-Funktion GetMap() an bestehende Skripten angefügt. Ansonsten wird es als alleiniges Skript angefügt.

Allerdings konnte es so auf Anhieb nicht funktionieren. Es erschien folgende Fehlermeldung:

Ausnahmedetails: System.NullReferenceException: Object reference not set to an instance of an object.

Warum? Der Body konnte aus einem einfachen Grund nicht ermittelt werden.

Das "runat=server" fehlt in meinem Body-Tag.
Mit <body id="MyBody" runat="server"> funktionierte der Mechanismus.

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

ASP.NET | JavaScript

XTOPIA Berlin, zweiter Tag

by rolosee 13. October 2007 23:27

Dieser Tag stand für mich, wie auch der Tag vorher, ganz im Zeichen der Developer-Sessions.

Silverlight und PopFly - Der erste Kontakt. Oliver Scheer und Lori Grosland stellten beides in der ersten Session des Tages vor. Silverlight war mir ja schon ein Begriff aber PopFly, hmmm. Unter http://www.popfly.ms/  kann man sich, einen Account vorausgesetzt, selbst ein Bild von dieser künftigen Technik machen. Fazit: Mit wenigen Mausklicks, Drag and Drops und ganz ohne Code ist erstaunlich viel in kürzester Zeit erstellbar. Z.B. meine aktuellen Bilder sofort ins Netz. Alles schön bunt und ganz easy.  Oliver Scheer demonstriert kurz die derzeit aktuellen Silverlight Versionen 1.0 und 1.1, wobei meines Erachtens erst mit V. 1.1. ein richtiges gutes Plugin kommen wird, welches neben JavaScript auch z.B. mit C# programmiert werden kann.

Frank Fischer zeigte in seiner Session über dynamischen Sprachen auf, das Microsoft wieder in diese Richtung tendiert.  Er zeigte eine ellenlange Liste dynamischer Sprachen, darunter fanden sich alte Bekannte wie VBScript, JavaScript, JScript oder PHP.

Für dynamische Sprachen gälten folgende Paradigmen:

  • Runtime over Compile-Time (die Hardware werde besser und besser und stelle daher keine Begrenzung wie früher dar),
  • Entscheidungen verzögern (Die Problemstellung sei wichtiger als die Implementierung)
  • Details der Implementierung verbergen
  • "Duck Typing" (automatisches Zuweisen von Variablentypen)

Microsoft wird eine Dynamic Language Runtime DLR entwickeln. Diese soll den notwendigen Support für dynamische Sprachen bieten und die Entwicklung mit diesen extrem vereinfachen. In Silverlight 1.1 werden laut Fischer Ruby, Python, JavaScript und VBX  implementiert. Woh, es mag losgehen :-)

Oliver Scheer zeigte in der Session "Silverlight - Hardrock im Web" die drastische Erweiterung, die Silverlight V. 1.1 im Gegensatz zu V. 1.0 bieten soll. Dieser Erweiterung sei nicht nur auf Möglichkeit der Anwendung von .NET Sprachen zu reduzieren. Er demonstrierte mit dem VS2008 Beta2 und Expression Blend das reibungslose Zusammenspiel der beiden Programme und zeigte ansatzweise, wie z.B. eine Quiz-Applikation auf diesem Wege und mit diesen technischen Mitteln leicht zu realisieren sei.

Dirk Primbs ging mit "Deep Diving XAML und WPF" nochmals eine Stufe tiefer. Auch er führte seine Demos mit VS2008 Beta2 und Expression Blend aus, arbeitete jedoch aus didaktischen Zwecken überwiegend im Code. So konnte der Zuschauer leichter verstehen, was hinter den Kulissen von Expression Blend & Co. eigentlich abläuft.

Die WPF-Vision stellt sich seiner Meinung nach in diesen Punkten dar:

  • einheitliche Architektur für UI, Dokumente, Medien etc.
  • einheitliche vektorbasierte Composition engine
  • deklaratives Programmiermodell
  • einfaches und sicheres Deployment-Modell

Eine interessante und trotz des "trockenen Stoffes" sehr unterhaltsame Session war die vorletzte dieses Tages "Services mit WCF jenseits von SOAP" von Christian Weyer. Wer kann schon von sich behaupten, tieffliegende Seifen gesehen zu haben, als der Referent einige Sätze über SOAP anbringen wollte :-)  Wirklich cool. Gut, dass ich nicht an der Stelle saß, an der das Stück Seife zu Boden ging. Christian sprach über Dinge jenseits eine Web 2.0 Applikation, keinesfalls jedoch über Klicki Bunti, Drag and Droppi, UIs, IDEs usw. Er stellt die Neuerungen des WCF im .NET Framework 3.5 in einer überaus unterhaltsamen Weise vor, so dass ich mich schon auf die nächste Session mit Christian Weyer freue. Zudem ist er ja auch wie ich ein Franke ;-)

Marc Höppner setzt schließlich mit "The Future of ASP.NET" den Schlusspunkt dieser zwei XTOPIA-Tage in Berlin. Zusammenfassend die wichtigsten künftigen Neuerungen:

  • Die History-Back oder F5-Funktionalität, die ja bei Verwendung von ASP.NET AJAX derzeit nicht oder nur eingeschränkt funktioniert, soll durch ein serverseitiges oder clientseitiges "History-Control" wieder hergestellt werden. Eine Demo zeigte auf, dass dies mit den ASP.NET Futures auch schon funktioniert.
  • Anbindung von Astoria-Dataservices (Unterstützung zur clientseitigen Anbindung)
  • XML-Skripts => Verdrahten von Objekten auf deklarative Art. Binding => Controls verbinden. Client Data Controls => Serverseite Daten an clientseitige Controls.
  • CSS-Selectors: z.B. getElementsByClassName('txtInput') => Erweiterung der JavaScript Libary
  • Neue Silverlight Controls (XAML, Media, Skins, Chapter, Marker)
  • Dynamic Data Controls zur Vereinfachung der Datenanbindung und Darstellung bzw. zur vollständigen Automatisierung. Er wird einem künftig noch mehr Arbeit abgenommen. Trotzdem bleibt alles beinflussbar.
  • Dynamic Languages.
  • Application Services (Search, Sitemaps, Diagnostics). Vorallem letzteres ist wirklich sehr interessant. Bisher ist ja z.B. JavaScript-Debugging ein nervenaufreibender Zeitvertreib. Das soll besser werden. Zum Glück!

Das war es!

Im Anschluss an die letzte Session ging es im Flugzeug in der Dunkelheit durchgeschüttelt und wie eine Sardine verpackt ab nach Hause. In München wartete am Freitag ein Bahnstreik mit den entsprechenden Folgen im Berufsverkehr.

Aber mit so vielen Eindrücken und Motivationsschüben eindeckt, was interessiert mich da ein Bahnstreik?!  :-) 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , ,

Visual Studio | Ajax | WEB 2.0 | Silverlight - WPF | ASP.NET | Microsoft

Powered by BlogEngine.NET 1.1.0.7
ASP.NET Version: 2.0.50727.1433

der Autor

Roland See Roland See
Senior Software Developer bei JobScout24. Weitere Infos gibt es hier.
Wickendorf, Oberfranken, Deutschland.

E-Mail Send mail

Letzte Beiträge

Disclaimer

Bei den in diesem Blog ausgedrückten Meinungen handelt es sich ausschließlich um meine persönlichen Ansichten.

© Copyright 2008

einloggen