前言

从今天我将会写.net core实战系列,以我最近完成的短信服务作为例子。该系列将会尽量以最短的时间全部发布出来。源码也将优先开源出来给大家。

源码地址:https://github.com/SkyChenSky/Sikiro.SMS

.NET CORE简介

  ASP.NET Core 是一个跨平台高性能开源框架,它不是ASP.NET Framework延伸,而是重生,存在质的区别。不得不夸微软,使ASP.NET Core开源是一大进步就是,其源码可以在github上搜索到。其代码的透明度可以为大家更好的把控与理解,并且使大家开发.NET Core的项目有更好的完成度。

  ASP.NET Core的出现为了摆脱.NET  Framework十多年来的Windows系统下的束缚,其开源也是为了建立更好的技术生态环境。

  如今,你可以跨所有平台,任意的在Windows、Mac和Linux等设备上开发并且运行你的 ASP.NET Core 应用。当然你也可以用你喜爱的托管程序( IIS、Nginx、Apache、Docker )进行部署

.NET CORE版本历史

版本

 发布时间

1.0 RC1

2016年2月15日

1.0 RC2

2016年5月16日

1.0

2016年6月27日

1.1

2016年11月16日

2.0

2017年8月14日

2.1

2018年5月30日

了解一个技术本质就是追溯他的发展历程。

  • 2016年1月ASP.NET5 改名 ASP.NET Core 1.0
  • 2016年6月ASP.NET Core 1.0正式发布,与其一起的还有.NET Core Runtime,.NET Core SDK,.NET Core Windows Server Hosting,Entity Framework Core 1.0。
    • 当时我并没有优先吃螃蟹,因为经验告诉我,微软的1.0版本的项目更多的是了解与学习。因为还有很多大量的优秀的开源组件并没及时支持。
  • 2016年8月,伴随着Visual Studio 2017 15.3发布,ASP.NET Core 2.0的出世冲击着我们整个.NET。
    • 当时我也优先以管理后台作为了一个小项目试行,当项目开始不到一半,经验又告诉我,ASP.NET Core已经可以完完全全开发正式的项目了。

.NET CORE优势

跨平台

可以随时在Windows、Mac和Linux上开发并部署你的项目。

多工具选择

Visual Studio Code、Visual Studio、Jetbrains Rider

高性能

更高的效率,更小的内存占用。虽然我没亲自测试过,不过网上很多测试数据。

灵活部署

ASP.NET Core不再是基于System.Web.dll,不再需要依赖IIS与windows, IIS、Nginx、Apache、Docker供你选择

命令行工具

.NET程序所有的运行脚本都可以用命令行工具执行(cmd,bash),因而无需花费更多的时间成本重复学习。

指令 帮助
dotnet new 产生新的基本 .NET 项目内容
dotnet restore 还原所参考的 NuGet 包
dotnet build 建造 .NET 项目
dotnet publish 产生可发行的 .NET 项目
dotnet run 编译与立即运行 .NET 项目
dotnet repl 引导交互式的对话
dotnet pack 将项目的产出封装成 NuGet 包

模块化

按需使用组件包,使你的应用程序更新的高效、轻便、健壮。

结束

自2016年的.NET CORE诞生,我们见证了微软一步步的改变与进步,前段时间花了巨资收购了GitHub(不知道他在下一步什么棋)。虽然身边很多原本用.NET的公司转型了JAVA,然而这个世界的本质其实就是一个周期变动与轮回。

我们不求跟风,但愿精益求精

.net core实践系列之短信服务-为什么选择.net core(开篇)的更多相关文章

  1. .net core实践系列之短信服务-目录

    前言 经过两周多的业余时间,终于把该系列的文章写完了.第一次写系列,可能部分关键点并没有覆盖到,如果有疑问的朋友可以随时反馈给我.另外也感谢在我发布文章时给予我方案建议与反馈源码BUG的朋友们.下面是 ...

  2. .net core实践系列之短信服务-架构设计

    前言 上篇<.net core实践系列之短信服务-为什么选择.net core(开篇)>简单的介绍了(水了一篇).net core.这次针对短信服务的架构设计和技术栈的简析. 源码地址:h ...

  3. .net core实践系列之短信服务-Sikiro.SMS.Api服务的实现

    前言 上篇<.net core实践系列之短信服务-架构设计>介绍了我对短信服务的架构设计,同时针对场景解析了我的设计理念.本篇继续讲解Api服务的实现过程. 源码地址:https://gi ...

  4. .net core实践系列之短信服务-Api的SDK的实现与测试

    前言 上一篇<.net core实践系列之短信服务-Sikiro.SMS.Api服务的实现>讲解了API的设计与实现,本篇主要讲解编写接口的SDK编写还有API的测试. 或许有些人会认为, ...

  5. .net core实践系列之短信服务-Sikiro.SMS.Bus服务的实现

    前言 前两篇<.net core实践系列之短信服务-Sikiro.SMS.Api服务的实现>.<.net core实践系列之短信服务-Api的SDK的实现与测试>分别讲解了AP ...

  6. .net core实践系列之短信服务-架构优化

    前言 通过前面的几篇文章,讲解了一个短信服务的架构设计与实现.然而初始方案并非100%完美的,我们仍可以对该架构做一些优化与调整. 同时我也希望通过这篇文章与大家分享一下,我的架构设计理念. 源码地址 ...

  7. .net core实践系列之短信服务-Sikiro.SMS.Job服务的实现

    前言 本篇会继续讲解Sikiro.SMS.Job服务的实现,在我写第一篇的时候,我就发现我当时设计的架构里Sikiro.SMS.Job这个可以选择不需要,而使用MQ代替.但是为了说明调度任务使用实现也 ...

  8. php 阿里云短信服务及阿里大鱼实现短信验证码的发送

    一:使用阿里云的短信服务 ① 申请短信签名 ②申请短信模板 ③创建Access Key,获取AccessKeyId 与 AccessKeySecret.(为了安全起见,这里建议使用子用户的Access ...

  9. PHP开发实用-阿里短信服务(Short Message Service)

    步骤 1 使用阿里云短信服务正常发短信需要 短信签名 短信模板 1申请短信签名   根据用户属性来创建符合自身属性的签名信息.企业用户需要上传相关企业资质证明,个人用户需要上传证明个人身份的证明.   ...

随机推荐

  1. 如何修改redis配置

    相关内容: Redis的配置: 通过config set命令修改配置 查看配置 设置新配置 直接修改配置文件redis.conf 常见配置项: 服务端连接相关 日志记录相关 服务端保持相关 首发时间: ...

  2. 利用python实现简单词频统计、构建词云

    1.利用jieba分词,排除停用词stopword之后,对文章中的词进行词频统计,并用matplotlib进行直方图展示 # coding: utf-8 import codecs import ma ...

  3. [20171110]_allow_read_only_corruption参数.txt

    [20171110]_allow_read_only_corruption参数.txt --//昨天在修改查询隐含参数脚本时发现一个参数_allow_read_only_corruption,感觉应该 ...

  4. 用条件属性而不是#if

    使用#if   #endif可以在同样源码上生成不同的编辑(结果),通常是调式(debug)和发布(release)版本. 但是#if/#endif很容易被滥用,使得编写的代码难以理解和调式,所以C# ...

  5. MySQL重做日志相关

      Ⅰ.事务的实现 这里我们先抛出答案,通过答案再展开分析 特性 实现 A(原子性) redo C(一致性) undo I(隔离性) lock D(持久性) redo/undo 本节针对redo展开分 ...

  6. 7z常用命令行&7z检测压缩包完整性&7z压缩包错误不执行rsync同步

    7Z简介&常用命令 7Z脚本使用说明 7Z检测压缩包完整性脚本 7Z压缩包错误不执行Rsync脚本 1.7Z简介&常用命令 ⑴简介: 7z,全称7-Zip, 是一款开源软件.是目前公认 ...

  7. Git永久删除文件和历史记录

    目录 Git永久删除文件和历史记录 使用filter-branch 添加到.gitignore文件里并push修改后的repo 清理和回收空间 Git永久删除文件和历史记录 造成你想从git存储库中永 ...

  8. 【PAT】B1054 求平均值(20 分)

    一开始就想用sscanf和sprintf去实现,但是没有设计好思路,卡住了. 看了网上别人的博客,都是用的很复杂的逻辑分别判断,一言不合就七八十航代码 今天早上看了柳神的代码,发现跟自己的思路一样,开 ...

  9. popen()/pclose()阻塞性问题验证

    背景: popen()函数通过创建一个管道,调用fork()产生一个子进程,执行一个shell以运行命令来开启一个进程.这个管道必须由pclose()函数关闭,而不是fclose()函数. pclos ...

  10. Python进阶(三)

    匿名函数 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果.用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突.此外,匿名函数也是一个函数对象,也可以把匿名函 ...