Lance Larsen - .NET Architect Madison Wisconsin

All posts in Uncategorized

imageVery excited to have been chosen to be one of the presenters at this years Twin Cities Code Camp!

Will be continuing to share my passion for Mixed Reality development – with my “Ready Player Two: VR Game Dev” series of talks!

In the year 2044, the world is in crisis. To escape that reality, the populace turns to the OASIS, a virtual reality MMORPG that is more than just a game – it is a completely immersive virtual society.

Back in 2018, at the dawn of VR, the seeds of our future were planted. What would come to be a billion dollar market, that changed the world forever, began then…

Join us in viewing the 2018 talk by the Microsoft MVP Lance Larsen (, one of the founders of HOLOSOFT (

This historic presentation inspired a generation of VR developers – leading at least in part to the OASIS we have today.

Code focused talk that will get everyone started making Microsoft Mixed Reality VR games

  • Focus on the latest and greatest VR hardware and software
  • Focus on creating VR experiences within Unity / C# and Visual Studio
  • Focus on integrating VR controllers
  • Focus on creating your own 3D VR launch icons

Read more

SkyloftWelcome to Skyloft for Windows Mixed Reality

Skyloft is the next Virtual house that will be available for those that have immersed themselves in Microsoft’s Mixed Reality. 

To get this for yourself – you’ll need to either wait for April/May when the next version of Windows rolls out -or- sign up for the Windows Insider “Fast Ring”… (Update now also available for the “Slow Ring”)

If you need help with either – just ping me!

Watch the YouTube Video as we explore Skyloft!

More info on: Windows 10 Insider Preview Build 17115 (RS4)

imageIn the middle of another awesome season of robot challenges! 

Volunteer coach for both my daughter’s teams – both FLL (First Lego League) –and-  FTC (First Technology Challenge).

Been volunteering since Ashlyn (oldest daughter) was in 4th grade – she’s now in 10th grade – loved every success and failure along the way.

Always tell them “…if you’re not failing, you’re not trying hard enough…” and “…unless you give up — you always fail, until you succeed…”

If others are interested in getting involved – either as a coach or as a judge at one of the competitions – check out the following links and/or contact me anytime!


As a passionate professional developer and more importantly a dad we only have so much time to dedicate to certain parts of our lives – so I pick and choose very carefully.  One such choice on the development side is to dedicate time to VR (Virtual Reality) and even more so to AR (Augmented Reality).

I was one of the few developers to have time at the last Microsoft //BUILD conference to get hands on development time with the HoloLens via the “Holographic Academy” – 4+ hours working with the HoloLens hardware and Unity software.  It was mind blowing!  More than I expected in almost all ways.

As a community presenter – and an business and technology entrepreneur – I see huge potential for serious AR corporate and commercial development.

I am keeping up (and ahead) of the technology curve and sharing daily VR/AR news and emerging technology on both Facebook and Twitter – wanted to share so you can keep up with me. :)

Follow and LIKE…

Presenting at ThatConference!

“Have you fired up a new ASP.NET 5 project in the new Visual Studio 2015? Wow does that look different or what?!?!

What’s new in MVC 6? What is .NET Core? What is Grunt? What is Gulp? Bower? Npm? Rosyln? Why are there JSON confutation files? Why is Node installed? Where’s my project file? No System.Web? Runs on Linux and OSX???

Wow — there is a lot of new stuff — in fact ASP.NET 6 is one of the most significant architectural updates Microsoft has done with ASP.NET ever!

Have NO FEAR fellow camper, come join Lance and your fellow campers!

Together we will leave this Pow-wow able to face a new day of ASP.NET web development with a much better understanding of what new tools have been added to our Swiss Army knives!”

Here are files…

Presentation PDF
Presentation Power Point
Demo Code

Surface Pro 3

A lot more Surface 3 owners out there as sales of the Surface topped $1 billion in revenue for Microsoft – so more tips for my primary development computer!

Screen Brightness Shortcut: Press “Fn” + “Del” to increase brightness, and “Fn” + “Backspace” to decrease brightness.  Love it. 

If there are more cool tips that others have – ping me, love to know them.

imageLove sharing little gems of knowledge – this is a good one for anyone using Entity Framework 5 and the new’ish enumerations (emums) inclusion in EF5. 

So working on a MVC5 Code First application for a project of my own – and had the following Model.

namespace GeoBucketlist.Model
    public enum TagType { Location, Bucketlist, Member }

    public class Tag : Base.Model
        public long Id { get; set; }
        [StringLength(25, ErrorMessageResourceType = typeof(ResourceMessages), ErrorMessageResourceName = "LengthMax25")]
        public string Name { get; set; }        
        public string Description { get; set; }
        public TagType TagType { get; set; }

When you auto-create the View templates for editing / adding that model in MVC through T4 templates – the html is as follows follows…

<div class="form-group">
    @Html.LabelFor(model => model.TagType, new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.EditorFor(model => model.TagType)
        @Html.ValidationMessageFor(model => model.TagType)

imageWhich then shows up in your pages as a plain textbox – not a good solution for choosing an enumeration value… :(

So simple but elegant solution is to change that line to the following… (Note, would be lovely if this was the default behavior for the @Html.EditorFor – but alas that is a blog article (and more work) for another day – but if anyone else has that complete, always loved to see great code!)

<div class="form-group">
    @Html.LabelFor(model => model.TagType, new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.DropDownListFor(model => model.TagType, new SelectList(Enum.GetValues(typeof(GeoBucketlist.Model.TagType))))
        @Html.ValidationMessageFor(model => model.TagType)

Good coding!