Deep-Dive of SharePoint 2013 & Office 365 Proven Development Strategies
This EPC Group blog post will cover the latest tools and technologies for performing custom development on SharePoint Server 2013, Office 365, SharePoint Online and Windows Azure environments. We will also discuss development strategies for organizations who plan to have these technology assets deployed both on-premises as well as in the cloud and require applications that are compatible as well as secure in a hybrid cloud environment.
The new SharePoint app model, as shown in the first image below, has been designed in a distributed nature to support applications regardless of where they are hosted, as shown in the second image below, to ensure that SharePoint will be able adapt and evolve over time and scale with your business.
You should utilizes the new SharePoint app model when your organization’s business or technical requirements require customization to support the following:
- Requires a full screen interfaces
- Entails the customization or the ribbon or menu actions
- Needs to be an app parts
- Requires workflows and/or remote event receivers
- Needs to pull in data from other systems
- Requires custom lists, fields or views
Microsoft has also just recently the new Office 365 API Tools Preview which will open up the possibilities of not only integrating data but the ability to continue to streamline the security models and lower some of the fears and possibly realistic perceived risk regarding the storage of sensitive (PHI, PII, HIPAA, etc.) data within the cloud.
A high-level overview of the SharePoint App Model
Overview of Hosting Architecture for Apps
The overall options to a developer have widened and the use of HTML has become prevalent in achieving development requests of end users and the business
In this post, EPC Group will discuss the new SharePoint app and related APIs in the following sections including security and identity management elements such as OData (e.g. Open Data Protocol) and OAuth (e.g. Open Authorization) that provides for secure access to data and resources.
The core developer skillsets for SharePoint 2013, Office 365 and/or SharePoint Online requires a strong understanding of the .NET Framework 4.5.1 which is released with Visual Studio 2013 as well being included in Windows 8.1.
Windows Workflow Foundation 4 is hosted in the new Workflow Manager Client, as shown in the diagram below, and is built on the messaging functionality of Windows Communication Foundation (WCF).
For you to be able to perform development activities in SharePoint 2013, Office 365 and/or SharePoint Online and Microsoft Azure, there are core technologies and tools you must have available as detailed below:
SharePoint 2013 Development Environment:
- Visual Studio 2013 and tools
- Microsoft Office 2013 Professional
- An Office 365 Developer Site
- Windows Azure SDK and tools:
High-level overview of SharePoint 2013 Workflow and the Workflow Manager
Workflow activities, which are implementations of activity classes and are implemented declaratively by using XAML (e.g. Extensible Application Markup Language), represent the underlying managed objects that drive the overall workflow behavior. Workflow actions, which are defined by the author of the workflow, are wrappers that encapsulate the underlying activities and they are easily reviewable in SharePoint Designer 2013.
Even if your organization’s current initiative or identified business requirements are focusing on just on-premises or a cloud-based infrastructure, you must be prepared for future hybrid cloud initiatives and the related development that goes along with it.
The “hybrid cloud development mindset” will be the new focus and leading strategy for most organization’s development effort over the next decade.
By recommending you test and familiarize yourself with tools that may not be required for your project’s scope, such as signing up for an Office 365 Developers site or testing Windows Azure and its SDK, this is not going to create a situation where you are wasting your time or simply “playing around with the latest fun development toys” available on the market as it would be been in previous releases of SharePoint.
In the past releases of SharePoint and in EPC Group’s previous two books on SharePoint 2007 and SharePoint 2010, we never recommended going out and performing this type of familiarization with tools that may never be in scope and that is due to the complete shift in the IT landscape that has taken place in the past few years and even past few months and the absolute necessary for preparing for scalability and the possibility of a hybrid cloud scenario.
With the new unified architecture mindset of SharePoint 2013, Microsoft’s recent release of Office 365 API tools, as well as the corresponding unified project system in Visual Studio, you will actually be improving on your organization’s overall application development lifecycle strategy and the ROI you can provide to your team.
Developing with the thought process to “error on the side of caution” and to ensure that any custom apps, features, workflows or solutions you are developed are also compatible with the cloud make actually take some extra time in terms of development hours.
The flip-side of the coin here is that if you do not develop with “cloud compatibility” in mind, you may end up in a situation down the road where your organization wants to try out Office 365 or Windows Azure for one department, business unit or external vendor.
This could cause you to then be forced to nearly completely redesign a custom app to make it compatible for a new business case where it may take 70 hours of time to accomplish when you could have spent 5 or 6 additional hours in the first place to ensure the app was scalable and compatible.
There are also the related internal business processes that most organizations require to initiate a new custom development project or initiative.
You do not want to put yourself in a situation where you are forced into a “phase 2” development effort when a type of “change order” could have been discussed with the project team about the importance of this compatibility and additional level of effort it may take in the initial “phase 1” effort.
Even if you know this additional effort is going to be denied, it is important to follow this best practices and providing the best advice to the business, even if they do not want to listen.
This may help you on the off chance a discussion comes up internally and you are asked, “Why didn’t we just develop this to be compatible with both an on-premises and cloud-based environment?”
.NET Framework 4.5 \ 4.5.1 and SharePoint 2013
With all of the new features released in the new version of SharePoint 2013, the underlying .NET Framework is at the very core of the managed execution environment and the required services to its running applications.
There are two main components of the .NET Framework which are:
- The common language runtime (CLR):
- This is the execution engine that handles running applications
- The .NET Framework Class Library:
- This library consists of reusable code that a developer calls within the custom applications for which they are developing, as shown in the image below.
Overview of the components that make up .NET
The following is a list of the services that are provided via the .NET Framework for running applications:
- Memory management allocating and releasing memory
- Multi-targeting via the targeting of the portable class library which provides compatibility for multiple platforms
- A common type system to all languages that target the .NET Framework
- Development frameworks and technologies that include ASP.NET, ADO.NET, Windows Communication Foundation
- An extensive class library of types and their members from the .NET Framework Class Library
- Language interoperability via compilers targeting the .NET Framework and emit an intermediate code which is then compiled at run time to allow programmers to develop applications in their preferred language
- Version compatibility between .NET Frameworks
- Side-by-side execution via allowing multiple versions of the common language runtime to exist on the same computer allowing for multiple versions to coexist
Ability to select from any Programming Language Supported by the .NET Framework
The .NET Framework allows you to select from any of the supported programming languages to achieve your development goals.
There is an underlying interoperability that enables the language that you prefer and select to interact with all of the other .NET Framework applications regardless of the languages for which they were developed.
Updated .NET Framework Features Commonly Discussed within SharePoint 2013 Initiatives
There are a large number of new features and tools as well as key improvements to the .NET 4.5 Framework but there are a few that are core to new high profile updates and features in SharePoint 2013 that are commonly discussed by SharePoint project team members and SharePoint administrative with the development team.
The following is a small subset of new features and updates to the .NET Framework 4.5 which are commonly discussed within a new SharePoint 2013, Office 365, SharePoint Online or Windows Azure initiative:
- New .NET Framework tool called the Resource File Generator (Resgen.exe) that enables you to create a .resw file for use in Windows Store apps from a .resources file embedded in a .NET Framework assembly.
- New .NET for Windows Store apps which can be built in C#.
- Updates to Windows Workflow Foundation that contains changes and improvements in the following areas:
- The addition of state machine workflows with the ability to set breakpoints on states as well as the ability to copy and paste transitions in the Workflow Designer.
- New activities for creating state machine workflows that include: StateMachine, State, and Transition.
- Enhanced Workflow Designer feature around search capabilities in Visual Studio as well as new panning support that enables the visible portion of a workflow to be changed without using the scroll bars.
- Updates to the Windows Presentation Foundation (WPF) that contains changes and improvements in the following areas:
- The new Ribbon control which enables you to implement a ribbon user interface that hosts a Quick Access Toolbar, Application Menu, and tabs.
- Improved performance when displaying large sets of grouped data, and by accessing collections on non-UI threads.
- Ability to set the amount of time that should elapse between property changes and data source updates.
- New features for Windows Communication Foundation (WCF) applications that contains changes and improvements for the following areas:
- Ability to configure ASP.NET compatibility mode more easily.
- Validation of WCF configuration files by Visual Studio as part of the build process, so you can detect configuration errors before you run your application.
- New HTTPS protocol mapping to make it easier to expose an endpoint over HTTPS with Internet Information Services (IIS)
SharePoint & Office 365 | SharePoint Online Custom Application & Solution Development Best Practices and Strategies “From the Consulting Trenches”
EPC Group will continue our SharePoint & Office 365 custom application & solution development deep-dive blog series in the weeks to come to touch on the real-world “from the consulting trenches” approach that EPC Group has successfully implemented for hundreds of organizations throughout North America as we have also detailed in our latest book, “SharePoint 2013 Field Guide: Advice from the Consulting Trenches.”