Sonntag, Januar 20, 2008

Exchange 2007 Webservice Zugriff mit VS 2008

Ich hab mich am Wochenende mit Exchange 2007 WebService Zugriff beschäftigt. Ich habe dazu auch einige nette Guides gefunden im Internet, unter anderem von Eric Lee. Meine Versuche gestalteten sich allerdings etwas schwieriger. Ich wollte alles mit Visual Studio 2008 machen, allerdings basiert hier alles auf WCF. Die generierten Proxy-Klassen sich komplett anders aus, so dass die Beschreibungen nicht ganz halfen.

Zu erst musste ich mal meine Konfigurationsdatei hinbiegen, irgendwann sah die Datei so aus:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
      <client>
        <endpoint name="CapeVisionExchange" address="https://mail.capevision.net/EWS/Exchange.asmx" binding="basicHttpBinding" bindingConfiguration="ExchangeServiceBinding" contract="ExchangeWebServices.ExchangeServicePortType" behaviorConfiguration="ServiceAuth">
        </endpoint>
      </client>
      <behaviors>
        <endpointBehaviors>
          <behavior name="ServiceAuth">
            <clientCredentials >
              <windows allowNtlm="true" allowedImpersonationLevel="Identification"/>
            </clientCredentials>
          </behavior>
        </endpointBehaviors>
      </behaviors>
        <bindings>
            <basicHttpBinding>
                <binding name="ExchangeServiceBinding" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                    useDefaultWebProxy="true">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <security mode="Transport">
                      <transport clientCredentialType="Ntlm" proxyCredentialType="None" />
                      <message clientCredentialType="UserName" algorithmSuite="Default" />
                    </security>
                </binding>
            </basicHttpBinding>
        </bindings>
    </system.serviceModel>

</configuration>

Das war nicht mehr mit den alten WebService-Kenntnissen vergleichbar, allerdings es funktioniert.

Ich habe anschließend versucht mich nahe an dem Beispiel entlang zu hangeln, aber irgendwie war alles anders. Letztendlich habe ich es geschafft und einen Aufruf hinbekommen.  ExpandDL ist zur Abfrage von Distribution Lists (Verteiler) gedacht, eine komplette Dokumentation der WebServices gibt es in der MSDN. Nun aber mein Code-Brocken.
ExpandDLType dl = new ExpandDLType();
EmailAddressType addr = new EmailAddressType();
addr.EmailAddress = "<email>@capevision.de";
dl.Mailbox = addr;
ExchangeServicePortTypeClient exchange = new ExchangeServicePortTypeClient();
exchange.ClientCredentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;
ExpandDLResponseType resp;
exchange.ExpandDL(null, null, "de-DE", null, dl, out resp);

Die Rückgabe der Methode enthält den Response und auch alle Nutzer der Liste. Aber am besten mal selber ausprobieren.

Mein zweiter Versuch zielte dann auf die Suche nach bestimmten Mail-Items, allerdings bin ich hier noch nicht glücklich. Ich habe 20 Zeilen Code (eine Übertreibung) und noch immer keine Ergebnisse. Am leichtesten hat sich die Entwicklung mit dem durchstöbern der Proxy-Klasse gemacht und immer wieder probieren. Fehlermeldung lesen, meist wird die Basisklasse genannt, anschließend in der Proxy-Klasse suchen und dann versuchen weiterzukommen. Meist beginnt der Prozess wieder von vorn. Nicht desto trotz hier mal der Code bisher: (bekomme keine Ergebnisse)
FindItemType item = new FindItemType();
item.Traversal = ItemQueryTraversalType.Shallow;
item.ItemShape = new ItemResponseShapeType();
item.ItemShape.BaseShape = new DefaultShapeNamesType();
item.ItemShape.BodyTypeSpecified = true;
item.ItemShape.BaseShape = DefaultShapeNamesType.Default;
GroupByType g = new GroupByType();
g.Order = SortDirectionType.Ascending;
item.Item1 = g;
PathToUnindexedFieldType u = new PathToUnindexedFieldType();
u.FieldURI = UnindexedFieldURIType.itemParentFolderId;
g.Item = u;
g.AggregateOn = new AggregateOnType();
g.AggregateOn.Aggregate = AggregateType.Minimum;
g.AggregateOn.Item = u;
item.Restriction = new RestrictionType();
ContainsExpressionType c = new ContainsExpressionType();
c.ContainmentMode = ContainmentModeType.Substring;
c.ContainmentComparison = ContainmentComparisonType.IgnoreCase;
PathToUnindexedFieldType pi = new PathToUnindexedFieldType();
pi.FieldURI = UnindexedFieldURIType.itemSubject;
c.Item = pi;
c.Constant = new ConstantValueType();
c.Constant.Value = "Test";
item.Restriction.Item = c;
IndexedPageViewType i = new IndexedPageViewType();
i.Offset = 0;
i.MaxEntriesReturned = 10;
item.Item = i;
DistinguishedFolderIdType id = new DistinguishedFolderIdType();
id.Id = DistinguishedFolderIdNameType.inbox;
item.ParentFolderIds = new BaseFolderIdType[] { id };
item.SortOrder = new FieldOrderType[1];
item.SortOrder[0] = new FieldOrderType();
item.SortOrder[0].Order = SortDirectionType.Ascending;
item.SortOrder[0].Item = pi;
ExpandDLType dl = new ExpandDLType();
EmailAddressType addr = new EmailAddressType();
addr.EmailAddress = "<email>@capevision.de";
dl.Mailbox = addr;
ExchangeServicePortTypeClient exchange = new ExchangeServicePortTypeClient();
exchange.ClientCredentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;
FindItemResponseType findResp;
exchange.FindItem(null, null, Thread.CurrentThread.CurrentUICulture.ToString(), null, item, out findResp);
Console.WriteLine(resp.ToString());

Sonntag, Januar 13, 2008

VMWare ESX 3.5 Windows AD

Diese Woche waren noch mal eher Support Themen zu bearbeiten. Allerdings war der Freitag sehr interessant, wir haben die Entscheidung für VMWare ESX als Betriebssystem für unsere neuen Server (jeder 2*Quad Core mit 14GB Ram) gemacht. Nach dem die Entscheidung gefallen war, haben wir den ersten Server mit VMWare ESX installiert (momentan nur als Trial). Die Einrichtung lief recht Problemlos, abgesehen von einem Tastatur und Bildschirmproblem. Wie bei vielen Linux Installationen, hab es Probleme auf unserer Console mit der Anzeige, so dass ein guter alter Monitor her musste. Bei der Tastatur haben wir es richtig getroffen. Wir haben an der Server Console Englisches Tastaturlayout, eigentlich ist das noch kein Problem, allerdings versucht mal eine Pipe einzugeben.

Nach der Installation wollten wir den ESX mit dem AD Verbinden, schließlich will keiner die Nutzer doppelt pflegen. Um den Rechner ins AD zu bekommen, haben wir folgende Schritte durchführen müssen:

1.       Auf dem DC: Rechneraccount in der Domaine anlegen und „Pre-Windows 2000 Computer“ setzen.

2.       Auf dem DC: KTPASS aus den Windows Support-Tools ausführen “ ktpass.exe -princ HOST/<DC>@<FQDN DOMAIN in Großschrift> -mapuser <NETBIOS DOMAIN>\<HOST>$ -crypto all -pass <PW> -ptype KRB5_NT_PRINCIPAL -out <FILE>

3.       Im ESX: Remote SSL aktivieren. (bei uns für Root) Dazu muss man die /etc/ssh/sshd_conf editieren und „PermitRootLogin = yes“ setzen

4.       Im ESX: Restart SSH Dienst „service sshd restart

5.       Im ESX: “esxcfg-auth --enablead --addomain=<DOMAIN> --addc=<FQDN DC>” noch einige Details gibt es hier.

6.       Im ESX: „Adduser<name>

7.       Eventuell noch die Firewall auf dem ESX anpassen, das kann über die Virtual Infrastructure Console geschehen.

Was uns so nicht bewusst war, wir brauchen noch einen Windows Server um den Virtual Infrastructure Server aufzusetzen und wirklich die volle Funktionalität nutzen zu können. Ich denke mal, dazu nächste Woche mehr.

Nette ausführliche Anleitung und Tipps zur AD-Integration gibt es hier. Hier der Guide von VMWare. Hier auch noch eine Liste mit weiteren wichtigen Befehlen des ESX-Servers.

Für de nächsten 50 Tage haben wir so erst mal 2 ESX Server zum testen, vermutlich werden wir die Server danach mit dem Licencekey bestücken. Dann bis ich mehr von der VMWare Front habe.

Unsere neuen Server haben nur ein einziges Problem, wir haben keine ausreichende Klimaanlage, so dass Server nicht die ganze Zeit an bleiben dürfen, aber auch dafür werden wir eine Lösung finden. Ein Freund hatte mal bei seinem Rechner einen Ventilator daneben gestellt. Hat immerhin funktioniert. Vielleicht machen wir das auch noch ;)

Samstag, Januar 05, 2008

2 Foliensätze zu SVN/TRAC

Das Neue Jahr ist da und viel habe ich in der ersten Woche nicht viel an technischen News parat, habe die Woche viel Support gemacht. Ich habe die Woche für einige Kollegen einen Crashkurs zur Nutzung von SVN/TRAC gehalten. Für den Kurs habe ich als Intro einen alten Vortrag recycled. Hier die beiden Vorträge:

·         Subversion-Tortoise-Svn-Crashkurs

·         Trac-Svn-Vss

Ansonsten kann ich nächste Woche nur den Techtalk zum Thema Ajax empfehlen. Termin und Ort findet ihr auf der Microsoft Seite.

Ich bin die Woche auch Schritt-für-Schritt mit meinen Sharepoint Authentification-/Authorization-Problem weitergekommen. Irgendwas läuft in meinem Custom-Code, der bereits durch einen Kollegen umgeschrieben wurde immer noch schief. Wahrscheinlich werde ich alles wegschmeißen, googlen und alles neu machen.

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!