Archive for Februar, 2008

BOOK: ASP.NET 3.5 mit VB 2008 erschienen

So, gestern ist es rausgekommen, das erste deutsche Buch zu ASP.NET 3.5 – und ich hab daran mitgewirkt. :-)

Erschienen ist das Buch bei Addison-Wesley, Autoren sind Karsten Samaschke (Me), Jürgen Kotz, Andreas Kordwig, Christian Trennhaus, Tobias Hauser und Christian Wenz. Umfang ca. 1184 Seiten.

Der Verlag sagt dazu:

ASP.NET 3.5 baut auf dem erfolgreichen ASP.NET 2.0 auf und integriert das mächtige Ajax-Framework ASP.NET AJAX. Ein-, Umsteiger und fortgeschrittene ASP.NET-Programmierer erfahren hier alles Wesentliche über das .NET Framework und Visual Basic 9. Sie erhalten alle Tricks und Kniffe, die Sie für den erfolgreichen und professionellen Einsatz von ASP.NET benötigen: unterhaltsam, kompetent und ohne Umschweife.

Und der Klappentext liest sich so:

Mit ASP.NET 3.5 ist Microsofts Technologie zur Programmierung dynamischer Webseiten noch leistungsfähiger geworden. Gegenüber ASP.NET 2.0 gibt es zahlreiche Verbesserungen, unter anderem die die integrierte Ajax-Unterstützung und verbesserte Datenbankfunktionalität mit LINQ.

Die Autoren gehen auf alle wesentlichen Bestandteile von ASP.NET 3.5 ein und bieten ausführliche Beschreibungen zur Verarbeitung von Formulareingaben, zum Umgang mit Cookies und Dateien bis hin zum Zugriff auf Datenbanken und XML-Datenquellen sowie Web Services. Außerdem erfahren Sie alles zu den wichtigen Neuerungen wie ASP.NET Ajax, LINQ und der Entwicklungsumgebung Visual Studio 2008. Im Vordergrund stehen die konkreten Anforderungen des Webentwickler-Alltags. Unterhaltsam und anschaulich aufbereitet führt Sie dieses Buch auch zu fortgeschrittenen
Themen wie der dynamischen Generierung von Grafiken, den Web Parts und der Performancesteigerung durch Caching. Ein eigenes Kapitel widmet sich der Erstellung von Rich Internet Applications (RIA) mit Silverlight.


Aus dem Inhalt
  • .NET: Grundlagen, Architektur und Installation
  • HTML Controls, Web Controls und Web Parts
  • Masterseiten, Themes und Skins
  • Security: Benutzer- und Rollenverwaltung
  • ASP.NET AJAX und Silverlight
  • LINQ und Datenbankzugriff mit ADO.NET
  • XML und Web Services
  • Lokalisierung und Inhalte für mobile Endgeräte
  • Debugging
  • Caching
  • Web-Hacking (und Gegenmittel)
  • Spracheinführung in Visual Basic 2008

Auf DVD:
Alle Listings und Beispiele aus dem Buch, .NET Framework 3.5 plus Editor Visual Web Developer 2005 Express Edition.


Zu kaufen ist das Buch u.a. bei den Kollegen von Amazon.

HOAX: Ericsson verschenkt Mobiltelefone

Ja, nee, ist klar. Das kam heute per Mail rein:

Hallo zusammen,

die Firma Ericsson verteilt Handys…. und das gratis übers Internet, um der Marke Nokia entgegen zu wirken, welche dasselbe macht. Ericsson will sich damit bekannter machen. Deshalb verteilt das Unternehmen jetzt gratis das neue WAP-Handy. Alles was zu tun ist, ist diese Mail an acht Leute zu schicken.

In etwa zwei Wochen erhält man dann ein Ericsson T 18. Wenn die Nachricht an 20 oder mehr Personen verschickt wird, erhält man sogar ein Ericsson R320 WAP-Phone.

Kleine Anmerkung am Rande: Die Mobiltelefonsparte von Ericsson ist bereits 2001 mit der von Sony verschmolzen worden. Das Unternehmen nennt sich seit fast sieben Jahren SonyEricsson. Aber egal, wollen wir uns die guten Stücke mal anschauen:

Ericsson T18

  • Vorgestellt 1999
  • GSM 900 / GSM 1800 Dualband
  • 105x49x24mm
  • 146g
  • Uhr mit Alarm
  • Rechner
  • Bis zu 4 Stunden Gesprächszeit
  • Bis zu 200 Stunden Stand-By
  • Monochrom-Display mit 3 Zeilen

Ericsson R320

  • Vorgestellt 2000
  • GSM 900 / GSM 1800 Dualband
  • 130x51x15mm
  • 99g
  • WAP
  • Infrarot
  • Bis zu 4:30 Stunden Gesprächszeit
  • Bis zu 100 Stunden Stand-By
  • Monochrom-Display mit 5 Zeilen

Die Dinger sind beide so alt, dass es sich fast schon wieder lohnen würde, die Mails weiter zu senden… :-)

WINDOWS: Aero auf Windows Server 2008

…wenn man die richtige Anleitung befolgt, ist es kein Problem, einen W2K8 auch hübsch zu bekommen.

Vorher:

Nachher:

So freut sich letztlich auch das Auge. Und so bekommt man es hin.

WINDOWS: Sidebar, Virenscanner und Diverses zu Windows 2008

Nicht für alle Features von Vista gibt es bei W2K8 äquivalente Angebote. Dennoch gibt es brauchbaren Ersatz bzw. kostengünstige Lösungen.

Sidebar
Ich empfehle – wenn man denn eine Sidebar braucht – die Google Desktop-Suche, die installiert bei Bedarf eine Vista-artige Sidebar mit. Sieht hübsch aus und ist sehr funktional. Schickes Feature: Doppeltes Strg-Drücken bringt von überall her den Suchdialog.

Virenscanner
Als freien Virenscanner kann man momentan nix empfehlen. ClamWin geht zwar, ist aber eher suboptimal, da kein Echtzeitschutz. Wer W2K8 als Desktop-Workstation einsetzt, sollte einen Blick auf Avira Windows Workstation werfen, der läuft nämlich auch auf dem Server (die Fehlermeldung kann man getrost ignorieren), kostet aber was.

Applikationen
Der allergrößte Teil der Applikationen läuft problemlos (was Wunder, ist ja auch der selbe Kernel wie bei Vista). Media-Center und Vista-Spezifika gehen halt out of the box nicht, aber es gibt wohl Möglichkeiten (Dateien kopieren). Die Frage ist, ob man es will – dann könnte man eigentlich gleich Vista nehmen.

Zwischenfazit
Nachdem ich den W2K8 optisch aufgehübscht hab, wird – wenn hier nichts brutales mehr passiert – Vista wohl irgendwann von der Platte verschwinden. Alles, was ich benötige, bringt der W2K8 mit. Und – wie schon bei W2K3 vs. XP – die Serverversion ist abgespeckter und damit schneller. Kleines Plus (oder Minus, je nach Standpunkt): Keine UAC mehr.

WINDOWS: Windows 2008 als Super-Vista

Ich übersetze die Schritte, die nötig sind, um Windows 2008 als eine Art Super-Vista zu benutzen, mal ins Deutsche:

  • Aktuellste Grafik- und Sound-Treiber installieren (die Vista-Varianten sollten funktionieren)
  • Desktopdarstellung aktivieren: Server-Manager > Features > Features hinzufügen > Desktopdarstellung
  • Designs aktivieren: Server-Manager > Konfiguration > Dienste > Designs (Auto-Start aktivieren, Dienst starten)
  • Vista-Design aktivieren: Systemsteuerung > Anpassung > Design > Windows Vista
  • Aero aktivieren: Systemsteuerung > Anpassung > Fensterfarben und -Darstellung > Eigenschaften für klassische Darstellung… > Windows-Aero
  • Dateidienste aktivieren: Server-Manager > Rollen > Dateidienste
  • Windows-Suche aktivieren: Server-Manager > Rollen > Rollendienste > Dateisystem > Windows Suchdienst
  • Dialog beim Herunterfahren deaktivieren: Start > Ausführen > gpedit.msc > Computerkonfiguration > Administrative Vorlagen > System > Ereignisprotokollierung für Herunterfahren anzeigen > Deaktiviert
  • Audio: Server-Manager > Konfiguration > Dienste > Windows Audio
  • SuperFetch:
  • Regedit > HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
  • EnablePrefetcher (DWORD): 3
  • EnableSuperfetch (DWORD): 3
  • Server-Manager > Konfiguration > Dienste > Superfetch
  • Programme bevorzugen: Systemsteuerung > System > Erweiterte Systemeinstellungen > Erweitert > Leistung > Erweitert > Für Programme optimieren
  • Visuelle Effekte: Systemsteuerung > System > Erweiterte Systemeinstellungen > Erweitert > Leistung > Visuelle Effekte
  • Damit sieht das Ding weitestgehend wie Vista aus und verhält sich auch so ähnlich. Nur irgendwie schneller, denn es läuft weniger Ballast mit. Ganz wichtig: In den Energieoptionen ruhig das automatische Abschalten der Festplatte aktivieren, das ist von Haus aus deaktiviert.

    Was braucht es noch?

    WINDOWS: Switch!

    Weil man auf einem Bein nicht stehen kann und Vista zwar sehr hübsch, aber durchaus lahm ist, was speziell das Entwickeln von Software anbelangt und weil ich irgendwie schon immer lieber auf dem Server gearbeitet habe und weil doch unten drunter der Vista-Core ist und weil auch die MacBook-Bootcamp-Treiber (weitestgehend) funktionieren und weil überhaupt: Ich hab mal wieder geswitched.

    Man schaue und staune:

    Vista ist aber nach wie vor drauf, weil hübscher und schnell genug, wenn man gerade nicht entwickeln muss und weil ich irgendwie auch schon immer Vista wollte und weil doch unten drunter der selbe Core wie beim Windows Server 2008 ist und weil hier die MacBook-Bootcamp-Treiber komplett funktioniert haben und weil überhaupt: Ich es will.

    Fällt eigentlich sehr auf, dass ich mein Wochenende brauche?

    NERVEND: Als ob es nix wichtigeres gäbe

    Boah, wie bin ich genervt: Diese Steuersache mit dem (mittlerweile ehemaligen) Postchef Zumwinkel geht mir nur noch auf den Keks. Nein, nicht, dass er Steuern hinterzogen haben könnte (fast jeder versucht, den Staat zu bescheißen – doof nur, wer sich so dämlich anstellt und sich dann erwischen lässt), sondern das die Medien über nichts anderes mehr berichten.

    Ich bin Donnerstag abend von München nach Berlin gefahren – und auf jedem Radiosender war das das Top-Thema. Echt, als ob es nichts wichtigeres gäbe. Jede Nachrichtensendung begann mit dieser Thematik, es wurden Sondersendungen noch und nöcher gebracht. Und dabei ist dieses Thema einfach nur vergleichsweise unwichtig – oder hat irgendjemand dadurch seine Meinung über Manager geändert?

    Was ich viel spannender fände, wurde nicht beleuchtet: Könnte es sein, dass es einen Zusammenhang mit dem Fall Z. und den von Liechtensteiner Banken entwendeten Kunden- und Kontendaten geben? Könnte es sein, dass Z. das auch schon wusste und deshalb seinen Rücktritt zum Jahresende angekündigt hatte? Ging es hier u.U. um Erpressung? DAS wären mal interessante Fragen.

    Aber eigentlich sind selbst die nicht wirklich interessant. Über Hunger, Klimawandel, Bankenaffären (Bayern -> Huber?!) u.ä. wurde – wenn überhaupt – nur am Rande berichtet. Muss man ja auch nicht – der Fall Z. verfügt über Aufregungs- und Boulevardpotential, die anderen Themen nicht. Find ich traurig.

    BRAINDUMP: System.Drawing.Color aus HTML-Farbcode

    Die einfachste Variante, aus einem HTML-Farbcode eine korrespondiere Color-Instanz zu erstellen, liegt in der Verwendung der ColorTranslator-Klasse:

    Color color = ColorTranslator.FromHtml(“#efefef”);

    Alles andere artet in Denk- und Tipp-Arbeit aus.

    MICROSOFT: Done!

    Der Download ging schnell, die Installation über Nacht. Ich habe fertig.

    MICROSOFT: Vista SP1 jetzt downloadbar

    Für alle MSDN-Abonnenten ist das SP1 für Vista jetzt herunterlad- und installierbar. Hier.

    War ich jetzt Erster?

    XLINQ: Laden von XML-Dokumenten

    Das Laden von XML-Dokumenten per LINQ to XML fühlt sich etwas anders an, als man dies bisher gemacht hat. Hier mal ein Beispiel, bei dem die Inhalte aller title-Knoten eines Dokuments ermittelt werden sollen.

    Folgendes XML-Dokument soll verarbeitet werden (in natura gehört natürlich noch mehr dazu, aber es ist ja nur ein Beispiel):

    < ?xml version="1.0"?>

      
         
         
      

      

    Zuerst die klassische Vorgehensweise per XmlReader:

    // XmlTextReader erzeugen
    XmlReader rd = XmlReader.Create(Server.MapPath(“~/data.xml”));

    // Liste der Titel
    List titles = new List();

    // Lesen
    while (rd.Read())
    {
       // Muss ein Element-Knoten sein und der Name des
       // Knotens muss “title” lauten
       if (rd.NodeType == XmlNodeType.Element
           && rd.LocalName == “title”)
       {
          // Inhalt des Knotens einlesen
          titles.Add(rd.ReadString());
       }
    }

    // Aufräumen!
    rdr.Close();

    So siehts beim XmlDocument aus (ohne XPath, nur DOM):

    // Laden der Daten
    XmlDocument doc = new XmlDocument();
    doc.Load(Server.MapPath(“~/data.xml”));

    // Ermitteln der Daten
    List titles = new List();

    // cd-Knoten
    foreach (XmlElement item in doc.DocumentElement.ChildNodes)
    {
       // title-Knoten finden
       foreach (XmlElement current in item.ChildNodes)
       {
          if (current.LocalName == “title”)
          {
             // Inhalt auslesen
             titles.Add(current.InnerText);
          }
       }
    }

    Und nun das selbe Ergebnis per LINQ to XML:

    // Laden der Daten
    XDocument doc =
       XDocument.Load(Server.MapPath(“~/data.xml”));

    // Ermitteln der “title”-Werte
    var titles =
       from title in doc.Descendants(“title”)
       select title.Value;

    // Überführen in generische Liste
    List titleList = titles.ToList();

    Das wars, mehr ist nicht nötig. Elegant. Von der Performance her dürfte es irgendwo zwischen XmlReader und XmlDocument liegen, wobei ich es noch nicht getestet habe.

    Später mehr zu LINQ to XML – ist nämlich ein spannendes Thema!

    BRAINDUMP: ScriptMethod-Attribut und UseHttpGet

    Okay, nach einer Weile hab selbst ich es rausbekommen: Wenn man per ASP.NET AJAX eine Webdienst-Methode in einem JavaScript nutzen möchte, dann sollte man sich nicht nur auf die Dokumentation verlassen. Dort steht nämlich, dass der Webdienst so aussehen sollte:

    namespace AJAXSample
    {
       ///

       /// Webdienst
       ///

       [WebService(Namespace = "urn:bla"),
          ScriptService]
       public class GoodMorningService : WebService
       {

          ///

          /// Webmethode
          ///

          [WebMethod, ScriptMethod]
          public string GoodMorning()
          {
             return “Guten Morgen!”;
          }
       }
    }

    Die wirklich wichtige Stelle ist mal gefettet und gekursivt :-) . Das Einbinden kann dann per JavaScript in einer Seite (nach der Registrierung des Services im ScriptManager-Control) so aussehen:

    Doof nur, dass das nicht funktioniert. Man erhält immer nur die Info, dass der Webservice nicht definiert sei.

    Ein wenig googlen brachte mich dann – mal wieder – zur ASP.NET Zone und siehe, ich fand die Lösung: Beim ScriptMethod-Attribut muss explizit der Zugriff per HTTP-GET erlaubt sein:

    [WebMethod, ScriptMethod(UseHttpGet=true)]
    public string GoodMorning()
    {
       return “Guten Morgen!”;
    }

    Dann funktioniert es auch.

    AU JA: Erstausrüsterqualität

    Vor eindreiviertel Jahren habe ich mir eine Logitech DiNovo Cordless Desktop-Tastatur zugelegt. Die mitgelieferten Duracell-Batterien haben heute den Geist aufgegeben. Nach guten 20 Monaten Dauer-Benutzung.

    Respekt. Das ist echte Erstausrüsterqualität.

    MICROSOFT: Windows Server 2008 ist da!

    Ja, ist denn schon Weihnachten? Windows Server 2008 ist jetzt via MSDN-Subscriber-Downloads verfügbar. Prima!

    Via Stefan

    APPLE: MacBook Air Werbung

    Typische Apple-Werbung, die echt Lust auf das Gerätchen macht:

    Was mich aber umtreibt: Wer ist für den Ohrwurm verantwortlich?

    Update: Okay, habs gefunden:

    Die Dame nennt sich Yael Naim, der Titel heißt New Soul. Sehr schön.

    OCH NÖ: Ich auch

    Ich hab auch so ein blödes Paket bekommen. Bescheuert.

    AUA: Das erklärt einiges…

    Au weia, das erklärt dann doch so einiges:

    Und sowas will über meine Daten entscheiden. :-(

    Via Operator!

    AUA: SMTP-Server als SPAM-Relay trotz brauchbarer Konfiguration

    Der Operator und ich sitzen hier über dem SMTP-Server eines Kunden (MailEnable Standard 1.9.3), der trotz scheinbar sicherer Konfiguration als SPAM-Relay missbraucht wird. Auch nach dem Vier-Augen-Prinzip haben wir nix sehen können, was dem Server – laut seinen Einstellungen – gestatten würde, Mails von irgendwelchen taiwanesischen Accounts an irgendwelche anderen Hong-Konger-Accounts weiter zu leiten.

    Irgendwie rätselhaft. Wir spielen jetzt alle passenden und unpassenden Updates ein (auch wenn die scheinbar nicht passen), löschen die Queue und hoffen das Beste.

    Schweineserver.

    WELTHERRSCHAFT: #1 bei Google!

    Ja, geschafft! Wie Dirk mir gerade zeigte, bin ich – zumindest beim deutschen Google – die absolute #1, wenn man nach einem Venti Caffe Latte sucht. :-)

    AHA: So sieht Arbeiten aus, BVG!

    Schau mal, die S-Bahn fährt, während Du streikst:

    S-Bahn

    Echt, es ist ja nix gegen einen Streik einzuwenden, aber aus dem Stehgreif mal eben gut 39 Stunden Warnstreik auszurufen und – speziell Ältere und Kinder – quasi ohne Vorwarnung komplett im Regen stehen zu lassen – das ist frech.

    Zwei Stunden hätten auch gereicht.

    Als BVG-Mitarbeiter würde ich mir ne andere Gewerkschaft suchen. Und vor allem nicht in BVG-Klamotten durch die Gegend rennen, denn heute zählt man ganz sicher zu den unbeliebtesten Personen in der Stadt.

    Nächste Seite »