Friday, December 03, 2021

I'm updating (most of) my Visual Studio extensions to support VS022

screenshot showing a selection of my extensions in the VS marketplace

Visual Studio 2022 has a lot of changes and new features.

The biggest one for me is that most extensions that supported earlier versions are not 100% compatible with this new version.

This means creating a new version of each extension that I want to be available on both VS2019 and VS2022.

Due to the way that I'm creating new versions (I have my reasons), it's possible that you can install two different versions on VS2019.

Visual Studio 2019 'Manage Extensions' window showing duplicate installed entries

If you have multiple versions of an extension installed, you should uninstall the one that doesn't have "(2019)" at the end. If you're only using VS2022 then you won't see this.

For the most part, having both installed shouldn't be a problem but it might lead to some duplication of output or other strange behavior. I recommend you delete the older version. 

I haven't yet made VS2022 versions of all the extensions available yet. For the ones I haven't done yet, I have a (private) list for the order in which I will change them. Ones with more requests (especially from my GitHub sponsors) get top priority. Not all will be made available on VS2022 and some will take longer to do due to the complexities of migrating the code. If there's something you're curious about (want sooner), open an issue on the appropriate GitHub repository or send me a message.

I'm also using the process of reviewing and updating these extensions to add a prompt to try and encourage more of you to become a sponsor. Sponsor me any amount, either as a one-off on a recurring basis and I'll tell you how to make sure you never see this prompt again. Other sponsor benefits are planned for the future too. ;)

Example of the prompt requesting sponsorship

If you're curious, I might share how effective this is, but early feedback has been positive.

Thursday, December 02, 2021

UnoConf (2021) - Quick reactions

UnoConf happened earlier this week.

UNO Conf 2021
If you missed it, you can watch it online.

There were some big announcements, including the launch of version 4.0. You can learn more from the video or read more in their official blog.

Rather than repeat what you can read elsewhere, I thought I'd share my initial reactions:

  • As with UnoConf announcements in past years, it's impressive how much new functionality and how many new features have been added.
  • It's exciting to see a push beyond just porting existing UWP/WinUI controls and adding new controls (as part of their new toolkit.) [Some of these look like they make some of the steps in the book redundant--and I'd like to find the time to investigate this.]
  • It's exciting to see the Uno Platform team do things that push the wider ecosystem forward and provide broader functionality that Microsoft hasn't created yet. (Even though many assume that Microsoft should have.)
  • It's also exciting that the team is trying to improve the way developers work by introducing their own framework. Hopefully, this will enable some developers to work more effectively and not confuse things. It'll be interesting to see how the message of "you can do and use everything you do on Windows and have it run everywhere" balances with a message that suggests "Uno Platform has their own way of writing code."
  • It was sad to see the continued lack of clarity about the terms UWP, WinUI, & WindowsAppSDK. I know this is a problem caused by Microsoft and not the Uno Platform team. Still, by saying they're using WindowsAppSDK 1.0 and .NET 6, someone could easily be confused that they're still using UWP to build the Windows version of apps and have not yet switched to using WinUI3 (because they can't.)
  • I also got the impression that there's a stronger push to encourage people to see the Uno Platform as an option when just building for the web. If this becomes a popular solution, it will definitely be good for the growth and adoption of the platform as web development is such a big market.
  • While it's clear that adoption and usage are growing, there is still a lack of large apps that have been shipped (and can be talked about publicly as examples of what's possible). That the customer demos and testimonials from the event showed apps in progress or that are shortly to be released didn't help address this concern. Better than showing no customers, though.
  • That 3rd party control vendors used the conference to (re?)confirm their commitment to the platform was also good. But, I got the impression they're waiting to see more platform usage (& their controls) before committing more heavily.

All in all, very positive, although there are a few things I'm cautious about. 

I'm keen to try some of this out and hear the broader feedback once more people have started using v4.0.

What are your thoughts from the conference?

Sunday, November 28, 2021

How to respond to a question?

I've been thinking a lot about communication (I know--fun, right?!) and especially about questions. This is because asking and responding to questions (not just answering them) is a large part of communication.

So, 9(+) ways to respond when asked a question:

  1. Ignore the question. (& the person asking?)
  2. Refuse to answer.
  3. Admit that you don't know.
  4. Admit that you can't answer. (yet?)
  5. Use the fact that the asker has now stopped talking and take the opportunity to talk about what you want to.
  6. Pick a word from the question and talk about that. (Because not properly listening, or as a way to avoid answering the question directly.)
  7. Talk about a topic related to the question. (Because that's what you want to talk about, or as a way of avoiding the actual question.) 
  8. Directly answer the question.
  9. Provide information/suggestions/ideas related to the question that will allow the asker to find (or decide) the answer themselves.
  10. Other?

I know the above is a generalization, and it won't apply to all questions but is a helpful summary of the options that are generally available.

 Not all are always possible, appropriate, or useful, but all are worth considering before asking (or even answering) a question.

Thursday, November 25, 2021

I learned a shocking secret about many technical books

One of the reasons I wrote a book about the Uno Platform with a new publisher was to learn more about the book publishing process so I can look to self-publish in the future. One of the things I learned shocked me.

This fact is that, apparently, many authors don't check that the source code that they include in their books actually works! Additionally, many editors and publishers don't check that the source code that they include in their books actually works either!

I didn't want to be like this.

As part of my process for testing and verifying that everything a chapter was complete, I'd work through the contents of a chapter, following each step and making sure that it included everything exactly as it should be. This would mean starting with a new project, following each step as written, and copying (cutting and pasting) the code into the editor as I went.

For each chapter I wrote in the Uno book, I did this whole process at least three times. Not wanting to rely on assumptions or trust that what I thought I'd written, or knew what to do matched what was in the manuscript. I'd repeat the process after each round of reviews and when I made big changes to the order of steps or the code so that everything still worked as intended.

For the final round of my testing, I thought it might be an interesting artifact to record the process and so I did. Below are videos for the chapters I wrote showing how I went through each chapter to check all the instructions (& code) worked. Sorry, the sound isn't great but hopefully it's good enough if you really need to hear it.

Chapter 4

Chapter 6

Chapter 8

Any questions about these chapters (or the book in general) I'm sure you can work out how to get in touch ;) 

Monday, August 30, 2021

Creating Cross-platform C# Applications with Uno Platform

That sounds like a good name for a book. Doesn't it? ;)

And it is.

Book cover: Creating Cross-platform C# Applications with Uno Platform

I know that when I finished my first book I made a specific point of calling it "my book and not my first book."

Save your judgment.

Like most writers, after finishing my first book, I wasn't in a hurry to ever write anything again.

But things, and times, change.

While I wasn't in a hurry to write another book I was still using writing as a way to communicate and pass on information.

Last year, I realized there were specific things I didn't know about the writing process and set out to understand them better. I wanted to learn so I could be a better writer and communicate more effectively. So, I spent much of the first pandemic lockdown reading books about writing, watching videos about writing, listening to podcasts about writing, and attending online workshops about writing.

Fast forward to earlier this year, and I was approached about writing a book about Uno Platform.

I wasn't in a position to write a whole book but the publisher called my bluff and agreed to me becoming a contributor to one. I figured I could write four chapters of a book and learn more about the process that would help me with my own future self-publishing plans. (More details of these at another time.) It would also be a way to test if I could apply what I'd been learning.

When it suits me, I can be quite assertive and I had strong ideas about what this book should and shouldn't be. I was keen that if I was writing the book, it would be distinctive. There's no point in me doing what just anyone could do. I wanted to make this my own. (Well the chapters I was writing, at least.)

When it comes to technical books there is a convention that over the course of the book the reader will build a basic app and each chapter will add to it as a way to learn about and demonstrate, a new feature or area of functionality. I didn't want to do this and my reasoning is threefold:

  1. I didn't want it to be like every other book. 
  2. I'm not a fan of this convention as it tends to strong-arm features into an app in an unnatural way. I knew trying to do something I'm not a fan of would be frustrating and as writing a book is already a slow, hard, frustrating process this wouldn't be good for my sanity or motivation.
    (I mean no offense to people who write such books. I have great respect for you as you're doing something I can't.)
  3. Most importantly, it didn't fit the subject. 
    Uno Platform enables the creation of an app that can be compiled for multiple platforms but the number of cases where it is appropriate to have the same app run on all those platforms is very small. Instead, I thought it more appropriate to show how Uno Platform can be used to create apps for a number of different scenarios that demonstrated appropriate features running on appropriate devices/platforms.
So, instead of a book that walks you through building one app over the course of many chapters, this book shows how to create multiple apps, one per chapter. The goal is to show how Uno Platform could be used within an organization that needs to build lots of different kinds of apps (both internal and public-facing.) My hope is that when you see the organization we use, and the variety of the apps of apps we create there will be something you can relate to and is comparable with the apps you are considering building.

The book attempts to answer the question "Can I use Uno Platform to build the apps I need to?"
Obviously, there's some theory and an explanation of when and why you would use Uno Platform, but my hope is that by showing how Uno Platform can be used to build some very different apps, that run on different devices (mobile, desktop, and web) you'll see where and how you could be using Uno Platform too.

Is this ambitious for a short, introductory book?
Will I learn that all those other books only build one simple app because it's better for the reader than building many apps?
Will everyone involved have the same vision for the book as me?
You'll have to buy it to find out.