Thursday, December 02, 2004

SharePoint Tools Galore

I noticed that Tariq has created an overview of tools for SharePoint, so I'm trying to complete it with some more tools:

SharePoint toolsuites
  • Coras workplace suiteSuite with rollup webparts (for news,documents,tasks,...), navigation controls and full language localization (This is way cool...)

  • Syntergy Provide lots of modules such as replication technologies for SharePoint, bulkloader, audit for SharePoint,...


  • Search
  • Entopia K-Bus for SharePoint Portal Server: Adds extra information discovery capabilities, also allows SharePoint to index Documentum, Opentext,...

  • WSS PowerSearch - The developers ofthis product also have some other nice SharePoint tools, check out PowerRecycle and PowerNav


  • Navigation and UI enhancements
  • Advis site navigator


  • Backup/Data Recovery/Antivirus
  • SharePoint document recovery tool : Free download from Stephane Cordonnier

  • McAfee Portal Shield


  • Workflow
  • NetPoint Solutions

  • Factiva:Search and workflow tools for Office 2003

  • Captaris Teamplate: This workflow toolset even adds a module for fax based workflow "RightFax Workflow wizard

  • Skelta workflow .Net

  • K2.Net

  • Nintex smartlibrary

  • Smart workflow from LMR Solutions

  • DataLan FlowBuilder



  • Records management
  • Meridio: .Net software which integrates seamlessly into SharePoint and provides records management features needed to be compliant with standards such as Sarbanes-Oxley, US DOD 5015.2 records management standards,...

  • Towersoft


  • Utilities
  • SharePoint Explorer : another free tool which you can use to explore the SharePoint object model

  • Admin report kit for SPS 2003: configuration and usage reporting tool for SPS 2003



  • Business Intelligence
  • DSP Portal Edition : Adds webparts which can display information from OLAP cubes


  • Miscellaneous
  • Brightwork: adds MSF (Microsoft Solution Framework) on top of SharePoint

  • Ratings & expert module for SharePoint
  • Wednesday, December 01, 2004

    Deja vu - the browser wars?

    A long time ago there was this little company called Netscape. It had only one application called a "browser",... But then on August 10, 1995, Netscape went public and it turned out to be the largest public IPO in Wall Street history. People started dreaming, maybe Bill dropped the ball and they already predicted the demise of Microsoft. But Microsoft reactly swiftly and this ignited the first browser wars.

    But this time it is different, although the newslines seem to be the same see Browser Wars Back On. This is not a for profit company, this is Open Source. And it looks as if Firefox is actually gaining ground... I just took a look at which browsers people are using to visit this blog. Amazing....

    1. Internet Explorer 6.x 74.2 %

    2. Mozilla Firefox 1.x 25.8 %



    Something that is however not discussed in most articles is the fact that people are not only using browsers but also news aggregators to surf the Net. Since I read a lot of blogs, I think that the majority of the time I use RSS Bandit when accessing the Internet.

    MSN Spaces

    MSN spaces is available for everybody to use,... Microsoft is apparently aiming at Blogger (also owned by Google). I just created a new MSN Spaces site, PortalGeek. I hope it will be possible to use wbloggar to create postings as well...

    SOA Revisited

    The past couple of weeks, I looked at some notes I took after watching some presentations about architecture. SOA - (Service Oriented Architecture) definitely seems to be the hype word at the moment. Well not so long ago, the hype word was web services. But I think if we take a look at Gartners hype cycle for new technology, web services seem to have hit rock bottom, or as Gartner puts it "Trough of disillusionment".

    But the hype about SOA will revive the interest in webservices because web services are one of the enablers of SOA. Web services are currently the first universally accepted interface, every software vendor or product has SOAP support. Web services allow us to define a software architecture in which the services are the core.

    A while ago, I blogged about SOA, but lets recap, what is SOA? Actually it is nothing more then a design philosophy, a philisophy which is governed by 4 tenets:
    1. Services have explicit boundaries : only interaction possible at the service boundary - e.g. Asmx webservices
    2. Services are autonomous : no assumptions about how the service is implemented, loosely coupling
    3. Services share schema & contract not objects : "pass by value" - the WSDL contains both the service and the data contract
    4. Services are policy based : policies describe the rules for interaction, transactions, security, wire protocol

    These tenets have also some technical consequences however, such as:
  • Try to avoid remoting & enterprises services at service boundaries, these are tightly coupled, component based architectures. Use .Net remoting only in very specific scenarios - for iIn process cross application domain calls and
    when you have to implement a custom wire format (For more elaborate discussions, take a look at Clemens Vasters blog). One fo the reasons you should avoid Remoting is because it uses SOAP encoding differently from web services

  • Use asmx webservices and WSE for basic policy implementations

  • Use a WDSL first approach, start from your xml schemas and then go to the class implementations
  • Sunday, November 28, 2004

    Web services discovery

    If you want to use a webservice in your .Net applications, you have to know the URL to add a webreference to it. (If you encounter a problem, take a look at Troubleshooting add web reference problems) You can set individual web references to .asmx files, but if your application uses many services, this is not very handy. To solve this Microsoft provides discovery information. Microsoft provides discovery information in 2 ways, statically with disco files and dynamically with vsdisco files. With dynamic discovery the discovery document is generated at runtime. A .disco file contains markup that specifies references to a web service's WSDL file and other DISCO documents.

    When a .vsdisco file is requested, the .NET framework analyzes the directory in which the .vsdisco file is located, as well as that directory's subdirectories and returns markup that contains references to all web services in that directory and the directory's subdirectories (It is however possible to exclude some directories from being searched).
    A vsdisco file would look this
    <?xml version="1.0" ?>
    <dynamicDiscovery xmlns="urn:schemas-dynamicdiscovery:disco.2000-03-17">
    <exclude path="_vti_cnf" />
    <exclude path="_vti_pvt" />
    <exclude path="_vti_log" />
    <exclude path="_vti_script" />
    <exclude path="_vti_txt" />
    </dynamicDiscovery>


    Dynamic discovery is however disabled by default. With the .Net framework you had to remove the comments from the following lines in your machine.config. With the .Net framework 1.1 these lines are removed from the machine.config so you have to add them yourself.
    <!--<add verb="*" path="*.vsdisco"
    type="System.Web.Services.Discovery.DiscoveryRequestHandler,
    System.Web.Services, Version=1.0.3300.0, Culture=neutral,
    PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>-->


    As you can see dynamic discovery is accomplished in ASP.NET by mapping the file name extension VSDISCO
    to an HTTP handler that scans the host directory and subdirectories for ASMX and DISCO files. For more info about http handlers definitely take a look at Using HTTP Modules and Handlers to Create Pluggable ASP.NET Components

    Saturday, November 27, 2004

    WIFI

    I was just wandering around on the net, when I found this site with WIFI spots in Montreal. But since I live in Belgium it would be nicer, to find Belgian wifi hotspots and .... surprise, there actually is.


    Is WIFI finally becoming mainstream? From personal experience I find it still not very easy to use and I actually got some problems after upgrading Windows XP to SP2. Before SP2, the connection speed switched between 1MB, 10 MB,... up untill 54 MB. Now, it just stops at 1MB and don't changes... anybody any ideas?

    Well, one thing that has changed with SP2 for the better, is that you can actually repair your connection now. If you right clicked your connection pre SP2 and clicked repair, it just stalled... now it works.

    Office 2003 development

    Most people don't consider Office as a full blown development platform on which you can build some nice solutions for your customers. With Office 2003 and Visual Studio Tools for Office you can however create some nice applications in which you can use all the features of Office 2003 such as charting (Excel), document handling (Word) and e-mail and calendaring (Outlook). In the past if you had to program in Office, you had to use VBA. With Visual Studio Tools for Office, you can now write .Net applications for Office. Is that nice or what? Unfortunately Visual Tools for Office is only available for download for MSDN subscribers.

    Links
  • OfficeZealot: Huge amount of resources for Office 2003 developers

  • Building a professional stock allocation system using Visual Studio Tools for Office

  • Smart Tag Developer Tools

  • Bring the Power of Visual Studio .NET to Business Solutions Built with Microsoft Office

  • Secure and Deploy Business Solutions with Microsoft Visual Studio Tools for Office

  • Introduction to the Office 2003 Research Services Class Library

  • Essential tools for web designers (... or wannabee web designers like me)

    The last days I had to create a prototype CMS 2002 site for a customer, unfortunately I had to do it alone this time. Normally we use professional webdesigners for creating the layout of the pages, since user interface is one of the essential parts in developing a web application (Check out Useable Information Technology). Luckily I got some nice tips about which programs you can use to create great websites. If you want to create stylesheets don't use Visual Studio .Net - it works but not very nicely - definitely use TopStyle. There is a free version available for download but the professional version is way better. Another nice tool is ColorImpact, which enables to compose nice color schemes for your pages. And of course last but not least Adobe Photoshop (... but that you all know ...)

    Wednesday, November 24, 2004

    Sketches

    I bought myself a new scanner today, so I scanned some sketches from art class and uploaded them on my other blog.

    Monday, November 22, 2004

    InfoPathHelper : add offline support for InfoPath

    Some weeks ago, I blogged about a TechNet evening in which Jelle Druyts gave a demo about how to enable InfoPath for truly offline scenarios (Musings about InfoPath). Well he has just released all the code how to implement such a scenario, take a look at InfoPathHelper: add offline support to InfoPath!

    Sunday, November 21, 2004

    Migrating to SharePoint 2003

    Both Windows SharePoint Services and SharePoint Portal are about a year old by now and customers seem to be quite eager to migrate their SharePoint 2001 servers (Also see this article - SharePoint is the number one product according to Ballmer. Since the next version of SharePoint (beta 1 expected in summer 2005) will probably not support backwards compatible document libraries this seems a wise move as well. Another reason is a migration to Windows 2003 since SharePoint 2001 is not supported on a Windows 2003 Server...

    Microsoft KB820328: "SharePoint Portal Server 2001 will not function on Windows Server 2003 because of incompatibilities between the versions of the Microsoft Web Storage System and Microsoft Internet Information Services (IIS) 6. There are currently no plans to release an update to the Web Storage System in SharePoint Portal Server 2001 to make it compatible with Windows Server 2003."

    There are some tools available to ease a migration, such as SPIN and SPOUT. SPOUT is a document library Export Tool for SharePoint. SPOUT will export the workspace document library content as an XML manifest file and the individual content files. The XML manifest files is used to describe the different objects and properties of the documents. After running, SPOUT will generate 3 files:
  • Manifest.xml : all metadata

  • Migrate_spout.log : a log file

  • An error file with the extension .err - this file should be empty after running SPOUT

  • I did some testing with SPOUT a while ago, just to get an idea how fast it would be. I ran it in a test environment with Windows 2000SP4, 512 MB RAM,SharePoint Portal Server 2001 SP2a, .Net Framework 1.1. On average I got export times between 1 and 3 secs per file with file size as the most important factor. Even when this would run twice as fast in a production environment time is still a limiting factor, exporting about 100000 files would take about 27 hours. You should also take into account the size of manifest.xml file, since XML parsing can become quite troublesome when your XML files contain a lot of data. (Tip : use Xpath queries since XMLDom manipulations can be very memory intensive, qua memory usage can run as high as 10 times the original filesize.)






     Number of filesSize manifest.xmlMBs exportedDuration
    Test 16996K42.941 sec
    Test 2154216K48.655 sec
    Test 3280396K56.81min11sec
    Test 4709982K1673min6sec

    If you want to try out some alternative tools for export and import you should definitely check out this GotDotNext workspace. Before starting a migration, take a look at the following links:
  • Technet article - migrating from SharePoint 2001

  • Migrating documents into SharePoint - tools and tips to improve performance

  • Overview SharePoint migration

  • Hotfix SPIN

  • Import problem SPIN for subsites - no hotfix available


  • Friday, November 19, 2004

    Reflector for .Net + addons

    A tool definitely worthwhile for .Net developers is Reflector for .NET . Reflector is a class browser for .NET components. It supports assembly and namespace views, type and member search, XML documentation, call and callee graphs, IL, Visual Basic, Delphi and C# decompiler, dependency trees, base type and derived type hierarchies and resource viewers. There are also some nice addons for this tool:
  • Reflector.FileDisassembler : You can use it to dump the decompiler output to files of any Reflector supported language (C#, VB.NET, Delphi). This is extremely useful if you are searching for a specific line of code as you can use VS.NET's "Find in Files" or want to convert a class from one language to another.

  • Reflector Diff - original release and Reflector Diff 0.6 Beta



  • SharePoint : Ghosted vs unghosted pages

    The concept of ghosted pages is something that you have to understand when customizing SharePoint. All items in SharePoint are by default stored in the database, but some aspx pages are not stored in the SharePoint database but on the file system, e.g. default.aspx for each site and also the search.aspx page for SharePoint Portal Server. These pages are called ghosted pages. These pages are pulled from the cache at runtime and therefore it will increase the scalability from the system since all uncustomized pages are reused accross all of the sites and there is no unnecessary data storage or retrieval.

    But these ghosted can become unghosted when they are modified with e.g. FrontPage. However FrontPage is not the only culprit, when you modify one of these pages through webfolders with notepad, then the page will also become unghosted. These unghosted pages are stored in the database. Normally if a page which is used in a site definition is changed, this change will apply to all sites created with this site definition,but if you're page is unghosted this will not happen. There is also a slight performance impact of about 10% between ghosted and unghosted pages because the files are being read from the database instead of the cached filesystem. You can check if a page has become unghosted with ghosthunter utility or by checking the vti_hasdefaultcontent field obtained through the Properties property of the SPFile object.



    There have been a lot of postings about ghosted and unghosted page and the role of Frontpage in this issue, take a look at them, they will provide more detail about for example the difference in parsing, so check them out

  • What you don't know about FrontPage can hurt you?

  • Dustin Millers response to the previous article

  • Ghosted and unghosted pages Part 1 on BlueDogLimited

  • Don't kill the messenger ...
  • Web part page + DVWP != always unghosted : nice tip for using the dataview webpart and not unghosting your page
  • Wednesday, November 17, 2004

    SharePoint development part I - Webparts

    When we think about developing on the SharePoint platform, the first thing that comes to mind is webpart development but there are actually more development tasks with SharePoint:


    1. Web part development : one of the SharePoint development topics which gets the most attention

    2. Developing with SharePoint lists : involves creating xml schema definitions, writing SharePoint Object Model code, adding your own UI

    3. Writing custom workflow: SharePoint does not provide workflow out of the box but allows you to add your own workflow through the use of eventhandlers

    4. Customizing SharePoint UI : starts from simple things like changing stylesheets, images and logos to create completely new site templates

    5. Extending and customizing SharePoint search


    In the coming weeks I will write more postings about SharePoint but in this first posting I'm going to focus on webpart development. You should approach webpart development as any other programming task.

    1. Make sure you understand the basics. A good article to start with is A developers introduction to webparts on MSDN or The definitieve hello world webpart from John Durant

    2. Think about the design, what you want to accomplish. Since webparts are basically enhanced ASP.Net server controls which live in SharePoint context, the number of options are immense. But you also have to think about the enhancements which are provided by the webpart framework. So if you want to just display data maybe think about using the dataviewwebpart for the moment and don't immediately start with a datagrid. Know the potential of connectable webparts. Definitely check out the 3 articles from Patrick Tisseghem:

    3. Developing and debugging For debugging definitely check out this posting
      Debugging Web Parts - a full explanation of the requirements Something which is also easily forgotten is that you can also force a debug from within your code with the following statement System.Diagnostics.Debugger.Break()

    4. Deploying and testing: Deploying webparts isn't that simple, but there are some nice tools out there to help you with the deployment such as InstallAssemblies. I recommend however doing all the steps manually a couple of times, this will help your understand how SharePoint works. One of the nicest tools to aid in deployment is wppackager. WPPackager will create MSIs to install the webparts. For testing your webparts you should take a look at
      Testing webparts checklist on MSDN





    More links
  • Tips for building webparts from Daniel McPherson
  • Webcast - The power of the dataviewwebpart

  • SPSFAQ customization section
  • More SharePoint customization tips :here and here
  • Server.Transfer wont work in a WebPart

  • Server configurations which may lead to web part failures
  • Tuesday, November 16, 2004

    My boss is blogging and also....

    Danny has a blog .... (Only in Dutch) and also one of the guys who is doing his work placement at Dolmen, Jurgen

    Monday, November 15, 2004

    Enterprise Library and Application blocks

    I have been using the .Net application blocks for quite a while now and it is great to see that they will have a successor in the future, check out the blog of Scott Densmore,Enterprise Library 'The Day After'.For those of you who don't know the application blocks, take a look at them. Application blocks are basically parts of code which can be freely downloaded from MSDN, they contain samples and source code so you can easily extend them. They are written with best practices in mind and are nicely documented.



    Overview application blocks
  • Exception Management application block - I have used in about every project I have done in the last couple of years. This block allows publishing of errors to the eventlog, xml files, databases without you having to write all the plumbing code. It is not even so hard to write your own exception publishers

  • Data Access application block: I use it less since I prefer the XS2 SQLdataaccessor from Sunblad

  • Aggregation application block

  • Caching application block

  • Updater application block

  • User interface process application block : looks very nice, definitely going to take a look at it when I find the time

  • Sunday, November 14, 2004

    Heathers resume blog idea

    Heather Leigh posted this . Link to her blogposting instead of sending a resume. Pretty innovative ...

    MSN Search beta

    Lots of people have already blogged about it, and I think it looks nice indeed, the new MSN Search arrived on the 11th of november. For Belgium go tohttp://beta.search.msn.be . I especially liked the "link:http//jopx.blogspot.com" search, it returned 15 results, Google only one
    :-(

    If you want to know what other people say about it, take a look at
  • MSN Search - Tisseghem

  • MSN Search Beta First Take

  • Google index double

  • New MSN Search Service

  • MSN Search Beta is now live

  • MSN Search

  • Msn Search Team are blogging

  • Microsoft Crawling Google Results For New Search Engine?