03 August 2010

Customize rich text editor in SharePoint 2010

If you want to customize the OOTB Rich Text Editor in SharePoint 2010, without changing the core4.css, and without the SharePoint default Styles, you can do it as following.

This is an example to customize the following Dropdowns:

  • Styles
  • Markup Styles
  • Font Size
  • Font Face
  • Highlight Color
  • Font Color

1
Set the PrefixStyleSheet-Property of the RichHtmlField. The classname has to be lowercase!

<PublishingWebControls:RichHtmlField id="Content" FieldName="PublishingPageContent" runat="server" PrefixStyleSheet="my-style-must-be-lowercase"/>

2
Create a new Stylesheet, for example with the name “MyRichHtmlStyles.css” and define all the Styles you need for the Dropdowns. For example like the following pattern. The -ms-name Propertie define the visible name in the Dropdown.

For the Markup-Dropdown

H1.my-style-must-be-lowercaseElement-H1
{
-ms-name:"My Heading";
font-size:4em;
font-weight:normal;
font-family: Impact;
}

For the Style-Dropdown

.my-style-must-be-lowercaseStyle-Normal-1
{
-ms-name:"My Normal";
font-family: Impact, Arial, sans-serif;
font-size: 8pt;
color: #676767;
background-color: #fff;
}

For the Font-Size-Dropdown

.my-style-must-be-lowercaseFontSize-1
{
font-size: 36pt;
}

For the Font-Face-Dropdown

.my-style-must-be-lowercaseFontFace-1
{
-ms-name:"My Impact";
font-family: Impact;
}

For the Font-Color-Dropdown

.my-style-must-be-lowercaseForeColor-1
{
-ms-name: "";
-ms-color:"Dark Red";
color: darkred;
}

.my-style-must-be-lowercaseThemeForeColor-1-0
{
/* [ReplaceColor(themeColor: "Light1-Lightest")] */ color: #F2F2F2;
-ms-name:"Light 1 Lightest";
/* [ColorName] */ -ms-color:"White";
}

For the Highlight-Color-Dropdown

.my-style-must-be-lowercaseBackColor-1
{
background-color: darkred;
-ms-name: "";
-ms-color:"Dark Red";
}

.my-style-must-be-lowercaseThemeBackColor-1-0
{
/* [ReplaceColor(themeColor: "Light1")] */ background-color: #FFFFFF;
-ms-name:"Light 1";
/* [ColorName] */ -ms-color:"White";
}

3
Include your new Stylesheet in the Masterpage or in the Pagelayout, for example as follow.

<SharePointWebControls:CssRegistration ID="CssRegistration3" name="<% $SPUrl:~sitecollection/Style Library/~language/MyRichHtmlStyles.css %>" runat="server"/>

After you delete the browser cache, you should see the new entries in the Dropdowns.

With this solution you can add each rich text editor his own styles – if necessary.

10 Juni 2010

E-Collaboration

Dass Teams im Vergleich mit Einzelpersonen effizienter, effektiver, innovativer und motivierter sind, ist bekannt. Leider verursacht verstärkte Zusammenarbeit, besonders wo sogar geografisch getrennt gearbeitet wird, auch immer Reibungsverluste. Verschiedene Hersteller versprechen mit IT-Lösungen zu helfen. Einer Studie vom Gartner zufolge sind die drei führenden Hersteller von «Team Collaboration & Social Software» Jive, IBM und Microsoft. Von Microsoft programmiert sind die Produkte SharePoint Server 2010 und Office 2010, mit denen die Zusammenarbeit von Teams optimiert werden soll. Diese Produkte sind seit etwa einem Monat frisch erhältlich. Aus diesem Grund soll hier die Frage untersucht werden, ob und wie mit Office 2010 und SharePoint 2010 auch wirklich die Zusammenarbeit optimiert werden kann. Die kurze Antwort: sie kann optimiert werden, die Unternehmenskultur muss aber auch stimmen.

Den Ganzen Artikel hier herunterladen

TechTalk “SharePoint 2010 Upgrade”

Gestern haben Rolf und ich bei Microsoft Schweiz in Wallisellen einen TechTalk zum Thema “Upgrade auf SharePoint 2010“ gehalten. Die Slides dazu möchte ich euch nicht vorenthalten.

  • Part 1 Learn
    • Neue Features
    • Upgrade Szenarien (In-Place und DB Attach)
    • Downtime Mitigation
    • Infrastruktur
  • Part 2 Prepare
    • Analyse der bestehenden Farm
    • Vorbereitungen
    • Customizations migrieren
  • Part 3 Test, Implement & Validate
    • Test
    • Operation
    • Vorgehen für In-Place Upgrade
    • Migration SSP und MySite
  • Part 4 Weitere Themen
    • Upgrade von Beta 2 oder Release Candidate
    • Upgrade von Workflows
    • Upgrade einer Web Content Management Lösung
    • Upgrade des Business Data Catalogs
    • Application Lifecycle Management mit SharePoint 2010

03 Juni 2010

Blogposts zu SharePoint 2010

Nachfolgend ein paar Interessante Blogposts zu SharePoint 2010, welche wohl nicht nur für meine tägliche Arbeit eine hohe Relevanz haben.

PS: Lust auf SharePoint 2010 aber immer noch mit MOSS 2007 beschäftigt. Am 9. Juni halten wir in Wallisellen einen TechTalk zum Thema SharePoint 2010 Upgrade.

17 Mai 2010

Office Client Roundtable Präsentationen

In den letzten beiden Monaten durfte ich im Rahmen des Office 2010 Launch Programm im Namen von Microsoft drei Roundtables halten. Die Präsentationen hierzu kann man hier herunterladen.

Office Client Roundtable 1

  • Neuerungen im Office 2010
  • Deployment
  • Office Web Apps
  • Excel & PowerPoint

Office Client Roundtable 2

  • Backstage
  • Migrationsstrategien
  • PowerPivot

Office Client Roundtable 3

  • Group Policy Einstellungen
  • Access
  • Visio
  • Outlook
  • Schulungsmaterialien

07 Mai 2010

Top 10 Features in SharePoint 2010 für Entwickler

Rolf und ich haben gestern am eBusiness Kongress in Zürich während 90 Minuten über die Top 10 Features in SharePoint 2010 gesprochen. Obwohl die Zuhörerzahl etwas dürftig ausfiel, hat uns die Vorbereitung und die Durchführung des Speechs viel Spass bereitet.

Zu folgenden Features haben wir jeweils eine kleine Einführung plus eine Demo gezeigt:

  • #1 Development Environment
  • #2 LINQ to SharePoint
  • #3 Sandboxed Solutions
  • #4 Business Connectivity Services (BCS)
  • #5 REST
  • #6 Client Object Model
  • #7 Post Synchronous Events
  • #8 SharePoint Designer Workflows
  • #9 Feature Upgrade
  • #10 PowerShell

Die Slides zum Vortrag haben wir hier (bzw. brandneu auch auf docs.com unter http://docs.com/E4C) abgelegt.

23 April 2010

Neues Page Layout mit SharePoint 2010

Bereits seit SharePoint 2007 kann für strukturierten Content, welcher auf öffentlich zugänglichen Internet Sites angezeigt werden soll, eine Vorlage erstellt werden. Das Konstrukt nennt sich Page Layout und definiert das Mapping zwischen SharePoint Columns sowie der Anzeige- bzw. Edit-Ansicht. Der Vorteil daran ist, dass die strukturierten Daten dabei nicht in einem grossen Rich Text Block abgelegt sondern in einzelne Columns in SharePoint Listen geschrieben werden. Damit können z.B. Produkte, Personen, Projekte, Publikationen oder News abgebildet werden.

Heute möchte ich euch zeigen, wie mit Visual Studio 2010 ein Page Layout für SharePoint 2010 erstellt werden kann. Beide Produkte setze ich in der RTM Version ein.

Ich starte mit einem “Empty SharePoint Project”.

image

Page Layouts können wahlweise als Sandboxed Solution oder Farm Solution deployt werden.

image

Als erstes fügen wir ein SPI für die Columns hinzu. Da uns Visual Studio 2010 kein Template zur Verfügung stellt, wählen wir “Empty Element”.

image

In die Datei Elements.xml fügen wir nun unsere SharePoint Spalte (Column oder Field) ein. Wichtig ist, dass sowohl ID also auch Name eindeutig sind. Für die ID kann der GUID Generator verwendet werden. Er ist zwar in den Standardeinstellungen nicht mehr über das Visual Studio Menu erreichbar, ist aber unter C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\guidgen.exe zu finden.

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Field ID="{7F9CF172-B2FA-42C0-81D4-EA3CD2C6CF94}"
Name="WCMLocation"
DisplayName="Location"
Type="Text" />
</Elements>

Nun erstellen wir einen Content Type, in welchen wir unsere beiden Columns aufnehmen werden.

image

Wir vererben dabei von “Article Page”.

image

In der Datei Elements.xml müssen wir für jedes Spalte einen FieldRef Eintrag machen. Zwingend sind die Attribute ID und Name.


<FieldRefs>
<FieldRef ID="{7F9CF172-B2FA-42C0-81D4-EA3CD2C6CF94}" Name="WCMLocation" />
<FieldRef ID="{D720A9AC-D633-4FAB-BC03-309458A2D6C3}" Name="WCMNoEmployee"/>
</FieldRefs>

Nun können wir die Solution deployen (Ctrl+F5, Debug ist nicht notwendig) und erstellen so Site Columns und Content Type.


Über den Server Explorer können wir die SharePoint Site registrieren und die Content Types anzeigen.


image

In der Visual Studio Gallery gibt es eine Erweiterung (Imtech Create Page Layout Content Type Extension, thanks to Mastykarz Waldek), welche uns beim Erstellen des Page Layouts hilft. Nach der Installation haben wir im Server Explorer auf den Content Types ein Contentmenu Eintrag “Create Page Layout”. Um später die Master Page Gallery im Server Explorer durchsuchen zu können, benötigen wir noch die Imtech Master Pages and Page Layouts Extension.

image

Dies generiert uns ein “nacktes” Page Layout mit allen Feldern des Page Layouts. So finden wir unsere zwei Felder wieder.

image

Um das Page Layout abzuspeichern, müssen wir ein weiteres SPI erstellen. Diesmal vom Typ “Module”. Damit lassen sich beliebige Dateien in unterschiedliche Libraries wie Master Page Gallery, Web Part Gallery oder Style Library deployen.
image
Wir speichern das Page Layout im Ordner des Modules und nehmen es in das Visual Studio Projekt auf. (Um es anzuzeigen, im Solution Explorer auf “Show all Files” klicken.)
image
Nun gilt es den Inhalt des Modules anzupassen. Hierzu öffnen wir das Elements.xml im SPI WCMPageLayout. Folgende Anpassungen sind notwendig.
  • Das Url Attribut von Module muss auf “_catalogs/masterpage” zeigen.
  • Das Url Attribut von File muss direkt auf die Datei zeigen.
  • In einem neuen Property Element geben wir den Content Type des Files an. Wir sagen da, dass es sich bei dieser Datei um ein “Page Layout” handelt.
  • In einem weiteren Property Element definieren wir das Preview Image (mehr dazu weiter unten, dieses Property kann auch wegelassen werden).
  • In einem weiteren Property Element sagen wir, zu welchem Content Type dieses Page Layout gehört. Den Content Type geben wir mit folgender Syntax an:
    ”;#[Name des Content Types];#[Content Type ID];#”

<Module Name="PageLayouts" Url="_catalogs/masterpage">
<File Path="WCMPageLayout\IsolutionsWCMWcmbranchoffice.aspx" Url="IsolutionsWCMWcmbranchoffice.aspx" Type="GhostableInLibrary" >
<Property Name="Title" Value="Branch Office" />
<Property Name="ContentType" Value="$Resources:cmscore,contenttype_pagelayout_name;" />
<Property Name="PublishingPreviewImage" Value="~SiteCollection/_catalogs/masterpage/Preview Images/PreviewBranchOffice.png, ~SiteCollection/_catalogs/masterpage/Preview Images/PreviewBranchOffice.png" />
<Property Name="PublishingAssociatedContentType" Value=";#ISolutions.WCM - WCMBranchOffice;#0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D00257e2b4db7dd4475939d98af964111c3;#"/>
<Property Name="MasterPageDescription" Value="Page Layout for Branch Offices" />
</File>
</Module>

Das Preview Image können wir auch gleich in dieses Module aufnehmen.


<Module Name="PreviewImages" Url="_catalogs/masterpage" Path="" RootWebOnly="TRUE">
<File Path="WCMPageLayout\PreviewBranchOffice.png" Url="Preview Images/PreviewBranchOffice.png" Type="GhostableInLibrary" />
</Module>


Um das Page Layout einzusetzen, müssen wir einer Page Library unseren Content Type zuweisen.
image
Bearbeiten wir eine Page können wir nun über den Ribbon Button “Page Layout” ganz einfach das Page Layout anpassen.
image
Unser Page Layout sieht natürlich noch ziemlich öde aus. Wir können aber bereits unsere Daten strukturiert erfassen.
image
Jetzt kann der Graphiker an die Arbeit und das Page Layout gemäss den Vorstellungen des Kunden gestalten.
Wenn gewünscht können die verfügbaren Page Layouts auch in den Site Settings unter “Look and Feel” \ “Page Layout und Site Template Settings” angepasst werden.
Sind alle notwendigen Page Layouts erstellt, kann eine Site entsprechend den Vorgaben konfiguriert werden (d.h. Content Types auf Pages Libs, Page Layouts einschränken, Approval Workflow konfigurieren) und als Site Template abgespeichert werden. Dieses Template (neu als WSP, kann auch in Visual Studio bearbeitet werden) kann dann in der Folge für das Erstellen der neuen Sites verwendet werden.
Fazit: Den Vorteil von Page Layouts hatten wir bereits mit SharePoint 2007. Auch das Deployment als WSP war unter SharePoint 2007 via WSP möglich. Mit dem 2010er Wave haben wir aber bei der Paketierung und beim Deployment einen grossen Schritt in die richtige Richtung gemacht. Bleibt zu hoffen, dass uns in Zukunft ein paar Visual Studio Extensions das Leben noch weiter erleichtern. Ein dem CKS: Development Tools Edition haben sich die Entwickler solcher Erweiterungen jedenfalls bereits gefunden.

19 April 2010

Office 2010 RTM Release

Der RTM (Release-to-Manufactering) Release von Office 2010 ist intern bei Microsoft fertiggestellt – Hurra! Stolze Software Assurance Käufer haben Zugriff auf die RTM-Pakete ab dem 27. April. "Normale" Volume Licenising Kunden können Office 2010 ab dem 1. Mai kaufen.

Die RTM-Pakete werden u.a. in English, Französisch und Deutsch verfügbar sein. Italiensische und anderssprachige Pakete werden nachgeliefert.

Weitere Informationen gibt's hier: http://blogs.msdn.com/sharepoint/archive/2010/04/16/sharepoint-2010-reaches-rtm.aspx

07 April 2010

TechNet “Office 2010 Client / Server Scenarios”

Rolf und ich haben heute bei Microsoft Schweiz in Wallisellen einen TechNet Event zum Thema Office 2010 Client / Server Scenarios durchgeführt. Nachfolgend findet Ihr die Slides zu unserem Speech:

  • Part 1: Einführung in den Business Productivity Infrastructure Stack, Social Networking mit Office 2010  und User Adoption / Culture Shift
  • Part 2: Power Collaboration: Multi User Authoring, Office Mobile Apps, Office Web Apps und Enterprise Content Management mit SharePoint / Office 2010
  • Part 3: Access Services, Visio Services, Excel Services, PowerPivot und Search
  • Part 4: Integration einer LOB Anwendung mit den Business Connectivity Services, Outlook 2010, InfoPath Form Designer und SharePoint Designer sowie Workflows und Word Automation Services.

Uns beiden hat das Vorbereitung und Durchführen des TechNet Events grossen Spass bereitet. Ich denke, wir werden in den nächsten Tagen hier noch das eine oder andere tolle Office 2010 Feature zeigen.