SlideShare ist ein Scribd-Unternehmen logo
1 von 29
6000 Greenwood Plaza Blvd
Suite 110
Greenwood Village, CO 80111
303.798.5458
www.aspenware.com
Windows Store App
for SharePoint 2013
Waughn
Hughes
Waughn has over 14 years of consulting experience, and has worked extensively with SharePoint for the past
seven years as a developer and solutions architect.
Waughn Hughes, Solutions Architect | w.hughes@aspenware.com
Agenda
• Start
• Plan
• Design
• Build
• Demo
Building Windows Store apps for SharePoint 2013 3
Get Started
What’s a Windows Store app?
• No Chrome
• Touch and Pen Input
• Contracts
• New Controls
• Tiles
Building Windows Store apps for SharePoint 2013 5
Design Guidance
• Principles
• Navigation
• Commanding
• Touch Interaction
• Branding
Building Windows Store apps for SharePoint 2013 6
Plan
Great at…
...presenting personalized, pertinent information from
numerous SharePoint environments.
Building Windows Store apps for SharePoint 2013 8
Activities to support…
• Find content in numerous SharePoint environments
• Bookmark content for easy access
• Provide notification when content is updated
Building Windows Store apps for SharePoint 2013 9
Features to include…
• Search and discover content (e.g. sites, lists and documents)
• Add and remove content from favorite list
• View dashboard of content
• Preview content before launching another application
• Create shortcut to a particular site
• Share content with other people and applications
Building Windows Store apps for SharePoint 2013 10
Design
…with PowerPoint!
Building Windows Store apps for SharePoint 2013 12
Wireframes
Building Windows Store apps for SharePoint 2013 13
Build
Environment and Tools
• Window 8
– and –
• Visual Studio Express 2012 for Windows 8
• Visual Studio 2012
– and –
• Office 365 (Developer Site)
• SharePoint (Foundation or Server) 2013 Farm
Building Windows Store apps for SharePoint 2013 16
Windows Store app: Languages
• VB/C#/C++ and XAML
• JavaScript and HTML
• C++ and DirectX
Building Windows Store apps for SharePoint 2013 17
SharePoint 2013 APIs
Building Windows Store apps for SharePoint 2013 18
http://msdn.microsoft.com/en-us/library/jj164060
Custom Client Application
SharePoint
server object model
_api
ODATA
REST
Execute
Query
JavaScript
object model
Silverlight & Mobile
client object model
.NET
client object model
Server
Client
What’s New?
• Search
• User Profile
• Taxonomy
• Feeds
• Publishing
• Sharing
Building Windows Store apps for SharePoint 2013 19
• Workflow
• E-Discovery
• IRM
• Analytics
• Business Data
Web: CSOM Example
// create the client context
using (ClientContext context = new ClientContext("http://sharepoint.demo.com"))
{
// set credentials for authentication
context.Credentials = CredentialCache.DefaultCredentials;
// the sharepoint web at the url
Web web = context.Web;
// retrieve the web properties
context.Load(web);
// retrieve the specified web properties
// context.Load(web, w => w.Title, w => w.Description);
// execute query
context.ExecuteQuery();
// access properties
string title = web.Title;
string description = web.Description;
}
Building Windows Store apps for SharePoint 2013 20
Web: REST Example
// create handler to handle authentication for the httpclient
HttpClientHandler handler = new HttpClientHandler();
handler.UseDefaultCredentials = true;
using (HttpClient client = new HttpClient(handler))
{
// specify format of results (atom/xml or json)
client.DefaultRequestHeaders.Add("Accept", "application/atom+xml");
client.DefaultRequestHeaders.Add("ContentType", "application/atom+xml;type=entry");
// create the rest url
string restUrl = "http://sharepoint.demo.com/_api/web";
// string restUrl = "http://sharepoint.demo.com/_api/web?$select=Title,Description";
// send asynchronous get request
HttpResponseMessage response = await client.GetAsync(restUrl);
// verify that the request was successful
response.EnsureSuccessStatusCode();
// write the http content to string
string responseBodyAsText = await response.Content.ReadAsStringAsync();
// read the xml into xdocument to use LINQ to XML
StringReader reader = new StringReader(responseBodyAsText);
XDocument responseXml = XDocument.Load(reader, LoadOptions.None);
// namespaces required to query xml document
XNamespace atom = "http://www.w3.org/2005/Atom";
XNamespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices";
XNamespace m = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata";
// access properties
string title = responseXml.Element(atom + "content").Element(m + "properties").Element(d + "Title").Value;
string description = responseXml.Element(atom + "content").Element(m + "properties").Element(d + "Description").Value;
}
Building Windows Store apps for SharePoint 2013 21
Search: CSOM Example
// create the client context
using (ClientContext context = new ClientContext("http://sharepoint.demo.com"))
{
// set credentials for authentication
context.Credentials = CredentialCache.DefaultCredentials;
// describe the query
var keywordQuery = new KeywordQuery(context);
keywordQuery.QueryText = "search term";
// used to execute queries against search engine
SearchExecutor searchExecutor = new SearchExecutor(context);
// execute the search query
ClientResult<ResultTableCollection> results = searchExecutor.ExecuteQuery(keywordQuery);
// execute query
context.ExecuteQuery();
// access search properties and results
int totalCount = results.Value[0].TotalRows;
IEnumerable<IDictionary<string, object>> rows = results.Value[0].ResultRows;
}
Building Windows Store apps for SharePoint 2013 22
Search: REST Example
// create handler to handle authentication for the httpclient
HttpClientHandler handler = new HttpClientHandler();
handler.UseDefaultCredentials = true;
using (HttpClient client = new HttpClient(handler))
{
// specify format of results (atom/xml or json)
client.DefaultRequestHeaders.Add("Accept", "application/atom+xml");
client.DefaultRequestHeaders.Add("ContentType", "application/atom+xml;type=entry");
// create the rest url for search
string searchRestUrl = "http://sharepoint.demo.com/_api/search/query?querytext='searchterm'";
// send asynchronous get request
HttpResponseMessage response = await client.GetAsync(restUrl);
// verify that the request was successful
response.EnsureSuccessStatusCode();
// write the http content to string
string responseBodyAsText = await response.Content.ReadAsStringAsync();
// read the xml into xdocument to use LINQ to XML
StringReader reader = new StringReader(responseBodyAsText);
XDocument responseXml = XDocument.Load(reader, LoadOptions.None);
// namespaces required to query xml document
XNamespace atom = "http://www.w3.org/2005/Atom";
XNamespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices";
XNamespace m = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata";
// retrieve search results
XElement relavantResults = responseXml.Descendants(d + "query").Elements(d + "PrimaryQueryResult").Elements(d + "RelevantResults").FirstOrDefault();
List<XElement> items = responseXml.Descendants(d + "query").Elements(d + "PrimaryQueryResult").Elements(d + "RelevantResults")
.Elements(d + "Table").Elements(d + "Rows").Elements(d + "element").ToList();
}
Building Windows Store apps for SharePoint 2013 23
Demo
References
References: Windows Store apps
Learn to build Windows Store apps
http://msdn.microsoft.com/en-us/library/windows/apps/br229519
Concepts and architecture
http://msdn.microsoft.com/en-us/library/windows/apps/br211361
Developing Windows Store apps
http://msdn.microsoft.com/en-us/library/windows/apps/xaml/br229566
Windows 8 app samples
http://code.msdn.microsoft.com/windowsapps/Windows-8-Modern-Style-App-Samples
Creating Windows Runtime Components in C# and Visual Basic
http://msdn.microsoft.com/en-us/library/windows/apps/br230301
Building Windows Store apps for SharePoint 2013 26
References: SharePoint 2013 APIs
What’s new for developers in SharePoint 2013
http://msdn.microsoft.com/en-us/library/jj163091
Choose the right API set in SharePoint 2013
http://msdn.microsoft.com/en-us/library/jj164060
Reference for SharePoint 2013
http://msdn.microsoft.com/en-us/library/jj193038
How to: Complete basic operations using SharePoint 2013 client library code
http://msdn.microsoft.com/en-us/library/fp179912
Programming using the SharePoint 2013 REST service
http://msdn.microsoft.com/en-us/library/fp142385
Building Windows Store apps for SharePoint 2013 27
Questions
Thank You!
6000 Greenwood Plaza Blvd
Suite 110
Greenwood Village, CO 80111
303.798.5458
www.aspenware.com
Aspenware

Weitere ähnliche Inhalte

Was ist angesagt?

Integrating SharePoint 2010 and Visual Studio Lightswitch
Integrating SharePoint 2010 and Visual Studio LightswitchIntegrating SharePoint 2010 and Visual Studio Lightswitch
Integrating SharePoint 2010 and Visual Studio Lightswitch
Rob Windsor
 
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
Kiril Iliev
 
SharePoint & jQuery Guide - SPSNashville 2014
SharePoint & jQuery Guide - SPSNashville 2014SharePoint & jQuery Guide - SPSNashville 2014
SharePoint & jQuery Guide - SPSNashville 2014
Mark Rackley
 

Was ist angesagt? (20)

Integrating SharePoint 2010 and Visual Studio Lightswitch
Integrating SharePoint 2010 and Visual Studio LightswitchIntegrating SharePoint 2010 and Visual Studio Lightswitch
Integrating SharePoint 2010 and Visual Studio Lightswitch
 
The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14
 
SPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuerySPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuery
 
SharePoint 2010 Client Object Model
SharePoint 2010 Client Object ModelSharePoint 2010 Client Object Model
SharePoint 2010 Client Object Model
 
Quick start guide to java script frameworks for sharepoint apps spsbe-2015
Quick start guide to java script frameworks for sharepoint apps spsbe-2015Quick start guide to java script frameworks for sharepoint apps spsbe-2015
Quick start guide to java script frameworks for sharepoint apps spsbe-2015
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePoint
 
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePointSPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
 
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery librariesTulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
 
(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide
 
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
 
Introduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPathIntroduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPath
 
APIs, APIs Everywhere!
APIs, APIs Everywhere!APIs, APIs Everywhere!
APIs, APIs Everywhere!
 
SharePoint & jQuery Guide - SPSNashville 2014
SharePoint & jQuery Guide - SPSNashville 2014SharePoint & jQuery Guide - SPSNashville 2014
SharePoint & jQuery Guide - SPSNashville 2014
 
HTML5 Gaming Payment Platforms
HTML5 Gaming Payment PlatformsHTML5 Gaming Payment Platforms
HTML5 Gaming Payment Platforms
 
SPTechCon Boston 2015 - Overcoming SharePoint Limitations
SPTechCon Boston 2015 - Overcoming SharePoint LimitationsSPTechCon Boston 2015 - Overcoming SharePoint Limitations
SPTechCon Boston 2015 - Overcoming SharePoint Limitations
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOM
 
Marketing Automation with dotCMS
Marketing Automation with dotCMSMarketing Automation with dotCMS
Marketing Automation with dotCMS
 
Modular android Project
Modular android ProjectModular android Project
Modular android Project
 
Understanding AJAX
Understanding AJAXUnderstanding AJAX
Understanding AJAX
 
SPCA2013 - SharePoint Hosted Apps and Javascript
SPCA2013 - SharePoint Hosted Apps and JavascriptSPCA2013 - SharePoint Hosted Apps and Javascript
SPCA2013 - SharePoint Hosted Apps and Javascript
 

Andere mochten auch

Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
SPTechCon
 

Andere mochten auch (20)

Road to the Cloud - Extending your reach with SharePoint and Office 365
Road to the Cloud - Extending your reach with SharePoint and Office 365Road to the Cloud - Extending your reach with SharePoint and Office 365
Road to the Cloud - Extending your reach with SharePoint and Office 365
 
SharePoint App Store - itunes for you business
SharePoint App Store - itunes for you businessSharePoint App Store - itunes for you business
SharePoint App Store - itunes for you business
 
Votre première App SharePoint pour Office 365 avec Visual Studio !
Votre première App SharePoint pour Office 365 avec Visual Studio !Votre première App SharePoint pour Office 365 avec Visual Studio !
Votre première App SharePoint pour Office 365 avec Visual Studio !
 
Transitioning to SharePoint App Development
Transitioning to SharePoint App DevelopmentTransitioning to SharePoint App Development
Transitioning to SharePoint App Development
 
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
 
SPCA2013 - Once you go app you don't go back
SPCA2013 - Once you go app you don't go backSPCA2013 - Once you go app you don't go back
SPCA2013 - Once you go app you don't go back
 
From Trashy to Classy: How The SharePoint 2013 App Model Changes Everything
From Trashy to Classy: How The SharePoint 2013 App Model Changes EverythingFrom Trashy to Classy: How The SharePoint 2013 App Model Changes Everything
From Trashy to Classy: How The SharePoint 2013 App Model Changes Everything
 
A Deep-Dive into Real-World SharePoint App Development
A Deep-Dive into Real-World SharePoint App DevelopmentA Deep-Dive into Real-World SharePoint App Development
A Deep-Dive into Real-World SharePoint App Development
 
O365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in actionO365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in action
 
SP2013 for Developers - Chris O'Brien
SP2013 for Developers - Chris O'BrienSP2013 for Developers - Chris O'Brien
SP2013 for Developers - Chris O'Brien
 
SharePoint Summit Vancouver: Reach your audience with a SharePoint mobile app
SharePoint Summit Vancouver: Reach your audience with a SharePoint mobile appSharePoint Summit Vancouver: Reach your audience with a SharePoint mobile app
SharePoint Summit Vancouver: Reach your audience with a SharePoint mobile app
 
Building your first app for share point 2013
Building your first app for share point 2013Building your first app for share point 2013
Building your first app for share point 2013
 
SharePoint Evolution conference 2013 - Bringing SharePoint Information into O...
SharePoint Evolution conference 2013 - Bringing SharePoint Information into O...SharePoint Evolution conference 2013 - Bringing SharePoint Information into O...
SharePoint Evolution conference 2013 - Bringing SharePoint Information into O...
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Model
 
Share point app architecture for the cloud and on premise
Share point app architecture for the cloud and on premiseShare point app architecture for the cloud and on premise
Share point app architecture for the cloud and on premise
 
SPSNL - Bringing SharePoint information into Office through Office Apps
SPSNL - Bringing SharePoint information into Office through Office AppsSPSNL - Bringing SharePoint information into Office through Office Apps
SPSNL - Bringing SharePoint information into Office through Office Apps
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning Models
 
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
 
Introduction to the new SharePoint 2013 App Model
Introduction to the new SharePoint 2013 App ModelIntroduction to the new SharePoint 2013 App Model
Introduction to the new SharePoint 2013 App Model
 
7 Key Things for Building a Highly-Scalable SharePoint 2013 App
7 Key Things for Building a Highly-Scalable SharePoint 2013 App7 Key Things for Building a Highly-Scalable SharePoint 2013 App
7 Key Things for Building a Highly-Scalable SharePoint 2013 App
 

Ähnlich wie Building a Windows Store App for SharePoint 2013

SharePoint Silverlight Sandboxed solutions
SharePoint Silverlight Sandboxed solutionsSharePoint Silverlight Sandboxed solutions
SharePoint Silverlight Sandboxed solutions
Phil Wicklund
 

Ähnlich wie Building a Windows Store App for SharePoint 2013 (20)

Charla desarrollo de apps con sharepoint y office 365
Charla   desarrollo de apps con sharepoint y office 365Charla   desarrollo de apps con sharepoint y office 365
Charla desarrollo de apps con sharepoint y office 365
 
SharePoint 2013 APIs
SharePoint 2013 APIsSharePoint 2013 APIs
SharePoint 2013 APIs
 
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
 
Optimizing Code Reusability for SharePoint using Linq to SharePoint & the MVP...
Optimizing Code Reusability for SharePoint using Linq to SharePoint & the MVP...Optimizing Code Reusability for SharePoint using Linq to SharePoint & the MVP...
Optimizing Code Reusability for SharePoint using Linq to SharePoint & the MVP...
 
Developing a provider hosted share point app
Developing a provider hosted share point appDeveloping a provider hosted share point app
Developing a provider hosted share point app
 
The SharePoint & jQuery Guide
The SharePoint & jQuery GuideThe SharePoint & jQuery Guide
The SharePoint & jQuery Guide
 
The SharePoint and jQuery Guide by Mark Rackley - SPTechCon
The SharePoint and jQuery Guide by Mark Rackley - SPTechConThe SharePoint and jQuery Guide by Mark Rackley - SPTechCon
The SharePoint and jQuery Guide by Mark Rackley - SPTechCon
 
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
 
SharePoint Saturday Sacramento 2013 SharePoint Apps
SharePoint Saturday Sacramento 2013 SharePoint AppsSharePoint Saturday Sacramento 2013 SharePoint Apps
SharePoint Saturday Sacramento 2013 SharePoint Apps
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint app
 
What's New for Developers in SharePoint 2013
What's New for Developers in SharePoint 2013What's New for Developers in SharePoint 2013
What's New for Developers in SharePoint 2013
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013
 
SharePoint Silverlight Sandboxed solutions
SharePoint Silverlight Sandboxed solutionsSharePoint Silverlight Sandboxed solutions
SharePoint Silverlight Sandboxed solutions
 
google drive and the google drive sdk
google drive and the google drive sdkgoogle drive and the google drive sdk
google drive and the google drive sdk
 
Fire up your mobile app!
Fire up your mobile app!Fire up your mobile app!
Fire up your mobile app!
 
Get started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePointGet started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePoint
 
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
 
Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
 
SharePoint 2013 Search and Creating Dynamic Content Management Solutions
SharePoint 2013 Search and Creating Dynamic Content Management SolutionsSharePoint 2013 Search and Creating Dynamic Content Management Solutions
SharePoint 2013 Search and Creating Dynamic Content Management Solutions
 

Mehr von Aspenware

Stop competing and start leading: A user experience case study.
Stop competing and start leading: A user experience case study.Stop competing and start leading: A user experience case study.
Stop competing and start leading: A user experience case study.
Aspenware
 

Mehr von Aspenware (20)

Playing nice with the MEAN stack
Playing nice with the MEAN stackPlaying nice with the MEAN stack
Playing nice with the MEAN stack
 
Stop competing and start leading: A user experience case study.
Stop competing and start leading: A user experience case study.Stop competing and start leading: A user experience case study.
Stop competing and start leading: A user experience case study.
 
Tips for building fast multi touch enabled web sites
 Tips for building fast multi touch enabled web sites Tips for building fast multi touch enabled web sites
Tips for building fast multi touch enabled web sites
 
Build once deploy everywhere using the telerik platform
Build once deploy everywhere using the telerik platformBuild once deploy everywhere using the telerik platform
Build once deploy everywhere using the telerik platform
 
Building web applications using kendo ui and the mvvm pattern
Building web applications using kendo ui and the mvvm patternBuilding web applications using kendo ui and the mvvm pattern
Building web applications using kendo ui and the mvvm pattern
 
Rich Web Applications with Aspenware
Rich Web Applications with AspenwareRich Web Applications with Aspenware
Rich Web Applications with Aspenware
 
Taking the Share out of Sharepoint: SharePoint Application Security.
Taking the Share out of Sharepoint: SharePoint Application Security.Taking the Share out of Sharepoint: SharePoint Application Security.
Taking the Share out of Sharepoint: SharePoint Application Security.
 
Implementing Scrum with Microsoft Team Foundation Service (TFS)
Implementing Scrum with Microsoft Team Foundation Service (TFS)Implementing Scrum with Microsoft Team Foundation Service (TFS)
Implementing Scrum with Microsoft Team Foundation Service (TFS)
 
Implementing Scrum with Microsoft Team Foundation Service (TFS)
Implementing Scrum with Microsoft Team Foundation Service (TFS)Implementing Scrum with Microsoft Team Foundation Service (TFS)
Implementing Scrum with Microsoft Team Foundation Service (TFS)
 
Aspenware TechMunch presents: mobile communities of interest
Aspenware TechMunch presents: mobile communities of interestAspenware TechMunch presents: mobile communities of interest
Aspenware TechMunch presents: mobile communities of interest
 
Hate JavaScript? Try TypeScript.
Hate JavaScript? Try TypeScript.Hate JavaScript? Try TypeScript.
Hate JavaScript? Try TypeScript.
 
Understanding Game Mechanics
Understanding Game MechanicsUnderstanding Game Mechanics
Understanding Game Mechanics
 
What people are saying about working with Aspenware.
What people are saying about working with Aspenware.What people are saying about working with Aspenware.
What people are saying about working with Aspenware.
 
Aspenware Customer Labs lift line experience
Aspenware Customer Labs lift line experienceAspenware Customer Labs lift line experience
Aspenware Customer Labs lift line experience
 
Aspenware 2013 consulting program
Aspenware 2013 consulting programAspenware 2013 consulting program
Aspenware 2013 consulting program
 
On Culture and Perks
On Culture and PerksOn Culture and Perks
On Culture and Perks
 
Maintaining Culture and Staying True to Your Values in Times of Change: Tye E...
Maintaining Culture and Staying True to Your Values in Times of Change: Tye E...Maintaining Culture and Staying True to Your Values in Times of Change: Tye E...
Maintaining Culture and Staying True to Your Values in Times of Change: Tye E...
 
Fast multi touch enabled web sites
Fast multi touch enabled web sitesFast multi touch enabled web sites
Fast multi touch enabled web sites
 
Business considerations for node.js applications
Business considerations for node.js applicationsBusiness considerations for node.js applications
Business considerations for node.js applications
 
Restful web services with nodejs
Restful web services with nodejsRestful web services with nodejs
Restful web services with nodejs
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Building a Windows Store App for SharePoint 2013

  • 1. 6000 Greenwood Plaza Blvd Suite 110 Greenwood Village, CO 80111 303.798.5458 www.aspenware.com Windows Store App for SharePoint 2013
  • 2. Waughn Hughes Waughn has over 14 years of consulting experience, and has worked extensively with SharePoint for the past seven years as a developer and solutions architect. Waughn Hughes, Solutions Architect | w.hughes@aspenware.com
  • 3. Agenda • Start • Plan • Design • Build • Demo Building Windows Store apps for SharePoint 2013 3
  • 5. What’s a Windows Store app? • No Chrome • Touch and Pen Input • Contracts • New Controls • Tiles Building Windows Store apps for SharePoint 2013 5
  • 6. Design Guidance • Principles • Navigation • Commanding • Touch Interaction • Branding Building Windows Store apps for SharePoint 2013 6
  • 8. Great at… ...presenting personalized, pertinent information from numerous SharePoint environments. Building Windows Store apps for SharePoint 2013 8
  • 9. Activities to support… • Find content in numerous SharePoint environments • Bookmark content for easy access • Provide notification when content is updated Building Windows Store apps for SharePoint 2013 9
  • 10. Features to include… • Search and discover content (e.g. sites, lists and documents) • Add and remove content from favorite list • View dashboard of content • Preview content before launching another application • Create shortcut to a particular site • Share content with other people and applications Building Windows Store apps for SharePoint 2013 10
  • 12. …with PowerPoint! Building Windows Store apps for SharePoint 2013 12
  • 13. Wireframes Building Windows Store apps for SharePoint 2013 13
  • 14. Build
  • 15. Environment and Tools • Window 8 – and – • Visual Studio Express 2012 for Windows 8 • Visual Studio 2012 – and – • Office 365 (Developer Site) • SharePoint (Foundation or Server) 2013 Farm Building Windows Store apps for SharePoint 2013 16
  • 16. Windows Store app: Languages • VB/C#/C++ and XAML • JavaScript and HTML • C++ and DirectX Building Windows Store apps for SharePoint 2013 17
  • 17. SharePoint 2013 APIs Building Windows Store apps for SharePoint 2013 18 http://msdn.microsoft.com/en-us/library/jj164060 Custom Client Application SharePoint server object model _api ODATA REST Execute Query JavaScript object model Silverlight & Mobile client object model .NET client object model Server Client
  • 18. What’s New? • Search • User Profile • Taxonomy • Feeds • Publishing • Sharing Building Windows Store apps for SharePoint 2013 19 • Workflow • E-Discovery • IRM • Analytics • Business Data
  • 19. Web: CSOM Example // create the client context using (ClientContext context = new ClientContext("http://sharepoint.demo.com")) { // set credentials for authentication context.Credentials = CredentialCache.DefaultCredentials; // the sharepoint web at the url Web web = context.Web; // retrieve the web properties context.Load(web); // retrieve the specified web properties // context.Load(web, w => w.Title, w => w.Description); // execute query context.ExecuteQuery(); // access properties string title = web.Title; string description = web.Description; } Building Windows Store apps for SharePoint 2013 20
  • 20. Web: REST Example // create handler to handle authentication for the httpclient HttpClientHandler handler = new HttpClientHandler(); handler.UseDefaultCredentials = true; using (HttpClient client = new HttpClient(handler)) { // specify format of results (atom/xml or json) client.DefaultRequestHeaders.Add("Accept", "application/atom+xml"); client.DefaultRequestHeaders.Add("ContentType", "application/atom+xml;type=entry"); // create the rest url string restUrl = "http://sharepoint.demo.com/_api/web"; // string restUrl = "http://sharepoint.demo.com/_api/web?$select=Title,Description"; // send asynchronous get request HttpResponseMessage response = await client.GetAsync(restUrl); // verify that the request was successful response.EnsureSuccessStatusCode(); // write the http content to string string responseBodyAsText = await response.Content.ReadAsStringAsync(); // read the xml into xdocument to use LINQ to XML StringReader reader = new StringReader(responseBodyAsText); XDocument responseXml = XDocument.Load(reader, LoadOptions.None); // namespaces required to query xml document XNamespace atom = "http://www.w3.org/2005/Atom"; XNamespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices"; XNamespace m = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"; // access properties string title = responseXml.Element(atom + "content").Element(m + "properties").Element(d + "Title").Value; string description = responseXml.Element(atom + "content").Element(m + "properties").Element(d + "Description").Value; } Building Windows Store apps for SharePoint 2013 21
  • 21. Search: CSOM Example // create the client context using (ClientContext context = new ClientContext("http://sharepoint.demo.com")) { // set credentials for authentication context.Credentials = CredentialCache.DefaultCredentials; // describe the query var keywordQuery = new KeywordQuery(context); keywordQuery.QueryText = "search term"; // used to execute queries against search engine SearchExecutor searchExecutor = new SearchExecutor(context); // execute the search query ClientResult<ResultTableCollection> results = searchExecutor.ExecuteQuery(keywordQuery); // execute query context.ExecuteQuery(); // access search properties and results int totalCount = results.Value[0].TotalRows; IEnumerable<IDictionary<string, object>> rows = results.Value[0].ResultRows; } Building Windows Store apps for SharePoint 2013 22
  • 22. Search: REST Example // create handler to handle authentication for the httpclient HttpClientHandler handler = new HttpClientHandler(); handler.UseDefaultCredentials = true; using (HttpClient client = new HttpClient(handler)) { // specify format of results (atom/xml or json) client.DefaultRequestHeaders.Add("Accept", "application/atom+xml"); client.DefaultRequestHeaders.Add("ContentType", "application/atom+xml;type=entry"); // create the rest url for search string searchRestUrl = "http://sharepoint.demo.com/_api/search/query?querytext='searchterm'"; // send asynchronous get request HttpResponseMessage response = await client.GetAsync(restUrl); // verify that the request was successful response.EnsureSuccessStatusCode(); // write the http content to string string responseBodyAsText = await response.Content.ReadAsStringAsync(); // read the xml into xdocument to use LINQ to XML StringReader reader = new StringReader(responseBodyAsText); XDocument responseXml = XDocument.Load(reader, LoadOptions.None); // namespaces required to query xml document XNamespace atom = "http://www.w3.org/2005/Atom"; XNamespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices"; XNamespace m = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"; // retrieve search results XElement relavantResults = responseXml.Descendants(d + "query").Elements(d + "PrimaryQueryResult").Elements(d + "RelevantResults").FirstOrDefault(); List<XElement> items = responseXml.Descendants(d + "query").Elements(d + "PrimaryQueryResult").Elements(d + "RelevantResults") .Elements(d + "Table").Elements(d + "Rows").Elements(d + "element").ToList(); } Building Windows Store apps for SharePoint 2013 23
  • 23. Demo
  • 25. References: Windows Store apps Learn to build Windows Store apps http://msdn.microsoft.com/en-us/library/windows/apps/br229519 Concepts and architecture http://msdn.microsoft.com/en-us/library/windows/apps/br211361 Developing Windows Store apps http://msdn.microsoft.com/en-us/library/windows/apps/xaml/br229566 Windows 8 app samples http://code.msdn.microsoft.com/windowsapps/Windows-8-Modern-Style-App-Samples Creating Windows Runtime Components in C# and Visual Basic http://msdn.microsoft.com/en-us/library/windows/apps/br230301 Building Windows Store apps for SharePoint 2013 26
  • 26. References: SharePoint 2013 APIs What’s new for developers in SharePoint 2013 http://msdn.microsoft.com/en-us/library/jj163091 Choose the right API set in SharePoint 2013 http://msdn.microsoft.com/en-us/library/jj164060 Reference for SharePoint 2013 http://msdn.microsoft.com/en-us/library/jj193038 How to: Complete basic operations using SharePoint 2013 client library code http://msdn.microsoft.com/en-us/library/fp179912 Programming using the SharePoint 2013 REST service http://msdn.microsoft.com/en-us/library/fp142385 Building Windows Store apps for SharePoint 2013 27
  • 29. 6000 Greenwood Plaza Blvd Suite 110 Greenwood Village, CO 80111 303.798.5458 www.aspenware.com Aspenware