SlideShare a Scribd company logo
1 of 32
Download to read offline
Building Windows 8 Modern Style
apps for SharePoint 2013
SharePoint Saturday Vietnam 5th
Binh Nguyen
About me
My name is Nguyen Thanh Binh
Work at Bamboo Solutions (http://bamboosolutions.com)
Hobbies: Football; Coffee; SharePoint 
Reach me at:
• Email: binhtnguyen@live.com
• Facebook: http://facebook.com/binhthanhng
• LinkedIn: http://linkedin.com/in/binhthanhng
• Twitter: @binhtnguyen
Agenda
Windows 8 Modern (Metro) Style App
• Introduction Windows 8
• Platform
• DEMO
SharePoint 2013 and Windows 8 App
• APIs
• REST
• Web Services
• DEMO
Q&A
Windows 8 and
Modern Style
apps
Cloud-
connected
Built on a
solid
foundation
Get more at
the Windows
Store
At home and
at work
All the apps
you want
Reimagined
browsing with
IE10
Windows
reimagined
Great
experience
across all
hardware
Windows 8
Windows reimagined
A new Metro style UI where touch is a first-class
citizen along with full mouse-and-keyboard support
New development models built on WinRT, including
native support for HTML/CSS/JS, C#/XAML, C++/DirectX
Designed from the chipset up for multiple form-
factors – tablets, laptops, desktops & all-in-ones
The Windows Store on every device with a full
commerce platform and flexibility
Great experience across all hardware
Built on a solid foundation
Windows 8 Platform
Language projections
DEMO
Windows 8 Apps
SharePoint 2013
and Windows 8
Apps
Connection to SharePoint
Connection
API set in SharePoint 2013
Server Object Model
Client Object Models for managed code
• .NET client object model
• Silverlight client object model
• JavaScript object model
Direct Remote Procedure Calls (RPC) calls to the owssvr.dll
REST/OData endpoints
Web Services (.ASMX)
How to determine which API and language set to use
Type of
Application
Device
which
code runs
Your
existing
skills
SharePoint API and Language for Windows 8 App Dev.
Type of
Application
Device
which
code runs
Your
existing
skills Language
HTML5/CSS and
JavaScript
XAML and C#/VB DirectX and C++/C
SharePoint APIs
Server Object
Model
Client Object
Model
Direct Remote
Procedure
Calls (RPC)
REST/OData
endpoints
Web Services
(.ASMX)
REST
Representational State Transfer (REST) interface in SharePoint 2013
PERFORM basic create, read, update, and delete (CRUD) operations in SharePoint 2013
REST exposes all SharePoint 2013 entities and operations
NO NEED to add references to any SharePoint assemblies/libraries
MAKE a request method to http://siteurl/_api/web/lists
ACCEPT the OData representation of the lists in XML or JSON from the response
Access SharePoint 2013 via REST
• Use Windows 8 Modern App WinJS Library (Microsoft
Window Library for JavaScript SDK) (Recommend)
• Use Cross-platform JavaScript libraries like jQuery,
KnockoutJS, ExtJS…
HTML5/JavaScript
• Use HttpWebRequest or System.Net.HttpClient with
asynchronous calling
• Process the data with Linq-to-XML
XAML/C# - .NET
Reading data
• JavaScript with jQuery
jQuery.ajax({
url: "http://siteurl/_api/web/lists",
type: "GET",
headers: {
"ACCEPT": "application/json;odata=verbose“
},
success: doSuccess,
error: doError
});
• JavaScript with WinJS
WinJS.xhr({
type: "GET",
url: "http://siteurl/_api/web/lists",
headers: { "content-type": "application/json; charset=utf-8" },
}).done(doSuccess, doError);
• C# - VB.NET
HttpWebRequest endpointRequest = (HttpWebRequest)HttpWebRequest.Create(sharepointUrl.ToString() + "/_api/web/lists");
endpointRequest.Method = "GET";
endpointRequest.Accept = "application/json;odata=verbose";
HttpWebResponse endpointResponse = (HttpWebResponse)endpointRequest.GetResponse();
Writing data
• JavaScript with jQuery/WinJS
jQuery.ajax({
url: “http://siteurl/_api/web/lists”,
type: "POST",
data: JSON.stringify({ '__metadata': { 'type': 'SP.List' }, 'AllowContentTypes': true, 'BaseTemplate': 100,
'ContentTypesEnabled': true, 'Description': 'My list description', 'Title': 'Test' } ),
headers: {
"accept": "application/json;odata=verbose",
"content-type":"application/json;odata=verbose",
"content-length":length of post body
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: doSuccess,
error: doError
});
jQuery.ajax({
url: “http://siteurl/_api/web/lists/GetByTitle(‘Test')”,
type: "POST",
data: JSON.stringify({ '__metadata': { 'type': 'SP.List' }, 'Title': 'New title' } ),
headers: {
“X-HTTP-Method”:”MERGE”,
"accept": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose",
"content-length":length of post body
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
“IF-MATCH”: “*”
},
success: doSuccess,
error: doError
});
DEMO
REST endpoints
Web Services
(.ASMX)
SharePoint Web Services (.ASMX)
Still supported in SharePoint 2013 framework for backward compatibility
NOT recommend for the new projects
Web Services provide methods to work remotely with a deployment of SharePoint such as:
• Lists Web Services - http://<site>/_vti_bin/Lists.asmx
• Webs Web Services – http://<site>/_vti_bin/Webs.asmx
• Views Web Services - http://<site>/_vti_bin/Views.asmx
• …
• …Simply use the HTTP request to the .asmx include the CAMLQuery to invoke the service
method
For Windows 8 Modern App: we can Web Services apply for both HTML5/JS and XAML/C#
Recommend to use jQuery SPServices (http://spservices.codeplex.com) for HTML5/JS Apps
Code sample
var soapEnv = "<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'> <soap:Body> 
<GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'>
<listName>Announcements</listName><query><Query><Where><Eq><FieldRef Name='Title'/>
<Value Type='Text'>Test Announcement</Value></Eq></Where></Query></query>
<viewFields><ViewFields>
<FieldRef Name='Title' /> <FieldRef Name='Body' /> <FieldRef Name='Expires' />
</ViewFields></viewFields> <rowLimit>99999</rowLimit>
<queryOptions xmlns:SOAPSDK9='http://schemas.microsoft.com/sharepoint/soap/'
><QueryOptions/></queryOptions>
</GetListItems> </soap:Body> </soap:Envelope>";
jQuery.ajax({
url: "http://siteurl/_vti_bin/lists.asmx",
type: "POST",
dataType: "xml",
data: soapEnv,
contentType: "text/xml; charset="utf-8"",
complete: function(xData, status){
jQuery(xData.responseXML).find("z:row").each(function () {
$(this).attr("ows_Title");
});
} });
jQuery SPServices
jQuery Library for SharePoint Web Services
Support SharePoint 2007/2010 and 2013 as well
Syntax:
$().SPServices({
operation: "operationname",
[webURL: "/sitepath",]
[option1: value1,]
[option2: value2,]
[async: false,]
completefunc: function (xData, Status) {
...do stuff...
}
});
jQuery SPServices sample
$().SPServices({
webURL: "http://siteurl/"
operation: "GetListItems",
async: false,
listName: "Announcements",
CAMLViewFields: "<ViewFields><FieldRef Name='Title' /></ViewFields>",
completefunc: function (xData, Status) {
$(xData.responseXML).SPFilterNode("z:row").each(function() {
var liHtml = "<li>" + $(this).attr("ows_Title") + "</li>";
$("#tasksUL").append(liHtml);
});
}
});
SPServices({
operation: "UpdateListItems",
listName: testList,
ID: ID,
valuepairs: [["Title", “abc”]],
completefunc: function (xData, Status) {
…
}
});
DEMO
Web Services (.ASMX)
Versus 
HTML5/JavaScript
JavaScript and HTML is more comfortable for SharePoint
Developers than the XAML and Silverlight
Since Windows 8 App uses the Internet Explorer 10 engine for
HTML5/CSS, then easy to port the current SharePoint
App/ASPX/HTML to Windows 8 App.
Create a cross-platform application that can easily become a
mobile app or even a SharePoint app (Re-use)
HTML5/CSS is easy to use, branding, design and get support from
other team, community, Internet…
HTML5 is the future so it's best to always be up to date.
XAML/C#
Object Oriented Programming: Unit Testing, inheritance,
polymorphism, architectural reuse…
Reuse the .NET Libraries for your Windows 8 App
Easy to port the current XAML app to Windows 8 App such as: Xbox,
Windows Phone, Windows Embedded, Windows Desktop,
Silverlight…
Strong in Animations, Transitions and Effects
XAML is Resolution Independence and vector-based, can leverage
GPU acceleration and scale indefinitely
“Liệu cơm gắp mắm, Tùy app chọn code”
Reference
 http://msdn.microsoft.com/en-us/windows/apps/br229512.aspx
 http://msdn.microsoft.com/en-us/library/jj164022(v=office.15).aspx
 http://msdn.microsoft.com/en-us/library/jj164060(v=office.15).aspx
 http://blogs.microsoft.co.il/blogs/choroshin/archive/2012/09/15/how-to-create-a-windows-8-app-for-
sharepoint-part-1-the-planning-stage.aspx
 http://blogs.microsoft.co.il/blogs/choroshin/archive/2012/09/30/how-to-create-a-windows-8-app-for-
sharepoint-part-2-the-development-stage.aspx
 http://spservices.codeplex.com/
Q&A
Thank you!
See you at next SharePoint Saturday Vietnam event!

More Related Content

What's hot

phpWebApp presentation
phpWebApp presentationphpWebApp presentation
phpWebApp presentationDashamir Hoxha
 
Chapter 1 (asp.net over view)
Chapter 1 (asp.net over view)Chapter 1 (asp.net over view)
Chapter 1 (asp.net over view)let's go to study
 
Getting Information through HTML Forms
Getting Information through HTML FormsGetting Information through HTML Forms
Getting Information through HTML FormsMike Crabb
 
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUGLearn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUGMarakana Inc.
 
Introducing the JotSpot Data Model and API
Introducing the JotSpot Data Model and APIIntroducing the JotSpot Data Model and API
Introducing the JotSpot Data Model and APIScott McMullan
 
Introductionto asp net-ppt
Introductionto asp net-pptIntroductionto asp net-ppt
Introductionto asp net-ppttmasyam
 

What's hot (8)

phpWebApp presentation
phpWebApp presentationphpWebApp presentation
phpWebApp presentation
 
Chapter 1 (asp.net over view)
Chapter 1 (asp.net over view)Chapter 1 (asp.net over view)
Chapter 1 (asp.net over view)
 
Getting Information through HTML Forms
Getting Information through HTML FormsGetting Information through HTML Forms
Getting Information through HTML Forms
 
Selenium for-ops
Selenium for-opsSelenium for-ops
Selenium for-ops
 
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUGLearn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUG
 
Introducing the JotSpot Data Model and API
Introducing the JotSpot Data Model and APIIntroducing the JotSpot Data Model and API
Introducing the JotSpot Data Model and API
 
lect4
lect4lect4
lect4
 
Introductionto asp net-ppt
Introductionto asp net-pptIntroductionto asp net-ppt
Introductionto asp net-ppt
 

Viewers also liked

Insights from Google for Vietnam mar2016
Insights from Google for Vietnam mar2016Insights from Google for Vietnam mar2016
Insights from Google for Vietnam mar2016Vinh Nguyen
 
VN Education insights
VN Education insightsVN Education insights
VN Education insightsVinh Nguyen
 
VN Digital consumer behaviour Retail
VN Digital consumer behaviour RetailVN Digital consumer behaviour Retail
VN Digital consumer behaviour RetailVinh Nguyen
 
VN Travel Insights
VN Travel InsightsVN Travel Insights
VN Travel InsightsVinh Nguyen
 
VN Real Estate insights
VN Real Estate insightsVN Real Estate insights
VN Real Estate insightsVinh Nguyen
 
comparing quantities class 8
comparing quantities class 8comparing quantities class 8
comparing quantities class 8AJAY RAO
 

Viewers also liked (6)

Insights from Google for Vietnam mar2016
Insights from Google for Vietnam mar2016Insights from Google for Vietnam mar2016
Insights from Google for Vietnam mar2016
 
VN Education insights
VN Education insightsVN Education insights
VN Education insights
 
VN Digital consumer behaviour Retail
VN Digital consumer behaviour RetailVN Digital consumer behaviour Retail
VN Digital consumer behaviour Retail
 
VN Travel Insights
VN Travel InsightsVN Travel Insights
VN Travel Insights
 
VN Real Estate insights
VN Real Estate insightsVN Real Estate insights
VN Real Estate insights
 
comparing quantities class 8
comparing quantities class 8comparing quantities class 8
comparing quantities class 8
 

Similar to Building Modern Style Windows 8 Apps for SharePoint 2013

CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2Geoffrey Fox
 
SharePoint 2013 APIs
SharePoint 2013 APIsSharePoint 2013 APIs
SharePoint 2013 APIsJohn Calvert
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Commit University
 
Java Technology
Java TechnologyJava Technology
Java Technologyifnu bima
 
django_introduction20141030
django_introduction20141030django_introduction20141030
django_introduction20141030Kevin Wu
 
Internet Explorer 8 for Developers by Christian Thilmany
Internet Explorer 8 for Developers by Christian ThilmanyInternet Explorer 8 for Developers by Christian Thilmany
Internet Explorer 8 for Developers by Christian ThilmanyChristian Thilmany
 
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 2013Kiril Iliev
 
SharePoint 2010 Application Development Overview
SharePoint 2010 Application Development OverviewSharePoint 2010 Application Development Overview
SharePoint 2010 Application Development OverviewRob Windsor
 
HTML5: the new frontier of the web
HTML5: the new frontier of the webHTML5: the new frontier of the web
HTML5: the new frontier of the webIvano Malavolta
 
Android Workshop
Android WorkshopAndroid Workshop
Android WorkshopJunda Ong
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...Mark Leusink
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...Mark Roden
 
Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Kashif Imran
 
Building appsinsilverlight4 part_1
Building appsinsilverlight4 part_1Building appsinsilverlight4 part_1
Building appsinsilverlight4 part_1Dennis Perlot
 
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 365Luis Valencia
 
03 form-data
03 form-data03 form-data
03 form-datasnopteck
 
uMobile Preconference Seminar
uMobile Preconference SeminaruMobile Preconference Seminar
uMobile Preconference SeminarJennifer Bourey
 
[SharePoint Korea Conference 2013 / 강율구] Sharepoint 스마트하게 개발하기
[SharePoint Korea Conference 2013 / 강율구] Sharepoint 스마트하게 개발하기[SharePoint Korea Conference 2013 / 강율구] Sharepoint 스마트하게 개발하기
[SharePoint Korea Conference 2013 / 강율구] Sharepoint 스마트하게 개발하기lanslote
 
Use Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsUse Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsNathan Smith
 

Similar to Building Modern Style Windows 8 Apps for SharePoint 2013 (20)

CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2
 
SharePoint 2013 APIs
SharePoint 2013 APIsSharePoint 2013 APIs
SharePoint 2013 APIs
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta
 
Java Technology
Java TechnologyJava Technology
Java Technology
 
08 ajax
08 ajax08 ajax
08 ajax
 
django_introduction20141030
django_introduction20141030django_introduction20141030
django_introduction20141030
 
Internet Explorer 8 for Developers by Christian Thilmany
Internet Explorer 8 for Developers by Christian ThilmanyInternet Explorer 8 for Developers by Christian Thilmany
Internet Explorer 8 for Developers by Christian Thilmany
 
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
 
SharePoint 2010 Application Development Overview
SharePoint 2010 Application Development OverviewSharePoint 2010 Application Development Overview
SharePoint 2010 Application Development Overview
 
HTML5: the new frontier of the web
HTML5: the new frontier of the webHTML5: the new frontier of the web
HTML5: the new frontier of the web
 
Android Workshop
Android WorkshopAndroid Workshop
Android Workshop
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 
Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365
 
Building appsinsilverlight4 part_1
Building appsinsilverlight4 part_1Building appsinsilverlight4 part_1
Building appsinsilverlight4 part_1
 
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
 
03 form-data
03 form-data03 form-data
03 form-data
 
uMobile Preconference Seminar
uMobile Preconference SeminaruMobile Preconference Seminar
uMobile Preconference Seminar
 
[SharePoint Korea Conference 2013 / 강율구] Sharepoint 스마트하게 개발하기
[SharePoint Korea Conference 2013 / 강율구] Sharepoint 스마트하게 개발하기[SharePoint Korea Conference 2013 / 강율구] Sharepoint 스마트하게 개발하기
[SharePoint Korea Conference 2013 / 강율구] Sharepoint 스마트하게 개발하기
 
Use Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsUse Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile Apps
 

More from Vinh Nguyen

[Think Next] Gói giải pháp bản địa hóa QAD ERP cho thị trường Việt Nam (VIE)
[Think Next] Gói giải pháp bản địa hóa QAD ERP cho thị trường Việt Nam (VIE)[Think Next] Gói giải pháp bản địa hóa QAD ERP cho thị trường Việt Nam (VIE)
[Think Next] Gói giải pháp bản địa hóa QAD ERP cho thị trường Việt Nam (VIE)Vinh Nguyen
 
[Think Next] VAS and Localization Solution QAD ERP for Vietnam Region (EN)
[Think Next] VAS and Localization Solution QAD ERP for Vietnam Region (EN)[Think Next] VAS and Localization Solution QAD ERP for Vietnam Region (EN)
[Think Next] VAS and Localization Solution QAD ERP for Vietnam Region (EN)Vinh Nguyen
 
Quản Lý Nghiệp - Geshe Michael Roach
Quản Lý Nghiệp - Geshe Michael RoachQuản Lý Nghiệp - Geshe Michael Roach
Quản Lý Nghiệp - Geshe Michael RoachVinh Nguyen
 
Nâng Đoạn Kim Cương - Geshe Michael Roach
Nâng Đoạn Kim Cương - Geshe Michael RoachNâng Đoạn Kim Cương - Geshe Michael Roach
Nâng Đoạn Kim Cương - Geshe Michael RoachVinh Nguyen
 
[Think Next] Cẩm nang làm việc từ xa work from home (WFH)
[Think Next] Cẩm nang làm việc từ xa work from home (WFH)[Think Next] Cẩm nang làm việc từ xa work from home (WFH)
[Think Next] Cẩm nang làm việc từ xa work from home (WFH)Vinh Nguyen
 
Social media for Lead generation
Social media for Lead generationSocial media for Lead generation
Social media for Lead generationVinh Nguyen
 
Nielsen Q1-2016 global consumer confidence report digital final
Nielsen Q1-2016 global consumer confidence report digital finalNielsen Q1-2016 global consumer confidence report digital final
Nielsen Q1-2016 global consumer confidence report digital finalVinh Nguyen
 
VN Digital Consumer behaviour Retail
VN Digital Consumer behaviour RetailVN Digital Consumer behaviour Retail
VN Digital Consumer behaviour RetailVinh Nguyen
 
Economy SEA 2016
Economy SEA 2016Economy SEA 2016
Economy SEA 2016Vinh Nguyen
 
Microsoft Dynamics CRM 2015 Release Preview Guide
Microsoft Dynamics CRM 2015 Release Preview GuideMicrosoft Dynamics CRM 2015 Release Preview Guide
Microsoft Dynamics CRM 2015 Release Preview GuideVinh Nguyen
 
47 creative photography & photoshop projects
47 creative photography & photoshop projects47 creative photography & photoshop projects
47 creative photography & photoshop projectsVinh Nguyen
 
The portraits & landscapes photography book
The portraits & landscapes photography bookThe portraits & landscapes photography book
The portraits & landscapes photography bookVinh Nguyen
 
500 poses for photographing men
500 poses for photographing men500 poses for photographing men
500 poses for photographing menVinh Nguyen
 
500 poses for photographing group portraits
500 poses for photographing group portraits500 poses for photographing group portraits
500 poses for photographing group portraitsVinh Nguyen
 
47 creative photography & photoshop projects
47 creative photography & photoshop projects47 creative photography & photoshop projects
47 creative photography & photoshop projectsVinh Nguyen
 
Google ad words căn bản
Google ad words căn bảnGoogle ad words căn bản
Google ad words căn bảnVinh Nguyen
 
Google Adwords Advance - Google Adwords Nâng Cao
Google Adwords Advance - Google Adwords Nâng CaoGoogle Adwords Advance - Google Adwords Nâng Cao
Google Adwords Advance - Google Adwords Nâng CaoVinh Nguyen
 
Sage - HOW TO CHOOSE A CRM
Sage - HOW TO CHOOSE A CRMSage - HOW TO CHOOSE A CRM
Sage - HOW TO CHOOSE A CRMVinh Nguyen
 
Sage CRM product brochure
Sage CRM product brochureSage CRM product brochure
Sage CRM product brochureVinh Nguyen
 
QAD OnDemand Cloud ERP Benefits Infographic
QAD OnDemand Cloud ERP Benefits InfographicQAD OnDemand Cloud ERP Benefits Infographic
QAD OnDemand Cloud ERP Benefits InfographicVinh Nguyen
 

More from Vinh Nguyen (20)

[Think Next] Gói giải pháp bản địa hóa QAD ERP cho thị trường Việt Nam (VIE)
[Think Next] Gói giải pháp bản địa hóa QAD ERP cho thị trường Việt Nam (VIE)[Think Next] Gói giải pháp bản địa hóa QAD ERP cho thị trường Việt Nam (VIE)
[Think Next] Gói giải pháp bản địa hóa QAD ERP cho thị trường Việt Nam (VIE)
 
[Think Next] VAS and Localization Solution QAD ERP for Vietnam Region (EN)
[Think Next] VAS and Localization Solution QAD ERP for Vietnam Region (EN)[Think Next] VAS and Localization Solution QAD ERP for Vietnam Region (EN)
[Think Next] VAS and Localization Solution QAD ERP for Vietnam Region (EN)
 
Quản Lý Nghiệp - Geshe Michael Roach
Quản Lý Nghiệp - Geshe Michael RoachQuản Lý Nghiệp - Geshe Michael Roach
Quản Lý Nghiệp - Geshe Michael Roach
 
Nâng Đoạn Kim Cương - Geshe Michael Roach
Nâng Đoạn Kim Cương - Geshe Michael RoachNâng Đoạn Kim Cương - Geshe Michael Roach
Nâng Đoạn Kim Cương - Geshe Michael Roach
 
[Think Next] Cẩm nang làm việc từ xa work from home (WFH)
[Think Next] Cẩm nang làm việc từ xa work from home (WFH)[Think Next] Cẩm nang làm việc từ xa work from home (WFH)
[Think Next] Cẩm nang làm việc từ xa work from home (WFH)
 
Social media for Lead generation
Social media for Lead generationSocial media for Lead generation
Social media for Lead generation
 
Nielsen Q1-2016 global consumer confidence report digital final
Nielsen Q1-2016 global consumer confidence report digital finalNielsen Q1-2016 global consumer confidence report digital final
Nielsen Q1-2016 global consumer confidence report digital final
 
VN Digital Consumer behaviour Retail
VN Digital Consumer behaviour RetailVN Digital Consumer behaviour Retail
VN Digital Consumer behaviour Retail
 
Economy SEA 2016
Economy SEA 2016Economy SEA 2016
Economy SEA 2016
 
Microsoft Dynamics CRM 2015 Release Preview Guide
Microsoft Dynamics CRM 2015 Release Preview GuideMicrosoft Dynamics CRM 2015 Release Preview Guide
Microsoft Dynamics CRM 2015 Release Preview Guide
 
47 creative photography & photoshop projects
47 creative photography & photoshop projects47 creative photography & photoshop projects
47 creative photography & photoshop projects
 
The portraits & landscapes photography book
The portraits & landscapes photography bookThe portraits & landscapes photography book
The portraits & landscapes photography book
 
500 poses for photographing men
500 poses for photographing men500 poses for photographing men
500 poses for photographing men
 
500 poses for photographing group portraits
500 poses for photographing group portraits500 poses for photographing group portraits
500 poses for photographing group portraits
 
47 creative photography & photoshop projects
47 creative photography & photoshop projects47 creative photography & photoshop projects
47 creative photography & photoshop projects
 
Google ad words căn bản
Google ad words căn bảnGoogle ad words căn bản
Google ad words căn bản
 
Google Adwords Advance - Google Adwords Nâng Cao
Google Adwords Advance - Google Adwords Nâng CaoGoogle Adwords Advance - Google Adwords Nâng Cao
Google Adwords Advance - Google Adwords Nâng Cao
 
Sage - HOW TO CHOOSE A CRM
Sage - HOW TO CHOOSE A CRMSage - HOW TO CHOOSE A CRM
Sage - HOW TO CHOOSE A CRM
 
Sage CRM product brochure
Sage CRM product brochureSage CRM product brochure
Sage CRM product brochure
 
QAD OnDemand Cloud ERP Benefits Infographic
QAD OnDemand Cloud ERP Benefits InfographicQAD OnDemand Cloud ERP Benefits Infographic
QAD OnDemand Cloud ERP Benefits Infographic
 

Recently uploaded

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Recently uploaded (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

Building Modern Style Windows 8 Apps for SharePoint 2013

  • 1. Building Windows 8 Modern Style apps for SharePoint 2013 SharePoint Saturday Vietnam 5th Binh Nguyen
  • 2. About me My name is Nguyen Thanh Binh Work at Bamboo Solutions (http://bamboosolutions.com) Hobbies: Football; Coffee; SharePoint  Reach me at: • Email: binhtnguyen@live.com • Facebook: http://facebook.com/binhthanhng • LinkedIn: http://linkedin.com/in/binhthanhng • Twitter: @binhtnguyen
  • 3. Agenda Windows 8 Modern (Metro) Style App • Introduction Windows 8 • Platform • DEMO SharePoint 2013 and Windows 8 App • APIs • REST • Web Services • DEMO Q&A
  • 4. Windows 8 and Modern Style apps
  • 5. Cloud- connected Built on a solid foundation Get more at the Windows Store At home and at work All the apps you want Reimagined browsing with IE10 Windows reimagined Great experience across all hardware Windows 8
  • 6. Windows reimagined A new Metro style UI where touch is a first-class citizen along with full mouse-and-keyboard support New development models built on WinRT, including native support for HTML/CSS/JS, C#/XAML, C++/DirectX Designed from the chipset up for multiple form- factors – tablets, laptops, desktops & all-in-ones The Windows Store on every device with a full commerce platform and flexibility
  • 7. Great experience across all hardware
  • 8. Built on a solid foundation
  • 14. API set in SharePoint 2013 Server Object Model Client Object Models for managed code • .NET client object model • Silverlight client object model • JavaScript object model Direct Remote Procedure Calls (RPC) calls to the owssvr.dll REST/OData endpoints Web Services (.ASMX)
  • 15. How to determine which API and language set to use Type of Application Device which code runs Your existing skills
  • 16. SharePoint API and Language for Windows 8 App Dev. Type of Application Device which code runs Your existing skills Language HTML5/CSS and JavaScript XAML and C#/VB DirectX and C++/C SharePoint APIs Server Object Model Client Object Model Direct Remote Procedure Calls (RPC) REST/OData endpoints Web Services (.ASMX)
  • 17. REST
  • 18. Representational State Transfer (REST) interface in SharePoint 2013 PERFORM basic create, read, update, and delete (CRUD) operations in SharePoint 2013 REST exposes all SharePoint 2013 entities and operations NO NEED to add references to any SharePoint assemblies/libraries MAKE a request method to http://siteurl/_api/web/lists ACCEPT the OData representation of the lists in XML or JSON from the response
  • 19. Access SharePoint 2013 via REST • Use Windows 8 Modern App WinJS Library (Microsoft Window Library for JavaScript SDK) (Recommend) • Use Cross-platform JavaScript libraries like jQuery, KnockoutJS, ExtJS… HTML5/JavaScript • Use HttpWebRequest or System.Net.HttpClient with asynchronous calling • Process the data with Linq-to-XML XAML/C# - .NET
  • 20. Reading data • JavaScript with jQuery jQuery.ajax({ url: "http://siteurl/_api/web/lists", type: "GET", headers: { "ACCEPT": "application/json;odata=verbose“ }, success: doSuccess, error: doError }); • JavaScript with WinJS WinJS.xhr({ type: "GET", url: "http://siteurl/_api/web/lists", headers: { "content-type": "application/json; charset=utf-8" }, }).done(doSuccess, doError); • C# - VB.NET HttpWebRequest endpointRequest = (HttpWebRequest)HttpWebRequest.Create(sharepointUrl.ToString() + "/_api/web/lists"); endpointRequest.Method = "GET"; endpointRequest.Accept = "application/json;odata=verbose"; HttpWebResponse endpointResponse = (HttpWebResponse)endpointRequest.GetResponse();
  • 21. Writing data • JavaScript with jQuery/WinJS jQuery.ajax({ url: “http://siteurl/_api/web/lists”, type: "POST", data: JSON.stringify({ '__metadata': { 'type': 'SP.List' }, 'AllowContentTypes': true, 'BaseTemplate': 100, 'ContentTypesEnabled': true, 'Description': 'My list description', 'Title': 'Test' } ), headers: { "accept": "application/json;odata=verbose", "content-type":"application/json;odata=verbose", "content-length":length of post body "X-RequestDigest": $("#__REQUESTDIGEST").val() }, success: doSuccess, error: doError }); jQuery.ajax({ url: “http://siteurl/_api/web/lists/GetByTitle(‘Test')”, type: "POST", data: JSON.stringify({ '__metadata': { 'type': 'SP.List' }, 'Title': 'New title' } ), headers: { “X-HTTP-Method”:”MERGE”, "accept": "application/json;odata=verbose", "content-type": "application/json;odata=verbose", "content-length":length of post body "X-RequestDigest": $("#__REQUESTDIGEST").val(), “IF-MATCH”: “*” }, success: doSuccess, error: doError });
  • 24. SharePoint Web Services (.ASMX) Still supported in SharePoint 2013 framework for backward compatibility NOT recommend for the new projects Web Services provide methods to work remotely with a deployment of SharePoint such as: • Lists Web Services - http://<site>/_vti_bin/Lists.asmx • Webs Web Services – http://<site>/_vti_bin/Webs.asmx • Views Web Services - http://<site>/_vti_bin/Views.asmx • … • …Simply use the HTTP request to the .asmx include the CAMLQuery to invoke the service method For Windows 8 Modern App: we can Web Services apply for both HTML5/JS and XAML/C# Recommend to use jQuery SPServices (http://spservices.codeplex.com) for HTML5/JS Apps
  • 25. Code sample var soapEnv = "<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'> <soap:Body> <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> <listName>Announcements</listName><query><Query><Where><Eq><FieldRef Name='Title'/> <Value Type='Text'>Test Announcement</Value></Eq></Where></Query></query> <viewFields><ViewFields> <FieldRef Name='Title' /> <FieldRef Name='Body' /> <FieldRef Name='Expires' /> </ViewFields></viewFields> <rowLimit>99999</rowLimit> <queryOptions xmlns:SOAPSDK9='http://schemas.microsoft.com/sharepoint/soap/' ><QueryOptions/></queryOptions> </GetListItems> </soap:Body> </soap:Envelope>"; jQuery.ajax({ url: "http://siteurl/_vti_bin/lists.asmx", type: "POST", dataType: "xml", data: soapEnv, contentType: "text/xml; charset="utf-8"", complete: function(xData, status){ jQuery(xData.responseXML).find("z:row").each(function () { $(this).attr("ows_Title"); }); } });
  • 26. jQuery SPServices jQuery Library for SharePoint Web Services Support SharePoint 2007/2010 and 2013 as well Syntax: $().SPServices({ operation: "operationname", [webURL: "/sitepath",] [option1: value1,] [option2: value2,] [async: false,] completefunc: function (xData, Status) { ...do stuff... } });
  • 27. jQuery SPServices sample $().SPServices({ webURL: "http://siteurl/" operation: "GetListItems", async: false, listName: "Announcements", CAMLViewFields: "<ViewFields><FieldRef Name='Title' /></ViewFields>", completefunc: function (xData, Status) { $(xData.responseXML).SPFilterNode("z:row").each(function() { var liHtml = "<li>" + $(this).attr("ows_Title") + "</li>"; $("#tasksUL").append(liHtml); }); } }); SPServices({ operation: "UpdateListItems", listName: testList, ID: ID, valuepairs: [["Title", “abc”]], completefunc: function (xData, Status) { … } });
  • 29. Versus  HTML5/JavaScript JavaScript and HTML is more comfortable for SharePoint Developers than the XAML and Silverlight Since Windows 8 App uses the Internet Explorer 10 engine for HTML5/CSS, then easy to port the current SharePoint App/ASPX/HTML to Windows 8 App. Create a cross-platform application that can easily become a mobile app or even a SharePoint app (Re-use) HTML5/CSS is easy to use, branding, design and get support from other team, community, Internet… HTML5 is the future so it's best to always be up to date. XAML/C# Object Oriented Programming: Unit Testing, inheritance, polymorphism, architectural reuse… Reuse the .NET Libraries for your Windows 8 App Easy to port the current XAML app to Windows 8 App such as: Xbox, Windows Phone, Windows Embedded, Windows Desktop, Silverlight… Strong in Animations, Transitions and Effects XAML is Resolution Independence and vector-based, can leverage GPU acceleration and scale indefinitely “Liệu cơm gắp mắm, Tùy app chọn code”
  • 30. Reference  http://msdn.microsoft.com/en-us/windows/apps/br229512.aspx  http://msdn.microsoft.com/en-us/library/jj164022(v=office.15).aspx  http://msdn.microsoft.com/en-us/library/jj164060(v=office.15).aspx  http://blogs.microsoft.co.il/blogs/choroshin/archive/2012/09/15/how-to-create-a-windows-8-app-for- sharepoint-part-1-the-planning-stage.aspx  http://blogs.microsoft.co.il/blogs/choroshin/archive/2012/09/30/how-to-create-a-windows-8-app-for- sharepoint-part-2-the-development-stage.aspx  http://spservices.codeplex.com/
  • 31. Q&A
  • 32. Thank you! See you at next SharePoint Saturday Vietnam event!