
Foreword
If I find the right solution, you have to offer me a coffee!—An informal discussion between a
software development veteran and a newbie around the coffee machine.
Working as a professional in software development for over 20 years, I have been lucky to
be an actor and user of .NET technologies since the early beginnings. While working on
many software development projects as tech-lead and application architect, I was also one
of the first MSDN seminar and DevDays speakers in France and Switzerland, teaching and
explaining the amazing new features of C# Beta 1 a long time ago.
I still remember the first French edition of the Professional Developer Conference (PDC) in
2001, where Microsoft's evangelists showed the first public demo of .NET, C#, and
ASP.NET (it was Web Forms era). Every attendee, who were mostly developers, writing
rich VB6 client applications or web applications using ASP, VBScript, or Visual
InterDev, had discovered how easy it was to write .NET applications using the already
well-known paradigms from VB6. However, they also learned how professional tooling
offered by .NET and Visual Studio together with modern languages such as C, C++, or Java
could lead to more productivity and efficiency. It was a big success.
As a result, I spent a lot of time learning and acquiring deep knowledge of .NET, the CLR,
and other CLR languages (C#, VB.Net, and C++/CLI) either through professional projects,
personal applications, blog posts, or by speaking about various subjects during technical
events and conferences.
At that time, high-quality technical information was concentrated on some reference
websites (with special tributes to the fabulous Dotnet Guru, TechHeadBrother).
Since then, the internet and its major application—the web—became essential to the world
economy. Then, cloud computing appeared. It allowed exceptional growth, faster than ever,
which not only transformed software hosting and development practices, but also business
models. Time-To-Market became very important, which meant that the development of
applications and services had to be done in an extremely short and fast time scale to have an
advantage over the competition.
Regardless of the size of the project, it became inevitable to envision continuous delivery,
continuous integration, test automation, and build pipelines. Topics such as Scale-out,
microservices and clouds patterns, operating system agnostic technologies, IaaS/PaaS/SaaS,
API cultures, and other trendy subjects had to be considered and integrated in application
architecture and design decisions.
评论0