SharePoint / ASP.Net Development
Experiences from the field
Navigation
   RSS 2.0
Categories
Entries by Month

# Thursday, May 01, 2008

Introduction

The out-of-the-box Image Web Part can be used to display an image on a site. The web part has a property that specifies the web address of the image. For most site members, this is problematic – how do they get an image on the web site? And how do they determine the web address? For power users, these steps are understood, but are time consuming to complete.

The Image Upload Web Part will allow the site member to browse their local computer for the image. Once the image is selected, the web part will automatically upload the image to a location specified by an administrator and set the web address.

The result is a solution that works for both groups. Site members can display pictures from their computer and administrators can provide storage for those pictures with changing the permissions of their site and with minimal training.

More information available in the download or at the project's page on CodePlex.

ImageUploadv3.zip (.16 KB)
Thursday, May 01, 2008 1:19:20 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Thursday, March 20, 2008

My recommended reading list on the right is woefully out of date. It is on my to-do list, but in the interim I want to call out Ben Curry and Bill English's book on SharePoint Best Practices. It is not yet available, but you can pre-order on Amazon.

Microsoft® Office SharePoint® Server 2007 Best Practices (Pro - Other)
Thursday, March 20, 2008 12:18:54 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Tuesday, March 18, 2008

I will be speaking at the MOSS Camp in St. Louis on April 5th. I will giving an overview of the Porting Workflows project and community site.

Hope to see you there!

Tuesday, March 18, 2008 7:40:16 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Wednesday, March 12, 2008

Barracuda, LLC, Announces DeliverPoint: PERMISSIONS for Microsoft Office SharePoint Server 2007 and Windows SharePoint Services 3.0

Minneapolis, MN — February, 18th 2007 — Barracuda, LLC announces the release of DeliverPoint: PERMISSIONS - a security trimmed enterprise permissions management application for Microsoft Office SharePoint Server 2007 and Windows SharePoint Services 3.0.  DeliverPoint: PERMISSIONS empowers SharePoint Products and Technologies administrators - both Central administrators and non-IT Local administrators, to be able to discover, copy, transfer and delete account and object permissions in one efficient administrative action.

Read the full press release

Wednesday, March 12, 2008 11:46:45 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 

I am working on getting a community site up to host these articles as well as the code. My hope is that all interested developers will contribute their solution to the various Actions that can be selected in SharePoint designer.

This post is the first in a series. The series will discuss the porting steps as we presented in Seattle, but with the details filled in. (We had only 75 minutes to present, which is way too little.) Part 1 will discuss the virtual machine setup and the creation of the SharePoint Designer workflow that will be ported.

Virtual Machine Setup

When a workflow is created in SharePoint Designer, the site is updated with a few pieces that enable it to work. We want to ensure that we port all of these pieces, so we will be using two different web applications. The first at http://spdflow will be used for the SharePoint Designer workflow. The second at http://vsflow will host the Visual Studio workflow. Rather than use different port numbers for the web application, the hosts file (C:\WINDOWS\system32\drivers\etc\hosts) is updated with each of these host names.

The virtual machine will also have the necessary applications installed: SharePoint Designer 2007 and Visual Studio 2005 with the Office SharePoint Server 2007 SDK.

SharePoint Designer

We will use SharePoint Designer to create a workflow. The workflow will perform the most popular actions -- collecting data, creating a task and writing to the history list. This is accomplished via the following steps:

  • In SharePoint Designer, open the site http://spdflow.
  • Click File | New | Workflow. The Workflow Designer wizard is displayed.
  • Name the workflow SPDFlow and attach it to the Announcements list. Leave the start options at the default, which is manually. (We'll be starting it often.)

  • Click on the Initiation button on the bottom
  • Add a Workflow Initiation Parameter named InitiationField with a default value of Barracuda. Then click OK

  • Back in the Workflow Designer wizard, Click Next.
  • In Step 1, click on the Conditions button and choose Compare Announcements field.

  • Choose the Modified By field and the account name of the current user.

  • Click on the Actions button and choose Collect Data from User.

  • Click on the "data" link to invoke the Custom Task Wizard.

  • Enter "Collect Data Task" for the task name and click Next

  • Click Add to create a field.

  • Name the field "TaskField" and enter a default value of "DeliverPoint"

  • Click Finish on the Custom Task Wizard. You will receive a warning about running instances, which can be ignored.
  • Click on the "this user" link in Step 1 Actions. Select the account name for the current user.

  • Click on the "Variable: collect" link in Step 1 Actions. Rather than put the data in a generically named variable called "collect," choose "Create a new variable" and name it "ListItemID"

  • Click on the Variables button at the bottom of the Workflow Designer form. Even though we did not choose the variable named "collect," it was created for us. Remove it, and any other unused variables, from the list.
  • Click Finish.

SharePoint Designer will save the workflow and associate it with the Announcements list. Test the workflow by returning to the browser and navigating to the Announcements list.

  • On the context menu of a list item, select Workflows

  • On the Workflows page in the Start a New Workflow section, click on the name of the workflow (SPDFlow)

  • The initiation form is displayed. Click Start

  • The Announcements list is displayed, with a new column on the far right. The column name matches the name of the workflow and the value is "In Progress"

  • Click on "In Progress" to display the Workflow Status page

  • In the middle of the page is the name of the task: CollectDataTask. Click on this link to display the task.

  • Click on Edit Item in the tool bar. This will display the custom task edit form for this workflow

  • Click on Complete Task

    At this point we have a workflow that was created in SharePoint Designer. The next post is this series will move us further along our path. Stay tuned!

Wednesday, March 12, 2008 5:33:00 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Tuesday, March 04, 2008

Many have asked. Many have said it is not possible. At the SharePoint Conference in Seattle today (March 4th, 2008), Todd Bleeker is presenting the steps necessary to take a workflow created in SharePoint Designer and port/convert it to a workflow template in Visual Studio!

The process started with an innocent question back in the fall of 2007 at Mindsharp's TechWeek. All of the Mindsharp Authorized Trainers, and one lucky developer (me) we assembled to share what we know and learn from others. One session address this workflow topic. The session ended when the steps we attempted crashed the site collection. (Thank goodness for virtual machines!) The topic list of that week was submitted to Microsoft as potential sessions at the SharePoint Conference. They selected the workflow porting session to be presented.

The task fell to SharePoint MVP and superstar presenter Todd Bleeker. As usual, Todd threw his considerable enthusiasm at the topic. I had the privilege of being a second set of eyes and a sounding board to Todd during the days leading up the presentation. Not only did I learn a ton about workflows, but I also interacted with many smart people who contributed ideas, encouragement and humor to us in the last 48 hours. I am honored to be the one to make this post, but I am not solely responsible for its content. I want to specifically mention Todd Bleeker (of course), Kimmo Forss of Microsoft, Marilyn White of White Consulting, Rob Bogue of Thor Projects, David Mann of Mann Software and Woody Windischman.

 

[Details to follow]

Tuesday, March 04, 2008 1:02:29 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Tuesday, December 04, 2007

I added a new operation to the Barracuda Application Extension Download:

stsadm -o enumsitegallerytemplates -site <site collection url>

   Displays the names and identifiers of Site Definitions in the Site Template Gallery.

 

Barracuda StsAdm Extensions.wsp (8.01 KB)

Tuesday, December 04, 2007 5:26:08 PM (Central Standard Time, UTC-06:00)  #    Comments [1]  | 
# Wednesday, September 12, 2007

One common pain point for SharePoint administrators is the Windows SharePoint Services Timer Service, also known as OWSTIMER.EXE. The Timer Service is responsible for executing several processes that are part of the product. A few of the more well-known processes are the search crawl refresh, recycle bin processing and the workflow processes. Also, the Timer Service is the process that SharePoint uses to push web.config modifications and solutions to all front end servers in the farm.

Two specific issues that are related to the Timer Service are its memory consumption and limited user interface. The Application Extension Download for SharePoint (AED for SharePoint) from Barracuda is designed to help system administrators deal with these issues. The download can be found in the Premium Content section of the Mindsharp web site. (The utility is free, but you will need to provide your name and email.)

Timer Operations Syntax

Restart Timer

stsadm -o restarttimer
{ -farm | -server <server name>;<server name> }
[-exclude <server name>;<server name>]
 
Restarts the Windows SharePoint Services Timer service
on servers in the farm.
 
Use the -farm parameter to restart the service on all servers
in the farm that have the service installed.
 
Use the -server parameter to specify the servers on which to
restart the service.
 
Use the -exclude parameter in conjuction with -farm to restart
the service on all servers except those listed.
 

Enumerate Timer Jobs

stsadm -o enumtimerjobs
[-view {service | webapp}]
[-service <service name>]
[-webapp <web application url>]
[-schedule]
 
Displays the Timer Job Definition information.
 

Start Timer Job

stsadm -o starttimerjob
{ -service <service name> | -webapp <web application url> }
-job <job name>
 
Forces a one-time execution of the specified job.

Wednesday, September 12, 2007 3:11:56 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Tuesday, September 11, 2007

At my new job, I work with a lot of very smart people. I was chatting with Ben Curry, and he remarked about the troubles that a lot of administrators have with the OWSTimer.exe program. So, I wrote an extension to STSADM that will help manage this program. You can find the Adminstration Extension Download for SharePoint on the Mindsharp site.

Feedback is appreciated. Paul at barracada.net

Tuesday, September 11, 2007 9:38:52 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Monday, April 16, 2007

I am very excited to announce that I have joined Todd Bleeker and Bill English at Mindsharp! I will be working in the Barracuda Tools division along with Keith Richie.

Thanks to everyone at Mindsharp for this wonderful opportunity!

Monday, April 16, 2007 8:25:36 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Wednesday, April 11, 2007

Todd Bleeker (who is alleged to be a cult figure in some circles) is speaking at two local events:

Building SharePoint Web Parts
Wednesday, April 18th
Chicago DotNet User Group (RSVP requested)
Microsoft Office in Downers Grove, IL

Ghosting, Master Pages, Themes, CSS, etc.
Thursday, April 19th
Chicago SharePoint User Group (RSVP required)
Microsoft Technology Center, 77 West Wacker Drive, Chicago, IL

Wednesday, April 11, 2007 3:55:38 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Tuesday, October 03, 2006

Amanda Murphy has started writing SharePoint articles for Intranet Journal. The SharePoint series over there has slowed down since I got too busy to contribute. But with Amanda and Rob, I look forward to more great stuff!

Tuesday, October 03, 2006 7:59:21 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Tuesday, July 11, 2006

Shane is rallying the troops on WSSv3 customization.

kick it on SharePointKicks.com

Tuesday, July 11, 2006 9:01:52 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Friday, July 07, 2006

I started the process on Friday afternoon, so you may need to adjust each days activities...

Day 1 (afternoon)

Create Virtual Machine and Virtual Disk; Install Windows 2003 Server R2; Download 32 patches from Windows Update.

Day 2

Watch A.J beat the Cubs in the ninth-inning sandwich by the World Cup semi-finals.

Day 3

Mow lawn; Buy new garage door opener; Pay for installation (It is a hardware problem!); Other honey-do's.

Day 4

Work on a setup project for the SharePoint Forums WebPart.

Day 5

Independance Day parade, cook-out and fireworks.

Day 6

Download and install WSS and its prerequisites. Ian Morrish has them summarized on his demo site.

Day 7 (morning)

Configure Forms Authentication using tips from Nick Swan and code from the ASP.Net Quick Start. (In an interesting intersection of old and new, I used Notepad to create an ASP.Net 2.0 application!)

The SharePoint Team has done a fantastic job! 

kick it on SharePointKicks.com

Friday, July 07, 2006 2:31:51 PM (Central Daylight Time, UTC-05:00)  #    Comments [1]  | 
# Thursday, June 15, 2006

A new Technical Article is online discussing the cases in which Dispose() should be called.  A must read for all SharePoint developers.

Best Practices: Using Disposable Windows SharePoint Services Objects

kick it on SharePointKicks.com

Thursday, June 15, 2006 3:58:51 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Friday, January 27, 2006

The SharePoint Team blog has another entry today: Configure it out

Read the post carefully and you can discover additional details about the next version. My favorite -- "simultaneous vanilla LDAP & Windows auth (on separate URL namespaces, both hosting the same base content)."

I knew that non-Active Directory authentication was coming, but this is huge! Employees authenticated via AD, external users authenticated in a different fashion. If the external connector license is reasonable, SharePoint deployments should grow dramatically. (As if they weren't already!)

Friday, January 27, 2006 2:17:33 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Tuesday, January 24, 2006

Some time ago, Infotech Canada release a theme pack for WSS. But, if you want a custom theme that looks exactly like you want, you should get in touch with Heather Solomon. First-class!

Tuesday, January 24, 2006 8:47:21 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Thursday, December 22, 2005

Todd Bleeker has a great explanation of sites and other SharePoint nouns.

Thursday, December 22, 2005 10:44:21 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 

Bob Mixon is wrapping up a new WebPart to replace the default Quick Launch. The sample images look very nice!

(Bob hints at some upcoming WebParts as well. Read his new blog site for details.)

Thursday, December 22, 2005 11:49:08 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Tuesday, December 20, 2005

Bil Simser has a post about using SharePoint for various tasks. Good post Bil.

By the way, I was asked if SharePoint could host an auction site.  I got it to work with a Picture Library and a Survey...

Tuesday, December 20, 2005 2:49:54 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Monday, December 05, 2005

The conclusion of my series of articles on Developing a Custom Web Part is now online at IntranetJournal.

Monday, December 05, 2005 7:43:42 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Wednesday, November 30, 2005

Graham Tyler has released a very useful utility for those site who just can't let go of network shares...

'Windows Folder web part' published to GotDotNet

Wednesday, November 30, 2005 8:19:34 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Tuesday, November 29, 2005

The WebPart referenced in the December Intranet Journal article: Developing a Custom WebPart, Part 3

 

MilestoneCountdown.zip (54.64 KB)
Tuesday, November 29, 2005 9:20:28 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Monday, November 14, 2005

I wrote about using trace output in web parts many times. (It is a complicated topic!) My solution always came with a disclaimer about security. Victor Vogelpoel has a solution -- including the trace output in a web part.

Very nice Victor! Thanks.

Monday, November 14, 2005 10:10:02 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Friday, November 04, 2005

The next installment in the IntranetJournal.com series:

Developing a Custom Web Part, Part 2

Thanks for all the comments. I am always open to topic suggestions.

Friday, November 04, 2005 9:13:41 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
Friday, November 04, 2005 8:20:35 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Thursday, November 03, 2005
Thursday, November 03, 2005 11:42:13 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Thursday, October 13, 2005

Eric Rucker is blogging about Access 12. His post today discussed changes to the underlying engine to provide "full schema compatibility with Windows SharePoint Services lists." A benefit of this change: "This allows us to take SharePoint list data offline and to provide rich-client UI for SharePoint using Access."

I see this as quite a big deal. Consider the number of Access developers compared to the number of InfoPath developers. Consider the number of installed Access licenses compared to the number of InfoPath licenses. I would not be surprised if this dramaticlly slows the acceptance of InfoPath.

Thursday, October 13, 2005 8:47:44 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Monday, October 10, 2005

The latest article in the IntranetJournal.com series on SharePoint is up. This month, the beginnings of a how-to:

Developing a Custom Web Part, Part 1

Stay tuned!

Monday, October 10, 2005 3:17:19 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Friday, October 07, 2005

I am honored to join the ranks of bloggers at http://www.mindsharpblogs.com -- the home of Bill English, Todd Bleeker and others. If you are new to SharePoint, this is a must-see site.

Friday, October 07, 2005 4:22:37 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Thursday, October 06, 2005
Thursday, October 06, 2005 10:54:17 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Wednesday, September 28, 2005

Robert Bogue has written an article titled Troubleshooting Web Parts and Deployment that discusses STSADM and WebPart CAB files. Very helpful for WebPart developers and administrators. Thanks Rob!

Wednesday, September 28, 2005 2:42:25 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Thursday, September 15, 2005

Mike Fitzmaurice has the most definitive list of new items.

Thursday, September 15, 2005 9:06:02 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Tuesday, August 23, 2005

Eli has updated his SharePoint Resources page.  Thank you for a very helpful site.

Tuesday, August 23, 2005 10:25:51 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Tuesday, August 16, 2005

E. Shupps has started a series of blog posts titled Extreme SharePoint Design Series that promises "advanced tips and tricks for designers."

Tuesday, August 16, 2005 3:37:16 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Thursday, August 11, 2005

Bil Simser has started a project for community-built templates.

Thursday, August 11, 2005 1:26:45 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Wednesday, August 03, 2005
Wednesday, August 03, 2005 10:57:41 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Tuesday, August 02, 2005

The files referenced in the August Intranet Journal article: Using a Custom Web Page Template for Easy Content Entry

EasyContentEntry.zip (43.6 KB)
Tuesday, August 02, 2005 2:40:36 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Friday, July 15, 2005

The lastest article in my SharePoint series is available on IntranetJournal.com

Customizing the Quick Launch in a WSS Team Site
This month, Paul provides a solution to automate the linking of documents in a Windows SharePoint Services (WSS) document library to the Quick Launch navigation feature.

The article discusses a custom web part. The web part and its source code are available for download.

Friday, July 15, 2005 9:18:21 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Wednesday, July 13, 2005

"The purpose of the SharePoint Utility Suite is to provide a packaged collection of Tools and Utilities showcasing the rich Object Model that is delivered with the SharePoint Product and Technologies SDK (which includes Windows SharePoint Services 2.0 and SharePoint Portal Server 2003). This package includes code and tool examples that SharePoint Developers and SharePoint Administrators might find useful."
http://www.microsoft.com/sharepoint/downloads/components/detail.asp?a=724

Thanks to Jessica Gruber

Wednesday, July 13, 2005 3:46:04 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Tuesday, July 12, 2005

This post is mostly a duplicate and is provided as a reference for others who stop by later.  Thank you to all who participated!

Andrew Connell started us off with good comments (re-posted on his blog).

Arpan Shah found the article entertaining, rather than informative.

Bil Simser would like Mr. Drips to call reality.

Robert Scoble has some ideas.

Maurice Prather has "Five things worth mentioning"

JOPX on SharePoint

The SharingPoint

Ed Brill (IBM)

Daniel McPherson: Only Five Things Wrong with SharePoint

Amanda Murphy discusses the vision

Bil Simser gets us turned around and discusses some positive features of SharePoint.

"Wish List" post by Larry Borsato

Thoughts about the community and the team from Patrick Tisseghem.

Eli Robillard: response to article and discussion of weaknesses.

Tuesday, July 12, 2005 10:27:40 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 

In response to a post in the ASP.Net forums, here is a routine to upload a file to a document library.

Sub ProcessPostedFile(ByVal fileUpload As HtmlControls.HtmlInputFile)
    Try
    ' get the filename and stream
    Dim fn As String = System.IO.Path.GetFileName(fileUpload.PostedFile.FileName)
    Dim stm As System.IO.Stream = fileUpload.PostedFile.InputStream
    Dim contents(CInt(stm.Length)) As Byte

    stm.Read(contents, 0, CInt(stm.Length))
    stm.Close()

    ' get the library path
    Dim docLibPath As String = Configuration.ConfigurationSettings.AppSettings("DocUploadPath")
    ' first, get the site containing the library
    Dim site As SPSite = New SPSite(docLibPath)
    Dim web As SPWeb = site.OpenWeb
    ' then get the folder
    Dim docFolder As SPFolder = web.GetFolder(docLibPath)

    ' delete the file if it exists
    Dim docFile As SPFile
    Try
        docFile = docFolder.Files(fn)
    Catch ex As Exception
    End Try

    If Not docFile Is Nothing Then
        docFolder.Files.Delete(fn)
    End If

    ' save the file
    docFile = docFolder.Files.Add(fn, contents)

    Catch ex As Exception
        Context.Trace.Warn(ex.ToString)
    End Try
End Sub

Tuesday, July 12, 2005 12:43:24 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Monday, July 11, 2005

File containing the web part described in my Intranet Journal article series.

DocLibQuickLaunch.zip (13.4 KB)

Monday, July 11, 2005 12:03:57 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 

Only Five Things Wrong with SharePoint

Well, thats what I think the headline should have been. <sly grin>

Monday, July 11, 2005 9:02:46 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
Renaud Comte has an example of using CSS to alter the look of the WebPart title bars. (The formatting is a bit off, but the CSS is near the bottom.)
Monday, July 11, 2005 8:21:35 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Sunday, July 10, 2005

Thanks to all who have joined in! I'm sure that the net result will be a better product!

[UPDATE: This post is being continuously updated as I become aware of other comments.]

Andrew Connell started us off with good comments (re-posted on his blog).

Arpan Shah found the article entertaining, rather than informative.

Bil Simser would like Mr. Drips to call reality.

Robert Scoble has some ideas.

Maurice Prather has "Five things worth mentioning"

JOPX on SharePoint

The SharingPoint

Ed Brill (IBM)

Daniel McPherson: Only Five Things Wrong with SharePoint

Bil Simser gets us turned around and discusses some positive features of SharePoint.

"Wish List" post by Larry Borsato

Thoughts about the community and the team from Patrick Tisseghem.

Eli Robillard

Sunday, July 10, 2005 1:35:15 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Friday, July 08, 2005

George Tsiokos put together a creative solution for displaying RSS/ATOM feeds in a web part page. His SharePoint RSS/ATOM reader service will create a .DWP for a Data View Web Part. No assembly to install; no editing of web.config; no programmer involvement; I LOVE IT!!!

There is also a downloadable version for the technically advanced. Thank you George!

Friday, July 08, 2005 9:10:34 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
Friday, July 08, 2005 2:33:26 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 

Mike Drips published an article today on Informit.com titled "Five Things Wrong With SharePoint." I have a few issues with his points. Please read his article and then my comments below. (The numbered items apply to the five things in Mr. Drips' article.) Feedback is encouraged!

Things Wrong in "Five Things Wrong With SharePoint"

#1. It's a crappy mish-mash of multiple technologies

"...you find a great many of the core files are written in JavaScript."

My definition of "a great many" would be somewhere between one-third and one-half. I looked in the "60" directory on my server. It contains 408 folders and 6,324 files. The number of JavaScript (.js) files: 39!! That is .6%.

While Microsoft training does not offer a class on JavaScript, there is no lack of training providers.

Mr. Drips complains that professional programming SharePoint requires knowledge of many technologies. Let's look at this list:

CSS, HTML, XML What high-end web applications do NOT use these?
ASP.Net (the platform)
Visual Studio.Net (IDE)
When developing using a different environment (WebSphere, Java), wouldn't I also need to know the platform and IDE?
Language (C# or VB.Net) Again, an issue in any environment

By the way, the same list of technologies applies to the blogging tool used for to write this post: dasBlog.

#2. The development team is playing the Longhorn card

While "four years of no product improvement" is likely, how many enterprise-wide applications are upgraded by customers every year? The required investment in migrating and testing makes it hard to justify repeated upgrades. (I have seen many organizations with Windows 2000 servers still running because the applications they support are working fine.)

#3.  There are two SharePoint products, which is confusing

I don't think this should be "tagged" on SharePoint when it applies to a lot of the Microsoft product line.

#4. Support for SharePoint is lacking.

In my experience, blogs that are written about a product are usually focused on solving problems, not being critical. Maybe it is just the echo chamber effect...

I think it is wrong to categorize "nearly all" the bloggers as apologists for Microsoft. I don't apologize for Microsoft. I am trying to help others.

Things Right in "Five Things Wrong With SharePoint"

#3. There are two SharePoint products, which is confusing

As I mentioned before, this applies to a lot of the Microsoft product line.

#4. Support for SharePoint is lacking.

Is it time for Microsoft to close down the microsoft.public.sharepoint.teamservices newsgroup?

In my biased opinion, there are other good community resources not mentioned: SharePoint Blogs and SharePoint University forums.

5. Microsoft has not stated a strategic direction for SharePoint

Sad, but true. There is a lot of "customer evidence," but I can't find a roadmap.


Mr. Drips' conclusion, however, is somewhat positive:

Despite its lack of support and direction from Microsoft, SharePoint Portal Server still remains a viable product for an Intranet portal, document library, and company forum. To make all of those pieces work takes a tremendous amount of effort and education that — unfortunately — is not readily available to the end user community.

I am doing my best!! The Intranet Portal aspect is covered on IntranetJournal.com.

Friday, July 08, 2005 2:21:51 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Thursday, July 07, 2005

When using document libraries in SharePoint try to avoid the temptation of creating nested folders.
Edward Ferron: SharePoint Tips #1

I wholeheartedly agree! I have lost count of the number of times that I am asked why documents in a folder are displayed inside a web part. The "list" nature of document libraries is just not compatible with folders, IMHO.

I went so far as to create a document library template that has a text column named "Folder" and groups the entries on that column.

Thursday, July 07, 2005 3:50:33 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Thursday, June 23, 2005

The latest article in my SharePoint series on Intranet Journal went live today:

 Enabling Users to Maintain SharePoint Content

While most of the beginning of the article is basic coverage of the Content Editor Web Part, this article lays the foundation for the discussion of tools and techniques to help site users post and organize content with minimal technical assistance. In the months to come, I will cover these tools (custom Web Parts and custom Web Part Page templates) in depth.

I welcome your feedback or article ideas.

Thursday, June 23, 2005 3:24:59 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Monday, May 09, 2005

The next article of my SharePoint series on IntranetJournal is now available.

Part 4 describes a method for integrating a legacy Web application inside a SharePoint site.

Monday, May 09, 2005 8:50:19 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Tuesday, April 19, 2005

Overview: Windows SharePoint Services 2.0 SP2 Beta in Windows Server 2003 R2
A Microsoft Word document detailing the new features available in the beta of Windows SharePoint Services 2.0 SP2.

Tuesday, April 19, 2005 8:21:06 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Wednesday, April 13, 2005
My recent article discussed using a Data View Web Part. MSDN has an article on Customizing the Data View Web Part in FrontPage 2003 that covers the DVWP in greater detail. Also, be sure to check out the Additional Resouces listed at the end.
Wednesday, April 13, 2005 10:18:52 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Wednesday, April 06, 2005

The next installment of my SharePoint series is now available:

Building a Searchable Phone Directory with Windows SharePoint Services
A standard item in every intranet is a staff/employee list. Most companies implementing Windows SharePoint Services (WSS) are large enough to have a database that contains all employees. We will use the aggregation features of SharePoint to include data from this database into our intranet.

Wednesday, April 06, 2005 10:46:48 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Wednesday, March 23, 2005

I wrote before about how you could try Windows SharePoint Services without purchasing a license. Now, Microsoft's Technet site has created a virtual lab for SharePoint Portal Server. This includes a downloadable training guide and 90-minute blocks for each module.

If you are just evaluating SharePoint, this is a perfect opportunity.

Wednesday, March 23, 2005 8:33:04 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
Wednesday, March 23, 2005 8:28:25 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Monday, March 14, 2005

Mike Fitzmaurice
"I'm the developer evangelism contact within Microsoft for Windows SharePoint Services and SharePoint Portal Server."

He has only posted a few times, but the information is very relevant to WSS/SPS developers. The FrontPage RPC nugget is very timely for a project I'm on right now...

Monday, March 14, 2005 9:55:05 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Wednesday, March 02, 2005

In Part 2 of my continuing series on Intranet Journal, I look at the basic installation of a corporate intranet and some basic customization options.

Thanks to Bob Mixon for his technical review.

Wednesday, March 02, 2005 10:43:58 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Thursday, February 24, 2005

I had an interesting email conversation today discussing SharePoint and it occurred to me that it is possible to try it out free of charge.

Jan. 12, 2006: Updated the links to point to the most recent versions.

Thursday, February 24, 2005 2:08:12 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Monday, February 07, 2005

The first article in my new series at IntranetJournal.com is now posted.

You can post feedback on IntranetJournal's Discussion Forum or post comments on my blog site.

Monday, February 07, 2005 3:57:19 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Monday, January 31, 2005

I wrote in my previous post that you should use http to access web part resources. Well guess what -- there is more to it.

If your WSS site is running with anonymous access off, then the attempt to get the resource will fail with a 401 Unauthorized error. This happens because web requests made in code will perform an anonymous GET.

In my specific case, I was attempting to read an XSLT file from the resource directory by passing the URL to the file. To solve the security issue, the Load() method on the XslTransform object needs a security resolver. The code necessary for this (which I copied from the .Net SDK):

' Build the URI to the resource
Dim resourceURI As Uri = New Uri(ClassResourcePath)
Dim xslPath As String = Path.Combine(resourceURI.ToString(), "filename.xsl")

' Create a secure resolver with default credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
Dim sResolver as XmlSecureResolver = new XmlSecureResolver(resolver, xslPath)
sResolver.Credentials = CredentialCache.DefaultCredentials

' Get the xsl file
Dim trn As XslTransform = New XslTransform
trn.Load(xslPath, sResolver)

Monday, January 31, 2005 2:14:25 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Thursday, January 27, 2005

If you have a resource required by a web part, WSS has a defined way to store and access this resource. Custom web parts can be deployed to the wwwroot/bin directory or to the global assembly cache (GAC). The deployment location also affects the location of the resources directory. For GAC deployments, the directory is mapped to /_wpresources/[assembly_name]. For bin directory deployments, the directory is mapped to /wpresources/[assembly_name].

The workaround to this is to use the ClassResourcePath property. The SDK advises use to "Use the path returned by the ClassResourcePath property to prefix resource URLs for the browser to fetch."

The gotcha comes in when you try to access this external resource directly from disk when the context is a sub-site. Since the file is in a directory, I have always grabbed the file like this:

Dim resourceURI As URI = New Uri(ClassResourcePath)
Dim partResourcePath as String = Context.Server.MapPath(resourceURI.AbsolutePath)
.
.
.
Dim resourcePath as string = Path.Combine(partResourcePath, "somefile.xsl")
Dim trn As XslTransform = New XslTransform
trn.Load(resourcePath)

What is happening, however, is that the sub-site address is included in the ClassResourcePath. This is mapped correctly when requesting the file via the URL, but not whem mapping the path to a physical directory.

When using ClassResourcePath, be sure to use http to access the resource.

Thursday, January 27, 2005 4:16:30 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Friday, January 21, 2005

I've left pieces of this here and here. But perhaps a little code would help. :)

Public Class MyWebPart
Inherits Microsoft.SharePoint.WebPartPages.WebPart

Private Const TRACE_CLASS_ID As String = "MyWebPart"

Protected Overrides Sub RenderWebPart(ByVal output as System.Web.UI.HtmlTextWriter)
Dim TRACE_CATEGORY As String = TRACE_CLASS_ID + "RenderWebPart"

Try
Context.Trace.Write(TRACE_CATEGORY, "Trying something")
' Do something here

' pretend there is a variable
Context.Trace.Write(TRACE_CATEGORY, "variable value: " + variable)

output.Write("you html code goes here")

Catch ex As Exception
Context.Trace.Warn(TRACE_CATEGORY, ex.ToString)
End Try

End Sub

Friday, January 21, 2005 12:35:56 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Thursday, January 20, 2005

Tariq has a post that details how to create a tabstrip (like a meeting workspace) using a list as the data source.

Thanks Tariq!

Thursday, January 20, 2005 11:02:32 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Wednesday, December 29, 2004

The February 2005 issue of MSDN Magazine has an article titled Add a Recycle Bin To Windows SharePoint Services (no link to the article yet).

Written by Maxim Karpov and Eric Schoonover

Wednesday, December 29, 2004 3:42:51 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Wednesday, December 22, 2004

I had the opportunity to play around with Firefox the past few days. For the most part, WSS sites look just fine. That is most likely because WSS sites use table for their layout instead of using CSS.

The only problem that I've run across is with lists have collapsible groups. The javascript to expand/collapse the groups does not work.

Wednesday, December 22, 2004 10:09:45 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Friday, December 17, 2004

Maurice Prather has joined the conversation about SharePoint development.

Maurice asks if the developer community is too small. Compared to what we see on ASP.Net, it is. But I have been seeing more SharePoint related posts and pages almost daily. So I going to try and do something about it.

I know there are several SP community sites already (see the list on the left), but I want to build a developer-centric community. So, I've registered SharePointDevelopers.org. (There's nothing there yet!)

Watch this space for more news. And, if you have ideas, please post comments here.

Friday, December 17, 2004 11:14:10 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Thursday, December 16, 2004

An update to the SharePoint User Manager program I mentioned a few weeks back has been released. With a new name: SPUM2003.

Not sure I like the name, but the tool is very nice.

Thursday, December 16, 2004 11:02:00 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 

Mads Nissen has a very good post about the SmartPart and its effect on the SharePoint community. He also includes a great graphic showing the various customization methods. You must read it!

Mads also points out that Steve Ballmer stated SharePoint is the number one growing product, yet the developer support is certainly less that other areas of Microsoft's business. I second his call for more content.

Amanda, your virtual SPS user group might help in this area. Any news on that?

Thursday, December 16, 2004 8:11:43 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Wednesday, December 15, 2004

Renaud COMTE has released a “Christmas Gift” to the SharePoint community -- Document Library Browser 1.0!

The screen shots in the article show a web page that looks very much like Windows Explorer: a list of directories on the left and the contents of the directory on the right. This just might be the view that get's my users more comfortable with the document library.

Thank you Renaud! And Merry Christmas!

Wednesday, December 15, 2004 1:25:23 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Sunday, December 05, 2004
Microsoft SharePointPSSearch SQL Syntax (Preview)

This download includes a preview of the reference documentation for Microsoft® SharePointPSSearch, the SQL Syntax used for Microsoft SharePointPSSearch Full Text Search.

Sunday, December 05, 2004 6:38:39 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Tuesday, November 23, 2004

Jan Tielens has released SmartPart for SharePoint! This product brings easy-to-design ASP.Net User controls to a web part page.

More info on the GotDotNet workspace.

Tuesday, November 23, 2004 3:30:52 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Thursday, November 18, 2004

I am a few weeks behind, but I just discovered a good tool for SPS/WSS administrators. SharePoint Explorer from Navigo Systems is a WinForms application that shows a tree-view of your server as well as displaying properties of Sites/Lists/Items. See the details on the download page.

I'll add my recommendation to all the others on the web.

Thursday, November 18, 2004 10:15:12 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Wednesday, November 17, 2004

Anyone who has worked on SharePoint (or WSS) for any length of time has certainly encountered many situations where a site or list would be very helpful. I had just a situation today -- an ad hoc committee is forming to organize a “Day of Service” for the company.

I responded with an offer to create and moderate a WSS site for the group. That led me to think about other ways that the SharePoint story could be spread. I would love to get feedback about how you've approached these situations.

Wednesday, November 17, 2004 2:53:25 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Thursday, September 23, 2004

Windows SharePoint Services Software Development Kit (SDK)

This update of the SDK includes new documentation for the Web Part Page Services Component (WPSC), which is a client-side somponent that adds dynamic capabilities to your Web Part Page by providing Web Part discovery, notification, and state management services used by Web Parts and Windows SharePoint Services RPC methods.

Thursday, September 23, 2004 10:05:07 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Friday, September 17, 2004

Microsoft released an update to the XML that provides the Intellisense in Visual Studio.

Windows SharePoint Services: IntelliSense XML File

Friday, September 17, 2004 8:48:45 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Thursday, September 02, 2004

A lot of places are noting the release of a service pack for WSS, but the Admin Guide has been updated as well.

Windows SharePoint Services Administrator's Guide

Thursday, September 02, 2004 4:38:11 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Thursday, August 12, 2004

A community site, Attune Systems, has the PowerSearch tool installed. Type “experts” in the search box (top-right for the unfamiliar).

Thursday, August 12, 2004 3:31:07 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Tuesday, August 10, 2004

My debugging method of choice is the ASP.Net trace feature. In web config, I set the trace options:

    <trace enabled=”true” pageOutput=”true” localOnly=”true” />

This will dump a bunch of information at the bottom of the page. (WARNING: Do not do this on a publicly accessible machine. It will compromise security.)

In my web part, I include a call to Context.Trace.Write at the beginning of each routine. In the catch blocks, I call Context.Trace.Warn(ex.ToString). This puts the entire exception into the trace output. Plus, it avoids the WSS error page (“The [Name] Web Part appears to be causing a problem.“)

Tuesday, August 10, 2004 2:48:37 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Tuesday, August 03, 2004

PowerSearch™ for Windows SharePoint Services goes beyond the built-in searching capability of WSS to provide your users the ability to search throughout entire site collections, no need to un-ghost your sites or edit your individual pages -- it just drops right in!

Tuesday, August 03, 2004 9:13:31 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Sunday, July 11, 2004
# Wednesday, July 07, 2004

Thanks to a co-worker (no blog) for this one.

Wednesday, July 07, 2004 9:18:32 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Tuesday, July 06, 2004

An interesting problem today. A SP List is being used to track responses to an invitation. For this event, an entry only needs to be created if the invitee wishes to attend, so the only required field is the name. The typical list processing is a bit overkill, since typing the name is not really necessary, and the the Attending field is always yes.

It seems that I need to wrap a call to the web service or object model. There is no built-in RPC method to insert/update a list item.

Tuesday, July 06, 2004 9:20:26 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Friday, May 28, 2004

Again yesterday, Microsoft released updates to the SDK. These new versions don't seem to be much different from those released recently, except the default installation path is under Program Files. It seems the integration with Office is occuring at the documentation level as well.

There are two different downloads:

The first one is a superset of the second, adding information about Portal Server.

Friday, May 28, 2004 7:58:47 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Tuesday, May 25, 2004

This SDK also includes new documentation for the Web Part Page Services Component (WPSC),

Download here.

Tuesday, May 25, 2004 9:27:12 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 

From John West, Principal Consultant with Microsoft:

Default Security Rights

The TechNet article John cites:

Microsoft SharePoint Products and Technologies: Technical Overview

 

Tuesday, May 25, 2004 9:14:32 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 

I added an article to my SharePoint blog that describes Setting the DisplaySize on a Text Field.

Tuesday, May 25, 2004 8:50:01 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Monday, May 24, 2004

When the form for a list is displayed, the input box for a single-line text field is always big -- regardless of the max length specified for the field. Why?

I don't have the answer, but I did hack a work-around. Most of the code necessary to display a different size box is already part of the product, so it's a relatively benign hack.

Details later...

Monday, May 24, 2004 3:37:13 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Monday, May 17, 2004
Monday, May 17, 2004 4:23:14 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Thursday, April 29, 2004

I was in the middle of answering a question on the message board at SharePointU and I thought it would make a good blog entry.

The WSS framework provides a mechanism (called tokens) to uniquely identify the HTML DOM elements of each part. When writing client-side script in a web part, you can use the token _WPQ_ to refer to the current web part. The poster in the forums is using the token to reference the WebPartCaption element:

            var wpc = WebPartCaption_WPQ_;

However, this is not working because the _WPQ_ token has been changed by WSS. Looking at the page source in IE will show WPQ1, WPQ2, etc. To get the script to work, we need to use the ReplaceTokens method of the WebPart object.

ReplaceTokens takes a string as input and returns the same string with all of the WebPart tokens converted in to their appropriate values. A list of the available tokens is included in the SDK page on ReplaceTokens().

I also posted a sample.

Thursday, April 29, 2004 8:44:19 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Sunday, April 25, 2004
FrontPoint is a blog written by folks from the dev/pm/test teams who create FrontPage.
Sunday, April 25, 2004 8:58:26 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Monday, April 19, 2004

We are live with our WSS site. The cut-over actually happened Thursday of last week. On Friday, the network team worked on the latest patches, so having multiple machines was very nice.

On the to-do list now is migrating legacy content into the WSS lists. The ultimate goal is to have our content in the search results, but keep our existing user interface. I've written a console program to syncronize a list (and other list activities like viewing the schema and contents). I'll try to post the concepts later this week.

Monday, April 19, 2004 4:56:16 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Tuesday, April 13, 2004

I have a few overview/training sessions coming up, so why not use the WebPart user interface look for the slides. Download the WebPart-inspired PowerPoint template (created in PP 2003).  SharePoint.pot (35 KB)

Tuesday, April 13, 2004 3:28:08 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Monday, April 12, 2004

A few items about searching with WSS (not Portal) that are worth remembering:

  • SQL Server is required. WMSDE does not support search.
  • To search non-office file types, an IFilter must be installed on the SQL Server machine.
    • Acrobat IFilter: http://www.adobe.com/support/downloads/detail.jsp?ftpID=1276
    • If you already have Acrobat files in the system, you need to rebuild the full-text index. In SQL Enterprise Manager, expand the content database. In the Full-Text Catalogs node, right-click on the catalog (ix_databasename) and choose Start Full Population. 
    • Configuring WSS to display Acrobat (and other) icons in search result: KB 832809

 

Monday, April 12, 2004 12:27:28 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Sunday, April 11, 2004

I was refering to the production server via two different names (//MachineName and //portal.company.net). The web-service based operations (FrontPage, WPSC) would not work.

I found a few different KBase articles that lead me to an answer. 830342 discusses adjusting the virtual server to match the host header name. 832816 discusses the inability of WSS to find a server instance.

In IIS Admin, I added portal.company.net to the Web Site Idenfication for the Virtual Server:

- Right-click on virtual server (i.e. Default Web Site) and choose Properties
- On the Web Site tab, click Advanced
- In the "Multiple identies for this Web site" section, Click Add
- For IP address, choose the same setting as the existing entry
- For TCP port, choose the same setting as the existing entry
- For Host Header value, enter [portal.company.net]

Sunday, April 11, 2004 10:55:23 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 

This post echoes my experience...

Sunday, April 11, 2004 8:55:45 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Thursday, April 08, 2004

My default.aspx page has four parts.  Everything looks and works as it should.

I added a new part. This part has client-side script that uses the WPSC to read and save a custom property. It does not work. (Here we go again...)

What I've discovered is that the WPSC is using the web services (in this case, GetWebPart) to communicate with the server. The call to this service is failing with a status of 500 - Server error. (Very helpful message, don't you think!!)

So, I attached the debugger to the iexplore process and trapped the SOAP messages. The response the the GetWebPart call is a soap:Fault with an error string of:

A Web Part or Web Form Control on this Web Part Page cannot be displayed or imported because it is not registered on this site as safe.

I found the Web Part Maintenance page, which is located at /_layouts/1033/spcontnt.aspx. This page lists all the web parts on the specified page and allows you to “close” or delete them. Very useful.

In my case, however, all of the custom web parts are listed as Error!!!

So, after four hours, I'm lost.  How in the world can I see the parts if they are not safe?

Help.  Please.

Thursday, April 08, 2004 11:03:33 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Wednesday, April 07, 2004

That thud you heard was my next web part crashing...

I'm converting the Personal Web Links part from SQL Digital Dashboard v3 (DDv3) to Windows SharePoint Services (WSS). The effort was not very difficult: a few CSS class name changes, a custom property that ShouldSerialize, referencing WPSC instead of DDSC, removing obsolete JavaScript functions, updating the XSL from the “TR/WD-xsl” namespace to the “1999/XSL/Transform” namespace. Everything looks good on my development machine, but other users saw nothing.

My debugging method of choice is the ASP.Net trace feature. In web config, I set the trace options:

    <trace enabled=”true” pageOutput=”true” localOnly=”true” />

This will dump a bunch of information at the bottom of the page. (WARNING: Do not do this on a publicly accessible machine. It will compromise security.)

In my web part, I include a call to Context.Trace.Write at the beginning of each routine. In the catch blocks, I call Context.Trace.Warn(ex.ToString). This puts the entire exception into the trace output. Plus, it avoids the WSS error page (“The [Name] Web Part appears to be causing a problem.“)

My exception output indicated an error accessing C:\WINDOWS\temp\faqvgg2l.dll(??). Thanks to the stack trace, I was able to determine that this dll contains the script embedded in the XSLT in an msxml:script tag. Fortunately, that function can be moved into the web part assembly, so I'm on my way.

Wednesday, April 07, 2004 1:40:52 PM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 

I found a couple of tips from the microsoft.public.sharepoint.* newsgroups and I'm posting them here for future reference:

Newsgroup: microsoft.public.sharepoint.windowsservices
Subject: RE: Cross-site announcements
Date: Wednesday, April 07, 2004 4:22 AM

Please follow the steps below:

1. Open and edit the subsite page in FrontPage 2003.
2. Select Insert-->Database-->Data view-->Manage catalog.
3. Add a new catalog and type the main site URL in "Location".
4. After that, you can see all the data in the main site.
5. Drag the announcement list from the "SharePoint Lists" to the sub site
page.

UPDATE: Jan Tielens went further - he actual did this and included screen shots! Thanks Jan.


Newsgroup: microsoft.public.sharepoint.portalserver.development
Subject: Re: Re-Ghosting an Unghosted .ASPX Page
Date: Monday, March 29, 2004 7:58 AM

The ghost page in SPS 2003 means using the template page directly. The ghost settings will be saved in the "Docs" table. ... For this item, there is one column named Content. By default, the value for this column is "null", which means SPS will get the information from the Template. However, after we edit the page in FrontPage, SPS will save the page information to this column. In other words, SPS will use the data in the database and ignore the information from the Template.

For the default sps page, we can reset the value with the SQL commands below:

--select the portal database
use sps1_site
go
--retrieve the page id
SELECT ID FROM Docs
WHERE (leafname= 'default.aspx') 
    AND setuppath like '1033\SPS\default.aspx%'
go
--set the content to null
UPDATE Docs
SET Content = NULL
WHERE (Id = '{A3DE463E-D6E9-4A8C-A2D2-8D49562442B7}')
--please replace the id with the value on your side

Wednesday, April 07, 2004 8:38:25 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Monday, April 05, 2004

I posted a new article to the SharePoint blog:

A description of the code and HTML to replicate Microsoft's Tool Pane user interface. Sample code is included.

Monday, April 05, 2004 8:54:14 AM (Central Daylight Time, UTC-05:00)  #    Comments [0]  | 
# Friday, April 02, 2004

We "launched" the beta site yesterday. The beta group has 25 users, all in the IT department, including the all-important help desk and training department. The "site" is really just one page -- and it contains only what is on the current home page. We don't want to throw new things out yet.

The page has three web parts, plus a fourth in the virtual server gallery. Two more parts are under development and will be added next week. These parts:

Announcements

Yes, I know that announcements are included. We have two years worth of announcements in the current system that don't really fit in the default announcement list. Also, we don't want a different interface for the end users, so we just brought over the existing code.

That code is from the old SQL Server Digital Dashboard. (That is a story for a different day!) The web part is just a DIV tag and a bunch of client-side script. The script uses the MSXML dll's to pull the announcement data from SQL (using SQLXML) and an XSL stylesheet from the legacy web server. The script runs the transformation to the innerHTML property of the DIV.

Long term, we'll migrate this data into a WSS list so that it is included with the search results. I expect that I'll need to keep the existing format, so I'll be using another custom part, or a custom view if possible.

Corporate Links

This is just a WSS list that is populated with specific links to our corporate websites. The end-users can only view this. The fun thing about this part is that I wrote a small .Net console application to populate the list using the WSS Web Services. (That console app will most likely grow to be the conversion program for the announcements.)

Intranet Navigator

This is the part with the custom toolpart. The top-level "units" of the organization are displayed. Click on one and it expands to show the child units. The other top-level items are then hidden. The tool pane allows you to select which down-level items are displayed in the initial view.

Department Roster

This is just a fancy phone list. Each of the department pages has this part to show their members. The part reads an SQL table related to the HR system, so the built-in members part was not used.

Our first feedback meeting is this afternoon.  I hope it goes well!

Friday, April 02, 2004 11:06:18 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Tuesday, March 30, 2004

I was looking throughout the SDK help file for these CSS Class Definitions and never did find them!! Of course, now that I've scoured the source of many pages, I find it...

Tuesday, March 30, 2004 8:52:39 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 

I hurriedly wrote the post last night but did not have time to explain why.  My own little cliffhanger!

My part needs to get data from an XML file, both in “regular” mode and in “tool pane” mode. I figured that I could put the file in the ASP.Net application cache and grab it during On_Load(). This seems to be a bit different -- rather than having declared controls that show some data, I have data that defines the controls. This doesn't seem to match up well with the WebPart model.

So, I moved the XML load routine to On_Init(). But, a valuable lesson learned.

Tuesday, March 30, 2004 8:17:07 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Monday, March 29, 2004

As I'm working thru my WebPart development, I occasionally received an error: Object Reference not set to an instance of an object.

Turns out that the order of events in the WebPart class are slightly different when the tool part is being displayed:

“Regular“ mode “ToolPane“ mode
New New
On Init On Init
On Load CreateChildControls
CreateChildControls On Load
GetToolParts
On PreRender On PreRender
RenderWebPart RenderWebPart

Monday, March 29, 2004 4:06:14 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 

I posted a new article to my SharepointBlog titled ToolPane Customization. (I practice code re-use all the time -- even in the blog titles!) None of this is really ground-breaking, just some background on what I'm trying to do. I don't know how many parts the series will have, but I hope you'll stick around for the series.

Monday, March 29, 2004 8:38:29 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Friday, March 26, 2004

I've been deep in coding my first web part. It is a rather complicated one, but I need to replicate one of the functions on our existing intranet site.  I'll post the details in a later post, because I want to document it carefully.

Any of you WSS developers out there, drop me a note. I know your out there, and I want to find you!!

Friday, March 26, 2004 2:14:08 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Friday, March 19, 2004

I came across the following post:

From: Tom Rizzo [MSFT]
Subject: Free Chapters and samples on SharePoint 2003 Development
Newsgroups: microsoft.public.sharepoint.portalserver.development
Date: 2003-10-06 22:42:29 PST

I just finished my Exchange and Outlook book (linked below) and the book was too long to include all the SharePoint material I wrote so we made it available for FREE on the mspress website. It's about a 500 page book on WSS and SPS 2003 development including web parts (basic, async, toolpane, toolparts, connections, galleries, etc) and the API (document libraries, lists, etc).

Be sure to download the supplemental chapters and also the sample applications for the book.

Let me know if you have any questions or comments. Enjoy!

Tom

--
Looking for a good book on programming Exchange, Outlook, ADSI and SharePoint? Check out http://www.microsoft.com/MSPress/books/5517.asp

This posting is provided "AS IS" with no warranties, and confers no rights.

This is terrific stuff!!

I noticed a descrepancy on page F-68. When discussing the HtmlDesignerAttribute, there are a few examples. Look at these two (specifically, the bold part):

[HtmlDesignerAttribute(BrowserBuilderType.Dynamic,
"DialogFeatures=center:yes;dialogHeight=11;dialogWidth=12;status=no;"
+ "resizable=no;unadorned=yes;")]

[HtmlDesignerAttribute(BrowserBuilderType.Dynamic,
DialogFeatures="center:yes;dialogHeight=11;dialogWidth=12;"
+ "status=no;resizable=no;unadorned=yes;")]

The first example has DialogFeatures included in the quoted string, the second does not. I can't get either version to work in a VB project. Can anyone help?

Friday, March 19, 2004 4:23:49 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 

Wayne Hall is asking about using a SharePoint list to track assets in IT.

 

Personally, I would not want to use the plain interface in SP lists for entering this much information. I would want a rich front-end experience (WinForm, InfoPath).

 

My preference would be to use an automated discovery tool (Altiris comes to mind) and integrate their back-end into my site.

Friday, March 19, 2004 1:38:01 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 

I'm going to get 8-10 machines to act as drones for the test. They are old, retired desktops, but they can handle running 10 threads, with 10 connections on each thread, for a simulated load of 100 users each. That will definitely stress the system more than the user community.

As part of my setup/experimenting, I used the load balance administration program to stop one of the servers in the web farm. The other server picked up the load after a few seconds.  Out of 20,000 socket connections, only 100 failed! I expect that the ratio will be higher in the event of a failure, since the load balancer detection process has some latency. I did a similar "shut down" in the SQL Cluster, and the delay was about 45 seconds.  This will certainly impact the users more, but at least the backup machine will handle the load while I fix things.

So far, I'm very encouraged about our hardware.  I hope to get more testing done over the weekend.

Friday, March 19, 2004 9:13:17 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Tuesday, March 16, 2004

MSDN has an article on the Web Part Packaging tool (Wppackager). A developer on my staff took it for a whirl today.

Having an MSI for the web parts will be critical for us. With a server farm, the content must be replicated on all the servers. For standard ASP.Net applications, I can use the Distributed File System service to synchronize folders on multiple servers. (And it works very well!!) But with the web.config entries and web part resources, it will be more complicated for WSS sites.

My first impression (as the guy running the install, not the one creating it) is pretty good. One of the resources was not included (a file that is loaded via a SCRIPT tag), but I don't know whether it's a build problem or an install problem.

Tuesday, March 16, 2004 3:40:31 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 

The next step in our setup is to stress test the web farm/sql cluster. I considered Application Center Test (ACT) that is included in Visual Studio Enterprise, as well as the Web Application Stress tool (WebTool) (WAS Tutorial).

ACT is integrated with Visual Studio .Net. It also has a command-line interface, so you can schedule tests for unattended operation. However, the version bundled with .Net does not allow the test to have multiple client machines. (I couldn't find any other version, however. I assume there is a version included in Application Center 2000, but that's a big load balancing solution that I didn't want to investigate.)

WebTool is an older product, but is still usable. The key part, for me, is that it installs a service on the machine. Each machine that has the service installed can be controlled by any other machine with WebTool installed. In our load-balanced web farm, I need to simulate traffic from different IP ranges. This distributed testing model will do that quite nicely

Tuesday, March 16, 2004 10:04:40 AM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
# Wednesday, March 10, 2004

As I mentioned, I am contributing to the community blog at SharePointBlogs.com.  My main blog tool, dasBlog, has a cross-post feature written specifically for this situation.  So, blog entries at the main blog (http://www.schaeflein.net/blog) that are in the SharePoint category will also appear at www.sharepointblogs.com/spdiary.

Wednesday, March 10, 2004 10:16:46 PM (Central Standard Time, UTC-06:00)  #    Comments [0]  | 
Search

Powered by: newtelligence dasBlog 2.2.8279.16125

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010, Paul Schaeflein

Send mail to the author(s) E-mail