Fear and Loathing
Gonzo blogging from the Annie Leibovitz of the software development world.
-
Updates to the SharePoint Template Project
Thanks for the great response from everyone on my SharePoint Template Project. I think it's going to be a great resource and I've already got a few people with things in the pipe already that are coming down for submission. I've made three adjustments to the project since starting it up based on some comments and email from a few people (thanks Maurice!).
First, the installer will use the Microsoft Installer XML (WiX) which is a project that builds installation packages from XML source code. I thought it only fitting to use another SourceForge project that Microsoft endorses to deliver the templates. Second is the change of license. I originally selected the GNU Public License (GPL) as the majority of projects are released under this but some people mentioned concerns about derivative work so I switched the project to use the Common Public License which is easier to understand, more flexible and better protects the submitters and their content. Third is not really a change but something I had totally forgotten about which was supporting languages other than English. I'm always stuck in English land with things but was reminded about the other 90% of the planet and the frustration of not having templates availalble in their native language available. So that'll be included in the new web site that's being setup for the project and part of the installer. Once a template is submitted they'll be the opportunity if someone can translate it for their native language and we'll just update the release of that template to include it. Hopefully we'll have a nice collection of templates in all major languages available for everyone as a result.
Again thanks to everyone who responded positively on the project and looking forward to working with you all on creating this much needed community resource!
-
Introducing The SharePoint Template Project
Hi guys,
With all the buzz about the recent templates released by Microsoft there seems to be a big "sigh" from the community. Not having custom solutions has been one of the larger gaps in SharePoint but demonstrates that you can accomplish a lot with just a little configuration and some creative thought. On numerous occasions I find myself in the newsgroups seeing people asking if they can build a Help Desk with SharePoint, or an Expense Tracking System, or a Call Board. The answer is of course yes. Always has been and always will. The problem however is that you don't get a lot of business solutions delivered without some work. Enter the SharePoint Template Project.
I created a new project site on SourceForge (yes, I'm not a big fan of GotDotNet and we haven't created my utopia of SharePointForge just yet) to accomodate this. The project provides an outlet for the SharePoint community to contribute and share list and site templates for the products under the Microsoft SharePoint technology banner (SharePoint Portal Server and Windows SharePoint Services).
These templates come in the form of binary .stp files or plain text xml schema files (along with any additional files like images, etc.). Users create the templates
either using SharePoint itself (saving them in .stp format) or with whatever xml/text editor they prefer. The templates are uploaded to a SharePoint server and used as a boilerplate by SharePoint during site creation.Templates in this project will be created by the community and packaged in a common installer format (MSI) so that end-users need only download the MSI
and run it on their SharePoint server. A template MSI will be provided for contributors to the project which includes the template installer, full or custom selections for installation (users will be able to choose what templates they want to install), graphical preview for each template (if the developer includes them) and option to create sample sites based on the templates chosen.Currently there are a few handfuls of templates out there that are available (the 30 Microsoft recently released, a dozen or so from a FrontPage Customization site, and a smattering of some here and there from some individuals). This project intends to provide a central outlet for both creating and sharing new templates and puts it together in a nice package so you're not stuck spending hours installing the latest batch.
I'll provide the MSI package that will install these, all you need to do is join the project and contribute the content (I'll put together some templates as I can find time as well). The templates can be anything (a blog, a project management site, a time sheet tool, whatever) so if you have something you can share let me know via email or join the project (you'll need to sign up to SourceForge or send me your SF name so I can add you). As SourceForge only allows open source projects, all templates in this project are released under the GNU General Public License (GPL) so be sure you understand that before you submit anything.
Here's to building a centralized community for sharing templates for all sorts of solutions using your favorite tool and mine, SharePoint! You can find the SourceForge Project Site here. Thanks!
-
Fixing InfoPath Forms in Application Templates
With the recent release of the 30 or so (have to be careful as the number seems to change everytime you look at it) WSS site templates that Microsoft has provided us, some people are scratching their heads wondering why these OOTB solutions are not so out-of-the-box. Read on to find out why and how to correct these problems.
For the most part, the sites work fine. Install the template, create a site and you're off to the races. For some however there are parts of the sites that will challenge you for a credentials and others that ask for locations of Web Services. This is part and parcel in the way that InfoPath forms are stored and work with Windows SharePoint Services.
With InfoPath forms stored in a WSS site you can (with Service Pack 1 installed) consume the Web Services that WSS offers and use this to populate drop down lists, lookup tables, etc. in your InfoPath form. This is great for something like a request form where you want the lookups to be dynamic and controlled. It does however present a problem when you try to move the forms to another server like how the templates were offered up recently for download.
We'll walk through fixing the Travel Request site as it's one of those ones that needs some extra care before you can start using it. You can use the principles here for any of the other templates.
The original forms for the site were created on a specific server by the folks at Quilogy so when you click on the Submit a New Travel Request from the home page you'll see this:
Why is the InfoPath form trying to connect to this Web Service? Simple. There are lists embedded in the form that are being loaded from it and need information from the site. Of course you don't have credentials for their site plus you'll want your forms to be reading from your own site. So here's how to fix this.
First click Cancel on the dialog above and quit InfoPath. Now return back to the site and select Travel Request Form from the side navigation bar. This is the form library that holds the form you fill out when you launch it. Select Modify settings and columns for this form library under the Actions pane. Now click on Edit Template under the General Settings. This will launch InfoPath so we can change our form to point to our own site.
Choose Tools then Data Connections from the main menu. You'll see the connections that this InfoPath form has back to the SharePoint site.
So we see Departments, Employees, currencies, and Main submit. The first three are lookups and Main submit is for sending the form back to SharePoint (the Submit to SharePoint button on the form). Select Departments and click Modify. This brings up the dialog to change the settings for this connection:
The first page is the URL to your SharePoint site. This is the main thing to fix because we want to point it to our own site. Enter the URL to the site here and click Next.
You'll notice that it took a second for the next step to come up. This is because the Wizard actually goes to your site and pulls back the lists and libraries that are available. If you have added one, it will appear here. Now select Departments and click Next.
Now you need to select the fields that will be available in the form. This is usually just the name but you may need to play around depending on the form you have. Also from the Data Connection screen above it tells you some details about the connection (like if it loads each time the form loads or not). Use this information to help you decide how you want things configured. For now, click Department_Name and click Next.
The name will normally be filled in for you and you can choose to have it retrieve the information automatically. Click Finish and we're done with this Data Connection.
When you've added one, you might want to check it. Click on File | Preview | Default (or Ctrl+Shift+B, yes, just like Visual Studio). This will launch the form and connect to the SharePoint site to fill in any initial values. If there are any errors you'll see them or if the form challenges you then there's something that's loading from outside of your site. Continue to fix the fields until you have a form you can preview. The dropdowns should now work as expected and retrieve their values from your SharePoint site.
The last piece to modify is the submit part. This is the Main submit Data Connection and is currently hooked up to http://wsstemplates.quilogy.net/… so we want to change this. This one requires you to change the URL to the fully qualified path to the form library itself. So selected "http://wsstemplates.quilogy.net/TravelRequest_Basic/" and replace that with your own URL (keeping the "Travel Agent Request Form" intact) and click Next then Finish.
Now click Save and close InfoPath. Return to your site and launch the form (by clicking on Fill out this form in the form library or from the main page). The form should launch correctly and you can fill it out and click on "Submit to SharePoint" where it will save the new form back to the site and you can view it there.
That's it. Takes about 5 or 10 minutes to clean up the template but now you're ready to use it in your own environment. Hope that helps!
-
John Bristowe crosses over to the dark side
Just found out my buddy John Bristowe (of Quadrus here in Calgary) has now joined the Microsoft Canada team as the Western Canada Developer Evangelist! Nice job John and well deserved. John had been the Regional Director for Microsoft out here in Cowtown (non-Microsoft employee, MVP type thing) and he's also the ASP.NET MVP. Now that he's a blue badge, he won't be able to continue with his MVP status but that's cool since he's there for us development types to call on (along with Dan Sellers). You can visit John's blog here (which will probably be moving to blogs.msdn.com), which strangely enough doesn't have a post on this yet (I found out via Mark Relph's blog on the subject). Again, congrats John!
-
Blogging my way to PDC reminder
I’m Blog’n my way to the PDC!
If you haven’t heard, Channel9 has started a contest where you can win a ticket to the PDC, including an airline ticket and hotel! This is one amazing contest, and all you have to do to enter is have a blog, and post why you should win the prize. So here’s my official entry:
Here's some information to help you get to know me better:
Why me?
Why do I want to go to the PDC? Because I love to blog! And I'm prolific! Here's some of my more popular blog posts links according to Google :
- Fear and Loathing
- Adjusting the DisplaySize of your Fields
- Syncronization of Office Document Properties with WSS Document ...
- A Poor Man's Google for SharePoint
- The Collective vs. the Individual
Did I type up all this ugly HTML for this Blog post myself?
Heck no! I’m lazy! But that’s exactly why I need to go to PDC! The PDC is all about the future, and in the future, we’ll all be using cool technology to do things like typing tedious, boring contest entries. I’m getting a head start on the salad days, so I figured out how to use ASMX web service that Brendan wrote! To prove it, you can see that I'm on this list of other, lazy coders who would rather sit back and use a distributed Web Service to do their work!
Yeah, I'm persistent. Just click on the little bloghead above if you want me to shut up.
-
Application Templates Online
Hi guys. With the recent release of the
203060 Windows SharePoint Services site templates from Microsoft I decided to install them on my public SharePoint site for anyone to check out. You can find a summary Web Part Page here that lists all the templates with their descriptions and links to each site itself. These are only using the Custom templates as the Basic ones are the OOTB look and feel for SharePoint and not very interesting to look at.A few caveats about the sites I setup. This is setup so you can test drive the look of the templates to see what they offer. I have created a guest account that anyone can use (please don't abuse it) to contribute to any of the sites. When you hit one of the sites please use the following infomation:
User name: sharepoint.bilsimser.com\spguest
Password: SharePoint1Also the InfoPath forms are tied back to the SharePoint Web Services from the original site they were created from so opening them usually produces a challenge dialog from that site. I'm not going to go in and fix that, but it's about a 5 minute job in InfoPath if you decide to install the templates in your own environment.
So feel free to explore, learn, and share your thoughts on the new templates. Enjoy!
-
Join me in a Birds of a SharePoint Feather session at PDC
Stuart Celarier posted a blog (thanks Amanda!) about the Birds of a Feather sessions at PDC and was looking for submissions, ideas, and volunteers. I decided I would step up and offer to host a session, assuming there's interest from you, the community (oh yeah, you need to be there to participate to get the full effect, as if you hadn't clued in yet). As I spent the last 6 months building a 100,000 line custom business app on top of SharePoint I thought it would be appropriate to take a deep dive into doing something like this and the challenges and agonies of completely building a custom business solution on SharePoint. Here's the submission:
Submitter Name: Bil Simser Email: bsimser@shaw.ca Company: MVP Session Title: Custom Business Solutions in SharePoint Session Level: 400 Session Abstract: This session will dive deep down into the heart of SharePoint development and building custom solutions on top of, around, and inside of the SharePoint Object Model. -
20, no wait 30 (but really 60), OOTB Solutions for SharePoint
Microsoft downloads has a nice present today. 30 WSS site templates that you can use, customize, etc. Very, very slick. I was asked to review some of these awhile ago and made some recommendations but didn't realize they were going to be part of a package like this. Here's the rundown of what's available:
- Competitive Intelligence
- Absence Request and Vacation Schedule Management
- Project Team Management
- Board of Directors
- HelpDesk Dashboard
- IT Developer
- Employee Training
- Marketing Communications Campaign Site
- Employee Scheduling
- Legal Document Review
- Classroom Management
- Meeting Management
- Change Management
- Loan Initiation Management
- Professional Services Contractual Setup
- HR InfoPath Forms
- RFP Management
- Event Planning
- Expense Report Portal
- Room And Equipment
Very cool stuff and lots to play with. Check out the templates here and start building! Thanks to Renaud and Daniel on reporting this and thanks to me for regurgitating it.
Update: Each one listed above comes as a Basic Template and a Custom one.
Update #2: The custom templates look great. Basic templates are stock SharePoint look and feel. Custom ones have been jazzed up with FrontPage but are still SharePoint behind the scenes. Below is the Basic version of the RFP Template:
And this is the same content using the Custom template:
Update #3: Seem Microsoft is clever and we bloggers were talking about things before it was complete. The final toll - 30 templates each with a Basic and Custom version so that's 60 altoger. The additional 10 that were added after my first post about the 20 are:
- Case Work Management
- Employee Activities Site
- New Product Development
- Performance Review
- Professional Svcs Contracts
- Professional Svcs Site
- Public Official Activity
- Pulic Relations Work Site
- Recruiting Resource Center
- Travel Request
Update #3: As much as I like Microsoft for publishing these, there's been a few reports of problems. Heather said she had problems with adding a Web Part Page to a site and I just found out that some of the InfoPath forms are messed up. When you try to open a filled in for it complains that the xsn file isn't there. It is and you can design the form without a problem. Another issue is that a lot of this stuff seems to be hooked up to external sources (the InfoPath form I looked at needed credentials for a web service it was calling). So there's a bunch of work to be done to make these clean and usable but good attempt at Version 1.0
Thanks to some other Bloggers, TechNet has a great page for this now here with all 30 template packages, a small blurb, a thumbnail, and a link to the download page for the package. Enjoy.
-
What you create isn't what you see
Man, what a day. First off somewhere along the line I deleted my IE7 post accidently and now there's a pretty sufficient fire blazing at Toronto airport from an Air France plane that skidded off the runway. Yeah, a blog posting doesn't seem that significant after an event like that. Anyways, I don't think my IE7 post got cached because of the short time it was online but oh well, nothing too important. Note to self: blog offline first, then post. Yeah, I do things the old-fashioned way right online. I should know better.
Anyways, todays fun ways to torment your SharePoint experience is about what you create using custom definition files and what you get on the other end isn't always the same. Actually it's better.
Let's say you want to create a custom list so you make your copy of CUSTLIST (as we all do) and go and add some fields like so:
<Field Name="ProjectStatus" DisplayName="Project Status" ReadOnly="TRUE" Type="Text"/>
<Field Name="DraftDate" DisplayName="Draft Date" Type="DateTime" Format="DateOnly" ReadOnly="TRUE"/>Great. Now you deploy it and go into your Create page to find your new list all ready to be generated. Off you go and you have your new list with it's custom fields intact. Brilliant. But did you know that SharePoint is going to add a whack of new and cool fields that you can then use in displays? Here's the new stuff that gets added to your original definition after creation:
<Field ColName="tp_ID" ReadOnly="TRUE" Type="Counter" Name="ID" PrimaryKey="TRUE" DisplayName="ID" FromBaseType="TRUE"/>
<Field Type="Text" Name="Title" DisplayName="Title" Required="TRUE" FromBaseType="TRUE" Hidden="TRUE" ColName="nvarchar1"/>
<Field ColName="tp_Modified" ReadOnly="TRUE" Type="DateTime" Name="Modified" DisplayName="Modified" StorageTZ="TRUE" FromBaseType="TRUE"/>
<Field ColName="tp_Created" ReadOnly="TRUE" Type="DateTime" Name="Created" DisplayName="Created" StorageTZ="TRUE" FromBaseType="TRUE"/>
<Field ColName="tp_Author" ReadOnly="TRUE" Type="User" List="UserInfo" Name="Author" DisplayName="Created By" FromBaseType="TRUE"/>
<Field ColName="tp_Editor" ReadOnly="TRUE" Type="User" List="UserInfo" Name="Editor" DisplayName="Modified By" FromBaseType="TRUE"/>
<Field ColName="tp_Version" Hidden="TRUE" ReadOnly="TRUE" Type="Integer" SetAs="owshiddenversion" Name="owshiddenversion" DisplayName="owshiddenversion" FromBaseType="TRUE"/>
<Field ColName="tp_HasAttachment" Type="Attachments" Name="Attachments" DisplayName="Attachments" FromBaseType="TRUE"/>
<Field ColName="tp_ModerationStatus" ReadOnly="TRUE" Type="ModStat" Name="_ModerationStatus" DisplayName="Approval Status" Hidden="TRUE" CanToggleHidden="TRUE" Required="FALSE" FromBaseType="TRUE">
<CHOICES>
<CHOICE>0;#Approved</CHOICE>
<CHOICE>1;#Rejected</CHOICE>
<CHOICE>2;#Pending</CHOICE>
</CHOICES>
<Default>0</Default>
</Field>
<Field ReadOnly="TRUE" Type="Note" Name="_ModerationComments" DisplayName="Approver Comments" Hidden="TRUE" CanToggleHidden="TRUE" Sortable="FALSE" FromBaseType="TRUE" ColName="ntext1"/>
<Field ReadOnly="TRUE" Type="Computed" Name="Edit" Sortable="FALSE" Filterable="FALSE" DisplayName="Edit" AuthoringInfo="(link to edit item)" FromBaseType="TRUE">
</Field>
<Field ReadOnly="TRUE" Type="Computed" Name="LinkTitleNoMenu" DisplayName="Title" Dir="" DisplayNameSrcField="Title" AuthoringInfo="(linked to item)" FromBaseType="TRUE">
<FieldRefs>
<FieldRef Name="Title"/>
</FieldRefs>
</Field>
<Field ReadOnly="TRUE" Type="Computed" Name="LinkTitle" DisplayName="Title" DisplayNameSrcField="Title" ClassInfo="Menu" AuthoringInfo="(linked to item with edit menu)" FromBaseType="TRUE">
<FieldRefs>
<FieldRef Name="Title"/>
<FieldRef Name="ID"/>
<FieldRef Name="LinkTitleNoMenu"/>
</FieldRefs>
</Field>
<Field ReadOnly="TRUE" Type="Computed" Name="SelectTitle" Hidden="TRUE" CanToggleHidden="TRUE" DisplayName="Select" Dir="" AuthoringInfo="(web part connection)" HeaderImage="blank.gif" Sortable="FALSE" FromBaseType="TRUE">
<FieldRefs>
<FieldRef Name="ID"/>
</FieldRefs>
</Field>
<Field Name="InstanceID" DisplayName="InstanceID" ColName="tp_InstanceID" ReadOnly="TRUE" Hidden="TRUE" Type="Integer" Min="0" Max="99991231" Filterable="TRUE" Sortable="TRUE" FromBaseType="TRUE"/>
<Field ColName="tp_ItemOrder" Name="Order" DisplayName="Order" Type="Number" Hidden="TRUE" FromBaseType="TRUE"/>
<Field ColName="tp_GUID" ReadOnly="TRUE" Hidden="TRUE" Type="Guid" Name="GUID" DisplayName="GUID" FromBaseType="TRUE"/>Nice. Lots of great new columsn here that you can do things with in views, grouping, filtering, etc. The best part is that you can define this before these fields are created. Go ahead and put the ID field in for sorting a view or add the Order field to a view so you can see how SharePoint is sorting your list. Most of them are pretty self-explanatory like Created and Modified are DateTime fields when the item is created and updated. Author and Editor tell you who it was by. Edit is a cool one because it displays an Edit icon that links to your EditForm that's attached to the list. LinkTitle is the typical SharePoint menu you see that will allow you to check files out, edit in the appropriate client tool (Word, Excel, Powerpoint, etc.)
Anyways, something simple but keep it in mind when you're designing solutions as you can leverage these items. Have fun with it and as always use it for good, not evil.
-
I see dead pages
Who isn't afraid of ghosts? I am. Really. Disembodied spirits that aimlessly roam the Earth looking for souls to inhabit, haunt, or consume just isn't for me. However this post has nothing to do with ghosts but rather ghosting which strangely enough is not the art of hunting ghosts but rather touching SharePoint site pages using FrontPage.
There's been a fair amount of discussion on ghosting and unghosting pages in SharePoint. What it means, why should I do it, does it affect performance, etc. I'll leave those fabulous resources below alone on this but wanted to pass along a tip that I personally use to avoid ghosting completely.
- Create a web part page with just a single zone and put it into a scrap document library
- Place any web parts on that page and crack that page open in FP to do whatever you want with it (say convert it into a DVWP)
- Export the customized Web Part from the browser when you’re done all your modifications
- Import the DWP file back onto a normal site
Optionally you can delete the web part page you unghosted or the entire document library if you please. I keep mine around and use it as a sandbox so I’m not munging with my production sites in real-time with anything that end users would see. Works pretty well and never gets me into the place of having to re-ghost (using something like GhostHunter) my pages in a production site.
Here are a few great resources to get the big picture on ghosting:
- Ghosted and unghosted pages - part 1 of 2 (Maurice Prather)
- Ghosted and unghosted pages - part 2 of 2 (Maurice Prather)
- What you don't know about Front Page 2003 can hurt you (Barry Kouda)
- SharePoint Site Definitions (Robert Bogue)
And while we're talking about ghosts anyways, here's some great haunted house sites which have nothing to do with SharePoint: