I tried to deploy a K2 blackpearl process (developed and tested on server DEV in domain A) to a test environment (server TEST, domain B) via the command line, but it freezes at some stage. Normally you could deploy a process from within Visual Studio with a click on “Deploy”. Then you will get a wizard to choose your environment. If your environments are not on the same domain, K2 blackpearl supports the deployment through the command line. In Visual Studio right click on the process and select “Create Deploy Package”. After it finishes, you will find some files in the obj\Debug folder. One file is a .msbuild file. I copied all files, as mentioned in the K2 docu, to the target machine and fired up: msbuild MyProcess.msbuild /p:Environment=Test First, it looks good, because my InfoPath form was deployed to the SharePoint site, then the console showed the following lines: Deploy Processes: Task Started (26.02.2009 17:00:00) Adding Process : MyProcess\Demo1 Nothing more! I waited about 30 minutes, but nothing happened, no error messages, nothing. Long story short: The solution is, that the value of the “SharePoint Target Site” environment field MUST end with a “/” (e.g. “http://mossServer/targetSite/”)! You can change this within Visual Studio in the Environment Browser or directly in the .msbuild file. No more comments…
Eine sehr coole Neuerung in Windows 7 ist, dass OpenSearch in den Explorer integriert ist. So kann man eine einfache Textdatei erstellen und diese in *.osdx umbenennen. Der Inhalt ist einfaches XML. Hier das ganze mal für mein Blog: marcos blog search.osdx Nach dem download einfach die OSDX Datei doppelklicksen und schon hat man mein blog in die Windows Search integriert. Und so siehts aus wenn man nach “sharepoint” sucht: Das ganze kann man natürlich leicht anpassen und für diverse Seiten einbauen. Chris Pirillo hat das ganze schon mal für Amazon, eBay, etc hier gemacht, dort gibts auch ein ZIP file mit einigen search connectors.
I’ve created a new little tool, which is called AutoHistory (for Word 2007). I got the inspiration from Visual Local History for Visual Studio. This tool automatically creates a backup every time you save a file. AutoHistory now provides the same functionality within Word 2007. Everytime you save your document (and something has changed), a backup is created. From now on you will never lost important information. You can restore every version you’ve ever saved, even if you do not use a version control system (like Team Foundation Server or Subversion). This tool is fully integrated in Word 2007 within the View Ribbon: If you check the checkbox you will see all saved versions of the current document: Within this taskpane you can easily view and restore every version. You can download the setup from here: http://mwiedemeyer.de/downloads/AutoHistory/AutoHistorySetup.zip Please feel free to drop me a line, if you have any questions or suggestions: mail at mwiedemeyer dot de.
If you ever got this message and don’t know where it came from, here is the solution. I got it if I click on “Edit Page” on a publishing page. So after some investigation it seems to be a problem with the web parts on the page. My page layout contains some EditModePanels, so the user have different views in display and edit mode of the page. Therefore we also have one web part in a web part zone which is in one of the EditModePanels for display only. <PublishingWebControls:EditModePanel PageDisplayMode="Display"…>
<WebPartZone ID="zone1" ...>
the web part added through the onet.xml site definition
The same web part zone “zone1” does not exists for editing, because I do not want the user to edit the web part. There is another web part zone “zone2” which lives outside of any EditModePanel.
Now comes SharePoint.
If you check out the page and then click on “Edit Page”, everything is working. Except of, that the web part from zone 1 has moved to zone 2! Automatically! Thank you SharePoint…
It seems that SharePoint think it has to show the web part in edit mode. And because the original web part zone is not visible, SharePoint moves the web part to the next available zone which is visible also in edit mode.
So remember:
Never put a web part zone in an EditModePanel which is only visible in display mode.
Maybe the solution is to make the web part not editable, but I didn’t tested this. My fast workaround hack is to create a div instead of the EditModePanel and makes it “runat=server” and give it an ID. Then I wrote this code on top of the page: <script runat="server">
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.navleftdiv.Visible = (this.SPWebPartManager1.DisplayMode == WebPartManager.BrowseDisplayMode);
}
</script>
Now it works like a charm.
If you ever tried to publish one or more pages with your site definition (by onet.xml), you see in Visual Studio (with the SharePoint XSD schemas selected) only one valid value for the “Level” attribute which is “Draft”: But for this attribute you can choose between every value of the SPFileLevel enum. So for publishing the page automatically, set the Level to “Published”. Thats it. If you already know how to enable XSD schema validation and IntelliSense support stop reading here. Enable Schema Validation: - Open your xml file, e.g. onet.xml (works with all SharePoint related xml files)
- In the property pane, click the ellipsis next to the “Schemas” property
- Add the wss.xsd. This file is located in the 12\Template\XML directory
- Now add the following xml Namespace attribute to the root element (here Project in onet.xml):
<Project xmlns="http://schemas.microsoft.com/sharepoint/" Title="" [...]
Now you should have IntelliSense and schema validation enabled.
Today I found a version history “bug” in SharePoint publishing pages: The version history system of SharePoint covers only Page Fields, but not Web Parts. In detail: - Create a new page (e.g. “Blank Web Part Page”) within a publishing web.
- Now add text and a Web Part. Save changes and check-in.
- Check out and change the text and some properties of the Web Part.
- After that, check-in again, and open the “Version History”
If you now try to recover the first version, it seems to work, but only the page fields are recovered. The Web Part is always the latest version, because the Web Parts are saved in a totally different location, so they are not covered by the version history system. Lets have a look on a cool solution: Garry Lapointe created a web feature which replaces the version history system and saves a whole page with all Web Parts on every check-in through an Event Receiver on the Pages list. The version is Alpha 0.0.1 but it is working very well, so download it from codeplex.
The RadEditor for MOSS 2007 version 4.5.3.0 has a Bug, which is very annoying... You create a new custom tool in the ToolsFile.xml and set the “showtext” property. <tool name="CustomToolName" showtext="true" />
Then you create a corresponding javascript method in the RadEditorCommandList.
RadEditorCommandList["CustomToolName"] = function(commandName, editr, oTool)
{
(...)
}
If you now click on this new Tool Button, the RadEditor shows the message “Could not find the command xxx. Please update your command list.”
The solution for that: Remove the “showtext” property from your tool in the ToolsFile.xml and everything is working as expected.
Seit heute habe ich das Service Pack 1 für das .NET Framework 3.5 und den SQL Server 2008 auf meinem Server installiert. Ein paar neue kleine private Projekte warten und können nun mit den neuen Features ausgerüstet werden (z.B. Entity Framework und auch ASP.NET MVC obwohl das nur eine CTP ist). An der Stelle kann ich das .NET 3.5 Enhancements Training Kit empfehlen! Sehr guter Überblick über alle Neuheiten. Außerdem werde ich vielleicht die Datenbank von WoIstMarco? auf die neuen SQL Server 2008 Geo Datentypen upgraden. Mal schauen, was das so für Vorteile bringt. Jetzt brauche ich nur noch viiel Zeit...
I have an issue creating a new Web Site programatically. Sometimes, the following exception occurs: Content type '0x01010007FF3E057FA8AB4AA42FCB67B453FFC100E214EEE741181F4E9F7ACC43278EE811' not found in web 'xxx' Live Search has no solution (by the way: Google has no solution as well ). The only thing you can do is re-run the SharePoint Products and Configuration Wizard. After that, the error disappears and the site creation process is successful. The weird thing is, that the content type ID is the ID from the “PageLayout” Content Type... If anyone found another solution I would be very interested.
Es ist kaum zu glauben! Mit Visual Studio 2008 SP1 hat nun endlich die Funktion einzug gehalten, die man schon seit Jahren vermisst, wie ich gerade entdeckt habe... Man hat z.B. folgendes geschrieben: public bool IsFoo(object x)
{
}
Früher war es so: Den “Fehler” dass nicht alle Pfade der Methode einen Wert zurückgeben bekommt man erst, wenn man “Build” aufruft.
Jetzt neu: Der Fehler wird sofort im Error Log sichtbar! Ohne speichern, ohne Build! Danke Microsoft!
Wie bereits hier geschrieben habe ich nun eine Lösung für meinen GPS Logger BT747. Da das Tool BT747 mit Vista x64 nicht klar kommt, verwende ich also nun gpsbabel um die Daten abzurufen. Es kommt ein bin file raus, was gpsbabel leider nicht in csv konvertieren kann. Dazu habe ich nun ein eigenes Tool geschrieben, oder besser gesagt von Java in .NET übersetzt. Hier gibts den download des Tools. Verwendet wird es so: bt747logconverter.exe data.bin output.csv Zuvor noch diese Zeile ausführen um das bin file vom Logger zu laden (com4 durch entsprechenden Port ersetzen): gpsbabel.exe -p "" -w -i mtk -f com4: Endlich eine funktionierende Lösung unter 64bit…
Nachdem unter Vista x64 ja das Tool für den GPS Logger nicht mehr lief, habe ich länger nach einer neuen Lösung gesucht. Dabei zwischenzeitlich auch eine eigene Anwendung gehabt, die aber nur blödsinn von dem GPS Logger abrufen konnte… Jetzt hab ich gpsbabel getestet und bin positiv überrascht. Es ist eine Kommandozeilenanwendung, und der Aufruf kann somit per Script automatisiert werden. Das einzige Problem das ich jetzt noch habe: gpsbabel kann das mtk bin file nicht in ein csv file konvertieren. Es gibt zwar keine Fehlermeldung aber die Datei bleibt einfach leer. An der Stelle kommt im Moment also doch noch die alte BT747 Anwendung zum Zuge. Diese kann das bin file von gpsbabel in ein csv file konvertieren und ich kann es dann hochladen. Wenn ich jetzt noch den Konvertier-Teil von der BT747 Java Anwendung in .NET übersetzen kann, dann wäre ich glücklich... Also funktioniert ab sofort die Wo Ist Marco Seite wieder.
Seit ein paar Tagen gibt es eine neue Version von dasBlog: 2.1. Viele Bugs wurden behoben und im aktuellen Sourcecode Snapshot ist sogar bereits die OpenID Unterstützung für Kommentare implementiert, leider ist die .NET Bibliothek (dotnetopenid) etwas sehr optimistisch was Timeouts angeht. So musste ich im dasBlog code ein paar kleine Änderungen vornehmen, damit nun beim hinzufügen von Kommentaren hoffentlich kein Timeout auftritt. Mehr zum Thema OpenID gibts hier auf der offiziellen Seite oder hier auf deutsch und hier bei Scott Hanselman, dort beschreibt er auch, wie man es auf seinem eigenen Blog implementiert, oder wie man seine eigene Domain zum OpenID Login macht. Also los, gleich hier ausprobieren und einen nutzlosen Kommentar hinterlassen! Außerdem zeigen die Kommentare jetzt auch die gravatar icons der Kommentatoren an, wenn vorhanden.
Mikhail Dikov has written a very good article about how to use and deploy global resources within SharePoint. He uses a Feature Receiver and creates a one-time scheduled job which copies the resource files from the feature folder to the App_GlobalResources folder under Inetpub\wwwroot\wss\VirtualDirectories\[port]. Now, why I'm writing about this? Because there is one little thing within his code, that makes this solution unusable for a farm with more than one WFE (Web front-end server). The resource files were copied only on one WFE each time I activated the feature. After searching the web a while, I found that the parameter SPJobLockType is the problem. In Mikhails solution this parameter is set to "Job", which defines that this job executes only on one machine at a time. In a farm, I want to execute this job on each WFE. So set this parameter to "None" and it works! Another solution is the article from Maxime Bombardier "Deploying resource files across a farm". For me it seems to be a little bit difficult and more complex than the solution from Mikhail.
Ich weiß, dass es einige Webseiten gibt, die insgesamt wahrscheinlich eine Menge Gründe nennen können, warum man Variations mit SharePoint 2007 nicht einsetzen sollte. Im aktuellen Projekt war die Entscheidung für Variations bereits lange vor Beginn gefallen... Daher ein paar nützliche Hinweise die man evtl. vorher beachten sollte oder die im Nachhinein vielleicht noch was retten können.  - Insgesamt ist das Variationsystem leider sehr instabil, auch mit installiertem SP1.
Beispiel: Für die Migration von einem vorhandenen alten System haben wir u.a. ein Tool geschrieben, um aus Einträgen einer SharePoint Liste Sites und Pages auf einem Zielsystem zu erstellen. Sei es über as SP Objektmodell oder über stsadm, stellenweise und aus unerfindlichen Gründen knallt es beim Anlegen der Variations. Da die Sourcesprache aber (durch unseren code) (meistens) korrekt angelegt wird, ist der dahinterliegende Timerjob des Variationsystems das Problem. Eine wirkliche Lösung gibt es offensichtlich bisher nicht, daher führen wir das Erstellen der Sites und Pages nun verzögert aus, um jeweils nach ein paar Sites erstmal auf den SharePoint Timerjob zu warten... - Variations per SharePoint Solution/Feature deployen bereitete uns ebenfalls einige Kopfschmerzen.
Die Labels der Variationen die man anlegen möchte, lassen sich noch relativ leicht über ein paar Zeilen code in einem Feature Receiver anlegen. Um nun die Hierarchien zu erstellen, kann man entweder über die GUI gehen und auf den Button "Create Hierarchies" klicken oder man macht auch das per Code. Sinnvoll ist es, damit man später das ganze wirklich ohne manuelle Eingriffe von einem Administrator installieren lassen kann. Leider will Microsoft das wohl nicht, denn die zugehörige Klasse, bzw. Methode ist als internal deklariert und somit nicht verfügbar. Da das inakzeptabel ist, half nur ein Artikel von Codeplex, in dem beschrieben wird, wie man mittels Reflection doch noch zum gewünschten Ergebnis kommt. Und ja, die Alternative die Seite per WebRequest aus dem Code raus anzustoßen und vorher entsprechend zu manipulieren funktioniert nur bedingt und natürlich schon gar nicht zusammen mit Mehrsprachigkeit  - Custom ASP.NET 2.0 WebParts und Variations vertragen sich leider gar nicht!
Beispiel: Eine Page erstellen, ein (selbst geschriebenes) WebPart hinzufügen und Publish klicken. Das Ergebnis ist ein leerer Eintrag im Variation Log, wo dann zwar Datum und Uhrzeit, aber weder Success, noch Failure Meldungen stehen. Weiterhin passiert dann einfach nichts mehr. Entfernt man das WebPart und klickt erneut auf Publish, funktioniert alles wieder wie es sollte. Nach einiger Recherche gibt es dazu offensichtlich 2 Lösungen: 1. Man erbt von Microsoft.SharePoint.WebPartPages.WebPart anstatt von System.Web.UI.WebControls.WebParts.WebPart, was jedoch laut Microsoft nicht empfohlen ist, oder 2. Installiert neben den Post-SP1 Hotfixes vom 31. Januar 2008 auch noch das 21. Februar 2008 Hotfix Package, was genau dieses Problem behebt. Somit können dann auch bereits vorhandene ASP.NET WebParts verwendet werden. Weitere Teile folgen, denn noch ist das Projekt nicht zu Ende... Im nächsten Beitrag geht es dann um das ebenfalls allseits beliebte Content Deployment und warum ich das ganze nahezu komplett neu Entwickelt habe...
Kleines Update: Bug fixes: - Automatische Überprüfung auf Updates deaktivieren hatte keine Funktion / Disable Check for Updates option had no function New Features: - Automatisch starten mit Windows als Option verfügbar / Autostart with Windows available Wie immer: Download hier
Der Proxy Switcher ist nun in einer neuen Version verfügbar. Neben einer grundlegenden Änderung am Switcher PlugIn Interface, gab es noch ein paar weitere Änderungen und Neuerungen. Das wichtigste dürfte für die meisten jedoch sein: Der Proxy Switcher bringt nun ein Firefox Switcher PlugIn mit. Leider muss Firefox geschlossen sein, da Firefox keine API mitbringt um eine laufende Instanz zu benachrichtigen, dass sich die Proxy Einstellungen geändert haben. Sollte jemand dazu Informationen haben, bitte melden. DOWNLOAD HIER Changelog: - Automatische Prüfung auf neue Versionen
- Verbessertes PlugIn Interface (Bietet nun laden/speichern von Konfigurationen)
- Minimiert starten funktioniert nun auch zuverlässig auf Windows XP und ist explizit konfigurierbar
- Neues PlugIn für Firefox 2 und 3 (außerdem kann bei mehreren Profilen gewählt werden, für welches Profil die Einstellungen gelten sollen)
-------------------------- English: DOWNLOAD HERE Changelog: - Auto check for updates
- Enhanced PlugIn interface (now an abstract base class with load/save configuration functions)
- Start minimized now configurable and working on Windows XP
- New PlugIn for Firefox 2 and 3; works also with different Firefox profiles
Zuerst: Wer noch nie was von Xobni gehört hat, sollte es erst mal rückwärts lesen und dann die offizielle Webseite besuchen: http://www.xobni.com Das ganze ist ein Outlook 2003/2007 AddIn was Statistiken über den Mailverkehr führt und Zusammhänge sehr schnell und sehr übersichtlich darstellt. So sieht es in meinem Outlook aus: Rechts oben sieht man sofort wenn man eine Mail selektiert, wieviel Mails man zu welchen Uhrzeiten von der Person bekommen hat, die Telefonnummer und darunter 3 weitere nützliche Fenster. Insbesondere das Conversations Fenster finde ich extrem sinnvoll und nützlich. Es zeigt nämlich Mails zusammenhängend an, wodurch man nicht alle vergangenen Mails wieder zusammen suchen muss (womöglich noch über mehrere PST Dateien verteilt, da bereits archiviert) und bekommt schnell einen Überblick wer wann was zu einem Thema gesagt hat. Und so sieht es aus: Man hat sofort den Zusammenhang und kann sehen was bereits alles geschrieben wurde. Ein weiteres sehr sinnvolles Fenster ist das Attachments Fenster. Dort sieht man nämlich sofort alle Dateien die man mit einer bestimmten Person ausgetauscht hat! Praktisch wenn man sich erinnert, dass man jemandem eine Datei geschickt hat, aber nicht mehr wann und nach was man am besten suchen könnte. Hier wird alles auf einen Blick präsentiert. Das Fazit ist, dass es ein sehr cooles Tool ist, was dann hoffentlich bald Final und für alle kostenlos zur Verfügung steht. Wer es bis dahin auch mal testen möchte, meldet sich hier in den Kommentaren oder per Mail, denn ich habe 6 Einladungen zu vergeben!
|