I’ve been working on a VS Code extension with XAML Preview and Hot Reload for Uno Platform applications running on Linux. This is a sneak peek of what I already have:
See the screenshots (gif) previews below:
📝 Code Completion
📦 Objects
📑 Attributes
⚡ Events
🔢 Enum Values
🌈 Color Picker
📜 XAML Source Generator
The extension automatically builds the project on the save of the XAML file to create the code behind symbols:
🔗 Links to Documentation on Mouse Hover
🔥 Hot Reload
In addition to the XAML preview in a VS Code tab, the extension also creates an instance of the Uno remote control server to enable hot reload. You can make modifications to the XAML file with the application running:
❤️🔥 Embedded Linux Remote Hot Reload
Another cool feature is the deployment on Embedded Linux devices. If done with the Debug configuration enabled you can also connect to the Uno remote control server from VS Code, so the changes will also be mirrored on the embedded Linux device. In the video, I show the same application running on my development computer Intel i7 (x86-64), and on a Toradex Apalis iMX8QM (arm64) board. Both are connecting to the VS Code Uno remote control server and receiving modifications when I edit the XAML files:
🤔 Conclusions
This is a preview and is not yet available for use. It is a work in progress that I have been doing on weekends and free time, for fun, and I don’t think it has enough quality to be available yet. The purpose here is to gather what I have and receive feedback (even if only to throw everything in the trash 😔).
My main motivation here is to help in the development of UI applications for Embedded Linux using .NET Core/.NET 5 and its ecosystem using VS Code (on Linux and Windows). With that said, I’m focusing on the extension just the use case of the Uno Platform with Skia GTK for Linux platforms (mainly tested on Toradex boards with Torizon OS).
There is still a long journey to make it quality. I don’t have an idea yet but I would like to publish it soon. How, where, and when will depend on the feedback and decisions of the coming days. Please if you like the idea (or not) and it seems to be interesting let your feedback I will love to know.
Kudos to the Uno Platform team and the community that has done an incredible job with the platform. I am still impressed with the amount of functionality that the platform delivers 😁🎉.