How to delete “Title” column in Sharepoint Lists

“Title” column could be very annoying and confusing esp. if you don’t have any Text based columns in your List (you cannot change datatype of this column) or else while updating lists programmatically. Let’s say you renamed “Title” Column to “Employee Name” (using list settings web interface) but when you try updating this column value programmtically you need to acces the column using its Original Name (”Title”) and not with its Display Name (”Employee Name”). Changing column name through List Settings Page will only update “Display Name” property of the Field.

listItem["Title"] = “Employee Name”;

There is no way to Hide or Delete “Title” Column from List Settings User Interface. You can hide it by deselecting this column in your View but then you cannot edit the item as you wouldn’t have any Column linked to edit menu.

The only way to hide the “Title” Column is by writing a Custom List Definition, remember every Custom List MUST have this column as this is included in the Global ONET.xml (for Type “0″ List).

The best way to hide this column is to include below fields in your List Definition.

<Field ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" ReadOnly="TRUE" Required="FALSE" Hidden="TRUE" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="Title">
</Field>
<Field ID="{82642ec8-ef9b-478f-acf9-31f7d45fbc31}" Name="LinkTitle" Hidden="TRUE" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="LinkTitle">
</Field>
<Field ID="{bc91a437-52e7-49e1-8c4e-4698904b2b6d}" Name="LinkTitleNoMenu" Hidden="TRUE" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="LinkTitleNoMenu">
</Field>

Remember by doing so you have to implement Edit Menu for one of your required fields for users to be able to edit a List item.

Sync Outlook with iPhone & iPod Touch WITHOUT iTunes through Google Calendar

The quest for this started in an effort to be more organised and trying to have everything in one place. In my case it was my iPod Touch.

In our office I realised that we are restricted to install iTunes which would have made things pretty easy but continuous search for a solution gave me the exact steps required. I hope someone else will also be able to benefit from this, so here are the steps:

  1. First you need to install Google Calendar Sync from here :

    http://www.google.com/support/calendar/bin/answer.py?hl=en&answer=89955

    (Sorry you might need local admin rights to your machine)

    When you install it like me you might get an error for Windows Time Zone not being right and that is where this link comes in handy: http://support.microsoft.com/gp/dst_hu1

    (Just install the update on the second step of this link and dont bother going any further.)

  2. Once you have done that then follow these steps on your iPhone or iPod Touch:To set up Google Sync on your iPhone or iPod Touch device, please follow the steps below:
  3. Make sure your device has version 2.2 firmware or above. You can check your current version by going to Settings > General > About > Version. To upgrade, follow the instructions at http://www.apple.com/iphone/softwareupdate/. Tip: If you have a Mac, make sure that Synchronize with Google in the Address Book app is OFF. Otherwise all of your contacts will sync to Address Book.Mail sync is not yet supported. You may receive error messages if you attempt to turn on Sync for Mail.
  4. Here is how you can Sync your iPhone and iPod with Google Calendar:

    So its  Outlook > Google Calendar > iPod / iPhone and reverse meaning you add anything to iPod calendar is added to your Outlook too :)

  5. 1. Open the Settings application on your device’s home screen.
    2. Open Mail, Contacts, Calendars.
    3. Tap Add Account….
    4. Select Microsoft Exchange.

    Enter Account Info

    5. In the Email field, enter the name of the account (anything you’d like).
    6. Leave the Domain field blank.
    7. Enter your full Google Account email address as the Username.
    8. Enter your Google Account password as the Password.
    9. Tap Next at the top of your screen.
    10. A new Server field will appear. Enter m.google.com.
    11. Press Next at the top of your screen again.

    12. Select the Google services you want to sync. Currently only Contacts and Calendar are supported.
    Make sure that you have uploaded your data before proceeding.

    13. Press Sync twice when warned about data loss.

    You’ve set up Google Sync for your iPhone. Synchronization will begin automatically if you have Push enabled on your phone. You can also open the Calendar or Contacts app and wait a few seconds to start a sync.

    Tip: If your business, school, or organization uses Google Apps, your administrator will first need to enable ActiveSync before you can take advantage of this feature.

Customizing SharePoint Sites using SharePoint Designer 2007

Sharepoint offers 3 different ways to customise your website:

1. Through the browser using the admin panel but this is limited to some extent

2. Sharepoint Designer 2007: Gives to 90% of all the possiblities to customise

3. Visual Studio 2008: The most comprehensive though not for beginners or intermediaries, but all the back end development can be done in this enabling you to bring out a completely different and fit to your needs solution.

You can do a limited amount of customization through the browser, you can also customize the look and feel by applying a different theme to your site. What you couldn’t do using either methods, was change the layout completely – basically make a SharePoint 2007 site look absolutely not like a SharePoint 2007 site.

Now I’ve actually done this at work, but I cannot share the screenshots with you L. What I can share with you are SharePoint tips and tricks in making this happen.

Meet your new friend – The SharePoint Designer 2007.

The SharePoint designer 2007 will let you open a site, and edit it to your heart’s content. But it is important to understand that SharePoint 2007 pages based on a master pages concept. As an ASP.NET 2.0 developer you are probably very familiar with the master page concept, but here is a quick image to explain what a master page does to your site.

Basically, you create a master page where you define common UI and code, and throw in one or more ContentPlaceHolders. ASPX pages can then specify that page as the master page, and optionally choose to override the ContentPlaceHolders placed in the master page. If they choose to override, the content defined in the page will appear, else the content in the master page will appear.

Thus you can edit your site, by editing individual pages, or the master page. This is a huge improvement over 2003 since in 2003 all your custom UI changes were scattered all over the map.

You can begin editing your site through SharePoint Designer. The easiest way to open a site in SharePoint designer is File à OpenSite à Http://yoursite:someportnumber. It is important to realize that if you have a custom forms based authentication enabled, this will probably fail. That is not such a huge problem as you should be applying consistency between your sites using site templates anyway – this is a topic for a different day.

Now, how does page parsing and editing work in SharePoint.

When you open the site in SharePoint designer, you would see something like this –

The master pages are under the _catalogs/masterpage gallery. You should see a default.master there. You can choose to modify that masterpage, or you could create a new master page. It is very important to realize however that newer objects created on the SharePoint site, such as lists, document libraries, pages or even child sites  and site collections leverage the same master page library. So when you do create a brand new master page, you must right click on that, and set that as your custom master page going forward. Thus, when you create a new list, “Announcements”, SharePoint will ensure that it uses your custom master page for its various aspx pages, rather than the default.master.

Alternatively you can choose to modify the default.master.

It is nearly impossible to squeeze every bit of knowledge regarding customization in a single blogpost, maybe I’ll write a 2000-4000 word article on that in some magazine in the future.  Heck to describe everything in this topic, you could probably write a couple of chapters in a book, but maybe some other day.

But for this blog post, here are a few salient points.

a) Don’t knock off any placeholders. Also, don’t knock off any ContentPlaceHolders that are already present in default.master. If you do so, you will find that certain features & objects rely on certain ContentPlaceHolders, and as and when you stumble upon those features & objects, SharePoint will kick and scream (basically throw an error) everytime you use a feature & objects that relies on a specific ContentPlaceHolder that you knocked off. So in short, know and learn the role of each ContentPlaceHolder, and keep them in the page. I couldn’t find a good documented list of ContentPlaceHolders to feature & objects mapping – so I just go by what was already there in default.master. So far it’s worked pretty well for me.

b) You can right click on the design surface of the master page, and see the following menu.

Clicking on that menu item will give you a convenient view of managing all existing Content Regions inside the master page (seen below):

c) Finally, it is important to understand how ASP.NET 2.0’s virtual page parsing works with SharePoint. When you customize either aspx’es or .master files, you are not modifying anything on the file system. All you are doing is, you are making changes in the database. At first hit, SharePoint/ASP.NET combine what is present on the file system, alongwith the delta changes you made, and present a single combined ASPX to the ASP.NET runtime. This then goes through the ASP.NET pipeline like a regular page.

There are two huge advantages to this, you can not only clearly view the pages that are indeed customized with a little exclamation mark right next to them -

In fact you could even do check-in and check-out of individual files, and you can even revert to a previous version.

Secondly, say in the case of the master pages, they are in a document library under Site Actions à Site Settings/ Galleries/Master pages. And under Document Library Settings, you can specify stuff like versioning settings, custom workflows, and a whole number of things typical to any document library.

d) A very important thing to realize is that only some of the aspx/master pages are fully integrated into this new database oriented ghosting/unghosting scheme. All images, many user controls, and many “admin level” pages are shared amongst all sites, and they simply sit on the file system – not participate in database level ghosting unghosting. (Maybe this will change in RTM? To me it looks like a huge thing left out). Atleast in the beta versions, you can easily get around this issue by going to IIS Manager under Control Panel, and creating new virtual directories for your customized versions, and copy pasting the contents from the original folders into the customized folders.

Yes this sucks, but trust me, don’t ignore this, or all sites on the physical machine will inadvertently end up getting modified – which quite sucks in my opinion. This little advance homework will keep your life sane.

Anyway, to sum it up, customizing SharePoint through SharePoint designer is a huge topic. One thing I didn’t touch upon here was customizing the inbuilt webcontrols that come with SharePoint. For instance, if you wanted to change the look and feel of the “Site Actions” button or menu beyond what CSS and aspx changes allow, you have the option of firing up visual studio and subclassing or creating entirely new controls.

I’ll probably cover all that and more in some article I will write somewhere in the near future.

PerformancePoint Server joins Microsoft Sharepoint Server 2007

NEW YORK - NOVEMBER 30:  (NO SALES, NO ARCHIVE...
Image by Getty Images via Daylife

You can now benefit from a complete business intelligence solution without any further investment in standalone versions of PerformancePoint Server. As Microsoft Sharepoint Server 2007 has been joined in by the PerformancePoint Server 2008.
Microsoft announced that they are moving the scorecard, dashboard, and analytic functionality from PerformancePoint Server into SharePoint Server Enterprise, providing a complete perspective of business performance across enterprise functions such as finance, sales and human resources. These changes enable you to benefit from a complete and integrated business intelligence (BI) solution through your existing investments in SharePoint.
The addition of PerformancePoint Server 2007 greatly improves visibility into your company performance and rapidly see what is profitable and what is not. You can use this single integrated application to monitor and analyse the success your company enjoys or the barriers it faces and to plan for the future of your business.

PerformancePoint Server 2007 greatly enhances SharePoint and includes.

  • Robust monitoring and analytics capabilities.

Scorecards, dashboards, and analytics are all integrated into the same application making deployment simple and helping drive alignment and accountability.

  • Improved planning, budgeting, and forecasting.

Drive strategic objectives and goals into the planning and budgeting process to ensure departmental plans align with corporate strategy.

  • Faster financial reporting and consolidation.

Consolidate financial data from multiple general ledgers and reporting systems to achieve a single, integrated view of financial information.

  • Accountability from the individual to the enterprise

Users can create scorecards, dashboards, and analytics that align with their own responsibilities and goals and with the overall goals and objectives of the organisation. This means that everyone has an up-to-date, consistent view of the data and the most current insight on the entire organisation’s performance.

  • Performance management for all business users

PerformancePoint Server 2007 was designed to reach everyone involved in your business at all levels of your organisation. Users’ experiences are improved with familiar and easy-to-use interfaces, including Microsoft Office Excel, Outlook, and SharePoint.

Reblog this post [with Zemanta]

Moving Document Libraries from WSS 2.0 to Wss 3.0 MOSS 2007

The migration has always been an issue with MOSS as dear Microsoft never provided us with a migration tool. Well here is one way of migrating the document libraries. If you dont have the budget and time to go for a third party software this might help you.

Microsoft Sharepoint 2007

If you have the time and money in the pot I would recommend that use METALOGIX from www.metalogix.com. After testing a number of these migration software for MOSS I have concluded that this one is the most easy to use and most comprehensive. Plus they offer great support and are quick to answer your quries unlike many others.

Ok here is the manual migration process:

Backup the databases for the sites you want to upgrade.  Restore these backups as new databases on the SQL server in your WSS 3.0 farm.  Create web applications in WSS 3.0 for the sites that you are going to upgrade.  Remove the databases that are created with these web applications through WSS 3.0 central configuration.  Now attach the WSS 2.0 databases you just restored to SQL using stsadm -o addcontentdb to the web applications you created in WSS 3.0 for the migrated sites.  This is done through the command prompt.  To do this navigate c:program filescommon filesMicrosoft sharedweb server extensions12bin and type this command filling in the appropriate information.

<strong>stsadm.exe -o addcontentdb -url http://&lt;server&gt;:&lt;port&gt; -databasename &lt;WSS v2.0 content database&gt; -databaseserver &lt;DB Server name&gt; </strong>

for example

<strong>stsadm.exe -o addcontentdb -url http://MyServer:80 -databasename WSS_V2_ContentDB -databaseserver Sample</strong>

This will do an in place upgrade of the database.

Note:  If you SQL box has instances on it you will need to specify the instance the database is in for example &lt;SQL Server Name&gt;&lt;SQL Instance Name&gt; in the &lt;DB Server name&gt; space above.

The Sharepoint Development Experience

I want to describe the development process involved in creating a web part for a Sharepoint site, hopefully to dispel the belief that it’s difficult and time-consuming. What I want to demonstrate is that it’s actually very simple – no more difficult than creating a custom control in ASP.Net 2.0 – provided you have set up your development infrastructure correctly.

Development infrastructure is where most of the pain associated with Sharepoint development really exists, which is why following this article I’m going to continue with a series describing how you can set up the various parts of your infrastructure to enable friction-free development.

This post, however, will show you exactly how friction-free it can be. I’m going to show the steps to build a basic web part and deploy it to your sharepoint solution in a repeatable and reversible way. I’ll also give a tour of how to customise the look-and-feel of a Sharepoint website using the Sharepoint designer. The purpose of this is show to illustrate that developing with Sharepoint isn’t really that much different to developing for a standard ASP.Net 2.0-based website.

Development

Watch me create and deploy a brand new web part to a Sharepoint server:

1. This is my out of the box Publishing Site template
01

2. I’m going to add a web part to my site by adding a new class to my visual studio project
02

3. My class must inherit from Microsoft.SharePoint.WebPartPages.WebPart. I’m going to override the Render method to make the web part output some text. Note how similar this is to an ASP.Net custom control.
03

4.  I build the project. A post-build step creates a CAB file which can be deployed to Sharepoint. This packages up my new features/webparts so that I can manage their usage within Sharepoint and easily repeat/reverse this deployment process.
04

5.  I run a script to deploy the CAB file to Sharepoint.
05

6. In Sharepoint I add the Web Part to a page. If I haven’t deployed this web part before I need to Import the web part from the Site Settings menu first.
06

7. And there it is!
07

This development process is so simple and repeatable, it’s just like a standard ASP.Net website. What’s more when I set up source-control for my visual studio solution I can set up a continuous integration environment to automatically deploy my changes for me.

Layouts

Now I’m going to change the layout for this page. Most developers seem to believe this is an almost impossible task, or at least much more painful than editing a regular ASP.Net 2.0 Web Forms page. Well, watch:

1. My page layout
08

2. I open up Sharepoint Designer and browse to the page I want to edit and double click. Sharepoint Designer asks me if I want to edit the content for the page or the layout for the page. I select layout. Here’s what I see:

09

There are a lot of controls on the page. Most of them have the prefix SharePointWebControls, so we can pretty easily see what they’re doing and we don’t have to be afraid. Otherwise this is just like a standard ASP.Net Web Forms page – it has stuff inside ContentPlaceHolder controls. Sharepoint assigns this page layout a master page at runtime.

3. See those ugly tables in the PlaceHolderMain ContentPlaceholderControl? I’m going to change those to divs:

10

4. And now I’m going to edit the master page for this page layout. I know that the master page I want to edit happens to be BlueBand.master, because I chose it within the SharePoint Site Settings menu. And I also know that all master pages can be found in /catalog/masterpage in SharePoint Designer. I’ll change the tables there to divs too.
12

5. I check-in the changes to these files (SharePoint automatically provides versioning on these files because they’re actually in the SharePoint database – more on that in another post) and reload my site homepage:
13

Not such a visually impressive example, I know, but I just wanted to demonstrate that editing a SharePoint website isn’t really that different to building an ASP.Net website, and it’s no more difficult.

In future posts I’m going to walk through how to set up the infrastructure to be able to enjoy the development experience I demonstrated in the first section, and I also hope to demonstrate some ways to make layout editing more enjoyable, like by removing as much of the .Net cruft as possible and make your pages generate something more like semantic markup.

Source: http://andrewmyhre.wordpress.com ~(thanks)

Adding Google Gadgets to your Sharepoint site

“How do to get users to buy in to SharePoint and start using it?”

Getting users to switch to using any new application can be tough. To get your user’s to visit your portal, there has to be content there that the user needs or wants. I recommend starting with content that everyone in the organization can use. Begin migrating the functional areas that all employees interact with, for example Human Resources and Company Wide Calendars.

This type of content engages the user and will keep them coming to the site as you continue to add more business related content. One quick and easy way to add user catching content is to use Google Gadgets. Not only can Google Gadgets can help you attract users to your site, they can also keep users from navigating away from the intranet into the World Wide Web.

Google has hundreds of gadgets that you can be added to any web page. Many of these can be integrated into SharePoint using the Content Editor Web Part or the XML Web Part. Many of the Gadgets can allow users to access information from the web without leaving the comfort of your intranet page.

The example below shows how to use the Content Editor Web Part to add a weather gadget to a page.

  1. Browse and find a Google Gadget for your page. Enter the settings for the Gadget. Click the Get the Code button. Copy the code in the box

  2. Add a Content Editor Web Part to your homepage and modify the web part.
  3. Click on the Source Editor and paste the code from the Google Gadget into the box.
  4. Save the Changes to the web part. When you reload the page the weather gadget will appear on your page.

Google Gadgets can be an easy way to add external content to your SharePoint site. Be wary and selective when choosing your Gadgets. Not all Google Gadgets are appropriate for use on company portals and using too many gadgets can clutter and make your site less user friendly. Remember the goal is to add content that the users want or need. Some of the Google Gadgets that I think could be useful in a SharePoint environment are the weather gadget, the Count Down gadget (This could be used to countdown to a company event or deadline.), and Google Mini Web gadget.

Happy Gadgeting!