{"id":73,"date":"2014-11-30T19:04:00","date_gmt":"2014-11-30T19:04:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/cesardelatorre\/2014\/11\/30\/myshuttle-biz-demo-apps-from-connect-visual-studio-and-azure-event\/"},"modified":"2014-11-30T19:04:00","modified_gmt":"2014-11-30T19:04:00","slug":"myshuttle-biz-demo-apps-from-connect-visual-studio-and-azure-event","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/myshuttle-biz-demo-apps-from-connect-visual-studio-and-azure-event\/","title":{"rendered":"MyShuttle.biz demo apps from Connect(); Visual Studio and Azure event"},"content":{"rendered":"<p><a href=\"https:\/\/channel9.msdn.com\/Events\/Visual-Studio\/Connect-event-2014\"><img decoding=\"async\" style=\"margin-left: 0px;margin-right: 0px\" title=\"clip_image001\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/6622.clip_image001_69299684.jpg\" alt=\"clip_image001\" width=\"530\" height=\"140\" align=\"left\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>[**NEW!! &#8211; Updated on March 2015 &#8211; Compatible with VS 2015 CTP 6 **]<\/p>\n<p>This is the first blog post of a series of posts regarding the <strong>MYSHUTTLE.biz<\/strong> sample applications implemented with the new <strong>Visual Studio 2015<\/strong> <strong>Preview<\/strong> and <strong>.NET 2015 Preview<\/strong>.<\/p>\n<p>Here&rsquo;s the list of blog posts:<\/p>\n<p><em><a href=\"http:\/\/blogs.msdn.com\/b\/cesardelatorre\/archive\/2014\/11\/30\/myshuttle-biz-demo-apps-from-connect-visual-studio-and-azure-event.aspx\"><strong>1. (Current blog post) Global Intro of the MyShuttle.biz demo apps from Connect(); Visual Studio and Azure event<\/strong><\/a><\/em><\/p>\n<p><em><a href=\"http:\/\/blogs.msdn.com\/b\/cesardelatorre\/archive\/2014\/11\/21\/myshuttle-biz-asp-net-5-demos.aspx\"><strong>2. Blog Post: MyShuttle.biz ASP.NET 5 Web Apps and Services<\/strong><\/a><\/em><\/p>\n<p><em><a href=\"http:\/\/blogs.msdn.com\/b\/cesardelatorre\/archive\/2014\/11\/30\/myshuttle-biz-and-cross-platform-mobile-development-of-native-apps-for-ios-android-and-windows-with-net-and-xamarin.aspx\"><strong>3. Blog Post: MyShuttle.biz and Cross-platform Mobile Development of native apps for iOS, Android and Windows with .NET and Xamarin<\/strong><\/a><\/em><\/p>\n<p><em><a href=\"http:\/\/blogs.msdn.com\/b\/cesardelatorre\/archive\/2014\/11\/30\/myshuttle-biz-and-multi-device-development-of-hybrid-apps-for-ios-android-and-windows-with-visual-studio-tools-for-apache-cordova.aspx\"><strong>4. Blog Post: MyShuttle.biz and multi device development of hybrid apps for iOS, Android and Windows with Visual Studio Tools for Apache Cordova<\/strong><\/a><\/em><\/p>\n<p><em><strong><em><a href=\"http:\/\/blogs.msdn.com\/b\/cesardelatorre\/archive\/2014\/12\/10\/myshuttle-biz-azure-backend-services-and-lob-integration-to-o365-and-salesforce.aspx\"><strong>5. Blog post: MyShuttle.biz Azure backend integration with LOB services (Invoicing, O365 API and SalesForce API)<\/strong><\/a><\/em><\/strong><\/em><\/p>\n<p>As part of the <strong><a href=\"https:\/\/channel9.msdn.com\/Events\/Visual-Studio\/Connect-event-2014\">Connect(); Visual Studio and Azure event<\/a><\/strong> delivered at NYC and online on Nov 12th 2014 (check the keynotes and sessions thru <strong>Channel9<\/strong>&nbsp;<a href=\"https:\/\/channel9.msdn.com\/Events\/Visual-Studio\/Connect-event-2014\">here<\/a>), we were working since late summer on a end-to-end scenario based on a set of comprehensive demo apps to showcase at this event.<\/p>\n<p>We called that fictitious business application <strong>MyShuttle.biz<\/strong>. We even created a logo for this solution! \ud83d\ude42<\/p>\n<p>I&rsquo;ll explain the Business Domain later on, so you know what the apps are about. But the main idea is about a highly scalable multitenant B2B solution for carriers and enterprise customers. Kind of an &ldquo;Uber like&rdquo; but enterprise-only app\/system.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/3021.image_6602FEC3.png\"><img decoding=\"async\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/6661.image_thumb_550A2107.png\" alt=\"image\" width=\"274\" height=\"59\" border=\"0\" \/><\/a><\/p>\n<p>In this case, the business domain is just a channel we need in order to explain the different Microsoft development technologies provided under <strong>Visual Studio 2015<\/strong> and <strong>.NET 2015<\/strong>. The theme or business domain could have been any other business domain. We just wanted a familiar and easy to follow domain.<\/p>\n<p>You can see a live intro to the domain and the apps working together (push notifications between the apps, etc.) in <a href=\"https:\/\/channel9.msdn.com\/Events\/Visual-Studio\/Connect-event-2014\/011\">ScottGu&rsquo;s kenote with Nicole&rsquo;s demos at Connect(); event<\/a> (<strong>MINUTE 12:00 of that keynote<\/strong>).<\/p>\n<h2>The technologies<\/h2>\n<p>These demos span across all the different new technologies being presented at this event under the <strong>.NET 2015<\/strong> Preview and <strong>Visual Studio 2015<\/strong> Preview umbrellas.<\/p>\n<p>Because these demos use all the different development technologies for different contexts, I&rsquo;ll write different blog posts focusing on each context. This is just the ALL UP intro to the MyShuttle.biz demo apps.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/3377.image_0DB4CB15.png\"><img decoding=\"async\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/0638.image_thumb_3482E155.png\" alt=\"image\" width=\"692\" height=\"385\" border=\"0\" \/><\/a><\/p>\n<p>Basically, it covers the following technologies all within a single business solution with many different apps and services connected between them:<\/p>\n<h2>Web applications<\/h2>\n<blockquote>\n<p>&#8211; <strong>ASP.NET 5 MVC<\/strong> site (part of the new <strong>.NET 2015<\/strong> wave)<\/p>\n<p>&#8211; <strong>SPA<\/strong> (Single Page Application) using <strong>Angular.js<\/strong>, <strong>jQuery<\/strong>, <strong>bootstrap<\/strong> and consuming our <strong>ASP.NET 5 Web API<\/strong> Services (part of the new <strong>.NET 2015 <\/strong>wave)<\/p>\n<p>&#8211; Support for <strong>Bower<\/strong>, <strong>NPM<\/strong> and <strong>Grunt <\/strong>in VS 2015 Preview Tooling<\/p>\n<\/blockquote>\n<h2>Services, Azure, middleware and LOB integration<\/h2>\n<blockquote>\n<p>&#8211; <strong>ASP.NET 5 Web API<\/strong> services (part of the new <strong>.NET 2015<\/strong> wave)<\/p>\n<p>&#8211; <strong>ASP.NET 5 SignalR (<\/strong>part of the new <strong>.NET 2015 <\/strong>wave<strong>)<\/strong><\/p>\n<p>&#8211; Azure <strong>Web Sites<\/strong><\/p>\n<p>&#8211; Azure <strong>Mobile Service<\/strong> (Web API)<\/p>\n<p>&#8211; Azure <strong>Web Job<\/strong><\/p>\n<p>&#8211; Azure<strong> Push Notifications Hub<\/strong><\/p>\n<p>&#8211; <strong>Entity Framework 7<\/strong><\/p>\n<p><strong>&#8211; Connected Services: O365 API <\/strong>and <strong>SalesForce API<\/strong><\/p>\n<\/blockquote>\n<h2>Cross-platform Mobile apps<\/h2>\n<blockquote>\n<p>&#8211; <strong>Universal Windows apps<\/strong> in <strong>C#<\/strong> (<strong>Windows Phone<\/strong> app and <strong>Windows Store<\/strong> app)<\/p>\n<p>&#8211; <strong>Xamarin<\/strong> C# apps (<strong>iOS<\/strong> app and <strong>Android<\/strong> app)<\/p>\n<p>&#8211; <strong>Cordova<\/strong> HTML\/JS <strong>Hybrid<\/strong> app (for <strong>Android<\/strong>, <strong>iOS<\/strong> and <strong>Windows Phone<\/strong>)<\/p>\n<\/blockquote>\n<h2>IoT devices and Cloud Services for IoT<\/h2>\n<blockquote>\n<p>&#8211; <strong>.NET Micro Framework<\/strong> client programs running on <strong>GHI FEZ Raptor board<\/strong> with many different <strong>IoT sensors<\/strong> (accelerometer, GPS, Compas, etc.)<\/p>\n<p>&#8211; Azure services (like <strong>Azure Events Hub<\/strong>) gathering massive amounts of IoT events<\/p>\n<\/blockquote>\n<h2>Big Data and Cloud processes<\/h2>\n<blockquote>\n<p>&#8211; <strong>HDInsight<\/strong> (<strong>Hadoop<\/strong> in Azure)<\/p>\n<p>&#8211; <strong>Azure Machine Learning<\/strong><\/p>\n<p><strong>&#8211; Power Map<\/strong> and <strong>Power Query<\/strong><\/p>\n<\/blockquote>\n<p>If you want to have an introduction to &ldquo;<a href=\"http:\/\/blogs.msdn.com\/b\/cesardelatorre\/archive\/2014\/11\/18\/what-is-net-core-5-and-asp-net-5-within-net-2015-preview.aspx\">What is ASP.NET 5 and .NET Core 5 within .NET 2015<\/a><em><strong><\/strong><\/em>&rdquo;, check <a href=\"http:\/\/blogs.msdn.com\/b\/cesardelatorre\/archive\/2014\/11\/18\/what-is-net-core-5-and-asp-net-5-within-net-2015-preview.aspx\">this blog post<\/a> that I published a few days ago. With that info, you should be able to position the different .NET technologies that we&rsquo;re using wthin this set of demo applications.<\/p>\n<h2>The Business Domain<\/h2>\n<p><em>MyShuttle is a B2B highly scalable multitenant SaaS solution that targets corporate scenarios in which carrier companies offer transport services to enterprise customers.<\/em><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/1727.image_093E4A4E.png\"><img decoding=\"async\" style=\"float: none;margin-left: auto;margin-right: auto\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/2388.image_thumb_021F0DD6.png\" alt=\"image\" width=\"608\" height=\"238\" border=\"0\" \/><\/a><\/p>\n<p>So this multi-tenant SaaS system would allow any number of carrier companies who must be syndicated with the system, to provide their services (cabs\/shuttles) directly to any number of customers enterprises\/companies who would also be registered in the MyShuttle.biz system. The final outcome? any employee in those customer companies would be able to request a cab\/shuttle at any time in any place\/city without worrying about how to pay. Everything would take place underneath between their company and the carrier company for that ride. That&rsquo;s kind of the idea for the business domain.<\/p>\n<h2>The scenarios<\/h2>\n<h2>Mobile First and Cloud First<\/h2>\n<p>The global scenario is described in the following image (although we&rsquo;re not taking into account the IoT and Big Data scenarios in there. IoT and Big data scenarios are described in the next section).<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/4477.image_0FF153D1.png\"><img decoding=\"async\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/5556.image_thumb_36BF6A11.png\" alt=\"image\" width=\"857\" height=\"484\" border=\"0\" \/><\/a><\/p>\n<p>In this diagram we have quite a few scenarios, but all are inter-connected between them thru Services in the cloud. We have web apps implemented using the brand new ASP.NET 5 (&ldquo;Project K&rdquo;), either MVC, Web API Services and even SignalR. Then we also have native mobile apps for the customers (based on C#, either .NET as Universal Windows apps or Xamarin native apps for iOS and Android). We also have a simpler mobile hybrid app implemented with Cordova (HTML\/JS) and using the VS 2015 tooling for Cordova, a WPF desktop app and finally we&rsquo;re integrating our processes (invoices) with LOB systems, thru VS Connected Services, like using O365 API and using SharePoint libraries as repository of .PDF invoices or using Salesforce API to upload customer&rsquo;s data into the CRM.<\/p>\n<h2>IoT and Big Data<\/h2>\n<p>The second big scenario is about IoT devices connected to the cloud (Azure services) in order to gather massive amounts of IoT events coming from sensors. For instance, we could have a small board placed in the vehicles\/cabs, with sensors attached to it like accelerometer, compass, GPS, or alarms coming from the engine regarding fuel level, breakouts or even accidents! Once we have that data in the cloud, we can analyze and learn about it with Azure Machine Learning and going further with Big Data analysis based on HDInsight (Hadoop in Azure). This is how this second scenario looks like from a high level point of view:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/8203.image_0B7AD30A.png\"><img decoding=\"async\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/0763.image_thumb_3248E94A.png\" alt=\"image\" width=\"847\" height=\"475\" border=\"0\" \/><\/a><\/p>\n<p><strong>IMPORTANT NOTE<\/strong>: The demo apps and code for this second scenario (IoT and Big Data) will be available a few weeks later than the &ldquo;Mobile First, Cloud First apps&rdquo;. In this case (IoT and Big Data) we&rsquo;re planning to publish it in late January or early February 2015 since we need to make major adjustments in the Azure backend.<\/p>\n<p>So let&rsquo;s start with the first part of, the web applications based on the brand new <strong>ASP.NET 5<\/strong>.<\/p>\n<h2>Public Web Site &ndash; ASP.NET 5 MVC<\/h2>\n<p>As my next blog post within this blog series, I will publish a specific blog post about ASP.NET 5 and MyShuttle.biz, so drilling down into technical details of this web site and the SPA web application. (<a href=\"http:\/\/blogs.msdn.com\/b\/cesardelatorre\/archive\/2014\/12\/01\/myshuttle-biz-asp-net-5-demos.aspx\">Blog Post on Deep dive about the MyShuttle.biz ASP.NET 5 web Apps and Services<\/a><strong><\/strong>).<\/p>\n<p>This is a typical public web site. It&rsquo;s main purpose is to show information about the business but in a pretty modern and clean way.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/6457.image_2B29ACD2.png\"><img decoding=\"async\" style=\"float: none;margin-left: auto;margin-right: auto\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/3718.image_thumb_51F7C312.png\" alt=\"image\" width=\"647\" height=\"567\" border=\"0\" \/><\/a>If you scroll down, you can see how it provides a responsive design and even if you resize the browser, you can see how it would also be perfectly valid for mobile devices, like a smart phone:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/7127.image_26B32C0B.png\"><img decoding=\"async\" style=\"float: none;margin-left: auto;margin-right: auto\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/7140.image_thumb_6610DF9B.png\" alt=\"image\" width=\"574\" height=\"403\" border=\"0\" \/><\/a><\/p>\n<p>I&rsquo;m not going to get into details now, but in the <a href=\"http:\/\/blogs.msdn.com\/b\/cesardelatorre\/archive\/2014\/12\/01\/myshuttle-biz-asp-net-5-demos.aspx\">deeper blog post about the MyShuttle.biz ASP.NET web apps<\/a>, I&rsquo;ll show how you can now take advantage of VS 2015 and make use of front-end web development frameworks and tools for JavaScript, HTML and CSS, like <strong>Bower<\/strong>, <strong>NPM<\/strong>, <strong>Grunt<\/strong> and <strong>Gulp<\/strong>, all of them integrated within Visual Studio 2015. At the same time, I will drill-down into the new features we now have in <strong>ASP.NET 5<\/strong> and <strong>.NET Core 5<\/strong>. A lot of stuff, this is a new world, I tell you!<\/p>\n<h2>Private Web App &ndash; SPA (Single Page Application) Angular.js, jQuery, ASP.NET 5 Web API<\/h2>\n<p>The second application is a Web SPA which you can access by login in from the public web site. But it is in reality like a different web application, simulating a private web application especially made for the Carriers&rsquo; administrators. In this case, this application is a data-driven and CRUD app so you can create and update info about your drivers, vehicles, etc.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/2843.image_21D0784F.png\"><img decoding=\"async\" style=\"float: none;margin-left: auto;margin-right: auto\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/3252.image_thumb_33AD0C1C.png\" alt=\"image\" width=\"598\" height=\"386\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp; <a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/8551.image_3655C7CD.png\"><img decoding=\"async\" style=\"float: none;margin-left: auto;margin-right: auto\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/2287.image_thumb_2F368B55.png\" alt=\"image\" width=\"607\" height=\"555\" border=\"0\" \/><\/a><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/5824.image_03F1F44E.png\"><img decoding=\"async\" style=\"float: none;margin-left: auto;margin-right: auto\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/2703.image_thumb_7CD2B7D5.png\" alt=\"image\" width=\"608\" height=\"382\" border=\"0\" \/><\/a><\/p>\n<p>Underneath, it is making heavy use of <strong>JavaScript<\/strong>, <strong>Angular.js<\/strong>, <strong>jQuery, LESS <\/strong>and<strong> Bootstrap<\/strong> and consuming the <strong>ASP.NET 5 Web API<\/strong> Services that you can have published as <strong>Azure Web Sites<\/strong> or, of course, in any <strong>ISS<\/strong> or even testing it in your local dev web server in Visual Studio. The Web API Services are also using the new <strong>Entity Framework 7<\/strong>.<\/p>\n<p>Thanks to ASP.NET 5, .NET Core 5 and .NET Compiler Platform (&ldquo;Roslyn&rdquo;) you can develop and run ASP.NET applications in a Mac or Linux. Microsoft is also helping the community to build plugins for Sublime Text editor and Emacs, so you can have extended features like C# and ASP.NET Intellisense and refactoring tasks right within those editors. That will allow Mac, Linux and Windows web developers to work together on the same ASP.NET web projects.<\/p>\n<p>The <strong>MyShuttle.biz<\/strong> web applications (public Web Site and SPA web app) have been tested in a <strong>Mac<\/strong> running on top of <strong>Mono<\/strong> and <strong>Kestrel<\/strong> (web server).<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/7776.image_4C130228.png\"><img decoding=\"async\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/7608.image_thumb_076667E7.png\" alt=\"image\" width=\"228\" height=\"171\" border=\"0\" \/><\/a>&nbsp;&nbsp; <a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/4555.image_1538ADE2.png\"><img decoding=\"async\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/2402.image_thumb_602C1EB1.png\" alt=\"image\" width=\"308\" height=\"174\" border=\"0\" \/><\/a><\/p>\n<p>Again, for deeper technical details about this app and the <strong>ASP.NET 5 Web API Services<\/strong> it is consuming, and all the new thing you have about it in <strong>Visual Studio 2015<\/strong> (new way of working with <strong>References<\/strong>, <strong>NuGet<\/strong> packages, <strong>.NET Core 5<\/strong> framework running <strong>side by side<\/strong>, etc.), check <a href=\"http:\/\/blogs.msdn.com\/b\/cesardelatorre\/archive\/2014\/11\/18\/what-is-net-core-5-and-asp-net-5-within-net-2015-preview.aspx\">my blog post about it<\/a>.<\/p>\n<p>You can also check the recorded keynote from <strong>Scott Hanselman<\/strong> at the Connect(); event in order to get a high level overview of this content, as he was using these demos that we created especially for this event: <a href=\"https:\/\/channel9.msdn.com\/Events\/Visual-Studio\/Connect-event-2014\/014\">Cloud development with Azure and Visual Studio keynote<\/a> (First demos in this keynote)<\/p>\n<p>&nbsp;<\/p>\n<h2>LOB integration with VS Connected Services, Azure, O365 API and SalesForce API<\/h2>\n<p>The <strong>MyShuttle.biz<\/strong> applications provide a <strong>LOB<\/strong> <strong>integration<\/strong> <strong>scenario<\/strong> which is triggered from the driver&rsquo;s app (<strong>Cordova app<\/strong> running on any Smartphone). This app will generate the data related to a single ride that is required to create an invoice (ride&rsquo;s cost, customer data, customer&rsquo;s signature, etc.). That data is submitted to the cloud (<strong>Azure Mobile Service<\/strong>) and from there it triggers several actions. On one hand, by using <a href=\"https:\/\/visualstudiogallery.msdn.microsoft.com\/b088ccf4-d889-4464-b222-2475da655c96\"><strong>Salesforce REST API<\/strong><\/a> it will upload the customer&rsquo;s data to a Salesforce CRM, and on the other hand, an asynchronous process based on <strong>Azure Queues<\/strong> and an <strong>Azure WebJob<\/strong> that will generate a <strong>.PDF<\/strong> with the invoice data and finally that .PDF will be uploaded to a SharePoint library in an Office 365 site thru the <strong>O365 API<\/strong>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/3173.image_55029467.png\"><img decoding=\"async\" style=\"float: none;margin-left: auto;margin-right: auto\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/1447.image_thumb_4DE357EF.png\" alt=\"image\" width=\"728\" height=\"565\" border=\"0\" \/><\/a><\/p>\n<p>Either the O365 API and <a href=\"https:\/\/visualstudiogallery.msdn.microsoft.com\/b088ccf4-d889-4464-b222-2475da655c96\">Salesforce REST API<\/a> code\/references are provided in an easy to get started way by the new &ldquo;<strong>Add Connected Services<\/strong>&rdquo; in Visual Studio.<\/p>\n<p>The Connected Services is, at the end of the day, like a API catalog that provides references and code, that you have right into VS, so you don&rsquo;t need to research in the Internet for &ldquo;HOW TOs&rdquo;.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/8304.image_74B16E2F.png\"><img decoding=\"async\" style=\"float: none;margin-left: auto;margin-right: auto\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/2746.image_thumb_6987E3E5.png\" alt=\"image\" width=\"533\" height=\"253\" border=\"0\" \/><\/a><\/p>\n<p>For deeper details about this demo (Azure WebJobs, Connected Services and the whole scenario you can see above) Check this blog post:<\/p>\n<p><a href=\"http:\/\/blogs.msdn.com\/b\/cesardelatorre\/archive\/2014\/12\/01\/myshuttle-biz-asp-net-5-demos.aspx\"><strong>Blog post: MyShuttle.biz ASP.NET 5 Web Apps and Services<\/strong><\/a><\/p>\n<p>You can also check the recorded keynote from <strong>Scott Hanselman<\/strong> at the Connect(); event in order to get a high level overview of the LOB integration demo highlighted above, as he was using these demos that we created especially for this event:<\/p>\n<p><a href=\"https:\/\/channel9.msdn.com\/Events\/Visual-Studio\/Connect-event-2014\/014\">Cloud development with Azure and Visual Studio keynote<\/a> (<strong>MINUTE 27:41 until MINUTE 33:30<\/strong>)<\/p>\n<h2>Cross-platform mobile development for native apps: C#, .NET, Xamarin and C++<\/h2>\n<p>Next scenario is about the customer apps, so the enterprise employees using their mobile phones to request a shuttle\/cab or the customer-admin using a Windows tablet (either Windows 8.1, Windows RT or Windows 10) in order to analyze his employees&rsquo; rides, expenses and even .PDF invoices by querying the SharePoint library thru the new O365 API.<\/p>\n<p>In this case (scenario for end customers) you want to have the best user experience for the mobile app users, so you&rsquo;d probably will want to create native mobile apps that can fully access all the device&rsquo;s capabilities and provide the best performance. One choice is to invest a lot for each OS, like iOS-ObjectiveC\/Swift, Android-Java, Windows-.NET or the best way to achieve a great ROI is to bet on a good cross-platform but native approach, like using C# (.NET + Xamarin) and target the three different OS platforms (iOS, Android, Windows) at once.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/1220.image_187743CC.png\"><img decoding=\"async\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/8475.image_thumb_713CFA96.png\" alt=\"image\" width=\"690\" height=\"664\" border=\"0\" \/><\/a><\/p>\n<p>Using <strong>C#<\/strong> thru <strong>.NET<\/strong> and <strong>Xamarin<\/strong> you can reuse around 80% of your client code (like we did, reusing <strong>ViewModels<\/strong> based on <strong>MVVMCross<\/strong> framework or re-using Service Agents and other client app logic based on <strong>Portable Class Libraries<\/strong>) but having the possibility to customize the end user experience according to the different styles and design guides from each OS platform. Usually you&rsquo;d want a clearly different design for <strong>Windows Phone<\/strong> apps, <strong>iOS<\/strong> apps or <strong>Android<\/strong> apps, since the look and feel of each environment is different, as you can tell when looking the above snapshot with our apps.<\/p>\n<p>Because we are making use of <strong>PCL<\/strong> (Portable Class Libraries) a large percentage of the C# client code is also reused by the &ldquo;<strong>Tablet<\/strong>&rdquo; <strong>Windows Store App<\/strong> (shown above) and even our <strong>WPF<\/strong> desktop app, not just between the phone apps. At the end of the day, you can share <strong>C#<\/strong> code and PCL libraries between any device\/machine that can run <strong>.NET<\/strong> or <strong>Xamarin<\/strong> (or ASP.NET 5 and Mono if talking about the server side).<\/p>\n<p>Something new Microsoft is releasing about native apps and cross-platform, as well, is the new <strong>Visual C++ for Cross Platform Mobile Development<\/strong>. In this case, we created a cross-platform <strong>C++ library<\/strong> implementing an <strong>OpenGL<\/strong> transition that runs within the <strong>Android Xamarin app<\/strong>. Check the following link for more details about <strong><a href=\"http:\/\/blogs.msdn.com\/b\/vcblog\/archive\/2014\/11\/12\/cross-platform-mobile-development-with-visual-c.aspx\">Visual C++ for Cross Platform Mobile Development.<\/a><\/strong><\/p>\n<p>Again, you can see deeper technical details in this blog post focusing just about the C# Native apps and Cross-Platform Mobile, here:<\/p>\n<p><a href=\"http:\/\/blogs.msdn.com\/b\/cesardelatorre\/archive\/2014\/11\/30\/myshuttle-biz-and-cross-platform-mobile-development-of-native-apps-for-ios-android-and-windows-with-net-and-xamarin.aspx\"><strong>Deep dive on MyShuttle native mobile Apps powered by C# Cross-Platform-mobile development<\/strong><\/a><strong>.<\/strong><\/p>\n<p>You can also check the recorded keynote from <strong>Amanda Silver<\/strong> at the Connect(); event in order to get a high level overview of this content, as she was using these demos that we created especially for this event: <a href=\"https:\/\/channel9.msdn.com\/Events\/Visual-Studio\/Connect-event-2014\/012\">Visual Studio in a world of multiple devices<\/a> (<strong>MINUTE 35:20<\/strong> of that keynote)<\/p>\n<p>&nbsp;<\/p>\n<h2>Hybrid mobile apps: VS 2015 Tooling for Apache Cordova, HTML and JavaScript<\/h2>\n<p>Next scenario is about the driver app, so the drivers from each carrier can accept the ride requests from the customers. In this case, and since this application is simpler and you might not care so much about a personalized user experience per device, you might want to create the mobile app as a <strong>Hybrid app<\/strong> by using <strong>HTML\/JS<\/strong> under a container like <strong>Apache Cordova<\/strong>, so it can access native capabilities of the device, like GPS, photo-camera or any other feature thru the Cordova plugins. This is what we developed for the driver&rsquo;s app, by using <strong>Visual Studio 2015 Tools for Apache Cordova<\/strong>.<\/p>\n<p><strong>Cordova<\/strong> allows you to leverage your existing web developer skills (HTML\/JS), assets and processes as a web developer to build mobile apps for iOS, Android and Windows. Your apps will not only have access to native device capabilities&nbsp; (e.g. camera) through a common JS API, but also a rich array of custom plugins to add better-than-native functionality (e.g. turn the camera into a barcode scanner).<\/p>\n<p>VS helps you build and maintain a healthy, well-configured dev environment by installing all the 3rd party dependencies you need for multi-device development locally. Even better, when a new version of any dependency in the tool chain is released, our team tests it for compatibility and notifies you when it&rsquo;s safe to update.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/4380.image_25DD56D2.png\"><img decoding=\"async\" style=\"float: none;margin-left: auto;margin-right: auto\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/5873.image_thumb_334369D8.png\" alt=\"image\" width=\"564\" height=\"501\" border=\"0\" \/><\/a><\/p>\n<p>In this case you can notice how the app is exactly the same running on the different OS, as it is 100% the same. The Pros are that you might get a fastest way to target the different platforms if you have a skilled team in <strong>JavaScript<\/strong> or <strong>TypeScript<\/strong>. The Cons are that you won&rsquo;t get the same level of performance than when developing native apps (like when using C#, .NET, Xamarin and C++). But the point is that you gotta think about what is good enough for your specific scenario or application.<\/p>\n<p>Again, you can see deeper technical details in this blog post focusing just about the MyShuttle.ord driver app created with <strong>Visual Studio 2015 Tools for Apache Cordova<\/strong>, here:<\/p>\n<p>(<strong>TBD &ndash; Link to Deep dive on MyShuttle hybrid mobile App powered by Visual Studio Tools for Apache Cordova<\/strong>).<\/p>\n<p>&nbsp;<\/p>\n<h2>IoT and Big Data<\/h2>\n<p>Since the code for <strong>IoT<\/strong> and <strong>Big Data<\/strong> demos of MyShuttle.biz will be available in a few weeks (January\/February 2015), I won&rsquo;t provide details about it until then.<\/p>\n<p>For now, you can take a look to Scott Hanselman&rsquo;s keynote, at the section where we show our vision about IoT and Big Data for the MyShuttle.biz scenario:<\/p>\n<p><a href=\"https:\/\/channel9.msdn.com\/Events\/Visual-Studio\/Connect-event-2014\/014\">Cloud development with Azure and Visual Studio<\/a> &ndash; (<strong>MINUTE 33:35<\/strong>)<\/p>\n<p><strong>IoT devices with .NET MF<\/strong><\/p>\n<p>&nbsp; <a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/2642.image_67E3C613.png\"><img decoding=\"async\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/3323.image_thumb_559AFF51.png\" alt=\"image\" width=\"150\" height=\"244\" border=\"0\" \/><\/a> <a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/6787.image_208E7021.png\"><img decoding=\"async\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/1581.image_thumb_552ECC5C.png\" alt=\"image\" width=\"458\" height=\"242\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<table style=\"width: 400px\" border=\"0\" cellspacing=\"0\" cellpadding=\"2\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"133\"><strong>HDInsight Tooling in VS<\/strong><\/td>\n<td valign=\"top\" width=\"133\">&nbsp;<\/td>\n<td valign=\"top\" width=\"133\"><strong>Power Map<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"133\"><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/2161.image_7BFCE29C.png\"><img decoding=\"async\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/3162.image_thumb_5BE1D5DF.png\" alt=\"image\" width=\"220\" height=\"196\" border=\"0\" \/><\/a><\/td>\n<td valign=\"top\" width=\"133\">&nbsp;<\/td>\n<td valign=\"top\" width=\"133\"><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/0116.image_0C0BB154.png\"><img decoding=\"async\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/1425.image_thumb_04EC74DC.png\" alt=\"image\" width=\"206\" height=\"196\" border=\"0\" \/><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp; <strong>Azure Machine Learning<\/strong><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/0028.image_576B5518.png\"><img decoding=\"async\" title=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/6470.image_thumb_7E396B58.png\" alt=\"image\" width=\"275\" height=\"194\" border=\"0\" \/><\/a><\/p>\n<p>These are just a few screenshots of what will publish in a few weeks (the IoT and Big Data demos), as mentioned above.<\/p>\n<p>In the meantime, we&rsquo;re providing a bunch of demos related to the rest of the scenarios (Web, Cloud, Native Mobile apps, Hybrid Mobile apps and LOB integration) and you can get deeper details in the links provided at the beginning of this blog post.<\/p>\n<h2>Download the code!<\/h2>\n<p>You can grab the code from <a href=\"https:\/\/code.msdn.microsoft.com\/MyShuttle-demo-applications-1a4b68fe\"><strong>here<\/strong><\/a>, at MSDN Samples.<\/p>\n<p>Enjoy! \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [**NEW!! &#8211; Updated on March 2015 &#8211; Compatible with VS 2015 CTP 6 **] This is the first blog post of a series of posts regarding the MYSHUTTLE.biz sample applications implemented with the new Visual Studio 2015 Preview and .NET 2015 Preview. Here&rsquo;s the list of blog posts: 1. (Current [&hellip;]<\/p>\n","protected":false},"author":362,"featured_media":12806,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-73","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cesardelatorre"],"acf":[],"blog_post_summary":"<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [**NEW!! &#8211; Updated on March 2015 &#8211; Compatible with VS 2015 CTP 6 **] This is the first blog post of a series of posts regarding the MYSHUTTLE.biz sample applications implemented with the new Visual Studio 2015 Preview and .NET 2015 Preview. Here&rsquo;s the list of blog posts: 1. (Current [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/posts\/73","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/users\/362"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/comments?post=73"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/posts\/73\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/media\/12806"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/media?parent=73"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/categories?post=73"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/tags?post=73"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}