Archives

Entries for 'Jack Cosgrove'

If you are constructing a web application, you will probably have to create a login page that generates a user session. If you are not aware, RESTful (representational state transfer) URLs are considered best practice for internet applications. As a general rule (only to be broken under duress), RESTful URLs should be nouns, while the HTTP method is the verb. For example, if you want to see a user profile page and the user ID is 8, then a RESTful URL would be https://host/users/8/. “users&...

Nintex offers a great platform with which to customize SharePoint forms. Although the capabilities of Nintex are great, not everything can be done out of the box. I needed to highlight Nintex Forms 2013 controls that were required but had not yet been assigned a value. I was able to accomplish this with some custom JavaScript that used the Nintex version of jQuery.
The HTML input types supported by the following JavaScript are text, radio, and checkbox. When a text input is empty, a red bound...

SyntaxHighlighter.all();
Object-relational mappings (ORMs) took the world by storm in the mid-aughts. Obviously there are many advantages to ORMs given their success, but there are some drawbacks. I'll explain one particular hurdle that I ran into as well as the steps I took to overcome it.
A client had an existing database we needed to interact with using an ORM; this necessitated a database-first approach. Furthermore, this database's schema was mirrored in other databases with sli...

In DMC employees' never-ending quest to make work as much like college as possible, the DMC Outing Club is a big step forward in employee happiness and a big step back in time to a more carefree age. Dartmouth may have us beat for history and skiing (and even then our skiing is steeper), but the DMC Outing Club has a secret weapon - deep-pocketed corporate backing!
For the uninitiated, DMC has a monthly stipend called the Activity Fund which employees may use to organize events with...

The CAN bus is a standard network allowing multiple devices to talk to each other. It’s widely used on vehicles (in fact, it's likely that your car has at least ten) as well as in the industrial automation world.
Recently were troubleshooting a strange issue which was causing one of the devices on the CAN bus to periodically do something that it wasn't commanded to do. By disconnecting other devices on the CAN bus, we were able to trace the issue back to the single device w...

Reporting is almost a universal requirement for new projects coming into DMC these days. As part of an HMI we developed for a customer we also installed SQL Server Reporting Services (SSRS) on a Siemens PLC. This is used to generate reports for production batches run on that PLC. The customer desired these reports to be in PDF format, which after some investigation was easy to do with SSRS. A little background on SSRS...
SSRS is a web application that generates nice graphical reports from SQL...

SharePoint offers a little-known but incredibly useful feature allowing for bulk adds, updates, and deletes of list items via the SPWeb.ProcessBatchData method. The usage is a bit complex because you need to pass CAML markup to the method to perform the operation on multiple list items. This CAML must contain the list item ID, list GUID, and relevant column names and values in an XML collection. There are numerous examples throughout the web showing how to write this CAML for manipulating list i...

I had the opportunity recently to work for a client who wanted to extract log data from a Siemens WinAC PLC using a C# .NET client. The application was archiving software that would run when another software component encountered an error. Log data was assembled from a variety of sources in the system stack, including the Siemens PLC. In order to keep the PLC's Step 7 code independent of this diagnostic logging, I used the Siemens WinAC ODK.
The WinAC API exposes two interfaces, IPLC and ...

Today I had to restore user authentication on a SharePoint farm. The farm had been functional yesterday, but upon arriving into work this morning users would get a low-level error message when trying to log in.
Microsoft pushed out some security patches yesterday for Windows Server 2008 R2. A discussion of some of the problems encountered by users can be found here.
I found that on this farm, the Forefront Identity Manager Synchronization Service failed to start, which in turn broke the Us...

As I explained in a previous post, a client had need of copying appointments from an Exchange shared calendar to a SharePoint calendar.
I recently encountered a bug in calendar lists that I thought I should share. The task was to populate a SharePoint calendar with appointments from Exchange. Exchange appointments have a unique ID that I was using in SharePoint, but this ID is re-used for instances of a recurring appointment. In order to differentiate instances of recurring appointments, I wo...

SharePoint 2013 RTM was released recently to MSDN subscribers, and I have been reading up on some of its features since then. I'll provide an overview of what to expect from SharePoint 2013.
In-place upgrades from SharePoint 2010 are not supported. This means that a new farm will have to be created, and 2010 content upgraded by the database attach method. The database attach method supports both content databases and service application databases now.
Web parts can be h...

SharePoint external data columns are an invaluable tool when drawing data from sources outside SharePoint, as I reported in previous blog entries. Whether the data exist in SQL Server, a WCF web service, or elsewhere, external data columns can integrate this data with out-of-the-box SharePoint lists.
External data columns do however have one major disadvantage. Unlike external lists, external data columns cache the information drawn from the external content type within SharePoint. While the ...

SyntaxHighlighter.all();
Recently I had the opportunity to programmatically copy Exchange appointments to a SharePoint calendar. This was done using the Exchange web services API. I found no examples of this procedure online, so I thought I would add my own example. This example looks 62 days into the future and copies appointments from a shared calendar in Exchange located in the public folders root.
// Here are the references you'll need
using System;
using System.Linq;
using Sy...

Is cloud computing right for your business?
Working on the consulting services team at DMC, I encounter clients with a desire for an office intranet without the hassle of reinventing the wheel. SharePoint does a lot for its users, but the fact remains that an on-premise installation requires dedicated hardware and configuration. Microsoft's cloud version of SharePoint, previously called SharePoint Online and now called Office 365, solves that problem by hosting your instance of SharePoint...

SharePoint is a fairly complex product that is in a state of constant maturation. With so much customization available to users and developers, it can be hard to stay on top of best practices - especially when those best practices may not be documented in easy-to-find places. To help other users and developers, I have compiled this list of SharePoint "gotchas" and their remedies.
I cannot find a column in a list or list item!
Make sure you are using the appropriate name - external ...

SharePoint of Contact 2: Using CRM Online Data within SharePoint
In this previous blog post, I explained how to integrate Microsoft Dynamics CRM with SharePoint 2010 using an External Content Type (ECT) linked to the Dynamics SQL Server instance. Today I will explain how to integrate Microsoft Dynamics CRM Online with SharePoint 2010, also using an ECT. Since CRM Online data is only accessible via web services, we will use a WCF web service-based ECT.
First a note about why CRM Online data...

A client of our Consulting Services team recently decided to take the plunge and upgrade their SharePoint farm from Microsoft Office SharePoint Services 2007 (a.k.a. MOSS 2007) to SharePoint 2010 Standard Edition. They also decided to add a separate SQL server to their farm, which up until then had been a single-server farm. This wrinkle presented both opportunities and challenges for our upgrade strategy. I'll describe that strategy in this blog post.
SharePoint offers two broad strategi...

The Unified Logging System (ULS) logs are one of the developer's and administrator's best friends when troubleshooting SharePoint. But as anyone who has ever browsed through ULS logs can attest, their readability leaves something to be desired. In this blog, I'll review two solutions to improve the readability and searchability of ULS logs: Microsoft's own, unsupported ULS Viewer and a competing ULS viewer offered by Stefan Gordon.
Let's start with the Microsoft offering.
...

A lot of our SharePoint clients at DMC want a SharePoint site which allows users outside their company network to have login access to the site. SharePoint supports a type of user authentication called claims-based authentication, which is a composite of Windows Active Directory authentication and forms-based authentication. Forms-based authentication stores the credentials for users not within an organization's Active Directory forest in a SQL Server database. This enables external users to...

"A chicken in every pot and a display on every wall." -Herbert Hoover
President Hoover was a prescient and oft-misquoted man. Fortunately for us, DMC has realized his vision of liquid crystal abundance. DMC's new office is full of displays. Displays on desks, displays on walls, and displays in pockets. With this embarrassment of riches comes great responsibility. A responsibility to create and stream high-quality promotional content to as many of the office's ...