Becky Bertram's Blog
Perspectives from a SharePoint developer

This blog has moved. You can find the new blog on Savvy Technical Solution's Web site, at You will be redirected to the following page in 10 seconds:

November 02
Exam Cram for Exam 70-488 Slide Deck
Thanks to all who attended my exam cram session in Chicago today. Here is the slide deck for you. If you are attending my session next week in Kansas City... no peeking! I'll see you next week!
October 30
Last Chance for SharePoint 2010 Training at CAIT!

In the new year, I'm going to be teaching all new SharePoint 2013 training at CAIT at Washington University. Starting next week I'm going to be delivering SharePoint 2010 Developer training and in December I'll be doing a SharePoint course for farm administrators. This is your last chance to get SharePoint 2010 training at CAIT, so sign up now!​

October 29
SharePoint Saturday St. Louis 2014 Announced

SharePoint Saturday St. Louis

SharePoint Saturday St. Louis 2014 will be happening on January 11, 2014, on the campus of Washington University. We're currently soliciting speakers and sponsors for the event. If you would like to participate as a speaker or a sponsor, please visit If you want to register, please sign up at

Our keynote speaker this year will be Mindsharp owner Bill English. We look forward to seeing you there!

October 24
SharePoint Saturday Chicago and Kansas City, 2013

​I'll be at the following Midwest events this November. At both events I'll be presenting an exam-cram session on exam 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions. Let me know if you'll be there so I can say hi!

SharePoint Saturday Chicago
November 2, 2013

SharePoint Saturday Kansas City
November 9, 2013

October 01
5th Time's a Charm

MVPLooks like you guys are going to see me around these parts for another year. I just found out that Microsoft has made me a SharePoint MVP for a 5th year in a row.​

As one of the few women developers in the SharePoint MVP program, my hope is that I can help encourage other women out there who want to participate in the SharePoint technical community. To get this award during a year when I was exhausted most of the time due to pregnancy and then had to take a break from a lot of activities while I was home on maternity leave, felt like a moral victory. It's nice to know it's possible to still achieve professional success while balancing other familial responsibilities. I really want to thank the Microsoft MVP award program for being respectful of that. I also want to encourage any young women out there who are reading this, to not feel like you have to choose between expressing yourself in your career or being a parent who is present with your children. With hard work, careful planning, and a supportive spouse, you can make it happen.

September 16
HTC 8XT Windows 8 Phone

HTC 8XTI've owned a Windows 6 phone, Windows 7 phone, and now I finally got my hands on a Windows 8 phone from Sprint: the HTC 8XT. (I know, I know, lots of people have already been playing with Windows 8 phones for a while, but Sprint was the last to the dance and just got us Windows 8 phones two months ago.)

The 8XT is a great little gadget. The phone itself is a nice looking blue with a back that's a bit rubbery; it's basically like having the phone wrapped in a case, right out of the box. It's incredibly thin and light, too. I've had it for two months and the battery life seems good. It's got Beats audio and when I occassionally play music out of the speaker, it has pretty good sound.

After my Windows 7 phone bit it, I used an Android phone for a year until Sprint got around to selling Windows 8 phones. I feel like the Windows 8 phone has a lot of simple usability features that make it more functional for everyday taks; the thing that stands out most in my mind is that after you use autocorrect on the Windows phone, you can tell it to automatically add a space after the word. It's a small thing but saves a ton of time. In my Android phone, the "back" button would only work within a particular application. In my Windows phone, pressing the back button can take me to the previous application I was working with, wihch is especially handy if I wanto go back to that e-mail I was looking at that had information that I want to use in my web browser, etc.

The only thing that this phone doesn't too well is, unfortunately, be a phone! Although the screen is supposed to go dark when your ear is next to it, it doesn't always work that well. Why is that a problem? Because the "end call" button is right in the middle of the screen, exactly where my ear belongs if I'm holding the phone to my ear. I've disconnected many a person so far, which can be pretty darned embarassing when on business calls. The other thing is that the Sprint voicemaill app doesn't download voicemails unless you've logged into your voicemail, which means you have to check your actual voicemail in order for the voicemail app to tell you if you have any voicemails (which at that point is redundant).  I think this is a Sprint issue more than a phone issue, though.

All in all, I'm happy with my new little friend and I hope it stays intact for another 2 years, until I can trade it in for the next big (or little) thing.

September 09
Upcoming SharePoint Designer 2010 Class at CAIT


For anyone interested in learning how to create basic solutions using SharePoint Designer 2010, I'll be delivering a SharePoint Designer course at the Center for the Application of Information Technology (CAIT) at Washington University in St. Louis in October. The course is a 5 day course, but we've spread the course content out over 2 weeks so you can have a couple days back at the office without having to tell people you'll be in training for a whole week. Part 1 of the course is Monday - Wednesday, October 7 - 9, then part 2 is the following Monday and Tuesday, October 14 and 15.

Here's a description of part 1 the course:

This intensive course demonstrates how to make the most out of Microsoft SharePoint Foundation 2010 and SharePoint Server 2010 using the browser and SharePoint Designer 2010 (SPD). The course will first walk you through the new SharePoint 2010 user interface and feature enhancements and then move on to an overview of SharePoint Designer 2010. Students will then learn how to create and customize content using SharePoint Designer 2010. Users will learn how to create robust and interactive pages using tools like the XSLT List View Web Part, the Data View Web Part, and students will learn how to leverage SharePoint 2010’s improved workflow authoring capabilities. Students will also learn how to use InfoPath 2010 to create interactive and advanced form solutions.

Here's a description of part 2 of the course:

This course is a continuation of the course “Building Solutions with SharePoint Designer 2010 Part 1”. Using the browser and SharePoint Designer 2010, students will learn how to create content-centric solutions using SharePoint Server's Web Content Management (WCM) and Enterprise Content Management (ECM) capabilities, as well as consume and interact with data that resides in external systems using Business Connectivity Services (BCS). In addition, the course will show students how to create offline SharePoint Server 2010 solutions using SharePoint Workspace 2010.

You can register online for part 1 and part 2 of the course.


September 03
SharePoint 2013 Branding and User Interface Design

SharePoint 2013 Branding and User Interface Design Book CoverSharePoint 2013 Branding and User Interface Design is a Wrox book unlike any typical SharePoint book you've seen before, especially by a publisher well known for their uber-technical books that are full of code blocks and appeal to super-geeks. (Lucky for me they had stopped plastering the authors' photos on the cover of the books before I helped author one!) This book by Randy Drisgill, John Ross, and Paul Stubbs is the third incarnation of the book and what a departure it is from the same book that was written for SharePoint 2007 or SharePoint 2010. The content is well-written and informative, but the graphical design of the book is incredibly refreshing and engaging. Since this is a book written for designers, it makes sense that the book layout itself be appealing to its readers.

The book is broken up into 4 main sections, each with its own general color-coding. The book starts out with a basic overview of branding concepts in SharePoint. The second section starts you on your way of creating your first master page using the Design Manager, and understanding the basics of CSS. The third chapter goes into some more advanced topics, such as creating a master page from scratch and creating custom composed looks. The last section of the book tackles topics such as HTML5 and applying branding to SharePoint apps.

Chapter Title page
The first thing I noticed is that this book, unlike most Wrox books, is full color. You can see an example of the nice full-color pictures that are presented at the beginning of each section of the book above.

pleasing layoutEven the basic page design made me want to read this book. In the photo to the right, you can see that this page has sample markup, but it's not wrapped in the normal "I like to write code in notepad because I'm a nerd" font. The various parts of the code block are highlighted using the "dotted path" so it's easy to dissect what the code is doing. On the other side of the page, you can see how bulleted lists follow the large "circle" theme repeated throughout the book.

Even pages with lists of information that are usually presented in a rather boring format have been spiced up a little, as you can see in the picture below on the left. On the picture below on the right, you can see how nice the full color is and how easy the chapter summaries are to read.

Nice ListSummary Page

Apart from the nice visual layout of the book, there were several things I really appreciated about the book:

  • It has nice examples and walk-throughs of basic branding tasks you might want to accomplish.
  • It covered new SharePoint 2013 topics like the Design Manager (including snippets), device channels, the content search web part, dynamic navigation using managed metadata, etc.
  • It covers topics that aren't necessarily SharePoint-specific, but are relevant, like HTML 5 and responsive web design.
  • The book even talked about basic project management principles when setting out to design a new site.

I recommend this book for anyone looking to dive into SharePoint 2013 design.

August 26
Custom Client-side Calendar Query for Office 365 SharePoint Site Using SPServices JQuery Library

I'm building an Office 365/SharePoint Online intranet site for a client and they wanted to show a list of the current day's events from various calendars on the site, in a format like this:

8:30​ a.m. ​Staff Meeting ​Room 103
​10:00 a.m. Training ​Cafeteria
​3:30 p.m. Retirement Party ​Conference Room

As you might now, you can't use a normal CAML-query to retrieve calendar entries if you want to retrieve reoccuring events that happen within a given timeframe. (If the first instance of a reoccuring event happened outside the timeframe you queried, the event would not be retrieved, even if it had reoccuring events that happened during the queried timeframe.) The Content Query Web Part will not do the trick.

On projects past, I've simply created a web part with a custom CAML query that utilizes the DateRangesOverlap node, and installed that web part using a solution package. This being Office 365, that's not an option. I could have created a sandbox solution containing the web part but that's also not a preferred approach since Microsoft seems to be deprecating sandbox solutions. At the urging of Marc Anderson, I tried using his SPServices library.

The SPServices library is a JQuery library that accesses SharePoint web services. By attaching your library to a particular Office 365 SharePoint URL, you can retrieve list items using the SharePoint web service, then use them with JQuery. There's a discussion thread about how to use SPServices to retrieve calendar entries. I decided to modify the file provided in that thread and use it. The main modification I needed was the ability to combine calendar entries from more than one calendar and show them in a common calendar. This meant utilizing a sorting function after entries from multiple calendars were retrieved so all entries would be listed in the proper order.

You can download my calendar.js file here. Once I had added the script to my site, I added the following lines of code to my page layout in the header:

<script src="" type="text/javascript"></script>
 <script src="" type="text/javascript"></script>
 <script type="text/javascript" src=""></script>
 <script language="javascript" src="/Style Library/Scripts/calendar.js" type="text/javascript"></script>

<script type="text/javascript">
$(document).ready(function (){ 
  CallSPServicesCalendar(https://[sitename].com/site1, "Calendar 1");
  CallSPServicesCalendar(https://[sitename].com/site2, "Calendar 2");
  if ($('div.calendarItem').length == 0) {
   $("#calendarData").append("There are no events scheduled for today.");
First, you can see that I'm calling my JQuery libraries hosted by Google, and then I'm calling the SPServices library hosted at cloudflare. Next, I'm referencing calendar.js that's hosted in my own SharePoint site.
The script block at the bottom passes in the URL of the web being queried as a first parameter, and then the name of the calendar list as a second paramter. CallSPServicesCalendar is the name of my function in calendar.js that retrieves calendar entries. At the bottom of my calendar.js I have a function that sorts the calendar entries, which you can see is being called with .sortElements in the script above. If no list items are retrieved, a message is displayed to saying there are no events. If you want to query more calendars, simply add new calls to the CallSPServicesCalendar function.

In the calendar.js file you'll notice a section with Field nodes that get passed into the CAML query. You can modify this section to add your own fields if you have custom fields you want to retrieve and display.

In the body of the page, I added a div tag like this, and this is where the event information was added in the page:

<div id="calendarData"></div>

In the calendar.js file, you can modify the HTML that gets rendered for each calendar entry.

July 31
Introducing Abigail Rose Bertram

Abigail RoseOn July 8, 2013, I gave birth to our second daughter, Abigail Rose Bertram. She was 6 lbs 9 oz and 19 inches long.

We chose the name Abigail after the woman named Abigail in the Bible. 1 Samuel 25:3 says "now the man's name was Nabal, and his wife's name was Abigail. And the woman was intelligent and beautiful in appearance."

I woke up at 2:30 in the morning with contractions 5 minutes apart and was admited at 3:45 with contractions already 2 minutes apart. I am not into natural child birth and was quite disappointed that I was too late for drugs. It turns out the baby was transverse (i.e. sideways) so I ended up having an emergency C-section. Not my first choice, but I'm very grateful for the doctor who was on call and performed the surgery quickly, and all the hospital staff at Memorial Hospital in Belleville, IL.  (It doesn't hurt that their public site -- -- is a SharePoint publishing site, but that's beside the point. :) )

My 2 year old daughter has adjuste quite well to the new baby, and likes to touch Abby's "tiny toes". My husband Ryan loves holding the sleeping baby on his chest, and I'm just trying to get sleep when I can. I feel very blessed.


1 - 10Next