zoukankan      html  css  js  c++  java
  • ASP.NET Core 1.0 入门——了解一个空项目

    ASP.NET Core 1.0 入门——了解一个空项目

    警告

    您当前查看的页面是未经授权的转载!
    如果当前版本排版错误,请前往查看最新版本:http://www.cnblogs.com/qin-nz/p/aspnet5-empty-project-introduction.html

    提示

    更新时间:2015年12月12日。

    ASP.NET Core 1.0 RC1 发布已经有一个星期了,因为以前一直是bate版,很多东西都会变,因此一直没有写随笔。 从今天开始,我将为大家带来一系列的 ASP.NET Core 1.0 教程。

    注解

    如果你在使用 Mac OSX ,可以参考 这篇文章 ,来配置环境。

    创建一个空项目

    虽然相信大家不会只创建个Empty的项目,但只要这个最简单,适合作为入门讨论。 首先使用 Visual Studio 2015 创建一个空的项目。

    注解

    如果你是在使用 Linux/Mac OS,请参考 Your First ASP.NET Core 1.0 Application on a Mac

    Visual Studio 2015 在Web目录下有三项可选,选择第一项会开启一个向导,在这里可选 ASP.NET 4.5 或者 ASP.NET Core 1.0 的项目。而后两项是用ASP.NET Core 1.0 创建类库和命令行程序。

    https://qinblog.blob.core.windows.net/images/create-empty-project-0.png

    选择 ASP.NET Core 1.0 Empty 项目。

    https://qinblog.blob.core.windows.net/images/create-empty-project-1.png

    解决方案目录结构

    创建好解决方案后,在解决方案文件夹结构如下:

    提示

    只用在Windows平台的 Visual Studio 2015 才有解决方案的概念,对于跨平台的 Visual Studio Code 是没有解决方案的概念。 同时,仅通过 Visual Studio 2015 创建的才有解决方案,否则只有项目文件。

    • src
    • global.json
    • {your-solution-name}.sln

    {your-solution-name}.sln 这个文件是用于Visual Studio 识别整个解决方案的,和其他类型的项目没有区别,就不做介绍了。

    global.json

    global.json 文件用于定义解决方案级别的设置,作用和 {your-solution-name}.sln 相同。 那为什么还要再定义一次呢? ASP.NET Core 1.0 的目标是在全平台运行,而在非Windows平台是没有强大的IDE的,只能靠一些文本编辑器解决,此时 {your-solution-name}.sln 文件便没有意义了。 global.json 默认的文件内容如下:(其中version的值取决你安装的版本)

    1
    2
    3
    4
    5
    6
    {
      "projects": [ "src", "test" ],
      "sdk": {
        "version": "1.0.0-rc1-update1",
      }
    }
    

    projects 用于定义相关的项目所属的文件夹,也就是在哪些子文件夹下面去寻找项目,默认包含 src 文件夹。 sdk 用于表明使用的SDK版本,包含 version , architecture , runtime 三个子项。 在Windows下, runtime 可选 coreclrclr (默认),在Linux/Mac 下,可选 coreclrmono (默认)。 由于ASP.NET Core 1.0 开始,默认的runtime非常精简,几乎什么都不包含,因此需要以Nuget包的方式下载,下载地址默认在系统文件夹(具体在哪未知)。 我们可以通过 packages 强制指定下载的的文件都放在哪里。 下面是一个较完整的示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
      "projects": [ "src", "test" ],
      "packages": "C:\Program Files (x86)\Microsoft Web Tools\DNU",
      "sdk": {
        "version": "1.0.0-rc1-update1",
        "architecture": "x64",
        "runtime": "coreclr"
      }
    }
    

    项目目录结构

    讨论完解决方案级别的文件结构,让我们再看看项目级别。

    注解

    对于 Mac/Linux 可以直接从这里看起。

    首先,进入到 src{your-project-name} 文件夹。 文件目录如下:

    • PropertieslaunchSettings.json (仅 Windows 平台有)
    • wwwroot
    • wwwrootweb.config
    • project.json
    • project.lock.json (运行过 dnu restore 生成)
    • Dockerfile (Windows 平台没有)
    • {your-project-name}.xproj (仅 Windows 平台有)
    • Startup.cs

    这里面,wwwroot就是运行时网站的根目录(可以在 project.json 内重置)。 Properties 文件夹下的 launchSettings.json 是可以通过 Visual Studio 的图形化界面修改的,就不详细说明了。 project.lock.json 是根据 project.json 文件生成的,重新生成可在项目目录下使用命令 dnu restore 完成,Visual Studio 2015 会在必要时自动运行此命令。 下面重点介绍 project.jsonStartup.cs 两个文件。

    project.json

    project.json 是项目文件,主要包括了对项目的配置(如应该对哪些文件进行编译,输出时保留哪些文件,项目的依赖)和生成dll的元数据(版本号,标题,作者,版权信息等)。

    小技巧

    如果需要向 Visual Studio 2015 导入其他平台创建的项目,可以选择 project.json 作为项目文件,随后 Visual Studio 2015 会生成 .xproj 的项目文件。

    默认的文件如下(综合 Windows平台与Mac平台):

    比较重要(开发中常用)的是 dependencies , commands , frameworks

    dependencies 包含了项目的引用及其版本,因为是空项目,只引用了两个Web服务器,IIS和Kestrel。其中Kestrel是跨平台的Web服务器。

    注解

    dependencies 仅包含了服务器端的引用,如需设置浏览器端的JS/CSS引用,请参考 ASP.NET Core 1.0 中的依赖项管理

    frameworks 包含了需要编译的框架,当在非Windows平台上运行时,请只保留 "dnxcore50":{}

    commands 中包含的若干命令是通过 dnx 命令运行时的可用参数。如使用 dnx web 使用默认参数启动Kestrel服务器(监听 http://localhost:5000 ) 也可以使用以下设置同时监听5000和5001两个端口。

    小技巧

    这种设置还可以保证所有到达5000和5001的请求全部都能被接受,而不要求url中为 localhost

    "commands":{
      "web":"Microsoft.AspNet.Server.Kestrel --server.urls http://*:5000;http://*:5001"
    }
    

    当然也可以通过另外的json文件定义这一行为,否则每次更改都需要运行 dnu restore 命令。

    "commands": {
      "web": "Microsoft.AspNet.Hosting  --config hosting.json",
    }
    

    hosting.json 文件如下:

    {
      "server": "Microsoft.AspNet.Server.Kestrel",
      "server.urls": "http://*:5000"
    }
    

    Startup.cs

    请参考我另一篇博文 ASP.NET Core 1.0 入门——Application Startup

    声明 知识共享许可协议

    ASP.NET Core 1.0 入门——了解一个空项目勤奋的小孩 创作,采用 知识共享 署名-相同方式共享 4.0 国际 许可协议进行许可。
    本许可协议授权之外的使用权限可以从 http://space.cnblogs.com/msg/send/qin-nz 处获得。

  • 相关阅读:
    (转)Epoll模型详解
    (转)彻底学会使用epoll(一)——ET模式实现分析
    (转)Linux内核 TCP/IP、Socket参数调优
    Nodejs RESTFul架构实践之api篇(转)
    创业笔记-Node.js入门之阻塞与非阻塞
    创业笔记-Node.js入门之基于事件驱动的回调
    创业笔记-Node.js入门之一个完整的基于Node.js的web应用
    创业笔记-Node.js入门之JavaScript与Node.js
    在CentOS6.5下配置安装LVS
    zend studio 添加xdebug调试php代码
  • 原文地址:https://www.cnblogs.com/qin-nz/p/aspnet5-empty-project-introduction.html
Copyright © 2011-2022 走看看