dotnetClub 的前世今生

三年之前,我做过一个在线调查,当时有不少人还是对一个在线社区表示出期待。.NET Core 技术正风声水起,所以我就开始了用它来开发一个论坛的计划。最近正式将项目推动到了一个 MVP 的状态。感兴趣的朋友,现在可以访问 preview.dotnetclub.net 来预览这个项目的最新状态,去往 GitHub 在 Projects 页面查看最近的开发计划,并在 issues 页面提出宝贵意见。

下面就一些话题展开分享一下:

为什么要开发这个项目?

三年之前,在 ASP.NET vNext 刚刚宣而时,我就做过一个在线问卷,36 人提交了他们对 ASP.NET 社区的看法。参与者 100% 表示认为 ASP.NET 需要一个新的社区。点击此链接 可查看该问卷上的更多数据(密码 asp.net)

640?wx_fmt=png

我参与过很多线上的群聊,包括微信群和 QQ 群等,尤其是 Mike 组织的群一直保持比较不错的活跃度。大家时常聊到很好的话题,在群里聊的时候当时大家都很兴奋、参与感很强,但事后也就过去了,基本也没有什么沉淀。这事实上是一种比较遗憾的浪费,除非事后有人总结了下来,否则对于没参与的人来说基本也没有机会再见到了。现在也有不少微信公众账号,特别是张善友组织的公号 “dotNET跨平台” 一直保持着很高的活跃度。可是公众号文章的范围也基本被限定在微信中,难以让更多人受益——特别是那些遇到了临时的问题,迫切地需要一些信息的时候,公众号的文章却不能第一时间就能在手边提供帮助。

实话说,我不太知道今天的初学者如何学习的,每当想到这一点,我就感到一丝愧疚。因为在过去,我从菜鸟成长的路上,是得益于网上无数前辈们的无私付出的,印象比较深的是周金桥的 ASP.NET 夜话系列,以及老赵的 MVC 系列。

然而现在,我们看到的一个结果是,除了博客园网站上时不时还有人发些文章,但人们看不到 .NET 人员在网上聚集的踪影。在线社区虽然看起来是一种过去用得比较多的形式,但它独有的形式能让参与者讨论的形式得以保存,它保存在开放的互联网上,供需要了解的人们随时检索。

这越发让我感觉到一个在线社区的紧迫性:我们需要一个社区,成为围绕 .NET 技术、特别是 .NET Core 技术的交流场合。它能够让有益的讨论得以沉淀,它能够为初学者提供清晰的指导,它能够让更广阔的技术社区看到 .NET 平台的实践方法和社区气氛。

社区项目的表现形式会是怎样的?

上面说到,我的出发点很简单,根据网友们的反馈,社区基本会是小型论坛的形式,但也会刊载初学者入门、典型场景的解决方案,以及社区活动等内容。

是的,就是形如 cnodejs.org 那样。

社区项目目前的开发进展如何?

社区项目的开发还在进行中,刚发了一个小版本。包含基本话题发布功能:

  • 匿名用户可以注册成为会员

  • 会员登录后可以发布新的话题,话题列表可以翻页

不过,相对于产品,其实社区重在运营。因此,可以说目前社区还没有正式开始运营,目前正在筹备阶段。 目前,上线了测试站 preview.dotnetclub.net 现在可以随便注册,发内容参与测试(测试站上注册的用户和内容会不定期删除)。正式上线时会使用 dotnetclub.net 的域名,届时正式版的内容会一直保留。

项目采用 .NET Core 2.1 开发,源码位于 github.com/jijiechen/dotnetclub,接下来的开发计划在 GitHub 页面的 Projects 页面,欢迎参与贡献,或者提 issues。

社区项目的代码怎样?

这个项目并不难,但我也希望用一些最佳实践去打造它,把项目打造成初学者学习的起点。目前,项目采用 .NET Core 2.1 开发,是一个 ASP.NET Core MVC 项目,目前支持数据库用的是基于 Entity Framework Core 的 Sqlite 数据库。部分所用的技术是:

  • 应用框架: ASP.NET Core MVC

  • DI 框架:内置 DI

  • 数据库:EF Core,Sqlite,FluentMigrator

  • 身份验证:ASP.NET Identity

  • 日志:内置日志组件和 Serilog 文件日志

  • 前端:jQuery, Bootstrap, Summernote, Turndown.js

  • 依赖管理:NuGet、bower

  • 单元测试:xunit 有 Moq

  • 自动化编译:cakebuild,gulp

  • 持续集成:TravisCI 和 AppVeyor

  • 打包工具:docker

  • 部署平台:Hyper.sh

  • 跨平台支持:Windows、Mac 和 Linux:开发在 Mac 和 Windows,部署在 Docker on Linux

可以根据 GitHub 页面上的提示,来编译和运行代码。 接下来的开发计划,前台主要是添加评论功能,另外要增加管理后台功能。管理后台准备做成前后分离的模式,目前还没有确定使用什么框架和工具。

.NET 技术是好技术吗?比起 Java 来如何?

这几乎是每次讨论 .NET 的时候,人们总会问到的一个问题。曾经,老赵直接地对 Java 和 C# 进行了全面的比较,说明了为什么 C# 是优秀的。然而,关于 .NET 和 Java 的讨论仍然不绝于耳。现在让我再一次简单地定义一下对这个问题的理解吧:

  • .NET 平台,尤其是 .NET Core 平台是优秀跨平台和开源的开发平台,这是与任何其他开发平台无关的客观事实,不容争辩

  • .NET 平台的繁荣有益于整个技术圈的创新,也有益于各个开发平台的相互竞争与互补

  • Java 语言是有用的。不过迄今为止,在 .NET 开发人员眼里,它是丑陋的:各种语法和 API 别扭啰嗦、性能差是它的典型问题

  • 围绕 Java 平台的生态是庞大而活跃的,也是包括 .NET 的各种其他开发平台都可以利用的宝库

  • .NET 和 Java 平台,以及对应平台上的各种开发语言都没必要声称自己是最好的开发语言和平台。关于最好的开发平台和编辑语言的争论是徒劳的

640?wx_fmt=png

显然,.NET 技术是好技术,没必要与 Java 相比。

.NET 社区活跃吗?

.NET 社区的活跃度是一个一言难尽的话题。不好说它不活跃,也并不是很活跃。.NET 技术最火热的时代大约是在十年之前,曾在一段时间里没有跟上互联网化的发展,出现低迷的情况。从四年之前开始的 .NET Core 技术已经重新唤起了人们对 .NET 技术未来的信任。

640?wx_fmt=jpeg

尤其是从去年开始,.NET Core 的社区日渐活跃起来。张善友的公号有数万的订阅者,每天的阅读量都在 5000 人次以上;最近由 ThoughtWorks 西安的同事张阳组织的活动有近一百人参与。今天我说要组织 dotnetClub 社区,一上午就组织起了 100 人的微信群。从这些简单数据都能看出来,社区里喜爱 .NET 技术的大有人在。而且社区气氛也在越来越好。

社区将以怎样的方式运营?

通常,技术人员并不善于做运营,我也不例外。所以看到善友兄的公众号那么有人气,我个人是十分佩服的。简单分享一下我的想法。本质上,社区的精髓在于人,而不在于代码。因此,关于社区的建设,我提出几点倡议:

  1. 鼓励专题分享、视频直播、开源项目、线下活动和出书立作等有益于知识传播和生态构建的活动

  2. 与其他形式的既有 .NET 社区(如在线群聊、用户组、翻译组、线下活动等)合作,推动在内容、会员和活动等方面的合作;与平行的其他方面的技术网站合作,组织线上和线下活动,推动 .NET 技术参与到整个技术生态之中

  3. 网站以非盈利性组织的形式运营。开通捐款通道,用于支持网站的日常运作。在网站公开接收捐款和使用款项的状况,确保捐款人的利益得到保障,确保网站持续运营。

  4. 努力保障日常发贴的能力,采用高可用性基础设施确保数据不会丢失。定期公布运营状况,与会员共享对网站的统计分析数据

  5. 后续会支持 GitHub 账号登录,并关闭自主注册机制,以确保用户的质量。引导分享和原创内容方向,鼓励围绕 .NET 及周边技术的内容。邀请注册用户参与内容审核与编辑,接受不良内容举报,确保内容质量的同时,杜绝各类违法信息的传播

项目的代码是开源的,希望大家一同贡献;社区网站的归属也是所有注册会员的,只要是符合上面的运营精神的内容,会员可自由发布,并可以编辑和删除自己发布的内容。

社区的参与者是哪些人?

设想中,社区的参与者包括这些类别:

  • 会员:参与社区讨论和内容贡献的人们。可自由、免费注册。

  • 管理员:从事各类编辑和管理工作,保障社区的日常运营秩序。邀请制。

  • 运维组:从事各类基础工作的人员,以确保社区网站的正常运转。邀请制。

  • 代码贡献者:社区网站项目的功能开发和技术升级的人员。通过贡献代码可自由地成为贡献者。

上述各类用户都是双向无偿的,即社区不向他们支付报酬,他们也不向社区或其他类别的参与者收取酬劳。

社区会商业化吗?

暂时没有这方面的打算,事实上,目前也没有一个对应的法律实体,或者社会化概念。因此,暂时没有人能代表这个社区。目前,如果有针对社区的捐款,或者以其他形式获得的收入,将用于社区的运营。

上文中的“我”是谁

“我”即是“诺普博客”的博主,陈计节。我是 ThoughtWorks 中国的一名咨询顾问,主要工作是与各类型的客户一同工作,改进他们团队的实践方式,提升团队的技术能力,以改善团队产品的质量和开发效率。请到我的博客查看关于我的介绍、取得联系。dotnetClub 社区项目由我发起,项目的代码目前主要由我贡献,网站也将由我运营。

原文地址: https://blog.jijiechen.com/post/dotnetclub/


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【每日一题】7月13日题目精讲—Kingdom

【每日一题】7月13日题目精讲—Kingdom 文章目录题目描述题解:代码:时间限制:C/C 2秒,其他语言4秒 空间限制:C/C 1048576K,其他语言2097152K 64bit IO Format: %lld题目描述 X王国有n位官员,编号从1到n。国…

CanalSharp-mysql数据库binlog的增量订阅消费组件Canal的.NET客户端

一.前言CanalSharp是阿里巴巴开源项目mysql数据库binlog的增量订阅&消费组件 Canal 的.NET客户端,关于什么是 Canal?又能做什么?我会在后文为大家一一介绍。CanalSharp 这个项目,是由我和 WithLin(主要贡献) 完成,…

【每日一题】7月14日题目精讲—压缩

来源:牛客网: 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 262144K,其他语言524288K 64bit IO Format: %lld题目描述 给一个由小写字母组成的字符串,我们可以用一种简单的方法来压缩其中的重复…

【DevOps+LIVE】直播复盘 – DevOps能力成长模型2018首发

昨天晚上小编和DevOpsDays中国核心组织者刘征老师和张乐老师一起嗨了一把,本来规划进行1小时的直播结果延长到了2个小时才结束,观众人数在前半段一直处于增长状态,直到开播一小时到达顶峰。小伙伴也非常给力,一共提出了40多个问题…

Emit动态代理.NetCore迁移之旅

前言】前面我们介绍了Aop 从静态代理到动态代理:https://www.cnblogs.com/7tiny/p/9657451.html我们在.NetFramework平台下使用微软提供的Emit技术实现了动态代理类的生成。但是.NetCore作为微软.Net平台的春天,如果类库光支持.NetFramework,…

asp.net core结合Gitlab-CI实现自动化部署

一、前言在之前的文章中写过k8sJenkinsGitLab-自动化部署asp.net core项目 的topic,这次讲解一下gitlab-ci的CI/CD,说实话,自动化部署是在是非常的舒服,而且gitlab-ci很适合中小项目的部署,大项目推荐使用k8s。阅读目录…

[译]ABP vNext介绍

译者注ASP.NET Boilerplate是.Net平台非常优秀的一个开源Web应用程序框架,在国内也有大量的粉丝.近日, 本人在github上闲逛, 发现ASP.NET Boilerplate团队又悄悄的建立了一个新项目: ABP vNext从名称可以看出来, 这是ASP.NET Boilerplate的下一代框架. 那么, 为什么要开发这个新…

【KMP】重复子串(ybtoj KMP-2)

正题 ybtoj KMP-2 题目大意 问你一个字符串最多由多少个相同的字符串组合而成 解题思路 如下图,先用KMP求出nx数组,那么有1∼nxn1\sim nx_n1∼nxn​和(n−nxn)∼n(n-nx_n)\sim n(n−nxn​)∼n相匹配 不难推出1∼(n−nxn)1\sim (n-nx_n)1∼(n−nxn​)…

C# 8小特性

对于C# 8,有吸引了大多数注意力的重大特性,如默认接口方法和可空引用,也有许多小特性被考虑在内。本文将介绍几例可能加入C#未来版本的小特性。新的赋值运算符:&&和||从第一个版本开始,C#就支持把等号和另外一…

【KMP】周期长度和(luogu 3435/ybtoj KMP-3)

正题 luogu 3435 ybtoj KMP-3 题目大意 定义S的proper前缀为S中非空且len<|S|的前缀&#xff0c;若Q是A的proper前缀&#xff0c;且A是QQ的前缀 现在问你字符串S所有前缀的最大周期之和 解题思路 如上图&#xff0c;对于一个字符串S&#xff0c;如果有周期Q&#xff0c;那…

dotnet core 开发无缝兼容Http和Websocket协议的接口服务

在应用接口开发中往往要针对不同协义开发相应的代理服务&#xff0c;但对于Websocket和http这两种协议来说就有些不同&#xff0c;从实现上来看Websocket可以说是Http的升级子协议&#xff0c; 两者在协议处理上基本一致&#xff0c;具体可以在解释Body上有所不同。FastHttpApi…

centos7 lldb 调试netcore应用的内存泄漏和死循环示例(dump文件调试)

写个demo来玩一玩linux平台下使用lldb加载sos来调试netcore应用。当然&#xff0c;在真实的产线环境中需要分析的数据和难度远远高于demo所示&#xff0c;所以demo的作用也仅仅只能起到介绍工具的作用。通常正常情况下&#xff0c;分析个几天才能得出一个结论的的结果都还是比较…

.NET微服务方案调查

.NET Core就是专门针对模块化的微服务架构而设计&#xff0c;调查下大家选择.NET微服务情况&#xff0c;如果你有微服务方面的需求可以找我哦&#xff0c;可加我微信geffzhang&#xff1a;相关文章&#xff1a;Service Fabric 与Ocelot 的集成Ocelot简易教程&#xff08;二&…

中国开源年会 COSCon 2018 今起接受报名!

大会官网二维码名片&#xff1a;点击文末左下角阅读原文&#xff0c;直达报名链接写在大会前开源 20 年&#xff0c;我们遇到了什么问题&#xff1f;‍围绕开源的方式来开发软件项目&#xff0c;正在走向业界的主流。随着开源的崛起&#xff0c;相应的问题也来了&#xff1a;Re…

.Net Core应用框架Util介绍(四)

上篇介绍了Util Angular Demo的目录结构和运行机制&#xff0c;本文介绍Util封装Angular的基本手法及背后的动机。Angular应用由Ts和Html两部分构成&#xff0c;本文介绍第一部分。Angular Ts的封装Ts是Angular的代码部分&#xff0c;用于编写页面逻辑。依赖注入( Dependency I…

2020牛客暑期多校训练营(第四场)

2020牛客暑期多校训练营&#xff08;第四场&#xff09; 这场属实有点难受 文章目录A Ancient DistanceB Basic Gcd Problem题目代码&#xff1a;C Count New StringD Dividing StringsE EliminateF Finding the Order题意&#xff1a;题解&#xff1a;代码&#xff1a;G Geome…

《C# 程序员的自我修养》送书活动结果公布

截止到9月28日24&#xff1a;00 &#xff0c;本次送书活动《C# 程序员的自我修养》共收到150多位同学参与回复。以下5位同学将获赠书籍一本&#xff1a;夏树、Damon、水墨清华、天天、kang以上同学请加小二微信领取赠书小二微信&#xff1a;geffzhang.NET社区新闻&#xff0c;深…

使用 dotTrace 分析 .NET Core 代码问题

0.背景在项目开发之中&#xff0c;前期可能主要以保证任务完成为主&#xff0c;对于性能优化主要在于开发完成之后再来进行。可能在测试的时候发现部分接口的代码执行时间过长&#xff0c;但是又毫无头绪&#xff0c;这个时候你就需要性能分析工具来协助你排查问题了。常规性能…

【每日一题】7月17日题目精讲—BOWL 碗的叠放

【每日一题】7月17日题目精讲—BOWL 碗的叠放 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 小H有n个碗需要放进橱柜&#xff0c;她希望将他们叠起来放置。你知道每个碗都…

基于Ocelot的gRpcHttp网关

什么是gRpcHttp网关通俗的讲就是将gRpc提供的服务以rest api的形式提供出去&#xff0c;不需要再单独的写一个webapi去做这件事。gRpcHttp网关好处减少不必要代码&#xff0c;减少中间层提高通讯效率。以前可能是这样用了gRpc网关后是这样gRpcHttp网关提供哪些功能可以直接加载…