ich will kein vista

…ich kann eigentlich nicht sagen, was der genaue grund dafür ist.

es liegt nicht an persönlich gesammelten erfahrungen im direkten kontakt; ich habe bisher erst zweimal mit vista herumgespielt: das erste mal war es noch die beta (oder war es doch schon ein rc?) – irgendwie wurde meine hardware sowas von überhaupt nicht unterstützt, dass ich es gleich wieder dabei belassen habe. es gab dann später noch einen weiteren versuch, der aber ebenfalls nicht besonders erfolgreich war; ich fand mich nicht auf anhieb zurecht – wurde jedesmal beim booten unendlich oft von uac gefragt, bis der beta virenscanner etc endlich geladen war – und damit war die damals für mich wichtigste erkenntnis, dass man vista wieder sehr leicht los wird.

es liegt auch nicht daran, dass ich so wie viele andere in meiner umgebung alle mythen über vista glauben würde, da ich viel darüber gelesen habe. mir sind die vorteile von bitlocker, uac oder dem ie7 genauso bewusst wie mir klar ist, dass vista nicht “x gb benötigt, damit es überhaupt läuft” – sondern dass man das ganze superfetch nennt. ich kenne auch readyboost und readydrive, auch wenn ich nicht wirklich daran glaube.

es liegt auch nicht daran, dass in vista drm fest eingebaut ist. ob vista oder nicht, meine meinung dazu steht fest.

vielleicht liegt es daran, dass mich das offensichtliche, nämlich aero, überhaupt nicht vom hocker reisst, weil ich privat derartige effekte bereits länger bewundern kann – mein alter mac kann das – und auf dieser hardware würde vista nichtmal husten. die sidebar hat für mich nur einen sinn: sie bringt mir auf den 16:9 displays wieder mein 4:3 zurück 🙂 nur, auch dafür brauch ich kein vista, es gibt ja z.b. auch google.

vielleicht liegt es aber auch einfach daran, dass ich alt werde – und mir die zeit nicht nehmen will, weil ich genug andere dinge zu erledigen habe. man wird sich mit vista beschäftigen müssen, das ist klar. aber muss das jetzt schon sein? das sp1 ist bereits da, also warte ich doch noch auf das sp2. dann wird auch das angebot von applikationen und treibern weit besser sein.

in summe bin ich trotzdem froh, dass ich in kürze ein vista notebook bekommen werde. ich bin mir sicher, dass ich noch nie mit einem derart performanten xp gearbeitet habe 😉

Silverlight WebPart

bei triplewood gibt es ein webpart im beta stadium zum download, welches auf silverlight basiert – das webpart ansich erfüllt (aus meiner sicht) keinen wirklich sinnvollen zweck – lässt aber hoffen, dass diesem bald weiteres folgen wird.

zumindest der breite einsatz von ajax wäre aus meiner sicht im sharepoint mehr als wünschenswert – silverlight (imho generell mit einem weit größeren potential als flash) kommt da in meiner wunschliste erst weit später; schon allein auch deshalb, weil man somit ein browser plugin als voraussetzung hat

use External BLOB Storage in WSS / MOSS

schon lange vor dem sp1 für wss bzw moss gab es das hotfix package 937901, nach dessen installation eine “external storage api” zur verfügung steht.

doch wer glaubt, dass nach der installation irgendwo eine option zu finden ist, ob man die datenbank oder doch lieber irgendein filesystem zur ablage der dokumente verwenden möchte, der irrt leider gewaltig: out of the box gibt es diese funktionalität schlicht nicht, man kann weiterhin nur die datenbank verwenden.

auch microsoft gibt zu, dass der sql server nicht die beste wahl ist, um solche datenmengen abzulegen und schreibt dazu im wss 3.0 sdk unter “Overview of External BLOB Storage in Windows SharePoint Services“:

The problem, however, is that SQL Server is not the best option for storing unstructured binary data streams because unstructured binary data does not expose itself to the rich SQL query environment. In fact, store and retrieve operations for BLOB data in SQL Server are little more than simple get and put statements. Therefore, because BLOB data is not able to leverage one of SQL Server’s most useful features, its query engine, its value as a BLOB store is limited.

… microsoft bietet dazu allerdings keine fertige lösung, sondern mit dem fix nur eine api – sozusagen eine einladung an 3rd party hersteller hier eine lösung zu liefern. leider ist mir kein anbieter bekannt, der hier eine lösung hätte – wodurch ein nachteil des moss weiterhin bestehen bleibt: die dokumente können nur in der datenbank abgelegt werden (der einzige vorteil dieser lösung ist, dass man mit einem einfachen restore der datenbank einen konsistenten datenbestand hat)…

BgInfo für TS / Citrix Sessions

mit bginfo kann man allerhand wichtige informationen am desktop hintergrund darstellen – mit dem ebenfalls kostenlosen tool TSBACKDROP gibt es diese funktionalität in ähnlicher form nun auch für terminalserver und citrix sessions.

die informationen über die verbindung sollten den anwendern imho immer auf irgendeine art und weise zur verfügung gestellt werden, damit diesen das einmelden von vernünftigen störungen am helpdesk erleichtert wird – und hier kann dieses tool helfen.

bdc, powershell & c#

wie werden eigentlich die informationen aus dem bdc auf feld-ebene gespeichert? schauen wir uns das anhand eines beispieles an:

nehmen wir an, wir haben folgenden bdc:
application: QueryDemoData
entity: Demo_Entity_ID
systeminstance: Demo_LobSystemInstance

dieser bdc wird in einem blog bei den posts verwendet – und zwar in der column namens “DemoID”. primär wird das gleichnamige bdc feld “DemoID” angezeigt, weiters noch “field two”.

schauen wir uns nun einen post mit der powershell an – holen wir uns zuerst den post mit der id nummer 2:

$SiteName = “http://mosstest/”
$WebName = “/blog/”
$ListName = “Posts”
$mossSite = new-object Microsoft.SharePoint.SPSite($SiteName);
$mossWeb = $MossSite.AllWebs[$WebName];
$mossList = $MossWeb.Lists[$ListName];
$item = $mossList.GetItemById(2)

und schauen uns einmal an, welche felder dieses item zu bieten hat:

$item.Fields | format-table InternalName

neben vielen anderen sind für uns nur folgende wichtig:

DemoID
Demo_Entity_DemoID_ID
Demo_x003a__x0020_field_x002

und im ersten schritt das feld “DemoID”:

$field = $item.Fields.GetFieldByInternalName(“DemoID”)

dieses feld hat den typ “BusinessData”, was man auch mittels

$field.TypeAsString

kontrollieren kann. der primäre bdc feldname ist “DEMOID”, und auch die systeminstance und entity ist vorhanden:

$field.BdcFieldName
$field.SystemInstanceName
$field.EntityName

bleiben nur noch die zusätzlichen felder – hier “FIELDTWO” (der zugehörige wert wird nach dem query in dem feld “Demo_x003a__x0020_field_x002” gespeichert):

$field.GetSecondaryFieldsNames()

und die kontrolle, ob es zugehörige actions gibt:

$field.HasActions

das fast wichtigste feld ist allerdings “Demo_Entity_DemoID_ID” – schauen wir uns den inhalt an:

$item.GetFormattedValue(“Demo_Entity_DemoID_ID”)

der inhalt ist z.b. “__bk43003600f600f600c6009700f6005700b600e600f600770036003200” – es handelt sich um eine encodede version des in diesem post verwendeten identifier keywords; mir ist allerdings keine möglichkeit bekannt, wir man den string in der powershell decoden oder gar ein neues keyword (um über die powershell neue documente mit befülltem bdc erstellen zu können) encoden könnte…

dazu muss man c# bemühen:

folgende references einbinden:
– Microsoft.Office.Server
– Microsoft.Sharepoint
– Microsoft.Sharepoint.Portal

und dann brauchen wir:
using Microsoft.Office.Server.ApplicationRegistry.Administration;
using Microsoft.Office.Server.ApplicationRegistry.Infrastructure;

und schon können wir encoden und decoden:
EntityInstanceIdEncoder.EncodeEntityInstanceId(new object[] { “coolyouknowc#” })
EntityInstanceIdEncoder.DecodeEntityInstanceId(“__bk43003600f600f600c6009700f6005700b600e600f600770036003200” )

iisreset? iisapp.vbs reicht!

“viele änderungen benötigen einen iisreset um übernommen zu werden” – stimmt das?

nicht immer! meistens reicht es völlig aus, nur die application pools und nicht gleich den ganzen iis zu recyclen – und das geht so:

cscript.exe %windir%\system32\iisapp.vbs /a “your application pool” /r

der vorteil: das geht wesentlich schneller als ein iisreset, ist diesem also vorzuziehen!