Die Basis für Qualität wird von drei Eckpfeilern gebildet: strukturiertes Vorgehen, Einsatz passender Hilfsmittel und Werkzeuge und Ausbildung. (Pascal Mangold)
Freitag, 30. März 2007
Internet Explorer 8
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
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 ... ;-)
Dienstag, 27. März 2007
IIS 7 Reports Module: Server and Site Reports
Weitere Funktionen:
- HTML -Export
- Druckfunktion
- Darstellung in verschiedenen Chart-Typen
- Built-In Reports (Status Code, Treffer pro Url, Ttreffer je Stunde u.v.m.
Montag, 26. März 2007
ACHTUNG Suchtgefahr !!
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(Dictionaryanzahl) {
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 ...
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 ...?
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.
private void ComputeBySalesSalesID(DataSet dataSet)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.ä)
{
// 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");
}
Weitere Informationen bei Microsoft
Freitag, 23. März 2007
Treffen mit Ralf Westphal
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.

Weiter Informationen zur Usergroup Ulm findest du uner http://www.dotnet-ulm.de
Visual Studio Extensions für SharePoint Services 3.0
-- Download --