Diary of a code trotter

Laurent Bugnion

I am really happy to welcome you here. This page displays the 10 most recent entries of my blog.

For older posts, please go to this page where you can browse the whole content.

For other content, please visit my main page at https://galasoft.ch

Thank you for your visit!!
Laurent

Creating the simplest possible ASP. NET Core form with a POST method

.NET Core, .NET Standard, ASP.NET, Razor
See comments

Simple HTML form in ASP.NET Core

Recently I needed to create a simple page for someone to submit an HTML form. The rest of the Azure aplication is running on Azure serverless functions, Logic apps and Cognitive services, but for that last part I wanted something where the user can click on a link, open the page in a web browser (probably on a mobile device), enter a passphrase in a form and then submit through a POST to an SSL encrypted page. I thought of writing a small Xamarin app and submitting through POST to an Azure Function. Another option would be to use a static HTML page and to use Javascript to submit the Form through a POST to that Azure Function. I don't exclude these two options for the future.

But in the meantime I wanted to experiment with a simple Razor page (CSHTML) that would present an HTML Form to the user, and submit this Form to itself with a POST over HTTPS.

I noticed that the documentation is not great about how to do this in the simplest possible manner and so I created an example with source code and complete instructions.

I hope this is helpful to you!

Happy coding

Laurent

2018 in review, planning for 2019

Azure, Cloud Developer Advocate, Conferences, Microsoft, Personal, Work
See comments

As 2019 is starting, I want to take a moment to reflect on 2018 and think about next year.

After joining Microsoft and the Azure Cloud Developer Advocates team in August 2017, 2018 was the first full year I spent in this team. I had decided to travel a lot and speak in places I had never spoken before, connecting with developers and communities that I had never met earlier. This meant a lot of travel, but I am happy to report that all went very well, I stayed (mostly) healthy (except for a small episode of the flu probably caught on a Singapore-Zurich flight), and I learned a lot of things, both about Azure and about myself :)

The conferences

I listed below all the conferences I spoke at in 2018. There was a total of 53 sessions, some of them online, most of them in person. I loved creating and giving these sessions, but most importantly I loved connecting with the attendees. If I had to pick my two favorite events of 2018, I would probably select two user group events :

The first event happened in Santo Domingo, Dominican Republic. We teamed up with local user group organizer (and MVP) Charlin Agramonte to organize a free event where approximately 100 developers (many of them students) showed up. We had three local speakers open the event with talks in Spanish and then Jim Bennett, James Montemagno and myself each had a talk about various Azure and Xamarin topics. Finally we had a Q&A. The event started at 2PM and we had to stop taking questions at 7:30PM because we had to give the room back. It was full of very positive energy, and great to see so much enthusiasm around coding, Azure, Xamarin and more. This event was right after the Caribbean Developer Conference (CDC) where we already had the chance to talk to 350 local developers (the event was visited by 90% local developers). Out of the 100 we had in Santo Domingo, only 2 had visited the CDC so it was definitely a win to organize this event in addition. Amazing to see such a large and active community in the Dominican Republic!

The second event was the .NET user group in Sao Paulo, Brazil where another 100 developers joined me to hear me talk about .NET Core and .NET Standard. It was another great evening, after Microsoft Ignite the Tour. We had a delicious happy hour sponsored by Microsoft (and organized by my amazing colleague Cynthia Zanoni). Then I gave my talk about .NET Core and .NET Standard and was really happy to show this amazing cross-platform technology. I really believe that this is a game changer, thanks to the cross-platform abilities but also the new tooling such as Visual Studio Code, Linux App services on Azure and more. It was again a really wonderful evening that brought me a lot of satifaction and energy.

I also want to mention Microsoft Ignite the Tour which is a huge team effort where we created a lot of brand new session from scratch. I had two session (Azure Data Fundamentals and Azure Data Migration) which I presented in Berlin and Sao Paulo. You can use these links to download the content. More such events further below.

The team

More than ever I am really happy to have taken the decision to join Microsoft, and the Cloud Advocates team. 2018 saw some changes in the team, with a lot of new recruits and some new groups (Ops Advocates, Regional Advocates). This allows us more flexibility, more reach, more expertises. It also means a lot of new colleagues and some changes in the organization to better organize everyone. Moving forward, my focus will be more on enterprises, which means a lot of .NET (yay) but also some investigations with other frameworks and languages. Very much looking forward to all this! Also working more closely with people like Bruno Borges, Jeremy Likness, Brian Benz as well of course as all the other Cloud Advocates.

We have jobs open! We are looking for new advocates in various regions. Make sure to check our jobs page.

The travel

Of course these conferences, all around the world, came with a lot of travel to get there. According to the App in the Air mobile application, in 2018 I was in the air for a total of 343 hours, for 251,388 km, on 22 different types of planes, 14 airlines, in 29 airports, in 18 countries. My busiest month was October, and the least busy was July (which is when I took vacation with the girls and spent more time on the ground).

Traveling like that was pretty interesting and I learned a lot about myself. When you travel that much, you need a lot of patience, good mood and some conscience about health and exercise. Fortunately I managed to stay healthy and I didn't have any major incident during all that time. Surprisingly I also didn't have many issues or delays during flights. Getting Gold status with Miles and More (100,000 miles) in the middle of the year was a good help and definitely makes travel easier, thanks to lounges, showers, more rest during layovers, more upgrades to business class, and more relaxed boarding process.

I created a cool video thanks to App in the air which illustrates the travel. More stats below.

Let's talk about 2019

We ended 2018 with a lot of work preparing sessions for Microsoft Ignite the Tour, a free event organized by Microsoft Azure and Microsoft 365 teams. We opened the Tour in Berlin and in Sao Paulo in December. For this event, I had to learn a lot about data in Azure, data migration and other concepts. We also had to package the sessions so that multiple speakers can present these sessions around the world, since it is physically impossible for one presenter to attend every session.

2019 will start with a paradox: Because I decided to travel less in 2019, it also means that I am more available for first party events that Microsoft is organizing, such as Microsoft Ignite the Tour. In the first half of 2019, I will be speaking at the following stops of the Tour:

In addition, I am confirmed for the following conferences:

More to follow...

What I want to learn

In 2019, I really want to get more proficient and active in the following areas:

  • More Azure services... Almost every time I create an application, I need to learn new services, or new features of existing services. I love it. It's a great occasion to improve myself as well as testing the documentation. For example, recently I started using Logic app for simple tasks like sending an email or tweeting something automatically.

  • More end-to-end applications: While it's great to document Azure services, I think that we need to be better at creating and architecting end-to-end applications involving multiple services. It is when you start assembling multiple Platform-as-a-service components that you realize how powerful Azure really is. We need more samples and documents showing how to do that.

  • More cognitive services: I love cognitive services. I want to leverage those more and get to know them in depth.

  • Artifical intelligence / Machine learning: I started a course in 2018 but let's face it, with the travel I had, it was hopeless. I really want to spend time on this in 2019.

  • Python: See above AI/ML. Python is the language to know for AI/ML and one pretty much goes with the other. I love to learn new programming languages and am really looking forward to this.

  • More videos: I have recordings of my talks that I need to edit, and publish to my YouTube channel, and I plan to do more recordings in 2019.

Thank you!

If you are reading this, you are a part of my community and I want to thank you for your support and the energy that you give me ever since I started advocating and teaching in 2006. These 12 years have been the most enjoyable and gratifying of my career.

Recently I had the chance to give a keynote at Visual Studio Live San Diego and to reflect on the past 25 years since I started coding in 1993. It was really great to take this trip in memory, and to recall all the languages, frameworks and devices that I was lucky enough to code for. And more importantly, all the amazing people I had the chance of meeting and teaching and learning from.

I am so excited about the next year, and the next 25 years, and what technology will bring. I hope we will have more services and APIs, more languages, more frameworks allowing us to build more applications in an easier manner, to help people in their day-to-day. I hope we will have less bigotry, less aggressivity towards each other, more inclusion and diversity (in tech and otherwise), more tolerance for each other. I plan to spend less time worrying about things I cannot change, and to concentrate on the areas where I have a positive impact.

For this I can really use your support and your help, in 2019 just like in 2018 and the previous years. I wish you all and your families a very happy new year.

Happy coding

Laurent

Travel and conference stats in 2018

TripIt stats

Travel stats 2018 (TripIt)

Meetup in Sao Paulo, Brazil (December 11, 2018)

.NET, .NET Standard, Conferences, Work
See comments

I am super happy to announce that on December 11, 2018, I will be presenting my session .NET Standard, .NET Core, why and how? to the .NET Sao Paulo User group.

DotNet Standard DotNet Core

You can register for this talk today! It's a free event and Microsoft will be offering free food and drinks.

Abstract:

.NET Standard is the new way to create portable assemblies. After learning about portable class libraries in the past years, it is now time to upgrade our game and start coding for Linux, Mac OS and other platforms in addition to Windows. More and more libraries are getting ported to .NET Standard, sometimes really easily and sometimes more painfully. In this session, Laurent Bugnion, the creator of the popular open source MVVM Light Toolkit, will help you understand why .NET Standard can benefit you. We'll talk about ASP.NET Core, see how easily we can containerize and deploy our web applications to Linux on Azure. Finally Laurent will also talk about his experiences converting his open source framework to .NET Standard.

Come meet me!

I am really happy to be for the very first time in Brazil. On the 11th and the 12th, I will be speaking about Azure data and migration of databases to Azure. Adding a meetup to this trip makes me really happy, as this is the occasion to meet even more developers in a smaller setting.

I hope that I will see a lot of developers at this occasion!! Make sure to check all the details from the Meetup site.

Happy coding!

Laurent

Meetup in Sao Paulo, Brazil (December 11, 2018)

.NET, .NET Standard, Conferences, Work
See comments

I am super happy to announce that on December 11, 2018, I will be presenting my session .NET Standard, .NET Core, why and how? to the .NET Sao Paulo User group.

DotNet Standard DotNet Core

You can register for this talk today! It's a free event and Microsoft will be offering free food and drinks.

Abstract:

.NET Standard is the new way to create portable assemblies. After learning about portable class libraries in the past years, it is now time to upgrade our game and start coding for Linux, Mac OS and other platforms in addition to Windows. More and more libraries are getting ported to .NET Standard, sometimes really easily and sometimes more painfully. In this session, Laurent Bugnion, the creator of the popular open source MVVM Light Toolkit, will help you understand why .NET Standard can benefit you. We'll talk about ASP.NET Core, see how easily we can containerize and deploy our web applications to Linux on Azure. Finally Laurent will also talk about his experiences converting his open source framework to .NET Standard.

Come meet me!

I am really happy to be for the very first time in Brazil. On the 11th and the 12th, I will be speaking about Azure data and migration of databases to Azure. Adding a meetup to this trip makes me really happy, as this is the occasion to meet even more developers in a smaller setting.

I hope that I will see a lot of developers at this occasion!! Make sure to check all the details from the Meetup site.

Happy coding!

Laurent

Where can you find me at NDC Sydney?

Cloud Developer Advocate, Conferences, MVVM, NDC, Xamarin
See comments

NDC Sydney

As I just arrived after a long trip from Zürich to Sydney, I thought it would be good to give an update on my activities down under.

Public speaking

Building truly universal applications with Windows, Xamarin and MVVM Light

NDC Sydney, Room 2, Thursday, 4:20pm - 5:20pm

This is the first time that I have the chance to speak about MVVM Light in Australia and I am very excited about it. Together we will talk about MVC and why MVVM is bette for .NET client apps (including Xamarin), then we will refactor a non-MVVM application into an MVVM one. We'll also talk more about data binding and will take a look at Xamarin.Forms too. In this session we will use the .NET Standard version of MVVM Light.

MVVM Light

Porting MVVM Light to .NET Standard, Lessons learned

NDC Sydney, Room 1, Friday, 3pm - 4pm

.NET Standard and .NET Core are the way of the future for cross platform .NET applications and libraries. Here I will explain why .NET Standard was needed as a replacement of Portable Class Libraries, and we will understand the versioning system. I'll show you how to create an ASP.NET Core website, test it on Windows and then deploy and run it on a Linux web server on Azure. Then we will see what happened when I converted my open source library MVVM Light to .NET Standard, and in fact we will do this together so you can see live what are the risks and the rewards. At the end we will build a .NET Core console application, run it on Windows and then on Ubuntu.

NDC harbor cruise

Sydney harbor, Wednesday, 7:15pm - 10:15pm

The NDC conferences are famous for their harbor cruises. In Sydney too we will take a boat and go around, a great occasion to meet many speakers and organizers. You have to register for the cruise and I hear that tickets are going fast so make sure to secure one. More Information here

So far my first day in Sydney was amazing so I really hope to meet many of you and make this an unforgettable week.

Sydney opera house

Happy coding

Laurent

Three new videos on my YouTube channel

.NET Standard, ASP.NET, Azure, Cloud Developer Advocate, Conferences, Website
See comments

I just published three new videos on my YouTube channel. These videos are the beginning of a 14-videos series recorded live at the Modern Web Tour this July in Zurich Switzerland. You can see a recap of this session (including slides and source code) on my Presentations site.

If you like what you see, please subscribe to my YouTube channel. The more subscribers I have, the more motivated I am to create new videos :)

Title slide

More...

Where will you see me in September and October?

Cloud Developer Advocate, Conferences
See comments

Now that the summer break is over, I am preparing myself for quite a lot of travel in the coming months until Christmas. As you will see in this post, I went a little overboard with conferences, and will have the great pleasure to present in various location where I have never spoken before. This year was quite a busy year for me in terms of speaking engagements and travel, and I am so grateful that Microsoft has given me the opportunity to touch so many people and to share knowledge about the amazing services that Azure is offering. I also started recording myself during conferences and while the editing process is not as fast as I may wish, I have already put one such presentation about .NET Standard on my YouTube channel.

More...

Rebooting the blog (again...)

Azure, Blog, Cloud Developer Advocate, Website
See comments

If you have been attentive (and I wouldn't blame you if you haven't), you may have noticed that this blog was quite silent for the past few months. Apart from a blog post around the Microsoft Build timeframe, I didn't do much here. There are multiple reasons for that (aren't there always...), but the main one was that when I joined Microsoft a year ago, I also undertook a fairly big task on my free time: I decided to port my website and my blog to Azure.

APEX

More...

Meet me at Build 2018!!

Azure Functions, Build, Conferences, Microsoft, Xamarin
See comments

As I am on my way to Microsoft Build in Seattle right now, I want to post my schedule so as many of you as possible can come say hi! I really love to meet people from the community and hope that we have a good chance to talk in Seattle too!

More...

Publishing #MVVMLight V5.4.1 with .NET Standard support

.NET, .NET Standard, MVVM, Technical stuff, Universal Windows Platform UWP, Windows 10, Work, WPF, Xamarin
See comments

I just finally published MVVM Light V5.4.1 which is a stable version containing the .NET Standard support that was released as a preview a few months ago. It took a long time for this version to come out due to the new job keeping me busy as well as a few health issues in the family.

I am really happy to have this stable version out and about! Make sure to upgrade your packages! Pay attention to the following details:

More...