I have a Public SharePoint Online site?

Yes. Yes you do. Well, if you have Office 365 and it is part of the license which you purchased. You didn’t have to do anything, you have a public facing (anyone on the internet can hit it just like a normal website) website.

Where is it?

It’s easy to find. Go into the SharePoint Online Admin Center


Select the first link on the left side navigation (the default) site collections


And in the listing on the right side of the page, it will be listed first under Public Website


The default URL will be http://yourtenantname-public.sharepoint.com.

And if you go there…You’ll see a nice SharePointy and Cloudy site…



Oh Cool! Now I can create a website like Ferrari in Office 365/SharePoint Online????

No. As of yet, SharePoint Online in Office 365 does not contain all of the super awesome Web Content Management and publishing controls that SharePoint 20XX on-premises does.



Ok, the public website is enough for my needs, can I create more than one?

No. Once you have one created, you cannot create another one. It will appear greyed out when attempting to create a new site collection.





White Paper – Office 365: Features, Benefits, and Considerations

imageI am pleased to announce the first in a series of white papers from Jornata on Future-Proofing your Business. The first in this series – Features, Benefits, and Considerations of Moving to Office 365 is now available on the Jornata website.

Please feel free to share with whomever you think may be interested in this topic, and watch this space, and the Jornata website for more white papers coming soon!

Description Meta Tag in SharePoint Publishing Pages

I guess the title is a bit misleading, because in SharePoint 2007 and SharePoint 2010, the Description meta tag does not exist.

After a bit of googling on Bing, I came up with several free solutions people have written, such as Waldek Mastykarz Mavention Meta Fields, WCM Utilities on Codeplex, to name a few. But the solution I landed on was so simple, so easy, so perfectly perfect, I went with it. I found it here: http://social.msdn.microsoft.com/Forums/en/sharepointecm/thread/d3583140-62de-4e5d-9a84-d0a1f9bff08d

Buried as an unmarked answer, within this thread. This works for both SharePoint 2007, and 2010 publishing pages, and it works well. Below is the reply I am referencing. So, Praggers, whoever you are, thank you.


A note for 2010 (and possibly 2007, I did not take the 2 minutes it would require to find out, sorry!), the “Description” field’s internal name is Comments. So be sure to change FieldName=”Description” to FieldName=”Comments” within the code for your page layout.

Thank you Praggers!

Content Query Web Parts, Anonymous Access, and the Dreaded CopyUtil.aspx in SharePoint 2010

I spent some decent time over the past couple of days trying to get a Content Query Web Part in SharePoint 2010, that was aggregating blogs from several different sites to “just work”, and was not having any luck. Basically, the CopyUtil.aspx page, which resides in the SharePointRoot/TEMPLATE/LAYOUTS/ folder, redirects you based on the ListID, ItemID, and WebID of the target item within the Content Query Web Part.

This work is being done for a client, who is migrating their public website from SharePoint 2007 to SharePoint 2010. It’s been a great project for a great client, however, as with any project, there are always a few curveballs unique to that specific project. This was one of them.

In their prior version of the site, the previous developer implemented the solution which can be found here: http://www.sharepointforum.se/en-US/Bugday/Lists/Posts/Post.aspx?ID=9, a custom application page and a DLL to go with it. This did not work on my client’s 2010 environment, so I had to go looking elsewhere, and was not finding too much. My good friend, Christina Wheeler, happened to direct me to a blog post she did on the matter, which was a great idea, however, this one was also directed at 2007 – http://sharepoint.mindsharpblogs.com/ChristinaW/archive/2009/12/07/Content-Query-Web-Parts-and-Anonymous-Access.aspx, or at least, an environment that was not similar to my client. There was no dispform.aspx within the layouts folder, and dropping one copied out of a document library required a bit of toiling to work… and it would not reference the master page I was hoping to use.

All looked bleak and hopeless, however, the #2 method in Christina’s post was the ticket, and, I found the example code that I needed out on the interwebs as well! Hooray for the interwebs! Which led me to this blog post: http://www.sectorpoint.com/blog/post/2008/07/10/Anonymous-access-and-the-Content-by-Query-Web-Part-(CQWP).aspx

Now, the version there however, is for 2007 as well, but, looking at how they did it, made perfect sense, and I was able to put it to practice in SharePoint 2010.

Here are the steps to get this functional…

Go into the SharePointRoot/TEMPLATE/LAYOUTS/ folder –


And, create a new file, for example, GVCopyUtil.aspx, and put the following code into it, the only change from CopyUtil.aspx, is the line highlighted below.

<%@ Assembly Name=”Microsoft.SharePoint.ApplicationPages, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c”%>
<%@ Page Language=”C#” CodeFile=”CopyUtil.aspx.cs” Inherits=”CopyUtil” MasterPageFile=”~/_layouts/application.master” %>
<%@ Import Namespace=”Microsoft.SharePoint.ApplicationPages” %>
<%@ Register Tagprefix=”SharePoint” Namespace=”Microsoft.SharePoint.WebControls” Assembly=”Microsoft.SharePoint, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %>
<%@ Register Tagprefix=”Utilities” Namespace=”Microsoft.SharePoint.Utilities” Assembly=”Microsoft.SharePoint, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %>
<%@ Import Namespace=”Microsoft.SharePoint” %>
<%@ Assembly Name=”Microsoft.Web.CommandUI, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %>
<%@ Register TagPrefix=”wssuc” TagName=”TopNavBar” src=”~/_controltemplates/TopNavBar.ascx” %>
<%@ Register TagPrefix=”wssuc” TagName=”LinksTable” src=”/_controltemplates/LinksTable.ascx” %>
<%@ Register TagPrefix=”wssuc” TagName=”InputFormSection” src=”/_controltemplates/InputFormSection.ascx” %>
<%@ Register TagPrefix=”wssuc” TagName=”InputFormControl” src=”/_controltemplates/InputFormControl.ascx” %>
<%@ Register TagPrefix=”wssuc” TagName=”LinkSection” src=”/_controltemplates/LinkSection.ascx” %>
<%@ Register TagPrefix=”wssuc” TagName=”ButtonSection” src=”/_controltemplates/ButtonSection.ascx” %>
<%@ Register TagPrefix=”wssuc” TagName=”ActionBar” src=”/_controltemplates/ActionBar.ascx” %>
<%@ Register TagPrefix=”wssuc” TagName=”ToolBar” src=”/_controltemplates/ToolBar.ascx” %>
<%@ Register TagPrefix=”wssuc” TagName=”ToolBarButton” src=”/_controltemplates/ToolBarButton.ascx” %>
<%@ Register TagPrefix=”wssuc” TagName=”Welcome” src=”/_controltemplates/Welcome.ascx” %>
<%@ Register Tagprefix=”wssawc” Namespace=”Microsoft.SharePoint.WebControls” Assembly=”Microsoft.SharePoint, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %>
<%@ Register Tagprefix=”SharePoint” Namespace=”Microsoft.SharePoint.WebControls” Assembly=”Microsoft.SharePoint, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %>
<asp:Content ID=”Content1″ ContentPlaceHolderId=”PlaceHolderPageTitle” runat=”server”></asp:Content>

Now, save that, and create another file in the folder, called CopyUtil.aspx.cs, and paste the following C# code into that:

using Microsoft.SharePoint.ApplicationPages;

public partial class CopyUtil : Microsoft.SharePoint.ApplicationPages.CopyUtil
protected override bool AllowAnonymousAccess
return true;

Not so hard, huh? And actually, it is pretty simple, even if you are a non-developer, so don’t be scared. The first section, and more importantly, the highlighted section, says that the language of the page is C# – a programming language. CodeFile references the code it will use. Inherits, means that the page will utilize the class CopyUtil from the CodeFile mentioned previously. And the master page directive just states that we will use that as our master page.

How did we figure out the class to use? Easy, that is highlighted in the 2nd code snippet above.

Now for the second code snippet, all this does, is make use of the Microsoft.SharePoint.ApplicationPages namespace – found on the first line with “using”. We are then inheriting all of the code that makes up this page, and then overriding the boolean value for AllowAnonymousAccess, and setting that to TRUE, rather than it’s normal value, which is FALSE.

In any event, Christina really saved my tuckus today – so thank you Christina!

%d bloggers like this: