SharePoint Menu Styles: Reihenfolge im CSS File

17. January 2008 20:53 by marco in .NET, ASP.NET, Microsoft, SharePoint  //  Tags:   //   Comments (0)

Heute mussten wir eine sehr fragwürdige Entdeckung machen:
Bei SharePoint/MOSS ist die Reihenfolge der styles im .css file wichtig! Ok genauer gesagt liegt es wahrscheinlich am ASP.NET Menu Control.

Wie kommt man nun zu so einer Erkenntnis?

Dazu fügt man ein neues SharePoint Menu Control zu einer MasterPage hinzu, alternativ auch das Standard ASP.NET Menu Control.
Nun die CSS Klassen für die verschiedenen Level festlegen, und auch die Selected Eigenschaft.

Die Styles liegen dabei in einem extra .css file, was etwa so aussieht:

.NavBarSelected { (...) }

.NavBarLevel1, .NavBarLevel2 { (...) }

Nun werden die MenuItems zwar korrekt dargestellt, aber nur bis man eines selektiert. Das Problem ist hier, dass SharePoint, oder eben das ASP.NET Menu, den HTML code folgendermaßen rendert:

...menuitem class=“NavBarSelected, NavBarLevel1, NavBarLevel2“

Es werden einfach alle styles in die class Eigenschaft gerendert, nur leider in der Reihenfolge in der sie auch im .css file aufgeführt sind.

Vertauscht man im .css file nun einfach die Reihenfolge der class angaben so

.NavBarLevel1, .NavBarLevel2 {} 

.NavBarSelected {} 

dann wird das Menu richtig gerendert und das Ergebnis sieht so aus:

...menuitem class=“NavBarLevel1, NavBarLevel2, NavBarSelected“

Dabei sollte man im Normalfall davon ausgehen können, dass wenn man schon das "selected" class property setzt, die style angabe automatisch ans Ende gesetzt wird und man nicht in einem mehrere 1000 Zeilen großen .css file auf die Reihenfolge achten muss...

How to recognise a good programmer

14. January 2008 19:14 by marco in Software  //  Tags:   //   Comments (0)

Heute wurde ich auf einen sehr guten und interessanten Artikel aufmerksam gemacht.

Daniel beschreibt, wie man einen guten Programmierer "erkennt". Dem kann ich in fast allen Punkten nur zustimmen, und es lohnt sich den Artikel mal zu lesen.

Artikel: How to recognise a good programmer

Statistik Update

13. January 2008 13:11 by marco in Avanade  //  Tags:   //   Comments (1)

Ich hatte im August 2006 ja schon mal eine kleine Reisestatistik geschrieben, die nach nun einem Jahr bei Avanade ein wenig aktualisiert werden muss. Damals war der Zeitraum noch 4 Jahre, nun also die Zahlen für fast genau ein Jahr.

  • Reisen: ca. 40.000 bis 50.000 km! (Bahn, Auto, Flugzeug)
  • Dabei waren in der Reihenfolge der Häufigkeiten: Aschaffenburg, München, Zürich/Winterthur, Kronberg, Frankfurt, Herzogenaurach, Duisburg, und noch ein paar mehr
  • Anzahl Übernachtungen: Im prinzip in jeder Woche des vergangenen Jahres 4 Übernachtungen in ca. 25 verschiedenen Hotels.
  • Bonusmeilen bei Bahn.bonus, Bahn.comfort, AirBerlin und Miles & More: Unmengen
  • Kaputte Koffer: 1

Auf ins nächste Jahr. Diesmal sind die Reisen dann auch besser dokumentiert, auf WoIst.mwiedemeyer.de. Wer noch kein Kennwort hat, einfach melden. ;-)

Zune ist da!

22. December 2007 17:19 by marco in Fun, Microsoft  //  Tags:   //   Comments (0)

Lang hat es gedauert, aber jetzt hab ich ihn! Mein Weihnachtsgeschenk an mich selbst. Einen hübschen neuen MP3 Player... den Zune!
Zwar nur die 4 GB Version aber das sollte erstmal reichen. Sieht jedenfalls schon mal schick aus, und die WLAN synchronisation ist eine super Erfindung.

Zusammen mit meinen schon seit einiger Zeit vorhandenen Bose TriPort In-Ear Kopfhörern einfach der Knaller.

MOSS 2007 SP1

11. December 2007 19:19 by marco in .NET, Microsoft, SharePoint, Office 2007, Software  //  Tags:   //   Comments (0)

Jetzt gibt es also auch das Service Pack 1 für Microsoft Office SharePoint Server 2007.

Vorher muss das SP1 für WSS 3 installiert werden. Downloads hier:

WSSv3 SP1: http://www.microsoft.com/downloads/details.aspx?FamilyId=4191A531-A2E9-45E4-B71E-5B0B17108BD2&displaylang=en

MOSS 2007 SP1: http://www.microsoft.com/downloads/details.aspx?FamilyID=ad59175c-ad6a-4027-8c2f-db25322f791b&DisplayLang=en

Office 2007 SP1

11. December 2007 16:06 by marco in Microsoft, Office 2007, Software  //  Tags:   //   Comments (0)

Ab sofort steht das Service Pack 1 für Office 2007 zum Download zur Verfügung.

Download hier: http://www.microsoft.com/downloads/details.aspx?FamilyId=9EC51594-992C-4165-A997-25DA01F388F5&displaylang=en

Wo ist Marco? Im Flugzeug!

7. December 2007 20:46 by marco in Avanade, Blog, Fun, Hardware  //  Tags:   //   Comments (0)

Wer aktuell anschaut, wo ich mich so aufhalte, kann mich fliegen sehen.

Mein GPS Logger hatte heute nämlich auch im Flugzeug empfang... sehr interessant, hier ein kleiner Auschnnitt bei 8000m Höhe und einer Geschwindigkeit von 800 km/h:

image

Außerdem ist "Bird's eye" über dem Flughafen Hannover verfügbar, sehr cool.

Gelistet auf dotnetgerman

29. November 2007 19:32 by marco in .NET, Blog  //  Tags:   //   Comments (0)

Wie ich soeben meinen Logfiles entnehmen konnte, bin ich ab sofort auch auf blogs.dotnetgerman.com gelistet. Vielen Dank an der Stelle für das plötzlich erhöhte Besucher aufkommen.

Visual Studio 2008

25. November 2007 13:00 by marco in .NET, Microsoft, Software, Visual Studio 2008  //  Tags:   //   Comments (1)

Wie ja bereits seit Tagen an diversen Stellen zu lesen ist, steht das Visual Studio 2008 für alle MSDN Subscription Kunden zum Download zur Verfügung!

Dies ist die erste VS Version, mit der man für alle .NET Framework Versionen entwickeln kann, weshalb ich direkt mal VS 2005 deinstalliert und 2008 installiert habe. Bisher bin ich ganz zufrieden. Der Team Explorer 2008 läuft sogar mit TFS 2005. Wer den Team Explorer 2008 übrigens sucht, hier ist der Download.

Jetzt warte ich nur noch auf Windows Server 2008... wohl leider bis Februar.

Proxy Switcher v1.0.3

18. November 2007 10:31 by marco in .NET, ProxySwitcher, Software  //  Tags:   //   Comments (2)

Nachdem der Proxy Switcher nun auch im Heise Software Archiv gelistet ist, gab es doch einige Anfragen vor allem bezüglich der Proxy Ausnahmen.

Dieses Feature ist ab sofort enthalten. Weitere Anregungen und Wünsche aber weiterhin gern an mich oder in die Kommentare.

Autostart mit Windows muss noch per Hand eingerichtet werden, einfach eine Verknüpfung in dem Autostart Ordner erstellen. In der nächsten Version dann vielleicht enthalten.

DOWNLOAD v1.0.3 (englisch)

-----------ENGLISH-----------

Now v1.0.3 is available for download. Changes to 1.0.2:

- Proxy exceptions can be configured

DOWNLOAD v1.0.3 (english)

Customize Action Menu in MOSS 2007

8. November 2007 07:17 by marco in .NET, ASP.NET, SharePoint  //  Tags:   //   Comments (0)

In einer Document Library gibt es ja ein paar Menüs. Nun möchte man jedoch einige Funktionalitäten nicht jedem User zur Verfügung stellen. In diesem Beispiel möchte ich "Open in Explorer" nicht mehr im Action Menü haben.

Dafür gibt es zwei Vorgehensweisen:

  1. Den Usern das UseRemoteAPIs Recht entziehen wenn möglich
  2. Eine Anpassung des Action Menüs (nicht offiziell supported!) in dem man folgendes macht:

Die Datei "DefaultTemplates.ascx" im Ordner "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES" öffnen, nach der Zeichenfolge ID="ToolbarActionsMenu" suchen. Dort finden sich die entsprechenden Einträge als SharePoint:MenuItemTemplate. Nun kann man z.B. das gesamte Item entfernen, aber auch neue hinzufügen.

Free/Busy Information with Outlook 2007

6. November 2007 16:04 by marco in Avanade, Microsoft, Office 2007  //  Tags:   //   Comments (1)

I found a really nice feature of Outlook 2007: Publish my free/busy information.

An example:
You are an employee of a company and use Outlook and its calendar. If you are using Exchange already you know this "meeting request" feature. Make a new appointment and see if your colleagues have time for you:

image

But what about other people from other companies? Yes you're right: They cannot see if you are busy, because they don't use the same Exchange environment.

And here is the solution:

First of all you need some webspace where you can use WebDAV to upload files. If you have trouble with WebDAV, basic authentication and Vista see this post.
Then go to Tools->Options->Calendar Options->Free/Busy Options->Other Free/Busy... and enter the server to upload your free/busy information (leave the "Search location" empty):

 image

So for now your free/busy information is uploaded to your server, without any appointment details.
Now you can send a link to your .vfb file to everyone who uses Outlook or any other compatible application. The other user have to enter this URL in the Details Tab in their contact card from you:

image

(I have a redirection from this URL to the .vfb file, so here is no file extension)

After your new friend have done this, he can now use the meeting request feature and see your free/busy times!

Really nice if you work with clients and have many meetings and little time ;-)

However if you like to know whether I'm busy, check my free/busy information (see the "Free/Busy" link in the right pane).

Wo ist Marco?

22. October 2007 17:46 by marco in ASP.NET, Blog, Fun, Hardware, Microsoft  //  Tags:   //   Comments (1)

Ich hatte ja bereits seit einiger Zeit eine Karte hier, wo ich eingetragen habe, wo ich mich so rumtreibe.

Jetzt hat das ganze eine neue Dimension. Ich habe nämlich ein neues Spielzeug, einen GPS Logger. Dies ist ein kleiner Kasten den ich jetzt mit mir rum trage und der in gewissen Zeitintervallen die aktuelle Position speichert. Das ganze wird in einer Microsoft Virtual Earth Karte dargestellt (funktioniert aber leider nicht mit Opera, hoffe Microsoft bessert da demnächst mal nach... mit v6 wird jetzt immerhin Safari unterstützt).

Damit es aber die Stasi 2.0 nicht so leicht hat, ist die Karte nicht öffentlich. Wer dabei sein will, schreibt mir einfach eine Mail oder hinterlässt einen Kommentar, dann lass ich euch gerne das Kennwort zukommen (oder ihr habt es bereits in eurem Postfach).

Abgeguckt hab ich mir die Kartenintegration bei Daniel, es dann aber noch um ein paar neue Features erweitert. Zum Beispiel kann man Kommentieren und auch seinen eigenen Standort hinterlassen. Daniel bietet seine Karte auch öffentlich an, dort kann man sehen wie es aussieht.

Wo ist Marco? 

Der Link findet sich ab jetzt auch rechts in der Leiste oder direkt: http://woist.mwiedemeyer.de

Wer noch mehr ideen hat, meldet sich per Kommentar.

SQL Management Studio cannot connect to Reporting Services

28. September 2007 08:00 by marco in .NET, Microsoft, Software, SQL Server 2005  //  Tags:   //   Comments (1)

Nachdem ich SSL für die Reporting Services auf einem anderen Port als dem Standard aktiviert habe (Port 444), konnte ich keine Verbindung mit dem SQL Management Studio mehr herstellen.

Es kam folgende Fehlermeldung: "The file you are attempting to save or retrieve has been blocked from this Web site by the server administrators." Wobei im Event Log etwas genauer steht, dass er versucht auf https://domain/ReportServer... zuzugreifen.

Die Portangabe muss manuell in der Datei

"C:\Program Files\Microsoft SQL Server\MSSQL.2\Reporting Services\ReportServer\rsreportserver.config"

hinzugefügt werden. In dem o.g. Microsoft Dokument steht, dass man dies nur manuell ändern muss, wenn man die E-Mail delivery extensions verwendet.

If you are using the report server e-mail delivery extension, you can create subscriptions that included a report URL in the e-mail message. To construct the report URL, the report server uses the UrlRoot configuration setting in the RSReportServer.config file.

SPGridView Sorting Arrow

27. September 2007 12:25 by marco in .NET, ASP.NET, C# Code, Microsoft, SharePoint  //  Tags:   //   Comments (1)

Setzt man das SharePoint GridView (Microsoft.SharePoint.WebControls.SPGridView) in eigenen Seiten ein, und benutzt man für die Datenquelle die DataSource Eigenschaft

spGridView.DataSource = dataView;

dann zeigt das GridView beim sortieren keine Pfeile neben der sortierten Spalte an.

Dank Reflector stellt man fest, dass das SPGridView leider die Spalten Sortierung nur anzeigt wenn man als Datenquelle "DataSourceID" verwendet... Warum? Ich sehe da keinen Grund. Deshalb hier in etwa die Implementierung wie es das SPGridView auch intern macht:

      public static void SetGridViewSortArrow(SPGridView spGridView, string sortExpression, SortDirection sortDirection)
      {
         // Show arrow on sorted column
         for (int colIndex = 0; colIndex < spGridView.Columns.Count; colIndex++)
         {
            DataControlField field = spGridView.Columns[colIndex];
            if (((field == null) || string.IsNullOrEmpty(field.SortExpression)) 
|| (field.SortExpression.ToLower(CultureInfo.CurrentCulture) != sortExpression.ToLower(CultureInfo.CurrentCulture))) continue; DataControlFieldHeaderCell cell2 = (DataControlFieldHeaderCell)spGridView.HeaderRow.Cells[colIndex]; Image image = new Image(); if (sortDirection == SortDirection.Ascending) image.ImageUrl = "/_layouts/images/sortup.gif"; else image.ImageUrl = "/_layouts/images/sortdown.gif"; image.Style[System.Web.UI.HtmlTextWriterStyle.MarginLeft] = "2px"; cell2.Controls.Add(image); break; } }

Aufgerufen wird das ganze dann im gridView_Sorting Event nach dem sortieren und vor allem nach dem

spGridView.DataBind();