灰色红衣主教.NET-约翰·加洛韦


你知道约翰·加洛韦是谁吗? 同时,他是。 他不仅是Professional ASP.NET MVC的作者之一,而且还是.NET Foundation执行董事的人,实际上-他负责整个开源.NET。 本文的主要主题:.NET Foundation的详细信息,任务示例以及有关书籍以及向.NET Core过渡的几句话。 欢迎来到猫!


-.NET Foundation是.NET历史上最令人振奋的企业之一。 贝丝·梅西(Beth Messi) 在媒体上写了一篇很棒的文章,讲述了它是如何开始的。 您于2017年加入.NET Foundation。 您能分享一下您的故事吗?


-老实说,在我从事这项工作之前,我对.NET Foundation或一般的这类组织不太熟悉。 曾经有.NET Foundation和开放源代码图标的马丁·伍德沃德(Martin Woodward)担任前任执行董事,他说他正在Microsoft担任新的令人兴奋的角色,并希望我考虑取代.NET Foundation。 幸运的是,由于有了Martin和Beth,我已经对.NET Foundation有点熟悉了。 但是意识到这个组织是什么,我对这个机会感到非常高兴。


.NET Foundation是一个独立的组织(由Microsoft创建并得到部分支持,但仍然是一个单独的组织),其目的是支持开源.NET。 为此,您需要做很多工作:


  • 支持超过75个开源.NET项目(有些是Microsoft赞助的,但大多数来自社区);
  • 解决法律和后勤问题,这些问题使公司和个人开发人员可以从事.NET Foundation中的项目;
  • 组织Meetup Pro小组的工作,该小组包括全球近300个小组,总参加人数超过21.5万;
  • 创建演示文稿和研讨会,以支持演讲者谈论.NET
  • 支持全球数百种活动,包括.NET Conf
  • 赞助会议和黑客马拉松;
  • 在外部进行许多看不见的工作,以消除阻碍.NET社区发展的障碍,法律和后勤问题;
  • 参与可以帮助.NET社区发展并做出色工作的任何事情。

-您是.NET Foundation的执行董事。 您能详细告诉我们您的工作吗?


-这是一项有趣,有趣且困难的工作。 我是Microsoft员工,Microsoft允许我将大部分工作时间用于.NET Foundation。 这类似于公司允许员工为开源项目做出贡献的系统。 我向董事会报告,并与咨询委员会,战略技术委员会,企业赞助小组合作。 我只列出了.NET Foundation所做的事情。 我的工作是将所有这些想法变为现实。 我负责一切事务,包括预算,商业登记,法律协议,新计划,通讯,设备,本地活动,各种新事物和活动。 当然,当一个人处理所有事情时,它无法扩展,因此工作的另一个重要部分是发展组织并联系新人。


-执行主任必须参与许多不同的任务。 我相信您知道有关.NET Foundation的许多有趣故事。 你能告诉我些什么吗? 是否有任何异常或奇怪的问题需要解决?


-好问题! 我最喜欢的故事是关于我们如何做有用的事情,一次就帮助了很多人。


例如,我曾经在Twitter上读到SymbolSource服务正在关闭。 SymbolSource为NuGet软件包提供调试符号,在它们独立提供对两个级别的支持之前:付费和免费。 在经营这样一家公司数年之后,他们意识到带薪期权带来的收入不足以继续提供免费服务,因此他们将不得不关闭该服务。 我联系了他们,并与NuGet团队一起将其变成了.NET Foundation项目,并在Azure的.NET Foundation设施上启动了免费版本。


另一个有趣的任务是获得用于.NET Foundation项目代码签名的证书和服务。 对于开源项目,签署二进制程序集(安装程序,NuGet软件包等)被认为是一种好习惯,但是要获得此类服务,则需要将该项目注册为法人实体,并且组织程序集签名并非易事。 顾问委员会(以下简称理事会)的成员Oren Novotny提出了一个出色的解决方案-将项目注册为.NET Foundation的商标。 我们开始与证书提供者DigiCert合作,并获得.NET Foundation项目的折扣。 此外,我们将.NET Foundation设计为子认证组织,以便每个单独的项目都可以使用自己的名称获得证书。 之后,我们为Azure订阅设置了签名服务,并有机会将其用于所有需要它的项目。 这是Oren的想法,但我很高兴是.NET Foundation接受了这个想法并将其付诸实践。


-最近有.NET Foundation 开放成员资格的公告。 此外,董事会是根据公开投票选出的 您能否多谈一点,为什么它对.NET社区如此重要?


-.NET基金会自成立以来一直是一个独立的实体,但是最初三分之二的董事是Microsoft员工,第三名由Microsoft任命,因此并非完全独立。 我们研究了许多其他开源组织,我们喜欢它在GNOME中的工作方式:开发社区中最活跃的人们可以成为该组织的成员,并继续选择自己的建议。 因此,我们的新董事会由Microsoft(Beth Messi)任命一名成员,其余六名董事为当选成员。 他们每个人都工作一年,之后如果愿意,可以参加连任。


这很重要,主要有两个原因:


  • 这非常清楚地将对.NET Foundation的控制权授予了开源.NET社区,决定了组织在做什么,并将其分发给社区,从而扩大了参与人数。
  • 这是扩展我们所做或可以做的事情的一个很好的模型。 现在有七名董事会成员和数百名社区成员组成团队,并从事对他们而言重要的事情,而不是由唯一的执行董事来完成所有工作。 .NET Foundation包含许多不同的项目

-想象一下我们会议的一位参与者有他自己的开源项目。 他应该怎么做才能加入该组织? 如果发生这种情况,他将获得什么帮助?


-如果您想加入该组织,则可以从以下页面开始: https : //dotnetfoundation.org/projects 。 如果您由于某些原因未得到答复,最好通过contact@dotnetfoundation.org对我们进行ping操作。 有时,我们要承担很多工作,并且我们尽量不要以比他们的支持还要快的速度来显示项目。 但是检查永远不会痛。 之后,您将需要填写几份表格以验证该项目是否适合该组织。 之后,我向项目提交建议,我们签署协议,更改版权并连接到我们的服务。


加入项目之后,我们将共同实施必要的服务:签署代码,贡献者对拉取请求的协议,构建服务器,托管等等。 我们看到了我们在支持已经独立存在的项目中所扮演的角色-尽管事实上有一个新项目需要执行的特定事项清单,但实际上,我们只是在项目要求时提供帮助。 此外,我们处理某些问题,例如法律支持,市场营销等。


-您是Professional ASP.NET MVC系列丛书的作者之一。 最后一个(专业ASP.NET MVC 5)于2014年发布。 我应该等待ASP.NET Core的系列更新吗?


“我不知道。” 在ASP.NET 1.0时代,我是一个作者团队,我们共同编写了本书的草稿,但我们都忙于其他事情,因此,跟上ASP.NET Core的开发步伐非常困难-一旦我们批准了草图,ASP就已经发生了.NET Core 1.1、2.0等。 另外,近年来,Microsoft文档变得如此出色,以至于书籍的需求已经大大减少。 我真的很喜欢读书,但是我不知道什么时候出版下一本书,或者根本不更新Professional ASP.NET。


-我们会议的许多参与者都支持ASP.NET和完整的.NET Framework上的旧项目。 您认为将它们移植到.NET Core是否有意义? 这样的更新可以带来什么好处?


-我对此做了完整的报告-这不是一个简单的问题。 我将给出简短的想法清单:


  • 如果要开发新的东西,建议您使用ASP.NET Core。
  • 如果您在ASP.NET MVC或WebAPI上有一个应用程序,并且没有沉迷于深度定制,则可以移植大量代码-特别是服务,模型和控制器中的大多数逻辑。 对我来说,创建新的ASP.NET Core项目并在其中复制代码会更容易。 例如,Stack Overflow团队将其代码从ASP.NET MVC移植到ASP.NET Core-他们说花了将近一年的时间,但是他们的项目很大。
  • 如果您具有Web Forms应用程序,则移植将非常困难。 但是,有几种选择可以进行增量更新。 DotVVM上的项目既可以与OWIN一起使用,也可以与ASP.NET Core一起使用,因此可以在与OWIN一起使用的DotVVM上逐步更新页面,并且只要在DotVVM上一切正常,就切换到ASP.NET Core。 另外,对于大多数WebForms开发人员来说,像Razor Pages或Blazor这样的模型在概念上似乎比MVC容易,因此在移植时,我建议您选择其中之一。
  • 但是,如果您在Web窗体上有运行良好的项目,则只需离开.NET Framework。 Microsoft不会为其添加新功能,但是很长一段时间都不会停止支持。

-.NET Core 3.0的最终版本应在2019年下半年发布 这个版本最有趣的区别是什么? 我是否可以尝试预览版本,还是应该等待稳定的版本?


-哦,有很多新东西! 一些顶级功能是专为桌面开发人员设计的-您可以开始将WPF和Windows Forms应用程序移植到.NET Core,同时进行并行部署,性能改进,新的.NET Core API,将所有内容组装到一个EXE,MSIX中的能力还有更多。 平台和SDK中有许多不错的功能,例如使用C#8.0和分层编译的功能。 Web开发人员将能够使用HTTP / 2,快速的JSON处理,新的工作程序模板等功能来提高Web服务的速度。


问我是否切换到预览版本并不总是有用。 我会一直说是的,当然,走吧! 但是目前,我们有了Preview 5,主要的变化发生在调整和改进对桌面开发的支持上。 至少在开始测试,查找和修复阻塞性错误的时候,这绝对是正确的时间。


我们提醒您, 后天 John将在DotNext 2019 Piter大会上发表有关`` 开源软件基础:并不完全无聊,实际上超级棒''的演讲。 如果您想来,那么这是最后的机会。 门票在这里

Source: https://habr.com/ru/post/zh-CN451596/


All Articles