.net Core 自我学习随笔(一)——开门红,还是开门绿?

来源:互联网 发布:软件拆卸 编辑:程序博客网 时间:2024/04/27 18:07

众所周知 .net 技术一直以来是 Microsoft 自用的技术,非 Windows 不可取!虽然某些团体发神精,在 Linux 或 OSX 上开发 Mono 来支持 .net,但是始终都是很糟糕,可以说惨不忍睹。

但顺着 Microsoft love Linux 的兴起,Microsoft 开始了跨平台之旅。我和我们公司的经理常说,未来是跨平台的,如果谁不跨,谁就会死。Microsoft 也一样,因为万事万物都是无常的——从来就没有老不死的。。。

好了,言归正传,这次的开篇主要大概介绍一下安装这个传说中的 .net Core 的路线图。具体的,我就不演示了。因为你只要照着官网上写的内容一步步做就成了,我感觉自己没必要抄啦——毕竟这么多系统,安装方式不同啦^^:

https://dotnet.github.io/

你也可以直接进入 “Getting Started”:
https://www.microsoft.com/net/core

但是,丑话说在安装前:
1、.net Core 只支持 .net Core 库,不会支持 .net framework 里的所有库。所以,你之前做的相应的 .net 代码很多都不兼容——好像可以说几乎。

2、.net Core 项目好像 Microsoft 重视程度不是很高,因为我今天写博文时,发现哥们的网站又 ERROR。

这里写图片描述

3、在 Windows 上安装时,我们通常是下载安装包。但是一定要记住,必须把 “Internet 选项”中“高级”里的“设置”下的“检查服务器证书是否已吊销*”的勾去了,不然你是安不上的——这是 Microsoft 被 12306 带坏的节奏!

这里写图片描述

4、有些 Linux 上安装也可能出现问题。比如,很多人按照官方的方式一步步安装完后,在执行“dotnet new”时出错,比如会显示:
Failed to initialize CoreCLR, HRESULT: 0x80131500

这说明少了 curl 相关的库,解决办法:
Debain 执行以下语句(我用得是 Deepin 2015.3 是其于 Debain,而不是 Ubuntu):

sudo apt-get install curl libunwind8 gettext libicu52

Fedora 要执行下面的语句:

yum install icu

5、还是 Linux!你以为万事大吉。其实不对的,还有网络问题。见于 Microsoft 给 Linux 提供的钢丝网,在执行“dotnet restore”时,最好前面加上“sudo”——对于 Deepin 2015.3 是这样紫地!其它发行版自己脑补,这样成功率很高。而且,也不一定成功,毕竟网络不是太好。

有人要问了“dotnet restore”是啥子嘛?其实就是根据其项目文件“project.json”中的内容来建立依赖项。但是,我只成功一次,但是还是不完整。不知道是不是我的 Deepin 本身的问题,或者是 Microsoft 的网络真心不给力?好吧,当时在 Win10 上安自带的 bash,也失败了 N 次。

下面我们来建立一个真正的 .net Core 的 MVC 网站(=^ω^=)

我是为了方便,先用 Visual Studio 2015 建立的——其实,用别的也成,比如 Visual Studio Code 或其它什么的。。。呃。。。好吧。。。

打开“Visual Studio 2015”,之后“新建”-> “项目”,选择“ASP.NET Core Web Application (.NET Core)”然后如下图所示:
这里写图片描述

之后,其它照之前的 .net 项目一样写“名称”,选“位置”,填“解决方案名称”,之后确定什么的。。。

然后选择“Web 应用程序”,其实其它的也成,我就是感觉这个比较顺爪:
这里写图片描述

之后,就和以前的 .net 项目着不多的结果
这里写图片描述

但是,我们发现在“解决方案资源管理器”上有一个“正在还原程序包 XXX”。你可别真认为他是在还原,其实他是在下载相应的类包:

这里写图片描述

如果网络较差,那么可能就出现错误了。这也就是:
这里写图片描述

其实,我们看一下其“项目结构,还是非常合理的”:

这里写图片描述

他们把 项目所有的程式代码全部放到了 src,感觉是和 Java 学的。其实,微软最早的 ASP,也是为了和 Java 竞争高下,这回感觉又是如此。

wwwroot:是放纯静态资源。为什么说纯静态,因为这里的东东不像之前中的 View 那样,要进行相应的处理。这里的东东,系统根本就是直接拿来用。所以,如果有些公司想用 html 以 JS 进行远程调用,这个系统最好了。但也直接相应的 MVC 中的 View。

View:微软的视图,没什么说的啦,用过的都懂!

Controllers:也是,用过的全明白,这个是控制器。其它的,也都能看明白。

project.json:这个文件是非常重要的,未来要用到的任何 NuGet,全要在这里进行操作,而这里抽文件内容全是 Json 格式。具体就是:
这里写图片描述

差不多都是【”包名” : “版本”】这种情况,也有一些特别的,要求提供 type 之流。而这里的改变后,对应的“解决方案资源管理器”上又会显示一个“正在还原程序包 XXX”。这里你就要祈祷别出错!

我们看到,除了我们工作时要用到的“Src”大文件夹外,有人要问了“Solution Item”文件夹是干什么的?其实就是“解决方案项目文件夹”。里面就是这个解决方案相关的配置。我们如果要对解决方案动手的话,就要用这个文件夹了。其实,这个也是用 Json 写的。

好了,基本的开门知识就介绍到这里。其它的信息,就等下周告诉你——很可能是告诉你怎么连数据库呀!

如果有问题,可以发邮件至:yangzhencheng_001@163.com,但可能我回得比较晚。如果大家有时间,或者玩《守望先锋》可能找“神密”,加好友询问,或者去“FF14”找个叫“天诚”的家伙!在博客评论里问也成 ^^!

PS: 如果在执行 dotnet restore 发生段错误时,尤其在 Deepin,或者 Debain 高版本上,这时就要安装“libcurl3_7.38.0-4+deb8u3_amd64.deb”才能解决。

1 0
原创粉丝点击