Skip to content

Latest commit

 

History

History
144 lines (107 loc) · 10.8 KB

q-and-a.md

File metadata and controls

144 lines (107 loc) · 10.8 KB

Q&A with Mark J. Price, author of C# 11 and .NET 7 - Modern Cross-Platform Development Fundamentals, 7th Edition and Apps and Services with .NET 7, 1st Edition

On Tuesday, November 8, 2022, Mark J Price, will publish the seventh edition of his book, C# 11 and .NET 7 – Modern Cross-Platform Development Fundamentals. The book is a comprehensive guide for beginners to learn the key concepts, real-world applications and latest features of C# 11 and .NET 7 with hands-on exercises using Visual Studio 2022 and Visual Studio Code.

In this Q&A, you will learn about Mark’s career, discover his inspiration for writing the book and get a taste of what’s included in the seventh edition and the all-new companion book, Apps and Services with .NET 7.

You can find all of Mark's books either on Amazon or Packt's website.

Can you tell readers a bit about you and your career?

I live in Wiltshire, United Kingdom, and after spending most of my career working for companies as either a programmer or trainer of programmers, I am now a fulltime freelance author.

I love the challenge of making the complex simple. I love to learn about new technology and 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 from 2001 to 2003 when .NET first released.
  • Mentoring young people on apprenticeship programs.
  • Running boot camps to get programmers quickly certified on Microsoft and Optimizely developer platforms.
  • Taking a year-long sabbatical to study screenwriting in Vancouver, Canada in 2005.
  • Teaching mathematics in two London secondary schools (ages 11 to 19) in 2010-11.

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 to digital in the modern world, it’s more important than ever to get people trained on tools like these. I’m proud of the books we are writing at Packt to help our readers thrive with digital well into the future.

What are your elevator pitchs for the books?

The Microsoft Docs site provides comprehensive information about C# and .NET, but it can be overwhelming to find the information you need. My books will get you started quickly and headed in the right direction.

For someone new to C# and .NET, the C# 11 and .NET 7 - Modern Cross-Platform Development Fundamentals 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 and services. 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.

Then, Apps and Services with .NET 7 takes the reader on the rest of their learning journey. There is much more to learn about more specialized libraries, for example, to localize an app for multiple human languages, or to improve performance and scalability with multi-threading tasks. And we are awash with different technologies for building services. For example, gRPC, GraphQL, OData, Minimal APIs, and Azure Functions. Which one do you choose? They each have pros and cons and are the best solution in a particular scenario. By the end of that section, the reader will have seen them all in action and will have learned the most important concepts to be able to select between them.

Similarly with apps and databases. When should you use a traditional ASP.NET Core MVC website? When to use Blazor? What about this new thing called .NET MAUI? Should you store the data in SQL Server or a cloud data store like Cosmos DB, and should you use the SQL API or the Gremlin graph API to model and query the data? Again, each have pros and cons depending on what your goals are.

Both books benefit from my long history in education.

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 books?

Concise, timely and fun.

Both books are comprehensive with the qualifier of breadth rather than depth. In 800+ and 600+ pages each, it would be impossible to cover everything in depth. But my books cover all the topics that others leave out. 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. Instead of having to buy a dozen books to learn about all these .NET related technologies, you only need to buy two.

If a reader only took one thing from the books, what would you hope it was?

Most folks understand that Microsoft have achieved their goal with the unification of .NET. If you still have projects running on .NET Framework, you really should migrate them to modern .NET. .NET 6 was released in November 2021, and it has three years of support from Microsoft. .NET 7 is a Short Term Support or STS release, so .NET 6 will actually be supported for six months longer than .NET 7! But .NET 7 has major improvements in performance and is of the same high quality as .NET 6. And you can start planning today for the Long Term Support (LTS) release of .NET 8 in November 2023 that will not reach end-of-life until November 2026.

What has changed most with the new edition?

The C# and .NET fundamentals 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 8.0 back in October 2019. That is reflected in the small changes in the book in the past few editions. 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 app model features.

What were the most challenging parts of writing the books? On the flip side of the coin, what were the most rewarding aspects?

The most challenging part about writing the books is working with preview releases. Lots of changes can happen between preview and General Availability (GA), so that is always challenging. .NET 7 Preview 1 was released in February 2022, 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# operators were removed halfway through the year. For example, the ?? operator added null checks for method parameters. The .NET libraries saved 10,000 lines of code. But some developers complained about the syntax and in PReview 5 in June the compuler team removed the feature.

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 GA version of .NET.

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 next editions of both books ready to publish in November 2023. So I’ll continue updating both books.

In addition, I’m writing articles about related topics that could not fit in the print book, for example, developing websites using Umbraco CMS and implementing machine learning algorithms with ML.NET.

I would love to launch a YouTube channel to support readers with the trickier topics that would bebenfit from seeing it in a video rather than just reading a description perhaps with a few screenshots.

You can find all of Mark's books either on Amazon or Packt's website.