Starting Windows 10 UWP Development

Starting Windows 10 UWP Development

Jason Short No Comments
  UWP Windows 10

If you are looking for how to get started in Windows 10 development you first need to be running Windows 10.  You cannot develop for Windows 10 on any other platform.  Then you need to install Visual Studio.  You can download the free Visual Studio 2015 Community Edition directly from Visual Studio website.

 

That really is it for the tools.  You can add things like Template 10 or the UWP Community Toolkit, but Visual Studio is all you really need to get started.

Visit the Windows App Developer site for getting started guides, design tips, monetization, etc.  I will keep posting some tips on this blog, but hitting the official site will always be the best place to start.  There is also an official Getting Started with Windows 10 development video from Channel 9.

If you are an experienced developer you may want to watch the excellent Developer’s Guide to Windows 10 series that is a free Microsoft Virtual Academy session.

Adding VS Toolbox items from NuGet packages

Jason Short No Comments
  DotNet UWP

Found this today and thought it was non-obvious.  If you have a UI tool that is delivered via NuGet you can’t add them to the toolbox automatically.  Only VSIX files can do that, so how do you get those UI controls in there?  Pretty simple.

Add controls from a NuGet Package

1) Add the NuGet package to your application like above.

2) Open any xaml page and select the Toolbox on the left side of Visual Studio.

3) Right click in a blank area and select Add Tab.  Name the tab New Toolkit Controls.

4) Right click in the tab you just created and select Choose Items….  Then select Browse from the Choose Toolbox Items dialog and navigate to the folder on your machine:

    c:\Users\%USERNAME%\.nuget\packages\ToolkitName\

a.  Choose the folder name matching the version you have installed, then continue to the lib\uap10.0 folder and select the MyToolkitName.dll file.  You should end up with a dialog similar to the one shown below.

choosetoolboxitems

5) Your toolbox should now have a list of UI Controls from the toolkit that you can drag and drop onto your XAML surfaces.

There you have it.  You can manually add UI Controls to your Visual Studio toolbox that are contained with a NuGet package.  It can’t be done automatically, but being able to do it by hand is better than nothing.

Quick setup and run Template 10

Jason Short No Comments
  Windows 10

Testing using a YouTube video within my blog. This is a quick video I recorded (with a poor built in mic) and a trial of Camtasia just to see how all this might work.

In the video below I am installing Template 10.  Template 10 is a set of Visual Studio templates for UWP developers.  There is a Blank, Hamburger, and Minimal template.  Each one does pretty much what you expect.

I highly recommend you watch the Microsoft Virtual Academy course on Template 10 by Jerry Nixon to get an in depth set of learnings on Template 10.

Future Blog = Video Blog?

I think if I started recorded screen casts of me doing things rather than writing up formal blogs I might do it more.  We shall see…

My own personal critique of this:

  • Mic not good enough
  • Webcam is OK, but lighting is not good enough
  • I looked down too much rather than at the camera

I have been experimenting with better ways to get re-connected with my previous blog readers, and that means updating my workflow and tooling.

I am using Open Live Writer for the blog posts, although it doesn’t integrate with YouTube very well.

Perhaps interesting times are ahead

Jason Short No Comments
  General

I have just been moved over to work within Windows Engineering here at Microsoft.  I will be working on a team that is focusing on bringing developers back to Windows.  Some of that will be UWP focused, some will be “legacy” apps (meaning WinForms, WPF, pretty much everything not a store app today).

So I am getting back to building a lot more apps that are not huge complex Azure systems!  Hopefully that will mean more blog posts and source code I can share publicly.

I attended Xamarin Evolve a few weeks ago and will post a summary from my perspective (it was really good). 

I posted a UWP Memory Helper utility class on Github last week.  It is a really simple class to help you track memory usage while running your apps.  I used to use this for my Windows Phone apps, but the utility didn’t work with UWP.

I also updated my Virtualized List to support Windows 10 UWP.  It is a simple example showing how to build a virtualized list that you can databind in XAML and still get fast performance for scrolling.

So maybe interesting times are ahead where I will get to publish more blogs and contribute more open source.  We shall see.

A whole year without a single post

Jason Short No Comments
  General

Wow, it has been a year since my last post.  I didn’t want to blog for 2015, and I didn’t.  I am now trying to decide if I should go back to it at all.  Social media, twitter and other short form media dominated my 2015.  I feel much more engaged with those types of media because people respond and interact with you.  It seems like the day of the blog are dying.  Maybe for long how to articles, deep dives, etc.  But I think for engagement the blog is now gone.  Comment spam was a big part of it, but people are now more mobile and read smaller articles on the go.

So do I kill off my blog and domain?  I can’t decide.  I do some blogging for more complex topics through my job, but I use MSDN blogs for that.  I get far better reach and linking because it is MSDN!

 

Tearing down the old blog

Jason Short No Comments
  General

I have decided to make a clean break from the old blog and start anew with all new content and writing.  I may post some of the old articles here, but most of them were really, really out of date.  Time to clean house and start over.

Happy New Year 2015

I will be editing and posting the most popular linked and read articles from the past several years. I will be removing posts that were specific to my previous company, or have now been replaced by newer technologies. I had a lot of Windows Phone 7 specific stuff that doesn’t work in Universal Apps, so why keep that content up?

Always be improving, or you are accruing technical debt

Jason Short No Comments
  General

How healthy is your company?

I spend a lot of time working with companies to help them change strategy on their technical products. Most of the time they initially view it as just “moving to the cloud”, or “updating the software for scale”. But in almost every case they are radically changing their future by doing so, they just don’t know it yet.

Some of the companies I work with are going into this knowing full well that they need to make a change or become obsolete. Many are following industry trends in an attempt to be a first mover in their particular field. Others are embracing change as a way to be more profitable.

Where is your technology in your company? Is it moving to adopt with the future? Or is the last time someone hit File|New Project over a decade ago?

Adapt, Adjust, Overcome

When I was in the Army they used to through all sorts of crazy training scenarios at us. If the scenario stayed the same more than twice people would become bored and just sort of go through the motions. But the instructors rarely allowed that to happen. They would always throw in some little twist to keep people on their toes, and to make sure they learn a new lesson from an old training exercise.

I think far too many software companies I go into are just running the same exercise over and over. Sprint #142 we will do the following work. We will test it here, we will ship it there. They have no part of their team looking at what could be the next big disrupter in their field.

Now you shouldn’t fixate on that disrupter, but you need to know what it is. I personally follow OS development (open source, and academic), language trends, mobile phone trends, compiler changes, app design trends, and the list goes on and on. Why do I follow such a broad range of tech? Well, truth be told, I am just a geek who loves tech. But that also makes me good at my job as a Technical Evangelist.

But really the edge it gives me when I walk into a company is amazing. I can talk to the company CTO about trends that are in a similar vertical to his and ask if that is something happening in his. Sometimes they were not even aware of the change taking place, other times the change scares them. Change is constant in the tech world. Embrace it. That doesn’t mean starting over every year. But every 5 years you should look at your current tech products and ask yourself, “Would I build the same thing now that I built 5 years ago?” Would you change languages, tools, features, analytics?

If the answer is yes to any of those, what are you going to do about it? You can bemoan that the choices are made and you have no budget to rewrite it all. Or you can get started spending 10-20% of your time and budget on building V.Next of the software. ALWAYS BE IMPROVING. If you are not improving your system, it is dying. Every month with no new features, no new insight into how the tech is serving customers, is a wasted month. Those months add up. Pretty soon you are 10 years down the line and your only choice is to hit reset and rebuild from scratch. Technical debt can pile up until you have to declare bankruptcy.

All companies are software companies

I knew this before I started at Microsoft, but it is SO much more apparent to me now than ever before. A short list of the industries I have touched since joining Microsoft.

  • Financial
  • Industrial Manufacturing
  • Industrial Automation
  • Customer Relationship Management
  • Point of Sale
  • Chemical Manufacturing
  • Entertainment
  • City/Government Planning
  • Architecture
  • Mechanical Engineering
  • Power Generation
  • News / Reporting
  • Higher Education
  • healthcare

Every single one of them is really a software company. They may not see it that way, but what they are selling cannot be done without the use of a LOT of software today. I asked one CTO who thought tech was just a nice thing to have, “What would happen if I took away every PC you have in your factories for a year?” He sort of turned pale, and the replied nothing would happen after just a few days we would be at a total stoppage. Prior to that meeting he had put technology as “not important” for the companies future. Afterwards he said he was going to be seriously looking at where tech meets his manufacturing and how they can get it moving forward again.

If you are not growing, you are dying

Always strive to be growing in everything you do. Personal life and work life. I personally don’t ever want to think about what happens if I lose the will to keep learning and growing as a person, or if I decide to stop growing as a technical evangelist either.

Kids don’t want PC’s, doesn’t look good for future

Jason Short No Comments
  General

This will not come as a big surprise to many, but I think maybe my reason why is a little different than most.  Microsoft is missing that gateway device for kids that are too young to get a PC or a Windows Phone.  Something like the iPod, iPad or Google Android tablet device.

Kids get these non cell devices first

This is usually a birthday or Christmas present, and they almost immediately switch all present requests to gift cards for their new ecosystem.  Of course kids don’t call it that, they don’t know they have just made a major decision point in tech for their future.  They just thought it was cool they had the same device as their friends.

Most of these devices are bought (rather then rented per the current US cell phone market model), so that makes them unique.  Many parents are price sensitive to giving an 8 year old a piece of technology. 

In my kids own classes during middle school the device of choice was the iPod.  These kids would literally spend $100’s in gift cards on music, movies, TV and apps.  Now normally you would think that is just what kids do, they spend money on short term thing like that.  But now the bigger decision comes when they hit about 13 and go to get their first cell phone.

[more]

But I already have all my apps and music!

Talk to any of these kids about what type of phone they want and they will immediately gravitate to the one where they have their apps, movies, etc.  One of my daughters friends said she has over $1000 “invested” in her iPod, so of course she wants the iPhone (duh for me even asking!).

These kids don’t care about tech, they care about what they already know and have apps that they don’t want to lose.  Suggest to one of these kids that they get a Microsoft Surface and they will freak out on you in a hurry.

Look forward a few more years, and it gets worse

Now my eldest daughter is an upper classman in High School and is thinking about college.  Even though she uses a Laptop PC for school today (supplied by the school) she wants to get a Macbook when she goes to college.  I asked her why and she said that all her music, movies, TV will just work with it.  No hassle in figuring out how to get it to Windows.  She could care less about Word, Excel, etc.  She wants what will work with her existing stuff.

Microsoft Zune – oh how I miss you

This leads me back all the way to Microsoft Zune. I seriously think Microsoft killed it about three years too soon.  At this point in the product cycle Microsoft has NO device for these early kids. 

Zune was that device, it even had a great ecosystem around desktop stands and ways to get music into the home through docks, etc.  None of the current Windows Phone devices have broken that barrier yet.  There is no standard connector for all the phones for any manufacturer to even make a dock for Windows Phone.  The market has gone more Bluetooth powered in the past few years, but having a dock is what made all those hotels buy alarm clocks that you can plug an iPod / iPhone / iPad into.

Microsoft Surface is not that first device

The Microsoft Surface is too expensive for most parents to buy for their kids (when they can get a Nexus 7 for $199, or an iPad Mini for $329).  I do think we will see more of the first devices for kids be tablets rather than iPods, but Microsoft is still pricing themselves out of that market.

Go to Universities today and look

I teach at schools around the world periodically as a part of my job.  I am always confronted with 90%+ Mac laptops in the classrooms.  Many of them are running Windows in a VM for “antiquated classes that don’t have Mac software”. 

This looks bad for PCs, and Microsoft in particular, in the years to come.  As those kids get to jobs and start the BYOD revolution they will not want a PC or Windows. 

The only way I see this changing is if Microsoft can break that cycle with the younger generation and make owning a Windows tablet cool.  That is going to be a hard thing to do with the current generation of hardware and the prices that we are seeing today.

Karateka journal about making the game

Jason Short No Comments
  General

karateka-paperback It has been a while since I read a book that I connected with on a personal level.  I read Jordan Mechner’s journal from when he was a teenager at Yale and started working on Karateka (amongst other things).  Kindle has an ebook version The Making Karateka.

This was an amazing read for me. Not because of the writing, but because of the subject. I was a middle school kid at the time Karateka came and I played the game on my Commodore 64, and was instantly mesmerized by the game and its effect it had on people. The story was good, but it was the first game that actually had a cinematic feel for the play. You felt like you were part of a movie. Now this was a kid version of me, but I was in awe.   My friends and I would play for hours and talk about how the animation was created.

I started writing games as a result of playing this one. I never achieved his level of success, but did have quite a few published while I was in high school. I even went on to work at a game company and made a few PC and console games in the mid 90’s.

Is this a book?

This is a collection of his personal journal during the time he built Karateka. It is raw and a little scattered. I went through all those same ups and downs as a kid (sort of still do as an adult!). It was refreshing to me to see something that I took to be an act of utter perfection was actually a labor of love for someone who struggled with it’s creation.

It was also a little scary to read wondering if he was going to flunk out of Yale.  I knew a lot of geeks when I was in college who ditched a lot of classes to work on projects, but few of them ever actually finished what they were working on.  So it is sort of amazing that Jordan was able to complete what he started, I think it was as much do to his parents encouragement as his own tenacity.

Fun geek read

Refreshing read to see that others in the same field had a similar start and rough road.  It is too easy to look back at your finished products and think it was obvious that is what was going to happen from the start.  Every project I have ever worked on goes through a similar path of finding the right deliverable.  You never start with a clean idea from the beginning and proceed to the end.  This was a fun geeky read.  Would have enjoyed hearing some of his coding travails as well, but this was very satisfying for a geek like me.

If you also know Jordan’s name he was the creator of Price of Persia and has published a journal about the creation of Prince of Persia.

Other Posts about the game

Found this great post about the game itself from another gamer.

Love Is a Backwards Kick: The Romance of Karateka

Had totally forgotten about that backward kick.

The game in the Karateka Classic Game in original 8 bit glory is available on iOS and Android.  I played through the Android version today, brought back a lot of memories.  Took me WEEKS to complete when I was a kid.  Having the rewind in the Android version saved a lot of time.

Inside Windows Phone # 34 – Talking CRUD with Jason Short

Jason Short No Comments
  Windows Phone

The interview I did for Channel 9 Inside Windows Phone is now up!

Channel 9 MSDN Link

Embedded Video

My thanks to Larry for having me on the show to talk about CRUD. People seem to think that with mobile apps the basic concepts of CRUD have gone away, but that is not true! You still need to think through the basic data operations the same as almost any other application.

Here is the post for the original XAPFest talk.

XAPFest talk Managing Data on Windows Phone 7