Thursday, January 31, 2008

Graphic Designer Contracts Agreements Forms & Web Designers Contracts

This blog has valuable links to many different free-lance contracts for Designers and Developers. This is a very valuable resource - I will be downloading all of them and storing them in Google Docs.

Outlaw Design Blog - Graphic Designer Contracts Agreements Forms & Web Designers Contracts

Tuesday, January 29, 2008

Lesson Learned: Updating data directly in SharePoint Database

This is a lesson learned from our MindSharp SharePoint developer training:
Don’t update the data directly in a SharePoint database - this will break your Microsoft T&C and your SharePoint instance will not be supported by Microsoft. Data integrity is also not enforced by the schema.

Bottom Line: Don't do it!

Creating a 12 Hive Taskbar

Creating a taskbar menu that will open the SharePoint 12 Hive folder quickly is really a time saver. Follow the steps below to create this taskbar menu.

  • Right-click on Start bar...Toolbars...and choose New Toolbar.
  • Navigate to c:\Program Files\Common Files\Microsoft Shared\Web Server Extensions.
  • Select 12. Then click OK.

A toolbar to the 12 Hive appears on the right side of the task bar.

Monday, January 28, 2008

SharePoint 2007 Link List

Here is a list of resources our development team has compiled for SharePoint 2007:

-SharePoint End-User Training: (May have expired)

-Application templates for WSS 3.0:

Help Desk:

-MOSS SP1 Download:

-SharePoint WebCasts:

-Content deployment – Step-by-step tutorial:

-Writing Custom WebParts for SharePoint 2007:

-SharePoint 2007 WebParts Communication:

-Writing custom editors for SharePoint 2007 and ASP.NET 2.0 WebParts:

-Customizing MOSS through the browser:

-MS Office 2007 system preview site:

-SharePoint 2007 Architecture:

-Using SharePoint Designer to create a custom New/Edit/Display form:


-MS and other SharePoint Blogs:

-Blogs, Wikis, and RSS in SharePoint 2007 (includes video):

-SharePoint 2007 – The server side of Office (includes video):


-SharePoint Tips and Tricks:

-SharePoint and Office 2007 Virtual Labs:

-Web Content Management in MOSS 2007: Terminology explained:

-Web Content Management in MOSS 2007 Web Casts:

-MOSS Training from Microsoft:

-- WSS Development:
-- WSS Infrastructure:
-- MOSS Development:
-- MOSS Infrastructure:

- SharePoint Designer:

-MOSS 2007 Server setup tips:

-Pre-scan tools:

-AJAX.Net for SharePoint 2007:

-WSS 3.0 SDK:

-MOSS 2007 SDK:

-Setting up your SharePoint 2007 Development Environment: - Virtual PC Development environment

-Visual Studio 2005 Extensions for WSS 3.0:

-How to Create a MOSS 2007 VPC Image: The Whole 9 Yards:

-Migration and Upgrade Information for SharePoint developers:

-Planning and architecture for MOSS 2007:

-SharePoint Products and Technologies Community:

-WSS Developer Center:

-MOSS 2007 vs SPS 2003:

-MOSS 2007 Functionality (WSS 3.0 vs Standard MOSS vs Enterprise MOSS)

-Create a Feature: Master Pages for Site Collections:

-Creating a MOSS 2007 Theme:

-SharePoint content and Resources:

-Business Data Catalog: (video)

-SharePoint 2007 – Enabling Custom Authentication using a Custom Membership Provider:

-Enabling .PDF search in MOSS 2007:

-Additional Search links:

-Free web part for Wildcard searching:

-Worksheets for deployment:

-Defining managed paths (videos):

http://bobfox. net/Video% 20Demos/ManagedP athsDemo. wmv

-Using .ascx controls in your MOSS application:

-Using .aspx pages in MOSS:;EN-US;828810

-CSS Reference Guide for MOSS 2007:

-Custom STSADM command to report on and fix your WSS sites:

-Military Grade Compliance for MOSS 2007:

-MOSS 2007 as an Application Development Platform:

-Creating a Custom SharePoint 2007 Portal Site Definition using the PortalProvisioningProvider Class

-Configuring multiple authentication providers for SharePoint 2007

-Intro to MOSS video:

-Profile management and custom web part editors (video):

-Creating Web Parts using VS 2005 Extensions: (Download)

-Printing the contents (default view) of a List:

-SharePoint Instant Messanger (“Chatterbox”):

-Copying a SharePoint list from a source site to a destimnation site:

-Report Viewer SP1 Redistributable Package:

-MOSS and Kerberos:

-MOSS Governance – Key to a successful deployment:

-Large Lists in MOSS:

-Custom field types:

Todd’s RegEx:

Cascading drop-downs:

Cross-site lookup:

Phone #:

MSDN Example:


Concatenate 1st & last name:

Private/secure field (Kevin DeRudder):

-Debugging MOSS:

-Coding tips and techniques:

-Wokflows: Extracting email addresses and sending email (with video):


-Workflow How-to videos:

-Creating a simple non-human Workflow:

-Accessing SharePoint data through web services:

-Reading ListId and ItemId from an application page:

-Navigation between site collections:

-MOSS and SQL Server Reporting Services (SSRS)

-Outlook integration (CEWP vs OWA web part):

-Performing joins between two SharePoint lists (Requires SharePoint Designer):

-DataForm/DataView web parts:

-SharePoint and Popfly:

-Advanced web parts code (Andrew Connell):

-Workflows and Visual Studio 2008:

-Color calendar for MOSS:

-How to customize web.config with a SharePoint XML customization:

-STSDEV – SharePoint code generator: – Tutorials

Tuesday, January 22, 2008

FREE: Web.Config Editor

A great free tool that enables editing the Web.config. A must-have for your developer toolbox...
Check it out
A mirror of the tool is available here.

Wednesday, January 16, 2008

HOW TO: Customize the web.config with a SharePoint XML customization

Great article by Clint Simon on how to customize the SharePoint web.config and not lose the changes each time the WFE service is stopped and started.

Check it out...

QUESTION: Returning an ArrayList of Custom Objects From a Web Service

I have a current requirement to all a subsidiary to use a current legacy application and interface with my new system to inject data when appropriate. I wanted to create a web service since we are both .Net shops and this would seem to be the easiest method. But I ran into one snafu. I wanted to return to the subsidiary an ArrayList of my Organization objects which contain the orgs id, name etc. so they can use that information in the data insert call.

I have done a lot of looking around but have not found the answer yet to accomplish this. Here is some of the code:

  1. Web service calls an object manager which returns the ArrayList:
    1. ArrayList _array = ObjectManager.Instance.GetAllOrgs();
  2. Object manager calls the object data store returning ArrayList
    1. ObjectStore.Instance.GetAllOrgs();
  3. Object store makes database call, passes reader to method that loops over results building an Org object and adding it to an array.:
    1. public ArrayList GetAllOrgs()
      ArrayList orgs = new ArrayList();

      using (SqlConnection connection = new SqlConnection(_connectionString))

      SqlCommand command = new SqlCommand();

      command.Connection = connection;
      command.CommandType = CommandType.StoredProcedure;
      command.CommandText = "usp_GetOrgs";

      SqlDataReader reader = command.ExecuteReader(CommandBehavior.SingleResult);

      orgs = CreateOrgs(reader);


      return orgs;
That is my issue in a nutshell - my web page that consumes the web service does not know how to cope with the ArrayList with Org objects in it.

Any help would be much appreciated!

Thursday, January 10, 2008

Check that your .NET App Email Delivery is Working Without SMTP Running

Testing code that sends email has always been a pain. You had to set up a SMTP service just to test that your .NET application sends the e-mail correctly and in our office, this is a big no-no for developers. The admins are very conscious about having rogue SMTP servers running for fear of relaying.

.NET allows you to tell your application to drop e-mails into a specified folder instead of sending them via SMTP server using the following code in your web.config.



<smtp deliveryMethod="SpecifiedPickupDirectory">

<specifiedPickupDirectory pickupDirectoryLocation="c:\Test\" />




And viola... a .eml file is deposited into the specified directory.

Top 10 Best Practices to Consider Before Implementing SharePoint

Here are what i believe is to be the top 10 things to consider before implementing SharePoint. More than one administrator/developer/manager has been burned by SharePoint by not taking the proper time to plan the installation and doing their homework. At my current position, the net admin and I had planned out what we thought was a viable install plan for SharePoint but upon returning from MindSharp SharePoint Administrator training, we scrapped our whole plan and started from the ground up. We believe the time spent re-planning the install will greatly benefit us in the long run.

  1. Consider and then reconsider. SharePoint provides a plethora of functions used to build different types of solutions. Organizations should have a clear vision as to what role SharePoint will fill in the workplace and plan the install accordingly.
  2. Brand Brand Brand. This is an essential step in the install process. The old adage "first impressions are everything" carries a lot of weight with end users...they are more likely to use the site if it is ascetically pleasing.
  3. Protect public area from user customization using the built-in security. The intranets should be designed to reflect the company look/values. Your team sites may be more in flux, and they are a great place to experiment with new web parts and functionality.
  4. Configuration rather than customize. Companies can accomplish approximately 90% of the needed site functionality through the use of OOB (out of the box) readily available web parts and through features such as custom lists and views.
  5. Grow accustomed to the way SharePoint works OOB. Customization is tempting, especially if your organizations IT department has application developers, be cautious - generally, Microsoft will not support customized installs of SharePoint.
  6. Training. End users need it. System administrators need a lot of it. Microsoft offers extensive technical documentation available on its website but for a Systems Administrator, I HIGHLY recommend MindSharp SharePoint Admin training.
  7. Phases. Implement parts of SharePoint in phases so Admins and end-users alike have time to let the new functionality sink in and learn to use it effectively.
  8. Disaster Recovery. PLAN FOR IT. Test backups. DOCUMENT tweaks and configurations done to your SharePoint server. Also, practice a couple times a year a disaster recover scenario using virtualized servers (VMWare or Virtual Server).
  9. Production systems should not be virtualized. I do not believe MSFT is currently supporting virtualized installs of SharePoint, even though it can be done. Depending on your user load and index load, you will benefit from dedicating hardware.
  10. Poll users for feedback about the system. This will give you valuable insight into what is working and what is not for the end users.

Tuesday, January 08, 2008

Top 10 Reasons to Implement SharePoint 2007

SharePoint has become a major force in the portal market space. Here are my top 10 reasons for implementing SharePoint in the workplace.

10. Robust object model allows developers and admins to manage the system without a GUI.

9. Security Trimming - no need to worry about users clicking on links they do not have access
to. Sharepoint now hides links and content that users do not have access to.

8. Easy document management - with versioning and integration with the Office suite built in
SharePoint excels as a document management tool.

7. Mobile features - SharePoint takes mobile access to a new level providing out mobile users
with easier methods to access the information in our systems while on the road.

6. Searching Ability - Out of the box, SharePoint has created an extremely robust search
engine. With the added ability to create your own plug-ins for searching other types of
documents, SharePoint starts to really shine.

5. Access and use information from multiple sources - With the Business Data Catalog (BDC) SharePoint can easily access legacy systems (ERP, legacy apps, databases, etc.)for data. This helps companies paint a more complete picture for reporting.

4. Branding - SharePoint allows developers to apply custom master pages, page layouts and site navigation. This is an extremely important feature with companies creating a public web presence.

3. Zones - SharePoint can allow an internet site and an intranet site to access the same content database. Each zone defines its own authentication method, item security and search functionality by simply defining a new zone. A SharePoint installation can support up to 5 separate zones.

2. Cost - WSS v3 is free with Windows Server 2003. MOSS 2007 installation costs can vary but have been significantly lower than the Java-based competitors.

1. Scalability - SharePoint has improved by leaps and bounds since previous versions in the arena. With the ability to have n web front ends, query servers etc., SharePoint has show that it can scale out to support some of the largest installs anywhere.

Thursday, January 03, 2008

Installment 1: Authentication - Tips from MindSharp SharePoint Developer Training

SharePoint Authentication:
  1. WSS v3 has replaced the ISAPI filter STSFLTR.DLL with a HTTP Handler now allowing full support of Forms-based authentication. Developers can even store the authentication table within SharePoint and have SharePoint call a list in itself to authenticate people. The change allows full support for ASP.NET 2.0 pluggable authentication methods. The use of handlers will allow more scalability in the future as other authentication methods arise...maybe OpenID
  2. Administrators can now set authentication at a Zone level allowing different set of people to authenticate via different vehicles and access the same content database. This definitely comes into play if you want an extranet and an intranet from the same content.
  3. Integrated Windows Authentication is the default provider for new web applications.
  4. The biggest enhancement in the authentication realm is Elevation of privileges using SPSecurity.RunWithElevatedPrivileges and SPSecurity.CodeToRunElevated. This allows the executing process to run using the Application Pools identity.
Stay tuned for more ...