SharePoint + Xamarin for Visual Studio provides ability to build great business mobile apps using C# as the main programming language. It can build apps for iOS, Android, Kindle Fire and more. Apps are built with standard, native user interface controls. Apps not only look the way the end user expects, they behave that way too. Xamarin Studio provides integration with Visual Studio, IDE for Mac as well as Windows IDE for Android development. Apps are build using familiar language(C#) and namespace base on .Net framework which we all have come to love. Your users will love using Apps that target to their personal device, which intern will increase productivity and business value.
Session 1 - Transformative Opportunities in Mobile and Cloud Xamarin
The opening keynote address delivered at Xamarin Partner Summit 2017. During the address, Microsoft speakers Greg Urquhart and Erik Polzin explore Xamarin and Microsoft since the acquisition in 2016, the theme of mobile-first, cloud-first and the "mobile +" shift driving greater opportunities for Xamarin Partners. Microsoft speaker and Xamarin technical expert, Colby Williams, also demos Visual Studio Mobile Center.
Watch the session recording at channel9.msdn.com/Events/Xamarin-Partners/Xamarin-Partner-Summit-2017/Transformative-Opportunities-in-Mobile-and-Cloud
Session 3 - Driving Mobile Growth and ProfitabilityXamarin
This is the presentation slides of video session delivered at Xamarin Partner Summit 2017 by Microsoft speakers, Neil Smith, Sebastien Le Calvez, Alex Popp and Matt Larson. It provides practical advice on ways that Xamarin Partners can leverage Microsoft technologies and programs to create further growth and profitability across their mobile practice.
Watch the session recording at channel9.msdn.com/Events/Xamarin-Partners/Xamarin-Partner-Summit-2017/Driving-Moble-Growth-and-Profitability
Real NET Docs Show - Serverless Machine Learning v3.pptxLuis Beltran
Slides of my presentation about Serverless Machine Learning using Azure Functions, Twilio APIs, and Cognitive Services for text and image processing of WhatsApp messages at .NET Docs Show weekly community event organized by Microsoft
Mobilizing your Existing Enterprise ApplicationsNick Landry
As an enterprise developer, your task is not just building projects from the latest and greatest technology but also brining your current systems into the mobile first world. In this session, we will show you can mobilize your existing enterprise applications without the need for a total rewrite. We’ll explore how to current server components, services and databases can be exposed via a Web API, and also how you can take advantage of a hybrid cloud approach to extend your on-premises assets. Next, we’ll discuss how to design a cross-platform mobile solution based on Xamarin to run on iOS, Android and Windows devices. We’ll cover code sharing, authentication & authorization, data synchronization & offline access, and other best practices. Extend the longevity and the reach of your existing systems by transforming them with maximum reuse for the mobile first, cloud first world.
State of Union: Xamarin & Cross-Platform .NET in 2016 and BeyondNick Landry
Xamarin is a free & powerful toolset from Microsoft that allows developers to write truly *native* Android and iOS apps using C#, thanks to the Mono framework – an Open Source project that brings the C# language and .NET to other platforms. With Xamarin you can share from 70% to 100% of your code across mobile platforms, and the platform has evolved a lot over the last few years. This session starts with a recap on how you can build native cross-platform applications for iOS, Android, and Windows 10 using C#. You’ll learn how to get started with a sample cross-platform solution, which tools you can use, how to design a proper user interface for each platform and how to structure your projects for maximum code reuse. We’ll also look at how you can share UI code with Xamarin.Forms.
Beyond the basics, we’ll look at the world of Cross-Platform .NET, how Xamarin & Mono fit in, .NET Core and the new .NET Standard. We’ll also peek at some of the new features in the Xamarin Platform, including the Xamarin.Forms XAML Previewer, iOS Simulator for Windows, Workbooks and upcoming features landing this Fall. Whether you’re a Xamarin veteran or a complete newbie, this is a level-setting session you do not want to miss.
Session 1 - Transformative Opportunities in Mobile and Cloud Xamarin
The opening keynote address delivered at Xamarin Partner Summit 2017. During the address, Microsoft speakers Greg Urquhart and Erik Polzin explore Xamarin and Microsoft since the acquisition in 2016, the theme of mobile-first, cloud-first and the "mobile +" shift driving greater opportunities for Xamarin Partners. Microsoft speaker and Xamarin technical expert, Colby Williams, also demos Visual Studio Mobile Center.
Watch the session recording at channel9.msdn.com/Events/Xamarin-Partners/Xamarin-Partner-Summit-2017/Transformative-Opportunities-in-Mobile-and-Cloud
Session 3 - Driving Mobile Growth and ProfitabilityXamarin
This is the presentation slides of video session delivered at Xamarin Partner Summit 2017 by Microsoft speakers, Neil Smith, Sebastien Le Calvez, Alex Popp and Matt Larson. It provides practical advice on ways that Xamarin Partners can leverage Microsoft technologies and programs to create further growth and profitability across their mobile practice.
Watch the session recording at channel9.msdn.com/Events/Xamarin-Partners/Xamarin-Partner-Summit-2017/Driving-Moble-Growth-and-Profitability
Real NET Docs Show - Serverless Machine Learning v3.pptxLuis Beltran
Slides of my presentation about Serverless Machine Learning using Azure Functions, Twilio APIs, and Cognitive Services for text and image processing of WhatsApp messages at .NET Docs Show weekly community event organized by Microsoft
Mobilizing your Existing Enterprise ApplicationsNick Landry
As an enterprise developer, your task is not just building projects from the latest and greatest technology but also brining your current systems into the mobile first world. In this session, we will show you can mobilize your existing enterprise applications without the need for a total rewrite. We’ll explore how to current server components, services and databases can be exposed via a Web API, and also how you can take advantage of a hybrid cloud approach to extend your on-premises assets. Next, we’ll discuss how to design a cross-platform mobile solution based on Xamarin to run on iOS, Android and Windows devices. We’ll cover code sharing, authentication & authorization, data synchronization & offline access, and other best practices. Extend the longevity and the reach of your existing systems by transforming them with maximum reuse for the mobile first, cloud first world.
State of Union: Xamarin & Cross-Platform .NET in 2016 and BeyondNick Landry
Xamarin is a free & powerful toolset from Microsoft that allows developers to write truly *native* Android and iOS apps using C#, thanks to the Mono framework – an Open Source project that brings the C# language and .NET to other platforms. With Xamarin you can share from 70% to 100% of your code across mobile platforms, and the platform has evolved a lot over the last few years. This session starts with a recap on how you can build native cross-platform applications for iOS, Android, and Windows 10 using C#. You’ll learn how to get started with a sample cross-platform solution, which tools you can use, how to design a proper user interface for each platform and how to structure your projects for maximum code reuse. We’ll also look at how you can share UI code with Xamarin.Forms.
Beyond the basics, we’ll look at the world of Cross-Platform .NET, how Xamarin & Mono fit in, .NET Core and the new .NET Standard. We’ll also peek at some of the new features in the Xamarin Platform, including the Xamarin.Forms XAML Previewer, iOS Simulator for Windows, Workbooks and upcoming features landing this Fall. Whether you’re a Xamarin veteran or a complete newbie, this is a level-setting session you do not want to miss.
Enterprise-grade mobile barcode scanning with Scandit and XamarinXamarin
Scandit's lightning-fast and accurate Barcode Scanner is a valuable addition to any enterprise application. Watch Zack Gramama, Technical Lead - Xamarin Component Store, and Christian Floerkemeier, CTO and co-founder of Scandit, as they demonstrate how the Scandit component utilizes a unique blurry barcode scan technology that works across platforms to scan any barcode type from any angle.
Desktop Developer’s Guide to Mobile with Visual Studio Tools for XamarinXamarin
These are the slides from Mark Smith's webinar where he shows how to apply your existing desktop development skills, knowledge, and code to mobile development. With Microsoft’s mobile tools and cloud services, you can start delivering native user experiences without learning new languages.
Mark compares desktop and mobile UI/UX and share best practices for porting existing desktop apps to Android, iOS, and UWP. Whether you’re building apps for consumers, employees, or suppliers, you’ll learn how to overcome common obstacles and get the step-by-step training you need to deliver high quality apps.
Watch the webinar recording at aka.ms/xamu-desktop-devs-video
Mobile Cross-Platform App Development in C# with XamarinNick Landry
Building native applications across multiple platforms is hard. iOS requires knowledge of Xcode, the iOS SDK and Objective-C or Swift. Android requires Eclipse (or Android Studio), the Android SDK and Java. The Windows 10 Universal Windows Platform requires Visual Studio, C# and the WinRT SDK. Are we really expected to learn all of this? You can take the HTML5 & Cordova route, but not all apps should be built using a hybrid approach. If you want to create a truly competitive app with a premium experience, you’ll need to go native. Fortunately, there is a way you can share a lot of your code across mobile platforms and do so using the C# language you already know and love. Xamarin is a powerful toolset that allows developers to write native Android and iOS apps using C#, thanks to the Mono framework – an Open Source project that brings the C# language and .NET to other platforms. This session explores how you can build cross-platform applications for iOS, Android, and Windows using C#. You’ll learn how to get started with a sample cross-platform solution, which tools you can use, how to design a proper user interface for each platform and how to structure your projects for maximum code reuse. We’ll also look at how you can share UI code with Xamarin.Forms. Native mobile development doesn’t have to be so hard. Come learn how your .NET skills can be transformed for true cross-platform development.
Ning Zhou, CTO of Blank Slate Factory, will demonstrate the creation of a web application using browser side technologies (HTML/CSS/JS) and the Blank Slate Web Platform. By using the Blank Slate platform, designers and developers can build, share, analyze and monetize web applications without having to built core application capabilities such as data management, user management and payment collection. We are currently accepting beta customers to Blank Slate. Beta customers can be developers and business people -- and we're helping to match people with complementary skills.
Building a Node.js Backend in the Cloud for Android AppsNick Landry
The Cloud is the perfect extension for mobile applications. Mobile apps don’t exist in a vacuum, you never know if you’ll have 10 or 100,000 users, and sooner or later you’ll need to save user data in the cloud, perform operations server-side for enhanced scalability, or monitor data feeds to push notifications to your mobile users. Microsoft Azure provides the best infrastructure for mobile developers across all platforms thanks to cross-platform storage, authentication and push notification services, all residing in the cloud. This session explores how you can build cloud-enabled cross-platform applications for iOS, Android and Windows 10 and Azure App Services for mobile, with demos focusing on the Android Java developer. You’ll learn how to authenticate users via Microsoft, Google, Facebook or Twitter credentials, store data remotely in NoSQL tables and blob storage, and even how to send push notifications to all vendor platforms (including GCM), all through live cross-platform demos. Whether you’re a weekend warrior building consumer apps, a savvy entrepreneur building the next revolution, or a corporate mobile developer building apps for the enterprise, the cloud is the perfect companion for your mobile apps. Come learn how easy it is to harness its power.
Microsoft Speech Technologies for DevelopersNick Landry
This is a compilation deck for a presentation I did at BetaWorks in NYC, covering Microsoft Speech Technologies for Developers. This includes Speech APIs in Microsoft Cognitive Services, the Microsoft Speech SDK in UWP and .NET, Cortana Skills and Voice Commands in Windows Mixed Reality & HoloLens.
Enterprise-grade mobile barcode scanning with Scandit and XamarinXamarin
Scandit's lightning-fast and accurate Barcode Scanner is a valuable addition to any enterprise application. Watch Zack Gramama, Technical Lead - Xamarin Component Store, and Christian Floerkemeier, CTO and co-founder of Scandit, as they demonstrate how the Scandit component utilizes a unique blurry barcode scan technology that works across platforms to scan any barcode type from any angle.
Desktop Developer’s Guide to Mobile with Visual Studio Tools for XamarinXamarin
These are the slides from Mark Smith's webinar where he shows how to apply your existing desktop development skills, knowledge, and code to mobile development. With Microsoft’s mobile tools and cloud services, you can start delivering native user experiences without learning new languages.
Mark compares desktop and mobile UI/UX and share best practices for porting existing desktop apps to Android, iOS, and UWP. Whether you’re building apps for consumers, employees, or suppliers, you’ll learn how to overcome common obstacles and get the step-by-step training you need to deliver high quality apps.
Watch the webinar recording at aka.ms/xamu-desktop-devs-video
Mobile Cross-Platform App Development in C# with XamarinNick Landry
Building native applications across multiple platforms is hard. iOS requires knowledge of Xcode, the iOS SDK and Objective-C or Swift. Android requires Eclipse (or Android Studio), the Android SDK and Java. The Windows 10 Universal Windows Platform requires Visual Studio, C# and the WinRT SDK. Are we really expected to learn all of this? You can take the HTML5 & Cordova route, but not all apps should be built using a hybrid approach. If you want to create a truly competitive app with a premium experience, you’ll need to go native. Fortunately, there is a way you can share a lot of your code across mobile platforms and do so using the C# language you already know and love. Xamarin is a powerful toolset that allows developers to write native Android and iOS apps using C#, thanks to the Mono framework – an Open Source project that brings the C# language and .NET to other platforms. This session explores how you can build cross-platform applications for iOS, Android, and Windows using C#. You’ll learn how to get started with a sample cross-platform solution, which tools you can use, how to design a proper user interface for each platform and how to structure your projects for maximum code reuse. We’ll also look at how you can share UI code with Xamarin.Forms. Native mobile development doesn’t have to be so hard. Come learn how your .NET skills can be transformed for true cross-platform development.
Ning Zhou, CTO of Blank Slate Factory, will demonstrate the creation of a web application using browser side technologies (HTML/CSS/JS) and the Blank Slate Web Platform. By using the Blank Slate platform, designers and developers can build, share, analyze and monetize web applications without having to built core application capabilities such as data management, user management and payment collection. We are currently accepting beta customers to Blank Slate. Beta customers can be developers and business people -- and we're helping to match people with complementary skills.
Building a Node.js Backend in the Cloud for Android AppsNick Landry
The Cloud is the perfect extension for mobile applications. Mobile apps don’t exist in a vacuum, you never know if you’ll have 10 or 100,000 users, and sooner or later you’ll need to save user data in the cloud, perform operations server-side for enhanced scalability, or monitor data feeds to push notifications to your mobile users. Microsoft Azure provides the best infrastructure for mobile developers across all platforms thanks to cross-platform storage, authentication and push notification services, all residing in the cloud. This session explores how you can build cloud-enabled cross-platform applications for iOS, Android and Windows 10 and Azure App Services for mobile, with demos focusing on the Android Java developer. You’ll learn how to authenticate users via Microsoft, Google, Facebook or Twitter credentials, store data remotely in NoSQL tables and blob storage, and even how to send push notifications to all vendor platforms (including GCM), all through live cross-platform demos. Whether you’re a weekend warrior building consumer apps, a savvy entrepreneur building the next revolution, or a corporate mobile developer building apps for the enterprise, the cloud is the perfect companion for your mobile apps. Come learn how easy it is to harness its power.
Microsoft Speech Technologies for DevelopersNick Landry
This is a compilation deck for a presentation I did at BetaWorks in NYC, covering Microsoft Speech Technologies for Developers. This includes Speech APIs in Microsoft Cognitive Services, the Microsoft Speech SDK in UWP and .NET, Cortana Skills and Voice Commands in Windows Mixed Reality & HoloLens.
Slides used during 2016 edition of SharePoint Saturday Toronto to present Microsoft PowerApps and how easy it is to create application from Azure SQL, Microsoft CRM and SharePoint Content.
Do Try This at Home! Extend IBM Connections using IBM WorklightProlifics
DO Try This at Home! Extend IBM Connections using IBM Worklight
Speakers:
Handly Cameron, Prolifics
Smriti Kapuria , Prolifics
Abstract: In this session you will learn how to extend IBM Connections and build a mobile app using IBM Worklight. Come see a live demo as we show you how to construct a mobile app and make use of the Social Business Toolkit, OpenSocial, and REST APIs. Experts from Prolifics will cover techniques for integrating with IBM Connections and mobile app construction. We will walk you through the steps of developing a mobile app in Worklight and using Worklight adapters to add social features through the Connections API. After this session, you will be ready to start building your own app. Both Worklight Studio and IBM Greenhouse are free to use, so you CAN try this at home!
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
2. Introduction
About BlumShapiro
Quick Update on Cross Platform Mobile Dev
Landscape
Intro into Xamarin
Demo C# IPhone App SharePoint/Office 365
Demo Shared UI Code
Questions
3. SharePoint Developer
Mobile App Developer
Certifications
MCSD Web Applications
MCPD SharePoint Development,
MSCE and Mobile (In Progress)
Hobbies
Cross Fit
Chess Player
Contact
hluciano@blumshapiro.com
@hluciano
Hlucianojr.wordpress.com
Demo Github
https://github.com/hlucianojr/xsps
ervice.demo
4. The largest regional, accounting, tax and business consulting firm
based in New England
Established in 1980 as a small accounting firm in West Hartford
350 professionals in Connecticut, Massachusetts and Rhode Island
Vision to be the dominant professional services firm based in New
England
▪ Organic growth with a large emphasis on consulting
▪ Strategic acquisition of firms sharing our values
▪ Best Place to Work
▪ Commitment to Community, diversity and stewardship
With this strategy and geographic focus we are able to attract outstanding
talent with shared values.
4
21. Model View Controller
Pattern
Model: POCO, DTO, object hold
application data.
View: Visual presentation of the
model.
Controller: mediator between
model and view.
iOS MVC Classes
UIViewController: the controller
access to the Model/Models
UIView: the view gets display to
the user
DataSource: collection of
Models or Model
ViewModel
Controller
22. 40+ Pages, Layouts, and
Controls
Build from code behind
or XAML
Two-way Data Binding
Navigation
Animation API
Dependency Service
Messaging Center
23.
24.
25. Async for .Net Framework
Microsoft BCL Portability Pack 1.1.9
26.
27. Check out: https://github.com/jamesmontemagno/Xamarin.Plugins
Battery Status: Get battery level, how it is
getting charge, and events.
Connectivity: See if device is connected to the
internet and through what connection type.
Contacts: Currently in Alpha
Device Information: Base information about
each device such as OS and version.
Extended Maps: Launch navigation directions
in default map app on each OS
Geolocator: Currently in Alpha
Media: Take or pick photos/videos
Settings: Fully cross platform settings for your
application.
Text To Speech: Turn your text into a vocal
symphony on mobile devices.
Vibrate: Make that device rumble!
28.
29.
30. Determine your app capabilities
Mail
Calendar
Contacts
Files
Sites
Determine Resource Id and Endpoint Uri of Office 365 Service
API.
31. What is Model View ViewModel
ViewModel: describes
integration with View via
properties, commands and
observable objects
View: User interface, XAML
markup or Code
Model: refers to entities, objects,
data sources.
Benefits
Loosely coupled architecture
Testable code.
Requirement
Observable Collection
Command Pattern
Binding
ViewModel
View Model
Intro
I am Hector Luciano jr, a consultant manager at BlumShapiro.(Continue with self intro)
Xamarin lets you build iOS, Android and Mac apps in C#, rather than Object-C or Java. Using familiar tools you can take advantage of your favorite things about C#. Linq support
Event handling, delegates and event Asyc support. For develping for new mobile and desktop platforms. Today I will get you started with building Mobile Apps against SharePoint on
premesis or SharePoint Online in Visual Studio 2013 using C#.
To accomplish this goal we will be using a PCL library called XSPService, build by me. The XSPService PCL is a component build to work across platforms that provides a turn key solution
for access SharePoint for mobile apps. With XSPService Component it is fast and easy to connect to SharePoint access libraries, download, upload documents, access feeds and get push notifications.
First we are going to start with a single view applications, in this presentation we will be just covering Xamarin for iOS, however you can use it for building Android apps.
Welcome
This is my first presentation, in this group and ever, so give me some love… and I promise I already pray to the demo gods and go my fingers cross.
I am Hector Luciano Jr, Consulting Manager in BlumShapiro located right in Conneticut as well as our Boston office in Quincy and others.
Quick Info on BlumShapiro:
{INSERT BLUMSHAPRIO}
About me, I am really a developer at heart, I been developing for over 13 years now, I am MSCD certify and working on my MSCE certification. I see my career goal as SharePoint and Mobile specifically native Apps.
I have been building Apps for over 3 years specifically on iOS Iphone using Object-C as the main programing language. Now I will not be talking about OJbect-C so no worries. I am currently learning Swift just because it is good to know the main iOS programing languge
Building Apps was more of a hobby/second job, I worked on a Metal Health App called MyOmBody which is now 4 apps all running my original code, currently I am working on a new App for Smart Home devices using the new iOS Home framework. That app is build on Swift so I wont be demoning to day but if you want to see it I will share later after the presentation.
Now the main reason why I pick Boston SharePoint User group is because SharePoint development is my main Job and I actually enjoy working on SharePoint……., well when I am not pulling my hear out.
Last year I finally decided to combine the two and that’s what I am here to day. I am going to share with you apps that I have build against SharePoint and show you how to get started. Now after today you are going to leave with a few sample apps that can get you started and hopefully you can see the business value out of them.
(OPTIONAL) Today I will be talking all about building SharePoint Mobile Apps using tools you know and love for the last decade. Basically this presentation is for the normal SharePoint developer whom works right on Visual Studio is familiar with Asp.Net C#.
(PERSONAL COMMENTS)(OPTINAL)
First the old generation doesn't care for this mobile trends they done there time and if is not broken don't fix it. However the are joining Facebook and inviting me to play word with friends. WTF. --the hash tag generation: this generation communicates and share information much faster, via app notification twitter, Snapchat, LinkedIn, and others. They don't use email it a resembles to letters on the mail. Just simple noise and junk mail. {Insert Notification pic}--The D generation: Email, Excel, Word, SMS txt, and blogs was the communication and the demanded it. This generation has there IPhone wake them up to go exercise and the while eating breakfast they are reading the news on there IPad. But when is time to get work done they open a laptop!!!! This is a fact of life.--The F generation: my prediction is going to be all about touch and voice over commands. And If I can not touch it I don't want it. If you don't make me happy I simply don't come back and I find alternative. They are not going to used email because that not how they engage with there friends they will use Social media, voice messages, Pinksters, that how we love today.Is all about simple and specific apps that allow us to get together. {insert bank of future} check out bank ofCatastrophic rescue team used mobile and SharePoint to deliver relief. Mobile and Social are growing with the maturing of mobile technology and tooling. It no longer take a genius to build a mobile app and I will show you
This is how we help, unlock your potential
Xamarin Studio
Xamarin Studio provides ability to build mobile apps using C# as the main programing language. It can build apps for iOS, Android, Kendle Fire and more. Apps are built with standard, native user interface controls. Apps not only look the way the end user expects, they behave that way too. Xamarin Studio provides integration with Visual Studio and a IDE for Mac and Windows IDE for Android development. Familiar language and namespace base on .Net framework which we all have come to love.
Xamarin Company also provides on cloud testing for almost all Android devices and are working on iOS on cloud testing as well. Build-in iOS designer fully integrated with Visual Studio. This means that you don’t need to pen Xcode to build iOS user interfaces.
Appcelerator Titanium
Appcelerator Titanium offers you two complementary pieces of the puzzle.
Titanium is a JavaScript development tool filled with widgets you can string together to build apps that run natively. It provides the code that allows your app to run in iOS, Android, Windows, BlackBerry, and HTML5. That's a big collection from one basic piece of code. The company also offers a set of cloud applications that handle the back-end work for your app. Whether it's storing information or sending email, the Appcelerator cloud handles it. There are also specialized tables for geographic information, photographs, and what the social media world calls "friends." The cross-platform Corona SDK has all the usual features for creating an app that runs on iOS, Android, Kindle Fire, and Nook, along with one indispensable addition: a physics engine. Corona apps can take objects and simulate them bouncing around a real world. Writing your own Angry Birds-like game is much easier.
The company also offers a cloud for storing information from your game. Access is simple from the app code. You'll find the usual repositories for bits as well as custom formats for game builders. Your code can create leaderboards, track achievements, offer chat sessions, and integrate with social networks, all through the Corona cloud. PhoneGap, which won great acclaim at Web 2.0 Expo San Francisco’s 2009 Launch Pad event, is an FOSS environment that allows developers to create apps for Android, Palm, Symbian, BlackBerry, iPhone, iTouch and iPad devices. This platform uses standard web development languages such as HTML and JavaScript.Phone Gap
PhoneGap allows the developer to work with device hardware features such as accelerometer, GPS/location, camera, sound and much more.PhoneGap additionally offers an Adobe AIR app and also online training courses to help the developer access native API’s and build mobile apps on its own platform. RhoMobile offers Rhodes, which is an open-source framework based on Ruby. This permits the developer to create native apps, spanning over a stunning range of OS’ and smartphones. The OS’ include Android, Windows Mobile, Symbian, iPhone and RIM, which pretty much covers it all.The framework supplied by RhoMobile is such that you only need to code once. This code can be used to build apps for most of the major smartphones. Native apps are great for working with available hardware, so your job gets done with ease, speed and accuracy.
RhoMobile
RhoMobile also offers developers RhoHub, which is a hosted development environment, and RhoSync, which can be employed as a standalone server to keep all the app data current on the users’ handhelds.
When you think of Xamarin you need to think of it as multiple products one of those product is the Xamarin Platform.
This is where you be creating your iOS, Android, Mac applications, Windows app all in Visual Studio, with everything you love about .Net.
So what are Native Mobile Apps, native apps, native user interface, using the each platform native UI look and feel.
-- Each device has a unique API which need to be available.
-- Also each application needs perform.
How are you going to Architect your Apps, one approach you are buliding each app on each Applications. Build multiple source code, different platform language, and managing the project deficult, insead you want right onces and use everywhere.
Some Approach is to use what is called Lowest Common Denomiator of running using Black Box approach like Javascript Framework, basically you have to write using there approach.
Xamaring approach is building against the .Net framework using all the api which we love and are comfortalbe with. Sharing code using a C# backend across Android, iOS and Windows. Everything is in C#, eventhough you have different Xamarin IDE for Androin and iOS.
When you think of what a SharePoint C# developer already knows, you know the .Net framework System.Net, System, System.IO , System.Linq, System.XML. Would it be great if you just build you agains
Intro
I am Hector Luciano jr, a consultant manager at BlumShapiro.(Continue with self intro)
Xamarin lets you build iOS, Android and Mac apps in C#, rather than Object-C or Java. Using familiar tools you can take advantage of your favorite things about C#. Linq support
Event handling, delegates and event Asyc support. For develping for new mobile and desktop platforms. Today I will get you started with building Mobile Apps against SharePoint on
premesis or SharePoint Online in Visual Studio 2013 using C#.
To accomplish this goal we will be using a PCL library called XSPService, build by me. The XSPService PCL is a component build to work across platforms that provides a turn key solution
for access SharePoint for mobile apps. With XSPService Component it is fast and easy to connect to SharePoint access libraries, download, upload documents, access feeds and get push notifications.
First we are going to start with a single view applications, in this presentation we will be just covering Xamarin for iOS, however you can use it for building Android apps.
Demo Steps.
Note: If you have never develop with Xamarin it is worth for you to first check out Xamarin.com to learn more about Xamarin as well as to download the tools. Now I have everything setup,
before you begin you will need Apple XCode IDE, and Xamarin tools. You can download the XCode IDE from Apple Developer.com and becoming a Apple developer. Next lets open Xamarin Studio
in Visual Studio.
1. I am going to create a single view iOS project
1.1 Quick walkthrougg.
1.1.1 The Main.cs file is the main point of the application and it references the AppDelage class that where we can implement life cycle methods for our app. The App properties is where you can
see the reference to the MainStoryboard file. This is where you will find all the UI controls, View and more.
(navigate to project properties and select (iOS Application tab) talk about this screen.
1.1.1.1 here you can see the Main Interface storybord, you can see Supported Device Orientation and more.
2. Lets edit the StoryBoard File and see how to build a native iOS app.
2.1 In this designer I can easily build application ui,
2.1.1. Notice the following.
-You can view the storyboard by device type( click on the left top)
-YOu can select the iOS version.
-And notice all the controls available for you.
-So lets add a few buttons and a label.
-Notice that when I drag the button, the IDE is helping me align the controls(super cool) I can also edit the buttons properties which
would be usefull, If I already know exactly where I want the button to be.
-Name it btnRISPUG
-Talk about buttons event. Which event you think I should used?
-Notice you can always just double click on the button, similar to what you are usetoo doing.
" this.lblhello.Text = "Hello Xamarin from RI SharePoint User Group";"
-Now lets add a image view control.
http://photos4.meetupstatic.com/photos/event/d/2/9/8/highres_115253912.jpeg
static UIImage FromUrl(string uri)
{
using (var url = new NSUrl(uri))
using (var data = NSData.FromUrl(url))
return UIImage.LoadFromData(data);
}
-Now lets add a web view(Why because I found it, that I constainly need to setup a webview to navigate to content on some site)
-For example navigate to a PDF on SharePoint, Word, Some data entery web entery form etc..
http://www.meetup.com/RISPUG/
partial void UIButton6_TouchUpInside(UIButton sender)
{
this.uwvMoreInfo.LoadRequest(new NSUrlRequest(new NSUrl("http://www.meetup.com/RISPUG/")));
}
-Lets talk about StoryBoard
-Add a new storyboard
-What is a storyboard is a visual representation of all screens in your application, contains ui elements, controls and navigaiton.
-Add a Navigation Controller
-Add two buttons red and blue
-Show how to add additional view controllers
-show how to navigate from one view to another.
Show how a modal window workds.
partial void UIButton312_TouchUpInside(UIButton sender)
{
this.DismissModalViewController(true);
}
--Show how to create a ViewController on the fly.
--Add a property for the URL and a web url
--Notice that I manually lay them out, and off-course everyone here can already realize what's is going to happen when my App is
is open on a different screen iOS device. For now it is ok, and later I will show you how we can handle different screen size..
Xamarin Products
(TAKE A DEEP BREATH) Includes Xamarin Extension for Visual Studio which provides direct integration with Visual Studio.
(TAKE A DEEP BREATH) Prior to the Xamarin Extension there was Xamarin Studio for Mac and PC which allows you to code on MacBook.
(TAKE A DEEP BREATH) Also Xamarin include Component Store, where you can purchess third party products, or download SDK to lots of free frameworks like Azure Mobile
(TAKE A DEEP BREATH) Xamarin Forms component allows you to build Share UI Code across mobile devices.
How Xamarin.iOS compiles
Xamarin.iOS compiles c# source code against a special subset of the mono framework. This cut down version of the mono framework includes additional libraries which allow access to iOS platform specific features. The Xamarin.iOS compiler, smsc, takes source code and compiles it into an intermediate language, ECMA CIL (common intermediate language), however it does not produce ECMA ABI compatible binaries unlike the normal mono compiler, gmcs or dmsc. This means any 3rd party .Net libraries you want to include in your application will need to be recompiled against the Xamarin.iOS subset of the mono framework using smsc.
Xamarin.iOS application Compiling
Once a Xamarin.iOS application has been compiled into CIL it needs to be compiled again into native machine code that can run on an iOS device. This process is carried out by the SDK tool ‘mtouch’, the result of which is an application bundle that can be deployed to either the iOS simulator or an actual iOS device, such as an iPhone or iPad.
Due to restrictions placed by Apple, the iOS kernel will not allow programs to generate code at runtime. This restriction has severe implications for software systems that run inside a virtual machine using just-in-time compilation. Just-in-time compilation takes the intermediate code, for example mono CIL and compiles it at runtime into machine code. This machine code is compatible for the device it is running on at the time of execution.
To work around this restriction the mtouch tool compiles the CIL ahead of time. A process that the mono team describe as AOT, ahead of time compilation.
What is smsc
How Xamarin.iOS compiles
Xamarin.iOS compiles c# source code against a special subset of the mono framework. This cut down version of the mono framework includes additional libraries which allow access to iOS platform specific features. The Xamarin.iOS compiler, smsc, takes source code and compiles it into an intermediate language, ECMA CIL (common intermediate language), however it does not produce ECMA ABI compatible binaries unlike the normal mono compiler, gmcs or dmsc. This means any 3rd party .Net libraries you want to include in your application will need to be recompiled against the Xamarin.iOS subset of the mono framework using smsc.
Xamarin.iOS application Compiling
Once a Xamarin.iOS application has been compiled into CIL it needs to be compiled again into native machine code that can run on an iOS device. This process is carried out by the SDK tool ‘mtouch’, the result of which is an application bundle that can be deployed to either the iOS simulator or an actual iOS device, such as an iPhone or iPad.
Due to restrictions placed by Apple, the iOS kernel will not allow programs to generate code at runtime. This restriction has severe implications for software systems that run inside a virtual machine using just-in-time compilation. Just-in-time compilation takes the intermediate code, for example mono CIL and compiles it at runtime into machine code. This machine code is compatible for the device it is running on at the time of execution.
To work around this restriction the mtouch tool compiles the CIL ahead of time. A process that the mono team describe as AOT, ahead of time compilation.
What is smsc? is a mono compiler for .net
What is mtouch?
Toolbox Panel
On the left-hand side of the window, the toolbox panel displays all of the available user interface controls. For example button, label Page Control and Controllers and Object like Navigation Controller.
Property Panel
Immediately below the toolbox is the properties panel, which displays all of the configurable attributes of the selected control
Storyboard File
Is where we design our UI, UI flow, Controls.
Controller
Is where we have our code behind, handle events, etc..
App Delegate
This is where we setup global events, hooks into the devices events, and more.
Model View Controller (MVC) is one of the building blocks of Cocoa and is undoubtedly the most-used design pattern of all. It classifies objects according to their general role in your application and encourages clean separation of code based on role.
The three roles are:
Model: The object that holds your application data and defines how to manipulate it. For example, in your application the Model is your Album class.
View: The objects that are in charge of the visual representation of the Model and the controls the user can interact with; basically, all the UIViews and their subclasses. In your application the View is represented by your AlbumView class.
Controller: The controller is the mediator that coordinates all the work. It accesses the data from the model and displays it with the views, listens to events and manipulates the data as necessary. Can you guess which class is your controller? That’s right: ViewController.
Basically your Mobile Application will be using the Office 365 SDK via the PCL packages to access Azure Active Directory Single Sign-on (Oauth 2.0) to access Office 365, and any resource which you the Azure AD is configure.
This is great for a few reason, you and I don’t have to write all the Authentication code between Azure AD and SharePoint, we just need to master the SDK and have basic konwledged off Azure AD.
However you need to have a solid understanding of Oauth and more..
Quick look at what packages are require to use the Office 365 SDK for iOS.
Notice that these packages are mostly prerelease.
The View
The View layer is the user interface of your application which mainly consisted of layout and user interface controls written in XAML markup. The View layer often includes resources that required in the user interface, such as data templates and styles.
The Model
The Model layer refers to the entities, business objects, data source, proxy objects and other repositories available in your application. The Model should be designed in a way that it does not know the existence of the View or the ViewModel. This means that the model should not access, reference or interact directly with the ViewModel or the View.
The ViewModel
The ViewModel layer describes the user interaction logic of the view by exposing the properties such as commands, observable commands and selection objects that can be bound from the view. In most cases, the ViewModel encapsulates the Model and expose it as properties that can be referenced from the View. The ViewModel also contains methods that perform validation and certain business logic which is invoked by the command initiated from the View. Note that the ViewModel should be designed in a way that it does not know the existence of the View. This means that the ViewModel should not access, reference or interact directly with the View.
The benefits, examples and walkthroughs of using MVVM pattern with the ClientUI framework and controls are explained later in this topic.
Why Use MVVM?
In short, the Model-View-ViewModel pattern is a simple and effective set of guidelines for designing and implementing a Silverlight/WPF application. It allows you to create a strong separation between data, behavior, and presentation, making it easier to control the software development process primarily on the user interface engineering.
The MVVM pattern introduces a number of advantages over the classic ViewModel pattern, such as:
Loosely coupled architecture. The MVVM pattern promotes a design pattern that emphasizes the separation of concerns between view, user interaction logic, behaviors and model. Applications built with such loosely coupled architecture often result in rock-solid stability with less issues.
Maintainable and extensible code. With MVVM pattern, your code is more maintainable and easy to extend. This is made possible because your project is generally separated into layers thus enables you to enhance specific parts without affecting the others.
Testable code. The MVVM pattern allows your code to be consistently tested through unit testing. It is possible to unit test only certain functions in the layers, thanks to the great separation concept introduced by MVVM.
Manageable development process. With the UI (View) separated from the user interaction logic, designers can focus on the user interface and experience aspects of the application, while developers can focus on the model, entities and business logic in a parallel work stream.
https://testcloud.xamarin.com/devices
https://testcloud.xamarin.com/devices
This is my current development environment which is a MacBook Pro as the build machine hosting Xamarin Studio used for generating iOS Apps. Also the Mac is running Parallel as the VM software running Windows 2012 with SharePoint 2013. On the right is a Dell laptop running Window 7 with Visual Studio 2013 with Xamarin Studio IDE integration.
It is important to know that my MacBook memory is consistency max out during the SharePoint Mobile App development. So it is essentially just a build machine, however during normal App development one Mac can support other windows IDE development.
Note: the version of Xamarin Studio is important that both machine have the same version in-order the IDE integration works.
Note: Besides the Software licensing need to run SharePoint(Which this user group is well aware of) below are my challeges to setting my development environment.Development Challenges
Mac as the Build Machine Hardware
Need lots of memory to run SharePoint 2013 Server
Good CPU
Disks Space
Latest software Parallel to run Windows 2012 Server
Network setup requirement (The network device is not shared we need a IP address for SharePoint and one for Xamarin iOS Host)
Windows 2012 server on Network Card
Mac OS on Wife Card
Xamarin iOS for Visual Studio
Xamarin iOS for Visual Studio accomplishes an amazing feat: it lets you create, build and debug iOS applications on a Windows computer using the Visual Studio IDE. It cannot do this alone, however - iOS applications cannot be created without Apple’s compiler, and they cannot be deployed without Apple’s certificates and code-signing tools. This means that your Xamarin iOS for Visual Studio installation requires a connection to a networked Mac OS-X computer to perform these tasks for you. Once configured, Xamarin’s tools will make the process as seamless as possible.
Starting with Xamarin.iOS 4.0, there are two code generation backends to Xamarin.iOS. The regular Mono code generation engine and one based on the LLVM Optimizing Compiler. Each engine has its pros and cons.
Typically, during the development process, you will likely use the Mono code generation engine as it will let you iterate quickly. For release builds and AppStore deployment, you will want to switch to the LLVM code generation engine.
I want to share with my Mac SharePoint setup and Xamarin Host, it can get messing setting up because Xamarin IDE integration requires a connection to the Mac Xamarin Hosted services including connection to the SharePoint environment hosted in VM software. What worked for me is a dedicated IP for both the Wi-Fi
Note: it is just to illustrate the network setup you still need the wi-fi wireless router.