Freitag, 30. März 2007

Internet Explorer 8

Nachdem sich Microsoft in der Vergangenheit mit neuen Versionen des Internet Explorers eher Zeit gelassen hat, und die aktuelle 7er Version noch lange nicht alle älteren Versionen auf den Rechnern der User abgelöst hat, werden nach und nach schon Spekulationen um den Internet Explorer 8 laut.

Scheinbar soll die neue Version des Internet Explorers keinen neuen Namen bekommen, sondern wie bisher auch einfach Internet Explorer heißen mit der neuen Versionsnummer 8.

Neben neuen, von Anwendern vorgeschlagenen, Funktionen wird es wohl Änderungen im Downloadmechanismus geben. Ein Plug-In System wie man es auch vom Firefox her kennt soll dann ebenfalls mit von der Partie sein wie die Verbesserung der CSS-Kompatibilität.

Erscheinen soll der neue Browser in 18-24 Monaten, aber na ja ....

Mittwoch, 28. März 2007

Das Dilemma

Heute möchte ich mal etwas über meine täglichen Problemchen loswerden.

Der ein oder andere, dem bestimmte Zwänge durch Infrastruktur, Projektvorgaben, Zeitmangel oder sonstigen Hürden in der Auswahl seiner Werkzeuge beschränkt wird, kann mich vielleicht verstehen.

Täglich kann man in Büchern, Fachzeitschriften, Blogs, Foren, auf Konferenzen und Seminaren etc. Informationen über neue Techniken, Softwarepakete, Vorgehensweisen etc. erhalten.
Manchmal, muss ich sagen, treibt mir das beinahe Tränen in die Augen ;-)
Da kommen mir immer wieder ganz verschiedene Gedanken, wie z.B.: "Cool, genau das was ich brauche"; "Shit, wenn ich dass mal voher gewusst hätte"; "Mensch, dass sollte ich mir mal genauer anschauen" oder "Hmmm, hier sollte ich den Anschluss nicht verpassen"

Vielleicht geht es dem ein oder anderen von euch auch manchmal so !?

Leider ist es eben oftmals so, dass:
  • man so in Projekte oder im tagesgeschäft involviert ist dass: man die neue Erkenntisse und Techniken nicht mehr einbringen kann, weil man schon mit einer andren Lösung zu weit fortgeschritten ist
  • man einfach keine Zeit hat sich in die neuen Materien einzuarbeiten oder einfach mal auszuprobieren
  • man durch z.B. innerbetriebliche Zwänge in absehbarer Zeit keine Chance hat neue Lösungen einzusetzen (ich denke da z.B. an den IIS7, weil man ebenbereits einen IIS6 in Betrieb hat)

Es gibt bestimmt noch mehr Gründe, warum man sich hier und da nicht mit Neuigkeiten in dem Maße auseinandersetzen kann, wie man das gerne hätte.

Bestimmt spielen da manchmal auch betriebliche Belange ein Rolle, wenn es z.B. darum geht mal eine Konferenz oder ein Weiterbildungsmaßnahme zu besuchen (z..B. weil die Veranstaltung zu teuer ist und/oder man durch Termindruck nicht abkömmlich ist etc.)
Ich kann mir auch vorstellen, dass sich die eigenen Interessen (in Punkto Technologie) mit den eingesetzten Technologien im Betrieb nicht immer oder nur teilweise decken. Ich denke, dann wird es immer schwierig.

Ich persönlich bin jedenfalls zu der grundlegenden Erkenntnis gekommen (auch wenn das nicht immer einfach ist) - "Bloß nicht verrückt machen lassen". Meine persönliche Meinung ist: Man sollte für sich selbst Schwerpunkte setzen, und sich konkrete (und natürlich erreichbare) Ziele stecken. Dazu gehört dann vielleicht auch mal sagen zu können: "Ok, das ist cool, gut zu wissen, aber das ist derzeit nicht relevant für mich"

Insgesamt gesehen sicher ein Thema über das man ausgeiebig diskutieren kann. Vielleicht liege ich mit meiner für mich gewonnenen Erkenntis auch falsch - aber wir sind ja flexibel ... ;-)

Update für SQL Server 2005 Service Pack 2

Das Update behebt ein Problem mit Wartungscleanup-Taskintervallen.

Weitere Infos und Donload ...

Dienstag, 27. März 2007

IIS 7 Reports Module: Server and Site Reports

Von Carlos Aguilar Mares vom IIS7-Team gibt es jetzt ein IIS7 Add-In, mit dem man Zugriffsreports direkt aus der Adminkonsole erstellen kann. Dazu wird im Hintergrund der Log-Parser 2.2 verwendet.
Weitere Funktionen:
  • HTML -Export
  • Druckfunktion
  • Darstellung in verschiedenen Chart-Typen
  • Built-In Reports (Status Code, Treffer pro Url, Ttreffer je Stunde u.v.m.

Besucht einfach seine Seite ...

Montag, 26. März 2007

ACHTUNG Suchtgefahr !!

OK, lieber spät als nie. Ich hatte zwar schon mal von der Möglichkleit gehört, in einem vorgegebenen Szenario ein eigenes Ameisenvolk durch eigenen Programmcode zu steuern, aber hatte bisher nicht die Zeit mir die Sache mal genauer anzuschauen. Diese habe ich mir jetzt aber endlich mal genommen und mir die Voraussetzungen heruntergeladen und ein wenig rumprobiert.

Das Spielprinzip ist einfach aber meiner Meinung nach echt cool.
Die Spielgrundlagen (komplette VisualStudio Solution mit dem Spielfeld, die gesamte Infrastruktur etc.) sind komplett vorhanden. Man muss sich nur ein wenig mit den vorhanden Eigenschaften und Methoden auseinandersetzen und schon kann es losgehen.

Hier der Originaltext von der Microsoft-Seite:
**********************************************
Worum geht’s?
Jeder Spieler kontrolliert ein Ameisenvolk, das in einem virtuellen Wald auf Nahrungssuche geht. Wie im echten Leben ist die Menge an Futter begrenzt und überall lauern Feinde in Form von ameisenvertilgenden Käfern.

Der Clou: Das Verhalten der eigenen Ameisen wird durch ein kleines Programm gesteuert, welches jeder Spieler vor Spielbeginn selbst schreibt. Dabei kann er durch Programmcode auf verschiedene Ereignisse reagieren, beispielsweise darauf, dass die Ameise gerade einen Gegner sieht oder soeben Nahrung erspäht hat. Im Code wird dann festgelegt, wie die Ameise auf diese Ereignisse reagiert – soll sie einen Gegner attackieren oder lieber wegrennen? Soll sie andere Ameisen in der Nähe um Hilfe rufen? Und was, wenn nicht genug Kollegen in Reichweite sind? Durch clevere Programmierung und ausgefeilte Strategie-Routinen kann jeder Spieler seinem Volk zu einem Vorteil verhelfen.
*******************************************************


Die Spielroutinen sind einfach und wirklcih leicht verständlich. Und wem's hilft: alles ist auf Deutsch.

Durch geschickte Verwendung der vorhanden Methoden und Eigenschaften kann man sein individuelles Ameisenvolk erschaffen. Dadurch kannst du zum Beispiel ein aggresives Volk erschaffen, das z.B. jeden Käfer sofort attackiert oder eben ein eher defensives Volk, das allen Schwierigkeiten aus dem Weg geht und fleißig Nahrung sammelt.
Es ist echt cool zu sehen wie das Volk auch auf kleine Änderungen reagiert (vor allem DASS es dies auch tut)
Natürlich kann man sich auch mit anderen Spielern messen.

Ich finde, das Teil ist ein netter Zeitvertreib, nebenbei kann man noch ein wenig lernen.

So sieht die Spielfläche aus. Einfach, aber sehr interessant wenn man sieht wie sein eigenes Volk agiert.



Und so sieht der Code aus, den man mit eigenen Routinen füllen kann. (sehr übersichtlich und selbstsprechend)


using System;
using System.Collections.Generic;
using System.Text;
using AntMe;

namespace AntMe.Spieler.WolfgangGallo {

[Spieler(
Name = "",
Vorname = "",
Nachname = ""
)]

[Typ(
Name = "",
GeschwindigkeitModifikator = 0,
DrehgeschwindigkeitModifikator = 0,
EnergieModifikator = 0,
LastModifikator = 0,
ReichweiteModifikator = 0,
SichtweiteModifikator = 0
)]

public class MeineAmeise : Ameise {
public MeineAmeise(Volk volk, int typIndex)
: base(volk, typIndex) {
}

public static string BestimmeTyp(Dictionary anzahl) {
return "";
}

public override void Wartet() {
}

public override void Sieht(Zucker zucker) {
}

public override void Sieht(Obst obst) {
}

public override void Sieht(Käfer käfer) {
}

public override void Sieht(Markierung markierung) {
}

public override void GreiftAn(Käfer käfer) {
}

public override void ZielErreicht(Zucker zucker) {
}

public override void ZielErreicht(Obst obst) {
}

public override void IstUnterwegs() {
}

public override void IstMüde() {
}
}
}



Aber wie der Titel meines Blogeintrages schon sagt: Achtung Suchtgefahr ;-)

Und bevor ich es vergesse hier noch der Link zur AntMe-Seite

Also: unbedingt mal ausprobieren!!

Ach ja: Hier die aktuelle Highscoreliste

Sonntag, 25. März 2007

Wo wir schon dabei sind ...

Nicht wirklich dramatisch aber ärgerlich wenn man beim Testen eine Fehlermeldung bekommt, weil man mal wieder nicht daran gedacht hat, dass es so leider nicht geht!
Ich spreche vom Kopieren einer DataRow in eine andere DataTable.

Das naheliegende Vorgehen

datatable2.Rows.Add(datatable1.Rows[0]);

bringt einem die Fehlermeldung ein, das die verwendete DataRow zu einer anderen Tabelle (datatable1) gehört.

Funktionieren tut es mit der Methode "ImportRow()";

datatable2.ImportRow(datatable1.Rows[0]);

Samstag, 24. März 2007

Wie war das doch gleich ...?

Es gibt Momente im Leben eines Entwicklers, in denen man denkt "Da muss es doch was geben!"
Ich mache die Erfahrung immer dann, wenn ich mich mit Dingen beschäftige, die ich nicht jeden Tag brauche oder ganz neu für mich sind.

Die Methode Compute, die die Klasse DataTable zur Verfügung stellt gehört für den ein oder anderen bestimmt dazu. Wenn man nicht gerade der ausgewiesene ADO.NET Spezialist ist, aber dennoch hin und wieder mit DataTable, DataSets etc. arbeitet, stolpert man bestimmt früher oder später über das Problem Daten einer bereits gefüllten DataTable auf bestimmte Art und Weise zu berechnen (zum Beispiel mit Hilfe eines Aggregatausdrucks z.B. sum,avg ...)

Das geht auf einfache Weise über die Methode Compute. Die Methode Compute, die zwei Parameter erwartet:

expression
Der zu berechnende Ausdruck.
filter
Der Filter zum Begrenzen der Zeilen, die in dem Ausdruck ausgewertet werden.
Beispiel:
private void ComputeBySalesSalesID(DataSet dataSet)
{
// Presumes a DataTable named "Orders" that has a column named "Total."
DataTable table;
table = dataSet.Tables["Orders"];

// Declare an object variable.
object sumObject;
sumObject = table.Compute("Sum(Total)", "EmpID = 5");
}
Mich würde es nicht wundern, wenn der ein oder andere hier bereits schon mal einen eigenen Lösungsweg erstellt hat (z.B. Summierung der Werte einer Spalte mit Hilfe einer Schleife o.ä)

Weitere Informationen bei Microsoft

Freitag, 23. März 2007

Treffen mit Ralf Westphal

Ralf Westphal hatte am 20 März eine seiner Kaffehauskonsultationen in Ulm. Das wollte ich mir natürlich nicht entgehen lassen. So habe ich ihn spontan um einen Termin gebeten und war glücklicherweise einer der ersten.

Zugegeben, mein Problem eine einheitlichen single-sign-on-Lösung für eines unserer Portale ist sicher kein hochdramatisches Problem. Jedenfalls kamen wir am Ende auf die Lösung, die ich ohnehin schon angepeilt hatte.
Die anderen bekannten Szenarien hatten wir auch relativ schnell durch und wir hatten die Gelegenheit über viele andere Dinge aus dem Entwickleralltag oder auch den damit zusammenhängenden (oder auch nicht zusammenhängenden) persönlichen Belangen zu plaudern. Ich konnte für mich einige neue Erkkentnisse und Sichtweisen mitnehmen. War echt super! Danke Ralf. Jedenfalls hatte ich den Eindruck, das auch Ralf in der ein oder anderen Sache Erkenntnisse für sich gewinnen konnte.

Nach der Kaffeehauskonsultation hielt Ralf im Rahmen eines Treffens der .NET Usergroup Ulm noch einen Vortrag zum Thema "Echte Komponentenorientierung als Grundlage für die Testbarkeit". Ca. 40 Leute folgten interessiert den Ausführeungen Ralf Westphals.

Insgesamt ein gelungener Tag! Danke auch an Thomas Schissler, den Groupleiter der Usergroup Ulm, ohne den diese Veranstaltungen nicht stattgefunden hätten.

Auf dem Bild: Thomas Schissler (links), Ralf Westphal (mitte), ich selbst ;-)





Weiter Informationen zur Usergroup Ulm findest du uner http://www.dotnet-ulm.de

Visual Studio Extensions für SharePoint Services 3.0

Microsoft hat in seinem Download-Center die Visual Studio Extensions for Windows SharePoint Services 3.0 für Visual Studio 2005 veröffentlicht. Damit werden Entwicklern Project-Templates, Item-Templates und ein SharePoint Solution Generator zur Verfügung gestellt.

-- Download --