Tuesday, April 26, 2005

Fabrikam released

Picked this up from Arno Nels blog - Fabrikam has been released. For those of you who don't know it, ...

In this solutions learning platform, developers at a fictitious enterprise created solutions for common business processes. FabriKam, a furniture manufacturer with about 10,000 employees, faces business problems and challenges not unlike many of today's enterprises. Starting with a set of realistic infrastructure assumptions, FabriKam developers built six solutions and four reusable components that address FabriKam's needs in innovative ways, with extensive use of Web services, XML, integration of front-end applications and back-end systems, and full use of the Office environment with which most information workers are already familiar. The FabriKam 3.1 Solutions Learning Platform represents the essence of the efforts of FabriKam developers.

Saturday, April 23, 2005

SharePoint Document Library webpart - kick it off GotDotNet

I definitely agree with Stramits posting about the Document Library webpart - Document Library Explorer and GotDotNet : surprise it's not free sometimes. I think GotDotNet should only show webparts which are at least free to use. Off course it is not easy to keep these things off GotDotNet.

This webpart is nothing more than a marketing trick from the guys at http://www.professionalsharepoint.com/dle/ - because you can't use it without registering for a free trial. Hey,... maybe it is a good idea to start reverse engineering the code, ... (just kidding ...)

The views expressed here are personal and do not necessarily reflect the views of my employer.

Indigo on MSDN

It seems that MSDN TV is doing a series about Indigo:
  • Introduction to Indigo

  • Build services today

  • Indigo security in a nutshell

  • A must see for all solution architects...

    Modifying site definitions - changes in Onet.xml , adding AllUsersWebPart element

    All sites and areas in SharePoint Portal Server and Windows SharePoint Services are based on custom site definitions - these are all the files you can find in the 60 hive -
    C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\TEMPLATE\1033\ directory (1033 is the locale ID for English - so if you have a Portal in another language you will another number). In this directory you will find a number of directory which contain all the templates for different site and area types. For a nice overview check out Heathers blog - SharePoint site definitions - Mapping files to pages on a SharePoint sites

    One of the interesting files you will find in these directories is onet.xml - this file contains the bigger part of how your site/area will look like - common customizations for this file are
  • Specify an alternate cascading style sheet (CSS) file, JavaScript file, or ASPX header file for a site definition.

  • Modify navigation areas for the home page and list pages.

  • Add a list definition as an option to the Create page.

  • Add a document template for creating document libraries.

  • Define a configuration for a site definition, specifying the lists, modules, files, and Web Parts that are included when a site is instantiated.

  • The last option was something I wanted to try - including webparts when a site is instantiated. Basically I wanted all of the "My sites" to contain an extra webpart on the private side.
    Steps I took:
  • Write a custom webpart (and even test it, if you feel like it...)

  • Add a strong name to the webpart assembly and deploy it to the GAC

  • Deploy the webpart on the server with stsadm.exe

  • The last step is modifying onet.xml for My Site (located in the C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\TEMPLATE\1033\SPSMSITE\XML directory) - in this XML file you will find a Modules element and inside the Modules element the AllUsersWebPart element. So if you want that a webpart is added to a site/area by default you can add an extra AllUsersWebPart element
    for your custom webpart. See example

    <AllUsersWebPart WebPartZoneID="MiddleRightZone" WebPartOrder="4"><![CDATA[<WebPart
    Version=, Culture=neutral, PublicKeyToken=7f713d9ae1e786b0</Assembly><TypeName>RecentDocsWebPart.RecentDocsWebPart</TypeName><Title>Recent
    Documents Enhanced</Title><Description>Demo</Description><PartOrder>4</PartOrder><FrameType>TitleBarOnly</FrameType><AllowRemove>true</AllowRemove><AllowMinimize>true</AllowMinimize><IsVisible>true</IsVisible></WebPart>]]></AllUsersWebPart>

    This may look fairly complex, but is actually fairly easy:
  • Copy <AllUsersWebPart WebPartZoneID="MiddleRightZone" WebPartOrder="4"><![CDATA[ and ;]]></AllUsersWebPart>

  • Add the custom webpart you want to add to the site definition to a webpartpage the normal way, and then click Export

  • The previous step will generate a DWP file - this actually a XML file, just take the contents of the file and paste it between the CDATA brackets

  • Unfortunately, this didn't work for the "My Site" so I tried it for the "Community Area" template and it didn't work for existing areas but only for newly created areas. Unfortunately this doesn't even work for the "My Site", even when users access your portal for whom the "My Site" still needs to be generated. I guess it will be the easiest to just open the "My Site" in FrontPage 2003 and add the webpart this way or create code which will add the webpart from code... I guess some people will call this YASQ, Yet Another SharePoint Quirk,....

    Thursday, April 21, 2005

    RSS and SharePoint

    Interesting posting on SharePoint newsgroups from Daniel Larson - he uploaded a powerpoint and the source code for a presenation about RSS and SharePoint.

    For those of you who haven't heard about RSS - "RSS is an Xml dialect enabling syndication of content across the web. It is the internet standard for blogs, news sites, downloads, and more and is the technology behind the next big thing on the internet-syndicated communities. Syndication helps people and software communicate and interact across platforms and technologies much like Web Services, although the focus is clearly on human interaction. RSS 2.0 has become an internet standard that has a core set of functionality for syndication, and an extensible nature due to its simplicity. "

    Windows SharePoint Services - Service Pack expected

    This guy, First major change to SharePoint Service 2.0 - Service Pack 2 coming soon? , definitely seems to know more... but you can know find the actual details of what to expect in WSS SP2 on the Microsoft site. Some interesting stuff:
  • Support for IP-bound virtual servers

  • Support for advanced extranet configurations

  • Kerberos enabled by default

  • Windows SharePoint Services running on ASP.NET 2.0 (Whidbey)

  • Windows SharePoint Services support for Windows x64 editions
  • Tuesday, April 19, 2005

    Consuming stored procedures with the DataView WebPart and SharePoint

    A Data View Web Part displays a tabular representation of a filtered subset of a table on a Web Part Page. You can create data views from a large variety of data sources including databases, XML files, SharePoint lists, and so on.... These Data View Web Parts can be easily added to your Windows SharePoint Sites with FrontPage 2003.

    However when you add a connection to a database, you will see that you can only consume tables and views from SQL Server - there is however a setting in WSS which you can alter to allow your webpart to use stored procedures.First enable custom query support for Windows SharePoint Services:
  • Browse to the Windows SharePoint Services Central Administration page.

  • Under Component Configuration click on Configure data retrieval service settings.

  • Check the Enable Data Retrieval Services checkbox.

  • Check the Enable update query support checkbox.

  • Click OK.

  • For more info check out the following articles:
  • Using frontpage 2003 to design customised sites

  • Using frontpage 2003 to build XML data driven sites
  • Wednesday, April 13, 2005

    Vignette Portal 7.2 and SharePoint

    It seems that this release has all the things I actually want for SharePoint Portal Server -
  • The adoption of standards JSR 168 & WSRP - I know there is a WSRP toolkit for SharePoint on gotdotnet but never tried it ...
  • .
  • Enhanced out-of-the-box search capabilities that allow users to query a wide range of internal and external data sources - Hey SharePoint can already do this - but more control over the search engine would be nice

  • Improved personalization. - SharePoint already has some nice personalisation features - I however think that multilanguage are definitely a part of personalisation ... unfortunately SharePoint is not pretty good at multilingual scenarios

  • Improved & tightly integrated content management system. - What can I say Spark just doesn't go far enough and is more or less a hack....

  • .

    Dynamic InfoPath forms impossible

    Quite an interesting read about what happens when you try to create a pretty advanced InfoPath solution - Dynamic InfoPath Forms Impossible?

    Indigo on MSDN TV

    There is a nice video on MSDN TV about Indigo - Indigo is the managed communication stack that will ship with WinFX. It is the "V.Next" for ASP.NET Web Methods, .NET Remoting, Enterprise Services, System.Messaging, and WSE. Steve Swartz provides a brief conceptual overview of Indigo, walks through some code, and introduces you to his jackalope.

    Saturday, April 09, 2005

    Geeks rule and MBAs drool

    Great article - "Geeks rule and MBAs drool" - my favorite quotes from this quite entertaining rant:
  • If you ask me, and I'm biased, no software company can succeed unless there is a programmer at the helm. From Joel Spolsky

  • Fellow Geeks, we must strive for excellence not only in our code, but also in our interactions with Those Who Think HTML is a Programming Language. Drawing from a piece of our own wisdom literature, let us not forget the memorable words of Han Solo: Don't get cocky!

  • Free Java to .Net migration workshop

    Microsoft offers a free Java to .Net migration workshop -

    This eight part workshop contains over 15 hours of free training and provides detailed information on migrating existing applications and functionality from Java to the Microsoft .NET Framework. It includes how to map common J2SE and J2EE functionality to the equivalent .NET Framework functionality, and describes tools and techniques you can use to migrate J2SE and J2EE services to the .NET Framework. If you are a Java developer, this course is a great way to become acquainted with how to develop on and migrate applications to the .NET Framework. Each module and accompanying labs cover specific topic areas and are not dependent on each other, allowing you to choose specific modules and topics of interest. If you have questions or comments about the workshop, you can email java-net@microsoft.com.

    I'm wondering if there is also a free .Net to Java migration workshop ;-) ....

    Microsoft Exchange outsells IBM Lotus Notes

    Source Forbes - IBM in denial over Lotus Notes - "Microsoft's Exchange has clawed its way to the top of the corporate e-mail market, displacing Notes/Domino, which once dominated e-mail and was the main reason IBM paid $3.2 billion to acquire Lotus in 1995."

    Alerts in SharePoint Portal Server and Windows SharePoint Services

    SharePoint Portal Server (SPS) and Windows SharePoint Services (WSS) both have their own mechanism for alerts. Here is a listing of the differences:

    Windows SharePoint Services:
  • You an add alerts on lists, list items, document libraries and documents.

  • Alerts can only be send by e-mail

  • Alerts are managed on a site level basis - users can change their alerts by going to "Site Settings" > "My alerts on this site"

    SharePoint Portal Server:
  • You can add alerts for people, site directory, news, areas, topics, search queries, documents, and backward-compatible document libraries.

  • Alerts can be send by e-mail and are displayed in the "My alerts" webpart on the "My site" - this webpart will only list the Portal alerts and not the ones you have created in WSS

  • You can manage the alerts from "Manage my alerts" on "My site"

  • There is however another place where you can manage your alerts just got to Outlook 2003. In the menubar you will find underneath Tools > Rules and alerts .... a place where you can delete exitsting alerts or even add new alerts.

  • Alert Me: Parameters Passed to SearchAlertType.GetAlertCreationLink()

  • Managing alerts with Windows SharePoint Services

  • Overdocumented feature with SharePoint alerts

  • SharePoint Portal Server alerts not send by e-mail

    I noticed this SharePoint bug already at a couple of SharePoint deployments. Users can create alerts both on their WSS sites (on lists, document libraries) as well as on the SharePoint Portal Server (on areas, persons, searches,...). The alerts from WSS sites are send by e-mail, but the alerts from the Portal are not send, they are only visible on their My Site. When you take a look at the logfiles - you will notice the following error in SPNOTIFICATIONSERVICE.log

    02/07/05 16:00:23:047 UNK 00000000 00001204 Alert Notification could not access database. Database appears to be offline or tables are locked
    02/07/05 16:00:23:047 UNK 00000000 00001204 The notification could not be generated temporarily. Retrying(limited). Notification details:{Seed Owner=0491436a-6170-4723-8737-b057395185e9 TypeId=AlertResultNotification SeedValue=2831;1;Feb 4 2005 2:36:19:513PM Tag=21} Portal site details:{site=PORTAALSITE RZST id=9fd4be2e-db61-48e6-ba70-3bbdc00433a2} Exception information: Microsoft.SharePoint.Portal.Alerts.NotificationDataTemporarilyUnavailableException: Failed to generate notification:Alert Notification could not access database. Database appears to be offline or tables are locked ---> Microsoft.SharePoint.Portal.Alerts.SecurityAccessCheckFailedException: Tripoli Security trimmer failed and returned a null array at Microsoft.SharePoint.Portal.Alerts.x.a(PortalContext A_0, SecurityTrimmer A_1, DataTable A_2, Hashtable A_3, Boolean A_4, WindowsIdentity A_5, Byte[] A_6, Boolean[]& A_7, Int32& A_8) at Microsoft.SharePoint.Portal.Alerts.x.a(at A_0, PortalContext A_1, SecurityTrimmer A_2, DataSet& A_3, Guid A_4, WindowsIdentity A_5, Byte[] A_6) at Microsoft.SharePoint.Portal.Alerts.at.a(Guid A_0, String A_1, SqlParameter[] A_2, WindowsIdentity A_3, Byte[] A_4) at Microsoft.SharePoint.Portal.Alerts.at.a(Guid A_0, String A_1, SqlParameter[] A_2) at Microsoft.SharePoint.Portal.Alerts.j.a(String A_0, SqlParameter[] A_1) --- End of inner exception stack trace --- at Microsoft.SharePoint.Portal.Alerts.j.a(String A_0, SqlParameter[] A_1) at Microsoft.SharePoint.Portal.Alerts.NotificationTypes.a.a() at Microsoft.SharePoint.Portal.Alerts.ai.c()

    This is a bug which you can solve with a hotfix from Microsoft Product Support Services - for more information goto
    http://support.microsoft.com/default.aspx?scid=kb;en-us;834859. This hotfix will fix the API call that
    the alert service is using to read the TGGAU attribute. This hotfix really should be applied to all of your SPS machines in your environment, assuming you have more than one, but the most important one is the SPS server that has the Job component on it. You can check this from the Central Administration page by choosing the Topology manager and reviewing the assignments.

    Visual Studio 2005 Beta Experience

    "Only 16 days before the Beta Experience starts...

    Join us on the Beta Experience journey to discover the new features of Visual Studio 2005. You will receive the latest beta versions of Visual Studio 2005 Team System and SQL Server 2005, and additionally a hands-on comprehensive training project to help you get the most out of Beta 2. The Beta Experience will also ensure you stay up-to-date with Visual Studio 2005 all the way from beta until launch through the Beta Experience newsletter - bringing you expert insights, resources and local event announcements.

    The Beta Experience will be available in your region from the 25th of April."

    Find more info about Visual Studio 2005 Beta Experience

    Sunday, April 03, 2005

    New SharePoint and CMS MVPs

    It seems that there are some new MVPs out there - congrats to all of you and keep those code samples coming ;-)
  • Andrew Connell (MS CMS)

  • Patrick Tisseghem (SharePoint)

  • Jan Tielens (SharePoint)

  • P.S. The last two are both Belgians - amazing how big SharePoint is in Belgium

    SharePoint on GotdotNet

    Gotdotnet has a nice collection of SharePoint tools and code samples as well:
  • SharePoint Query Builder Tool - Windows forms based tool which allows you to connect to a portal and create search queries in a easy way.

  • Extending and enhancing the SharePoint Portal Server User Interface - Code samples
  • SharePoint List Browser/Copier Demo Application - An example of what can be done using a WinForms smart client to access SharePoint sites via SOAP.
  • Upload a file to a SharePoint library via the FrontPage RPC protocol - Example of how to upload a file to a SharePoint library via the FrontPage RPC protocol, including check-in and the setting of custom metadata.
  • SharePoint Document Library Event Handler for Parsing JPEG Images - Source code for a SharePoint document library event handler that parses JPEG images, extracts their EXIF properties, then updates entries with those properties,modifying the libraries' fields accordingly if needed.
  • What's New Web Part for SharePoint Sites -
    Source code for a Web Part that walks through an entire site using the WSS object model and returns the most recently changed entries.