I don’t blog as much as I used to, and it’s mainly because I’m spending most of my time writing code for Windows Mixed Reality & VR using Unity, Azure, AI, C# and UWP. I started a new role at Microsoft in January 2018 and I’m more active publishing open source projects, samples, and other software components on GitHub. I invite you to visit me there to see what I’m up to on a weekly basis.
Microsoft Bot Framework
Bots (or conversation agents) are rapidly becoming an integral part of your users’ digital experience – they are as vital a way for users to interact with a service or application as is a web site or a mobile experience. Bots can also integrate with digital assistants like Cortana. Developers writing bots all face the same problems: bots require basic I/O; they must have language and dialog skills; and they must connect to users – preferably in any conversation experience and language the user chooses.
In this video, you’ll learn the basics on how to build and connect intelligent bots to interact with your users naturally wherever they are, from text/sms to Skype, Slack, Office 365 mail and other popular services. I explore the new Microsoft Bot Framework recently announced at Build 2016, which provides just what you need to build and connect intelligent bots that interact naturally wherever your users are talking.
Through simple demos I cover the Bot Builder SDK with C# (Node.js is also supported), the Bot Framework Emulator and I also explore how to handle natural language input from the user with the Language Understanding Intelligent Service (LUIS) from Microsoft Cognitive Services. Every business needs bots to provide a more personal experience to its users and customers. This video gives you the basics to get started in just 30 minutes, and then points you in the right direction to learn much more.
You can watch the video using the embedded player below or directly on Channel 9 here.
Additional References – Cognitive Services & LUIS
To learn more about the Microsoft Cognitive Services (aka “Project Oxford”) and the Language Understanding Intelligent Service (LUIS), you can watch the following sessions from Build 2016:
Cortana – Microsoft’s Digital Personal Assistant for Windows 10, iOS and Android – is evolving from reminding users about things to helping them get things done. Cortana can now proactively surface your app to users in the right context, and provide your app with relevant information to act on, making it quick and easy for the user to work with your app, or even complete tasks on the user’s behalf. You can watch breakout sessions from Build 2016 for a walkthrough of these new Cortana capabilities, and how your existing UWP apps – with minimal effort – can use them to increase engagement and discovery.
If you have any questions, you can post them in the comments section below, or you can contact me on Twitter at @ActiveNick.
I love the Xamarin Platform. And not just because we just announced that Microsoft is acquiring Microsoft. I’ve been working with Xamarin technologies – and the Mono Framework – for years now. It’s one of the primary topics I’ve covered at major software conferences in the US, Canada and other countries. From VSLive, DevIntersection, DevTeach, CodePalousa to countless Meetups, user groups, and code camps, developers everywhere – especially .NET developers – want to learn how they can reuse their C# skills to build apps for iOS, Android and Windows while sharing 75% or more of their code.
Last October I had the pleasure of being invited to speak at Dev Day Kiev in Ukraine, talking about Xamarin and also Azure App Services. I was fortunate enough that the sessions were filmed and recorded, and I’m here to tell you how to watch it.
Building native applications across multiple platforms is hard. iOS requires knowledge of Xcode, the iOS SDK and Objective-C or Swift. Android requires Eclipse Android Studio, the Android SDK and Java. The Windows 10 Universal Windows Platform requires Visual Studio, C# and the UWP/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 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. Native mobile development doesn’t have to be so hard. Come learn how your .NET skills can be transformed for true cross-platform development.
Watch the Video
Remember that this is a live session recorded in Ukraine, but it’s all in English. You can watch the session on Channel 9 or using the embedded player below:
Get the Slides
If you want to view or download the slides from this session, you can get them on my SlideShare or embedded below.
Demos and Other Reference Links
- Free Xamarin Course on Microsoft Virtual Academy with Brian Sherwin & Mark Arteaga
- My Samples on GitHub
- Xamarin Samples on GitHub by James Montemagno, Xamarin Evangelist
- My other videos on Channel 9
- Xamarin Performance Study by Kevin Ford, Magenic
If you have questions on how to get started or want to discuss this topic, you can find me on Twitter at @ActiveNick. Be sure to let me know once you publish some C# apps – on any platform – I’d love to check them out and help you promote them.
Have you ever built and published a mobile app? Maybe you’ve tried and abandoned the idea because you didn’t make any money. Maybe you gave up before even trying because it’s a saturated market and making money is hard. Forget the app money, mobile development can be your path to a better career, and yes, that will bring you more money too.
In this video I walk you through the list of skills you will build by becoming a mobile developer. These skills will improve your technical profile as a developer, and at the same time increase your value with employers. Even if your apps make no money, you will get a clear benefit out of them by improving your technical profile, and therefore increase your value as a developer.
Don’t wait for your employer to assign you to a better project, take control of your career and get started now. Head over to Microsoft Virtual Academy to learn mobile development. Build mobile apps, build your skills, build your resume, go get more money, and go get the job of your dreams.
Watch the video on Channel 9 or using the embedded player below:
If you have questions on how to get started or want to discuss this topic, you can find me on Twitter at @ActiveNick. Be sure to let me know once you publish some apps, I’d love to check them out and help you promote them.
Other Learning Resources
A week ago I blogged about The Maker Show, a new Channel 9 show for makers. The Maker Show is an informal dive into the exciting world of makers. Each week, one of our expert makers will go hands-on with techniques, how to’s, tips & tricks in various maker areas including electronics, programming tools, hardware boards, components & sensors, connectivity, building hacks & gadgets, 3D printing, manufacturing prototypes, and other cool yet useful topics.
The show is published every week and we’ve had great episodes so far:
- In episode 0, we explored why developers should become makers, what’s the opportunity, what to build, what to buy, and where to go from here.
- In episode 1, David Crook gave us a cool introduction to electronics, starting with how to make electricity from lemons!
- In episode 2, Brian Sherwin started working with the Arduino, blinking LEDS and working with potentiometers.
- In episode 3, Sam Stokes covered a lot of the theory behind servo motors when applied to Arduino hacks.
Often times, when you are designing a 3D part to print, you’ll need it to marry up to an existing part or assembly. Perhaps you need a motor to be mounted on the part, or perhaps the part is going to integrate with a home power outlet cover. This is such a common case, that we wanted to take an episode to discuss how Jeremy has found to get this done quite elegantly.
Jeremy covers the use of his favorite 3D modeling tool – Autodesk Fusion 360. He uses this in concert with GrabCAD (grabcad.com) to find existing parts. Once he pulls his existing part in to Fusion 360, he has very good control over interfacing with all of the shapes, faces, and features of that existing part. It’s quite exciting.
Once you finish and print your part, then, you’ll be confident that it will be ready to be mounted or have your existing parts mounted on it. You can even 3D print receiver holes for screws.
Watch the new episode using the embedded player below, or on the Channel 9 show page.
Make sure to bookmark http://themakershow.io for new episodes every week, typically posted on Thursdays in the morning. If there is a specific topic, product or tech you’d like us to cover on the show, let us know by tweeting to @TheMakerShow, commenting under the latest episode on Channel 9, or email us at firstname.lastname@example.org.
I recently had the pleasure of sitting down with my good friend Robert Green to record another episode of Visual Studio Toolbox on Channel 9. This was my third appearance on the show, having covered my AzureChatr cross-platform chat app and developing Windows 10 apps with speech and Cortana in previous shows.
This time, Robert and I talked about the awesome Visual Studio Emulator for Android. That’s right, Microsoft actually makes an Android emulator. It’s full featured with support location services, accelerometer, camera, storage cards, network simulation and more. It’s super fast, thanks to hardware virtualization with Hyper-V and GPU support. And it’s free, totally free. You can even install it as a standalone app, without having to install Visual Studio, though you might as well get that too since Visual Studio Community Edition is completely free. Better yet, since the emulator plugs directly into ADB, you can use it with Android Studio, Xamarin Studio, Visual Studio, IntelliJ or Eclipse.
If you want to learn more and see the emulator in action, watch the following video below or on Channel 9.
Greetings, and welcome to The Maker Show, a new Channel 9 show for makers, hackers, developers and disassemblers. If you want to know how to get started with Arduinos and Raspberry Pi‘s, this is the show for you. If you grew-up taking stuff apart like your family’s toaster or your dad’s VCR, this is the show for you. If you’re more comfortable with a laser cutter than a pair of scissors, then this is definitely the show for you.
The Maker Show is an informal dive into the exciting world of makers. Each week, one of our expert makers will go hands-on with techniques, how to’s, tips & tricks in various maker areas including electronics, programming tools, hardware boards, components & sensors, connectivity, building hacks & gadgets, 3D printing, manufacturing prototypes, and other cool yet useful topics. You’ll see hardware, you’ll see electronics, you’ll see code, and you’ll definitely see a lot of cool stuff. This is a no fluff technical show. This is a show for beginners and experts alike, everybody’s welcome to join.
We have 4 episodes available to watch now, with new shows being published every week. Here is an overview.
Episode 0 – Meet Your Makers
This is special episode 0 (yes, we’re developers, everything is zero-based) where you get to meet your makers. We rounded up some of our show contributors – Jeremy Foster, Sam Stokes, Bret Stateham, Ian Philpot, Kenny Spade and myself – who are all makers – so you get to know them better, I’ll get their perspective on the maker world, how to get started, and ask them what they have in store for you in future episodes of the Maker Show.
Episode 1 – Introduction to Electronics
Episode 1 may have been a lame Star Wars movie, but it’s an awesome episode of The Maker Show. David Crook does an introduction into electronics and how they work. This episode focuses on many of the fundamentals of the very thing that drives most of our projects, electricity. How to generate more power, how to ensure you don’t blow your circuits, why electricity flows where it does. And of course introducing a good philosophy of when life gives you lemons, to make electricity.
Episode 2 – So I Got a Blinking LED… Now What?
In episode 2, Brian Sherwin starts with the “Hello World” of electronics: blinking an LED. But what do you do after that? In this episode of the Maker Show, Brian uses the Arduino to introduce a few new ways to work with your blinking LED from inputs with buttons and potentiometers to viewing input in the serial monitor.
Episode 3 – Arduinos and Servos
In Episode 3, Sam Stokes turns to DC Micro Servo Motors and Pulse Width Modulation. These tiny controllers are inexpensive, cost less than a cup of coffee at Starbucks, and pack a powerful punch with 1.54 Kg-cm of torque, and weight in with a mass of 8.6 grams! Servo Motors were first conceived by Nikolai Tesla who designed the AC types of Servo Motors. He used an ingenious rotary sensor design that was used to create precision gyro systems that took humans to the moon! The servo motor will be a nice addition to your blinking LED that you created in the last show. With a little work, you could use a potentiometer to turn the servo motor. The show also takes to the beach where the design was tested successfully in the California surf.
Make sure to bookmark http://themakershow.io for new episodes every week, typicaslly posted on Thursdays in the morning. If there is a specific topic, product or tech you’d like us to cover on the show, let us know by tweeting to @TheMakerShow, commenting under the latest episode on Channel 9, or email us at email@example.com.
Windows 10 is coming this summer! It’s even already available in preview today. With it comes a huge opportunity for developers to build apps once for the Universal Windows Platform and deploy/publish these apps to Windows phones, phablets, small tablets, full tablets, hybrids, 2-in-1’s, netbooks, ultrabooks, notebooks, laptops, desktops and even servers. You’ll also be able to use the same apps/code when running Windows on IoT devices like the Raspberry Pi 2, and soon enough you’ll be able to publish those same apps on Xbox One! But the main question is:
Are you ready for Windows 10?
The BUILD 2015 conference starts in less than a week and you’ll be able to watch live streams of countless sessions to bring you up to speed on many development topics, from the cloud to mobile development, including IoT and game development.
You probably want to capitalize on this new wave of Windows 10 opportunities, but many of you may not be too familiar with app development for Windows devices. Fortunately there is a way for you to catch-up, and fast. And the best part is it’s completely free. It’s called Microsoft Virtual Academy.
Successful technologists never stop learning and great technology never stops evolving. Microsoft Virtual Academy (MVA) offers online Microsoft training delivered by experts to help technologists continually learn, with hundreds of Microsoft training courses, in 14 different languages. MVA’s mission is to help developers, knowledgeable IT professionals and advanced students learn the latest technology, build their skills, and advance their careers.
With hundreds of free courses in MVA, it can be quite a daunting task to get started. Which course should you take? This blog post is your learning guide, providing you with the roadmap you need to learn Universal Windows App development, and get ready for Windows 10.
I’ve outlined the recommended courses based on your current skill level. Feel free to dive in at the level that is most appropriate for you:
- Absolute Beginners
- Beginner / Intermediate-level App Developers (Windows Store or Windows Phone)
- Experienced / Published Mobile App Developers on Windows
To help you get started with the tools you need, make sure to read my Ultimate Guide & FAQ to Setting-up a Windows Phone Development Environment.
Start with this section if you’re completely new to programming, or if you are completely new to app development in general.
C# Fundamentals for Absolute Beginners
Want to learn a different language? Over the course of 25 episodes, our friend Bob Tabor, from www.LearnVisualStudio.net, teaches you the fundamentals of visual C# programming. Tune in to learn C# concepts applicable to video games, mobile environments, and client applications. We walk you through getting the tools, writing code, debugging features, customizations, and much more! Each concept in this C# for beginners course is broken into its own video so you can search for and focus on the information you need.
Introduction to Mobile App Development
Nothing motivates students more than building an app that they care about and that they can immediately see, use, and share. Get insights from Windows Platform Developer MVP Lance McCarthy, as he teaches students to build a mobile app using Windows App Studio and to then extend and enhance the app using Visual Studio. Students learn the basics of the app ecosystem and Software Development Lifecycle. They also learn about code modification and additional basic app coding skills, including the topics of variables, simple data types, conditional programming constructs, and simple library classes. This course addresses AP Computer Science learning requirements.
Windows Phone 8.1 Development for Absolute Beginners
Join Bob Tabor (LearnVisualStudio.NET) for this 9+ hour series as he covers Windows Phone UI with XAML layout and events, navigation model, application lifecycle, and working with the Windows Phone Emulator. This course focuses on Windows Phone development for beginners as Tabor explores understanding XAML, MVVM (Model-View-ViewModel) and HTML apps in the WebView. Get details about storage, maps, animations, and media (video/audio with the MediaElement control). Build five apps, covering a range of scenarios, from media playback to hosted HTML, from accessing geolocation data and mapping to extending your Windows Phone app to become a universal Windows/Windows Phone app. These Windows Phone development tutorials will build a firm foundation for your future in mobile app development.
BEGINNER / INTERMEDIATE-LEVEL WINDOWS PHONE or WINDOWS STORE DEVELOPERS
Start with this section if you are an experienced developer but new to app development on Windows, or if you have some experience with Windows Phone and/or Windows Store development but your knowledge is spotty.
Building Apps for Windows Phone 8.1 Jump Start
If you’re an app developer who wants to design and build apps for Windows Phone 8.1 using XAML and C#, check out this two-and-a-half day, on-demand course, taught by experts with years of experience developing—and writing about the process. The sessions focus on building apps for Windows Phone 8.1 in Visual Studio and creating universal app projects that share a high percentage of code and that target both Windows and Windows Phone. Get tips and tricks on maximizing your app compatibility and optimizing your code. Find out about new features, and learn how to program the many new Windows Runtime APIs that are available to both Windows Store apps and to Windows Silverlight apps. You can even get code samples. Want to build an app? Watch this course and make your apps for Windows Phone world-ready!
Developing Universal Windows Apps with C# and XAML
Get real-world guidance for developing creating universal Windows apps, and save yourself valuable time when creating developing an apps for today’s mobile workforce and consumer marketplace. Learn from Microsoft experts as they build a working app using XAML and C# development tools and techniques that can give you a dramatic advantage as a developer when targeting both Windows and Windows Phone devices. See what’s smart to share and what’s not, when developing for the two platforms. Explore a broad range of features, covering both consumer and enterprise scenarios. Jerry Nixon and Daren May bring together best practices and key insights from Microsoft internal teams, including the built-in code-generation tools in Visual Studio that can automatically build out hundreds of classes and thousands of lines of code.
EXPERIENCED / PUBLISHED MOBILE DEVELOPERS ON WINDOWS
So you’ve published some apps already and you think you’re an expert? I bet you can still learn a thing or two. Check out these MVA courses and feel free to pick & choose the individual modules that interest you the most. In any case, make sure to watch the last MVA course listed here: A Developer’s Guide to Windows 10 Preview.
Azure Mobile Services and API Management
Want your business to compete in a mobile first, cloud first world? Microsoft Azure can help. For example, Turnkey API Management capabilities help you share APIs with partners securely, and Mobile Services help you to build enterprise-grade mobile experiences for consumers and employees alike, in record time. Get the details and helpful tips from the experts, in this practical course.
Windows 8.1 Developer Training: Geek Edition Jump Start
HTML and XAML developers, are you ready to start having fun with Windows 8.1? Join Microsoft experts for an on-demand version of the highly successful dive deep into the gadget and devices side of Windows 8.1. Explore 3D printing, the LEGO EV3 platform (and how to use it from Bluetooth and USB), how to get speech out of your modern app, and more. See some exciting demos, and find out about awesome new features in both HTML and XAML. Build on your core skills, take advantage of everything Windows 8.1 has to offer, and dive into the Internet of Things (IoT).
While the whole course is definitely interesting, allow me to call out these specific modules to round-out your Windows app development knowledge:
- Module 4 – Speech, Camera and Microphone
- Module 7 – Bluetooth Overview
- Module 10 – Performance
Universal Windows App Development with Cortana and the Speech SDK
Want to add Cortana to your app? Whether you’re into speech integration technology for accessibility, social responsibility, or gaming (or all of the above!), you’re probably excited about the possibilities that Cortana offers for Windows Phone developers today and Windows 10 app developers in the near future. Mobility pioneer Nick Landry and popular author/teacher Jeremy Foster share their practical experience in computer speech technologies and mobile app development scenarios. Explore the why and how of speech apps, tour Cortana, and review the capabilities of the Speech SDK in Windows and Windows Phone. Work with speech synthesis, look at integrating Cortana into your app, check out voice commands, and find out how to build speech-enabled mobile apps with Visual Studio for Windows devices. You’d be surprised at what you can do with as little as three lines of code!
A Developer’s Guide to Windows 10
Want an in-depth look at the Universal Windows Platform? Engaging experts Jerry Nixon and Andy Wigley return to show you how Windows capabilities and social integration can help you create amazing experiences on devices running Windows 10, including phones, tablets, PCs, and even (coming soon) Xbox! Jerry and Andy host three demo-rich days of Windows 10 goodness, explore cool new features, and offer practical guidance. Each session lasts about 30 minutes, so you can join us for the topics that interest you most.
Are you already one of 3 million students who cannot get enough of Microsoft Virtual Academy? What are your favorite courses? Who are your favorite instructors? Are there other courses you would like to recommend to your fellow students in addition to this list? Make sure to let me know in the comments below, or contact me on Twitter at @ActiveNick.
by Nick Landry (last updated on 10/7/2014)
Have you ever witnessed a big news announcement about some mobile app or website being acquired for millions (or billions!) of dollars, only to tell yourself:
“Wow, that’s a lot of money, and to think that I could have been the one to build that!”
This is exactly how I felt when WhatsApp was purchased by Facebook for a whopping 19 BILLION dollars earlier this year. Why? Because like all of you, I have technical skills and I know how to build apps, and I knew I could have built that app. It seems that chat/messaging apps are all the craze now. Microsoft got things going early when Skype was acquired back in 2011 (though Skype is so much more than just a chat app). Yahoo just acquired MessageMe, and now Google is apparently building their own too. So what am I to do here? Admit that it’s too late or challenge myself?
I decided I would prove it to myself. I decided to build a cross-platform chat app that lets people on Windows, iOS and Android chat with each other. I knew it wouldn’t be that hard because I have a (not so) secret weapon called Microsoft Azure. My goal is ultimately to show everyone how easy it can be to build cloud-powered mobile apps, no matter if you are a Windows, iOS or Android developer using C#, Objective-C or Java. What better way to do this than to build a live app, and then share the source code with the community as I blog about the internal “how to’s”?
Introducing AzureChatr: A Chat App Powered by the Cloud
AzureChatr (pronounced “Azure Chatter”) is a cross-platform chat client that I now use to demonstrate mobile development techniques with a cloud backend using Microsoft Azure. While AzureChatr can be used to chat about anything, the intent of the app is to bring users together to talk about cloud development. Last June I shipped the initial beta release of AzureChatr for Windows Phone 8.1. AzureChatr will soon be available on Windows 8.1, iOS and Android too. The cool thing is you do not have to wait until I publish AzureChatr on the other platforms. You can find the source code for Windows, iOS and Android below.
AzureChatr lets you chat live in real-time with other users in a global chat room. You do not need to invite anyone, it’s just a big central meeting place (for now). There is currently no support for private chat and all conversations should be considered public
PRIVACY NOTICE: All chat conversations are saved in the cloud for history purposes. Chat conversations should be considered public but will not be distributed to any third parties or used for any other purposes than displaying conversations in the app. Do not divulge any private or confidential information in AzureChatr.
The current version of AzureChatr is certainly not as full-featured as WhatsApp or other popular chatting apps. My goal is to keep adding features over time and document their implementation at the same time here on my blog.
Common Features: Windows, iOS, Android
- All chats are posted in a global public chat room. There is no private chat yet.
- Send chat lines to the cloud and save them in Azure Mobile Services.
- Receive chat lines from the cloud via push notifications (i.e. WNS, APNS, GCM).
- Display new chat conversation items as toast notification / popup alerts when the app is not running. Tapping the toast / alert launches the app.
- Integration with the Action Center / Notification Centers on Windows Phone, iOS and Android.
- Support for Portrait or Landscape orientation.
It should be noted that there is currently no built-in way to mute or disable the notifications. This is obviously an upcoming feature. The only way to mute the notifications is either to disable them in your phone settings where allowed, or uninstall the app.
Extra Features in the Universal Windows version
Since the Windows Phone 8.1 version is already live in the store, there are additional features I’ve already added to polish the app a bit more for public use. Though the Windows version is not live yet, some features have already been integrated should you play with the source code yourself. This is because the Windows and Windows Phone versions are built as a Universal Windows app that virtually shares 100% of its source code. The extra features already available in this version are:
- Integrated login with default Microsoft Account on the device.
- AutoScroll the chat window down after each new chat entry is posted.
- Multiline text entries with wrapping.
- Only retrieve the last 20 entries on app startup / refresh.
- Added an extra Send button when using the Windows version since the default send button in the app bar is not visible by default.
- Send chat line on ENTER key in Windows for mouse & keyboard users.
Other than bringing the iOS and Android to parity with the Windows version, I already have a long shopping list of features that I plan to eventually add to AzureChatr across all versions.
- Display time stamps on individual chat items.
- Support for additional chat rooms by topic, and private chat rooms where you can invite your friends.
- Access the chat log history by scrolling back.
- Speech synthesis integration to hear what your friends are saying without looking at the app.
- Voice command activation with Cortana (on Windows Phone).
- Display user profile images and allow users to provide additional profile data in the app.
- Customize the UI such as font sizes, colors, etc.
- Support for hyperlinks and emojis in chat.
- Support for posting images in chat.
- Muting notifications when you don’t want to be disturbed.
- Authentication via Twitter, Facebook and Google+.
- Allow users to “Like” someone else’s post.
And this is just a partial list. I have a lot more in my backlog. Feel free to post your own suggestions in the comments section below. Note that AzureChatr is not something I’m working on full-time. I’ll bang out some code and keep adding features when I find time, but do not expect this to because the be-all-end-all of all chat apps anytime soon.
Download the AzureChatr App
Wanna try the app? So far I have only published the Windows Phone 8.1 version of AzureChatr. The others will come soon enough.
- Download AzureChatr for Windows Phone 8.1 (Note that this is currently a BETA release only available to a few countries: USA, Canada, UK, Ireland, Australia, India and Finland).
- Download AzureChatr for Windows 8.1 (coming soon)
- Download AzureChatr for iPhone & iPad (coming soon)
- Download AzureChatr for Android tablets & phones (coming soon)
I’ll be sure to update this blog post as the other versions become available, and also when I add additional features to the app. Of course, the whole goal here is to learn how to build this yourself or how to add similar features to your own apps, so keep on reading to discover what goes on under the hood.
AzureChatr: Under the Hood
AzureChatr has a lot of moving parts and this section will host links to several blog posts that dissect specific aspects of the AzureChatr components, including the following:
- AzureChatr client for Windows and Windows Phone
- AzureChatr client for Android
- AzureChatr client for iOS
- Cloud components, including Azure Mobile Services, Authentication Services and Notification Hubs
You can get started by watching this video interview about AzureChatr from the Visual Studio Toolbox show on Channel 9. It features the show host – Robert Green – and myself geeking out over how AzureChatr was built, what it does, and how Azure powers it all.
Bookmark this page and stay tuned as blog more about AzureChatr. All the links will be added here.
Dive Into the Source Code & the Azure Services
Before you download the source code for any of the AzureChatr versions, you have to create a Microsoft Azure account and configure the appropriate Azure services for table storage via Mobile Services, authentication via Microsoft Account, and push notifications via Notification Hubs.
The following links will help guide you through this process, including several tutorials from the Azure documentation.
Obtaining a Microsoft Azure Account
- If you do not have a Microsoft Azure account, you can sign-up here for a 30-day trial (with up to $200 in credits to spend)
- If you’re a startup, entrepreneur or an independent app developer, you can get up to $150 / month in Azure credits for free (along with a boatload of other Microsoft software) via Microsoft BizSpark. You can sign-up for BizSpark here.
Setting-up the Required Azure Components
- Follow the same tutorial to create a new table called ChatItem.
- Authenticate your Windows app with Live Connect single sign-on: Follow the steps in this tutorial to register your app for the Windows Store, restrict permissions to authenticated users and install the Live SDK for Windows. Note that in the current implementation of the code, the iOS and Android versions do not yet support authentication. The authentication code has already been added to the Universal Windows app.
- Please refer to the README.MD file in GitHub. There is a version for each of the 3 client versions. It contains a block of code you need to edit the ChatItem table Insert script.
Source Code Links in GitHub
The source code for all three versions of AzureChatr is available in my GitHub repo under the following links:
- Source code: Windows Clients for a Cloud-based Cross-Platform Chat App for Windows Phone and Windows Tablets, Laptops and Desktops. Written in C# as a native Universal app using Visual Studio.
- Source code: Android Client for a Cloud-based Cross-Platform Chat App for Smartphones and Tablets. Written in Java as a native app using Eclipse. This is just a basic prototype for now and is not ready for publication to the Google Play Store.
Source code: iOS Client for a Cloud-based Cross-Platform Chat App for iPhone and iPad. Written in Objective-C as a native app using Xcode. This is just a basic prototype for now and is not ready for publication to the Apple App Store.
You’re probably wondering why I chose the “silo approach” to build these 3 versions. After all, building the 3 versions with 3 different languages, 3 different SDKs and 3 different IDEs is basically the hardest way possible. Personally I would have preferred to use Xamarin to build a cross-platform app and share as much code as possible. But I felt it was important to stick with the native tools already known by the developers indigenous to each mobile ecosystem.
Feel free to use the source code in your own apps. This is why I’m posting my source here, I want you all to learn how to use Azure for such online apps. You can use it to add chat capabilities to other domain-specific apps, or even to your own games. If you intend to simply create another “competing chat client”, that is fine too. All I ask is that you extend the code with your own ideas and features – make it your own (not just a clone) – and publish your chat apps under a different name of your own choosing (i.e. NOT AzureChatr).
If you have questions about AzureChatr, any of the mobile versions discussed here, the features, source code, design decisions or if you need help standing-up your own Azure services to support your own chat features, you can post them in the comments below, or you can ping me on Twitter at @ActiveNick.
by Nick Landry (last updated on 9/22/2014)
Mobile development is full of exciting opportunities, but setting-up your development environment can sometimes be a challenge depending on what your current hardware is, and what mobile platform you want to target. I work with a lot of developers at hackathons, workshops and meetups, and helping developers get started with Windows Phone development is a part of my day to day.
The goal of this post is to be a one-stop shop for any developers getting started with Windows Phone development to help them prepare their development environment using either free tools or using their current Visual Studio setup. For most developers using a recent Windows computer, installing the Windows Phone developer tools will be a breeze accomplished through a one-step process. But for other developers using legacy hardware, a lot of questions arise as to whether or not their current machine is up to snuff to run the Windows Phone SDK. I’ll try to address most of these questions I’ve been getting over the last couple of years. If there are important questions I am missing, feel free to ask them in the comments below and I will do my best to amend them in this post.
How much are the Windows Phone Dev Tools?
Totally free! You can install a single package called Visual Studio Express 2013 with Update 3 for Windows completely for free and you will get the following all at once:
- Visual Studio 2013, the premier Integrated Development Environment (IDE)
- Windows Phone 8.1 SDK (to build apps for Windows smartphones)
- Windows 8.1 SDK (to build Windows Store apps for Windows tablets, laptops, hybrids & desktops)
I want to install the Windows Phone dev tools now. Where is the link?
Download the Windows Phone tools here. Remember to choose Visual Studio Express 2013 with Update 3 for Windows (NOT the version “for Windows Desktop”). Check out the requirements below first to make sure you have all you need.
What do I need for Windows Phone development?
The following lists the requirements to install the Windows Phone SDK:
- Operating System: Windows 8.1 (x64). To run the Windows Phone Emulator, you’ll need Windows 8.1 Pro.
- Processor: 1.6 GHz or faster
- Memory: Your machine should really have no less than 4GB of RAM, and I definitely would recommend 8GB or more if your machine allows it
- Storage: 11 GB of available hard disk space on a 5400 RPM hard drive. I highly recommend getting a fast hard drive (10K RPM) or a Solid State Drive (SSD)
- Video: DirectX 9-capable video card running at 1024 x 768 or higher display resolution
There is one exception to the 64-bit rule. You can use a Windows 8.1 32-bit (x86) development machine to build Windows Phone 81. (but not 8.0) apps if you do not intend to use the emulator and debug your apps exclusively using an external Windows Phone device connected over USB.
What about Windows Store apps for tablets, Surface & desktop?
That’s an easy one. All the instructions provided in this blog post automatically give you the dev tools you need to build Windows Store and Universal apps. Universal apps let you share over 90% of your code when building apps for the phone, tablets, hybrids, 2-in-1’s, notebooks, laptops and desktops (and Xbox too in the near future). Note that I am spending extra time in this blog post on the Windows Phone side of things due to the extra requirements of the Windows Phone emulator.
Why is Windows 8.1 required?
Simple, because the core operating system for Windows Phone 8.x is the same: it’s Windows 8. Whether you’re building an app for Windows Phone, for the Windows Store, or the new Universal Windows app model, the underlying runtime is WinRT (not .NET), and WinRT was introduced with Windows 8. The Windows Runtime is part of a reimagining of the developer experience for Windows. It’s the modern Windows API surface used to create new Windows Store apps on Windows 8.x.
Why is Windows 8.1 Pro required for the Windows Phone Emulator?
Windows 8.1 (x64) Professional edition or higher is required for the Windows Phone emulators since those emulators are actually Hyper-V Virtual Machines (VM) running the Windows Phone operating system. Hyper-V is a feature of Windows 8.1 Pro. From a hardware point of view, you’ll need a processor that supports Client Hyper-V and Second Level Address Translation (SLAT). If your computer is running on an Intel Core i3, i5 or i7 CPU, you should be fine as those will typically support SLAT.
Hyper-V enables fast hardware virtualization to accelerate virtual machines and provide maximum performance. If you want to see how slow an emulator can get without hardware virtualization, go try the emulators in Google’s Android SDK.
Note that while you may have Windows 8.1 Pro, it does not necessarily guarantee that Hyper-V will be installed. To be sure, follow these steps:
In Control Panel, click Programs, and then click Turn Windows features on or off.
In the Windows Features dialog box, click Hyper-V. The list of options expands.
In the expanded list of options, select at least the Hyper-V Platform check box, and then click OK.
For more information about the Windows Features dialog box, see Turn Windows Features On or Off.
To learn more about how to enable Hyper-V for the emulator for Windows Phone, refer to the official WP8 documentation here.
What is SLAT? How do I know if my computer supports SLAT?
As discussed above, the Windows Phone emulator requires Hyper-V, which in turns requires a processor that supports Client Hyper-V and Second Level Address Translation (SLAT). PCs that support SLAT are Intel-based processors that start with i (e.g., i3, i5, i7, i9) or any CPUs based on Nehalem, Westmere, Sandybridge, Ivy Bridge & Haswell micro-architectures. The AMD equivalents are supported too.
To determine if your machine supports SLAT, perform the following steps:
- Download SysInternals/TechNet CoreInfo at
- Run “coreinfo -v”
- If you see the following and have an asterisk (“*”) next to “EPT” you should be good to go.
- If you have a hyphen/dash (“-”) next to EPT, then you should start looking for a new computer. I hear the Surface Pro 3 is really nice . You’re not entirely out of luck though, you can still use the tools to build Windows Phone apps, but you’ll have to use an external Windows Phone device to run & debug your apps. More on that below.
There are also scenarios where the hypervisor is not turned on by default and you have to enable it in your computer BIOS. If you’re running Windows in Bootcamp on a Mac, there are no BIOS settings you can edit. The only way to force the a Mac to turn on the hypervisor is to cold-boot into Mac OS X, and then perform a warm reboot/OS switch to Windows.
To learn more about how to enable BIOS settings and Hyper-V for the emulator for Windows Phone, refer to the official WP8 documentation here.
I don’t have Windows 8. Can I use Windows 7 instead?
No. Windows 8.1 is required for the reasons explained above. You can still use Visual Studio 2010 and Windows 7 to build Windows Phone 7.x with the Windows Phone 7.1 SDK. You’ll unfortunately miss out on a lot of the great features introduced in Windows Phone 8 in 2012, and Windows Phone 8.1 in 2014. These great features include In-App Purchasing, Background Tasks, Cortana & the Speech SDK, a new map control & geofencing, support for more screen resolutions, and hundreds of other essential features that Windows Phone users are now taking for granted.
A question I often get is “Why isn’t Microsoft releasing additional updates for Windows 7 to get the Windows App Store and all the bits required for Windows Store & phone development?” There is an easy answer to that. We already did: it’s called upgrading to Windows 8! Seriously, Windows 8 builds on Windows 7. Everything that was in Windows 7 is in Windows 8.x.
What do I install if I already have Visual Studio 2013?
If you already use Visual Studio 2013 Professional Edition or higher, you simply need to install Update 2 or higher to get support for Windows Phone 8.1 and Universal Windows app development. At the time of this writing, Update 3 for Visual Studio 2013 is already available, so you might as well install the latest update:
- Launch Visual Studio 2013
- In the Tools menu, select Extensions and Updates
- Expand the Updates branch in the tree of options on the left
- Select Product Updates
- Select Visual Studio 2013 Update 3 in the list of available updates and launch the installation
Alternatively, you can download and install the latest update package for Visual Studio 2013 here.
Can I still build Windows Phone 8 apps using the WP8.1 tools?
Yes! You can use Visual Studio 2013 Update 2 and above to build the following types of Windows Phone projects:
- Windows Phone 8.1 apps (i.e. WinRT)
- Universal Windows apps for Windows Phone 8.1 and Windows 8.1 (also WinRT)
- Windows Phone Silverlight 8.0 (i.e. WP apps based on the classic .NET architecture introduced with Windows Phone 7.x)
- Windows Phone Silverlight 8.1 (i.e. same as above, but with access to the new 8.1 APIs too)
Can I use Visual Studio 2010 or 2012 instead?
If you want to build Windows Phone 8.1 apps or Universal Windows apps, you’ll need Visual Studio 2013 Update 2 or above. You can install the Windows Phone 8 SDK on Visual Studio 2012 to build WP8 or WP7.x apps, and you can install the Windows Phone 7.1 SDK on Visual Studio 2010 to build Windows Phone 7.x apps.
The table below summarizes the various SDKs, Visual Studio versions, app targets supported and required development operating systems.
I use a Mac. Can I still do Windows Phone development?
Not out of the box, but there are ways to achieve this. Since I’m a cross-platform mobile developer, I use a MacBook Pro for a lot of my development work. You’ll essentially need to install Windows 8.1 on your Mac, and there are two main ways you can achieve this:
- Use the Boot Camp Assistant on your Mac to setup a secondary operating system partition on your Mac, and then install Windows 8.1 on that new partition. Boot Camp basically lets you create a dual-boot machine.
- The alternative is to use virtualization software like Parallels Desktop for Mac or VMware Fusion to setup Windows 8.1 as a virtual machine (VM) on your Mac. You’ll have to enable something called “Nested Virtualization” to run the Windows Phone emulator, which is itself a VM that therefore needs to run within another VM.
- The third option is actually a combination of the first two, and the one I use on my Mac. First, setup Boot Camp on your Mac, and then install Parallels or VMWare. The difference is that when you create your Windows VM, don’t create a new Virtual Hard Drive (VHD) and instead virtualize your Bootcamp partition. This gives you the ability to choose how you run Windows: natively (aka “on the metal”) using Bootcamp, or virtualized when co-habitation is required (e.g. for Xamarin development).
To learn more about Boot Camp, visit Apple’s Support site here.
I don’t have a Windows Phone. Is there an emulator?
Yes, all Windows Phone SDKs ship with their corresponding emulators. As discussed above, the Windows Phone emulator is a full image of the Windows Phone operating system running in a Hyper-V virtual machine. This level of emulation provides full fidelity for testing your apps when compared to a physical device, as opposed to device simulators (e.g. Apple’s iOS Simulator) which provide very little in terms of advanced compatibility with physical devices.
How can I use my own Windows Phone to debug apps?
Windows Phone development can be done with entirely free tools. However, to use your own phone for app testing & debugging, you’ll have to register as a Windows Developer on the Windows DevCenter.
- You do not need a Windows Phone Developer account to download the SDK and start developing apps
- You do need a developer account to unlock a phone for development and to submit apps for testing and publication in the Windows Phone Store (formerly known as Windows Phone Marketplace)
To get a Developer Account:
- Included if you have an MSDN subscription (included in a BizSpark subscription)
- Free to students who have a DreamSpark subscription
- $19 lifetime charge for individual developers
- Register for an account at the Windows Phone Developer Center http://dev.windowsphone.com
Note that the registration now includes both the Windows Store and Windows Phone Developer registration in the same account! The $19 charge used to be a yearly fee but Microsoft recently announced that it is now a lifetime subscription, effectively making Windows Phone the cheapest modern device app store you can publish to.
Once you are registered as a Windows developer, follow these steps to register your Windows Phone device for development.
How can I get a cheap Windows Phone for development?
I’m glad you asked. The Windows Phone ecosystem has a wide range of devices for all budgets. We have flagship devices like the Lumia 1520 or the Lumia ICON (aka Lumia 930 worldwide). We also have very affordable yet full-featured phones that you can buy off-contract (i.e. without any carrier subsidized discount or two-year contract) for less than $100 USD. Here are some options:
- Nokia Lumia 520: usually sells for $40-60
- Nokia Lumia 635: usually sells for $100-130
Note that these phones either ship out of the box with the latest Windows Phone 8.1 software, or with Windows Phone 8. All these phones are upgradeable to Windows Phone 8.1 with all the new features like Cortana, Action Center, Universal Apps, folders, geofencing, triggered tasks, and so on.
Next Steps: Learning Resources
Congratulations! You should now have a working development environment to built Windows Phone apps and Universal Windows apps. In terms of resources to get started, my whole blog is dedicated to helping mobile developers across the board, but if you’re looking for a short list of resources to jumpstart your learning, start digging in the following:
- Windows Dev Center: https://dev.windows.com
- Development tools for Windows Phone apps: http://msdn.microsoft.com/en-us/library/windows/apps/dn629632.aspx
- Build universal Windows apps that target Windows & Windows Phone: http://msdn.microsoft.com/en-us/library/windows/apps/dn609832.aspx
- Building Apps for Windows Blog: http://blogs.windows.com/buildingapps
- Windows Phone 8.1 Jump Start Training: http://aka.ms/wp81js
- //BUILD/ Videos: http://channel9.msdn.com/Events/Build/2014
- Microsoft Virtual Academy: http://www.microsoftvirtualacademy.com/product-training/windows-phone
- Windows Phone 8.1 Samples Pack: http://code.msdn.microsoft.com/wpapps/Windows-Phone-81-samples-08631ca7
- My own resources page on this blog: http://www.ageofmobility.com/getting-started/
- Windows Phone Developer Magazine (online): http://flip.it/95YFG
If you have any questions or issues regarding your setup, feel free to ask me questions in the comments section below, or you can ping me on Twitter at @ActiveNick. if there are common questions or issues that I have not addressed here, feel free to let me know what those are and I’ll append them to this post.
Good luck with your apps, and make sure to let me know when you publish new apps in the store. I always love promoting the work of our community.