Chris’s SharePoint Reflections

Just another weblog

  • Chris Zhong

    IT consultant Australia

  • Advertisements

Search Query TotalRowsExactMinimum property

Posted by chrissyz on February 13, 2009

When we are coding against MOSS Search API, we use totalRows property to get the total search results from the search engine. However, why sometimes we found the totalRows number returned is not accurate. Why did that happen? And how could we fix that?

The reason for that is totalRows only give you an estimate result. It is very expensive to get a specific number due to the security trimming and search algorithms logic in SharePoint search. The trick is this property ‘TotalRowsExactMinimum’. It instructs the SharePoint search engine as to how accurate the TotalRows should be. It tells SharePoint the number of minimum hits that must be included in the result. The default value of it is 50. It is used in conjunction with totalRows. If you have more than 50 search results and you use TotalRows property with no modification of TotalRowsExactMinimum property, it will stop displaying further pages in the search results even though there are more records. Once you set the ‘TotalRowsExactMinimum’ more than the total results you estimated to return, Search engine will return the accurate total number. However, the higher you set ‘TotalRowsExactMinimum’, the more negative impact you will have on performance. Here is a very good blog gives you details explanation of how ‘TotalRowsExactMinimum” works.


Posted in Search | Tagged: | Leave a Comment »

Ghosted and unghosted in SharePoint

Posted by chrissyz on February 9, 2009

One of the most common problems we encountered in SharePoint solution deployment is: after we deployed the wsp file successfully to the farm, we found some pages got 404 page not found error, or they didn’t reflect the latest change or fix we put in our .wsp file. Why?

 OK, the most possible reason for that is the good old ghosting issue. Before we dive any further, let’s explain some fundamental concepts here.

Unghosted == customized. It happens when you customized a WSS/MOSS2007 site in SharePoint designer, or you add custom field to Doc Library or you customized a site through UI and save it as a site template and then create sites using that template. When you unghost a page, a customized version of it was saved in the content database. So next time when you request for the page, SPVirtualPathProvide will tell SharePoint that the page has been customized. Then SharePoint will retrieve the customized version of the page from the content database.

Ghosted= uncustomized. It means the site definition pages have not been customized and the pages in your site definition run directly from the file systems on your web server. When a page instance is initially provisioned from a page template, WSS doesn’t need to store a copy of it in the content database because WSS can load the page template from the file system of the web server and use it to progress any request for an uncustomized page instance. Therefore, when you request for a ghosted page, SharePoint uses a page template loaded into memory from the file system of the WFE. It eliminated the need to transfer the content of a page definition file from the SQL server computer with content database to the WFE.

Now, come to our initial problem. Woops, before that, I just need to make sure everyone understand the concept of solution deployment as well. What is solution deployment? Ok, you packaged the whole solution from Visual studio and produce a .wsp file. Then you deploy the .wsp file to your farm using STSADM command. A .wsp file is actually a .cab file. It contains all your files (master pages, page layouts, css, images, features, etc), your assemblies (web parts, web controls, event handlers, etc) and xml files that tell where to drop these things in the WFE. Will it drop anything into the content database? Absolute not. We should all bear in mind that SharePoint solution deployment only have impact on File Systems in WFE. It won’t touch SharePoint content database and configuration database. OK now we can finally go back to our original question. When you perform another solution deployment after your initial deployment (doesn’t matter it is re-tract and re-deployment or upgrade), you put all your new files/ fix into the file system. But if you have any unghosted (customized) Page, they still go through the content database to grab the customized version instead of going to the file system to grab the new version your just deployed.

So aha, now we know the problem. How we gonna fix it? The answer is simple, re-ghost it, changing the page from customized to un-customized.

There are two ways of doing it. One is through SharePoint UI

1. Go to Site Actions ->Site Settings ->Reset to Site definition


2. Click Reset to site definition, and enter the page URL. Or you can choose to reset all the pages in the particular site to site definition.


The other way is through SharePoint Designer 2007. It will also help you to track all the unghosted pages before and after deployment. Microsoft has two articles explaining how to track the unghosted pages and how to reset them from SharePoint designer I recommend checking if you have any unghosted pages in your current site before and after you deploy your new solution.

Posted in Deployment | Tagged: | 2 Comments »

The SharePoint tools we love…

Posted by chrissyz on January 30, 2009

In my previous post, I introduced a few development tools that essential for SharePoint development. This time, I will introduce a couple of add-ons. All developers, it is not necessary to have them, but for me, they are like these little cherries on the cake.:)

  • SPDisposeCheck  Get it while it is hot. 🙂 Microsoft’s latest release. It checks the assemblies that use SharePoint API and provide assistance in correctly disposing certain SharePoint Objects like SPSite and SPWeb. It will help us to follow the memory management best practice when coding against SharePoint API with IDisposable Objects and avoid unnecessary memory leak in the code.
  • SharePoint Manager 2007 An excellent SharePoint object model explorer and management utility. It enables you to browser every site in your local farm and view and change every property. You can also enable/disable features through it.
  • SPTraceView Nice tool for trouble shooting SharePoint. It processes all sharepoint diagnostic tracing in real time (ULS tracing) and notify you using a balloon-style mesages in the tray. Especially when it comes to solution deployment time
  • Application Pool Recycle Utility A small tool providing quick access to common IIS tasks which are useful on SharePoint development box.
  • SharePoint Search Service Tool It is bascially a rich client for the Sharepoint Search.asmx. Very useful to help you build complex search queries. It is actually a You can manipulate the scope and managed properties through the UI instead of going into SSP. This tool can also be used for troubleshooting
  • U2U CAML Builder No need to say how important this tool in our daily work. It also reminds me my very good friend Patrick Tisseghem as well. Patrick, we miss you!
  • WssAnalyzeFeatures Small tool allows to verify if the feature definition files for all installed features are present on the file system. It also help you to verify the features used in the site collections and sites are installed on the server.
  • The last but not the least Microsoft Best practices Analyzer for WSS and MOSS  Do a health check for your SharePoint farm, is that your new year resolution?:)

Posted in Uncategorized | Leave a Comment »

SharePoint Performance Guide

Posted by chrissyz on January 19, 2009

Performance always attracts people’s attention (End user especially). Here are some recommendations/trouble shootings for SharePoint sites performance issues.

Firstly, let me explain two fundamental concepts in any website’s performance.

Throughput: In Wikipedia, the throughput is the average rate of successful message delivery over a communication channel. Get it? J My “customer-understandable” interpretation of that is how many pages can a system serves over standard unit of time. Be aware the difference of typical and peak user load. Typical user load means average requests over standard unit of time. As for peak, you need to take concurrency into consideration. The rule of thumb for planning will be: plan for peak, assuming 10% concurrency.

Latency: a time delay between the moment something is initiated and the moment its first effect begins. My interpretation is how fast the page loaded. There are three factors that have impact on latency:

·         Server processing: SQL processing, number of SQL round trip, AJAX processing, security trimming etc.

·         Client processing: JavaScript, CSS, AJAX request, HTML load, Client machine specifications etc.

·         Wire transfer : bandwidth, size of download, etc

Suggestions for poor throughput:

·         Check your SQL performance, like CPU utilization, how heavy is the load etc. Always use SQL best practice for performance. Microsoft has a white paper provides key recommendations and best practice to help you to plan and monitor your SQL Server Storage requirements to support optimal performance

·         Make sure there are no conflicts in asynchronous operations and timer jobs. For example, you are not going to run 50 custom jobs all at 2am in the morning. 🙂

·         Carefully plan for your site hierarchy, site content and deployment. Every time you create a web application, you will lose 56M memory before you start loading anything. Therefore, you want to try to minimize the number of web applications and application pools and also limit the number of Shared Service provider.

·         Check custom code. The downside for writing custom web parts and event handlers in SharePoint is the sacrifice of performance if handled without caution. Developers need to write efficient code like creating and destroying SharePoint objects, monitoring SOAP and database connections and round trips, optimizing how much XML you use etc.

·         Looks for hardware/network components configuration error.


Suggestions for poor latency:

·         The number one killer for latency is custom web part. Watch for SQL round trips, unnecessary data, excessive client side scripting.

·         Check for page payload. OOTB, the main page download size should be around 200kb and shouldn’t be significant higher. We will try to use page compression where possible. For example, you have the option to make CORE.JS available on Edit mode for performance improvement.

·         Using Caching strategy. You can turn on BLOB and Output catching. There is an article on Technet listing all SharePoint caching options:   However, be careful that catching could actually make performance worse if handled improperly as it can take up memory and processor time.


Besides the above ones, there are some other general suggestions towards improving SharePoint site performance.

·         Recommend 64 bit for back end services which can leverage additional addressable memory, like database server, Index server.

·         Using server farm and have dedicate roles for each single server

·         Reduce the number of unghosted pages. Unghosting reduces the system efficiency and performance as the request will have to go to the database to fetch data instead of just hitting the cache. Example of this is creating site definitions are much more efficient than using site templates created through the UI.

Finally, there are a couple of testing tools which can help you trouble shooting:

·         Visual Studio Team System 2008 Test Edition

·         SharePoint Test data load (WSSDW.exe) is a native Microsoft tool that can be used to perform SharePoint load testing. The tool populates data for testing deployments of MOSS 2007 and is a command-line executable program that accepts an XML configuration file that specifies the objects to be populated.

·         Microsoft Operation Manager


Posted in Performance | Tagged: | 1 Comment »

Choose your Enterprise Search solution wisely

Posted by chrissyz on December 6, 2008

In the whole SharePoint technology family, Search is one of my favorites. J Enterprise Search plays more and more important role in the organizations. In the world of business, Search isn’t just about looking for information, it is about finding the content and applying the knowledge you gather and using it to benefit the business. It is about real people needing the right tools to help them get their jobs done. When you look from this perspective, you will understand the search experience you have on Internet can’t really satisfy the enterprise level requirement.

 The following are the key questions for you to consider before you implement search solution:

Ø  What sort of search solution do they after: web, desktop, Intranet

Ø  Do you want a search alone product or an Enterprise portal

Ø  What’s their UI requirement, result presentation

Ø  What’s your Enterprise Content sources

Ø  Security requirements

Ø  Do you need people search or LOB search

Let’s have a look at what Microsoft has offered lately:


Microsoft Search Server 2008 Express

Microsoft Search Server 2008

Microsoft Office SharePoint Server 2007

Search Center

˜ ˜

˜ Y

˜Y ˜

No Preset Document Limits


Extensible Search Experience


˜Y ˜

Relevance Tuning

   y ˜ ˜



Continuous Propagation Indexing




Indexing Connectors




Federated Search Connectors




Security Trimmed Results




Unified Administration Dashboard




Query and Results Reporting




Streamlined Installation




High Availability and Load Balancing




People and Expertise Searching



Business Data Catalog



SharePoint Productivity Infrastructure




I like to high light some key features in the MOSS 2007 Search that might makes a difference:

·         Relevance

Bear in mind that Enterprise Search is different from Internet Search in the link structure, cross-site hierarchy and security.  The Enterprise search algorithm is tuned for Enterprise content. It gets the most relevant results quickly. Meanwhile, the indexing engine used for all MS applications is from the common code base. This enables common functionality and extensibility between the applications that use it.


·         Integration

From integration point of view, MOSS 2007 Search is exposed as an XML web service which enables deep integration with office applications. Users can expose enterprise level search functionality from within their own office applications like Word, Excel and PowerPoint by displaying custom task pane or document information panel (DIP).


·         Comprehensiveness

Where users do have unobstructed access to structured data, differences in the search interface, syntax, and query methods can result in challenges both during the search for information and when interpreting results. MOSS 2007 provides a common Search framework, regardless of the information source, and make sure that the interface allows casual users to have easy access to complex data sets.


Ø  Effectively Search unstructured data

Although people generally have access to unstructured data, the process of finding it is often inefficient, with files in multiple locations (for example, multiple file shares containing duplicate copies and different versions of documents). MOSS 2007 can search all repositories across your enterprise (Windows File shares, Exchange Public Folder, Lotus Notes database, web content); It also extensible to include all types of files and to custom repositories.


Ø  Search structured data

Many organizations lock down much of their structured data, for fear of unauthorized users seeing more than they should — resulting in users being deprived of information that could be useful to them. Using MOSS 2007 and the Business Data Catalog it will be possible to index all the structured data stored in LOB like CRM, ERP, SAP and other databases and expose the data within the search results. This blending of structured data and unstructured data makes finding the right information easier and faster. Using the BDC, you have generic, reusable components in the form of the Business Data Web Parts. These components use the metadata repository to go out to the various business applications across the organization, retrieve the needed data, and present it in a single place. Also, this happens without the need to write code or compile binaries; all the information SharePoint needs to connect to the business application is stored in XML format in the metadata repository.


Ø  Knowledge Interchange  (People Search)

Getting a job done involves working with the right people, so it is important to find subject matter experts based on their knowledge and contacts. It is often difficult to find the specific experts within the company and this causes wasted time and effort in duplication of efforts. MOSS2007 enables intranet users to easily search over people and area of expertise within the enterprise. This ability to make connections is critical to improve stuff effectiveness in large enterprise environment. Opt for an integrated solution, whereby the user can easily make good use of real-time communications, to build relationships such as knowledge networks and project teams

·         Security

Look for solutions that provide custom security trimming, as well as standard features to help protect corporate information from unauthorized access. Find out how granular the administrative controls are and check for customizable interfaces, scalability, and extensibility

Ø  Only provide the result the user would allow to see

Search in MOSS 2007 provides query time security trimming and support pluggable authentication for content in WSS/MOSS site


Ø  Easy security management

Administrators can create user roles that determine the kind of information that can be viewed by users during a search. This access control can be broad or granular as defined by the corporation. All of these tasks are administered through the Central Administration and SharePoint Service Portal interfaces, making security administration more usable and efficient.


·         Extensibility and scalability

There are several ways in MOSS 2007 to customize content. The search center interface can be easily branded to reflect the identity of your organization visually and additional tab can be put in place to reflect the difference variations of the users searched most often. Familiar look and filter the users and provide quick access to a specific application, database or Directory anyway in your enterprise. By adding search enabled web part to the personalization template provide by SP, query result is only relevant for each individual user. And the Search Admin API and Query API allows developers develop custom search application to cater to meet specific business requirement throughout enterprise


Posted in Search | Tagged: | 2 Comments »

Make your InfoPath investment worthwhile- Part2 Integrate InfoPath with SharePoint

Posted by chrissyz on October 10, 2008


Here’re a few popular places where you can employ InfoPath forms for enterprise content management in SharePoint Server 2007:

·         Form Library

One of the ways you can use InfoPath with SharePoint is by creating a Form library on your SharePoint site. The InfoPath form library is the main integration point between WSS and InfoPath. All the documents stored within it are based on a specific InfoPath form template.


Ø  Quick form development (reference part 1)

Ø  Property promotion and demotion – Not get schema validated though

Ø  User has the flexibility of working with documents in their native client application or online through browser interface. Properties easily bound into document and visible/editable offline.

Ø  Lookup data can be brought from simple xml file to any LOB applications and databases.


Ø  Direct communication from a web form to a database is not supported. If you want the forms data to be saved to a database, the InfoPath client has to be installed on your computer. Or you’d have to construct a web service, which InfoPath can use indirectly communicate with the database.

Ø  The data source for lookup can’t be cross domain

Ø  Form service is hard to deploy a standard dev-test- production promotion deployment in an automated fashion. It is almost impossible to automatically publish the forms to a different environment without manual process

  • Document Information Panel (DIP)

A document information panel is a form that is displayed within the client application, and contains fields for the document metadata. .


Ø  Enable users to specify all the properties on a document at once, in one place, at any point when they are working without having to leave the Office client application

Ø  For SharePoint documents – 2007 Office client application auto generate the DIP based on the metadata schema of the content type assigned to the document

Ø  For document stored in WSS- the values are promoted back to the document library as columns. Users can edit document column values either at the Windows SharePoint Services 3.0 document library level, or from within the Office system client application for the document

Ø  User can have same DIP template for multiple office applications

Ø  User can either create DIP through MOSS 2007 interface or through InfoPath Client


Ø  Office 2007 only (Word, Excel, PowerPoint)

Ø  InfoPath client need to be installed on the machine

Ø  DIP template with restricted security will not work. You have to provide Domain or Full Trust Security to DIP form template

Ø  Can have code behind DIP but the deployment process is not that straight forward


·         Workflow.


Ø  Browser enabled InfoPath form hosted in custom .aspx page

Ø  Custom workflow design in SPD or VSTO

Ø  Browser enabled view for mobile device

Ø  Driven by column value (Two way promotion, demotion)

Ø  Information Right Management. IRF protect for both form template and form content  (smart client only)

Ø  Digital Signature.


Ø  Hard to debug

Ø  Can’t handle very complex scenarios, need to incorporate with BizTalk

If you are putting together an enterprise content management solution in Office SharePoint Server, and you’d like your user to be able to interact with your custom forms in the client application and the browser, it might be worth your while to take a look at InfoPath 2007 and Office Forms Services.




Posted in Office Business Application | Tagged: | Leave a Comment »

Make your InfoPath investment worthwhile – Part 1 Why use InfoPath

Posted by chrissyz on October 6, 2008

In Microsoft office suite, the trend is:

·         Document-> word

·         Spreadsheet-> Excel

·         Forms-> InfoPath

InfoPath is designed for efficient forms management and becoming more mature. It is now a great idea for organizations to use InfoPath 2007 for their form development.

The strong points of InfoPath:

1.       Build on Xml, easy for organization to reuse data and connect to LOB

The data stored in InfoPath can be easily separated from the form and reformatted or reused in a variety of ways. This enables form designer to integrate form data into existing business process. For example, look at the use the form in SharePoint. InfoPath’s views and formatting elements are self-contained in the XSN file, which makes the InfoPath form very portable. On the other hand, if you use SP Designer to design a form in SharePoint library and submit it to a list item, the forms used here are very much tied to the lists they depend on, thus, are not very portable.


2.       Rapidly develop forms

InfoPath’s OOTB drag and drop support for form controls, table layouts etc allow the power user create a flexible form that is designed to accommodate the users. However, InfoPath does not support the following advanced scenarios like: tabs, custom AJAX/DHTML, multiple/nested forms. Meanwhile, InfoPath has a lot of features like rules, formulas, data validation, data connections, conditional formatting etc, which makes most form development does not need code. It out-weighted other form designing tools on this point.

As for developer experience, InfoPath2007 has strong capabilities allowing developers to efficiently develop and deploy form solutions. It has new object model which is based on .NET 2.0 and incorporate with System.xml. The code is written in common develop platforms (VSTO, VSTA). The coding experience is much more familiar and handy.


3.       Form services  VS Smart Client

The core concept in 2007 release is “design once”. It means you only need to design one form and it will work on both the smart client and form services.  You only need to compile once, deploy once, and send customer one URL, and InfoPath will work for them whether or not they have InfoPath.

An InfoPath form can be opened in:

1) Any browser (e.g. IE, Firefox, Safar etc.)

2) Desktop App


Most of the features are still available in both smart client and form services like most controls, business logic (rules, data validation, conditional formatting), new object model etc.  However, you can optimize for Desktop, but you cannot optimize for a specific browser or an environment. This is a limitation with any form tools which support variety of tools. The choice of controls is limited as well. The following table is a comparison between form services & smart client


InfoPath Form Services

InfoPath 2007 Smart Client


It support cross platform like (Unix/Linux.)

It doesn’t support 


Don’t require InfoPath Installed in all User Machine

Required to have InfoPath Installed in all User Machine


Form accessible through web browser.

Form accessible through Office InfoPath 2007


Browser form relies on the server for a variety of form processing operations, require more communication to exchange data between the browser and the form server

InfoPath client doesn’t need to communicate with the form server as frequently. This is because the InfoPath client processes most forms locally on the user’s computer.


Does not support all features of InfoPath2007

Like Design & Compatibility checker

It support full features


Does not support all the controls of InfoPath2007

it support full controls


As far as which method is best, it depends on your situation.  Is the InfoPath client readily deployed to all users?   If the client has Forms Server already, and they are unsure about the availability of the InfoPath client for all users, I would recommend browser forms. The biggest selling point to clients for using Forms Services is that it doesn’t require a client app to be installed on users’ machines. From a client’s perspective, despite the fact that you do lose some functionality using Form Services, allowing the end-user to view forms through a browser far out-weighs any Form Services limitations. I have found the limitations in Forms Services to be minimal. You still get the majority of the OOTB conditional formatting, field validation and submit functionality.


4.       Automate data-driven business process

InfoPath 2007 has a very deep integration with the rest of MS office suite, especially SharePoint and Outlook. For example, you can integrate forms in outlook and promote fields and properties in Outlook folder. As for SharePoint, InfoPath can be used in workflow, form library, publishing content type, archiving, document information panel etc. I will talk more about it in the second part.

Posted in Office Business Application | Tagged: | 1 Comment »

Deploy Master Page and Page layout as a feature

Posted by chrissyz on September 24, 2008


The following is the detailed the instructions of how to deploy Master Page and Custom Page Layout together


1.       The following is the directory structure which I suggest when creating your own features


       2.       Under the PageLayouts folder you will see two files:

·         MoscowLayout.aspx: this page is the custom page layout you created

·         MoscowLayout.xml: this is the manifest files that identifies your custom page layout


               You can put as much as custom page layout pages as you want in this folder, but you only need

               one manifest file


3.       The content of MoscowLayout.xml should be looks like:


<Elements xmlns=”” >

                <Module Name =”MOSCOWPageLayouts” Url =”_catalogs/masterpage”

                                 Path =”PageLayouts” RootWebOnly =”TRUE”>

                                <File Url =”MoscowLayout.aspx” Type =”GhostableInLibrary”>

                                                <Property Name =”Title” Value=”XXX”/>

                                                <Property Name =”MasterPageDescription” Value=”XXX”/>

                                                <Property Name =”ContentType” Value =”$Resources:cmscore,contenttype_pagelayout_name;”/>

                                                <Property Name=”PublishingPreviewImage” Value =”~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;/Preview Images/ArticleLeft.png, ~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;/Preview Images/ArticleLeft.png”/>






 Module:   indicate to SharePoint the location of the aspx pages. MoscowLayout.aspx is part of your feature and must be copied along with all of the other parts to the features folder. During the activation of your feature, it will be dropped in the Master Page and Page Layout gallery.


File:  defines the path to your page and the type. GhostableInLibrary tells SharePoint to create a list item to go with your file when it is added to MasterPage and Page Layout gallery.  Ghostable  is used if you are provisioning a file outside a document library


Two important properties:

ContentType:  OOTB Master Page Gallery has two content type associated with it. The value will either be master page or page layout.


Publishing AssociationConetentType: Specify ContentType to which your custom page layout is associated. The value of this one is composed of the name of your content type and the ID of content type. If this value is omitted, by default your layout will be associated with the basic ‘Page’ content type from the publishing feature


4.       You put your master page, css file into MoscowMasterPage. The wollongongmaster.xml manifest file should look like the following:


<Elements xmlns=””&gt;

                <Module Name=”MasterPages” List=”116″ Url=”_catalogs/masterpage”>

                                <File Url=”Moscow.master” Type=”GhostableInLibrary” />


                <Module Name=”WollongongStyles” Url=”Style Library” RootWebOnly =”TRUE”>

                                <File Url=”Moscow.css” Type =”GhostableInLibrary”/>




5.       Under the folder MoscowFeature, you will see Feature.xml, it will look similar to

<Feature Id=”{6EAA33DF-AD39-4a2c-B5AB-972A576D7CF4}”

                                 Title=”Moscow Branding”

                Description=”Master Page and page layouts for Moscow”



                Hidden=”FALSE” xmlns=”“>


                                <ElementFile Location=”PageLayouts\MoscowLayout.aspx”/>

                                <ElementManifest Location=”PageLayouts\MoscowLayout.xml” />

                                <ElementManifest Location =”MoscowMasterPage\wollongongmaster.xml”/>




It contains ElementManifest files for master page and page layout.


This is just an example to give you a general idea of how custom page layout should be deployed. It depends on how individual elements are structured. And install.bat file is important as well because you need to copy the files to the right location in your 12 hives.


Posted in Deployment | Tagged: | 11 Comments »

Farewell to Patrick Tisseghem

Posted by chrissyz on September 6, 2008

It is extremely sad for the passing of my dearest friend and mentor Patrick Tisseghem. I am still in shock and couldn’t believe this is real.

Patrick and I met in the sharepoint training course in Canberra and became good friends immediately since then. We talked about everything: dreams, beers, cars, lifes.. and of course SharePoint. He is charming, inspiring and down to earth. A man with integrity and true characters. He leads me not only in the adventurer of SharePoint but also in the journey of life.

He encouraged me to start this blog and also named it. (We had a couple of “disputes” about the name 🙂 ) And today, when I am writing his farewell here, I looked back fondly on those time. Patrick, thank YOU for making my journey in Sharepoint such a memorable experience and always be there for me during my highs and lows in life. No word can describe how deeply I will miss you, my dearest friend, may God be with you and may you rest in peace.

Posted in General | Tagged: | Leave a Comment »

SharePoint development tools

Posted by chrissyz on August 18, 2008

Just a show-off of my SharePoint development tool set 🙂

Must have:

·         Visual Studio 2008 + Visual Studio 2008 Extensions version 1.2

Before we use Visual Studio 2005 + Extension for WSS3.0 is because the development of Custom Web Parts, Site and list definitions etc for SharePoint is not readily available in Visual Studio 2008. Since the new WSS extension for 2008 released in June 2008 and fully support various SharePoint custom development templates, I think we can call it a day for VS2005

·         SharePoint Designer 2007

Visual Studio is great to develop custom features in SharePoint. But have you ever tried to modify a SharePoint pages in Visual Studio? SPD is great when comes to the issue of branding. It gives you great preview and all the controls SharePoint controls in a menu ready to drag & drop and use. The DataView Web Part is another great feature of SPD. It takes a short time to get a DataView Web Part on your page and linked up to a data source. Creating custom views and filtering information from/around the site simple using this feature.

·         IE Developer Toolbar

Inspect HTML source, style usage, IFRAME content, image location etc. Definitely play an important role when you have to start changing the CSS in SharePoint or need to address accessibility in your website

·         Lutz Roeder’s Reflector for .NET

No need to explain. Most developers in .NET world know this tool.

·         U2U CAML Query Builder

From U2U. A great tool for writing and firing CAML queries.  It helps you decipher CAML and do queries against your lists to see if your CAML will work. You can also save your queries in XML format and launch from your application or web parts.


·         WSPBuilder

A SharePoint Solution Package creation tool for WSS and MOSS.  The manual process of packaging our solution is: we create your own manifest.xml and DDF file and use makecab.exe for nice granular control. With this tool, WSPBuilder will automatically traverse a “12” folder structure and creates a SharePoint solution manifest.xml and the wsp file based on the files it finds. It makes SP deploying and packaging very easily.

·          Fiddler HTTP Debugger

Inspected and manipulate HTTP traffic between your browser and the server, handy for debugging web services

·         Power Shell

Write scripts to automate administration and configuration tasks. A small tip here, the next version of SharePoint STSADM will be based on Power Shell.

·         BDC Metaman

Generate BDC XML from SQL data source. The commercial version also builds definitions for web services. An alternative is baked into the MOSS SDK, but BDC Metaman will continue to be the gold standard

·         SmartPart

Another great community tool by U2U. A SmartPart is a SharePoint web part that can host any ASP.NET control. You can create your own web parts using VS.NET designer instead of coding everything by hand.

Posted in General | 7 Comments »