Private full trust proxy

Einem Kunden von uns wollte nicht, dass ein FullTrustProxy für andere Anwendungen erreichbar ist. Deshalb wird zukünftig der Proxy wie folgt gesichert. Der Text soll in den Development Guidelines des Kunden ergänzt werden und ist deshalb in Englisch verfasst.  In your projects you don’t want your full trust proxy to be accessible for other solutions. This would be a security issue. To secure your full trust proxy so that it can only be used by your application you have to provision your proxy arguments in a separate (common) assembly and mark the argument type with the internal modifier. To use … Continue reading Private full trust proxy

SharePoint: Listen mit CutsomSchema und Lokalisierung

Wird im SharePoint eine ListInstance mit einem CustomSchema deployed, dann funktioniert darin die Lokalisierung mit MUI nicht. D.h. die Liste zieht die Texte aus den Resource-Dateien beim Anlegen und man kann die Sprache danach nicht umschalten. Das Verhalten tritt in Farm- und in Sandboxed-Solutions auf. Die Lösung ist das Listschema separat als eigenes Element zu deployen. Wenn das Listschema nicht sichtbar sein soll kann es auf “Hidden” gestellt werden. Continue reading SharePoint: Listen mit CutsomSchema und Lokalisierung

InternalsVisibleTo-Attribut

Das InternalsVisibleTo Attribut erlaubt es interne Methoden in anderen Bibliotheken zu verwenden. Besonders für das Testen ist das sehr wichtig – aber es hilft auch die größten Teile der Anwendung geschlossen zu halten und das extern sichtbare Interface so klein wie möglich zu halten. Bei signierten Projekten muss man den Publik-Key wie folgt angeben: Den PublicKey erhält man über sn.exe mit der Option -Tp: Continue reading InternalsVisibleTo-Attribut

Posten von Source-Code-Snippts in HTML (Visual Studio 2010)

Wer Codeblöcke aus Visual Studio in Blogs, Foren oder einfach nur Word verwenden will, der kann einen kleinen Trick von Visual Studio nutzen: in einer html Datei kann man aus dem Context-Menu “Paste alternate” verwenden. Dies fügt den Codeabschnitt als reines HTML ein. Das kann dann in Foren und Blogs verwendet werden. Auch in normalen Worddateien ist die Formatierung deutlich besser. Der Befehl steht nur in der Ansicht “Source” zur Verfügung – nicht im “Design”. Continue reading Posten von Source-Code-Snippts in HTML (Visual Studio 2010)

Error Handling Part 4: Fehlerbehandlung auf Anwendungsebene

Dies ist der vierte Teil der Serie zum Exception Handling: Grundlagen der Fehlerbehandlung Eigene Ausnahamen werfen Guidelines nach David Abrahams Fehlerbehandlung auf Anwendungsebene In diesem Teil der Serie wollen wir das Error Handling einer Anwendung aus architektonischer Sicht betrachten. Der wichtigste Aspekt dabei ist sicherlich das Thema Sicherheit. Sicherheit Wenn ein Fehler im Betrieb auftritt, dann ist es nötig so viele Informationen wie möglich über diesen Fehler zu haben. Dies betrifft besonders den StackTrace. Dieser sollte bei der Fehlerbehandlung ja immer erhalten bleiben. Jetzt sind der StackTrace und andere ausführliche Informationen zu Fehlern natürlich auch eine Menge Informationen, die von … Continue reading Error Handling Part 4: Fehlerbehandlung auf Anwendungsebene

Argument Validation

Es ist gute Praxis alle Argumente zu validieren, bevor sie verwendet werden. Würde in diesem Beispiel das Argument nicht geprüft, dann würde eine DivideByZeroException geworfen werden (was zugegebenermaßen in diesem Beispiel auch nicht ganz sinn frei wäre – aber ich denke der Gedanke dahinter ist klar). Besonders bei Referenztypen ist es kritisch, da diese NULL sein können. Wird die Validierung vergessen, dann wird eine NullReferenceException geworfen. Deshalb gibt es in der Codeanalyse auch die Regel CA1062: Validate arguments of public methods. Würde eine Methode so aussehen: Würde man eine NullReferenceException bekommen, wenn das Objekt NULL wäre. Außerdem muss man aufpassen, … Continue reading Argument Validation

Error Handling Part 3: Guidelines nach David Abrahams

Dies ist der dritte Teil der Serie zum Thema Exception Handling: Grundlagen der Fehlerbehandlung Eigene Ausnahamen werfen Guidelines nach David Abrahams Fehlerbehandlung auf Anwendungsebene David Abrahams hat 3 Guidelines definiert, an die sich Entwickler von Klassenbibliotheken halten sollen: Die no-throw guarantee Die basic guarantee Die strong guarantee Es geht dabei um 3 Arten von Verträgen, die man als Autor einer Klasse den Konsumenten verspricht. No-Throw Guarantee Bei der “no-throw guarantee” muss sichergestellt werden, dass keine Exception die Kasse/Funktion verlässt. Dies bedeutet natürlich, dass beim Auftreten eines Fehlers in einer untergeordneten Komponente folgendes sichergestellt werden muss: Keine Exception verlässt die Funktion: … Continue reading Error Handling Part 3: Guidelines nach David Abrahams

Keine Angst vor dem Mergen…

Immer wieder sehe ich, dass Entwickler Probleme mit dem Mergen von Code im Repository haben. Das Mergen ist aber kein mystischer Vorgang, bei dem uns der TFS unseren Code zerstört. Das Mergen ist einfach nur das Zusammenführen von Änderungen mehrerer Personen an denselben Dateien. Wenn z.B. zwei Entwickler einer Klasse je eine Funktion hinzufügen, dann meldet der TFS einen Konflikt. Die Funktionen “Keep Local Version” und “Take Server Version” dienen nur zum Zurücksetzen und spielen hier keine Rolle. Ein Klick auf “Merge Changes In Merge Tool” öffnet das Mergetool. In den oberen beiden Fenstern sieht man die Änderungen: lokal (Yours) … Continue reading Keine Angst vor dem Mergen…