softwarearbeiter.de: Die Webseite rund um die Themen Software-Engineering und Software-Entwicklungs-Prozesse, sowie Microsoft .NET 4.0, C#, SharePoint 2007, SharePoint 2010, WPF, WCF, RIA, Silverlight, VisualStudio & Co.

Überschreiben virtueller Methoden verhindern

Geschrieben am 24. Januar 2012 um 21:13 Uhr; Keine Kommentare

Was tut der Entwickler einer Komponente, der verhindern möchte, dass andere von seiner Klasse ableiten? Richtig. Er verwendet das sealed-Schlüsselwort:

public sealed class Kobold {
    [...]
}

Aber was, wenn der Entwickler das weitere Überschreiben einer virtuellen Methode in einer abgeleiteten Klasse verhindern möchte? Auch hier hilft das sealed-Schlüsselwort: Diesmal allerdings nicht auf Klassenebene, sondern bei der zu schützenden Methode.

public sealed override void SagHallo() {
    [...]
}

Das erneute Überschreiben dieser Methode in einer abgeleiteten Klasse wird jetzt zu einem Compilerfehler führen.

Tags: , , , , , , ,

Es geht weiter

Geschrieben am 19. Januar 2012 um 18:02 Uhr; Keine Kommentare

Lange war es ruhig in der SharePointZone - der letzte Artikel datiert auf den 29. Juni 2010. Nach über anderthalb Jahren habe ich mich nun entschlossen diesen Blog wiederzubeleben, allerdings mit neuem Namen und breiterem Fokus: Aus sharepointzone.de wird softwarearbeiter.de.

Der Schwerpunkt dieses Blogs liegt nach wie vor auf Microsoft-Technologien, allerdings diesmal deutlich breiter gefächert und nicht auf den Themenkomplex SharePoint beschränkt. So wird es hier eine Sammlung von Tipps und Tricks, kleinen und großen Snippets und Tutorials und Artikeln über den Microsoft Technologie-Stack und Software-Entwicklung im Allgemeinen geben.

Ich freue mich auf viele Kommentare, Anregungen und Diskussionen - Informationen über neue Artikel gibt's im RSS-Feed oder bei Twitter: @Spontifixus!

Tags:

Information Worker VM unter Windows 7

Geschrieben am 29. Juni 2010 um 17:24 Uhr; 3 Kommentare

Microsoft stellt zum Testen und Evaluieren der Information Worker Solutions netterweise eine fertig installierte und vorkonfigurierte VirtualMachine zur Verfügung. Allerdings benötigt man zur Ausführung der VMs zwingend Windows Server 2008 R2, da Microsoft die VMs ausschließlich als HyperV VMs bereitstellt. Will man diese VMs auf einem Notebook ausführen (z.B. für eine Demonstration beim Kunden) ohne gleich Windows Server 2008 R2 auf dem Notebook zu installieren, muss man die Virtual Machiness in eine geeignete Form konvertieren, die sich z.B. mit dem VMWare Player abspielen lässt. [...]

Tags: , , , , , , , , , ,

Eigenes ListTemplate definieren

Geschrieben am 12. Februar 2010 um 18:45 Uhr; 2 Kommentare

Eine häufige Aufgabe bei der Entwicklung einer SharePoint-Applikation ist die Definition eines Listen-Templates. Weil man sich da, insbesondere bei der Anpassung der Datei schema.xml, entgegen landläufiger Meinung eine Menge Arbeit sparen kann möchte ich an dieser Stelle kurz darauf eingehen.

Das folgende Beispiel basiert auf der Annahme, dass das ListTemplate "BaumListe" mit Elementen des neu definierten ContentTypes "Baum" mit den Spalten "Name" und "Kategorie" umgehen können soll. [...]

Tags: , , , ,

LookUp-Feld per Code ändern

Geschrieben am 5. Februar 2010 um 17:57 Uhr; Keine Kommentare

Möchte man einem Lookup-Feld einen bestimmten Wert zuweisen so ist es mitnichten damit getan dem Feld die ID oder gar die UniqueID des verlinkten ListenItems zu übergeben. Das liegt daran, dass SharePoint die Werte intern als Kombination aus ID des ListenItems und anzuzeigendem Wert speichert. Als Beispiel diene uns hier eine Liste mit Kategorien und eine Liste mit Bäumen, die jeweils einer Kategorie zugeordnet sind: [...]

Tags: , , ,

ListItems eines bestimmten ContentTypes auslesen

Geschrieben am 29. Januar 2010 um 18:13 Uhr; Keine Kommentare

Aus einer Liste die Items eines bestimmten ContenTypes auszulesen klingt zunächst nach einer trivialen Aufgabe.  Sucht man lediglich anhand des Namens eines ContentTypes ist es das auch. In diesem Fall reichen für eine entspreches CAML-Abfrage ein paar wenige Zeilen Code:

<where>
    <eq>
        <fieldref Name="ContentType" />
        <value Type="Text">Contact</value>
    </eq>
</where>

Will man jedoch nicht nur nach allen ContentTypes eines bestimmten Typs, sondern auch nach den davon abgeleiteten ContentTypes suchen, stößt diese Methode schnell an ihre Grenzen. [...]

Tags: , , , , ,

ASCX: Designer funktioniert nicht

Geschrieben am 20. Januar 2010 um 18:31 Uhr; Keine Kommentare

VisualStudio ist ein tolles Tool wenn man ASP.NET UserControls erstellt. Leider hat der zugehörige Designer einen Fehler, der einem das Leben dabei manchmal unnötig schwer macht. Dieser Fehler kommt immer dann zum Tragen, wenn das Markup des UserControls mit einem <style>- einem <link>- oder einem <meta>-Element beginnt und darauf ein Web-Steuerelement mit dem Inhalt des UserControls folgt. Bei einem Versuch dieses Steuerelement im Designer zu bearbeiten ist alles was man sieht eine leere Seite. [...]

Tags: , , ,

Verwendung des DateTime-Picker-Steuerelements

Geschrieben am 15. Januar 2010 um 18:30 Uhr; 2 Kommentare

SharePoint stellt zum Bearbeiten von Datums- und Zeitwerten ein schönes Steuerelement zur Verfügung, das DateTimeControl. Dieses Steuerelement kann man auch in eigenen UserControls oder Webparts verwenden. Das Steuer-element befindet sich im Namespace Microsoft.SharePoint.WebControls in der Assembly Microsoft.SharePoint.dll. Dieser Eintrag erläutert welche Schritte beim Einsatz dieses Steuerelements nötig sind, und was man als Entwickler dabei beachten muss.

Grundsätzlich gibt es zwei Möglichkeiten Steuerelemente in WebParts oder UserControls einzubinden. Zum einen kann man das gewünschte Steuerelement im Quellcode eines WepParts oder UserControls instantiieren, zum anderen kann man es direkt im Markup eines UserControls oder einer ASPX-Seite verwenden. In diesem Artikel werde ich beide Varianten kurz vorstellen und zusätzlich auf eventuelle Hürden und Fallstricke beim Einsatz des Steuerelements hinweisen. [...]

Tags: , , , , , , ,

Default-Werte von Spalten in ListTemplates

Geschrieben am 7. Januar 2010 um 21:02 Uhr; Ein Kommentar

Willkommen in meinem Blog rund um das Thema "SharePoint, das Universum und der ganze Rest". In diesem Blog werde ich regelmäßig Tipps und Tricks sowie das eine oder andere Tutorial rund um das Thema SharePoint veröffentlichen.

Und ich will auch gar nicht lange um den heißen Brei herumreden, sondern gleich mit einem kleinen Tipp einsteigen. Definiert man in einer Feature-Definition eine eigene Liste und möchte einer dazugehörigen Spalte einen Standard-Wert verpassen hat man auf den ersten Blick eine Menge Möglichkeiten. Aber nur weil einige der XML-Tags Attribute wie DefaultValue zulassen heißt das noch nicht, dass der dann auch später von SharePoint so verstanden wird.

Die Lösung einer Spalte einen Standardwert zuzuweisen liegt in der Datei schema.xml eines Listen-Templates. um hier einer Spalte einen Default-Wert zuzuweisen reicht es innerhalb des <Field>-Tags den <Default>-Tag zu verwenden. Beispiel:

<Field ID="..." Name="..." ...>
    <Default>Mein Standardwert</Default>
</Field>

Tags: , , , , ,