For the past year I’ve been working on an enterprise search solution for a Canadian federal government client employing SharePoint Server 2013 / 2016 and integrating with line-of-business data via Business Data Connectivity Services (BCS, formerly BDC) with a BDC .NET Connector. The elements of this solution, notably SharePoint Search and Business Data Connectivity Services, encompass a complex set of technologies which would easily occupy a blogger for months if not years. On this occasion we’ll delve into one small but important part, creating BDC Profile Pages in a host header / host named site collection context.
Some time ago one of my colleagues reported an issue in our development and testing environments; when we attempt to generate a profile page for an external content type in the BDC service application:
We get this warning:
With the text:
This content cannot be displayed in a frame
To help protect the security of information you enter into this website, the publisher of this content does not allow it to be displayed in a frame.
What you can try:
Open this content in a new window
Traditionally as a SharePoint developer or designer your skills and toolkit were quite different from those of a standard web developer. While that used to be essential to your success, in today’s web-centric world as you transition your skills it might mean you overlook the obvious when troubleshooting. Recently I was helping a developer colleague resolve one of those eponymous “Sorry, something went wrong” messages that SharePoint 2013/2016 is so famous for, when it drove home this point: Always start with the web-dev basics!
As a SharePoint Technology Architect you have to know a little bit of everything in the platform stack from Windows Server to Active Directory to DNS to networking, and much more, a veritable jack-of-all-platform-trades. On a recent project I was working with an IT Pro to prepare a new server virtual machine for a proof-of-technology for SharePoint 2016 when I was reminded of this.
This project teanm is hard up for infrastructure so we are scrounging for virtual machines and have to make do with a refurbished hand-me-down VM. The server team re-imaged the VM with Windows Server 2012 R2 as is required for SharePoint 2016. The initial sanity check of the refurbished VM is good, we can RDP to it and Server Manager Dashboard shows a healthy server, all services running normally.
Next step is we have to request a DNS entry for the Central Admin site for SharePoint 2016, hence we need the IP address(es) of the new VM. As a quick step I ping the VM rather than RDP’ing to inspect its network adaptor configuration:
Whoa, ping does not respond! How can that be? I just RDP’ed to the server and it was fine.
I love working with SharePoint Server because there is never a dull moment on the job; the product is so rich and varied, and requires considerable knowledge of other systems and services, such as Active Directory, DNS, networking, SSL, SQL Server, etc. Working with SharePoint Server is a guarantee of learning something new nearly every day. On this day I discover a truly unique SharePoint error message.
I am performing routine maintenance on a SharePoint 2016 farm, cleaning up deprecated service accounts, to bring the farm into alignment with our project’s platform architecture security model. Using Central Admin (running on port 2016 of course!) at one point I need to refresh a page like so many times in a day but this time it comes with a little surprise, the page returns completely blank, with the bare minimum possible HTML. Whoa, what is going on?!
Well, I think, maybe it is just transient, so I hit the F5 refresh to get a clearer sense of the status of my SharePoint farm. Ooo ee, HTTP 404 Not Found. Eek, Central Admin is DEAD!
How CloudShare has enabled me to contribute to SharePoint community projects
Until recently if you wanted to contribute to an open source or community-based software project in your spare / volunteer time it often meant having to build a full-scale software development environment on your home / personal computer, including substantial CPU cores / RAM / disk hardware and numerous software licenses, with a potential cost of thousands of dollars. Fortunately the recent rapid growth in cloud-based IaaS / PaaS offerings such as CloudShare, Microsoft Azure and Amazon Web Services to name but a few, has dramatically changed this situation. Now the software hobbyist or software engineering professional volunteering their time can contribute to nearly any project with no more equipment than a modern web browser.
These cloud-based IaaS / PaaS offerings are a huge boon especially for community projects targeting enterprise software systems such as Microsoft SharePoint Server and Microsoft Dynamics CRM. Both SharePoint Server 2013 and the upcoming 2016 versions have hardware requirements that generally exceeded the specs of most home office computer equipment, for example a single server farm with all services requires 24GB RAM. Furthermore, when your focus is on rapidly enhancing a community project then the time and effort to install, configure, tune, and patch server software such as the operating system, database server, and SharePoint Server is an overhead cost that does not directly advance the project.
Two important consideration when I’m volunteering my spare time on an open source or community project are:
- Ready availability of a pre-configured virtual machine suited to the community project’s technology stack – so I don’t have to spend hours or days building up a standard development environment before I can even begin making my volunteer contribution
- Rapid provisioning and resumption of the virtual machine – which allows me to eke out useful contributions in spare moments of 20-30 minutes at a time
For my cloud-based custom software development platform I chose the CloudShare Platform-as-a-Service (PaaS) product because it offers the best fit for me as an independent software developer.
Like any savvy Internaut I am vigilant to identify and delete spam email so I always carefully review any unexpected item that lands in my inbox before clicking on it. I was suspicious when this email appeared the other day as I am not an Instagram user:
I’ve blacked out personal identifying information in these screen snaps.
My first thought was this item is not a legitimate email from Instagram but I couldn’t find any obvious indication of this. The structure and format of the email and all the links seemed to indicate it was legitimate. I even looked at the message source; the headers and delivery routing all seemed to be appropriate given my limited knowledge of such things:
A CloudShare hosted environment is a great way to quickly and easily provision virtual machines for demo and testing. In order to present realistic demo and test scenarios you will want a variety of Active Directory user accounts and SharePoint user profiles including My Sites profile information.
A brand new CloudShare environment virtual machine comes with only a few system accounts defined, eg Administrator. You can certainly develop and provision additional user accounts and profiles yourself, along with the scripts to repeat the provisioning each time your environment is refreshed. However, this will take time and effort, which you would probably rather spend on your core business activities. So why not leverage and re-purpose a ready-built alternative from Microsoft.
Microsoft publishes “content packs” to provision several of its popular demo environments (WingTip, etc) that you may have seen at the SharePoint Conference and in other training and demo presentations. These content packs generally include all the installers, scripts, and user accounts data files necessary to fully automate deployment, configuration and provisioning of the various bits of server infrastructure.
In our case we have the server infrastructure already deployed and configured thanks to CloudShare. So we are going to cherry pick out of the content packs just what is necessary to provision a predefined set of user accounts into Active Directory and user profiles into SharePoint. This will save us quite a bit of time over developing similar capability from scratch.
Before starting, download the required content packs from CodePlex. From the SharePoint 2013 Business Intelligence Demo Builds with SQL Server 2012 SP1 CodePlex project,
download the following two content packs and extract their zip archives:
Don’t be confused by the name of this CodePlex project. The various content packs in this project can be used somewhat independently of one another, for our purpose to provision Active Directory user accounts and SharePoint user profiles in a CloudShare environment SharePoint farm.