Episode Summary


In this episode of Adventures in .NET, James Montemagno, a PM in the developer division at Microsoft working with Xamarin shares with the panel all of the exciting things happening in the Xamarin world. Charles Max Wood invites listeners to check out James’s appearances on a different DevChatTV podcast, The iPhreaks Show. Charles expresses his excitement to see Xamarin from a .NET perspective. 


James starts the discussion by sharing how he got into Xamarin and .NET. He explains what he loves about .NET. James worked for Xamarin during the transition into Microsoft, he shares what it was like and how the unification of the two made their products even better. The panel discusses the changes in Microsoft’s practices over the past ten years, becoming more opensource friendly and less focused on selling products.


What is Xamarin, is the next thing the panel answers. James explains that Xamarin helps developers build native apps in C#. He goes on to explain how the versions of Xamarin change based on the platform, Android, iOS and tooling inside visual studio. 


The topic turns to how Xamarin runs. James explains that there is a common theme in Xamarin, flexibility. Choosing how Xamarin is run is up to the developer, who can use AOT (ahead of time) or JIT (just in time). Charles explains what AOT and JIT mean and how they affect application size and performance. James explains how Xamarin runs differently for Android and iOS. 


James introduces a brand new mode called Startup Tracing and explains how it can reduce the start-up time for your Xamarin apps by up to 60% by using a small trace of AOT. He shares the future goals for this mode and explains that it is free and can be used today.  


The next concern the panel has is about sharing code between different platforms and how this works with Xamarin. James explains that this problem is solved with Xamarin forms, Xamarin forms has everything a mobile app developer could want. In Xamarin forms developers can create pages to share cross-platform or simply build their whole app for all platforms. James even explains how a developer can make platform-specific adjustments to the code. 


James defines customer-driven development and explains how this allows them to create the best product for developers. The flexibility and capabilities in UI’s and controls allows developers to choose what their app looks like. Caleb asks about the built template components that allows the developer to architect the navigation in their applications. James explains one of the tools, Shell and how it helps you set up your navigation how you want it while handling all the messiness with minimal code. 


Charles asks James about library integration into Xamarin. James starts by sharing what comes in the box with Xamarin, 100% API coverage for both Android and iOS. How this works is, a team looks at the needs of developers and makes a list of the necessary, popular and desired libraries and creates API bindings for them. Libraries that don’t make that list can have a binding generated with Xamarins binding generator, which will include the necessary features needed to use the library. 


The panel changes the topic to the new Xamarin features that James is most excited for. James mentions a one-stop library called Xamarin essentials that will hold all the things a developer might need. He also includes Xaml hot reload for Xamarin forms, this feature will create a better level of productivity as it reloads around typos and mistakes allowing developers to stay in their workflow. The panel discusses the other benefits of a feature like this. Caleb Wells warns how addictive a good hot reload can be.


The episode ends with James giving advice and resources for getting into Xamarin. Charles praises the Microsoft documentation. Caleb gives an endorsement for Microsoft Learn. Charles invites listeners to suggest topics and guests at devchat.tv. 



  • Charles Max Wood

  • Caleb Wells


  • James Montemagno




Charles Max Wood:

Caleb Wells:

James Montemagno: