Announcements
- Starting a new role at Microsoft (7/6/2020) - I’m very excited to announce that today is my first day as a Cloud Developer Advocate at Microsoft, focused on Teams and Graph development! I wasn’t even looking, but a friend mentioned it and when I read the job description … well it was just too good of a fit. Do you find yourself building … Continue reading Starting a new role at Microsoft
- Working from home with Microsoft Teams (4/13/2020) - While the world has been adapting to unprecedented changes due to the novel coronavirus pandemic, I’ve been counting my blessings. My family and I are all OK (so far at least!) and I have a job I love where I was already working from home. I was interviewed for the job using Skype for Business, … Continue reading Working from home with Microsoft Teams
- YouTube Grand Opening (3/1/2020) - I’m thrilled to announce that in addition to this blog, I’ve started creating short YouTube videos on Microsoft Teams, SharePoint, and Azure development. At first I was going to put everything on my own YouTube channel, but I’m thrilled that I was invited instead to post them on the Microsoft 365 Patterns and Practices channel. … Continue reading YouTube Grand Opening
- Provisioning Teams with Azure Functions and Microsoft Flow Part 5: A Change in Direction (4/18/2019) - It’s only been a few weeks since I published the 4-part blog series on Teams provisioning, and already I’ve learned a lot. So here is part 5 of the 4-part series, which will explore early learning and begin to discuss future directions for the project. Solution Overview Installing the solution Building a Flow for the … Continue reading Provisioning Teams with Azure Functions and Microsoft Flow Part 5: A Change in Direction
- Two Vantage Points (11/28/2017) - I just returned to Microsoft after a six-year adventure at a startup, BlueMetal. It was a great experience, but I was ready for a change, and I was fortunate to secure a great position as a Partner Technology Architect in Microsoft’s new One Commercial Partner (OCP) organization. I’m thrilled! Now that I’m back, I’m able … Continue reading Two Vantage Points
- Office Developer Bootcamp Sponsors on Board (10/10/2017) - Some readers may already know that Scot Hillier and I are presenting an Office Developer Bootcamp focused on the SharePoint Framework on Friday, October 27, 2017 at the Microsoft office in Burlington MA. This is a great opportunity to learn SharePoint Framework development, including related technologies, Typescript, WebPack, and React. There are still openings, and … Continue reading Office Developer Bootcamp Sponsors on Board
- New Release of Widget Wrangler (1/31/2017) - When you’re writing a widget in Angular 1.x, it’s possible to pass configuration information into the widget using the ng-init directive, as shown in this example. (Angular 2 isn’t ready for widgets yet since there’s no way to put multiple copies on the page; Microsoft is working with Google on a fix. Here’s a sample.) … Continue reading New Release of Widget Wrangler
- Roadmap to the Future of SharePoint (5/7/2016) - (cross-posted to the BlueMetal Blog) This week Microsoft mapped out a bold new plan for SharePoint. Microsoft is investing heavily to modernize the product to make it work as well in the Device and Cloud era as it once did in when the Web was still shiny and new. This article will explain how these … Continue reading Roadmap to the Future of SharePoint
- Learning TypeScript: A Code Camp Adventure (4/4/2016) - Last weekend I had the pleasure of presenting a couple sessions on TypeScript at Boston Code Camp 25, one on my own and one with my good friend and colleague, Bob Goodearl. We’ve just posted the materials, which may be useful beyond the presentation. TypeScript 101 This session covers the basics of the language. I tried … Continue reading Learning TypeScript: A Code Camp Adventure
- Microsoft’s New Approach to Collaboration and Portals (5/12/2015) - At the Ignite conference last week, Microsoft laid out a new vision for collaboration and portals that is a major departure from the site-based approach that has been the core of SharePoint for more than a decade. Microsoft still fully supports SharePoint in its current form and will continue to do so, both on premises … Continue reading Microsoft’s New Approach to Collaboration and Portals
- A Brand New Vantage Point (1/30/2015) - Welcome – you have arrived at my new blog! After nearly a decade blogging at MSDN, it’s time for me to strike out on my own. Microsoft was really nice to let me keep blogging after I left their employ to work at BlueMetal Architects, and Chris Bortlik was good enough to sponsor me (thanks Chris!) But … Continue reading A Brand New Vantage Point
Architecture
- Fun with Promises in JavaScript and TypeScript (6/2/2022) - The docs say you should only call initialize() once and my app is a bit complex, with multiple web components that are rendered in parallel, and two of them need to use the Teams SDK on page load. So how can I prevent initialize() from being called more than once while isolating code within my web components?
- Branding SharePoint: The New Normal (9/4/2018) - Modern SharePoint is catching on, and sites are looking better than ever right out of the box. With mobile-ready pages and easier editing, customers and partners are starting to ask for it. And as SharePoint 2019 brings the modern experience on premises, the demand is likely to grow even more. Yet even as sites look … Continue reading Branding SharePoint: The New Normal
- Teams and SharePoint: Better Together (5/14/2018) - Collaboration Silos Traditionally, our collaboration tools have been divided into silos based on the mode of communication. In the Microsoft space, we’ve used Outlook and Exchange for persistent messaging, Skype for Business for real-time communication, and SharePoint to provide a place to share documents and other information. These tools work together to provide for our … Continue reading Teams and SharePoint: Better Together
- Office 365 Developer Review from Microsoft Ignite (10/15/2017) - Companion Article for the Overview at the Boston Office 365 Developer Bootcamp This article could be useful to any Office 365 developer who wants a quick reference to the recorded sessions from Microsoft Ignite, but it’s also intended as a companion to my opening talk at the Office 365 Developer Bootcamp on October 27, 2017, … Continue reading Office 365 Developer Review from Microsoft Ignite
- Roadmap to the Future of SharePoint (5/7/2016) - (cross-posted to the BlueMetal Blog) This week Microsoft mapped out a bold new plan for SharePoint. Microsoft is investing heavily to modernize the product to make it work as well in the Device and Cloud era as it once did in when the Web was still shiny and new. This article will explain how these … Continue reading Roadmap to the Future of SharePoint
- Flexible SharePoint Development with Widget Wrangler (1/13/2016) - (Cross posted at Julie Turner’s blog, SharePoint Customization: Vedi, Vini, Vici) What’s a widget, and why should I care? In economics, a widget is a name for a generic gadget or manufactured good; on the web, a widget is a generic piece of web functionality running on a page. What makes widgets special is that, unlike controls … Continue reading Flexible SharePoint Development with Widget Wrangler
- SharePoint As a Service (7/2/2015) - NOTE: For more on this topic, please check out this episode of the Office 365 Developer Podcast where I discuss these topics with Microsoft’s Jeremy Take; it was a great discussion! For many years, Microsoft and others in the SharePoint community promoted SharePoint as a Platform. The idea was to develop business applications within SharePoint … Continue reading SharePoint As a Service
- New Guidance from Microsoft for Packaging and Deploying SharePoint Solutions (1/31/2015) - This article is reposted from my old MSDN blog. Please post comments here as I am no longer able to publish or respond to them on MSDN. Thanks! Microsoft is cleaning house. Now that it has to maintain SharePoint for thousands of enterprises and millions of users in Office 365, Microsoft is working to clean up all the … Continue reading New Guidance from Microsoft for Packaging and Deploying SharePoint Solutions
Best Practices
- Fun with Promises in JavaScript and TypeScript (6/2/2022) - The docs say you should only call initialize() once and my app is a bit complex, with multiple web components that are rendered in parallel, and two of them need to use the Teams SDK on page load. So how can I prevent initialize() from being called more than once while isolating code within my web components?
- Setting up SSL for tabs in the Teams Toolkit for Visual Studio Code (10/17/2020) - I’ve started using the new Microsoft Teams toolkit, which is a Visual Studio Code extension and generator for Teams applications. One thing I noticed is a little challenge when creating tabs, and that’s due to the requirement to use SSL. The documentation is fine and explains how to trust your local project, but I found it … Continue reading Setting up SSL for tabs in the Teams Toolkit for Visual Studio Code
- Top 10 Troubleshooting Tips for Computer Professionals (4/1/2019) - Murphy’s famous law is understated when it comes to computers. All of us in technical roles have experienced the misery and frustration that comes when the system flat-lines and we have to find a cure. This article is a top 10 list of widely-used practices for diagnosing and addressing computer maladies. For best results, please … Continue reading Top 10 Troubleshooting Tips for Computer Professionals
- Branding SharePoint: The New Normal (9/4/2018) - Modern SharePoint is catching on, and sites are looking better than ever right out of the box. With mobile-ready pages and easier editing, customers and partners are starting to ask for it. And as SharePoint 2019 brings the modern experience on premises, the demand is likely to grow even more. Yet even as sites look … Continue reading Branding SharePoint: The New Normal
- How to write a winning conference talk submission (3/25/2018) - I just read and reviewed 250 conference submissions and boy are my eyes tired! There were a lot of excellent submissions, and it will be an awesome conference for sure, but that’s not what I want to talk about. I want to talk about the submissions that I didn’t recommend, the ones that missed the … Continue reading How to write a winning conference talk submission
- What is Modern SharePoint and Why Should I care? (2/9/2018) - The question I get the most these days is, “what is this modern SharePoint you keep talking about?” It might sound like an oxymoron! All my SharePointy friends know about it, and debate the finer points over beer at SharePint, but to the casual user, or someone who’s been working on premises, it may be … Continue reading What is Modern SharePoint and Why Should I care?
- Building Compliant Team Sites (9/24/2017) - This is a companion article to my talk at Microsoft Ignite 2017, Building Compliant Team Sites. It contains details and links to resources that can help you put the ideas from the talk into action.
- ALM for Widget Solutions (11/11/2016) - Colleague and fellow SharePoint developer Brian McCullough asked a great question on Twitter: This is such an important topic I thought it was worth more than a 140-character reply; hence this article. Whole books have been written on Application Lifecycle Management,and there are many facets beyond simple software deployment, but this article will focus on the baseline … Continue reading ALM for Widget Solutions
- New Performance Best Practices for SharePoint Online Portals (10/20/2016) - or, Avoiding the BLOB (and other) caches in SharePoint Online SharePoint was designed to work best in relatively small farms on premises. A typical configuration has 2-4 web front-ends, so caching information on the web servers is a good strategy. In SharePoint Online, however, a typical farm has hundreds of web front-ends, and is shared … Continue reading New Performance Best Practices for SharePoint Online Portals
- Flexible SharePoint Development with Widget Wrangler (1/13/2016) - (Cross posted at Julie Turner’s blog, SharePoint Customization: Vedi, Vini, Vici) What’s a widget, and why should I care? In economics, a widget is a name for a generic gadget or manufactured good; on the web, a widget is a generic piece of web functionality running on a page. What makes widgets special is that, unlike controls … Continue reading Flexible SharePoint Development with Widget Wrangler
- The Well-Tempered AngularJS Web Part (3/21/2015) - Listen while reading … The mathematics of music isn’t as simple as you might think, and early musical instruments often didn’t get it right. Keyboard instruments were especially susceptible to this. On a particular organ, for example, the fifth interval in the key of C might sound harmonious, but the fifth above Ab might be sour … Continue reading The Well-Tempered AngularJS Web Part
- New Guidance from Microsoft for Packaging and Deploying SharePoint Solutions (1/31/2015) - This article is reposted from my old MSDN blog. Please post comments here as I am no longer able to publish or respond to them on MSDN. Thanks! Microsoft is cleaning house. Now that it has to maintain SharePoint for thousands of enterprises and millions of users in Office 365, Microsoft is working to clean up all the … Continue reading New Guidance from Microsoft for Packaging and Deploying SharePoint Solutions
Puzzlers
- Vantage Point Puzzler: Drive Synchronicity (10/25/2016) - Here’s a little puzzler based on a personal experience I had a recently. I had finally outgrown my backup drives, so I purchased two identical new ones online. When they arrived, I set about backing up my home server to both drives. I use Beyond Compare to make backups; while this is a wonderful file synchronization … Continue reading Vantage Point Puzzler: Drive Synchronicity
Quick Tips
- Top 10 Troubleshooting Tips for Computer Professionals (4/1/2019) - Murphy’s famous law is understated when it comes to computers. All of us in technical roles have experienced the misery and frustration that comes when the system flat-lines and we have to find a cure. This article is a top 10 list of widely-used practices for diagnosing and addressing computer maladies. For best results, please … Continue reading Top 10 Troubleshooting Tips for Computer Professionals
- Idempotent Site Scripts for SharePoint (3/7/2019) - Image by geralt on Pixabay As you probably are aware, SharePoint site scripts are used to set up content and settings in SharePoint sites. They’re applied using site designs, which allow the same script to be reused with different names and permissions. Site designs can be applied when a site is created, when it’s added to … Continue reading Idempotent Site Scripts for SharePoint
- Using SharePoint Permissions in Microsoft Teams Channels (4/12/2018) - A lot of people have asked for “private channels” in Microsoft teams. Microsoft has stated publicly that they’re working on it; there’s even a page in the documentation all ready for when it comes along! In the meantime, a question came up about using SharePoint permissions to restrict the level of access to channel files. Recall that … Continue reading Using SharePoint Permissions in Microsoft Teams Channels
- HTML Templates and CSS in SharePoint Framework Apps (12/12/2016) - “The time has come,” the Walrus said, “To talk of many things: Of template files, cascading styles, And bundles made of strings, And why SharePoint is boiling hot, And whether pigs have wings.” Like many SharePoint developers of late, I’ve been exploring the SharePoint Framework (SPFx), doing experiments, and porting code over to the new web … Continue reading HTML Templates and CSS in SharePoint Framework Apps
- How to read information in a SharePoint Person field via the REST API (9/16/2015) - A colleague of mine recently had a challenge reading data out of a SharePoint person field via REST and then rendering it in AngularJS. As it turns out, I had the same challenge recently and found the solution … so here it is! If you simply read the person field, you’ll end up with the … Continue reading How to read information in a SharePoint Person field via the REST API
- Understanding Javascript Promises (3/16/2015) - I have to admit I found the concept of Promises difficult to grasp at first; once I understood, I’ve been looking for a good way to explain it to others. This article is my attempt to make Promises easy to understand through a simple metaphor. Imagine you’ve entered a crowded restaurant. You force your way … Continue reading Understanding Javascript Promises
- Stretching the (HTML 5) Canvas: Fixing Aspect Ratio Problems (3/9/2015) - The Problem I’m working in a web part that uses the HTML 5 <canvas> element, and I ran into a little problem. The web part is a “microsurvey” that asks a single question and, when the user clicks an answer, displays the results of the survey so far. For the results, I wanted to show a bar … Continue reading Stretching the (HTML 5) Canvas: Fixing Aspect Ratio Problems
- How to: Display the name of the Windows user logged into your ASP.NET Site (2/5/2015) - This is really pretty simple but I was surprised not to find it in any one blog posting. It's easy to display the Application Pool account rather than the logged in user. Some articles said to turn on Impersonation, but that's often a bad idea for other reasons. This is what worked for me just now.