Microsoft is Getting Closer to a Single All Encompassing Business Solution

In case you didn’t notice, Microsoft has opened the public preview for Microsoft 365. This solution encompasses 90% of the features your business needs to operate. Take a look and signup today.

Coming soon will be how you migrate your operations from O365 to M365.

Hopefully soon they will include Windows 10 as a part of the package. After all – that is the final 10% you need for your business.

Oh and maybe a surface too. 🙂

Posted in Uncategorized | Leave a comment

Hello world!

Welcome to This is your first post. Edit or delete it and start blogging!

Posted in Uncategorized | 1 Comment

Access Denied – Custom SharePoint Timer Job

First – if you are looking for an article how to get around this issue on SharePoint 2007, please see this first as it will get you through the issue. It’s and oldie but a goldie.When I wrote my first timer job 3 years year’s ago I used this article to get through some of the issues.

If, however, you have spent 6 wasted hours trying to get around this error on SharePoint 2010 which was working fine on 2007, then this be your article to read. To begin, go grab the powershell script from: (Props to PAUL!)


Upon detailed investigation of Microsoft.SharePoint.dll  I discovered that SharePoint guys added a new security feature to all objects inheriting from SPPersistedObject in the Microsoft.SharePoint.Administration namespace. This feature explicitly disallows modification of the above stated objects from content web applications, which is where our web part is running.

Execute the same process you would have done for SharePoint 2007 with the config DB. Execute full control to C:\Program Data\Microsoft\SharePoint for your application pool account.

IISRESET, Restart your Admin and Timer Services.

Try again – should work…. AHHHHH!!!! Rogaine doesn’t help when you pull your own hair out!… 🙂

Posted in Uncategorized | Leave a comment

I Quit – No Really I Quit

Someone shoot me please, put me out of my coding misery. Okay, so my latest 30 minute fair of frustration is the error: “A Project Item with the following item ID could not be found:”, then is shows a GUID to the item.


This will occur if in your SharePoint Project you add a module, resource, folder, anything outside of what was there when the project was first created. My Example would be adding a resource folder and resource file. After I did that I chose to Package and BAM the error happened.

It turned out that because I didn’t save my project after I added the resource file and folder the project never had the GUIDs saved so when the package attempted to run, it looked at the CSPROJ and couldn’t find the folders and files to extract.

So in the past I haven’t gotten this, but I turned a switch over on my Visual Studio 2010 which started this problem. I did so in my VS 2010 Options;


By choosing “Save changes to open documents only” after my project was updated, it never saved it’s settings and therefore the new contents were never saved in the project. When the Package Builder attempted to find them it couldn’t.

Hopefully this will help anyone else out there who get’s this wonderful obscure message.

Posted in Uncategorized | Leave a comment

How To Implement a Sandbox Solution

My article on how to implement a sandbox solution has been posted to EndUserSharePoint.Com. Check it out.


You may or may have not heard about a new type of Solution in SharePoint 2010 called the “Sandbox Solution.” Simply put, a Sandbox Solution (SBS), is a compiled application which will run in a controlled environment, known as the Sandbox. Because it runs in a controlled environment, elements such as resource throttling, access permissions, etc… can be managed by the Administrator protecting the Server Farm from the negative effects of coding… [Read more]

Posted in Uncategorized | Leave a comment

Distributed Data Processing

This article is designed to teach you how you can use the CorasWorks Toolset in a distributed data environment instead of using the Toolset within the same application pool, server, or farm as the displays. This allows you to distribute the processing to other processors and memory so that your SharePoint Web Application providing content can just output HTML. This can help your overall performance and enable better caching control. This same control is present in SharePoint 2010 using the Application Server, however you can leverage this same capability in SharePoint 2007 for your solutions today.

Before we go through the configurations, the data technologies that we will use in our data processing setup will be, External Data Provider, SharePoint Data Provider, Site List Data Provider, Site Usage Provider, Mashup Adapter, Business Data Analysis Adapter, Business Data Cache Adapter, Chart Display Adapter, and Calendar Display Adapter. Each of these output XML which can be consumed by any 3rd party, Suite, or Toolset Adapter most of which would exist on the content providing site.

Configuration 1 – Separate Application Pool (Internal/External)

This configuration uses two separate applications pools. The primary application pool is used for the web site serving content. ( The secondary application pool is serving another SharePoint site, except this site is only providing XML data from Data Providers and Data Adapters. This means that memory and processing can be dedicated to the Data Application Pool which will not affect the Content Application Pool and thusly improve the performance of your content delivery. For example, imagine a Business Data Analysis adapter on the Data Application Pool analyzing content which is then rendered in a Chart on the Content site.

In terms of security, you can make the Data site only available to the Content site by not allowing the URL through your firewall and only adding a host entry to your server or server farm and not your DNS. This is not required as you could expose the Data site to the external world in the same manner as the Content site allowing both internal and external use of the data.


Configuration 2 – Application Server (Internal)

This configuration uses your 2010 Application server as a web server serving Data Content. This means that all data processing will occur on your beefier servers instead of any processing occurring on the web front ends. For example, imagine an External Data Provider connecting to a FoxPro database on a shared file system which is then consumed by the web front end. This secures access to your DB as users from the internet will never be able to access the application server directly and thusly the FoxPro database.

In terms of security, you make the Data site only available to the web front ends by not allowing the URL through your firewall and only adding a host entry to your server or server farm and not your DNS. You should not expose these servers to the web unless you plan to allow farm to farm service sharing.


Configuration 3 Separate Data Web Server (Internal)

This configuration uses a separate web front end server as a web server serving Data Content. This means that all data processing will occur on a separate server instead of the processing occurring on the web front ends. For example, you have a mapping analysis application which is designed to consume XML and analyze that content and display resource usage across the country. The analysis is completed on the server and a Chart Display Adapter (AnyChart XML) output is created and then consumed by the web front ends which is presented to the user in the form of a chart.

In terms of security, you make the Data site only available to the web front ends by not allowing the URL through your firewall and only adding a host entry to your server or server farm and not your DNS. You should not expose this data server to the web.


Configuration 4 Separate Data Web Server (Internal/External)

This configuration uses a separate web front end server as a web server serving Data Content. This means that all data processing will occur on a separate server instead of the processing occurring on the web front ends. This server is also serving data content to the web for use by 3rd party applications externally as well as other farms as shown in the next configuration. For example, you configure a Data Access server which will access content from your DB2 backend. This content is then rendered as XML and exposed through the Mobile Adapter. A user through their mobile browser is then able to interact with their DB2 data system.

In terms of security, you expose the Data server to the external world allowing both internal and external use of the data.


Configuration 5 – Separate Data Farm (Internal/External)

This configuration uses Configuration 1, 2, or 4 in both farms so that each can consume each others content. This allows you to expose not only a Datasource of content, but SharePoint data well. For example, if using the Site List Data Provider, you could expose the Navigation and/or Data of all or specific SharePoint sites to another farm for further aggregation and analysis.


Final Thoughts

As you have seen there are multiple configurations you can use to achieve this design. It is recommended you consider these options when designing your data access points, this way you can ensure the best performance for your solutions and well as connections.

Posted in Uncategorized | 1 Comment

SharePoint List Field Manager Released To CodePlex

The SharePoint List Field Manager allows users to manage the Boolean properties of a list such as Read Only, Hidden, Show in New Form etc… It supports SharePoint 2007, SharePoint 2010, and 2010 Sandboxed Solutions.

Hopefully by releasing the CodePlex many in the community will use it. Given today’s needs to hide and show fields on specific forms without form modification, it should be a great asset to any application creator. You can get it at:

For those Admins who don’t want to install to the server by the way, you can also use the Sandbox Solution in which case it can be implemented in the site collection without Server modification.

Posted in Uncategorized | Leave a comment

Build a SharePoint 2007 Web Part with a Visual Studio 2010 Visual Web Part Project

When 2007 released, I researched and wrote an article about making SharePoint 2003 web parts with Visual Studio 2005, so why not write an article about how to use the awesomeness of Visual Studio 2010 to build a SharePoint 2007 web part. Now I know what you are saying, but Adam, that’s not complicated. Just upgrade my current projects and whala, I’m there. But are you tired of using WSPBuilder or some other custom methodology to create those Web Parts? I am, doesn’t Visual Studio have these 2010 SharePoint Project templates? Can I use one of them? oooooo – let’s find out.

First let’s get some prerequisites in place. You are going to need a development server will SharePoint Foundation or greater and VS2010. You’ll need this because when you create a project, VS2010 will look for an instance of SharePoint 2010 and when it doesn’t find it, errors galore. (I haven’t researched this to find out if you hobble something together to get around this. Know of way, share it with me and I will link to it from this blog.) You will also need to get your hands on the Microsoft.SharePoint.DLL from your v3 servers. (12/ISAPI)

Now that you have everything let’s get started.

First open VS2010 and choose to create a new project. Choose – Your Coding Language – SharePoint 2010 – Visual Web Part.

Now, give your project a name, location, etc… and click “OK”. Hit F5 after creation and make sure your web part is working. You want to do this because the next steps could cause your project not work if not done correctly. Wouldn’t do much for debugging if you weren’t absolutely certain your web part was working in the first place. Your web part should have been activated, so all you should have to do is edit your page, choose insert web part, and get your web part from the custom folder.

Is it working? If the answer is yes – great, if it is No, check the permission of your user account and the web.config file to make sure the safe control entry was written. If that doesn’t give you the answer, then I would start from scratch. If everything is working, continue.

Now that you have confirmed your Visual Web Part is working, let’s modify our project so that we can use this same process except, do so using a SharePoint v3 API.

First we will modify the SharePoint References we are using. Under the References folder, select the two Microsoft.SharePoint instances and delete them.

Now choose to add a reference, select the Browse tab, and locate your Microsoft.SharePoint.dll for v3 that you should have attained earlier.

Step one is now complete, time for step 2. Expand “Package” and double click on Package.package.

In the Properties Pane, Remove the “14.0” entry in the SharePoint Product Version Property Box.

Now let’s edit the Visual Web Part itself. Expand VisualWebPart1 or whatever the name of your web part is and double click on the UserControl.ascx.

We will need to alter 4 lines in the control.

First remove the line that says;

<%@ Assembly Name="Microsoft.Web.CommandUI, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

Now in the three lines that say;

<%@ 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" %>

<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

Replace the “Version=” with “Version=”. The final result should look like;

Save your file and now hit F5 to build and test. Does it still work? If you did everything correctly it should. So let’s reflect on what we just did. We created a 2010 web part, converted it to 2007, are debugging it on 2010, and are now ready to try it on 2007, how awesome it that. Best of all, when creating the web part and debugging it you will only be doing so against v3 features so you won’t over extend your web part beyond on what 2007 can do. But now for the moment of truth.

Locate your Project directory where you are saving this project and enter the “bin/debug” folder. In there you should see the WSP created for your project. Copy the WSP to your 2007 server and add and deploy it then give it a try.

Don’t forget to activate your Web Part inside of Site Collection Features.

Now the question does come up, why build 2007 web parts anymore. No matter what anyone tells you, it will be at least 1.5 years before 50% or greater of the people running SharePoint out there will have 2010. Experience has shown us that so don’t hamstring the community by forcing the use of 2010 when people aren’t ready. Solve their solution now and know the work you are doing will work in both 2007 and 2010.

I hope this helps make your life a little bit easier.


Posted in Uncategorized | Leave a comment

Let the Start Page Remain

If you have loaded Visual Studio 2010 for the first time you likely didn’t notice the 2 checkboxes on the lower left of your Start Page. Why would you, you’ve been letting that start page load in VS2008- forever so why would you think about it now.

Here is why. The option “Close page after project load” is defaulted to on which means that your start page will go away. To get it back after the Project has loaded you need to chose your “View” menu and then choose the “Start Page” option. After it returns, you are given those two wonderful options again on the bottom left hand side of the screen. Uncheck the first option and let the Start Page Remain!.

Posted in Uncategorized | Leave a comment

I Posted My First Article to

Navigating SharePoint 2010 – Part 1: Introductions

Check it out:


SharePoint 2010 meet World, World meet SharePoint 2010. With the release of 2010 and the new UI users will get lost and could use some instruction on how to use and manage navigation within their sites. This article will attempt to help you understand what navigation exists and how to leverage it

Posted in Uncategorized | Leave a comment