Archive

Archive for the ‘.NET’ Category

Unknown Error (0x80005000) after DirectoryEntry.RefreshCache()

May 23, 2008 2 comments

In one of my Projects i had a Problem to update a DirectoryEntry object.  In this case it was a User in Active Directory. I spent some hours to search for a cause of this error and for the solution and had no idea.

The cause for thsi problem was the CN attribute of the user. It contains “/” in it. The CN looks like “Name Surname / Department”. After replaced “/” by “-” everything works fine.

The Stacktrace for this error looks like:

at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.RefreshCache(String[] propertyNames)

Andrej

Categories: .NET, Active Directory

TechEd 2007: Develop a Community Solution with Visual Studio Tools for Office 3.0, Office Open XML File Formats and Windows SharePoint Services v3.0

November 8, 2007 Leave a comment

Offizielle Beschreibung

In this demo-only session we will build a restaurant community solution based on Windows SharePoint Services v3.0 and Office 2007 clients with Visual Studio 2008 in just 70 mins from scratch. You will learn how you can combine several 2007 Microsoft Office system technologies effectively for building professional solutions. Learn, how technologies such as SharePoint site templates and custom ASP.NET pages help you customizing the look and feel of your portal. See, how you can access information stored in custom XML data islands of Office Open XML packages placed in SharePoint document libraries by using the SharePoint object model and the System.IO.Packaging API. Finally you will learn, how you can build an Office-client that integrates with your portal through built-in and custom-developed SharePoint web services by leveraging the newest technologies introduced with Visual Studio 2008 Tools for Office. To get most out of this session you should be equipped with good .NET and basic ASP.NET, SharePoint and VSTO development know-how.

Vortragender: Mario Szpusta

Allgemein

In der Demo wird ein Word Formular verwendet um Informationen eines Restaurants aufzunehmen. Das word Formular wird in einer Doclib abgelegt. Für Word 2007 wird eine TaskPane mit WPF Controls erstellt welche das Durchsuchen der Doclib nach Restaurant ermöglicht. Benutzer ist in der Lage eine Einladungskarte für seine Freunde zu erstellen, in dem er das gewünschte Restaurant aus der Liste auswählt. Daten des Restaurants werden in das Doc übernommen.

Find xml in word document

· Get the root document

· Get relationships

· Go through the relationships, check the namespace of the related item

· Spfile.openbinarystream muss in memorystream umgewandelt werden, da word openxml einen stream braucht, indem es sich frei bewegen kann.

· Um das richtige package zu bekommen gibt es die hilfsklasse „PackUriHelper“

Custom Webservice

· Gründe für custom Webservice

o Es gibt kein Webservice von wss welches als Ergebnis das ges. Dokument zurückliefert

o Nicht alle wss Webservices sind interoperabel.

· Das Webservice analysiert die wss listen und erlaubt die suche über die Restaurants. Wird in einer Taskpane in word verwendet um eine Einladung zu erstellen.

· Bei der Methode Parameter [WebMethod (EnableSession=true)] – erlaubt weiter auth. Mechanismen und nicht nur Windows

· Das asmx des Webservices muss in das …12/isapi/ Verzeichnis kopiert werden (_vti_bin) Directory
in der _vti_bin ist das testing des Webservices nicht möglich.

· Dlls in das bin Verzeichnis oder in die gac

Ribbon in word

· Ist ein abgeschlossener Bereich.

· Das öffnen des taskpanes wird über die eventhandler bewerkstelligt.

TaskPane

· Um WPF Controls zu verwenden, muss ein ContainerControl WPF Host eingebaut werden.

· Properties werden in Properties.Settings.Default…. abgelegt. Genauer anschauen was das tut?

· Einfügen eines bildes : ctrl.range.inlineshape.

Using FormBase Auth in SharePoint

· Hier sei noch angemerkt, dass man nicht rein auf FDA umsteigen soll, da einige Sachen dann nicht funktionieren. Erweiterung des MOSS / WSS mit SharePoint Designer etc.
man sollte eine Zone als AD Zone belassen und eine weitere als FDA Zone deklarieren. Beide Zonen zeigen auf die gleichen Daten, nur der Zugang ist anders.

· Create Membership Diabase

· Configure conectionstrings (in der web.config der Webseite und der wss)

· Configure membership providers – in beiden web.config’s

o <membership defaultProvider=”RestaurantProvider”><provieders><add name=RestaurantProvieder ….>

o SharePoint central administration

§ Application management – authentication provider

§ Change from default to forms

§ Eintragen des Namen vom Provider welchen man zuvor konfiguriert hat

· Wenn man aus word auf SharePoint zugreifen will, muss man ein Cookie mitgeben

o Loginform

o Sharepoint hat ein Authentication.asmx welches das Cookie zurückliefert.

o Create coockiecontainer um mit Cookies zu arbeiten.

o Das auth..asmx liefert result. Dieses muss auf …NoError überprüft werden, erst dann das Cookie suchen

o Coockiecollection cookies=aservice.coockiecontainer.getcookies(new uri(Aservice.url))

o Um das eigene Service mit den Cookies verwenden zu können muss das eigene Service in das vti_bin Verzeichnis platziert werden.

ASP Seite um sich für die community anzumelden etc.

· Referenz auf die Masterpage (simple.master oder default.master)

· Asp:createuserwizard

· Nach dem registrieren der User müssen diese zu wss gruppen hinzugefügt werden.

· Asp Pages müssen unter 12templateslayouts (Pages mit source müssen hier liegen)

Tool: word Content control toolkit: erlaubt das verbinden von XML Daten in word Steuerelemente.

Fragen:

SharePoint extensions for vs 2008? Was wird das genau sein?

Web.ensureuser – genau anschauen was das tut

Wieso nicht infopath um Informationen des Restaurants aufzunehmen?

Categories: .NET, Open XML, TechEd, VSTO

TechEd 2007:Implementing Workflow Enabled Services and Durable Services using .NET Framework 3.5

November 8, 2007 Leave a comment

Offizielle Beschreibung

Inside .NET Framework 3.5, there is new functionality allowing Windows Communication Foundation (WCF) services to be built and consumed from a Windows Workflow Foundation (WF) workflow. This session will introduce the feature, discussing motivation, scenarios, and reasons for using this feature, an architectural overview and demos moving from a simple service written as a workflow to a complex scenario with many workflows communicating with each other. Additionally, the ability to execute workflows as a service requires the WCF runtime to be aware of durable instances, that is, the state of a given service. This talk will also highlight the ability to durably store the state of a WCF service written in imperative code.

Allgemein

In dieser Session wird über das Zusammenspiel zwischen WCF und WF berichtet. Man konnte Workflows zwar bereits mit VS 2005 anhand einer Message starten, aber das war kein einfaches Unterfangen.

Mit VS 2008 kommen weitere Steuerelemente welche WCF als Grundlage haben und anhand einer Message (welcher Art auch immer. WCF hat da ja einige Möglichkeiten) gestartet werden können.

Man geht sogar soweit, dass man nicht bei einem Start des Workflows über eine Message bewerkstelligen kann, sondern über Messages zwischen mehreren Workflows kommunizieren kann. somit sind natürlich log running Workflows möglich. Somit ist nicht nur eine Kommunikation in eine Richtung möglich. Duplex Communication ist jederzeit möglich.

Workflow Services

Man spricht von Workflow Services. Dies Bedeutet, dass man einen Workflow als Service zur Verfügung stellt. Dies Ermöglicht z.B einen bestehenden WF als Webservice zur Verfügung zu stellen. Die Implementierung würde mit Hilfe der WF gemacht werden und somit sehr dynamisch gehalten werden kann. Änderungen der Kundenanforderung können in manchen Fällen einfacher umgesetzt werden. Aus meiner Sicht bedeutet diese Erweiterung nicht, dass man jedes Webservice durch eine Workflow Service ersetzen soll. Hier muss man noch die Abgrenzungskriterien herausfiltern.

Erweiterungen in VS 2008

Wie bereits erwähnt gibt es neue WCF Activities im WF Designer. Wenn man ein Workflow Service programmiert bietet das VS 2008 die Möglichkeit dieses auch zu testen / debuggen. Man kann es sich wie ASP.NET Integration in VS ab der Version 2005 vorstellen. Ab VS 2005 wird Cassini mitgeliefert und dient als Entwicklungs-Webserver im VS2005. In 2008 gibt es eine ähnliche Komponente, welche den „Aufrufer“ des Workflow Service simuliert.

Conclusio

Ein guter Ausblick auf die Möglichkeiten und Sinnhaftigkeit des Zusammenspiels zwischen WF und WCF. Genaue UseCases in denen es Sinnvoll ist diese Technologien gemeinsam einzusetzen müssen evaluiert werden.