Q&A with Optimizely's Mark J. Price, author of C# 9 and .NET 5 - Modern Cross-Platform Development
On November 10, 2020 Mark J Price, Digital Learning Product Manager at Optimizely published the fifth edition of his book, C# 9 and .NET 5 – Modern Cross-Platform Development. The book is a comprehensive guide for beginners to learn the key concepts, real-world applications and latest features of C# 9 and .NET 5 with hands-on exercises using VS Code. In this Q&A, learn about Mark’s career, discover his inspiration for writing the book and get a taste of what’s included in the fifth edition.
Can you tell readers a bit about you and your career?
I live in Cirencester, United Kingdom, and I am currently the Digital Learning Product Manager at Optimizely, responsible for all Optimizely’s learning products and developer training. I joined Optimizely in 2016 as a Technical Trainer producing training for our partners and customers.
I love making the complex simple. I love to learn about technology that no one has used before, then share my learning with others in a way that’s easy to understand. I am an expert educator with a passion for technology like Microsoft developer platforms including C# and .NET.
I come from a family of educators. When I was a teenager back in the late 80s, I would earn pocket money by teaching local business owners how to use their computers. I studied computer science at University. I taught myself Visual Basic 1.0 and was a self-employed trainer in the UK for some time. In the late 90s, I moved to San Francisco to participate in the Dot Com Boom. Later, I joined Microsoft to help them educate their millions-strong developer community about the brand new C# programming language and the .NET Framework.
Some of the highlights from my 30 years of experience include: working for Microsoft’s Training and Certification team, mentoring young people on apprenticeship programs and running boot camps to get programmers quickly certified on Microsoft and Optimizely developer platforms. I even took a few diversions including a year-long sabbatical studying screenwriting in Canada and some time teaching mathematics in London schools.
What originally inspired you to write this book?
I embrace the philosophy of saying yes when new opportunities are given to you. In the summer of 2015, my publisher, Packt approached me with the opportunity to write a book about C# 6. I had never authored a book before and had very little idea about the process, but I had the relevant experience to write about the topic. So, I embraced the opportunity and said yes.
At the time, .NET Core wasn’t even released yet, but we decided to write it with the idea that it would be the future of Microsoft development. There’s an aphorism from ice hockey: Don’t skate to where the puck is, skate to where it’s going to be. That’s what I did with the book.
That’s my approach with training in a general sense too. It’s important to understand the current situation, while also thinking about the future. Since I’ve joined Optimizely, we’ve massively grown. Our employee base has tripled and our product portfolio has expanded. I love being able to provide training courses for what may seem like a complex portfolio of products. Given the acceleration of digital caused by the global pandemic, it’s more important than ever to get people trained on tools like these. I’m proud of the work we are doing at Optimizely to help businesses thrive with digital well into the future.
What is your elevator pitch for the book?
The Microsoft Docs site provides comprehensive information about C# and .NET, but it can be overwhelming to find the information you need. This book will get you started quickly and headed in the right direction.
For someone new to C# and .NET, the book is like training wheels when learning to ride a bike. It provides guided step-by-step coding examples to show what is possible. It covers everything from object-oriented programming with the C# language, to .NET class libraries, to building websites, services, and mobile apps. By the end of the book, the reader sees what is possible because they write the code themselves throughout.
For someone who has used C# in the past, but has missed out on the great new features added in the past five to ten years, or is still stuck on .NET Framework, the book is a fast, fun way to modernize their knowledge and skills.
I have to thank my days in screenwriting for the concept of show don’t tell. If you’re reading my book, here’s what that looks like for you: after briefly explaining what you’re about to do, I offer step-by-step tasks that show you a useful feature of the C# programming language or an API in the .NET class libraries. Then I provide links to official documentation or interesting blog articles that can be used to take your learning further without overwhelming you if you decide that feature isn’t relevant to you today.
What three words would best describe the book?
Comprehensive, timely and fun.
It’s comprehensive with the qualifier of breadth rather than depth. In 822 pages, it would be impossible to cover everything in depth. But my book covers topics that others leave out. This is the only C# book to cover new technologies like Blazor WebAssembly and ML.NET for machine learning as well as the fundamentals of C# and the .NET class libraries. Many other books on the topic were written decades ago and even though they’ve been updated, they still spend hundreds of pages on old technology like Windows Presentation Foundation.
If a reader only took one thing from the book, what would you hope it was?
Most folks understand that .NET Core is the way of the future. The future has arrived. If you have existing apps on .NET Framework, now is the time to start migrating your .NET Framework code bases to .NET 5. It will take multiple months and then when .NET 6 is released in November 2021, you will be able to target it and then have three years of support from Microsoft. .NET 6 will be a Long Term Support or LTS release. .NET 5 is a Current release.
At Optimizely, we listen to our customers and partners and we know how important it is for our platforms to keep up the pace of change led by Microsoft. We have made announcements about our support for .NET Core in platforms like Optimizely Delivery Core, currently available as a Community Test Preview (CTP). We have related headless functionality with our Optimizely Content Delivery API and Optimizely Content Management API. I am confident that we will continue to make more announcements related to modern development in the near future. It is an exciting time to be an Optimizely developer!
What has changed most with this new edition?
The book has definitely had time to evolve. The recent incremental improvements to the C# language are nice but it’s been pretty mature since C# version 5.0 back in 2012 so that is reflected in small changes in the book. The same applies to the .NET class libraries. Microsoft has invested a lot of time in improving performance and scalability of the platform but developers get those benefits without having to change the code they need to write.
So, the biggest change with each new edition has been adding new chapters about new app model features. For example, Razor Pages in the third edition, machine learning using ML.NET and .NET CMSs in the fourth edition, and now Blazor Server and Blazor WebAssembly in the fifth edition.
What were the most challenging parts of writing the book? On the flip side of the coin, what were the most rewarding aspects?
The most challenging part about writing the book was working with preview releases. Lots of changes can happen between preview and live, so that was challenging. .NET 5 Preview 1 was released in March 2020, and Microsoft released monthly previews between then and September. In September and October, Microsoft released two Release Candidates with Go Live licenses, meaning the platform is stable and you can create production-level apps with it. That’s when I had six weeks to review all the code in my book to make sure it’d work with the final version. Code that I wrote for Preview 1 then broke with Preview 2 and even fundamental C# keywords changed halfway through the year. Also, the tools that a developer uses to write the code do not know about the changes so your code editor will complain that code is wrong when it is actually correct and vice versa. It is all very frustrating… but worth it when I am able to publish a book on the day Microsoft releases the General Availability version of .NET 5.
The most rewarding part of this process is learning what’s new with the technology and being able to share those learnings with others. I feel really proud of the work I’ve done. With some projects, you dust off your hands and carry on. But this one is about continuous improvement. We’re on the fifth edition now and continue to iterate as .NET evolves.
What are you working on next? Will there be more editions?
I’ve started planning the sixth edition. Luckily, Microsoft is being very transparent about their plans for .NET and they promise to release a new major version every November from now on. So I’ll continue updating the book. The sixth edition will have a new chapter about .NET Multi-platform App User Interface, known as .NET MAUI. This will enable developers to create a single app project that can target iOS and Android mobile devices, as well as Windows and Mac desktops.
In addition, I’m writing articles about related topics that could not fit in the print book, for example, developing on a Raspberry Pi. Finally, I would love to launch a YouTube channel and website. I work a four-day week for Optimizely, so Fridays I’m able to work on passion projects like these, something I really value about working for this company.
Get your own copy of the fifth edition of C# 9 and .NET 5 – Modern Cross-Platform Development on Amazon.