The Trusted Technology Partner in Business Innovation PASSION DISCIPLINE INNOVATION TEAMING INTEGRITY

Similar documents
Developing Microsoft SharePoint Server 2013 Core Solutions

ADS2013: App Development with SharePoint 2013

App Development in SharePoint 2013

SPT2013: Developing Solutions with. SharePoint DAYS AUDIENCE FORMAT COURSE DESCRIPTION STUDENT PREREQUISITES

An IT Pro Guide for Deploying and Managing SharePoint 2013 Apps. Randy

Course MS55077A Project Server 2013 Development. Length: 5 Days

GSA2013: The Great SharePoint Adventure 2013

MOC 20488B: Developing Microsoft SharePoint Server 2013 Core Solutions

The Great Office 365 Adventure

SAV2013: The Great SharePoint 2013 App Venture

INFORMATIX SharePoint 2013

GOA365: The Great Office 365 Adventure

SharePoint Apps model overview

By Fabio Franzini. Foreword by Daniel Jebaraj

Alberto Diaz Martin MVP SharePoint Server adiazcan

SharePoint 2013 Business Connectivity Services Hybrid Overview

Trainer Preparation Guide for Course 20488B: Developing Microsoft SharePoint Server 2013 Core Solutions Design of the Course

SharePoint 2013 DEV. David Čamdžić Kompas Xnet d.o.o.

MICROSOFT EXAM QUESTIONS & ANSWERS

Audience Profile This course is intended for any developer that is tasked with creating applications that interface with O365.

Single Sign On. SSO & ID Management for Web and Mobile Applications

On-premise and Online connection with Provider Hosted APP (Part 1)

Upgrading Your Development Skills to SharePoint 2013 Course 55014A; 5 Days, Instructor-led

Office 365 SharePoint Online White Paper

Dynamics CRM with Azure and SharePoint a perfect match. Central and Eastern Europe

Developing ASP.NET MVC 4 Web Applications

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

HarePoint Workflow Extensions for Office 365. Quick Start Guide

Windows Azure Pack Installation and Initial Configuration

Course 10175A - Microsoft SharePoint 2010, Application Development

Noramsoft Inc. Noramsoft Inc. SPT2O1O - Course Description. Developing Solutions with SharePoint Server 2010 SPT2010. Noramsoft Inc. Noramsoft Inc.

Course 20489B: Developing Microsoft SharePoint Server 2013 Advanced Solutions OVERVIEW

SHAREPOINT 2010 DEVELOPMENT : IN THE CLOUD. Faraz Khan Senior Consultant RBA Consulting

Web Sites, Virtual Machines, Service Management Portal and Service Management API Beta Installation Guide

Developing Microsoft SharePoint Server 2013 Advanced Solutions

Developing ASP.NET MVC 4 Web Applications Course 20486A; 5 Days, Instructor-led

SharePoint 2010/2013 Course

Course 10978A Introduction to Azure for Developers

SharePoint 2010 Intranet Case Study. Presented by Peter Carson President, Envision IT

Feature Integration Across Microsoft Office Server Products SharePoint Server, Exchange Server, Lync Server, and Office Web Apps

Developing ASP.NET MVC 4 Web Applications MOC 20486

MIGRATING SHAREPOINT TO THE CLOUD

Hybrid for SharePoint Server Search Reference Architecture

New Features of SharePoint 2013

SharePoint A Ten-Point Review of SharePoint 2013 vs NICOLAS LAGROTTA NICOLAS LAGROTTA

Thomas Röthlisberger IT Security Analyst

Broadlook CRM Suite Requirements Guide

MS 10978A Introduction to Azure for Developers

Improving social collaboration possibilities by implementing a Social App for SharePoint Niko Lönnberg

Deploy Remote Desktop Gateway on the AWS Cloud

Developing Microsoft Azure Solutions 20532B; 5 Days, Instructor-led

Course 20533: Implementing Microsoft Azure Infrastructure Solutions

HTML5. Turn this page to see Quick Guide of CTTC

Introduction to the EIS Guide

Microsoft Training and Certification Guide. Current as of March 16, 2015

Microsoft SharePoint 2013 App Development. Scot Hillier. Ted Pattison

ICONICS Using the Azure Cloud Connector

JapanCert 専 門 IT 認 証 試 験 問 題 集 提 供 者

Implementing Microsoft Azure Infrastructure Solutions

Setup Guide: Server-side synchronization for CRM Online and Exchange Server

An IT Pro Guide for Managing SharePoint s BI Infrastructure. Randy Williams

Managing Office 365 Identities and Services 20346C; 5 Days, Instructor-led

Implementing Microsoft Azure Infrastructure Solutions 20533B; 5 Days, Instructor-led

DocAve for Office 365 Sustainable Adoption

Course 20346: Managing Office 365 Identities and Services

Course 20533B: Implementing Microsoft Azure Infrastructure Solutions

Developing Microsoft SharePoint Server 2013 Advanced Solutions

Managing Office 365 Identities and Services

SharePoint 2013 Logical Architecture

Microsoft Extending Microsoft Dynamics CRM 2011

Samsung KNOX EMM Authentication Services. SDK Quick Start Guide

Managing Office 365 Identities and Services

Guide to Automating Workflows Quickly and Easily

Portals and Hosted Files

KEMP LoadMaster. Enabling Hybrid Cloud Solutions in Microsoft Azure

DEPLOYMENT GUIDE Version 2.1. Deploying F5 with Microsoft SharePoint 2010

SHAREPOINT HYBRID AND IMPLICATIONS OF 2016

Agenda. Federation using ADFS and Extensibility options. Office 365 Identity overview. Federation and Synchronization

TH3 Office 365 REST APIs. Peter Carson

126 SW 148 th Street Suite C-100, #105 Seattle, WA Tel: Fax:

SharePoint Training. Yes-M Systems LLC. Length: Hours Course

10978A: Introduction to Azure for Developers

Developing Microsoft Azure Solutions

SharePoint 2010 Interview Questions-Architect

DE-20489B Developing Microsoft SharePoint Server 2013 Advanced Solutions

Developing Microsoft Azure Solutions 20532A; 5 days

SharePoint Checklist and Resources

Nintex Workflow 2010 Installation Guide. Installation Guide Nintex USA LLC, All rights reserved. Errors and omissions excepted.

Microsoft Dynamics AX 2009 Installation Guide. Microsoft Corporation Published: November 2009

Transcription:

The Trusted Technology Partner in Business Innovation PASSION DISCIPLINE INNOVATION TEAMING INTEGRITY

SharePoint Search App Custom App for Advanced Searches Ken Mears Senior Consultant, Portals & Collaboration Practice Neudesic LLC

WHO THE HECK IS THIS GUY? Ken Mears Senior Consultant Neudesic LLC SharePoint Cipher http://krdmtech.wordpress.com/ Twitter @krdmtech Email krdmtech@gmail.com

AGENDA What s an App? App Hosting App Authentication Developing an App Packaging Demo Let s do it! Questions

SHAREPOINT 2013 APPS Apps are essentially web applications You can use any language, such as HTML, JavaScript, PHP, or.net Common IDEs are Microsoft Visual Studio 2012, and a web-based tool, "Napa" Office 365 Development Tools The Cloud App Model supports a tiered architecture in which the app's business logic, data, and user interface (UI) can be distributed into separate components You can connect your app with just about any internal or public web services, take advantage of the new OAuth 2.0 support in SharePoint, and use the Representational State Transfer (REST) and client APIs (JavaScript and.net) to integrate and connect your app with SharePoint. SharePoint 2013 provides a wide variety of features such as Search, workflow, social networking, taxonomy, user profiles, and Business Connectivity Services (BCS) that your apps can take advantage of.

APP CATALOG The App Catalog is a site collection where apps can be deployed to allow them to be shared with every other site collection/site in that web application. There can only be one app catalog per web application There can be multiple app catalogs in a farm During the creation of the app catalog you will be asked to supply a Primary Site Collection Administrator. This user is the gate keeper for all apps in this catalog. The app catalog administrators can also be given the control over the SharePoint Store. This will force users to Request apps from the store and the admins will need to approve or deny those requests. You will also be asked to supply a list of End Users. These users are the only set of users that will be able to see apps in the app catalog

FAMILIAR UX (USER EXPERIENCE) Apps for SharePoint fit seamlessly into the SharePoint website where they are installed and therefore bring data and functionality to the users familiar work environment and provide them with a familiar user experience. An app for SharePoint provides a fully immersive experience and optionally can extend some of the existing UI, such as in menus, or by providing embeddable parts for other pages. App parts surface an iframe element that contains content from your app. Ribbon or context menu extensions make your app available on list items, documents, or anywhere else a ribbon is shown.

APP HOSTING OPTIONS Cloud-hosted: Includes at least one remote component and may also include SharePoint-hosted components. Within this category are two important types of apps: Provider-hosted: These apps include components that are deployed and hosted outside the SharePoint farm. They are installed to the host web, but their remote components are hosted on another server. Auto-hosted: Provider-hosted apps whose remote components are provisioned and deployed for you on Windows Azure. As with a provider-hosted app, an autohosted app for SharePoint interacts with a SharePoint website but also uses resources and services that are located on a remote site that is hosted by Windows Azure. The SharePoint 2013 installation provisions and deploys these resources for you. SharePoint-hosted: Apps where all components are hosted on either an on-premises or Office 365 SharePoint farm. SharePointhosted apps are installed on a SharePoint 2013 website, called the host web. They have their resources hosted on an isolated sub-site of a host web, called the app web.

When you are dealing with accessing SharePoint data from a remote app, you have to decide whether you want to authenticate and communicate to SharePoint by using (1) OAuth, or (2) the cross-domain library. Then, for the data access API, you must decide between (3) the client object model (JavaScript/.NET client object models), or (4) Representational State Transfer (REST). APP AUTHENTICATION When you are accessing the data on your remote app from SharePoint, you have to decide whether you want to use (1) the web proxy, (2) remote event receivers, or (3) the cross-domain library with a custom proxy page to authenticate and communicate with external services or apps. You have to use the available APIs in the remote app to retrieve or manipulate data.

APP AUTHENTICATION (CONT D) You have to consider several aspects when you work with data in your app. For example, what route is the data using? Is it coming from or going through the server? Is it going through the client? Is it OK to authenticate as the logged-on user? Does the app need elevated privileges? Inbound data connectivity OAuth: An open protocol that enables secure authorization in a simple and standard way. OAuth enables users to approve an application to act on their behalf without sharing their user name and password. You can use OAuth with server-side code. It is a good option if you need to run a non-interactive process, or if you need to elevate privileges to other than those of the logged-on user. Cross-domain library: A client-side alternative in the form of a JavaScript file (SP.RequestExecutor.js) hosted in the SharePoint website that you can reference in your remote app as long as they are in the same internet zone. The cross-domain library allows you to interact with more than one domain in your remote app page through a proxy. This is a good option if you prefer your app code to run in the client rather than in the server, or if there are connectivity barriers, such as firewalls, between SharePoint and your remote infrastructure. Inbound data connectivity options: Which one should I use? The following table lists the common requirements and scenarios you might encounter when you are building apps. An x in the column indicates which option OAuth or cross-domain library you can use in each case. Requirement/Scenario OAuth Cross-domain library I use client-side technologies (HTML + JavaScript). x I want to use REST interfaces. x x There is a firewall between SharePoint and my remote app, and I need to issue the calls through the browser. x My app needs to access resources as the logged-on user. x x My app needs to elevate privileges to other than those of the current logged-on user. My app needs to act on behalf of a user other than the one who is logged on. x x My app needs to perform operations only while the user is logged on. x x My app needs to perform operations even when the user is not logged on. x

APP AUTHENTICATION (CONT D) Outbound data connectivity Web proxy: As a developer, you can use the web proxy exposed in client APIs such as the JavaScript/.NET client object models. When you use the web proxy, you issue the initial request to SharePoint. In turn, SharePoint requests the data to the specified endpoint and forwards the response back to your page. Use the web proxy when you want the communication to occur at the server level. Remote event receivers: You can use remote event receivers to handle events that occur to an item in the app, such as a list, a list item, or a web. These events resemble those in a traditional SharePoint solution, except that they can work with the remote components of the app for SharePoint. Custom proxy page for the cross-domain library: You can use the cross-domain library to access data in your remote app if you provide a custom proxy page that is hosted in the remote app infrastructure. As the developer, you are responsible for the custom proxy page implementation and must deal custom logic, such as the authentication mechanism, to the remote app. Use the cross-domain library with a custom proxy page if you want the communication to occur at the client level. Outbound data connectivity options: Which one should I use? The following table lists the common requirements and scenarios you might encounter when you are building apps. An x in the column indicates which option web proxy library or cross-domain library with a custom proxy page you can use in each case. Requirement/Scenario Web Proxy Cross-domain library with custom proxy page Remote event receivers I use client-side technologies (HTML + JavaScript). x x I cannot add pages or components to the remote app or service. x x I want to use REST interfaces. x x x I want to use the JavaScript CSOM. x x I want to use the.net CSOM. x x There is no direct connectivity between the SharePoint server and my app. I need to issue calls through the browser. x My app needs to access resources as the logged-on user. x x

A new domain is needed for all Apps in the SharePoint farm Setup App Catalog Create app domain forward lookup zone Create * Hosts(A) s for all IP addresses Run PowerShell script to create App service application add-pssnapin "Microsoft.Sharepoint.Powershell $account = Get-SPManagedAccount Domain\Account Remove-SPServiceApplicationPool -Identity SettingsServiceAppPool DEVELOPING THE APP $apppoolsubsvc = New-SPServiceApplicationPool -Name SettingsServiceAppPool -Account $account $appsubsvc = New-SPSubscriptionSettingsServiceApplication -ApplicationPool $apppoolsubsvc -Name SettingsServiceApp -DatabaseName SettingsServiceDB $proxysubsvc = New-SPSubscriptionSettingsServiceApplicationProxy -ServiceApplication $appsubsvc

Configure App URLs DEVELOPING THE APP (CONT D) In the App domain box, type the isolated domain that you created for hosting apps In the App prefix box, type a name to use for the URL prefix for apps

PACKAGING AND DISTRIBUTING APPS Apps for SharePoint are distributed as an app package. Depending on where the app is hosted, the package may contain different components. For provider-hosted apps, where you or your IT department hosts the app on a dedicated server or third-party hosting service, the package might just contain the app manifest. * Auto-hosted app packages may include items to be deployed on the Windows Azure cloud. SharePoint-hosted apps might contain some SharePoint-related components, in addition to the app manifest. If you use "Napa" Office 365 Development Tools or Visual Studio 2012 to build apps and deploy directly from them, the tools let you publish your app into a file that has an.app extension. You can then distribute the app in one of two ways: Apps that are meant to run within a particular organization can be deployed using the App Catalog. Apps for the Office Store can be submitted via the seller hub. Always remember to add licensing checks to the app.

DEMO

QUESTIONS?

Apps for SharePoint overview http://msdn.microsoft.com/library/office/apps/fp179930(v=office.15) REFERENCES Manage the App Catalog in SharePoint 2013 http://technet.microsoft.com/en-us/library/fp161234.aspx Choose patterns for developing and hosting your app for SharePoint http://msdn.microsoft.com/en-us/library/fp179887.aspx Data access options for apps in SharePoint 2013 http://msdn.microsoft.com/en-us/library/office/apps/fp179897 Host webs, app webs, and SharePoint components in SharePoint 2013 http://msdn.microsoft.com/en-us/library/fp179925.aspx SharePoint 2013 - App Development https://www.nothingbutsharepoint.com/sites/devwiki/articles/pages/sha repoint-2013-app-development.aspx Publish apps for SharePoint http://msdn.microsoft.com/en-us/library/jj164070.aspx Configure Environment http://technet.microsoft.com/en-us/library/fp161236.aspx Configure an Environment for Apps for SharePoint 2013 https://www.nothingbutsharepoint.com/sites/devwiki/articles/pages/config ure-an-environment-for-apps-for-sharepoint-2013.aspx Planning the Infrastructure Required for the new App Model in SharePoint 2013 http://blogs.technet.com/b/speschka/archive/2012/09/03/planning-theinfrastructure-required-for-the-new-app-model-in-sharepoint-2013.aspx Prepare your SharePoint 2013 farm for App development and debugging http://blogs.msdn.com/b/how24/archive/2013/06/14/prepare-yoursharepoint-2013-farm-for-app-development-and-debugging.aspx Convert autohosted app to provider-hosted app http://msdn.microsoft.com/en- US/library/office/dn722449(v=office.15).aspx