I'll be speaking at Live! 360 Orlando, November 16-20. Surrounded by your fellow industry professionals, Live! 360 provides you with immediately usable training and education that will keep you relevant in the workforce.
I'll be presenting the following sessions:
• Using Azure to Replace Server-Side Code in Office 365
• What's New for Developers in SharePoint, Visual Studio and Windows Server
• Workshop: Deep Dive into Authentication and Authorization in the Cloud
SPECIAL OFFER: As a speaker, I can extend $600 savings on the 5-day package. Register here: http://bit.ly/LSPK76_Reg
I previously posted about using AppInsights to help troubleshoot an issue. I wanted to post a follow-up to show some of the other capabilities of the AppInsights offering.
The first step toward resolving the application issue was to implement caching. While Azure provides a Redis Cache service, the initial implementation put in place was the ASP.Net cache. As we saw from our AppInsights data, the web server is not under stress. So, using the built-in ASP.Net cache instead of paying for the Redis cache was chosen. We can certainly upsize later if necessary.
Monitoring the ASP.Net cache is possible using Performance Monitor. Application Insights has the capability to store and report on performance counters. I chose to implement this thru the ApplicationInsights.config file. This file is added to the Visual Studio project when the Application Insights SDK is added via NuGet. I add two counters to the AppInsights config file, which will then be captured by the status monitor application and send to the Azure service:
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector">
<Add PerformanceCounter="\ASP.NET Apps v4.0.30319(??APP_W3SVC_PROC??)\Cache Total Turnover Rate"
ReportAs="Cache T/O Rate" />
<Add PerformanceCounter="\ASP.NET Apps v4.0.30319(??APP_W3SVC_PROC??)\Cache Total Hit Ratio"
ReportAs="Cache Hit Ratio" />
The performance counters include a placeholder (??APP_W3SVC_PROC??) that indicates I want only the current instance of the ASP.NET Application counters. Without specifying the instance placeholder, the service would get counters for every ASP.NET application on the server. In some cases, this may be what you want.
After updating the configuration file and running thru some of the application pages, the performance counters are visible in the portal. I decided to add the cache counters to the default Server chart. I clicked on the Servers blade, then clicked Add Chart. On the Chart Details blade, the counters I added via the configuration file are at the bottom of the list.
After my updates, I can see at a glance the cache statistics:
Since the application now has the App Insights SDK added, we can consider implementing custom events. The issue in this application was the data retrieval for the search form. In a future post, I will discuss how AppInsights custom events can tell us exactly which columns are actually being used for searches. This tracking data can then be used to discuss with users whether the search form should be changed, or perhaps additional pages built to provided the desired information without searching. The goal being a friendlier, intuitive application that helps people get their job done, without being a job they need to do to do their job.
I have presented at many conferences, SharePoint Saturdays and user groups about leveraging Azure Active Directory (Azure AD) for your application authentication and authorization. But, seventy-five minutes is never enough to sufficiently cover the topic. There is just so much information.
Thanks to my friends at ITUnity, I have much more time to dig thru the topic. Starting today (September 2, 2015), I am presenting a three-part series on Azure AD. This gives me the opportunity to go deeper and show more demos. Even some Q & A!
You need to register for the individual events. They will be recorded, and your registration allows you to view the recording at a time that is convenient for you. To register, visit the following links:
I hope to see you there!
Fresh on the heels of the //build/ and Ignite conferences, I will be at many events during June. I would be delighted to meet any readers of the blog at these events. Say hi if you are there!
SharePoint Saturday Atlanta – May 30
I'll be delivering two sessions: Getting Started with Office 365 Development and Deep Dive into the Office 365 API for Azure AD. These sessions provide the foundation for apps that consume Office 365 services.
Critical Path Training webinar series – June 4
For this webinar, I'll be talking about Cloud-based Identity for Applications. As your organization moves to the cloud, the need for cloud-based authorization and authentication grows. This talk provides a roadmap for getting up to speed on the options.
Build Tour 2015 Chicago – June 10
This event will cover all the announcements from Build, not just Office 365. I'll be there supporting specifically to answer questions about O365/SharePoint development.
SharePoint Saturday Boston – June 13
Again, I'm presenting the Getting Started with Office 365 Development talk.
DFW SharePoint UG – June 16
For this event, I'm providing my perspectives on SharePoint customization. The talk is titled "Business Solutions in SharePoint - a story of transformation" and covers how we built solutions on SharePoint in the past and how we will do so in the future.
DevCamp: Office – June 18
Free, hands-on training from the DX Group at Microsoft. Bring your laptop with Visual Studio and you'll have a few apps add-ins done before you go home.
SPTechCon Developer Days – June 24-26
This is my first time presenting at an SPTechCon event and I cannot wait! Since this is a developer-focussed event, I have a couple of sessions that go beyond the basics: "A Developer's Guide to SharePoint Search" and "Deep Dive into Native Universal Add-in Development with Office 365 APIs." Be sure to use code SCHAEFLEIN when you register for a discount.
I had a wonderful weekend in western Michigan, which included two sessions at the GRDevDay conference. (Think SharePoint Saturday, but for all things developer.) My thanks to the organizers for a job very well done!
The slides from my talk on Cloud Identity are posted on ITUnity.
The Office 365 session can be found on Microsoft Virtual Academy, with the slides and code on GitHub.
I had a terrific time at the SharePoint Saturday event in Irving, TX this weekend. The developer track consistently had about 20 attendees in the room, which is way more than I've seen at SPS events in the past. In addition, there was a Q&A room, and attendees had Eric and me going for another full hour.
My presentation was taken directly from the O365 TPM group (thanks Jeremy!) and can be found on Microsoft Virtual Academy, with the slides and code on GitHub.
Also, I want to thank the organizers (Eric, Eric, Rich, Corey, Jen, Miguel, Kyle and others I have likely missed) and sponsors (Amazon Web Services, Slalom, Planet Technologies, K2, Metalogix, RBA) for making the event a smashing success!
Microsoft announced this week, via a blog by Senior Escalation Engineer Stefan Goßner that SharePoint CUs will be included in Windows Update. The comments on that post indicated the risk for many SharePoint deployments.
In summary, Stefan acknowledges that due to the number of configurations possible with SharePoint that no guarantee can be made about causing issues in existing code (called a regression). Stefan also points out that production servers should not take updates directly. While many agree with this position, I find that small business administrators (who deal with everything, not just SharePoint) are not well versed in SharePoint patching and just accept the default values.
So, if this situation applies to you, I suggest you look at your Windows Update settings. I'm off to update my DSC configuration to make these changes to my VMs.