2006-04-28

Vad man inte bör lägga i SharePoint

Jag fick nyligen en fråga om vilka filtyper som funkar respektive inte funkar i SharePoint, och hur stora filerna kan vara rent praktiskt. Angående filstorleken kan man givetvis titta i Microsofts Capacity Planning for Windows SharePoint Servcies, men där anger de 2 GB som max – vilket jag inte tror på.

Här är en artikel som ger lite mer kött på benen och en bra sammanställning av vad man inte bör göra: What NOT to do on SharePoint.

Technorati tags:

ASP.NET 2.0 CSS-controls

Detta ska jag gräva i pronto: Microsoft släpper beta 1 av nya CSS control adapters för ASP.Net 2.0. Nu blir det enklare att bygga webbplatser med full separation mellan presentation (CSS) och innehåll (HTML), och hålla sig till web standards.

CSS friendly ASP.NET 2.0 control adapters Beta 1

Technorati tags:

2006-04-27

Designmönster

En bra källa för .Net-relaterade designmönster, eller kanske bättre att kalla dem arkitekturmönster, finns på Microsoft patterns & practices Home: Enterprise Solution Patterns Using Microsoft .NET.

Särskilt intressant för webbapplikationer och SharePoint är Chapter 3: Web Presentation Patterns:

Även Chapter 5: Distributed Systems Patterns och Chapter 6: Services Patterns är intressanta kapitel.

Technorati tags: , ,

2006-04-25

SharePoints utforskarvy och SSL

Joel Oleson har förklaringen till varför SharePoints utforskarvy ger varningen "This page contains both secure and nonsecure items" när man kör via SSL mot en plats i intranätzonen:
Utimately after staring at the code of the page in the javascript we saw that it was pulling javascript:blank.

So by adding about:blank (not http://blank) to the Intranet zone, as well as the site we were viewing it worked to prevent the mixed zone problem we were seeing and allowed the explorer view to consistently be part of the Intranet zone.
Resten av artikeln här: SSL on SharePoint and Explorer View

Technorati tags:

2006-04-24

Använd COM+ när SharePoints OM inte tillåter impersonering

Här kommer en uppföljare till min artikel Använd AppDomains när SharePoints OM inte tillåter impersonering.

Utgångspunkten är alltså att impersonering i vissa sammanhang inte fungerar med SharePoints objektmodell. Då är en alternativ metod att göra en gammal hederlig COM+ Application, som beskrivs i de här artiklarna:Technorati tags: , ,

The Beauty of SharePoint 2007

2006-04-21

Code Access Security för webpart-utvecklare

Jag hittade en gammal artikel av Jan Thielens om de vanligaste säkerhets­relaterade misstagen för den som utvecklar webparts. Innehåller en bra beskrivning av hur man konfigurerar en anpassad CAS policy file (dvs en custom trust level).

Läs artikeln här: Common Security Pitfalls for Web Part Developers.

Fler länkar om CAS:Technorati tags: , , , ,

2006-04-20

Fixa titelkolumnen i custom lists

Trött på att första kolumnen "title" i en custom list alltid är en "single line of text"? Har du inte filat på dina kunskaper om list definitions på sistone? Här är en utility som gör att till och med slutanvändare kan ställa om typen för en kolumn, utan att behöva koda CAML: Fixing SharePoint Lists Columns

Technorati tags:

SharePoint Utility Suite Release 2.5

Keith Richie levererar ny version av SharePoint Utility Suite. Ett gäng användbara verktyg, bland annat SPUserUtil. Källkod inkluderad. Snart tillgänglig via Microsofts Web Component Directory. Läs mer om detaljerna: Announcing the SharePoint Utility Suite Release 2.5

Technorati tags:

SharePoint Team Blog om MOSS Business Data Catalog

Microsoft SharePoint Teamblog har en bra artikel om den kommande Business Data Catalog, en funktion i kommande Microsoft Office SharePoint Server 2007.
The BDC is essentially a catalog of business applications [...] bringing in key data from various applications to SharePoint sites, lists, search, and user profiles.

[...]

SharePoint Server 2007 ships with four out-of-the-box Business Data Web Parts: Business Data List, Business Data Items, Business Data Related List, and Business Data Actions. These Web Parts rely on the Business Data Catalog, and their main purpose is to display business data in a portal application without the need for any programming.

[...]

customers will be able to derive even more value from the Enterprise Application Intengration (EAI) and Data Warehousing (DW) efforts they have undertaken in the past several years by putting the data into the hands of SharePoint users, so they can readily use it for collaboration, project tracking, business intelligence, and other types of portal applications.
Läs artikeln här:Microsoft SharePoint Products and Technologies Team Blog: Business Data Catalog

Technorati tags:

2006-04-18

Använd AppDomains när SharePoints OM inte tillåter impersonering

Det är lustigt hur de enklaste problem ibland kan kräva extraordinära insatser för att gå runt. SharePoints objekt­modell har ett underligt beteende – kalla det bugg eller finess – som gör att impersonering i vissa sammanhang inte fungerar för vissa metoder. Orsaken till beteendet är att SharePoint tar identiteten från HttpContext och struntar i om man har impersonerat eller ej. Detta gäller bara då koden exekverar i en webb­applikation, eller i en webpart. Konsol­applikationer eller windows­applikationer berörs inte. Så har det sett ut sen SharePoint 2003 RTM, och gäller fortfarande för SP2.

Det kan vara frustrerande när så enkel kod som SPControl.GetContextWeb(Context).Webs.Count; resulterar i att alla Readers får se inloggningsruta efter inloggningsruta, och till slut den berömda Request Access-sidan, trots att du tagit i till max och impersonerat MYSERVER\Administrator. *Pust*. Du kan i och för sig hindra inloggnings­rutorna från att visas genom att sätta CatchAccessDeniedException till false och sen fånga System.UnauthorizedAccessException och visa ditt eget felmeddelande, som beskrivs här och här, men det löser inte ursprungs­problemet.

Men vad säger Microsoft om det här? Felet är känt och noterat, men ingen åtgärd för tillfället. De skriver om det i KB 892866, och jag gillar speciellt formuleringen där de benämner buggen som "functionality":
Impersonation is not currently supported in some elements of the SharePoint Portal Server object model or in some elements of the Windows SharePoint Services object model. This functionality is being investigated for future versions of the object models.
Så långt problembeskrivning, men hur kommer man runt det?

Lösningen är helt enkelt att se till att det inte finns någon HttpContext att plocka "fel" identitet från. Ett sätt att gömma sin HttpContext är att exekvera den impersonerade koden i en annan AppDomain. Man kan säga att en AppDomain är för CLR vad en process är för Win32, fast mer lättvikt med lägre overhead. Så här går det till i grova drag.
  1. Impersonera, eller gör RevertToSelf till processkontot.
  2. Skapa en ny AppDomain.
  3. Exekvera koden (ex SPWeb.Roles[]) i din nya AppDomain.
  4. Skicka tillbaks resultat.
  5. Avsluta din AppDomain.
  6. Återgå från impersonerad identitet till rätt identitet.
Ganska enkelt på pappret, men kräver en hel hög med kod och tungan i rätt mun. Här är ett par artiklar som ger alla detaljerna. Se till att du läser kommentarerna också.Ganska mycket kodning för att komma runt en bugg, men alltid lär man sig något nytt på vägen. Den här tekniken är intressant eftersom den använder AppDomains, men det finns också andra lösningar som jag återkommer till.

Technorati tags: , ,

2006-04-15

Tips: bygg toolparts och använd befintliga webbdialoger

När du bygger webparts som kräver avancerad konfigurering, då vanliga properties inte räcker hela vägen fram, är det läge att utveckla en ToolPart.

Här är ett par tips för dina toolparts:
Technorati tags: , ,

TraceInfo WebPart

Svårt att debugga webparts på din produktionsserver? Bra, det ska det vara. Använd istället trace-utskrifter och Macaw TraceInfo WebPart, ett standardverktyg i lådan.

Technorati tags: , ,

Atlas i SharePoint 2007

Daniel Larson har forskat lite i kombinationen Atlas (dvs Ajax à la MS) och SharePoint 2007.
This is unofficial, and nothing that was officially endorsed by any Microsoft staff, but around the time of SharePoint Server 2007 Beta 2 (the first public beta) there should be another CTP for Atlas which should support SharePoint implementations. The biggest news is that we'll be able to use Atlas WebPart technology, in which our WebParts will run as Ajax parts without any special implementation in the WebPart. It will run just like the UpdatePanel examples on atlas.asp.net.
Läs hela artikeln: Daniel Larson's SPBlog: Atlas in SharePoint 2007

Update! Daniel Larson har skrivit en mer utförlig artikel: Atlas Pages In SharePoint

Technorati tags: , ,

Bra presentation av Office SharePoint Server 2007

Mike Fitzmaurice slår till igen med en bra genomgång av nyheter i MOSS, en presentation från SharePoint Connections i Las Vegas: Microsoft® Office SharePoint® Server 2007.

Technorati tags:

Formulärbaserad inloggning med SharePoint 2003

SharePoint 2003 förlitar sig vanligtvis på IIS inloggningsalternativ: integrerad inloggning, basic eller certificatbaserad inloggning. Men här är en lösning för formulärbaserad inloggning med SharePoint 2003, i kombination med ISA 2004 och en tredjepartsprodukt: [SPS2003] [ISA2004] using form based authentication for Sharepoint access.

Technorati tags:

2006-04-14

Databladsvyn ger webpart-kopplingar utan post back

Fiffigt trick, det här hade jag ingen aning om: No post back Web Part connection using the DataSheet View.

Technorati tags:

Källkoden släppt för ASP.Net 2.0's inbyggda Providers

[via Scott Guthrie] Nu kan du ladda ner källkoden för inbyggda providers i ASP.Net 2.0: Membership, Role Management, Site Navigation, Session State, Profile, Web Events, och Web Part Personalization.

Ladda hem: Provider Toolkit.
The source code is released under a permissive license that allows both commercial and non-commercial re-use of the source code, and should be very useful both for people wanting to build their own custom providers (you can take our source and just tweak it if you want), or to better understand/debug our existing ones.
Dessutom finns ett gäng white papers som dokumenterar detta, skrivna av Jeff Prosise:Mer att läsa om ASP.Net Providers finns här: ASP.Net Developer Center: Provider Toolkit.

Technorati tags: ,

2006-04-11

SiteWalker traverserar rekursivt

När man skriver applikationer mot SharePoints API är det inte ovanligt att man rekursivt loopar igenom alla siter, webbar och listor, t ex för att utföra en administrativ åtgärd på alla listor av en viss typ, eller för att aggregera listinformation eller metadata för dokument.

Keith Ritchie har skrivit SiteWalker som löser denna uppgift elegant med hjälp av delegates för call back. Kod och beskrivning här: Duke SiteWalker.

Jag har själv använt SiteWalker många gånger, och bortsett från det kitchiga namnet så är exempelapplikationen Duke SiteWalker en bra demo på hur klassen SiteWalker tillämpas.

Technorati tags: ,

App_Offline.htm

I ASP.Net 2.0 kan du tillfälligt ta en site offline genom att lägga till en fil som heter App_Offline.htm i rotkatalogen, och låta den innehålla lämpligt meddelande. Det är ett bra trick att ha i bakfickan.

Tänk då på att filen måste vara större än 512 bytes för att det ska funka ordentligt med IE6: App_Offline.htm and working around the "IE Friendly Errors" feature.

Technorati tags:

2006-04-09

Tips: hur man använder [Today] kalkylerade fält

Här är en gammal goding - ett trick för hur man kan använda [Today] i kalkylerade fält, en workaround för SharePoints "You cannot use the TODAY function in a calculated column": Using [Today] in a Calculated Formula.
It is possible to use "Today" in a function as a reference to today’s date (despite what SharePoint tells you). There is a very simple work around that doesn't involve very much effort or complexity.
Kanske inget man använder varje dag, men jag lägger upp tipset här så att jag slipper leta nästa gång jag behöver det...

Technorati tags:

Security Highlights i WSS 3.0 och MOSS 2007

SharePoint Team Blog har en ny artikel om huvudpunkterna i säkerhetsmodellen för WSS 3.0. Sammanfattningsvis kan man väl säga att Pluggability och Granularity är nyckelorden för dagen... Det ser lovande ut.

SharePoint Team Blog: Security Highlights

Technorati tags:

2006-04-08

Scott jagar Trojaner

Scott Hanselman har ett intressant inlägg om hur han manuellt spårar och dödar en trojan med hjälp av TCPView, Autoruns och ProcessExplorer: Tracking down a Trojan.

Länkar till verktygen: Technorati tags: , ,

2006-04-07

MSDN TV: introduktion till kommande WSS och MOSS

45 min video med Mike Fitzmaurice, developer evangelist, där han visar på nyheter för utvecklare i WSS 3.0 och MOSS 2007, level 200: MSDN TV: Introduction to Upcoming SharePoint Products and Technologies.

Technorati tags:

Tips: kalkylera listfält på klienten

WSS kalkylerade fält går inte att använda i lookups. Problemet blir väldigt uppenbart i kontaktlistan, där man önskar att fältet Full Name beräknas automatiskt för att sedan kunna användas i lookups från andra listor.

Denna lösning är lika enkel som graciös; kalkylera fältets värde på klientsidan med javascript och dhtml-events: SuperGeek Tip: Calculate "Full Name" on the client-side AND use it in lookups!

Technorati tags:

Tips: öppna externa länkar i nytt fönster

En av de vanligaste frågorna från nya WSS-användare är hur man ser till att länkar öppnas i nytt fönster.

Det finns många flera alternativa sätt att göra detta, t ex modifiera den centrala filen fldtypes.xml (not supported), göra en site definition och modifiera schema.xml, använda XSLT Dataview webparts i Frontpage, eller använda html-taggen <base>.

Men det enklaste tipset av alla, som dessutom kan utföras via webbgränssnittet och inte kräver någon programmering, är detta: SuperGeek Tip: Open off-site links in a new window.

Technorati tags:

2006-04-05

PDF IFilter och SQL 2005

Att installera PDF IFilter för Windows SharePoint Services är ju en ganska standardmässig åtgärd - man vill kunna fritextsöka i PDF-dokument i WSS.

Men om man använder SQL 2005 laddas inte osignerade IFilters per automatik. Så här gör du för att komma runt detta: Enabling unsigned IFilter’s in SQL Server 2005.

Precis som tidigare indexeras bara de dokument som läggs till WSS efter PDF-filtret installerats. Vill man få alla gamla PDF-dokumet indexerade kan man gå till Central Administration och stänga av full-text search, vänta på att full-text-katalogerna tas bort från SQL-servern, och sedan slå på full-text search igen: http://wss.collutions.com/Lists/FAQ/DispForm.aspx?ID=126.

Apropå SQL 2005, Microsoft hävdar upp till 51% prestandaförbättring med SQL 2005 i en SPS farm med två servrar front-end, vilket är en vanlig setup: SQL Server Performance Test Results.

Technorati tags: , ,

Web Content Management och layout i MOSS

Jag har inte sett så mycket info om hur Web Content Management (alltså efterföljaren till CMS) kommer att fungera tillsammans med listor, webpart-sidor och webparts i SharePoint. Det är på sätt och vis upplagt för en konceptuell krock mellan konkurrerande teknik...

Här är en artikel från SharePoint Team Blog som bringar lite klarhet i frågan: Page Anatomy.

Technorati tags:

2006-04-04

Reflector for .NET

Reflector är ett praktiskt verktyg när du behöver få reda på PublikKeyToken eller Strong Name för ett assembly, vilket behövs när du gör en .dwp-fil eller knåpar SafeControl-taggar till web.config. Mycket lättanvänt. Rekommenderas.

Laddas ner här: Lutz Roeder's Programming.NET C# VB CLR WinFX.

Technorati tags: ,

Webpart-tips: Gantt part

Har du behov av Gantt-scheman i din WSS-webb? Kolla in Teun Duynstee's Gantt Web Part.



Funkar på vilken lista som helst som har en vy med titel, start- och slutdatum. Perfekt för task-listan eller projektplaneringen. Kan dessutom rita gantt-schemat i grupperad form, förutsatt att listvyn är grupperad. Imponerande. Webpartinställningarna är ganska "råa", men det kan man leva med när det är gratis.

Technorati tags: ,

Visual Studio 2005 + MSBee ==> .Net 1.1 webparts!

Nu har MSBuild Team släppt Power Toys for Visual Studio i beta, vilket inkluderar ett verktyg som låter VS2005 kompilera mot CLR 1.1: MSBuild Extras – Toolkit for .NET 1.1 (MSBee).

Dessutom har Carlos Segura gjort en VS2005 Web Part Project template.

Summa: Använd Visual Studio 2005, MSBee och projektmallen för att göra .Net 1.1 webparts! Jaha, då var det väl dags att avinstallera VS2003 för gott.

Technorati tags: , ,

2006-04-03

Office System preview site

Microsoft har lättat på locket i lite mer officiella termer med 2007 Microsoft Office System preview site: http://www.microsoft.com/office/preview.

Genväg till sidorna om SharePoint: För den som är sugen på 40+ sidor översiktlig genomgång kan jag rekommendera SharePoint Server Evaluation Guide.

Technorati tags: ,

2006-04-02

Office 2007 håller tidsschemat

Det ryktades att Office 2007 skulle bli försenat pga att Vista blev försenat. Microsoft dementerar detta. Läs också Doug Mahughs kommentar. Det verkar alltså som att Office 2007 kommer att finnas tillgängligt i oktober 2006 för alla med volymavtal.

Technorati tags:

2006-04-01

MSDN Magazine HTML Help Downloads

[Via Serge] MSDN Magazine finns som .chm-filer. Kan ju vara praktiskt när man letar inte kan vänta på att senaste pappersversionen anländer: MSDN Magazine HTML Help Downloads.

Content Types i SharePoint

En välkommen nygammal funktion i SharePoint är Content Types. Den första versionen av SharePoint Portal (SPS 2001) hade faktiskt en liknande funktion - dokumentprofiler - men de försvann tyvärr i WSS/SPS 2003. Kul att se att dokumenthanteringsfunktionerna från gamla tider kommer tillbaks i ny och förbättrad form.

Martin Kearn har skrivit en bra artikel om Content Types och dokumenthantering: What are Content Types?

Technorati tags: