
Gray Cardinal .NET - John Galloway
Do you know who John Galloway is? Meanwhile, he is. He is not only one of the authors of Professional ASP.NET MVC, but also the person who is the executive director of the .NET Foundation, in fact - he is responsible for the entire open source .NET. The main topics of this article: details of the .NET Foundation, examples of tasks and a few words about books and the transition to .NET Core. Welcome to cat!
- The .NET Foundation is one of the most exciting enterprises in the history of .NET. Beth Messi wrote a great post on the Medium about how it started. You joined the .NET Foundation in 2017. Can you share your story how it looked for you?
- Honestly, before I got to this job, I was not very familiar with the .NET Foundation specifically, or with organizations of this kind in general. Once, the previous executive director of the .NET Foundation and open source icon Martin Woodward said that he was taking on an exciting new role at Microsoft and wanted me to think about taking his place on the .NET Foundation. Fortunately, thanks to Martin and Beth, I was already a little familiar with the .NET Foundation. But realizing what this organization is, I was very pleased with the opportunity.
The .NET Foundation is an independent organization (founded and partially supported by Microsoft, but nonetheless a separate one), the purpose of which is to support open source .NET. To do this, you need to do a lot of work:
- support more than 75 open source .NET projects (some were Microsoft sponsored, but most came from the community);
- solve legal and logistical issues that allow companies and individual developers to work on projects in the .NET Foundation;
- organize the work of the Meetup Pro group, which includes almost 300 groups around the world with a total number of more than 215 thousand participants;
- Create presentations and workshops to support speakers talking about .NET
- Support hundreds of events around the world, including .NET Conf
- to sponsor conferences and hackathons;
- to carry out many invisible work on the outside to remove obstacles, legal and logistical problems that impede the growth of the .NET community;
- Get involved in anything that can help the .NET community grow and do cool stuff.
- You are the executive director of the .NET Foundation. Can you tell us more in detail what you do?
- This is an interesting, fascinating and difficult work. I am a Microsoft employee and Microsoft allows me to spend most of my work time on the .NET Foundation. This is similar to a system where a company allows an employee to contribute to open source projects. I report to our board of directors, work with an advisory board, strategic technical board, corporate sponsorship group. I just listed the things that the .NET Foundation does; my job is to bring all these ideas to life. I manage everything, including budget, business registration, legal agreements, new initiatives, communications, paraphernalia, local events, all kinds of new things and events. Of course, when one person does everything, it doesn't scale, so another important part of the job is
- The Executive Director has to participate in many different tasks. I am sure you know many interesting stories about the .NET Foundation. Can you tell me something? Are there any unusual or strange problems that need to be addressed?
- Great question! My favorite stories are about how we did something useful that helped a lot of people at once.
For example, I once read on Twitter that the SymbolSource service is closing. SymbolSource provides debugging symbols for NuGet packages, and before they independently provided support for two levels: paid and free. After several years of running such a business, they realized that the paid option does not bring enough income to continue to provide free service, and they will have to close it. I contacted them and together with the NuGet team we turned this into a .NET Foundation project and launched a free version on the .NET Foundation facilities in Azure.
Another interesting task is to obtain certificates and services for signing code for .NET Foundation projects. For open source projects, it is considered good practice to sign binary assemblies (installer, NuGet packages, etc.), but obtaining such services requires registering the project as a legal entity, and organizing the assembly signing is not such an easy task. Oren Novotny, a member of the advisory board and hereinafter - the governing board, came up with an excellent solution - register projects as trademarks of the .NET Foundation. We started working with DigiCert, a certificate provider, and received a discount for the .NET Foundation project. Further, we designed the .NET Foundation as a sub-certification organization, so that each individual project could receive a certificate in its own name. After that, we set up the signing service for our Azure subscription and gave the opportunity to use it to all our projects who need it. It was Oren’s idea, but I’m very glad that it was the .NET Foundation that took up this and brought the idea to life.
- Recently there was the announcement of the .NET Foundation Open Membership . In addition, the board of directors is elected on the basis of an open vote . Can you talk a little more about this, and why is it so important for the .NET community?
- The .NET Foundation has been a separate entity since its inception, but initially two out of three directors were Microsoft employees, and the third was appointed by Microsoft and therefore was not completely independent. We studied many other open source organizations, and we liked how it works in GNOME: people who are most active in the development community can become members of the organization and continue to choose their own advice. Therefore, our new board has one member appointed by Microsoft (Beth Messi), and the remaining six directors are elected members. Each of them works for one year, after which he can participate in re-election if he wants.
This is important for two main reasons:
- This very clearly gives control over the .NET Foundation to the open source .NET community, decides what the organization is doing, and spreads it to the community, expanding the number of people involved.
- This is a good model for scaling what we do or can do. Instead of having the sole executive director (s) do all the work, there are now seven board members and hundreds of community members forming teams and working on things that seem important to them. The .NET Foundation includes many different projects .
- Imagine that one of the participants in our conference has his own open source project. What should he do to join the organization? What help will he receive if this happens?
- If you want to join the organization, you can start here from this page: https://dotnetfoundation.org/projects . If you haven’t been answered for some reason, it’s a good idea to ping us at contact@dotnetfoundation.org. Sometimes a lot of work falls on us and we try not to display projects faster than we cope with their support. But check never hurts. After that, you will need to fill out several forms to verify that the project fits well with the organization. After which I submit the project for advice, we sign an agreement, change copyrights and connect to our services.
After joining the project, we work together to implement the necessary services: signing the code, agreement of the contributor for pull requests, build servers, hosting, and so on. We see our role in supporting projects that already live on their own - despite the fact that there is a certain list of things that a new project needs to implement, in fact, we just help when the project asks for it. In addition, we deal with certain issues such as legal support, marketing and so on.
- You are one of the authors of the book series Professional ASP.NET MVC . The last one (Professional ASP.NET MVC 5) was published in 2014. Should I wait for the series update for ASP.NET Core?
- I do not know. I was a team of authors in the days of ASP.NET 1.0, we worked together on a draft of the book, but we were all very busy with other things, and it turned out to be very difficult to keep up with the pace of development of ASP.NET Core - as soon as we approved the sketch, ASP already happened .NET Core 1.1, 2.0 and so on. In addition, Microsoft documentation has become so good in recent years that books have become much less necessary. I really enjoyed working on books, but I don’t know when the next one will be released, or if there will be an update for Professional ASP.NET at all.
- Many participants in our conference support legacy projects on ASP.NET and the full .NET Framework. Do you think it makes sense to port them to .NET Core? What benefits can be gained from such an update?
- I made whole reports about it - and this is not an easy question. I will give the answer with a short list of thoughts:
- If you are developing something new, it is recommended that you use ASP.NET Core.
- If you have an application on ASP.NET MVC or WebAPI and you are not immersed in deep customization, you can port a large amount of code - especially services, models and most of the logic in controllers. For me, it’s easier to create a new ASP.NET Core project and copy the code there. For example, the Stack Overflow team ported their code from ASP.NET MVC to ASP.NET Core - and they say that it took almost a year, but their project is quite large.
- If you have Web Forms applications, porting will be quite difficult. However, there are several options for doing incremental updates. The project on DotVVM works with both OWIN and ASP.NET Core, so it is possible to incrementally update pages on DotVVM working with OWIN, and as soon as everything works on DotVVM, switch to ASP.NET Core. In addition, models like Razor Pages or Blazor conceptually seem easier to most WebForms developers than MVC, so when porting, I advise you to choose one of them.
- But if you have well-functioning projects on Web Forms, you can simply leave the .NET Framework. Microsoft will not add new features to it, but it will not stop supporting for a long time.
- The final release of .NET Core 3.0 should take place in the second half of 2019 . What are the most interesting differences of this version? Can I already try the preview version, or should I wait for a stable release?
- Oh, there are so many new things! Some of the top features are designed for desktop developers - you can start porting your WPF and Windows Forms applications to .NET Core, while simultaneously getting side-by-side deployment, performance improvements, new APIs from .NET Core, the ability to assemble everything into one EXE, MSIX and much more. There are many nice features in the platform and the SDK, such as the ability to use C # 8.0 and layered compilation. Web developers will be able to make even faster web services using things like HTTP / 2, fast JSON processing, a new worker template, and so on.
Asking me whether to switch to the preview version is not always useful. I’ll always say yes, of course, go over! But at the moment we have Preview 5, and the main changes are taking place in tuning and improving support for desktop development. This is definitely the right time, at least, to start testing, finding and fixing blocking bugs.
We remind you that John the day after tomorrow will deliver a talk on “Open source software foundations: not totally boring, actually super awesome” at the DotNext 2019 Piter conference. If you wanted to come, then this is the last chance. Tickets are here .