Welcome to MSDN Blogs Sign in | Join | Help

I tisdags var det möte för folk som gillar SharePoint och som sett inbjudan på SharePoint Community Sverige. Det var mitt första möte och det var kul att se så många deltagare och så intressanta ämnen.

Först pratade Niklas Goude om hur PowerShell kan användas i samband med SharePoint. Han visade hur man kan scripta skapandet av hela siter, inkl skapa nya listor och kolumner och innehåll… Du kan ladda ner Niklas coola PowerShell script och testa själv!

Efter pausen gjorde Wiktor Wilén en mycket bra demo av hur man skapar dashboards i PerformancePoint Server (PPS) och publicerar dem i SharePoint. Om du har missat det så kommer SharePoint Server 2010 att innehålla en tjänst kallad PerformancePoint Services som kommer ersätta en stor del av den funktionalitet som idag finns i PPS.

Tack för ett mycket bra arrangemang! Jag ska definitivt delta fler gånger!

Jag har byggt en lösning åt en kund som systematiserar ett par av deras interna processer, lösningen är baserad på SharePoint och WF workflows byggda i Visual Studio. I samband med att de testade systemet hittade de ett fel som jag inte riktigt förstod.

De ändrade systemkonfigurationen så att en viss sorts händelser i systemet som genererar en uppgift (task) skulle tilldelas en nyskapad SharePoint grupp, alltså en grupp som ännu inte hade använts till något. Felet de upptäckte var att efter en IISRESET så kunde in gruppen inte hittas när dess medlemmar skulle enumereras, men andra gången gruppen skulle användes så fanns den där.

Först trodde jag att det var ett testfel hos dem, men sedan så lyckades jag (till min förvåning) att återskapa felet i min utvecklingsmiljö. När jag debuggade koden så fanns inte gruppen första gången, men andra gången så var den där.

Men då slog det mig att jag i den hjälpmetod som genererade felet använde mig av SPWeb.Groups istället för SPWeb.SiteGroups! På alla andra ställen i koden använde jag SiteGroups, och då fanns alltid gruppen där, men just här använde jag Groups och då saknades den. Aha, ett samband framträder och jag minns vad som skiljer mellan Groups och SiteGroups: Groups innehåller grupper som har minst en rättighet i en SPWeb medans SiteGroups innehåller alla grupper (oavsett om de har rättigheter eller inte).

En snabb ändring till SiteGroups och allt fungerade!

Det som hände var att första gången min rutin användes så hade gruppen inga rättigheter (och finns då inte med i SPWeb.Groups), men längre ner i flödet så tilldelas en uppgift (task) till gruppen och då får den en rättighet i webben. Så nästa gång rutinen körs så har gruppen rättigheter och SPWeb.Groups ger tillbaka ett svar som innehåller gruppen.

En generell regel är alltså att man bör använda SPWeb.SiteGroups när man ska slå upp grupper, om man inte är specifikt intresserad av grupper som har minst en rättighet på webben.

Arphan Shan (Director i SharePoint-teamet) har lagt upp ytterligare en Sneak Peak på funktionerna i SharePoint Server 2010. Det är en inspelning av hans presentation på WPC (Worldwide Partner Conference) förra månaden. Hela titeln är Building Solutions on SharePoint: The Value Delivered Today, and a Sneak Peek at Microsoft SharePoint Server 2010. Se den nedan eller kolla på http://www.microsoft.com/video/en/us/details/efc1bbbf-123a-45bc-8145-c08545e29f2c.

Jag har i många år använt ett program som heter Pixort för att gallra mina nytagna digitala bilder. Jag tar oftast MASSOR med bilder och behåller enbart de bäst, om man t.ex. har 1000 bilder från en fotbollsturnering så reduceras det oftast till runt 40 bilder innan de åker in i mitt katalogprogram (Lightroom). Pixort är väldigt snabb och effektiv för detta ändamål, men det finns några små saker som jag irriterar mig på.

Därför funderade jag på hur svårt det skulle vara att skriva ett eget program som kunde användas för gallring. Jag gjorde ett försök för ett par år sedan men allt krångel med avkodning av RAW formatet blev för mycket… Men nu är det ett bättre läge eftersom Vista (och XP) har stöd för RAW avkodare som kan läsa de olika RAW formaten, avkodarna skapas av kameratillverkarna (Canons avkodare finns att ladda ner på http://www.usa.canon.com/consumer/controller?act=ModelInfoAct&tabact=DownloadDetailTabAct&fcategoryid=314&modelid=15206).

Från och med .NET Framework 3.0 finns det nu stöd via BitmapDecoder.Create för att använda dessa avkodare för att läsa upp RAW bilder från egna program, utan att man behöver bry sig om vilka algoritmer som används för att avkoda RAW filen.

FileStream stream = new FileStream(file, FileMode.Open);
BitmapDecoder decoder = BitmapDecoder.Create(stream, BitmapCreateOptions.None, BitmapCacheOption.Default);

img.Source = decoder.Frames[0];
img.Source = decoder.Preview;
img.Source = decoder.Thumbnail;
img.Stretch = Stretch.Uniform;
stream.Close();

Som visas ovan finns det tre olika sätt att hämta information från avkodaren. För min Canon 30D med 8 MP ger de olika alternativen bilder med följande storlekar:

  • Frames[0]: 2336*4672 = 8 MP
  • Preview: 1152*1728 = 2 MP
  • Thumbnail = 120*160 = 0,02 MP

Jag har hittills enbart använt Thumbnail och Preview. När man använder Frames[0] får man ett problem med timing eftersom avkodaren verkar ladda ner filen i bakgrunden och om man stänger FileStream innan allt är klart så visas ingen bild. Antagligen ska man använda händelsen DownloadComplete men jag orkar inte bry mig just nu, ett snabbt test med en loop som kollar egenskapen IsDownloading visade sig inte funka så det är nog händelsen som ska användas.

Avkodningshastigheten är helt ok för Thumbnail och Preview medans hela bilden såklart ta lite längre tid. Man behöver fortfarande jobba med async operations om man ska visa 100 filer, men de 30 filer jag har i mitt test tar ingen längre tid.

Det var grunderna för att visa RAW filer i WPF, nu ska jag labba vidare och se om jag får ihop något användbart.

Idag tänkte jag pröva en grej med hur jag kan använda RAW-filer från min kamera i en WPF applikation och startade därför Visual Studio 2008. Till min förvåning saknades i princip alla project templates, det enda som fanns kvar var BI templates för SQL Server 2008. En snabb nätsökning tipsade om att man skulle köra devenv /installvstemplates från en VS Command Prompt.

Men det hjälpte inte…

Så jag testade att göra en Repair av VS och efter en låååång stund avslutades ominstallationen med ett fel, det gick inte att ominstallera Visual Studio Tools for Office. Då sade det klick! Jag har nämligen nyligen installerat Office 2010 Technology Preview vilket ju onekligen har en potential att påverka just Visual Studio Tools for Office.

Lösningen blev att göra Add/Remove Features för VS och välja bort Visual Studio Tools for Office. Och när jag sedan startade VS ser jag alla project templates igen :-)

Lite konstigt känns det att ett problem med några project templates gjorde att alla templates togs bort. Att det inte skulle gå att skapa projekt med Visual Studio Tools for Office templates är ju en sak, men att den även skulle störa ut t.ex. WPF Application template är inte självklart…

För ett par veckor sedan släpptes mer information kring SharePoint 2010, läs mer här http://sharepoint.microsoft.com/2010/Sneak_Peek/Pages/default.aspx.

De tre huvudspåren är Overview, IT Pro och Developer och när man klickar på något av dem kommer det upp saker som är nya för SharePoint 2010. Det finns även ett stort antal exempelbilder som visar hur gränssnittet kommer att se ut (alla grafiska element är inte klara ännu vilket förklarar de orange cirklarna, se tex denna bild), det ni säkert ser direkt är att SharePoint numera har ett gränssnitt baserat på Ribbon, precis som klientapplikationerna i Office 2007 redan har.

Det presenteras en massa nyheter om man är uppmärksam, nedan skriver jag kort om några av nyheterna.

Användarupplevelsen förbättras genom ett “async user interface” som minimerar antalet omläsningar av en sida, t.ex. öppnas vissa fönster “över” andra fönster och när man är klar återvänder man snabbt till det ursprungliga fönstret utan att ladda om sidan från servern. Menyerna har också förändrats genom att SharePoint numera använder sig av Ribbon för att presentera vilka kommandon användaren kan utföra, precis som Office 2007 och Office 2010, detta ger en användare bättre översikt över vilka val som finns tillgängliga i olika situationer. För den inbitna SharePoint-användaren kan det även vara värt att notera att Settings menyn numera ligger i övre vänstra hörnet och inte i övre högra hörnet.

För utvecklare finns det såklart även en massa nyheter. Visual Studio 2010 SharePoint Tools innehåller massor av förbättring for SharePoint utvecklare och främst bland dessa kan nämnas riktigt bra stöd för att bygga WSP paket samt Visual Web Part Designer som gör det möjligt att skapa gränssnittet till en web part genom drag-and-drop istället för att bygga upp sidan manuellt med kod. Nice!

Inne i SharePoints gränssnitt finns det en inställning som slår på funktionen Developer Dashboard. Detta ger dig som utvecklare direkt tillgång till hur mycket resurser en viss sida förbrukar, se exempel här, vilket kan vara nödvändigt när man undersöker vilken inverkan t.ex. en ny web part har.

En annan nyhet som säkert är välkommen är stöd för LINQ mot SharePoint och en Client Object Model som förenklar anrop från gränssnitt som byggs i Silverlight.

BDC utökas med nya funktioner och byter namn till Business Connectivity Services (BCS). Bl.a. ger BCS möjlighet till både läs och skriv till externa datakällor och det kommer finnas verktyg för att skapa BCS definitioner i både Visual Studio 2010 och SharePoint Designer 2010.

För att förenkla i samband med installation introduceras SharePoint Best Practices Analyzer. Den innehåller ett antal regler kring hur en SharePoint installation ska vara konfigurerad; hur servicekonton användas, hur index i databas mår, m.m. Se denna bild för exempel på hur det kan se ut.

Jag rekommenderar er att titta igenom de videos som finns för varje overview, IT Pro och developer. De ger mer information än de korta texter som visas på webbidan och totalt är det över en timme av demos!!!! I Developer videon går Paul Andrew igenom massa intressanta saker som alla SharePoint-utvecklare kommer finna användbara.

Sist, men inte minst intressant, vill jag även påpeka att SharePoint 2010 kommer stödja FireFox. Missa därför inte att hela IT Pro demon körs i FireFox! :-)

PS. Och om ni har missat det så är sedan en tid tillbaka SharePoints officiella sida baserad på just SharePoint, tack för det! DS.

Vi har meddelat att SharePoint Designer från och med nu övergår till att bli en produkt som får laddas ner och användas utan kostnad, den är alltså GRATIS från och med idag! Du kan ladda ner den via produktsidan för Microsoft Office SharePoint Designer.

SharePoint Designer används för att på ett enkelt sätt anpassa av SharePoint utan att behöva skriva kod, exempelvis kan man modifera rapporter, arbetsflöden och olika vyer. Målgruppen för SharePoint Designer är IT-proffs som vill kunna göra ändringar i sin miljö utan att behöva skriva kod i Visual Studio och skapa features och WSP-paket.

Detta är såklart bra för många att SharePoint Designer blir mer tillgängligt och det kommer göra det lättare för icke-utvecklare att modifera sina SharePoint siter så att de passar dem bättre. Men det är även värt att påpeka att ändringar av en site layout som görs direkt i SharePoint Designer inte är en kontrollerad IT-process, det jag menar är att du inte kommer kunna dra nytta av ändringarna på andra siter eller i andra miljöer utan att manuellt göra om dem.

Ett sätt att använda SharePoint Designer i ett större projekt är att prototypa och skapa en basdesign med hjälp av SharePoint Designer. Men när man ska göra leverans till andra delar av projektet (systemtest, acceptanstest, produktion) så skapar man mer strukturerade packeteringar.

På Microsoft har vi ett antal resurser på extranet-siter men väldigt mycket är fortfarande enbart tillgängligt när man är uppkopplad på kontoret eller via VPN. Själv har jag bara synkat några listor i Outlook och vet att en del kollegor har jobbar med Groove, men jag funderade på vad för- och nackdelar är med olika lösningar? Därför satt jag och letade efter information om hur man bäst kan arbeta med SharePoint i ett offline-läge.

Jag hittade en artikel kallade Taking SharePoint Files Offline – What are the options? som sammanfattade för- och nackdelar med olika lösningar på ett bra sätt. Groove verkar stödja många scenarios (vilket kanske inte är så förvåndande eftersom det är en produkt var främst syfte är just att synkronisera information) men Outlook har i princip samma stöd.

Att man inte kan skriva bloggar från Groove känns knappast som en begränsning (det finns ju Windows Live Writer :-) och på samma vis är RSS läsning knappast någor som Groove bör fokusera på. Däremot är jag lite förvånad att uppgifter (tasks) inte verkar synkroniseras i Groove.

I framtiden kommer behovet av offline-funktionalitet minska genom att vi får full tillgång till funktionen Direct Access i Windows 7. Direct Access är beroende av ny funktionalitet i Windows Server 2008 R2 och eftersom vi inte har rullat ut den i alla länder ännu så har jag möjlighet att köra det. Men Windows 7 Beta har jag kört i två månader…

Sitter på TechDays och lyssnar på keynote med Daniel Akenine när han pratar kort om vad som händer när multi-core anläder på bred front, och Johan Lindfors gjorde även en kort demo av Parallel Extension for .NET (numera del av .NET 4.0). Eftersom jag för några dagar sedan skrev ett inlägg (delvis inspirerat av Daniel) om just multi-core utan att skicka upp det så är det väl dags att göra det nu!

---

Jag kollade på Daniel Akenines blog och när jag såg hans inlägg om vad som blir viktigt när antalet processorkärnor ökar kom jag att tänka på en Channel 9 intervju med Pat Helland som jag tittade på för ett tag sedan. Pat jobbar idag i SQL Server teamet men var på 90-talet en av huvudpersonerna bakom Microsoft Transaction Server (MTS) för er som minns den (föregångaren till COM+).

I ARCast.TV - Pat Helland on the Drive to Many-Core Processors beskriver Pat varför vi kommer se en utveckling mot fler kärnor i våra processorer. Det går inte att bara öka GHz hela tiden utan begränsningar finns bl.a. i den värmeutveckling som snabbare processorer (mätt i GHz) utstrålar samt i hur snabbt minne kan accessas. Lösningen är då att lägga ihop flera lite långsammare kärnor i en processor och därmed få ut mer prestanda. Idag är två kärnor standard och nyare datorer börjar komma med fyra kärnor. Pats slutsats är att det om några år inte kommer vara konstigt om en processor har 256 kärnor och kopplat till det kan man konstatera att Windows Server 2008 R2 kommer stödja upp till 256 kärnor.

Frågan jag ställer mig är hur mycket av detta som kommer påverka utvecklarna. Optimalt vore såklart om kompilatorerna eller run-time miljön gjorde automatiska omstruktureringar och optimeringar av den kod utvecklaren skriver.

Om det inte sköts automatiskt måste utvecklarna själva vara medvetna om både HUR man skriver parallell kod och NÄR man ska använda parallella funktioner. Jag tror att detta inte är något som den typiska utvecklaren kommer ha kompetens att utföra.

Troligen blir utvecklingen liknande det som har skett med programmering mot trådar. Genom Win32 API finns idag möjligheter att fullt utnyttja Windows trådmodell men det utnyttjas av ytterst få utvecklare. Då är det nog vanligare att man i t.ex. ett användargränssnitt använder .NET för att starta en aktivitet i bakgrunden, men egentligen så behöver man inte veta något om trådar utan trådhanteringen sker helt dolt under ytan.

Under 2000-talet har jag själv mestadels jobbat med BizTalk och SharePoint och då har trådproblematiken i den kod som utvecklaren själv skriver inte varit någon stor fråga (om man bortser från användning av global statiska data). Däremot har det vid flera tillfällen varit diskussioner kring hur många och när trådar allokeras i COM+, BizTalk och SharePoint. För det är nämligen viktigt att att ta hänsyn till trådhanteringen hos underliggande system för att få en korrekt lösning, men det betyder inte att du själv måste hantera trådarna när du programmerar.

I vår TechDays sessions (SharePoint Workflows - experiences from the field) kommer vi att komma in på hur man bör ta hänsyn till egenskaper hos SharePoint tråd-pool för workflows när man designar sin lösning, men man behöver inte komma i direkt kontakt med trådprogrammering när man kodar lösningen mot SharePoint.

Så sammanfattningsvis är min förhoppning att man i framtiden inte kommer behöva bry sig så mycket om det finns 1 eller 256 kärnor utan det kan skötas av de underliggande systemet, precis som hanteringen av trådar fungerar idag.

/Mattias

Under våra TechDays förberedelser har Daniel och jag använt oss av en publik VPC image från MSDN. Den innehåller Windows SharePoint Services 3.0 SP1 och Visual Studio 2008, det enda vi har lagt på för att skapa våra demos är VSeWSS 1.3 CTP.

Här är länken till den VPC image vi använde: Windows SharePoint Services 3.0 SP1 Developer Evaluation VPC Image. Det är 1,8 GB att ladda ner och expanderad blir den ca 5,5 GB.

Vore det bättre om den  var en installation av Microsoft Office SharePoint Server 2007 Enterprise Edition? Kanske eller kanske inte! En av de bästa sakerna med denna image är just att den är liten och snabb, och om du drar in hela MOSS så kommer fler tjänster vara startade och mer minne krävas. Jag är nöjd med den som den är!

En brist i denna image är att den är installerad som en workgroup och inte som en egen domän. Det gör att man får problem med vissa saker, tex. att använda DirectorySearcher och mail-attribut i AD.

Använder du ljudinspelningsfunktionen i din Windows-telefon? Har du svårt att hitta bland dina inspelningar? Då är (kanske) svaret Microsoft Recite!

Microsoft Recite är en add-on applikation till Windows Mobile 6 som låter dig spela in meddelanden och sedan söka på dem med hjälp av röstigenkänning.

Efter att ha testat detta lite måste jag säga att sökningen funkar väldigt bra!

Steg 1 – Spela in Steg 2 – Spela upp dina inspelningar Steg 3 – Sök efter inspelning
Klicka på Remember så börjar inspelningen. Skärmen animerar så vackert under inspelningen :-)


clip_image004
En lista med alla inspelningar visas, med datum och längd.




clip_image008
Klicka på Search, säg en eller ett par nyckelord och klicka på Finish.

Microsoft Recite söker efter ljud i dina inspelningarna som liknar nyckelorden och visar en resultatlista.

clip_image006clip_image008 

På deras blog finns två demos: Demo (2 min) och Demo (6 min). Den korta visar är en snabb översikt medan den längre är lite mer komplett, men de visar samma funktioner!

Jag har tidigare varit en ganska flitig användare av inspelningsfunktionen på min telefon men eftersom allt bara heter Inspelning1, Inspelning2, …, Inspelning 123 (och Inspelning123 visas mellan Inspelning1 och Inspelning2 i listan :-) så slutade jag använda det. Med Microsoft Recite får man i alla fall datum, tid och längd

Den största bristen jag hittills har hittat är att jag inte kan använda touch-gränssnittet när listan över alla inspelningar visas, dvs. jag kan inte byta vald inspelning, klicka på Play eller Delete på skärmen utan måste använda knapparna på telefonen för detta. Förhoppningsvis är detta något som de skulle kunna fixa, för det är väldigt irriterande när man ALDRIG annars använder knapparna utan bara klickar på skärmen.

Jag tycker att Du ska testa detta, om inte annat så är det lite cool teknologi.

/Mattias

På TechDays kommer jag och Daniel Karlsson från Connecta att köra en session som heter SharePoint Workflows – experiences from the field.  Som rubriken antyder så handlar det om att bygga arbetsflöden i SharePoint och vi pratar om hur vi tror att man ska utnyttja de funktioner som finns i SharePoint och Visual Studio.

Vår session hålls onsdagen den 18 mars kl 10.45, välkommen!

image 

/Mattias

I admit it, I'm not at the front of the technology curve. Why? I just recently learned about Live Mesh and I got really impressed (have I been hiding under a rock?, no I've been on paternal leave for six months :-). When SkyDrive (part of the Live offering) was launched I tried it with a few files but didn't really see what I would use it for. It was storage on the web without a simple interface; to edit a file I needed to download it, edit it and upload it.

The experience with Live Mesh is completely different from SkyDrive, at least when you install the software client on your device. Live Mesh folders appear on my Desktop as normal folders and files in them can be edited just like any other file on my disk. And when a change is made to a file that change is synchronized across all connected devices as well as being available through the web client. In the future I will even be able to synchronize files with my smartphone running Windows Mobile, cool!

Tonight my wife and I spent an hour trying to figure out how we should use Live Mesh to collaborate. We installed the client on her laptop and I gave her access to one of my mesh folders and then we tried creating and updating a few files to see how the changes were synchronized. Our test document was a shopping list, as good as any test...

In the near future I see us using Live Mesh when we create an application for a building permit, we want to extend our house some. As the application for this building permit is completely web based (e-government you know) we need to collect drawings and other documents before submitting the application, and what better place than Live Mesh to do this? We will both have access to the same files and we can both contribute to the application.

If I like Live Mesh so much why have I mentioned Groove in the title? Groove is also a network-based disk drive used to share folders and files, which it has in common with Live Mesh. However, Groove differs from Live Mesh in that its purpose being much more focused on collaboration between a number of people within the same company. To me the two biggest advantages of using Groove over Live Mesh are: automatic synchronization of updates in Office documents if several people have updated the same document and ability to synchronize the content of SharePoint document libraries.

I see Live Mesh an an important part of Microsoft’s vision for cloud computing; data stored on a local device is (almost) simultaneous accessible on other device and in the cloud. To me this represents a case where the vision of "software plus services" shows its strength. The service are the folders and files in the mesh and the software is the application on the device. The service can be accessed through a web interface but the software part enhances the experience beyond the simple collaboration scenarios of SkyDrive and enables much better and cooler scenarios. So the software is not a requirement for accessing the service, but it provides a richer experience.

Currently Live Mesh is only supported in a selected number of countries and it has the status of being a Tech Preview.

Microsoft Research has released a tool that analyze all the pictures in a folder, picks the "most interesting" ones and makes a blended collage. You can download a trial version at http://research.microsoft.com/AutoCollage/ that runs for 30 days, then you have to buy a license from the online store.

I have tried this tool for an hour and I think AutoCollage does a great job of creating a collage which can be used to share highlights from an event; wedding, vacation, weekend in Stockholm, etc. I don't primarily see these collages as something you print and put in an album (but perhaps it could be used as a cover page to an album), more probably it will be useful for digitally sharing your experience with friends and family. But perhaps printing them big and use as banners is one possible usage.

AutoCollage is a first release and may not have every feature you wish for but it does a good enough job for me.

Below is an example of a collage created using some images from my hobby (bird photography), an MS event and some private pictures. Note that AutoCollage takes into consideration the shapes of flower and makes an irregular crop. It also blends the lighter parts of the boys head and the wedding ring.

image

The roadmap for BizTalk Server has been updated with details about BizTalk Server 2009 (previously known as BizTalk Server 2006 R3). Some highlight are:

  • Support for the latest and greatest development platform; Windows Server 2008, Visual Studio 2008 SP1, SQL Server 2008 and the .NET Framework 3.5 SP1. It also adds support form virtualization through Hyper-V.
  • Extends the developer experience by adding support for Team Foundation Server (TFS).
  • Enhanced support for SOA and Web Services; UDDI 3.0 registry, ESB Guidance 2.0, WCF support for WebSphere MQ
  • New LOB adapters for Oracle E-Business Suites and SQL Server and updates for existing adapters.
  • EDI and AS2 support will be enhanced along with updates to the SWIF. RFID support will also be extended.

Even though future versions of BizTalk (after the 2009 version) will add support for Windows Workflow Foundation (WF) it is clearly stated that Microsoft is "committed to continued support for BizTalk Server’s XLANG orchestration technology".

Follow this link to go directly to news about the future releases: http://www.microsoft.com/biztalk/en/us/roadmap.aspx#WhereWereGoing

More Posts Next page »
 
Page view tracker