Wednesday, November 23, 2022

MAUI App Accelerator v1.1 - Now with C# Markup support

Version 1.1 of MAUI App Accelerator is now available from the Visual Studio Marketplace.

The big change in this version is the inclusion of C# Markup as a 'Coding Style'.

Partial wizard screenshot showing all three Coding Style options

This adds a way of creating the UI entirely in C# and with no XAML.
Ok, that should probably come with a small asterisk, as the generated apps still include XAML files which define the default control styles. I'm not sure if this is the best way to go. Looking at various public projects, it seems there is mixed opinion on doing this. If you have thoughts on what MAA should do, I have an issue open on GitHub where I'd love your feedback

Exploring the creation of UI without using XAML has been an enlightening experience. It's caused me to think in new ways about creating the UI. It's also tied in with some of the thinking I've been doing recently about how to improve the way XAML is written.

The overarching thing I've seen when exploring creating UIs this way is that it's a technique that's still in its infancy. There's a lack of established patterns and "best practices." Lots of what I thought of as basic, core functionality is missing. There's a lack of consistency and conventions is how people create UIs this way. Also, lots of what I've seen seems to be based on ways of recreating in C# what would otherwise have been done in XAML. This seems to be missing out on some of the potential benefits of not using XAML. When writing C# to create a UI, I find I want to do things very differently from how I would in XAML, but I don't yet know if that would have any currently unforeseen consequences or be too hard for others to understand.
The UI code generated by MAA is still very simple. It's this way, so it's easy to remove (for those needing something different in their app) and understand for those who are learning--or want to know what can/can't/should/shouldn't be removed. 
I strongly suspect that people creating UIs with C# in a couple of years will be doing it differently from how I see it being done today.

I'll continue to watch the MAUI.Markup and CSharpForMarkup repositories, and hope to learn from them as more people start creating UIs this way.

Monday, November 21, 2022

Give a great first technical talk - Table of Contents

Want to know more about the book I'm writing about helping people give their first technical talk at a user group or meetup?

Here's the Table of Contents.

Hopefully, it gives you a good idea of what to expect 

  • Why give a technical talk?
  • You are not going to give a talk like you’ve seen many times before
  • You only need to answer 3 simple questions
  • Question 1. What did you make (or do)?
  • Question 2. Why did you do (or make) it?
  • Question 3. What did you learn from the experience?
  • Shorter talks are better
  • Anyone can give a talk
  • Your experiences (whatever they are) qualify you to speak
  • You speak for the audience’s benefit
  • You’ll get a lot out of speaking too
  • You already know everything you need to do this
  • You are telling a story
  • You are not the hero of this story
  • You don’t need to say everything
  • You want questions and discussion--and there will be some
  • You are not there to sell anything
  • You have nothing to fear. You are among friends
  • Your nerves are a good thing
  • You only need to do very minimal preparation
  • Do not start with PowerPoint (or Keynote)
  • Your first technical talk is just the start
  • Show and tell me how you get on
  • Help others give great technical talks too
  • Appendix 1. – Examples of talks given
  • Appendix 2. – Advice for meetup organizers
  • Appendix 3. – Advice for developer evangelists and marketers

Yes, there are a lot of chapters, but they're all very short.

More details to follow.....

Monday, November 14, 2022

What I learned from 14 years of organizing user groups and meetups

I'm unsure about my future involvement with organizing meetups and user groups.

However, I do know that over those years, I've learned a bunch of things that might be useful to other people who organize, attend, and/or speak at them.

There are 4 key components to organizing a meetup/user group

  1. Finding a venue
  2. Organizing speakers
  3. Telling people about upcoming meetings and persuading them to attend
  4. Running the actual event.

I can't help you with the first component but can do something for the others.

I think the key to creating a strong community where people want to attend regularly is to get attendees to talk about what they've worked on.

Over the years, the most requested subject for talks has been to hear from others about what they've made and what they learned in the process.
Introductions to technologies and basic demos have their place but seeing actual projects and hearing about overcoming the challenges of creating them can be much more interesting and informative. They also have the possibility of providing unique information. Such talks aren't the things you can hear anywhere else and are unlikely to be something you can find a video of online.

Having these talks has a few potential benefits:

  • It provides more unique speakers.
  • It provides unique content.
  • It allows an opportunity to hear from peers.

That all sounds good, but how do you find people to share such experiences?

Well, as part of an event, as an organizer, I'm going to try and talk to as many attendees as possible. Not only is making people feel welcome part of my role as host, finding people with things in common and connecting them with others is much more likely to make them come again. It also gives me a chance to ask people what they've been working on. Then, if they've been doing something I think might be of interest to the group, I ask them if they'd be up for giving a short talk about it at a future meeting.

This simple behavior helps build connection amongst attendees which increases the likelihood that they'll come again, and it helps find interesting new speakers.

It's simple, and it works.

But giving a talk can be intimidating and a lot of preparation. So I don't ask people to do that. I ask them to spend five minutes answering three simple questions.
It takes minimal preparation, is easy to do, and produces great results.

It's been so successful that it's enabled over 100 people to give such talks.

This is the unique insight that I discovered, and I think is valuable to other group organizers.

So, I've written a short book about it.

It's going to be called: 

Give a Great First Technical Talk - Share your experiences at user groups and meetups

More details to follow soon.

Saturday, November 12, 2022

Friday, November 11, 2022

Template Studio for .NET MAUI

 Except it's not called that.

Introducing MAUI App Accelerator.

It's a Visual Studio extension that helps accelerate the creation of new .NET MAUI applications.

After installing the extension, when you create a new app and after specifying the name and location for the project/solution, a 5-step wizard is displayed that allows you to include the pages, features, and functionality that you want.

The goal is to make it simpler and faster to get started with the app you want. It does this by reducing the amount you have to delete from a newly created project and adding more things you want to add. It should save you lots of time when creating a new app and help provide a structure to the codebase that will help you on the path to success.

As a bonus, it also allows you to see different features, functionality, and ways of writing code

Wizard step 1 - pick the version of the .NET Framework to use

Wizard step 2 - Do you want to use MVVM or Code behind?

Wizard step 3 - What do you want the navigation system for the app to be?

Wizard Step 4 - What pages should be included in the app?

Wizard Step 5 - Any other features or functionality to add?

There are lots more features and options I want to add.

Some of these ideas are documented on GitHub. Please add issues with any ideas you have of things you think should be included.

My GitHub sponsors helped make this possible. You can see some of them (i.e. not the ones who made their sponsorship private) credited in the wizard. 

If this is helpful and you want to help support more development, please consider becoming a sponsor.

And as a bonus, I created this little goat icon for it. :)

Goat icon