Sonntag, Dezember 30, 2007

Jahresrückblick 2007

Dieses Jahr war mal wieder ein Jahr mit vielen technischen Themen. Größte Themenblog im 1. Halbjahr war der BizTalk Server 2006. Hier vor allem der elektronische Rechnungsdatenaustausch und die Entwicklung bei einem Kunden, ebenfalls zum Thema Rechnungsaustausch und EDI. Ich habe wirklich viele Erfahrungen mit dem BizTalk gewonnen. Das Thema BizTalk begleitete mich immer weiter durch das Jahr, wirklich abgeschlossen war es nicht, allerdings nicht mehr so massiv. Im ersten Quartal war außerdem noch Erfahrung sammeln und Erweitern einer Fahrzeugtracking-Komponente bzw. Tour-/Auftragsübermittlung. War wirklich spannend und man sieht mal, was alles so als Produkt vertrieben wird. Interessant ist Fahrzeugtracking eigentlich für jeden Fuhrpark.

Das 2. Halbjahr war eigentlich das Thema Sharepoint führend. Also Sharepoint-Technologien 2007 sind wesentlich netter und interessanter als die Vorgänger, allerdings immer noch teilweise sehr „spannend“ im Verhalten. Dieses Problem führte in der letzten Woche zur Verschiebung eines GoLives einer Applikation. Dennoch ist Sharepoint auch für Webseiten eine Interessante Alternative, hier mal einige Beispiele von diesem Jahr, www.smartpath.de, www.callparts.de, ersatzteile.callparts.de. Alle diese Seiten nutzen leider noch nicht den gesamten Funktionsumfang des Sharepoints, allerdings kann das alles noch kommen. Mit dem Sharepoint wurde teilweise auch der Einsatz von Ajax-Technologien verbunden. Was sich allerdings ohne das angekündigte Service Pack 1 für Sharepoint als Schwierig gestaltete

Ein anderes Thema, dass im Zweiten Halbjahr Erfolge feierte, war die Einführung von Subversion bei uns. Bei uns meinte ich jetzt SD&C und CapeVision, wir Entwickler nutzen das bei CapeVision bereits als Standard, allerdings wurden bisher nur Sourcen abgelegt. Nach der geleisteten Überzeugungsarbeit im ersten Halbjahr bei einem Projektleiter, war die Einführung nicht mehr ganz so schwer. Die Geschäftsführung musste allerdings noch überzeugt werden. Auch der zweite involvierte Projektleiter stimmte für Subversion. Was allerdings für eine breite Akzeptanz fehlte, war die einfache Möglichkeit Projekte anzulegen. Zu diesem Zweck habe ich mich an die Entwicklung einer Applikation (natürlich in der Freizeit) gemacht, die die Anforderung abbilden kann. Meine erste Idee war die Realisierung auf Basis der BizTalk Technologie und Sharepoint, diese Idee musste ich verwerfen, da es schwieriger war als gewünscht. ABER es gab das .NET Framework 3.0, welches Workflow Komponenten (Workflow Foundation - WF) und Service Hosting Komponenten (Window Communication Foundation - WCF) enthält. Außerdem kam für das Front-End eine Web-Applikation mit Ajax Unterstützung zum Einsatz. Letztendlich sorgt die Applikation dafür, dass das Projekt als Repository angelegt wird, die Basis-Struktur nach derzeitigem KM (Konfigurationsmanagement)-Stand erzeugt wird, Benutzerrechte definiert werden und das Projekt-Ticketsystem Trac angelegt wird. Nun werden alle Dokumente (außer VMs) in das Repository eingecheckt.

Eine Technologie, die sich durch das ganze Jahr zog war die Virtualisierung. Dabei kamen bei uns beide großen Systeme Microsoft Virtual PC/Virtual Server und VMWare Workstation/Server zum Einsatz. Allerdings verschob sich im Laufe des Jahres alles Richtung VMWare aufgrund der besseren Unterstützung von Peripherie.

Noch wichtig zu erwähnen, dass im November endlich Visual Studio 2008 und das .NET Framework 3.5 released wurden. Hier sind auf jeden Fall die ASP.NET 3.5 Extension zu empfehlen! Ach ja, ich hab nach über 2,5 Jahren endlich den MCAD komplettiert.

Eine weitere Technologie des Jahres ist aus meiner Sicht Instant Messageing. Endlich setzt sich IM auch in Unternehmen zu nehmend durch. Wir sind auf Jabber/XMPP umgestiegen, da es uns leichter und unabhängig ermöglicht einen Server zu betreiben. Wir nutzen Openfire als Server, der sehr einfach aufzusetzen ist und sehr gute Unterstützung bietet. Bei den Clients wählt jeder nach belieben. Zum einen nutze ich PSI, Kollegen nutzen Spark, Miranda oder auch Trilian.

Samstag, Dezember 22, 2007

Weihnacht ist da

Nun ist die Weihnachtszeit auch bei mir angekommen. Ich habe heute Morgen noch das Geschenk für meinen Bruder besorgt, was ich übrigens schon die ganze Woche machen wollte. Ich bin nun auf dem Weg zu meinen Eltern und versuche etwas Entspannung zu finden. ;) Mal einige alte Freunde wieder treffen wäre auch nicht schlecht, aber dazu muss erst ein Termin her.

Ich wünsche allen eine ruhige, friedliche und besinnliche Weihnachtszeit mit den Liebsten. Außerdem noch ein gutes Überstehen der Weihnachtsessen und Naschaktionen. Vielleicht klappt‘s ja auch mit einigen wenigen Schneeflocken dies Jahr. Hier in Finsterwalde ist übrigens schon einiges weiß, sogar die Straßen.

Sonntag, Dezember 16, 2007

Urlaub vorbei

Puuuh, also die Woche war noch mal etwas hecktischer, allerdings habe ich es so geschafft meine Gedanken an meine Ex zu reduzieren. War aber immer noch schrecklich, zumal ich wieder richtig schlecht schlafe. Montag habe ich, wie schon zu lesen war, endlich meinen MCAD fertig gemacht. Dazu musste ich am Sonntag mal einige Stunden missbrauchen um mich noch mal intensiv vorzubereiten. Dafür durfte ich dann am Montag Abend mal wieder Kinder hüten. War eigentlich ganz angenehm, außer dass man dann gar keine Ablenkung mehr hat, wenn die Kinder super schlafen.

Die nächsten 2 Tage war dann das Spielen an einer Webseite dran, wo ich auch einige neue Erfahrungen mit Lokalisierung erhalten hab. Nebenbei habe ich auch immer versucht eine Geschenkidee für meinen Bruder und seine Frau zu bekommen, aber ich habe immer noch den gleichen Stand. Die 2 Tage ASP.NET speilen hat sogar ein Ergebnis, dass nicht nur aus Wissen besteht.

Am Freitag war „großes“ Firmenmeeting, vorher noch eine kleine Abstimmungsrunde im .NET Bereich. Leider waren wir nur zu Zweit, so dass die Diskussionsrunde sich nur auf 2 begrenzt hat. Ich denke allerdings, dass es dadurch sehr produktiv war und auch einige gute Ziele und Vorgehen für kommende Events hat. Der Abend war auch recht nett und wurde richtig lang. Wir bekommen extrem viele neue Kollegen im nächsten Jahr, dass ist wirklich erschreckend. Leider verlässt uns auch eine Kollegin, allerdings auch gut verständlich, da diese immer weit wegfahren musste zum Arbeiten und das sich auch nicht mit ihrem Studium vertragen hat. Ich wünsche ihr aber viel Erfolg beim neuen Arbeitgeber und viel Spaß. Ansonsten hatte ich auch einige interessante, schockierende Aussagen gehört, die ich hier aber nicht posten werde. Gespräche mit den Chefs sind auch immer sehr Aufschlussreich. Zu dem hat jeder Mitarbeiter ein dickes Weihnachtsgeschenk in Form eines Candle Light Dinners bekommen. Ich habe blöderweise auch erfahren, dass aus unserem Testen viel weniger wird, weil ein Kollege nahezu die ganze Woche noch wo anders arbeitet. (aus 3*4PT sind nun noch 2*3,5PT geworden)

Mein Wochenende besteht aus dem spielen mit Windows 2008 und dem Warten auf das Service Pack für Vista. :) Am Montag gehe ich erst mal fleißig an Regressionstests. Am Mittwoch ist ein Jahresabschlussessen mit einigen alten Azubis. Ach und ich muss mein Fahrrad irgendwie reparieren. Es bremst immer am Hinterrad und ich hab keine Ahnung, was ich bei der selbsteinstellenden Bremse noch machen soll.

ASP.NET Localization

Ich hab in der letzten Woche bisschen an einer Webseite gefummelt. Dabei habe ich mal das Problem mit der Lokalisierung erneut angehen wollen. Wie bringe ich eine Webseite dazu die Sprache nach dem Nutzer auszurichten. Einige interessante Erkenntnisse sind mir dabei aufgefallen.

Der erste Schritt war es, dass Menü konfigurierbar zu machen. Das Menü ist mit Standard ASP.NET mitteln gebastelt, d. h. Sitemap, ASP-Menu und Breadcrumb. Nach einigem lesen bin ich hier schnell auf eine Lösung gefunden, die beeindruckend einfach ist. Das Sitemap file muss zu jedem Resourcen-Eintrag einen Resourcekey enthalten, mittels dem Resource-Key wird in der Resource-Datei nach dem Eintrag gesucht. Auf jeden Fall das Attribut „enableLocalization“ auf „true“ setzen.

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" enableLocalization="true">

<siteMapNode url="/" title="Home" description="Startseite" resourceKey="Root">

<siteMapNode url="/Me/default.aspx" title="Über mich" resourceKey="MeRoot">

<siteMapNode url="/links.aspx" title="Links" resourceKey="Links"/>

</siteMapNode>

</siteMap>

Zu jedem Eintrag kann eine Resource angelegt werden. Die Resource muss den selben Namen wie die Datei haben und im Global-Resource-Folder abgelegt sein. So muss mindestens die Datei „Web.sitemap.resx“ (bei Standardkonfiguration) existieren, wird eine lokalisierte Resource benötigt, so muss der Name der Culture angegeben werden, so z. B. „Web.sitemap.de.resx“ oder „Web.sitemap.fr.resx“. Ich habe die Erfahrungen nur mit Neutral-Cultures gemacht, aber ich denke, dass es auch mit der Specific-Culture funktioniert. Die Einträge in der Datei bestehen immer aus dem Resource-Key und dem Attribute-Namen.

Links.description External links
Links.title Links
Root.description
Root.title Startseite

Dieser Mechanismus ermöglicht es auch eigene Attribute zu verwenden.

Der Kompliziertere Teil war die Lokalisierung der Seiteninhalte. Hier gibt es 2 Wege, der 1. Fällt mir gerade nicht ein, hat allerdings auch nicht funktioniert, wenn man die Sprache manuell verändern möchte. Der von mir gewählte Weg nutzt Literal-Controls und Dynamische Control-Expressions. Der Inhalt der Seite muss an allen Stellen, die mehrsprachig sein sollen mittels controls aufbereitet werden.

<h1><asp:Label ID="lblHeadline" runat="server"

Text="<%$ Resources:PageDefault, Headline %>"></asp:Label></h1>

<p><asp:Label ID="Label1" runat="server"

Text="<%$ Resources:PageDefault, IntroductionArticle %>"></asp:Label></p>

In der Resourcen Datei “ PageDefault.resx” sind die Einträge „Headline“ und „IntroductionArticle“ definiert. Hier wird für weitere Sprachen das gleiche Verhalten wie bereits bei der Sitemap verwendet, z. B. „PageDefault.de.resx“.

Der so vorhandene Mechanismus passt die Sprache immer an die Browser-Einstellungen des Benutzers an. (IE: Tools-->Internet Options-->Language)
IE Language Settings

Um nun die Einstellungen manuell setzen zu können, muss etwas Code (leider in jede Seite eingefügt werden). Im ersten Schritt aber erstmal das setzen. Dazu habe ich meiner MasterPage die Sprach-Buttons und das Event dazu definiert. Durch klicken auf den Button wird das Server-Event ausgelöst. Im einfachsten Fall könnte der Code so aussehen:

Session.Remove("lang");

Session.Add("lang", System.Globalization.CultureInfo.GetCultureInfo(btn.CommandArgument));

Server.Transfer(this.Request.Url.PathAndQuery, false);

Am Ende wird ein Server.Transfer gemacht. Der Grund für dieses Verhalten ist im Standardmechanismus des .NET-Fx. Hier ist mal der Code umd die Sprache tatsächlich zu setzen:

protected override void InitializeCulture()

{

object o = Session["lang"];

if (o != null)

{

System.Threading.Thread.CurrentThread.CurrentCulture =

System.Threading.Thread.CurrentThread.CurrentUICulture = (CultureInfo)o;

}

base.InitializeCulture();

}

InitializeCulture ist eine Standard-Methode innerhalb des .NET-FX, allerdings kann der Code nicht in der MasterPage eingefügt werden. Außerdem muss für die gewählte Lösung das Paging aktiviert werden.

Ich hoffe, ich habe nix vergessen und wünsche viel Spass beim Anpassen des Internets. :)

Montag, Dezember 10, 2007

Endlich MCAD

Nach dem ich die letzte Prüfung zum MCAD über 2,5 Jahre hinaus geschoben habe, habe ich die Prüfung vor wenigen Stunden bestanden. Ich bin endlich ein MCAD! Die Prüfung enthielt schon einige echt … Aufgaben, aber zum Glück auch typische Webservice-Fragen, so dass ich die Prüfung mit 920 Punkten geschafft habe.

Nächstes wird eine der beiden Upgrade-Prüfungen für den MCPD sein, entweder 70-551 für Web-App oder 70-552 für Windos-App sein. Mal schauen, aber vermutlich werde ich die Prüfung noch innerhalb der Gültigkeit des „Second Shot“ machen.

Donnerstag, Dezember 06, 2007

Zum Nikolaus was kleines

Eigentlich wollte ich nix schreiben, aber da Nikolaus ist, habe ich mich nun dazu durchgerungen etwas zu schreiben.

Ich habe fast nix zum Nikolaus bekommen. Fast, weil eine gute, alte (sieht attraktiv aus und ist jünger als ich) Freundin mir eine nette, lustige SMS geschrieben hat. Ich hätte auch gern jemanden einen schönen Nikolaus gewünscht, am liebsten auch was Kleines geschenkt. Leider habe ich versprochen sie nicht mehr zu belästigen und nun kann ich ihr nicht mal was schreiben. Dieses Schicksal wird mich noch 1 Monat bis Ende Januar begleiten. Ich will sie einfach nicht nerven. Ich war heute mal draußen, das ist deshalb so ungewöhnlich weil ich mich die letzten 3 Tage in meiner Wohnung verkrochen habe und nicht mal raus wollte.

Urlaub ist echt hart. Ich hab allerdings auch mal etwas Zeit, in der ich an was anderes denke, bzw. keine Zeit habe an sie zu denken. Meistens ist das, wenn ich CoD4 zocke. Leider kann ich mich da nicht länger als 2h am Stück vor hocken, weil ich sonst einen riesen Schädel habe. Ich werde morgen meinen Schädel weiter bearbeiten.

Montag, Dezember 03, 2007

Smart Client Software Factory Erfahrungen

Nun endlich mal was zu dem Thema SCSF.

Wer die SCSF installieren möchte, der sollte dafür am besten eine VM nutzen. Man benötigt einiges an Beta-Software für den Client. Unbedingt auch die Versionen beachten. Es könnte sonst passieren, dass nicht viel geht. Aktuell ist das Mai 2007 CTP Release, dazu benötigt man:

·         Guidance Automation Extensions

·         Guidance Automation Toolkit

·         Optional VS2005 Extensions für .NET 3.0

Gute Arbeit leistet aber der Dependency Checker, der bei der SCSF mitgeliefert wird. Alle notwendigen Downloads werden vom Checker geprüft und die Links zur Verfügung gestellt.

Wer eine Installation unter Visual Studio 2008 wagen möchte, der sollte mal im Blog von Ezequiel Jadib vorbeischauen. Der Post ist allerdings für Orca Beta 2, wer etwas Ahnung hat, der sollte sonst aber auch keine Probleme haben. Ich habe das nicht ausprobiert, da ich wie oben geschrieben hab, die Installation in einer VM durchgeführt habe.

Die Hands on Labs (HOL) sind leider auch noch in einer Beta Phase und noch nicht komplett, aber um einen Einstieg zu erhalten, sind sie super.

Als Anwendung bieten sich eigentlich alle Anwendungen an, die im Intranet eines Unternehmens ausgeführt werden. Durch die saubere, manchmal auch etwas aufwendigere, Aufteilung und Entkopplung können Module leicht auf Veränderungen reagieren. Die Entkopplung ist bereits in vielen anderen Factories enthalten und ist definitiv für eine verbesserte Wartbarkeit durchzuführen.

Dies ist jetzt mein 3. Oder 4. Anlauf, wenn ich die CAB-Versuche mit zähle, mich in die Materie und Verwendung einzuarbeiten. Man sollte sich dafür durchaus 20h Zeit nehmen und einfach die HOLs von vorn bis hinten durchgehen. Bevor danach die Arbeit losgeht, sollte man sich aber noch mal Gedanken, wie bei jedem Projekt, über die Module machen. Ebenso ist es wichtig die Aufteilung/Layout des SCSF-Workspace zu beachten.

Ich werde mich das nächste Jahr weiter mit verschiedenen Modulen beschäftigen, unter anderem ein Modul zum Bearbeiten einer SVN-Authz-Datei und zur besseren Pflege von Stammdaten in unserem Unternehmen. Die für mich interessanteren Stammdatenpflege-Module sind unsere Mitarbeiterkontakte und die Projektdaten. Wer jetzt schreit Kundendaten kann er auch noch machen, wenn er schon Mitarbeiterdaten entwickelt, der irrt aus meiner Sicht. Kundendaten sind wesentlich Komplexer und werden vermutlich in anderen/mehreren Datenquellen abgelegt. Mitarbeiter Informationen sollten alle aus dem Active Directory kommen. Natürlich muss man dafür das AD-Schema evtl. erweitern. Mal schauen, wie schwierig es wird alle Daten in das AD zu überführen. Allerdings bedarf es vor dem Beginn der Mitarbeiterpflege einiger Nachforschungen der Informationen der Mitarbeiter.

Ich werde den Service zum ändern der SVN-Authz-Datei, sobald er fertig ist hier zur Verfügung stellen. Momentan ist das Laden implementiert, dies ist allerdings noch nicht bis ins kleinste getestet, was auch noch eine Weile dauern wird. Momentan will ich es einfach zum Laufen bringen.

Donnerstag, November 22, 2007

Sharepoint - Einträge werden nicht gespeichert | VS2008

Ich hatte die Woche oder besser schon letzte Woche Freitag ein zuerst sehr seltsames Verhalten im Sharepoint. Sämtliche Eingaben in Sharepoint-Felder wurden nicht gespeichert. Einträge wurden nicht verändert. Beim Anlegen eines neuen Eintrags wurden leere Sätze in den Sharepoint-Listen abgelegt, Nutzer konnte ich nicht Berechtigen, weil die Sicherheitseinstellungen von einer Seite zur nächsten verloren waren, geänderte Datensätze enthielten nur die Ursprungsdaten. Zu dem kam aber hinzu, dass Sharepoint sauber eine Version für Versionierte Einträge erstellt hat und dass es zu keinem Fehler kam.

Ich habe den ganzen Montag bis spät Abend damit zugebracht, diesen Fehler zu finden. Ich habe schon an mir gezweifelt, ich habe die Log-Files X-mal kontrolliert, habe meinen Server durchgestartet, die Sharepoint-Site angelegt, … Als ich den Master und die Default-Seite mit einer funktionierenden Seite austauschte, es war kaum zu glauben, es funktionierte dann. Der Kluge Informatiker folgert doch daraus, dass an mindestens einer der beiden Seiten liegt. 1 Schritt zurück, nur die default.aspx aus der funktionierenden Seite verwendet, getestet, gleicher Fehler. Ich habe dann noch 3h die beiden Master verglichen, habe Schrittweise Elemente hinzugefügt und entfernt, alles ohne Erfolg.

Meine Hoffnung Schwund den Fehler noch zu finden, aber dann … … in der Master-Page stand das Attribute EnableViewState für die Page angegeben. Ohne dieses Attribute (im Status „false“) funktionierten Listen wunderbar. Ich habe nach dem erfolgreichen Durchlauf die Version mittels Source Control zurück gerollt und das Attribut entfernt. Sämtliche Funktionen waren IO.  Wo bitte ist denn das Dokumentiert, dass Sharepoint den ViewState zwingend erfordert? Ich weiß es nun werde nie wieder in eine Sharepoint-Master-Page EnableViewState reinschreiben.

Nach dem VS2008 nun endlich Released wurde habe ich es sofort installiert. Gegenüber dem Vorgänger habe ich erstmal nicht die großen Unterschiede festellenkönnen. Nach dem ich mein Projekt allerdings compilierte, musste ich feststellen, dass die Compilierung wesentlicher schneller war als im VS2005. Heute morgen habe ich dazu auch einen Block-Post gelesen, in dem beschrieben wurde, dass MSBuild 3.5 einige wesentliche Verbesserungen bzgl. der Performance enthält. Muli-targeting Feature ist vermutlich das beste am neuen Studio, weil dieses Feature kommt alten und neuen Projekten zugute.

Dienstag, November 20, 2007

VS 2008 Released

Für alle Abonenten der MSDN ist seit heute Visual Studio 2008 verfügbar. Diesmal wird allerdings für den Download nicht der Microsoft Transfer Agent benutzt, sondern eine andere separate Anwendung. Der Download ist nur über die Startseite zugänglich.

Über die Neuerungen wurde schon viel geschrieben, jetzt ist es Zeit das herauszufinden.

Sonntag, November 18, 2007

MVC-Pattern Ausblick / Essential Windows Workflow Foundation

Die Woche bring ich mal nix von mir, sondern hab ein sehr interessantes Framework gefunden, dass „demnächst“ Released werden soll. Das MVC-Pattern für ASP.NET ermöglicht Testbaren, einfachen Web-Code. Leider ist momentan noch nicht mal eine CTP verfügbar. Ich kann euch aber nur den Post von ScottGu empfehlen, in dem er wunderschön das Vorgehen und die Möglichkeiten erklärt. Ach ja, vielleicht auch noch den Einführungsblog. Momentan ärgert mich, dass ich das nicht schon im August nutzen konnte. Aber nun gut.

Ich bin gespannt, ob das Pattern viele der momentan in .NET gängigen Web-Programmierungen ersetzt und die ganze Web-Applikation besser testbar macht. Ich vernachlässige selber allerdings auch extrem die Tests von meinen Web-Apps. Es schreibt sich so schwer ein Unit-Tests, oder man braucht wieder 3-4h um sich darin einzuarbeiten.

Hier mal noch eine Buchempfehlung: Essential Windows Workflow Foundation aus der Addison Wesley .NET Development Series. Das Buch ist wirklich sehr gut und auch sehr verständlich erklärt. Nun leuchten meine Augen und ich will meinen ganzen Workflow-Code umschmeißen. :D Das war früher, heute ist mir bewusst, dass es etwas viel zu tun wäre und ich nicht gleich damit anfange, sondern erstmal zu Ende lese und dann überlege, was sinnvoll ist. In meinem Code sind sehr viele Aufräumaktionen notwendig. (Ich glaube das kennt jeder.)

Samstag, November 17, 2007

Urlaub kommt

Diese Woche war seit langem mal wieder was los. Ich war mit vielen Kollegen Bowlen. Ursprünglich waren 2h angesetzt, es wurden allerdings 4h. Ich hab die ganze Zeit ohne Rechner durchgehalten. War wirklich eine gute Aktion, zudem war es eine hervorragende Ausrede mal zeitiger das Büro zu verlassen. Vermutlich wird es diesen Winter noch mehr geben, aber bis Weihnachten bin ich wahrscheinlich nicht mehr dabei, sofern ich eine Reise finde.

Womit ich momentan schon bei meinem momentanen Highlight-Thema bin. Ich werde diese Woche in Urlaub gehen. ES fehlt noch ein GoLive und 2 Arztbesuche. Ich habe grad schon mal nach einer Reise geschaut. Hab sogar etwas gefunden. Eine Reise in die Karibik. Mal schauen, ob ich mich zu sowas durchringen kann. Waren nicht in der Karibik immer Hurrikans?

Diese Woche noch fleißig sein, dann Übergabe machen und den Rechner nur noch für Fortbildung nutzen. Ich muss nochmal mit meinem Chef reden, weil ich nur eine Prüfung mache, wenn ich einen Punt bekomme, andere Kollegen bekommen das auch für eine Prüfung. Vielleicht würde ich dann noch eine Prüfung machen. Gebraucht würden die Punkte schon.

Sollte ich nicht in den Urlaub fahren, so habe ich zumindest eine Menge Zeit über das Jahr nachzudenken. Das erschreckende ist eigentlich nur, dass wenn ich den Urlaub durch hab, dass dann schon Weihnachten ist und noch schlimmer Neujahr ist. Aber bis dahin kann ich noch viele Dummheiten gemacht.

Sonntag, November 11, 2007

Urlaub rückt näher

Ich versuche immer wieder etwas an der Woche zu finden, was sich zu bloggen lohnt. Allerdings habe ich (arbeiten) weggelassen eigentlich auch nix gemacht. Ein Thema auf das ich mich so langsam mal vorbereiten muss, ist mein Urlaub. Tatsächlich, ich habe so etwas. Leider habe ich noch keine Lust auf Urlaub. Wenn ich mir überlege, ob ich wegfahre, komme ich immer wieder zu dem Schluss, dass ich nicht alleine irgendwo hinfahren will. Vermutlich werde ich einfach meinen Urlaub nutzen um Zertifizierungen zu machen, dafür muss ich aber erstmal noch mit meinem Chef diskutieren, ob 1 Prüfung ein Punkt ist. Nur noch 2 Wochen, bis der Urlaub los geht. Dann werde ich bis Weihnachten im Urlaub sein und zwischen Weihnachten und Neujahr in der Firma den Support übernehmen. Ist schon erschreckend, dass das Jahr gleich vorbei ist. Der Gedanke ist schon schön quasi nicht mehr arbeiten zu gehen dieses Jahr.

Ansonsten versuche ich mir immer noch zu erklären, was ich alles falsch gemacht habe in meiner letzten Beziehung. Mir geht das einfach alles nicht aus dem Kopf. Ich verstehe einfach gar nicht, was alles abgelaufen ist. … [gekürzt]

Am Donnerstag habe ich mir Call of Duty 4 gekauft. Nicht mal beim zocken konnte ich nicht an sie denken, aber es war weniger. Soviel wie am Freitag habe ich schon seit Jahren nicht mehr gespielt, aber mal ist das OK.

Diese Woche ist Go Live und „Kollegen“-Bowlen. Ich bin kein Bowling Fan aber freue mich trotzdessen schon drauf.

Schönen Sonntag!

ASP.NET / Sharepoint XHTML-Conformance

Die Woche habe ich mich mal mit dem Thema XHtml-Conformance beschäftigt. Eigentlich war das Thema eher so ein nebenbei Thema, prinzipiell ging es eigentlich um das Parsing und Anzeige verhalten der Browser. Wie die meisten sicherlich wissen dürften, haben „unsaubere“ Webseiten mit vielen Syntaktischen Einfluss ein negativen Einfluss auf die Performance und unter Umständen sogar auf die Anzeige. Mich hatte bei einer Sharepoint-Seite sehr gewundert, dass Elemente die ich als Syntaktisch richtiges Xml geschrieben habe, als Tags ohne schließen gerendert wurden. Hat man sich mal den Code der gerenderten Seite angeschaut, so sieht man noch viele andere solcher Stellen.

Nach etwas Recherche in der MSDN fand ich eine Möglichkeit zumindest das Rendering der ASP.NET-Seite oder Sharepoint-Seite umzustellen.

<system.web>

<xhtmlConformance mode="Transitional"/>

</system.web>

Das XHtml-Conformance-Element einfügen und den Modus beliebig einstellen. Es gibt Strict, Transitional und Legacy. Vermutlich ist im System.Web-Block noch einiges mehr enthalten, vor allem im Sharepoint ist das garantiert. Mittels der Einstellung sieht der gerenderte Code deutlich besser aus. Sharepoint generiert aber viele nicht Standardisierte Attribute auf Elemente, die zumindest zu Warnungen führen.

Freitag, November 09, 2007

Nach der heutigen Entscheidung zur Vorratsdatenspeicherung hier ein Post Off-Topic. Stoppt die Vorratsdatenspeicherung!

Dienstag, November 06, 2007

Sharepoint Site online

Juupppii, gestern ging die 2. auf SharePoint-basierende Webseite Online. Ich wollte den Post wenigstens noch heute rausbringen, bin vor 30min erst rein. Wer sich auch die Seite anschauen möchte, der kann unter http://ersatzteile.callparts.de sich Autoersatzteile suchen.

Jetzt ist die 3. Site dran. Vermutlich wird die nächste Woche Live gehen.  Nun noch bisschen ablenken und dann morgen wieder kräftig ranklotzen. Ich werde auch einen Post machen, sobald die nächste Seite online ist.

Der extreme Zeitdruck hilft wenigstens meine Privaten Sorgen etwas zu verdrängen, wenn auch nicht genügend.

Einen schönen Abend!

Sonntag, November 04, 2007

Viel zu tun, ...

Mal wieder eine Woche überstanden. Die Woche war schon wieder echt typisch. Ich habe nach Monaten es endlich geschafft meinen Urlaub einzureichen. 2 Tage späte hieß es, dass man evtl. noch mal drüber reden muss, wegen Projekt. Alles in allem wieder mal sehr interessant.

Mein momentanes Projekt macht Fortschritte und nun soll alles ganz schnell gehen. Morgen und am 15.11. sind die 2 Release dates für die beiden Komponenten. Für morgen sieht es sehr gut aus. Den anderen Teil muss ich erstmal beginnen.

Ich überlege schon 2 Tage, wie ich die Email weiter schreibe, mir fehlt aber immer noch eine Eingebung. Momentan würde ich mich am liebsten in der dunkelsten Höhle vergraben. Die Woche hatte ich 2mal das Thema Frauen und Kinder. Viele Frauen wollen Kinder nicht vor 30. Ok gut für mich, aber eigentlich ist doch schön, wenn die Kinder da sind, bevor man 30 ist, oder? Mein letzter Diskobesuch ist schon etwas länger her, eigentlich müsste ich mal hingehen um andere Frauen zu sehen und vielleicht auch mal an eine andere Frau zu denken. Bis jetzt habe ich mich dazu einfach nicht aufraffen können. Ich würde gerne mal in Tierpark gehen, oder spazieren gehen, aber alleine bewege ich mich nicht raus. Kaum eine Stunde, in der ich nicht an die Eine denke. Mein Schlaf ist in den letzten 2 Wochen wieder richtig schlecht.

Samstag, Oktober 27, 2007

Schlafen, Fahren, Arbeiten

Ich versuche nun schon so lange meine Gefühle etwas in der Griff zu bekommen. Allerdings habe ich bis jetzt noch keine Verbesserung für mich empfunden. Ich versuche mich derzeit einfach nur hinter richtig viel Arbeit zu verstecken, ich denke, dass man langsam auch die Erscheinungen merkt. Ich fühle mich richtig erfolgslos. Momentan habe ich nicht das Gefühl, dass irgendwas richtig läuft. Auf Arbeit läuft es nicht schlecht und ich habe viel Spaß, aber Privat ist immer noch nur eine Katastrophe oder eher eine Ruine. Ich kann nicht aufhören an sie zu denken und alles was ich versuche macht es schlimmer. Ich sehe irgendwie keine Fortschritte. Andererseits bin ich der einzige, der etwas Ändern kann. Aber ich habe selber nicht mal die leiseste Ahnung, was ich jetzt will. Ich weiß eine Sache, nur …

Ich habe allerdings die Woche einen uralten Kollegen getroffen, was für mich schon ein nettes Erlebnis war. Ich habe den Kollegen völlig aus den Augen verloren. Es war sehr angenehm sich mit dem Kollegen zu unterhalten.

Heute war es auch wieder ein langer Tag, ich hatte 2 Meetings. Das 1. zum Thema unseres Microsoft Development, WIX, Sql Server BI. Das Meeting hat sich ganz schön gezogen und letztendlich haben wir nicht mal den Pflichtteil geschafft. Hier sind die Folien, die ich zum Thema WIX/Paketierung erstellt habe. Das 2. Meeting war das Company Meeting unserer Mutter, was wieder vieles organisatorisches Behandelte, letztendlich etwas langanhaltend, das für mich vieles Bekannt war. Anschließend gemütliches Abendessen mit den Kollegen.

Ich bin grad im Zug und fahre zu meinen Eltern. Am Wochenende ist Geburtstagsfeier von 2 sehr guten Freunden (Freundin und Freund). Vielleicht kann ich mich da etwas ablenken. Ich habe die beiden und auch andere schon lange nicht mehr gesehen. Noch 1,5h fahren, mal schon, was ich technisches so geschrieben bekomme.

Visual Studio 2008 / .NET 3.5

Ich war diese Woche zum Tech Talk. Montag war dadurch ein sehr langer Tag. Ich glaube, das war der längste Tech Talk, den ich erlebt hatte. Mir fällt zumindest nichts anderes ein.

Der Tech Talk ging um das kommende Visual Studio 2008, früher Orca, und das .NET Framework 3.5. Alles in allem war aus meiner Sicht nun nicht der große Renner drin. Erschreckend finde ich noch immer oder gerade immer noch die exorbitant komplizierte Versionsnummernvergabe von Microsoft bzgl. .NET. Wenn ich es richtig verstanden habe, dann ist die Basis immer noch die CLR 2.0, der Compiler ist in der Version 3.5, andere Komponenten sind Version 3.0. Einfach unverständlich!

Nun aber zum eigentlichen Tema. Die größte Neuerung im Studio wird die Unterstützung verschiedener Framework-Versionen sein und das Switchen  zwischen diesen. Ansonsten sind es vor allem viele Kleinigkeiten, die gemacht wurden. JavaScript-Syntax-Highlighting und Debugging verbessert. Es gibt einige nette gemicks im Intellisense, aber das war es dann auch. Eine Sache ist mir noch eingefallen. Es wird ein verbesserten CSS-Editor geben, der auch anzeigen kann, welche Styles überschrieben werden durch die aktuelle Definition.

Bei den Spracherweiterung im Framework hörst sich das erstmal echt heftig an, wenn man sich aber genauer mit beschäftigt, so wird man sich fragen, wozu das eigentlich; zumindest bei einige Sachen.

Hier mal de Neuerungen:

-          Neuer Namespace System.Addin für das einfache Laden von Plugins und deren entladen

-          Optimierungen / Einstellungsmöglichkeiten am Garbage Collector

-          Implicit Tped Local Variables – was nichts anderes heißt, als Variablen mit der JavaScript-Syntax zu definieren. Der Typ wird anhand der 1. Zuweisung definiert.

-          Object- / Collection-Initiializer – können dazu benutzt werden, direkt nach der Instanziierung verkürzt Werte zu Methoden zu zuweisen.

-          Extension Methods – Ermöglichen es Erweiterungen für jeden beliebigen Framework Type zu schaffen. Somit es es nurn auch möglich, den System.String-Typ zu erweitern.

-          Anonymous Types – sind direkt im Code Block definierte lokale Typen. Letztendlich nur die Fortsetzung der Anonymous-Methods.

-          Lambda Expression – mittels der Ausdrücke können Expression gefiltert und sortiert werden. Allerdings wird damit deren Funktion noch nicht ganz klar beschrieben.

-          Auto-Implemented Properties – helfen jedem beim Schreiben der lästigen Property-Statements und Variablen in denen eigentlich nichts passiert. Letztendlich schreibt man so etwas wie eine Interface-Definition.

-          Partial Methods – habe ich nicht so ganz verstanden, wo deren großer Vorteil gegenüber normalen Ableitungen liegt.

-          Expression Trees – gar keine Ahnung, habe ich irgendwie verpasst.

-          Linq – das wohl am meisten ersähnte Feature für viele. Es geht darum eine Abstraktionssprache für Datenzugriffe zu schaffen. Bitte unbedingt die Folien ansehen. (Linq to Objects; Linq to DataSets; Linq to Sql; Linq to Entity; Linq to Xml)

-          Entity Framework – Ich ordne es grad als Bestandteil von Linq zu, aber da bin ich grad etwas unsicher. Letztendlich dient es dem entkoppeln von Datenrepräsentation und Business-Komponenten.

-          Sql Server 2005 Compact Edition – letztendlich so etwas wie SqLite für den Sql-Server. Als Addon gibt es noch einen Synchronization Service.

-          Ajax – wird Standard im Framework sein und somit vermutlich noch weitere Verbreitung finden.

-          Provider Model für Windows Clients – Nun auch in Windows Forms und WPF Anwendung unterstützt mit Server-Authentifizierung

-          WCF-Erweiterungen – Einige neue Transports für WCF

Wer die Folien und Beispiele der Veranstaltung haben möchte kann diese auf dem Blog von Dariusz Parys finden.

Der Tech Talk war auf jeden Fall eine gute Veranstaltung um mal einen Überblick zu erhalten. Wie man sich aber vorstellen kann, waren die 3-4h echt kompakt und vieles als Demo. Leider sind die Demos nicht als ScreenCast zu haben. Wer die Möglichkeit hat zu einem Launch-Event zu gehen, der sollte das ruhig nutzen. Mitte November wird in Frankfurt am Main der offizelle Launch, vermutlich noch vor dem US Launche stattfinden.

Donnerstag, Oktober 25, 2007

Sharepoint Object creation

Ich mache jetzt schon wieder fast 3 Monate intensive Sharepoint-Entwicklung. Gerade bin ich auf einen sehr interessanten und wichtigen Artikel gestoßen, der mir wieder einige Sachen in den Kopf geholt hat. Jeder der mit Sharepoint-Objekten arbeitet, sollte unbedingt mal http://msdn2.microsoft.com/en-us/library/aa973248.aspx und http://msdn2.microsoft.com/en-us/library/bb687949.aspx lesen. Beide Artikel behandeln das Dispose-Verhalten und Skalierung von Sharepoint-Objekten. Ich werde morgen noch mal einige Sachen in unserem Code checken, ob auch alles ordentlich entsorgt wird. Ich weiß, dass es einige Lücken gibt.

Ein Hinweis auf nicht entsorgte Objekte gibt auch das Sharepoint-Logging, in dem auf eventuelle Fehler hingewiesen wird.

Sonntag, Oktober 14, 2007

Sharepoint Ajax Integration

Vieles wurde bereits zu diesem Thema geschrieben.  Ich habe in den letzten 3 Wochen auch heftig mit dem Thema gekämpft. Dabei bin ich auf viele Probleme gestoßen und immer wieder nach dem Try-And-Error-Prinzip vorangekommen.

Mir hat für die ersten Schritt sehr doll der Artikel von Mike Ammerlaan Integrating ASP.NET AJAX with SharePoint geholfen. Der Artikel beschreibt sehr detailiert, was alles anzupassen ist.

Nach dem ich alle Schritte durchgeführt hatte, ging es merkwürdigerweise immer noch nicht. Nach Stunden des Forschens habe ich keine Ursache gefunden und mich erstmal für eine Realisierung ohne Ajax entschieden. Eine Woche später habe ich einfach nochmal Ajax Controls ausprobiert; es funktionierte auf einmal. Prinzipiell lässt sich so wirklich sehr viel damit anfangen und der Sharepoint noch um einiges verfeinern. Ich schreibe meine Controls meistens als Server Controls und nicht als User Controls, da so das Deployment einfacher wird. Der große Nachteil ist eine wesentlich aufwendigere Entwicklung.

Aktuelle realisiere ich gerade eine Webseite auf Sharepoint-Basis, die einige der Ajax-Controls nutzt. Viele Sachen machen sich im Sharepoint schwieriger als in einer klassischen ASP.NET-Anwendung, vor allem wenn man alles umbauen muss uns sämtliche Layout-Elemente verbiegen muss.

Für die neue Webseite wurde das Layout von Designern entwickelt, dabei wurde die Gestaltung vorrangig mit Photoshop oder einem ähnlichem Grafikwerkzeug durchgeführt. Das erschreckende ist dann immer, dass vieles einfach nicht so richtig passt, Schriften sehen im Web nicht identisch aus, Geschwungene Linien brauchen viele Grafikelemente, viele Bilder verlangsamen die Seite erheblich, ….

Mal schauen, wie es aussieht, wenn alles fertig ist.

Donnerstag, Oktober 04, 2007

Free Burma

Free Burma!

Samstag, September 29, 2007

Kleiner Nachtrag

Seit 2 Wochen ist nun auch die Internetpräsenz, die eigentlich für Anfang August geplant war Live. Schaut doch mal auf www.smartpath.de vorbei. Die Seite basiert auf Sharepoint 2007 Technologie und ist aus meiner Sicht sehr nett und gelungen. Ab und an ist sicherlich ein kleiner Makel, aber welche Seite hat das nicht. Wäre sehr interessiert an Feedback, ggf. würde ich es auch mit meinen Kollegen beraten. SmartPath ist das Kunstwort für unseren e-Dokumentenaustausch auf Basis von BizTalk.

Oktoberfest

Hui, gestern war ich auf dem Oktoberfest in München. Nach einer Einladung des Chefs von Xuccess habe ich mich auf den Weg gemacht. Der Hauptgrund hinzufahren war das Treffen von vielen bekannten Gesichtern. In der Frühe ging es hier in Berlin mit Zahnbürste bewaffnet los. Die nächsten Stunden waren dann sehr zäh, 6h Zug fahren. Ich habe mich für den Zug entschieden, weil ich anschließend Abend leicht und entspannt wieder zurückkomme. Ein weiter Vorteil bei einer Zugreise zum Oktoberfest man kommt fast auf der Festwiese an. Der Hauptbahnhof und Festwiese sind ca. 10min Fussweg auseinander.

Angekommen in München musste ich erstmal noch 2 Sachen beruflich checken, anschließend konnte ich mich an die Klärung machen, wie man am leichtesten zum Oktoberfest (zum Treffpunkt) kommt. Nach dem Weg zur Touristeninformation hatte ich auch diese Info und konnte mich dann auf den Weg machen. Angekommen machte ich mal eine Runde auf dem Oktoberfest, zum Glück war es trocken und nicht so voll. Mein erstes Fazit, das ist ein riesen großer Rummel (etwas plakativ gesagt). Auf meiner Runde habe ich schon 10-20 Polizisten gesehen.

Der nächste Meilenstein war das Treffen meiner Münchner Kollegen. Nach kurzem Telefonat habe ich auch das Zielzelt gefunden, man muss halt Altdeutsch lesen können. Der erste Schock, alle Münchner in Lederhosen und bei den Damen das andere Outfit (hat auch einen Namen), so habe ich die Kollegen noch nie gesehen. Ziel war übrigens das Weinzelt, was auch nicht wirklich ein Zelt war, sondern eher ein großes Holzhause.

Rein ging es durch den Hintereingang, an dem es voll war, weil Leute rein wollten, aber das „Zelt" schon geschlossen war. Mit Marker war, nach dem Durchdrängeln, alles kein Problem mehr. Drin ging es nach oben, ja, es gab 2 Ebenen, wo unsere Tische reserviert waren. Das Zelt sah von innen richtig schön aus, schönes Holz, nett/praktisch gestyled. Die Bänke waren sehr massiv mit Lehnen. Anschließend gab es in Intervallen das essen, 1. Brezn, 2. Kartoffelsalat und halbes Händl. (Hoffe, das ist richtig geschrieben) Für mich war so ein halber Vogel zu viel, aber hab trotzdem gut gegessen. Ach bevor ich es vergesse, es gab natürlich auch Getränke, allerding da wir im Weinzelt waren nur Weißbier und Wein, naja und 3 nicht alkoholische Sachen (Wasser, Apfelsaft, O-Saft). Ich habe Wasser und O-Saft getrunken, 0,5l Bier war mir zu viel und bei Wein bin ich auch nicht grade ein Genießer. Aber es war dennoch sehr schön.

Habe ich schon erwähnt, dass das Outfit der Damen sehr ansprechend aussah? (auch ohne Alk)

Um so später der Abend um so mehr Leute sprangen auf die Bänke und Tische und dass erstaunlichste und für mich noch nie gesehene, war das verspritzen von Sekt/Champagner. Zu Begin, beim Sammeln, meinte Robert, dass man hier eigentlich einen Regenschirm mitnimmt. Jetzt möchte ich noch erwähnen, dass eine Flasche Champagner zwischen 1.500€ und 3.000€ kostet und einige Flaschen in die Menge gingen. Die Band heizte der Stimmung auch gut ein. Zu Beginn gab es etwas ältere Songs und es wurde immer moderner. Ich fand die Band richtig gut. Mit Mario wollte ich mal zur Bar, von denen es 2 gab. Bei der ersten waren zwischen uns und Bar bestimmt noch 20m, allerdings waren die voller Menschen, die sich schon nicht mehr bewegt haben. Die 2. Bar im unteren Bereich, da wo der Champagner flog, sah nicht ganz so schlimm aus. Wir haben es geschafft fast in Armlänge an die Bar zu kommen, allerdings war es dann so heftig, dass es in keine Richtung mehr ging und bestellen war auch nicht möglich. Irgendwie haben wir es da wieder raus geschafft.

In den Gesprächen mit Kollegen konnte man so einiges erfahren. Das Weinzelt ist ein eher ruhiges und kleines Zelt, danach habe ich mir gedacht, dass ich lieber nicht die anderen Zelte sehen möchte.

Der ganze Abend war super schön. Bisschen getrübt von mir, weil ich trotz der vielen hübschen Frauen immer nur an eine Frau gedacht habe. Ich kann die eine Frau einfach nicht aus dem Kopf bekommen, dabei habe ich gar keinen Kontakt mehr zu ihr. Jeder sagt, ich soll sie vergessen, aber ich krieg es nicht hin.

Das Oktoberfest hat allerdings für viel Abwechslung gesorgt und die Stimmung ist wirklich ansteckend. Ich kann jedem nur mal empfehlen, wenigstens einmal im Leben das Oktoberfest zu besuchen. Der Spaß ist allerdings auch nicht ganz günstig, so dass man schon das Portemonnaie ordentlich voll machen sollte.

Ich denke, ich werde heute noch 1-2 Bilder vom Handy ziehen und diese online stellen. Die Bilder werde ich dann hier auch publishen. Jetzt muss ich erstmal einkaufen und vielleicht noch bisschen Wohnung aufräumen, wobei das auch quatsch ist.

Update: Unter http://picasaweb.google.com/zieschang/Oktoberfest2007 sind nun mal einige Bilder zu finden. Leider konnte ich nicht sehr viel machen, da ich nur ein Handy mit hatte. Aber hier noch Slides:

Donnerstag, September 20, 2007

.NET Cheat Sheets

Nette .NET-Resource habe ich gerade gefunden. Hier werden schöne Übersichten zum download gestellt. Kann ich nur empfehlen und am besten die Wände damit tapezieren J

Mittwoch, September 19, 2007

non-admin development

Ich versuche schon eine Weile als non-Admin auf meinem System zu entwickeln. Das ganze ist durch Virtualisierung enorm einfacher geworden. Admin-Rechte braucht man maximal noch in der VM. Allerdings entwickle ich auch einige Projekte auf meinen Host/Laptop. Hier habe ich eigentlich keine Admin-Rechte mehr. (eigentlich hatte)

Mit VS2005 ist die Entwicklung von Web-Projekten ohne Adminrechte erst schön einfach geworden. Aber vorgestern bin ich bei WCF auf ein Problem gestoßen. Hier können die Urls nicht registriert werden, so dass meine App crashed. Das Verhalten ist erstmal gut in der Knowledge Base dokumentiert, allerdings haben bei mir die Funktionen zum umgehen der Funktionen nicht funktioniert. Es gibt auch ein nettes Tool, dass bei der Generierung von notwendigen Kommandozeilenaufrufen hilft.  Hier noch ein Blog zum Thema http://blogs.msdn.com/drnick/archive/2006/04/14/configuring-http.aspx.

Noch etwas ganz anders. BizTalk 2006 R2 ist endlich released. Also wer die neuen Features (vor allem EDI) ausprobieren möchte, los geht’s!

Montag, September 17, 2007

BizTalk 2006 X101 System.Exception during build

Also manchmal wünscht man sich wirklich etwas hilfreichere Meldungen. Immer wieder renne ich in den gleichen Fehler. Man nutzt eine Funktion, die man schon 100mal in .NET-Projekten verwendet hat und plötzlich spuckt der BizTalk einen Fehler beim kompilieren aus. Ein einfacher Grund für diesen Fehler kann die Verwendung von Generics in der Klasse bei Methodensignaturen sein. Mit Generics hat es der BizTalk wirklich nicht. Dieser Fehler ist ziemlich ärgerlich, um den Fehler zu umgehen erstelle ich mir eine Wrapper-Methode in einer Hilfsklasse und leite dir Aufrufe 1:1 durch.

Wenn jemand eine bessere Lösung hat, dann wäre ich für den Tip dankbar.

Sonntag, September 16, 2007

Missing in ...

Ich habe schon langes nichts mehr privates gebloggt, der Grund dafür ist gar nicht so einfach zu sagen. Ein Grund ist auf jeden Fall, dass ich einfach nicht weiß, was ich denken will, denken soll, glauben soll und wünschen soll. Mir geistert immer noch ein Mensch immer im Kopf rum, dabei hab ich diesen Menschen eigentlich zum letzten mal richtig in Mail gesehen und da war es schon … (mir fehlt ein Ausdruck dafür). Ich sollte doch eigentlich nach sovielen Tagen alles aus dem Kopf bekommen, aber momentan wird es wieder schlimmer. Mein Chef will noch immer, dass ich mal meinen Urlaub plane, aber ich weiß einfach nicht, wie ich es überstehen soll, wenn ich Wochen ohne Arbeiten und ohne Freundin verbringen soll. Ich habe mir schon einen Backup-Plan überlegt, ich mache meine Zertifizierung und bastle an meiner Web-Seite, was allerdings nicht wirklich Urlaub wäre.

Ich werde heute vermutlich Skaten gehen, dann kann ich vielleicht abschalten. Blöderweise wird es schon dunkel sein, so dass es nicht mehr ganz so schön ist.

Wochenlang Sharepoint

Bbbbooooooaaahhh, schon seit Wochen beschäftige ich mit SharePoint-Services. Man verliert langsam aber sicher immer mehr die Lust an Sharepoint. Es gibt immer eine Kleinigkeit die man braucht, aber nicht vorgesehen ist. Für die meisten Sachen bedeutet das, dass man ein neues WebPart schreibt oder mal im Internet stöbert.

Größte Teil unserer Arbeit ist es das Onet.Xml und die Master-Pages zu erstellen. Leider ist nicht alles mit dem Onet-File möglich, so dass es zum Teil darauf hinausläuft, dass die Vorgänge in einem Provisioning-Assembly kodiert werden. (Msdn Sample http://www.microsoft.com/downloads/details.aspx?FamilyId=5B6C8FB0-9B67-47DB-8A09-BCA76BC9A5D1&displaylang=en)

Der Upload von Dokumenten in eine Sharepoint-Document-Library ist nicht über die Builtin-Webservices möglich, allerdings ist das nirgends ausführlich erklärt. In Blogs und teilweise auch in Foren gibt es zum Glück dafür auch Hilfe, sogar MS stellt ein entsprechendes Beispiel bereit, in dem Dokumente upgeloaded werden. Nicht ganz aktuell, aber es funktioniert http://msdn2.microsoft.com/de-de/library/ms916810.aspx und ein guter Blog-Eintrag zum Thema http://weblogs.asp.net/sebastianweber/archive/2004/10/22/246470.aspx. Warum diese Funktion allerdings kein Standard ist, bzw. nicht über die Standardlisten-WS abgewickelt wird, ist für mich unverständlich.

Der Schwierigste Punkt bei der Entwicklung mit Sharepoint ist die mangelnde und ungenau Dokumentation. Seit der letzten Version hat sich viel getan, allerdings sind immer noch viele tiefgreifende Funktionen nicht erklärt.

Ich muss mal noch Auszüge aus der Onet posten, allerdings das nicht mehr heute. Hier noch eine ganze Reihe von Links zu Sharepoint http://del.icio.us/splushi/wss.

Sonntag, September 02, 2007

Workflow Foundation und Communication Foundation Rückblick

Mein Provisioning Projekt auf Arbeit ist in der 1. Version einsetzbar. Wenn ich mir die Sachen alle so anschau, dann würde ich sagen, dass es schon eine klasse Sache ist.

Workflow Foundation finde ich echt Spitze zur Abbildung von Abläufen, allerdings habe ich bei mir zu sehr auch Code in dem Workflow geschrieben. Im Nachhinein würde ich das vermutlich in eine oder zwei separate Klassen auslagern. Mein Workflow wird über die Enterprise Library konfiguriert, dabei wird die Konfiguration in die Klasse gegeben. Das Starten von Workflows wird durch einen Windows Service durchgeführt. Als nächstes müsste ich mich mal mit den vielen weiteren Features der Workflow Foundation beschäftigen. Unter anderem bin ich total unglücklich über das Exception Handling. Exception Handling finde ich im BizTalk besser gelöst.

Die Communictation Foundation ist eigentlich von außen betrachtet, nichts Aufregendes. Allerdings birgt es extrem viele Vorteile. Entwickler brauchen nicht zu wissen, wie die Kommunikation später ablaufen wird. Es ist egal, ob TCP, http, Soap, …. Weiterer Vorteil, die Anwendung kann schnell auch wieder für Legacy Apps zugänglich gemacht werden, dazu muss halt in der Konfiguration am besten Soap über http aktiviert werden (sollten doch die meisten verstehen). Mein subjektiver Eindruck ist auch, dass die Kommunikation schneller abläuft und die Serializer flinker sind, als die Standard-Serializer. Momentan ist mein Ärgernis, dass ich nicht die Konfiguration, oder Parameter an meine Operation-Klassen gegeben kann, hierfür muss ich mir wohl eine neue Konfiguration-Section schreiben.

WF und WCF sollte sich jeder Entwickler im .NET-Umfeld schnell anschauen und in seinen Sprachschatz aufnehmen. Der Einsatz der beiden Technologien wird durch die 100%ige Kompatibilität des FX3 zum FX2 erleichtert.

Viel Spaß beim ausprobieren!

Samstag, August 25, 2007

Lust; Spielereien

Oh man, eine Woche geschafft. Eigentlich kann ich diese Woche nicht so richtig sagen, wie ich mich fühle. Ich bin nur noch total fertig. Ich hab jeden Tag bis 22:30 gearbeitet (nur zur Anmerkungen meistens schon gegen 4-5Uhr aufgewacht), so dass ich gar nicht an die Dame meines Herzens denken konnte. Naja so ganz stimmt das auch nicht, beim Radeln hatte ich immer Zeit und auch meine Gedanken abschweifen lassen. Manchmal ist sowas ganz schön gefährlich. Aber durch die Egal-/Null-Bock-Mentalität übersteht man das aber immer.

Beruflich sind momentan mein Lieblingsthema Workflow Foundation (http://del.icio.us/splushi/wf) und Windows Communication Foundation (http://del.icio.us/splushi/wcf). Zu WF habe ich bereits etwas geschrieben und zu WCF werde ich vermutlich noch etwas schreiben. Mal schauen, was mir zu dem Thema noch einfällt.

Montag, August 13, 2007

Workflow Foundation

Seit 2 Wochen beschäftige ich mit der Workflow Foundation. Die Foundation ist ein echt netter Ansatz, wer mit BizTalk gearbeitet hat, dem wird vieles ähnlich vorkommen. Für die Realisierung von Projekten bringt die Foundation nette Vorteile, da eine zusätzliche Abstraktionsebene geschaffen wird. Somit wird der Programmfluss/-ablauf z. B. auch für nicht Entwickler verständlich und nachvollziehbar. Als Addon auf die Nachvollziehbarkeit wird es für Fachabteilungen ermöglicht, dass die Verarbeitungsreihenfolge von Prozessen verändert werden kann. Es wird dadurch immer noch nicht möglich den gesamten Code zu verändern, aber wenigstens etwas.

Meine Erfahrungen beschränken sich bisher auf einen Workflow ohne externe Events. Bei externen Events muss man an Persistenzschichten denken. (Email an Benutzer -> Benutzer antwortet)

Der große Unterschied von BizTalk und WF ist, dass BizTalk eine komplette Umgebung mit Persistenzmechanismen ist. Momentan komme ich mit dem Fehlerhandling des BizTalks besser klar, als mit dem Fehlerhandling in der WF. Wobei es in der WF bunter ist. J

Die Erweiterbarkeit der WF ist relativ einfach über CustomActivities möglich, eine solcher CustomActivities ist in der HOL (Hands on Labs) enthalten. Aus meiner Sicht hätte man unbedingt eine ExcecutionActivity integrieren müssen. Nun gut, so musste ich meine eigene Schreiben. Die Extensions sind unter http://www.codeplex.com/capevisionWorkflow/Release/ProjectReleases.aspx?ReleaseId=6382 downloadbar.

Mein erster Workflow soll das Anlegen eines Projektes vereinfacht werden und für Nutzer ohne zusätzliche Rechte möglich. Allerdings wird die Eingabe nicht im Workflow sonder über eine separate Web-Oberfläche realisiert. Der Workflow ist für das Anlegen und Benachrichtigen von Komponenten und Nutzern zuständig.

kompletter Workflow
Workflow-Ausschnitt

Das ausführen von Workflows ist in den HOLs und vielen Blogs zu finden. Zur Vollständigkeit ist hier mal der Start meines Workflows abgebildet.

using (WorkflowRuntime workflowRuntime = new WorkflowRuntime())

{

AutoResetEvent waitHandle = new AutoResetEvent(false);

workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e) { waitHandle.Set(); };

workflowRuntime.ServicesExceptionNotHandled += delegate(object sender, ServicesExceptionNotHandledEventArgs e)

{

Trace.WriteLine(this.GetLogMessageFormatted("Unhandled Exception! "+e.Exception.ToString()));

};

workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e)

{

wfEx = e.Exception;

Trace.WriteLine(this.GetLogMessageFormatted("Termination! "+e.Exception.ToString()));

waitHandle.Set();

};

WorkflowInstance instance = workflowRuntime.CreateWorkflow(this.Configuration.Workflow, parameter);

instance.Start();

 

waitHandle.WaitOne();

}

Wer Parameter zum Workflow hinzufügen will, der gibt diese beim Aufruf der CreateWorkflow-Methode mit. Im Workflow müssen dann Properties mit getter und setter eingefügt werden, die den gleichen Namen wie die Parameter haben. Alles in allem sehr einfach.

Weitere Services (z.B. für Persistenzschicht) werden über die Workflow-Runtime-Instanz hinzugefügt.

Hier noch einiger meiner Links: http://del.icio.us/splushi/wf

Samstag, August 04, 2007

VS.NET Windows Workflow Foundation Installation

Ich habe die ganze Woche bestimmt 10 mal die Workflow Foundation installiert und deinstalliert. Aber leider habe ich immer einen Fehler beim Starten vom Studio bekomme.

package load failure [Microsoft.Workflow.VSDesigner.DesignerPackage, Microsoft.Workflow.VSDesigner, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]“ oder so.

Beim Googlen bin ich fast immer nur auf Problembeschreibung zu den Beta-Versionen gestoßen, leider sehr selten zu den RTMs.

Ich konnte heute mal wieder nicht richtig schlafen und was mache ich installieren und googlen. Ich bin auf einen Blog-Eintrag http://codegoeshere.blogspot.com/2006_08_01_archive.html gestoßen und relativ kurz danach … ES GEHT!

Was wirklich viel bringt, ist „devenv /log“ auszuführen. Im Log-File stand bei mir immer ein Hinweis auf die WebReports8.dll, die das laden des VSDesigners Probleme machten. Also mal das Addin-Folder (Eigene Dateien\VS\Addins) gecheckt und das Addin entfernt.

So einfach kann eine Lösung sein, wieso bekommt man dann nicht eine schöne Fehlermeldung?

Nun werde ich nach BizTalk ein Workflow-Entwickler. :D (Vielleicht etwas spät)

Montag, Juli 30, 2007

Sharepoint-Links und Onet (leider ohne Sample)

Ich arbeite nun schon wieder 3 Wochen intensiv mit Sharepoint. Ich habe schon wieder eine nette Link Liste zusammen gesucht. Wer Interesse hat: http://del.icio.us/splushi/wss

Der Launch der 1. auf Sharepoint basierenden Website steht kurz bevor, allerdings wird’s noch mindestens bis Mitte nächste Woche dauern. Momentan ist die Site gerade in einer internen Review-Phase, kleine Korrekturen sind noch notwendig, allerdings wirklich nur noch Kleinigkeiten. Die Site wurde komplett mit einer Sharepoint-Definition Onet.Xml zusammen gesetzt und published. Alle Inhalte und Seitenstrukturen sind komplett in der Datei enthalten. Das hat mein Kollege wirklich gut gemacht (mit etwas Hilfe, aber nicht von mir). Das Beste ist das WebPart, was bereits unten erwähnt wurde. Leider werde ich es wohl nicht veröffentlichen dürfen. Allerdings wäre es bestimmt für viele Interessant.

Hier noch einige Details zu dem WebPart:

-          Das WebPart nutzt Listeninhalten zum Aufbau des Inhaltes

-          Es können mehre Einträge generiert werden, die Anzahl wird konfiguriert.

-          Es könnten unterschiedliche Inhalte in einer Liste enthalten sein.

-          Es nutzt die Workflow- und Versionierungsfunktion

Ich glaube, es gibt noch einige Details, aber die fallen mir grad nicht ein. Uns erspart es eine Menge Arbeit, da nun jeder einfach die WebSite erweitern kann und eine Freigabefunktionalität enthalten ist. Änderungen werden erst durch entsprechende Prüfungen published.

 

Habe heute 2h gebraucht eine Site per Onet zu publishen, die eigentlich schon lief. Ich hatte einen 2 Konfigurationsblock eingefügt, da eine 2. Seite ähnlich aussehen sollte. Ähnlich bedeutete aber halt nicht gleich und so flogen Listen raus. Beim Publischen kam immer ein nichts-sagender Fehler.  „Error could not finish, Retry …“, oder so ähnlich.  Nach Stunden habe ich dann herausgefunden, dass einige der Listen noch in meinem Standard-Modul referenziert waren. Also warum da die Fehlermeldung, oder wenigstens das Log etwas besser wäre.

 

Mist … grad was dazwischen gekommen, Bye!

Donnerstag, Juli 26, 2007

Jabber ...

Bei uns in der Firma propagandiere ich seit 2-3 Wochen Jabber als Protokoll für IM zu nutzen. So langsam werden es mehr Leute.

Der Grund für die Umstellung bzw. den Sinneswandel waren mal wieder die aktuellen Artikel und einige Studien zu Servern. Wer sich die Nutzungsbedinungen von MSN, AIM, ICQ, … durchliest, der wird feststellen, dass die Betreiber/Anbieter sich das Recht vorbehalten das geistige Eigentum zu nutzen. Zu dem kommt noch die Inkompatibilität hinzu. (ICQ kann nur mit ICQ usw. )

In Unternehmen ist es zum Teil auch wichtig, dass die interne Kommunikation nicht nach außen geht. Hier hilft Jabber, sämtliche Kommunikation läuft über den Server und wird wie Mails gerouted. Weiteres Plus: Jabber unterstützt die SSL-Verschlüsselung.

Wir setzen den OpenFire-Server ein, der ist schön einfach und pflegeleicht. Jetzt kämpfe ich grad noch etwas mit unserem Domain-Anbieter, zwecks einer Umstellung der SRV-Records, so dass die Domain als Identifier ausreicht.

Wie man sieht, ich habe deutlich zu viel Zeit!

Sonntag, Juli 22, 2007

Sharepoint-Development (Authentification)

Mit eine Kollegen machen wir seit einer Woche kräftig Sharepoint-Entwicklung über „Onet.Xml“, wir haben die Woche viel gelernt und viel herausgefunden. Aber ich muss auch sagen, dass wenn man sich die Sachen alle alleine Erarbeitet, es wesentlich weniger Fortschritte gibt. Mein Kollege hat zu dem cleveres Webpart geschrieben, dieses Webpart hatten wir auch schon auf unseren bisherigen Webseiten im Einsatz. Das Webpart kann aus Listeneinträgen die Werte darstellen.  Dadurch kann man das Freigabe-Feature oder Rechte, oder andere listenbasierende Features für die Anzeige von Informationen nutzen. Wir nutzen die Listen für die Bearbeitung und das einfache Einstellen von Inhalten in die Websites. Ihr könnt es vermutlich ab Mitte August in Aktion auf der ersten Website sehen.

Ich habe letzte Woche 2 Tage mit dem Sicherheitsmodell von Sharepoint gekämpft. Es ist schon wesentlich besser, als das Sicherheitsmodell vom alten Sharepoint, wenn man es erweitern möchte. Aber gleichzeitig ist es auch sowas von Schwierig. Es gibt massig Anleitungen, wie man vorgehen muss, daher hier nur ein Link auf ein gutes Einführungsvideo von Channel9 http://channel9.msdn.com/ShowPost.aspx?PostID=229709.

Was ich zum ersten mal Begriffen habe, zumindest hoffe ich das, sind die Zonen. Wenn euch das Thema interessiert, dann schaut mal diesen Post an. Darin wird sehr gut beschrieben, wie vorzugehen ist. So kann man für alle über das Internet zugreifende Personen den Sql-Provider benutzen und wenn jemand aus dem eigenen Netz kommt, kann er über Windows-Authentifizierung an dem Sharepoint arbeiten. Ob es funktioniert, das werden wir in der nächsten Zeit feststellen.

Sonntag, Juli 15, 2007

WSS3 Installation (Abbruch)

BBBBooooaaahhhh neeee!

Ich habe gerade auf unserem Testsystem versucht Windows Sharepoint Services 3.0 zu installieren, allerdings ohne Erfolg. Die Installation bricht immer mit einem Fehler ab, danach fehlen alle Sql Instanzen, so dass man nicht mal die Konfiguration manuelle beenden kann. Außerdem sind fast keine Dateien auf dem System vorhanden L. Jetzt muss ich mal weiter grübbeln, ob es einen Workaround gibt.

 

OOOOOOOOOhhhhhhhhhhhhhh man, ok, also nach Stunden des Doktorns und probieren hab ich es endlich. Ich hätte nur mal schneller nach dem Fehler das EventLog checken müssen. Sharepoint meckert an, dass das Windows-Verzeichnis komprimiert ist und damit kommt er nicht zurecht. Jetzt ist nur die Frage, warum kommt er nicht zu recht? Die Installation ist nun durch und es kann weitergehen.

BizTalk Convoy

PPPPPuuuuuhhh, in der Woche habe ich das Projekt in München abgeschlossen. Es hat viel Spass gemacht mit den Kollegen.

 

Wir hatten diese Woche also GoLive und wie das so ist, man merkt produktiv immer erst die Funktionsfähigkeit. Wir hatten einige kleinere Startschwierigkeiten, so dass statt 10 Uhr GoLive, GoLive im 14 Uhr war. Alles in allem recht gut.

 

Bei dem Projekt kam das BizTalk Convoy Pattern zum Einsatz, leider auch mit einem unschönen Verhalten. Die „Convoy-Orchestration“ zieht, so lange sie aktiv ist, alle Messages die der Subscription entsprechen sofort an. Dieses Verhalten führte bei uns, da wir maximal 10 Batchen wollten und keine Correlation machen können (außer über den Port) zu massig Zombies. Allerdings nicht auf der Produktion. Schön und 100%ig verständlich finde ich das nicht. Als Workaround wurde eine 2 Orchestration benutzt, die die Messages mittels einer GUID gruppiert. Dadurch erhält die Verarbeitende Orchestration niemals mehr Messages als zulässig sind. Nachteil der Lösung: Es gibt eine Orchestration die immer aktiv ist und sequentiell arbeitet. Allerdings enthält die Orchestration so wenig Logik, dass die Verarbeitung sehr schnell abgeschlossen ist und keine Zombies auftreten dürften. Man sollte mal in den Convoy-Beispielen auf den Sachverhalt mit den Zombies hinweisen.

 

Der nächste Schritt war noch schnell den Business User eine kleine Ansicht zu geben, die zumindest alle verarbeiteten Dateien auflistet. Leider haben wir das nur für einen Teil hinbekommen. Bei nicht aktivierenden Ports, kamen keine Infos mehr aus dem BAM. Ich vermute mal, dass wir etwas nicht richtig machen, allerdings bin ich mir da auch nicht so sicher.

Samstag, Juli 07, 2007

Sharepoint; Jabber

Ich habe die letzte Woche mich mal wieder intensiv mit Sharepoint beschäftigt. Wir versuchen in nächster Zeit ein Portal und eine Website auf Windows Sharepoint Services zu realisieren. Ich muss sagen, was das Sharepoint wirklich sehr komplex ist um es zu erweitern.

Ich habe eine Beispiel Side Definition gefunden. Durch dieses Visual Studio Projekt kann man sehr leicht die Änderungen auch auf einem anderen Server einspielen. Leider finde ich den Link nicht mehr zu dem Eintrag.

Irgendwie habe ich noch nicht das Ideale „Staging“ für Sharepoint herausgefunden. Vielleicht kann ich in 2-6 Wochen mal einen schönen Artikel zu Sharepoint schreiben.

UPDATE: Ich habe den Artikel gefunden! Developers Guide to WSS 3.0

 

Ich habe am gestern Endlich unseren Jabber-Server aufgesetzt. Jetzt muss ich meine Kollegen nur noch von den Vorteilen überzeugen und das es besser ist, wenn die Nachrichten nicht außer Haus geroutet werden. Richtig klasse ist das einbinden von anderen Protokollen, wobei das allerdings auch sehr anfällig ist. Ich habe noch keinen Client gefunden, mit dem das richtig klappt. Als Server nutzen wir Openfire, der bietet extrem viele Features und ist super leicht zu administrieren. Ich habe mich 1 Abend mit dem Server beschäftigt und am 2 Abend ihn auf unserem Server installiert. Oh Wunder, es geht.

Ich dachte erst, dass meine Google-Talk Jabber Zeiten vorbei sind, aber mit dem Beta-IM-Plugin kann man auch wieder Google-Talk Jabber einbinden. Leider habe ich noch einige Probleme mit ICQ, die Benutzer wurde nicht aufgelöst und nur als IDs angezeigt. Beim Beta-Plugin habe ich das noch nicht erneut versucht. Als Client habe ich mich für mein geliebtes Miranda entschieden. Nun läuft‘s sehr gut. Nächste Woche werde ich versuchen den http-Zugriff mit Miranda hinzubekommen.

Samstag, Juni 30, 2007

XmlSerializer Performance verbessern

Naja, es ist Samstag und was hat man zu tun, wenn die Freundin einen nicht sehen will? Aufräumen, Arbeiten, Blogs lesen, …

 

Wie auch immer, ich bin gerade auf einen Artikel gestoßen, den ich sehr interessant und gut finde. Eigentlich ist es wahrscheinlich den meisten bewusst, was der XmlSerializer alles so anstellt, aber in dem Blog-Post von Thomas Woelfers erklärt er viele interner, die durch eine Analyse ermittelt wurden.

Mein Fazit aus dem Artikel: Wenn ich einen XmlSerializer brauche und das Mehrfach in meiner Applikation, dann werde ich den immer schön versuchen zu cachen, so wirkt sich der kurze Gerierungs-Overhead nicht so stark aus. Auch wenn die Lösung mittels anpassen von CSharp-Targets aus den Standard-Skripten möglich ist. Leider kenne ich mich und vermute einfach mal, dass schon im nächsten Projekt vergessen habe.

 

Habe ich schon erwähnt, dass ich meine Freundin vermisse ;)

Samstag, Juni 23, 2007

Exchange Up and Running

BBBooooaaaahhhh,

jetzt hatte ich grad ein Erfolgserlebnis, endlich mal seit Tagen/Woche. Unser Exchange-Server läuft und ist funktionstüchtig. Der nächste Schritt ist die Migration aller Emailaccounts.

 

Die letzten Probleme sind etwas … aber jetzt gelöst.

Wichtig ist beim Einsatz von Exchange RPC over http, dass das eingerichtete Zertifikat auf dem Webserver auch tatsächlich vertrauenswürdig ist. Ist das nicht der Fall, so wird keine Verbindung aufgebaut.

Des Weiteren mussten für die schrittweise Umstellung der Emailaccounts die Empfangene Domain wieder aus dem Server rausgeschmissen werden, da wir sonst nicht umgestellte Accounts nicht mehr erreichen. Für alle Benutzer wird zu erst eine Weiterleitung eingerichtet und wenn alles erfolgreich durch ist, dann wird die eigentliche Domäne wieder angelegt. (Vorteil, wenn man mehrere Domains hat.)

 

Eins muss man MS lassen, Outlook Web Access sieht echt klasse aus und ist auch eine recht vollständige Lösung.

 

Sonstiges:

Jetzt kann ich mich in aller Ruhe mit EDI beschäftigen. Ich werde mal so einen „Konverter“ ausprobieren und die genauen EDI-basis Standards der Energiewirtschaft versuchen zu ermitteln. Meine Freundin? hat immer noch nicht mit mir geredet. Schlimmer ist allerdings, dass es scheint als würde Sie nicht mal ans Handy gehen wenn ich Anrufe. Ich überlege, ob ich es heute noch mal probiere. Ich bin mir nicht sicher, ob dass dann nicht zu aufdringlich ist und ich nicht lieber noch etwas warte. Wenn ich weiß, wo sie steckt, dann habe ich schon eine Idee …

 

Nun wird erstmal Mittag gemacht!