This document provides an overview of Microsoft Azure Mobile Services. It begins with an introduction and agenda. It then discusses the architecture and management portal for Mobile Services. The management portal allows you to manage data, scripts, permissions, scheduling, push notifications, identity, configuration, scaling, and logs. It also covers the REST API for common operations like querying, inserting, updating, and deleting data. Finally, it discusses server scripts and common script objects for working with data, push notifications, and more. Server script modules are also introduced.
Windows Azure mobile services - Kolkata - 28 June 2015Kunal Chowdhury
Windows Azure Mobile Services accelerates connected client application development by streamlining common backend tasks like structuring storage, authenticating users, and sending push notifications.
20140424 Android / iOS 개발자를 위한 Microsoft BaaS 세미나영욱 김
This document discusses Backend as a Service (BaaS) and Azure Mobile Services. It provides an overview of Azure Mobile Services, including supported platforms, default features, management portal functionality for data, scripts, permissions, scheduling, push notifications and identity integration. It also briefly demonstrates using an Android app connected to a Mobile Service.
Claims Based Identity In Share Point 2010Steve Sofian
This document discusses claims-based identity in SharePoint 2010. SharePoint 2010 uses claims-based authentication which allows users to sign in using multiple identity providers. Claims are issued by an authority to describe attributes of a user. SharePoint acts as a claims-based application by using a security token service to authenticate users and issue claims. The document covers configuring claims providers and incoming/outgoing claims to provide identity and access across SharePoint and external applications.
SharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVPAyman El-Hattab
The document discusses SharePoint 2010 service application architecture. It explains that service applications provide shared services and resources to sites in a configurable way. Service applications can be deployed individually and sites select which ones to consume. This allows for scaling and isolation of services across farms. The document outlines several core service applications and how to manage, develop, and configure them.
Deploy sql express and share point foundationTep Chanveasna
This document provides instructions for deploying SQL Server Express and SharePoint Foundation on a Windows Server 2008 R2 environment. It outlines the hardware, software, and network requirements. It then provides a step-by-step guide to installing and configuring SQL Server Express, SharePoint Foundation, and integrating SQL Server Reporting Services with SharePoint. Key steps include installing prerequisites, configuring servers and domains, installing and configuring SQL Server Express, SharePoint Foundation, and Reporting Services. The guide also covers authentication methods and how users and services authenticate with each component.
Active Directory Federation Services (AD FS) allows single sign-on access across organizational boundaries using claims-based authentication. AD FS maintains application security by implementing a claims-based authorization model where claims describe user identity attributes. Claims are held in authentication tokens that can be validated. With claims-based authentication, an external system authenticates a user and redirects them back to the application with claims about the user, allowing access if validated. Configuring AD FS in SharePoint 2013 requires setting up DNS, service accounts, certificates, and installing/configuring AD FS. AD FS version 3 improvements include reduced dependency on IIS, remote management, SQL replication, and a new Web Application Proxy for reverse proxy and AD FS proxy functionality.
Designing service applications architectureThuan Ng
This document summarizes a presentation about designing service applications in SharePoint 2010. It discusses replacing the shared service provider (SSP) with the new service application model. Service applications are extensible and flexible. They allow for granular services to be deployed to individual web applications. The document provides examples of logical architectures for small to large organizations, including isolating services by department for security. It emphasizes designing service applications based on business requirements and dependencies.
Una presentacion muy rapida y por eso nunca finalizada acerca de Windows Server Federation Services en Windows Server 2008, aunque tiene muchas fallas en el uso de informacion como la mezcla de idiomas, o muchos datos plasmados en el slide, puede servir de base para otra presentacion mejor
Windows Azure mobile services - Kolkata - 28 June 2015Kunal Chowdhury
Windows Azure Mobile Services accelerates connected client application development by streamlining common backend tasks like structuring storage, authenticating users, and sending push notifications.
20140424 Android / iOS 개발자를 위한 Microsoft BaaS 세미나영욱 김
This document discusses Backend as a Service (BaaS) and Azure Mobile Services. It provides an overview of Azure Mobile Services, including supported platforms, default features, management portal functionality for data, scripts, permissions, scheduling, push notifications and identity integration. It also briefly demonstrates using an Android app connected to a Mobile Service.
Claims Based Identity In Share Point 2010Steve Sofian
This document discusses claims-based identity in SharePoint 2010. SharePoint 2010 uses claims-based authentication which allows users to sign in using multiple identity providers. Claims are issued by an authority to describe attributes of a user. SharePoint acts as a claims-based application by using a security token service to authenticate users and issue claims. The document covers configuring claims providers and incoming/outgoing claims to provide identity and access across SharePoint and external applications.
SharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVPAyman El-Hattab
The document discusses SharePoint 2010 service application architecture. It explains that service applications provide shared services and resources to sites in a configurable way. Service applications can be deployed individually and sites select which ones to consume. This allows for scaling and isolation of services across farms. The document outlines several core service applications and how to manage, develop, and configure them.
Deploy sql express and share point foundationTep Chanveasna
This document provides instructions for deploying SQL Server Express and SharePoint Foundation on a Windows Server 2008 R2 environment. It outlines the hardware, software, and network requirements. It then provides a step-by-step guide to installing and configuring SQL Server Express, SharePoint Foundation, and integrating SQL Server Reporting Services with SharePoint. Key steps include installing prerequisites, configuring servers and domains, installing and configuring SQL Server Express, SharePoint Foundation, and Reporting Services. The guide also covers authentication methods and how users and services authenticate with each component.
Active Directory Federation Services (AD FS) allows single sign-on access across organizational boundaries using claims-based authentication. AD FS maintains application security by implementing a claims-based authorization model where claims describe user identity attributes. Claims are held in authentication tokens that can be validated. With claims-based authentication, an external system authenticates a user and redirects them back to the application with claims about the user, allowing access if validated. Configuring AD FS in SharePoint 2013 requires setting up DNS, service accounts, certificates, and installing/configuring AD FS. AD FS version 3 improvements include reduced dependency on IIS, remote management, SQL replication, and a new Web Application Proxy for reverse proxy and AD FS proxy functionality.
Designing service applications architectureThuan Ng
This document summarizes a presentation about designing service applications in SharePoint 2010. It discusses replacing the shared service provider (SSP) with the new service application model. Service applications are extensible and flexible. They allow for granular services to be deployed to individual web applications. The document provides examples of logical architectures for small to large organizations, including isolating services by department for security. It emphasizes designing service applications based on business requirements and dependencies.
Una presentacion muy rapida y por eso nunca finalizada acerca de Windows Server Federation Services en Windows Server 2008, aunque tiene muchas fallas en el uso de informacion como la mezcla de idiomas, o muchos datos plasmados en el slide, puede servir de base para otra presentacion mejor
Understanding Office 365’s Identity Solutions: Deep Dive - EPC GroupEPC Group
The document provides an overview of Office 365 identity solutions including:
- Cloud identity for small businesses without on-premises servers, cloud identity + directory synchronization for medium businesses, and federated identity for large businesses with complex on-premises infrastructure.
It discusses key identity concepts like single sign-on, directory synchronization tools, and deploying Active Directory Federation Services. Implementation options are presented for integrating on-premises Active Directories with Azure Active Directory like one-way or two-way synchronization. Password synchronization is covered as well as best practices for planning an Office 365 identity solution.
RealMe is a partnership between New Zealand Post and Department of Internal Affairs that offers authentication and identity assurance services. It allows users to access public and private online services with a single login credential. RealMe verifies users' personal information from authoritative sources and provides it to services with user consent. RealMe follows standards like SAML and WS-Trust and offers integration patterns for login, identity attribute provider access, and identity assertion. It provides development, test, and production environments for relying partners and can extend to mobile applications.
CyberLab Training Division :
ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites. It allows you to use a full featured programming language such as C# or VB.NET to build web applications easily.
This tutorial covers all the basic elements of ASP.NET that a beginner would require to get started.
Audience
This tutorial has been prepared for the beginners to help them understand basic ASP.NET programming. After completing this tutorial you will find yourself at a moderate level of expertise in ASP.NET programming from where you can take yourself to next levels.
Prerequisites
Before proceeding with this tutorial, you should have a basic understanding of .NET programming language. As we are going to develop web-based applications using ASP.NET web application framework, it will be good if you have an understanding of other web technologies such as HTML, CSS, AJAX. etc
ASP.NET supports three different development models:
Web Pages, MVC (Model View Controller), and Web Forms.
For More Details.
Visit: http://www.cyberlabzone.com
- Windows SharePoint Services "v3" uses ASP.NET 2.0 technology to extend pages, sites, and server farms. It allows developers to leverage ASP.NET features and build on the WSS platform.
- Key changes include Web Parts now being based on the ASP.NET 2.0 model, improved master page support, forms built with ASP.NET controls, and extensible field types and authentication methods.
- These changes aim to provide a more consistent developer experience between WSS and ASP.NET applications.
WSS 3.0 using asp.net 2.0 for extending pages,Server Farms etc..maddinapudi
- Windows SharePoint Services "v3" uses ASP.NET 2.0 technology to extend pages, sites, and server farms by building on top of ASP.NET and enabling developers to use ASP.NET features.
- Key changes include Web Parts now being ASP.NET 2.0 Web Parts, improved master page functionality, forms built with ASP.NET controls, and support for ASP.NET authentication.
- These changes aim to provide more consistency and make it easier for developers to build applications that can be used in both SharePoint and other ASP.NET applications.
Blackberry Enterprise Server Installationwaqsykhan
The document provides installation instructions for Blackberry Enterprise Server (BES). It discusses planning a BES installation including installing components on one or separate computers. It also covers system requirements, best practices, database requirements, creating a service account, assigning permissions, and installing the BES software. The document also briefly compares BES versions 4.1.6 and 5.0.
The document discusses how to configure a SQL Server instance. It covers creating service accounts, understanding collation sequences and authentication modes, installing sample databases, and configuring instances. It also describes how to use SQL Server Configuration Manager to manage services and protocols and how to configure Database Mail to send notifications.
Microsoft Dynamics CRM 2011 Walkthrough Part 1Jukka Niiranen
Microsoft Dynamics CRM 2011 includes several new and enhanced end-user tools and features, including:
1) An improved Outlook client that allows browsing CRM data and filtering views directly from Outlook.
2) Enhanced form customization options, such as adding sub-grids and filtered lookups.
3) New auditing features that record changes to records over time and allow viewing audit histories.
Tech p22 integrating sap with web sphere portalmlech23
The document discusses integrating SAP with IBM WebSphere Portal. It describes different integration approaches including selectively exposing the SAP user experience in WebSphere Portal and building new experiences that tap into SAP services. It also demonstrates the IBM WebSphere Portal Integrator for SAP and IBM Web Experience Factory which can be used to integrate SAP content and services.
The document discusses the steps to design and implement a Configuration Manager 2012 environment for a company called XYZ. It recommends placing primary site servers in San Francisco and Paris, and secondary servers in London and Tokyo based on office sizes. It also outlines prerequisites like extending the Active Directory schema, configuring the System Management container, and adding Windows roles and features to site servers.
This document summarizes new features and changes in Salesforce, including:
- The ability to create multiple calendars from different fields in Lightning Experience.
- Allowing contacts to be related to multiple accounts by enabling the "Allow users to relate a contact to multiple accounts" setting.
- Enhancements to Email Studio like the built-in preview feature and Content Builder for customizing emails.
- The Salesforce Marketing Cloud mobile app providing access to key features from a mobile device like scheduled activities and campaign tracking.
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudDanny Jessee
The document provides information about integrating Facebook authentication with SharePoint 2010. It discusses using Azure Access Control Service (ACS) to configure Facebook as an identity provider and map claims from Facebook to SharePoint. It also describes how to retrieve user data from Facebook using the access token and Graph API after authentication. The document includes code snippets and step-by-step instructions for setting up Facebook authentication with SharePoint.
My name is Madhu and I work for a company Advanced Knowledge Tech LLC., US. I like to work with you as we are the approved vendors.
I want to get in touch with you to find out if you have any requirements for my consultant
Please check the attached profile & fell free to call me
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudDanny Jessee
This document provides information about Danny Jessee, a senior software engineer with 8 years of SharePoint development experience. It includes his credentials, contact information, and topics he can present on, such as features of secure applications, SharePoint 2010 authentication options, claims terminology and technology overview. It also lists some demos he can provide, including setting up a new SharePoint 2010 web application, integrating Facebook authentication using Azure AppFabric ACS, and further integrating Facebook data into SharePoint using the Facebook C# SDK.
Claims-Based Identity, Facebook, and the CloudDanny Jessee
This document provides information about integrating Facebook authentication with SharePoint 2010. It discusses using Azure AppFabric Access Control Service (ACS) to configure Facebook as an identity provider for SharePoint. The steps include creating a Facebook application, configuring ACS for Facebook support, and configuring ACS as a trusted identity provider in SharePoint. Code examples show how to retrieve user information from Facebook and make calls to the Facebook Graph API once a user is authenticated. The document emphasizes that claims-based authentication allows decoupling authentication from authorization and personalization.
This document provides instructions for 7 exercises to set up authorization and security for business intelligence (BI) reporting in SAP. The exercises cover creating and executing BI queries, setting up info object security, using specific authorization objects, tracing BI authorizations, and securing access to workbooks using roles.
ServiceNow Tokyo Release brings you a new and improved user experience, with new features, improved reporting, and management capabilities. ServiceNow Tokyo Release is the latest ServiceNow release, which brings you a refreshed look and feel from previous versions of ServiceNow. It provides new features to help you transform your business processes and improve customer experience, connect with partners, and drive innovation.
This document provides a summary of Purnima Balla's professional experience and qualifications. She has over 7 years of experience as a Senior WebSphere Commerce Developer specializing in designing and developing B2C and B2B e-commerce applications. She has extensive skills in technologies like WebSphere Commerce, Java, J2EE, and has led development teams and client projects for companies like IBM, Accenture, and Virtusa.
This document describes the development of a web-based service marketplace. The system allows customers to book appointments for various services from multiple service providers. Customers can search for services, view details, book appointments, and make payments on the user-friendly website. Service providers can register and manage their services and bookings through the admin panel. The system was created using PHP, HTML, CSS, JavaScript, and a MySQL database. It features responsive design, admin controls, and integrations like payment processing and email confirmations. The goal is to make booking household and other services more convenient for time-pressed customers.
Microsoft Dynamics CRM 2016 includes new features such as the Web API, enhanced knowledge management capabilities, and solution patching. The Web API provides a new REST endpoint that supports OData v4 and CORS. Knowledge articles now support rich content and publishing workflows. Solutions can now be exported and updated incrementally using patches. Additional enhancements include improved SLAs, document templates, and authentication for XRMTooling controls.
Understanding Office 365’s Identity Solutions: Deep Dive - EPC GroupEPC Group
The document provides an overview of Office 365 identity solutions including:
- Cloud identity for small businesses without on-premises servers, cloud identity + directory synchronization for medium businesses, and federated identity for large businesses with complex on-premises infrastructure.
It discusses key identity concepts like single sign-on, directory synchronization tools, and deploying Active Directory Federation Services. Implementation options are presented for integrating on-premises Active Directories with Azure Active Directory like one-way or two-way synchronization. Password synchronization is covered as well as best practices for planning an Office 365 identity solution.
RealMe is a partnership between New Zealand Post and Department of Internal Affairs that offers authentication and identity assurance services. It allows users to access public and private online services with a single login credential. RealMe verifies users' personal information from authoritative sources and provides it to services with user consent. RealMe follows standards like SAML and WS-Trust and offers integration patterns for login, identity attribute provider access, and identity assertion. It provides development, test, and production environments for relying partners and can extend to mobile applications.
CyberLab Training Division :
ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites. It allows you to use a full featured programming language such as C# or VB.NET to build web applications easily.
This tutorial covers all the basic elements of ASP.NET that a beginner would require to get started.
Audience
This tutorial has been prepared for the beginners to help them understand basic ASP.NET programming. After completing this tutorial you will find yourself at a moderate level of expertise in ASP.NET programming from where you can take yourself to next levels.
Prerequisites
Before proceeding with this tutorial, you should have a basic understanding of .NET programming language. As we are going to develop web-based applications using ASP.NET web application framework, it will be good if you have an understanding of other web technologies such as HTML, CSS, AJAX. etc
ASP.NET supports three different development models:
Web Pages, MVC (Model View Controller), and Web Forms.
For More Details.
Visit: http://www.cyberlabzone.com
- Windows SharePoint Services "v3" uses ASP.NET 2.0 technology to extend pages, sites, and server farms. It allows developers to leverage ASP.NET features and build on the WSS platform.
- Key changes include Web Parts now being based on the ASP.NET 2.0 model, improved master page support, forms built with ASP.NET controls, and extensible field types and authentication methods.
- These changes aim to provide a more consistent developer experience between WSS and ASP.NET applications.
WSS 3.0 using asp.net 2.0 for extending pages,Server Farms etc..maddinapudi
- Windows SharePoint Services "v3" uses ASP.NET 2.0 technology to extend pages, sites, and server farms by building on top of ASP.NET and enabling developers to use ASP.NET features.
- Key changes include Web Parts now being ASP.NET 2.0 Web Parts, improved master page functionality, forms built with ASP.NET controls, and support for ASP.NET authentication.
- These changes aim to provide more consistency and make it easier for developers to build applications that can be used in both SharePoint and other ASP.NET applications.
Blackberry Enterprise Server Installationwaqsykhan
The document provides installation instructions for Blackberry Enterprise Server (BES). It discusses planning a BES installation including installing components on one or separate computers. It also covers system requirements, best practices, database requirements, creating a service account, assigning permissions, and installing the BES software. The document also briefly compares BES versions 4.1.6 and 5.0.
The document discusses how to configure a SQL Server instance. It covers creating service accounts, understanding collation sequences and authentication modes, installing sample databases, and configuring instances. It also describes how to use SQL Server Configuration Manager to manage services and protocols and how to configure Database Mail to send notifications.
Microsoft Dynamics CRM 2011 Walkthrough Part 1Jukka Niiranen
Microsoft Dynamics CRM 2011 includes several new and enhanced end-user tools and features, including:
1) An improved Outlook client that allows browsing CRM data and filtering views directly from Outlook.
2) Enhanced form customization options, such as adding sub-grids and filtered lookups.
3) New auditing features that record changes to records over time and allow viewing audit histories.
Tech p22 integrating sap with web sphere portalmlech23
The document discusses integrating SAP with IBM WebSphere Portal. It describes different integration approaches including selectively exposing the SAP user experience in WebSphere Portal and building new experiences that tap into SAP services. It also demonstrates the IBM WebSphere Portal Integrator for SAP and IBM Web Experience Factory which can be used to integrate SAP content and services.
The document discusses the steps to design and implement a Configuration Manager 2012 environment for a company called XYZ. It recommends placing primary site servers in San Francisco and Paris, and secondary servers in London and Tokyo based on office sizes. It also outlines prerequisites like extending the Active Directory schema, configuring the System Management container, and adding Windows roles and features to site servers.
This document summarizes new features and changes in Salesforce, including:
- The ability to create multiple calendars from different fields in Lightning Experience.
- Allowing contacts to be related to multiple accounts by enabling the "Allow users to relate a contact to multiple accounts" setting.
- Enhancements to Email Studio like the built-in preview feature and Content Builder for customizing emails.
- The Salesforce Marketing Cloud mobile app providing access to key features from a mobile device like scheduled activities and campaign tracking.
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudDanny Jessee
The document provides information about integrating Facebook authentication with SharePoint 2010. It discusses using Azure Access Control Service (ACS) to configure Facebook as an identity provider and map claims from Facebook to SharePoint. It also describes how to retrieve user data from Facebook using the access token and Graph API after authentication. The document includes code snippets and step-by-step instructions for setting up Facebook authentication with SharePoint.
My name is Madhu and I work for a company Advanced Knowledge Tech LLC., US. I like to work with you as we are the approved vendors.
I want to get in touch with you to find out if you have any requirements for my consultant
Please check the attached profile & fell free to call me
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudDanny Jessee
This document provides information about Danny Jessee, a senior software engineer with 8 years of SharePoint development experience. It includes his credentials, contact information, and topics he can present on, such as features of secure applications, SharePoint 2010 authentication options, claims terminology and technology overview. It also lists some demos he can provide, including setting up a new SharePoint 2010 web application, integrating Facebook authentication using Azure AppFabric ACS, and further integrating Facebook data into SharePoint using the Facebook C# SDK.
Claims-Based Identity, Facebook, and the CloudDanny Jessee
This document provides information about integrating Facebook authentication with SharePoint 2010. It discusses using Azure AppFabric Access Control Service (ACS) to configure Facebook as an identity provider for SharePoint. The steps include creating a Facebook application, configuring ACS for Facebook support, and configuring ACS as a trusted identity provider in SharePoint. Code examples show how to retrieve user information from Facebook and make calls to the Facebook Graph API once a user is authenticated. The document emphasizes that claims-based authentication allows decoupling authentication from authorization and personalization.
This document provides instructions for 7 exercises to set up authorization and security for business intelligence (BI) reporting in SAP. The exercises cover creating and executing BI queries, setting up info object security, using specific authorization objects, tracing BI authorizations, and securing access to workbooks using roles.
ServiceNow Tokyo Release brings you a new and improved user experience, with new features, improved reporting, and management capabilities. ServiceNow Tokyo Release is the latest ServiceNow release, which brings you a refreshed look and feel from previous versions of ServiceNow. It provides new features to help you transform your business processes and improve customer experience, connect with partners, and drive innovation.
This document provides a summary of Purnima Balla's professional experience and qualifications. She has over 7 years of experience as a Senior WebSphere Commerce Developer specializing in designing and developing B2C and B2B e-commerce applications. She has extensive skills in technologies like WebSphere Commerce, Java, J2EE, and has led development teams and client projects for companies like IBM, Accenture, and Virtusa.
This document describes the development of a web-based service marketplace. The system allows customers to book appointments for various services from multiple service providers. Customers can search for services, view details, book appointments, and make payments on the user-friendly website. Service providers can register and manage their services and bookings through the admin panel. The system was created using PHP, HTML, CSS, JavaScript, and a MySQL database. It features responsive design, admin controls, and integrations like payment processing and email confirmations. The goal is to make booking household and other services more convenient for time-pressed customers.
Microsoft Dynamics CRM 2016 includes new features such as the Web API, enhanced knowledge management capabilities, and solution patching. The Web API provides a new REST endpoint that supports OData v4 and CORS. Knowledge articles now support rich content and publishing workflows. Solutions can now be exported and updated incrementally using patches. Additional enhancements include improved SLAs, document templates, and authentication for XRMTooling controls.
This document provides an overview and instructions for using Sybase's SUP mobile application platform. SUP allows users to quickly develop secure mobile apps that can access backend data across different mobile devices. It supports diverse mobile types, extends backend data to mobile devices, and ensures future-proof mobile investments through accelerated app development. The document describes SUP's architecture, components, process for creating mobile business objects to access databases, designing workflow forms, deploying projects, registering devices, and configuring the server details in the mobile app.
Rational Host Access Transformation Services (HATS) transforms traditional text-based interfaces into web, portlet, rich client or mobile device interfaces. It allows extending existing 3270, 5250, and VT applications as standard web services. HATS can easily convert host application screens to user-friendly GUIs. It uses macros to extract and prompt for data, which can then be used to generate Integration Objects and create RESTful or SOAP web services from them. This allows extending the reach of legacy applications to new users and integrating them with other systems.
This document describes a project for a courier service website. The key features include modules for login, registration, administration, booking couriers, tracking couriers, and customer/employee profiles. The administrator can manage customers, employees, offices, and courier details. Customers can book, track, and get history of their couriers. Employees can book, track, update statuses, and view reports. Technologies used include Visual Studio, .NET, C#, and SQL Server. Diagrams including use cases, sequence, class, and deployment are included.
Azilen has done Web based platform to manage and automate event management services called Analytics & ETL based BI Solutions on AWS Cloud using Mule ESB, Spring Boot, Angular JS, MongoDB, Hibernate and PostgreSQL.
Manually deploying Microsoft Teams is overwhelming. Using Teams Templates, SharePoint Online, and Power Automate we will build and discuss how to best create a self service Microsoft Teams provisioning process. How do we handle approval and management? Templates? Flow creation? Find out, in this in session!
Slide deck from the BrightGen webinar on the new features in the Salesforce Winter 22 release. Presented by Keir Bowden CTO, and Clive Platt, Senior Service Management Consultant.
You can access the video at : https://www.youtube.com/watch?v=JV_g_QgAfq0
The document contains Thirumoorthy G's resume. It summarizes his 5+ years of experience in designing, developing, and maintaining web and standalone applications using Microsoft .NET technologies like ASP.NET, C#, SQL Server, and JavaScript. It lists his education credentials and provides details of 6 projects he has worked on, including roles and responsibilities. The resume demonstrates his skills in full-stack development, database management, and experience working with clients on requirement gathering, testing, and support.
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...Vincent Biret
This document summarizes a presentation about integrating Microsoft Graph, SharePoint Framework, and Azure Functions. The presentation discusses:
1. Using the SharePoint Framework and Azure Functions together for building applications that leverage Microsoft Graph and custom APIs.
2. How Azure Functions provide a serverless platform for developing solutions with triggers and bindings to services like Microsoft Graph.
3. How Microsoft Graph provides a unified API and data model for accessing information in Office 365, Windows 10, and other Microsoft services.
This document provides an overview of Azure Mobile Services including:
- What Azure Mobile Services are and the key concepts like tables, authentication, and push notifications.
- The supported platforms and features for developing mobile apps with Azure Mobile Services.
- How to set up a mobile service in Azure, store and access data, implement security and authentication, and develop a sample mobile app.
- Pricing and scaling options for Azure Mobile Services as well as resources for additional documentation.
Azure Mobile Services is a Azure service that makes it easy to create mobile apps using Azure backend capabilities. It allows for user authentication, push notifications, data storage, and access via a REST API. The service supports iOS, Android, Windows Phone, and HTML/JS apps. It offers quick scalability, multi-platform support, and tools to easily build cloud backends for mobile apps.
This document discusses IBM Rational Host Access Transformation Services (HATS) which transforms traditional text-based interfaces into web, portlet, rich client or mobile device interfaces. It provides an overview of HATS capabilities including creating macros, integration objects, web services and using HATS with other IBM technologies like SQL, Toolbox for Java and Program Call Markup Language.
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...Vincent Biret
Slides supporting the session at the granite state user group meeting of January 2019. Talking as well about #Azure Active directory and lots of other things
This document contains a resume for Abhishek Gupta, who has over 4.5 years of experience in IT including web application development using .NET and Azure Cloud. He has 3 years of experience developing and configuring CRM applications using Salesforce, including certifications in Force.com Developer, Admin, and Service Cloud. His experience includes customizing the Salesforce user interface, building workflows and processes, and integrating Salesforce with other systems. He provides details on 5 projects involving Salesforce development, configuration, and Azure migration.
This document provides instructions for configuring SAP NetWeaver Fiori for single sign-on (SSO) via SAML. It outlines the steps to 1) prepare SAP NetWeaver Fiori for configuration by completing prerequisites like assigning roles and activating services, 2) add and begin configuring the SAP NetWeaver Fiori application in the Admin Portal, and 3) finish configuring the application settings and identity provider metadata to enable SSO. The goal is to allow users to launch the SAP NetWeaver Fiori application from the identity provider portal once configuration is complete.
This document discusses how Firebase can be used to develop mobile applications. It introduces various Firebase services including Authentication, Realtime Database, Storage, Hosting, Remote Config, Cloud Messaging, Crash Reporting, Test Lab, Dynamic Links, Invites, App Indexing, AdMob, and Analytics. It provides code examples for implementing Authentication with email/password or Facebook login and interacting with the Realtime Database and Storage. The document emphasizes that Firebase allows developing mobile apps with a compact team and fast iteration by removing the need to set up and manage backend services.
Native functions allow Java code to call functions implemented in C/C++. The document shows a native method declared in a Java class that is implemented in a C/C++ file. The native method sets shader bin data and accepts a file name, byte array, and size as parameters. It uses JNI to get the string and byte array from the Java arguments and release them after use in C/C++.
The document discusses networking on mobile devices. It covers supported networking technologies like cellular data, WiFi, and Bluetooth. It discusses required permissions for network operations and the need to perform networking operations on a separate thread to avoid blocking the UI. It provides an example of using AsyncTask to perform networking operations asynchronously. It also covers best security practices, implementing a network security configuration, checking device connectivity, and using Firebase Cloud Messaging as an alternative to polling for updates from a server.
This document provides an overview of user interface (UI) programming for mobile apps. It discusses UI programming patterns like state machines and model-view-controller (MVC). It explains how MVC is implemented in Android and iOS. It also describes core Android application components like activities, services, content providers and more. Finally, it covers topics like layouts, views, resources and more aspects of Android UI programming.
The document contains examples of Java string and object comparisons. It shows that using '==' compares object references while '.equals()' compares object values. It also demonstrates that the Java garbage collector will call 'finalize()' on objects before removing them from memory, and that calling 'System.exit()' in 'finalize()' prevents further object creation.
The document summarizes the key hardware components of mobile devices, including displays, CPUs, memory, storage, cameras, sensors, networking capabilities, and connectors. It discusses screen sizes and resolutions for Android and iOS devices and provides details on processors, memory, and GPUs used by Android and Apple phones. It also covers camera, network connectivity including 4G/5G, Bluetooth, NFC, and connectors such as Micro-USB, USB-C, and Lightning.
This document provides an overview of Microsoft Azure Mobile Services and its management portal. It discusses the key features and capabilities of Azure Mobile Services including data storage, user authentication, push notifications, and server-side scripts. It also summarizes the available server-side script objects and modules that can be used to access additional functionality from scripts. Finally, it outlines the REST API operations for querying, inserting, updating and deleting data in Mobile Services tables.
This document provides an overview of the Firebase mobile platform and its features for developing mobile applications. It discusses Firebase services for authentication, realtime database, storage, hosting, remote config, cloud messaging, crash reporting, testing, dynamic links, invites, advertising and analytics. It includes code examples for authentication, database reads and writes, and storage uploads and downloads. The document promotes Firebase as providing a compact team that can build scalable mobile apps with fast iteration while allowing developers to sleep at night through its backend services.
The document discusses networking on mobile devices. It covers supported networking technologies like cellular data, WiFi and Bluetooth. It discusses required permissions for network operations and that networking should be performed on a separate thread to avoid blocking the UI. It provides an example of using AsyncTask to perform networking operations asynchronously. It also covers best security practices, checking network connectivity, and using Firebase Cloud Messaging as an alternative to polling for updates.
Team Technologies LLC consists of mobile developers Oleg and Nazar. The document discusses developing cross-platform mobile applications using Xamarin. It outlines why native mobile development is important, what Xamarin is, and how to architect mobile apps in Xamarin including using Xamarin Forms. It provides an agenda and overview of the topics that will be covered.
A Free 200-Page eBook ~ Brain and Mind Exercise.pptxOH TEIK BIN
(A Free eBook comprising 3 Sets of Presentation of a selection of Puzzles, Brain Teasers and Thinking Problems to exercise both the mind and the Right and Left Brain. To help keep the mind and brain fit and healthy. Good for both the young and old alike.
Answers are given for all the puzzles and problems.)
With Metta,
Bro. Oh Teik Bin 🙏🤓🤔🥰
Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...EduSkills OECD
Andreas Schleicher, Director of Education and Skills at the OECD presents at the launch of PISA 2022 Volume III - Creative Minds, Creative Schools on 18 June 2024.
How to Manage Reception Report in Odoo 17Celine George
A business may deal with both sales and purchases occasionally. They buy things from vendors and then sell them to their customers. Such dealings can be confusing at times. Because multiple clients may inquire about the same product at the same time, after purchasing those products, customers must be assigned to them. Odoo has a tool called Reception Report that can be used to complete this assignment. By enabling this, a reception report comes automatically after confirming a receipt, from which we can assign products to orders.
How to Download & Install Module From the Odoo App Store in Odoo 17Celine George
Custom modules offer the flexibility to extend Odoo's capabilities, address unique requirements, and optimize workflows to align seamlessly with your organization's processes. By leveraging custom modules, businesses can unlock greater efficiency, productivity, and innovation, empowering them to stay competitive in today's dynamic market landscape. In this tutorial, we'll guide you step by step on how to easily download and install modules from the Odoo App Store.
THE SACRIFICE HOW PRO-PALESTINE PROTESTS STUDENTS ARE SACRIFICING TO CHANGE T...indexPub
The recent surge in pro-Palestine student activism has prompted significant responses from universities, ranging from negotiations and divestment commitments to increased transparency about investments in companies supporting the war on Gaza. This activism has led to the cessation of student encampments but also highlighted the substantial sacrifices made by students, including academic disruptions and personal risks. The primary drivers of these protests are poor university administration, lack of transparency, and inadequate communication between officials and students. This study examines the profound emotional, psychological, and professional impacts on students engaged in pro-Palestine protests, focusing on Generation Z's (Gen-Z) activism dynamics. This paper explores the significant sacrifices made by these students and even the professors supporting the pro-Palestine movement, with a focus on recent global movements. Through an in-depth analysis of printed and electronic media, the study examines the impacts of these sacrifices on the academic and personal lives of those involved. The paper highlights examples from various universities, demonstrating student activism's long-term and short-term effects, including disciplinary actions, social backlash, and career implications. The researchers also explore the broader implications of student sacrifices. The findings reveal that these sacrifices are driven by a profound commitment to justice and human rights, and are influenced by the increasing availability of information, peer interactions, and personal convictions. The study also discusses the broader implications of this activism, comparing it to historical precedents and assessing its potential to influence policy and public opinion. The emotional and psychological toll on student activists is significant, but their sense of purpose and community support mitigates some of these challenges. However, the researchers call for acknowledging the broader Impact of these sacrifices on the future global movement of FreePalestine.
3. Agenda
▪ 1st Hour: Introduction to Mobile Services (45 minutes)
▪ General Architecture
▪ Management Portal
▪ REST API
▪ Break (15 minutes)
4. Enterprises want to manage internal
mobile apps and consumer facing event-
or product-specific mobile apps from the
same portal as core LOB apps
Small Businesses require solutions that
accelerate development time and
decrease development costs.
Developers shouldn’t have to constantly
reinvent the wheel and reproduce
common backend functionality
Consumers expect a continuous
experience across all devices
App Development
Challenges
5. Windows Azure Mobile Services
accelerates connected client application
development by streamlining common
backend tasks like structuring storage,
authenticating users, and sending push
notifications.
6. 3
Connected Apps
Windows Store
iOS
Android
Windows Phone 8
iOS
Android
HTML 5/JS
Data in the Cloud
SQL Table Blob
User Authentication
Facebook Twitter Microsoft Google
Push Notifications
WNS & APNS GCM
MPNS
SDKs
Server-
Side
Scripts
&
Scheduler
Basic Features
12. Dashboard
▪ Quick glance
▪ Displays relevant mobile service
information, including the service URL,
status, location, database and subscription
▪ Usage Timeline:
▪ Displays a scalable chart of CPU time, API
calls and data reads over a specific period
of time.
▪ Usage Overview:
▪ Displays an overview of the total compute
time and storage used by this mobile
service
▪ Manage Keys
▪ Manage Keys
▪ Delete
▪ Delete the Mobile Service
13. Data
▪ In Windows Azure Mobile Services, data is
stored in tables, which are maintained in the
Windows Azure SQL Database that is
associated with your mobile service.
▪ Click the Create button to add a new table to
your mobile service.
▪ By default, you don’t need to predefine the
schema of tables in your database.
▪ Mobile Services automatically add columns
to a table based on the data you insert. To
change this dynamic schema behavior, use
the Dynamic Schema setting on the
Configure tab.
▪ To browse data, manage permissions and
indexes on tables, or add server scripts,
click on a table in the list.
▪ To delete a table, click to select a table row,
and then click Delete.
14. Browse
▪ The Browse tab lets you
browse data rows in a
selected table.
▪ Click the forward and back
arrows to navigate through
multiple pages of data.
▪ Click on table names in the left
navigation bar to switch
between tables.
▪ Click on the large left arrow to
go back to the Data tab.
15. Script
▪ Mobile Services enables you to
register JavaScript code to be
executed by the service when an
insert, update, delete, or read
operation occurs against a specific
table.
▪ For each table there are 4 CRUD
operations (insert, read, update, del)
▪ These scripts provide the ability to
inject business logic into table
operation, stop an operation from
taking place, change or enrich values
supplied to the operation or change
the results.
▪ For authenticated clients, you can also
perform user-specific authorizations
based on the userId value of the
supplied user object.
16. Columns
▪ To delete columns, click the column and then
click Delete.
▪ To add additional columns to the table,
simply send an insert request including the
new properties from your app with dynamic
schema enabled.
▪ Once a column is created, its data type
cannot be changed by Mobile Services.
▪ Insert or update operations fail when the type
of a property in the JSON object cannot be
converted to the type of the equivalent
column in the table.
▪ You can improve the performance of queries
by defining an index on the table.
▪ To add a column to the index, select the
column and click Set as Index.
17. Permissions
▪ Mobile Services enables you to set the
following permissions on table operations:
▪ Everyone: request for the operation against the table
is accepted. This option leaves your data wide-open
for everyone to access.
▪ Anybody with the Application Key: The application
key is required to perform the operation. The
application key is distributed with the application.
Note: Because this key is not securely distributed, it
cannot be considered a security token. To secure
access to your mobile service data, you must
instead authenticate users before accessing.
▪ Only Authenticated Users: Only authenticated users
are permitted to perform the operation. Scripts can
be used to further restrict access to tables based on
an authenticated user.
▪ Only Scripts and Admins: The operation requires the
service master key, which limits the operation only to
registered scripts or to administrator accounts
18. Scheduler
▪ Mobile Services enables you to
register JavaScript code to be
executed by the service either on
a schedule that you define or on-
demand from the Management
Portal.
▪ Removing duplicate records from a
table.
▪ Backing up a database.
▪ Send a report via email.
▪ When your mobile service runs in
free mode, you can create only
one scheduled job at a time; in
reserved mode, you can create
up to ten scheduled jobs at the
same time.
19. Push
▪ Mobile Services can send push notifications to
your apps.
▪ The way that you configure and send push
notifications depends on your app.
▪ You can send push notifications to the following
applications:
▪ Windows Store app by using the Windows Push
Notification Service (WNS). To send push notifications to
your app, you must configure your mobile service to work
with WNS.
▪ iPhone and iPad apps by using the Apple Push
Notification Service (APNS). To send push notifications to
your app, you must configure your mobile service to work
with APNS. Do this by generating a special push
notification certificate at the iOS Provisioning Portal
▪ Android: You can send push notifications to Android
apps by using the Google Cloud Messaging (GCM)
service. To send push notifications to your app, you must
configure your mobile service to work with GCM.
▪ Windows Phone 8 app by using the Microsoft Push
Notification Service (MPNS). Mobile Services does not
require you to register your Windows Phone 8 app to
send push notifications.
20. Identity
▪ Mobile Services integrates with the
following identity providers to make it easy
to authenticate users from your app:
▪ Microsoft Account
▪ Facebook login
▪ Twitter login
▪ Google login
▪ To enable authentication, you must first
register your app with one or more of
these identity providers and then configure
your mobile service.
▪ You must also add authentication code to
your app.
▪ When a user login is authenticated by
Mobile Services, the value of the userId
property on the user object passed to
server scripts is set to a value that
uniquely identifies a user. This value can
then be used to authorize access to data.
21. Configure
▪ You can directly access to the
database used by your mobile
service just clicking the link.
▪ You can change the database
used by your mobile service to
store data with a new or
existing DB by clicking Change
DB and select one of the
following options.
▪ Enable/disable dynamic
schema.
▪ In reserved mode, you can
configure endpoint monitoring.
22. Scale
▪ On the Scale tab, you can scale
your mobile service by switching
to reserved mode and adding
role instances.
▪ You can also scale the Windows
Azure SQL Database instance
used by the service.
▪ Note: When you set the Mobile service
mode to Reserved, all of your mobile
services in the same region run in
Reserved mode.
▪ To estimate the cost required to
scale your mobile service, see
the Mobile Services Pricing
Calculator.
23. Log
▪ Mobile Services writes system and
script errors to the log.
▪ Click on a log entry to view details
and copy to the clipboard.
▪ Click the link in the Source column
to directly jump to the script that
generated the error.
▪ Note: Existing log entries can be viewed in
the Management Portal for 7 days.
▪ Your registered server scripts can
also write information directly to
the log by using the console
object.
25. REST API
Operation Description
Login Gets the user ID for a supplied authentication token.
Query
records
Queries data in a table.
Insert record Inserts a new record into a table.
Update
record
Updates an existing record in a table.
Delete record Deletes an existing record from a table.
26. Login
▪ Verb: POST
▪ URL: https://<service-name>.azure-mobile.net/login?mode=authenticationToken
▪ Uri Parameter: mode
▪ Request Headers:
▪ Body: JSON object
{"authenticationToken":“<authentication-provider-token>"} for Microsoft
{“access_token":“<authentication-provider-token>"} for Facebook and Google
▪ Response: JSON object
{"user":{"userId":"<authentication-provider>:cb392ceae24a44408ed863482b20f274"},
"authenticationToken":"<mobile-service-authentication-token>"}
Request Header Required Value
Accept No Set this header to application/json.
Content-Length Yes The length of the request body.
Content-Type No Set this header to application/json.
27. Query Records
▪ Verb: GET
▪ URL: https://<service_name>.azure-mobile.net/tables/<table_name>
▪ URI Parameters: $filter, $inlinecount, $orderby, $select, $skip, $top
▪ Request Headers:
▪ Response: data in JSON format
▪ Samples:
▪ GET https://plunko.azure-mobile.net/tables/todoitem
▪ GET https://plunko.azure-mobile.net/tables/todoitem/1
▪ GET https://plunko.azure-mobile.net/tables/todoitem?$filter=(complete%20eq%20false)
▪ GET https://plunko.azure-mobile.net/tables/todoitem?$filter=(complete%20eq%20false)&$orderby=text%20asc
Request Header Required Value
Accept No Set this header to application/json.
X-zumo-application Conditional
The application key of the mobile service. You must specify a valid application
key when required to access the table operation. This is the default table
operation access permission.
X-zumo-auth Conditional
The service-generated authentication token for an authenticated user. You must
specify a token for an authenticated user when required to access the table
operation.
28. Insert Record
▪ Verb: POST
▪ URL: https://<service_name>.azure-mobile.net/tables/<table_name>
▪ Request Headers:
▪ Body: new record in JSON format
▪ Response: The JSON representation of the inserted item, which includes the ID for the item
generated by the mobile service.
▪ Sample:
▪ POST https://plunko.azure-mobile.net/tables/todoitem
▪ Body: {"text" : "Go to Las Vegas", "complete": false, "when" : "don't know"}
Request Header Required Value
Accept No Set this header to application/json.
Content-Length Yes The length of the request body.
Content-Type No Set this header to application/json.
X-zumo-application Conditional The application key of the mobile service.
X-zumo-auth Conditional The service-generated authentication token for an authenticated user.
29. Update Record
▪ Verb: PATCH
▪ URL: https://<service_name>.azure-mobile.net/tables/<table_name>/<item_id>
▪ Request Headers:
▪ Body: The updated values encoded in JSON format, along with the optional id value of the
object.
▪ Response: The JSON representation of the updated item
▪ Sample:
▪ PATCH https://plunko.azure-mobile.net/tables/todoitem/1
▪ Body: {"text" : "Go to Barcelona", "complete": false, "when" : "don't know"}
Request Header Required Value
Accept No Set this header to application/json.
Content-Length Yes The length of the request body.
Content-Type No Set this header to application/json.
X-zumo-application Conditional The application key of the mobile service.
X-zumo-auth Conditional The service-generated authentication token for an authenticated user.
30. Delete Record
▪ Verb: DELETE
▪ URL: https://<service_name>.azure-mobile.net/tables/<table_name>/<item_id>
▪ Request Headers:
▪ Body: none
▪ Response: none
▪ Sample:
▪ DELETE https://plunko.azure-mobile.net/tables/todoitem/6
Request Header Required Value
X-zumo-application Conditional The application key of the mobile service.
X-zumo-auth Conditional The service-generated authentication token for an authenticated user.
31. HttpClient and Mobile Services
private async void btnSend_Click(object sender, EventArgs e)
{
try
{
var httpClient = new HttpClient();
var uri = new Uri("https://<your-mobile-service>.azure-mobile.net/tables/TodoItem");
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
httpClient.DefaultRequestHeaders.Add("x-zumo-application", “<application-key>");
httpClient.DefaultRequestHeaders.Host = uri.Host;
var todoItem = new TodoItem {Text = txtText.Text, Complete = false};
var serializer = new DataContractJsonSerializer(typeof (TodoItem));
using (var stream = new MemoryStream())
{
serializer.WriteObject(stream, todoItem);
stream.Seek(0, SeekOrigin.Begin);
//use a Stream reader to construct the StringContent (Json)
using (var reader = new StreamReader(stream))
{
var response = await httpClient.PostAsync(uri, new StringContent(reader.ReadToEnd(),
Encoding.UTF8, "application/json"));
WriteToLog(response.IsSuccessStatusCode
? string.Format("Message <{0}> successfully inserted!", txtText.Text)
: string.Format("HTTP Status: <{0}> Reason: <{1}>", response.StatusCode,
response.ReasonPhrase));
}
}
}
catch (Exception ex)
{
WriteToLog(ex.Message);
}
}
33. Agenda
▪ 2nd Hour: Server Scripts (45 minutes)
▪ Server script objects
▪ Server script modules
▪ Configure user authentication:
▪ Windows Live
▪ Facebook
▪ Twitter
▪ Google
▪ User object and integration with identity providers
▪ Data validation and duplicate detection
▪ Administer Mobile Services using Windows Azure Cross-Platform Command Line tool
▪ Break (15 minutes)
35. Objects
Name Description
apns Provide functionality to send notifications to Apple Push Notification Service (APNS)
console Write information to Services logs
gcm Provide functionality to send notifications to Google Cloud Messaging (GCM)
mpns Provide functionality to send notifications to Microsoft Push Notification Service (MPNS)
mssql
Provides functionality for working directly with tables in the SQL Database using Transact-
SQL
push Provides access to objects that are used for sending push notifications to apps
Query Provides functionality for querying Windows Azure Mobile Services
Request Used to execute the requested operation and determine the response to the client
statusCodes
Enumerates the supported HTTP status codes can be returned by Windows Azure Mobile
Services
Table
Provides functionality for working with specific tables (insert, del, update, where, take,
select, etc.)
tables Provides functionality for working with specific tables as a Table object instance
36. Samples
console object
console.log("Inserting item '%j'.", item); // %j for 'JSON'
console.error("Operation failed: ", error);
mssql object
mssql.query('select * from orders where country = "Ukraine"', {
success: function (results) {
console.log(results);
}
});
37. Samples
Query object: is passed to read scripts
function read(query, user, request) {
query.where({ userId: user.userId });
request.execute();
}
Request object: is passed to all scripts
request.execute(); //Executes the default behavior for the
operation
request.respond(); //Writes the default response
request.respond(error); //Writes a response with the specified
error
38. Samples
Tables and Table objects
function insert(item, user, request) {
var addressTable = tables.getTable('address');
addressTable.where({userId: user.userId})
.read({success: function (results) {
item.address = results.length > 0 ?
results[0] :
'unknown';
request.execute(); }
});
}
40. Modules
Name Description
azure Provides functionality to access Azure services (Blobs, Tables, Service Bus)
request Sends HTTP requests to external web services, such as Twitter and Facebook.
sendgrid Used to send email by using the Sendgrid email service.
util Provides useful methods like format, isDate, isArray, isError
xml2js XML to JavaScript object converter
js2xml JavaScript to XML object converter
xmlbuilder Can be used to create XML documents
sax A very simple tool to parse through an XML string
41. Samples
Request
var request = require('request');
var url = 'https://api.twitter.com/1/users/show.json?
screen_name=babosbird';
request(url, function(error, response, body) {
if (error) {
console.error(error);
} else {
var data = JSON.parse(body);
console.log(data);
}
});
42. Samples
SendGrid
function sendEmail(text) {
var sendgrid = new SendGrid('<user-name>', ('<password>');
sendgrid.send({
to: 'paolos@microsoft.com',
from: ‘info@acme.com',
subject: ‘ACME Newsletter',
text: text
}, function (success, message) {
// If the email failed to send, log it as an error so we can
investigate
if (!success) {
console.error(message);
}
});
}
44. Portable Class Library
▪ The Portable Class Library project supports a subset of assemblies from the .NET
Framework, Silverlight, .NET for Windows Store apps, Windows Phone, and Xbox
360, and provides a Visual Studio template that you can use to build assemblies
that run without modification on these platforms.
▪ Mobile Services support the Portable Class Library model and this offers several
advantages for developers, since they can now share the codebase of client
applications between the different platforms.
▪ The Portable Class Library needs a platform extension assembly (.Ext.dll) to work
correctly.
▪ We provide platform extension assemblies for:
▪ Windows Phone 7.5
▪ Windows Phone 8
▪ Windows Store apps.
45. Portable Class Library
▪ The Portable Class Library cannot contain all the classes of the managed clients for all the platforms.
▪ Some functionality is only available on one platform, while other functionality differs between platforms.
▪ Therefore, to be able to use the new Managed Client you also need a platform specific assembly,
which contains code to be able to use features available on that specific platform.
▪ UI authentication is an example of a feature that works different on different platforms and is not
portable.
▪ For you as a developer this means you need two assemblies for your Windows Store App to use
Mobile Services.
▪ For Windows Phone there is an additional assembly which contains functionality which is not allowed
in background agents (e.g. login)
46. Windows Store App
App.xaml.cs
using Microsoft.WindowsAzure.MobileServices;
sealed partial class App : Application
{
// This MobileServiceClient must be configured to communicate with
// your Mobile Service's url and application key.
// The MobileServiceClient class provides basic access to Mobile
Services.
public static readonly MobileServiceClient MobileService =
new MobileServiceClient("https://<your-mobile-service>.azure-
mobile.net/", “XXXXXXXXXXXXXXXXXXXX");
}
47. Windows Store App
MainPage.xaml.cs
using Microsoft.WindowsAzure.MobileServices;
using Newtonsoft.Json;
public class TodoItem
{
public int Id { get; set; }
[JsonProperty(PropertyName = "text")]
public string Text { get; set; }
[JsonProperty(PropertyName = "complete")]
public bool Complete { get; set; }
}
public sealed partial class MainPage : Page
{
private MobileServiceCollection<TodoItem, TodoItem> items;
// the IMobileServiceTable interface Provides operations on a table for a Mobile Service.
private IMobileServiceTable<TodoItem> todoTable = App.MobileService.GetTable<TodoItem>();
private async void RefreshTodoItems()
{
// This code refreshes the entries in the list view by querying the TodoItems
table.
items = await todoTable
.Where(todoItem => todoItem.Complete == false)
.ToCollectionAsync();
}
}
48. HttpMessageHandlers
▪In the new version of the managed client,
HttpMessageHandlers replace ServiceFilters.
▪The MobileServiceClient internally uses an instance of
the HttpClient to send HTTP requests and receive HTTP
responses to Mobile Services REST services.
▪In a managed client, HttpMessageHandlers can be
used to intercept and handle outgoing requests to
Mobile Services.
▪You can define one or more handlers for a a single
MobileServiceClient.
49. Sample 1
public class BusyHandler : DelegatingHandler
{
private int callCount;
private readonly Action<bool> busyIndicator;
public BusyHandler(Action<bool> busyIndicator)
{
this.busyIndicator = busyIndicator;
}
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request,
CancellationToken cancellationToken)
{
var outgoingCount = Interlocked.Increment(ref callCount);
if (outgoingCount == 1)
{
busyIndicator(true);
}
var response = await base.SendAsync(request, cancellationToken);
var incomingCount = Interlocked.Decrement(ref callCount);
if (incomingCount == 0)
{
busyIndicator(false);
}
return response;
}
}
50. Sample 2
public class DebugHandler : DelegatingHandler
{
// Sends an HTTP request to the inner handler to send the request to the server as an async
operation
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request,
CancellationToken
cancellationToken)
{
if (request != null && request.Method == HttpMethod.Post && request.Content != null)
{
Debug.WriteLine("REQUEST: {0}", await request.Content.ReadAsStringAsync());
}
var response = await base.SendAsync(request, cancellationToken);
if (response != null && response.Content != null)
{
Debug.WriteLine("RESPONSE: {0}", await response.Content.ReadAsStringAsync());
}
return response;
}
}
51. HTML 5 Client
HTML Page: inset the following script references
<script src='//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js'></script>
<script src='https://<your-service-name>.azure-mobile.net/client/MobileServices.Web-1.0.0.min.js'></script>
JavaScript File
// In the editor, open or create a JavaScript file, and add the following code that defines the
// MobileServiceClient variable. Supply the application URL and application key from the mobile service in
// the MobileServiceClient constructor.
var client = new WindowsAzure.MobileServiceClient('https://<your-service-name>.azure-mobile.net/', ‘AppKey')
// You get a reference to a table by calling the getTable() function on the MobileServiceClient object
var todoItemTable = client.getTable('todoitem');
function refreshTodoItems() {
// Filter data by including a where clause in a query that returns all items whose complete field is equal
to false
var query = todoItemTable.where({ complete: false });
// Reads all data from the table
query.read().then(function(todoItems) {
// Use jQuery and JavaScript to update controls on the page.
});
}
53. Authentication
▪ Mobile Services integrates with the
following identity providers to make it easy
to authenticate users from your app:
▪ Microsoft Account
▪ Facebook login
▪ Twitter login
▪ Google login
▪ To enable authentication, you must first
register your app with one or more of
these identity providers and then configure
your mobile service.
▪ You must also add authentication code to
your app.
▪ When a user login is authenticated by
Mobile Services, the value of the userId
property on the user object passed to
server scripts is set to a value that
uniquely identifies a user. This value can
then be used to authorize access to data.
55. Windows Store Apps
private static async System.Threading.Tasks.Task Authenticate()
{
while (App.MobileService.CurrentUser == null)
{
string message;
try
{
await
App.MobileService.LoginAsync(MobileServiceAuthenticationProvider.Facebook);
message = string.Format("User successfully authenticated: UserId = {0}",
App.MobileService.CurrentUser.UserId);
}
catch (InvalidOperationException)
{
message = "Login failed!";
}
var messageDialog = new MessageDialog(message, "Login Status");
await messageDialog.ShowAsync();
}
}
56. Windows Phone 8 Apps
private async Task Authenticate()
{
while (user == null)
{
string message;
try
{
user = await
App.MobileService.LoginAsync(MobileServiceAuthenticationProvider.MicrosoftAccount);
message = string.Format("You are now logged in - {0}", user.UserId);
}
catch (InvalidOperationException ex)
{
message = ex.Message;
}
MessageBox.Show(message);
}
}
57. HTML 5 App
HTML Page
<div id="logged-out">
You are not logged in.
<button>Log in</button>
<select id="authentication-providers">
<option selected="selected" value="MicrosoftAccount">Microsoft</option>
<option>Twitter</option>
<option>Facebook</option>
<option>Google</option>
</select>
</div>
58. HTML 5 App
JavaScript File
function logIn() {
client.login($("#authentication-providers :selected")
.val())
.done(refreshAuthDisplay, function (error) {
alert(error);
});
}
function logOut() {
client.logout();
refreshAuthDisplay();
$('#summary').html('<strong>You must login to access data.</
strong>');
}
59. User Object
// The User object which is passed to all scripts
// has a function called getIdentities(),
// which returns an object with provider-specific
data
// which can be used to query their user information.
// Facebook
{
"facebook":{
"userId":"Facebook:<user-id>",
"accessToken":“<access-token>"
}
}
// Microsoft:
{
"microsoft":{
"userId":“MicrosoftAccount:<user-id>",
"accessToken":“<access-token>"
}
}
//Google:
{
"google":{
"userId":"Google:<user-id>",
"accessToken":“<access-token>"
}
}
//And for Twitter:
{
"twitter":{
"userId":"Twitter:<user-id>",
"accessToken":“<access-token>",
"accessTokenSecret":“<access-token-
secret>"
}
}
60. Get User Name (1/2)
function getUserName() {
// Set default name
item.userName = '<unknown>';
// Get credentials for the authenticated user
var identities = user.getIdentities();
var req = require('request');
var url;
// Create url to query the authentication provider for user name
if (identities.microsoft) {
url = 'https://apis.live.net/v5.0/me/?method=GET&access_token=' +
identities.microsoft.accessToken;
} else if (identities.facebook) {
url = 'https://graph.facebook.com/me?access_token=' + identities.facebook.accessToken;
} else if (identities.google) {
url = 'https://www.googleapis.com/oauth2/v1/userinfo?access_token=' +
identities.google.accessToken;
} else if (identities.twitter) {
url = 'https://api.twitter.com/1/users/show.json?user_id=' +
user.userId.substring(user.userId.indexOf(':') + 1);
}
61. Get User Name (1/2)
// Call authentication provider
if (url) {
req(url, function (error, response, body) {
if (error) {
console.error('An error occurred while sending data to Facebook Graph API: ', error);
}
else {
try {
var data = JSON.parse(body);
item.userName = data.name ? data.name : '<unknown>';
}
catch (ex) {
console.error('An error occurred while parsing response data from the auth provider: ',
ex);
}
}
if (f) {
f();
}
});
}
}
63. Data Validation
function insert(item, user, request) {
// Validation
if (!item.text) {
request.respond(statusCodes.BAD_REQUEST, "The
text cannot be null");
return;
}
}
65. Authorization
function insert(item, user, request) {
var permissionsTable = tables.getTable('permissions');
permissionsTable.where({
userId: user.userId,
permission: 'submit order'
}).read({
success: function (results) {
if (results.length > 0) {
// Permission record was found. Continue normal execution.
request.execute();
} else {
console.log('User %s attempted to submit an order without
permissions.', user.userId);
request.respond(statusCodes.FORBIDDEN, 'You do not have
permission to submit orders.');
}
}
});
}
67. CLI
▪This tool can be
used on the
following
platforms:
▪ Windows
▪ Linux
▪ Mac
▪Mobile Services
can be managed
using CLI
68. Agenda
▪ 3rd Hour: Push Notifications and integration with other
services
▪ Send push notifications using WNS and MPNS
▪ Windows mobile and Windows Store Apps notifications
▪ Invoke REST services via request Node.js module and HTTP protocol
▪ Integrate Mobile Services with on-premises LOB applications:
▪ Via Service Bus Relay Services
▪ Via Service Bus Queues, Topics and Subscriptions
▪ Break (15 minutes)
70. Push
▪ Mobile Services can send push notifications to
your apps.
▪ The way that you configure and send push
notifications depends on your app.
▪ You can send push notifications to the following
applications:
▪ Windows Store app by using the Windows Push
Notification Service (WNS). To send push notifications to
your app, you must configure your mobile service to work
with WNS.
▪ iPhone and iPad apps by using the Apple Push
Notification Service (APNS). To send push notifications to
your app, you must configure your mobile service to work
with APNS. Do this by generating a special push
notification certificate at the iOS Provisioning Portal
▪ Android: You can send push notifications to Android
apps by using the Google Cloud Messaging (GCM)
service. To send push notifications to your app, you must
configure your mobile service to work with GCM.
▪ Windows Phone 8 app by using the Microsoft Push
Notification Service (MPNS). Mobile Services does not
require you to register your Windows Phone 8 app to
send push notifications.
72. Windows Store App
private static async System.Threading.Tasks.Task AcquirePushChannel()
{
// Create a channel to receive notifications
var currentChannel = await
PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
var uriAsString = currentChannel.Uri;
// Check if the channel already exists in the Channel table
var channelTable = App.MobileService.GetTable<Channel>();
var enumerable = await channelTable.
Where(c => c.Uri == uriAsString).ToEnumerableAsync();
if (enumerable.Any())
{
// Exit if the channel already exists in the Channel table
return;
}
var channel = new Channel { Uri = currentChannel.Uri, Type = "WNS" };
await channelTable.InsertAsync(channel);
}
73. Make your App Toast Capable
▪To configure the
Windows Store App
to receive push
notifications, open
the
Package.appxmanife
st file and make sure
that in the Application
UI tab, Toast capable
is set to Yes
74. Windows Phone 8 App
private HttpNotificationChannel CurrentChannel;
private void AcquirePushChannel()
{
CurrentChannel = HttpNotificationChannel.Find("MyPushChannel");
if (CurrentChannel == null)
{
CurrentChannel = new HttpNotificationChannel("MyPushChannel");
CurrentChannel.Open();
CurrentChannel.BindToShellTile();
CurrentChannel.BindToShellToast();
}
var channelTable = App.MobileService.GetTable<Channel>();
var channel = new Channel { Uri =
CurrentChannel.ChannelUri.ToString() };
channelTable.InsertAsync(channel);
}
75. Configure the App
▪To configure the Windows
Phone 8 App to receive
push notifications, open the
WMAppManifest.xml file
and make sure that in the
Capabilities tab,
ID_CAP_PUSH_NOTIFICATI
ON is checked.
76. Server Script Code
function sendPushNotification() {
var channelTable = tables.getTable('Channel');
channelTable.read({
success: function (channels) {
channels.forEach(function (channel) {
if (channel.type === "WNS") {
push.wns.sendToastText02(channel.uri, { text1: "New Todo Item",
text2: item.text},
{success: function (pushResponse) {
console.log("Sent push:", pushResponse);
}
});
}
if (channel.type === "MPNS") {
push.mpns.sendToast(channel.uri, {
text1: 'TodoList',
text2: item.text
}, {
success: function (pushResponse) {
console.log("Sent push:", pushResponse);
}
});
}
79. Hybrid Solutions
▪In today’s IT landscape, it is not uncommon that data and services
used by a system are located in multiple application domains.
▪Resources may be stored in a corporate data center, while other
services may be located across the organizational boundaries, in
the cloud or in the data centers of business partners.
▪There are many reasons for requiring a hybrid approach to cloud
applications:
▪ Certain types of data come under national regulations which explicitly
forbid data from being stored in another country.
▪ Data may need to be shared locally with on –premise applications and
services.
80. Windows Azure Service Bus
▪ The Windows Azure Service Bus is an Internet Service Bus that offers secure,
scalable and highly available connectivity and messaging capabilities.
▪ The Service Bus is part of Windows Azure and is designed to provide
connectivity, queuing, and routing capabilities that allow on-premises and
cloud applications to exchange messages across the boundaries of logical
and physical domains.
▪ The Service Bus can be used as the foundation to create a new range of
hybrid and distributed applications that span the cloud and corporate
environments.
▪ The Service Bus provides 2 messaging types:
▪ Relayed Messaging
▪ Brokered Messaging
81. Service Bus Relayed Messaging
▪ The Service Bus allows a WCF service to expose an
endpoint in a Windows Azure data center that can be
accessed by consumer applications in a mediated and
secure way using different transport protocols (TCP,
HTTP/S) and message formats (SOAP and REST).
▪ The relay service provides a rendezvous connection point
in the cloud between the client application and the
service provider.
▪ Both the client and service can reside in the cloud or on-
premises.
▪ The Service Bus supports the WCF programming model
and provides a rich set of bindings
(BasicHttpRelayBinding, NetTcpRelayBinding,
NetEventRelayBinding, etc.) to cover a wide variety of
design patterns and Message Exchange Formats.
▪ One-way communications
▪ Publish/Subscribe
▪ Peer-to-peer communications
▪ Multicast messaging
82. Service Bus Brokered Messaging - Queues
▪ Queues provide messaging capabilities that enable a large and heterogeneous class of
applications running on premises or in the cloud to exchange messages in a secure and reliable
fashion across trust boundaries.
▪ Queues are based on a new messaging infrastructure backed by a replicated, durable store - up
to 5GB per Queue.
▪ The max message size is 256KB, but the session feature allows creating unlimited-size
sequences of related messages.
▪ Queues are available through a .NET API, WCF, HTTP/REST and AMQP Interfaces
83. Queues - Capabilities
▪ Session-based message correlation.
▪ Message Scheduled Delivery.
▪ Reliable delivery patterns via Peek/Lock Receive Mode.
▪ Transactions support to ensure batches of messaging operations are
committed atomically.
▪ Detection of inbound message duplicates, allowing clients to send the same
message multiple times without adverse consequences (Idem-potency).
▪ Dead-letter facility for messages that cannot be processed or expire before
being received.
▪ Deferring messages for later processing.
84. Queues - Scenarios
▪ Loosely-Coupled Asynchronous Communication allows to establish an
asynchronous and loosely-coupled communication between autonomous systems
that run in different application domains, on-premises or in the cloud.
▪ Load Leveling allows to flatten a highly-variable traffic into a predictable stream of
work.
▪ Load Balancing allows to distribute the load across a set of worker processes
which size can vary dynamically to accommodate the incoming message volume.
▪ In a Competing Consumers scenario, when a publisher writes a message to a queue, multiple
consumers compete with each other to receive the message, but only one of them will receive
and process the message in question.
▪ Temporal Decoupling allows to work on independent schedules. The producers
and consumers are not required to be online at the same time. This allows to
publish messages to workers that are temporarily offline.
85. Service Bus Brokered Messaging - Topics
▪ Topics provide all the Features of Queues + Publish/Subscribe capabilities.
▪ A Topic consists of a sequential message store just like a Queue, but it supports up to 2000 concurrent
and durable subscriptions
▪ Each Subscription is a virtual queue getting message copies
▪ A Subscription may have a single consumer that gets all the messages or a set of competing consumers
that fetch messages on a first-come-first-served basis.
▪ Subscriptions can have filters expressions and filter actions
86. Topics - Scenarios
▪Publish Events to many subscribers
▪Each subscription can be shared by a set of competing
consumers
▪Secondary subscriptions can be used for auditing purposes.
▪Distribute workload across partitioned pools of workers,
each defined by a different subscription
▪Decoupled message fan-out scenario to send messages to
many consumers requiring the same information
▪As the foundation in event-driven architecture
implementations
87. Topics – Rules & Filters
▪Rules:
▪ Rules select messages based on conditions defined on
system or application-specific properties
▪ Topics support more than one rule for each subscription
▪Filter Conditions and Actions:
▪ Conditions are represented by filter expressions
expressed in SQL’92 syntax:
▪ ShipCountry=“Ukraine” AND ShipCity=“Lviv”
▪ Actions are expressed by action expressions and can add
and modify message properties during retrieval
▪ Set Priority='High';Set Severity=1
88. Messages
▪ Messages are modeled by the BrokeredMessage class
▪ Messages can have user-defined:
▪ Time-To-Live periods (with no enforced maximum lifetime)
▪ Lock duration
▪ Duplicate detection history time
▪ Messages expose the following properties:
▪ MessageId that can be used for duplicate detection
▪ CorrelationId to correlate a message to a specific request
▪ SessionId for session-enabled communication
▪ ReplyTo that can be used to implement a request-reply MEP.
▪ Label for custom use
▪ User defined properties are key/value pairs
▪ Brokered messaging properties are not SOAP headers
90. How to call a Service Bus relay service (1/3)
function getUserAddress(f) {
// Set default value
item.userAddress = '<unknown>';
// Create the SOAP Envelope
var body = '<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">' +
'<s:Body>' +
'<user xmlns="http://windowsazure.cat.microsoft.com/samples/
mobileservices">' +
'<userId>' + user.userId + '</userId>' +
'</user>' +
'</s:Body>' +
'</s:Envelope>';
// Import the request module
var req = require('request');
* You can the xmlbuilder, sax and js2xml Node.js modules to create the SOAP messag
91. How to call a Service Bus relay service (2/3)
// Create call options
var options = {
method: 'POST',
url: 'http://paolosalvatori.servicebus.windows.net/basichttp/todoitem',
headers: {
'Content-Type': 'text/xml',
'SOAPAction': 'GetUserAddress'
},
body: body
};
// Call the Service Bus Relay Service
req(options, function(error, response, body) {
if (error) {
console.log('An error occurred while invoking the service: ', error);
} else {
// Import xml2js module
var xml2js = require('xml2js');
// Create a xml2js parser
var parser = new xml2js.Parser();
92. How to call a Service Bus relay service (3/3)
// Parse the SOAP envelope of the response from XML to JSON
parser.parseString(body, function (err, result) {
try {
// Read the address from the JSON object
var address = result["s:Envelope"]["s:Body"][0]["userAddress"][0]["text"]
[0];
if (address) {
// Set the userAddress property of the item
item.userAddress = address;
}
}
catch (ex) {
// Log the error
console.log("An error occurred while parsing the response: ", error);
}
});
if (f) {
// Invoke a continuation function, if any
f();
}
}
});
}
93. How to use Send a message to queue (1/2)
function sendMessageToServiceBus() {
// Import the azure module
var azure = require('azure');
// Create a ServiceBusService object
var serviceBusService = azure.createServiceBusService
('<your-service-bus-namespace-name>',
'<your-service-bus-namespace-key>');
// Define queue options
var queueOptions = {
EnableBatchedOperations: true,
RequiresDuplicateDetection: true,
DuplicateDetectionHistoryTimeWindow: 'PT8H'
};
94. How to use Send a message to queue (2/2)
// Create queue if it does not exist
serviceBusService.createQueueIfNotExists('mobileservices/todoitem', queueOptions, function (error) {
if (error) {
console.error("An error occurred creating/accessing the Service Bus queue: ", error);
}
else {
// Create a message
var message = {
body: 'Hello World!',
messageId: item.id,
customProperties: {
source: 'Mobile Services',
author: 'Paolo Salvatori'
}
};
// Send the message to the queue
serviceBusService.sendQueueMessage('mobileservices/todoitem', message, function (error) {
if (!error) {
console.log('Sent message: ' + message);
}
});
}
});
}
97. Agenda
▪ 4th Hour: Storage Services, Scheduler, SendGrid
▪ Store data to Table Storage using the azure Node.js module
▪ Use Shared Access Signatures and Blobs with Mobile Services
▪ Create and schedule jobs with the scheduler
▪ Send emails using SendGrid Node.js module
▪ Break (15 minutes)
100. Choose the PartitionKey and RowKey wisely
▪ Tables are partitioned to support load balancing across storage nodes.
▪ A table's entities are organized by partition.
▪ A partition is a consecutive range of entities sharing the same partition key value.
▪ The partition key is a unique identifier for the partition within a given table,
specified by the PartitionKey property.
▪ The partition key forms the first part of an entity's primary key.
▪ The second part of the primary key is the row key, specified by the RowKey
property.
▪ The row key is a unique identifier for an entity within a given partition.
▪ Together the PartitionKey and RowKey uniquely identify every entity within a
table.
▪ An entity can have up to 255 properties, including 3 system properties
described in the following section.
101. Insert Script (simplified)
function insert(item, user, request) {
// Access table service
var azure = require('azure');
var tableService = azure.createTableService('<your-storage-account-name>', '<your-storage-account-key>');
// Create table if not exists
tableService.createTableIfNotExists('TodoItems', function(error) {
if (error) {
request.respond(statusCodes.BAD_REQUEST, error);
} else {
var entity = {
PartitionKey: user.userId || 'default',
RowKey: (new Date()).getTime(),
text: item.text,
complete: item.complete,
};
// Insert the item in the storage table
tableService.insertEntity('TodoItems', entity, function (error) {
if (error) {
request.respond(statusCodes.BAD_REQUEST, error);
}
else {
request.respond(statusCodes.OK, entity);
}
});
}
});
}
103. Shared Access Signatures
▪ A shared access signature (SAS) is a URI that grants restricted access rights to
containers, blobs, queues, and tables.
▪ You can provide a SAS to clients that are not trusted to use the storage account key
but to whom you wish to delegate access to certain storage account resources.
▪ By distributing a SAS URI to these clients, you can grant them access to a resource
for a specified period of time, with a specified set of permissions.
▪ A shared access signature can grant any of the following operations to a client that
possesses the signature:
▪ Reading and writing page or block blob content, block lists, properties, and metadata
▪ Deleting, leasing, and creating a snapshot of a blob
▪ Listing the blobs within a container
▪ Adding, removing, updating, and deleting queue messages
▪ Getting queue metadata, including the message count
▪ Querying, adding, updating, deleting, and upserting table entities
104. Blobs and Shared Access Signature
1. The Windows Store app creates a new
album
2. The Mobile Service insert a new record
in the Album table
3. Thw Windows Store app creates a new
picture
4. The Mobile service calls the storage
account to get a SAS for the image and
its thumbnail
5. The Mobile Services saves the image
data in the Picture table
6. The Insert script returns a SAS for the
image and thumbnail in the item object
7. The Windows Store app uses the
storage account client API and the SAS
returned by the Mobile Service to save
the image and thumbnail as blobs.
*Sample by Nick Harris, see references for mo
105. Server Script and SAS
▪ The insert script uses the following line of code to build a SAS URL:
▪ return 'https://' + host + blobRelativePath + '?' + sasQueryString;
▪ A typical SAS query string contains many parameters which depend on the
storage resource (blob, container, table, queue)
▪ se=2013-05-21T15%3A37%3A15Z&sr=b&sp=w&sig=dj9zqN%2BSM1UX
▪ se = signedexpiry: the time at which the shared access signature becomes invalid
▪ sr = signedresource: b to grant access to a blob, c to grant access to a container
▪ sp = signedpermissions: the permissions associated with the Shared Access Signature (w = write)
▪ sig = signature: the signature part of the URI is used to authenticate the request made with the SAS.
▪ See http://msdn.microsoft.com/en-us/library/windowsazure/dn140255.aspx
107. What is the Azure Scheduler service?
▪Platform service that allows users a simple way to
schedule recurring actions against other services in
the cloud
▪Examples:
▪ Store a daily backup of my SQL database to blob storage.
▪ Clean up my To Do app’s done items every day
▪ Check the health of my service every few minutes
▪ Send a newsletter every day
108. Azure Scheduler Capabilities
▪Azure Portal integrated experience
▪Actions can be scheduled to fire once or on a regular
recurring schedule
▪Reliably and securely invoke services inside and
outside of Azure using Node.js modules
109. Use a Job to backup a SQL Database
1. The scheduler calls the
backup job
2. The backup job uses
the request module to
invoke the WA SQL
Database Import/Export
service by calling its
REST endpoint
3. The Import/Export
service reads the DB
schema and data
4. The service exports DB
schema and data to
Windows Azure Blob
Storage as a BACPAC
*Sample by Josh Twist, see references for mor
110. Code (1/2)
function backup() {
var request = require('request');
var util = require('util');
var date = new Date();
var year = date.getUTCFullYear();
var month = date.getUTCMonth() + 1;
var day = date.getUTCDate();
var body = {
BlobCredentials: {
__type: "BlobStorageAccessKeyCredentials:#Microsoft.SqlServer.Management.Dac.ServiceTypes",
Uri: util.format("https://<your-storage-account-name>.blob.core.windows.net/bacpac/%s-%s-%s.bacpac", year, month,
day),
StorageAccessKey: "<your-storage-account-key>"
},
ConnectionInfo: {
DatabaseName: "<your-database-name>",
Password: "<your-server-password>",
ServerName: "<your-server-name>.database.windows.net",
UserName: “<your-server-username>"
}
}
111. Code (2/2)
var postUri = "https://am1prod-dacsvc.azure.com/DACWebService.svc/Export";
request.post({
uri: postUri,
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(body)
}, function (e, r, b) {
if (e || r.statusCode != 200) {
console.error('backup failed', e || r.statusCode, b);
}
else {
console.log('backup successful', b);
}
});
}
113. Send a Report via Email
1. The scheduler calls the job function
2. The script reads data from SQL tables
and/or Storage tables
3. The script aggregates and formats data
in a report.
4. The script sends the report via email
using the the sendgrid Node.js module
114. Code (1/3)
function CountTodoItems() {
var SendGrid = require('sendgrid').SendGrid;
// Get access to the storage table
var azure = require('azure');
var tableService = azure.createTableService('<your-storage-account-name>',
'<your-storage-account-name>');
// Define query to retrieve todo items
var tableQuery = azure.TableQuery
.select()
.from('TodoItems')
.where('complete eq ?', 'false');
// Retrieve todo items
queryEntities();
115. Code (2/3)
function queryEntities() {
tableService.queryEntities(tableQuery, function (error, entities) {
if (error) {
var message = 'Failed to retrieve todo items from the TodoItems table.';
console.error(message);
}
else {
var text = 'The TodoItems table actually contains ' + entities.length + ' rows:rnrn';
for (var i = 0; i < entities.length; i++) {
text = text + ' - UserId: ' + entities[i].PartitionKey;
text = text + ' Item: ' + entities[i].text + 'rn';
}
text = text + 'rnMessage sent by TodoItems site at ' + (new Date()).toString();
sendEmail(text);
console.log(text);
}
});
}
116. Code (3/3)
function sendEmail(text) {
var sendgrid = new SendGrid('babosbird', 'Trustno1');
sendgrid.send({
to: 'paolos@microsoft.com',
from: 'leprino@hotmail.com',
subject: 'Number of Todo Items',
text: text
}, function (success, message) {
// If the email failed to send, log it as an error so we can investigate
if (!success) {
console.error(message);
}
});
}
}
118. Trigger a Worker Role with a Service Bus Msg
1. The scheduler calls the job function.
2. The script creates and send a message
to a Service Bus queue or topic.
3. One instance of the Worker Role reads
the message from the queue/
subscription.
4. The Worker Role instance processes
the message.
119. Code
function SendMessageToServiceBus() {
var azure = require('azure');
var serviceBusService = azure.createServiceBusService('paolosalvatori',
'PgTi69pNLU2Me58C3xiEDT5xosclhfEgQs6NsUCY9Qs=');
serviceBusService.createQueueIfNotExists('mobileservices/scheduler', function (error) {
if (!error) {
var builder = require('xmlbuilder');
var root = builder.create('job',
{ 'version': '1.0', 'encoding': 'UTF-8' })
.att('xmlns', 'http://windowsazure.cat.microsoft.com/samples/mobileservices');
root.ele('command', 'read');
root.ele('date', (new Date()).toUTCString());
var message = root.end({ 'pretty': true, 'indent': ' ', 'newline': 'n' });
serviceBusService.sendQueueMessage('mobileservices/scheduler', message, function (error) {
if (!error) {
console.log('Sent message: ' + message);
}
});
}
});
}
121. References
▪ Windows Azure Mobile Services
▪ http://www.windowsazure.com/en-us/develop/mobile/
▪ Tutorials and Resources
▪ http://www.windowsazure.com/en-us/develop/mobile/resources-html/
▪ Upload File to Windows Azure Blob Storage using Windows Azure Mobile Services
▪ http://code.msdn.microsoft.com/Upload-File-to-Windows-c9169190
▪ Getting user information on Azure Mobile Services
▪ http://blogs.msdn.com/b/carlosfigueira/archive/2012/10/25/getting-user-information-on-azure-mobile-services.aspx
▪ Troubleshooting authentication issues in Azure Mobile Services
▪ http://blogs.msdn.com/b/carlosfigueira/archive/2012/10/23/troubleshooting-authentication-issues-in-azure-mobile-services.aspx
122. References
▪ Using the scheduler to backup your Mobile Service database
▪ http://www.thejoyofcode.com/Using_the_scheduler_to_backup_your_Mobile_Service_database.aspx
▪ Getting started with the CLI and backing up your scripts
▪ http://www.thejoyofcode.com/Getting_started_with_the_CLI_and_backing_up_your_scripts_Day_4_.aspx
▪ More CLI – changing your Mobile Services workflow
▪ http://www.thejoyofcode.com/More_CLI_ndash_changing_your_Mobile_Services_workflow_Day_5_.aspx
▪ New Windows Azure Mobile Services Getting Started Content
▪ http://blogs.msdn.com/b/windowsazure/archive/2013/01/09/new-windows-azure-mobile-services-getting-started-content.aspx
▪ How to use Windows Azure Table Storage in Windows Azure Mobile Services
▪ http://code.msdn.microsoft.com/windowsazure/Use-Table-Storage-in-0b6bcbc7
123. References
▪ How to Use the Table Service from Node.js
▪ http://www.windowsazure.com/en-us/develop/nodejs/how-to-guides/table-services/
▪ How to Use Service Bus Queues
▪ http://www.windowsazure.com/en-us/develop/nodejs/how-to-guides/service-bus-queues/
▪ How to Use Service Bus Topics/Subscriptions
▪ http://www.windowsazure.com/en-us/develop/nodejs/how-to-guides/service-bus-topics/
▪ How to Send Email Using SendGrid from Node.js
▪ http://www.windowsazure.com/en-us/develop/nodejs/how-to-guides/sendgrid-email-service/
124. Blogs
▪Josh Twist Blog
▪ http://www.thejoyofcode.com/
▪Nick Harris Blog
▪ http://www.nickharris.net/
▪Carlos Figuera
▪ http://blogs.msdn.com/b/carlosfigueira/
▪Paolo Salvatori Blog
▪ http://blogs.msdn.com/b/paolos