在Mac上开发使用yoeman构建Asp.net core项目并且实现分层引用

1.Yoeman?

yoeman是一个自动化脚手架工具。它提供很多generator,generator相当于VisualStudio的模板,用来初始化项目。更多的就不多说了,写一遍都写不完,自己看吧。

http://yeoman.io/

2.安装 yoeman

安装yoman之前你需要先安装npm。npm是一个JavaScript的包管理工具,一般跟nodejs配合使用。https://docs.npmjs.com/getting-started/what-is-npm

使用npm来安装yoeman:

1
$npm install -g yo

安装速度比较慢,请registry阿里的npm镜像这样会快很多。

3.安装 generator-aspnet

generator-aspnet就是asp.net core的构建器了,我们需要安装它。

generator-aspnet依赖bower工具,所以我们要一起安装。

1
2
$npm install -g bower
$npm install -g generator-aspnet

安装完成后就可以使用yoeman了。

4.使用 yoeman

使用之前我们先假设一下我们的项目叫Coreyo,其中分了2个项目,一个叫Coreyo.Web,一个叫Coreyo.Services。

我们先新建一个项目的根目录Coreyo

1
mkdir Coreyo<br>cd Coreyo

使用yoeman创建Coreyo.Web

1
yo aspnet

yoeman会显示一个界面让你去选择创建的项目的类型

我们随便选一个,就选Web Application Basic 项目吧。

选中之后回车,接着选择使用哪个UI组件

选择Bootstrap就好了,选中回车。

接着让填写项目的名称Coreyo.Web,回车之后yoeman会帮你生成所有的文件,包括默认的Controllers,Views,JavaScript库等,这个跟我们利用ViusalStudio来新建一个项目完成的工作是一样的。

我们用VSCode打开项目文件夹看一下。

运行一下吧。

1
2
3
4
cd Coreyo.Web
dotnet restore
dotnet build
dotnet run

使用yoeman新建Coreyo.Services

我们开发项目的时候肯定是要分层的比如UI,Services,Data,Models等。如果是VS的话就是在解决方案上右键新建项目了,但是VSCode显然是不支持的。我们还得手工来建。

cd ..
yo aspnet

跳到根目录下使用yo aspnet命令来新建一个项目

然后在选择项目类型的时候选择 Library,然后填写一个名字Coreyo.Services回车之后就会自动生成了。

我们使用VSCode打开这个项目,然后把Class1重命名为UserService,添加一个GetUserName的方法。

1
2
3
4
5
6
7
8
9
10
namespace Coreyo.Services
{
    public class UserService
    {
        public static string GetUserName(string userId)
        {
            return "Agile.zhou";
        }
    }
}

然后restore,build一下,没有错误。

Coreyo.Web引用Coreyo.Services

但是现在Coreyo.Services跟Coreyo.Web两个项目是独立,VSCode又没有VS的引用功能,怎么才能让Coreyo.Web来引用Coreyo.Services并调用它的方法呢?

我们打开Coreyo.Web的project.json,在dependencies节点下添加对Coreyo.Services的引用。

"Coreyo.Services":"1.0.0"

然后我们对Coreyo.Services打包

1
dotnet pack

打包成功后,我们切换到Coreyo.Web目录下,使用restore还原

1
2
3
cd ..
cd Coreyo.Web
dotnet restore

还原成功后我们来在HomeController/Index里调用一下UserService的GetUserName方法。

当用户访问首页的时候就会在控制台打印出用户名Agile.zhou

然后我们build,Run Coreyo.Web

1
2
dotnet build
dotnet run

看一下控制台

可见我们的Services被调用成功了。

yoeman构建Asp.net core项目并且实现分层的更多相关文章

  1. 在Mac上开发使用yeoman构建Asp.net core项目并且实现分层引用

    1.Yeoman? yeoman是一个自动化脚手架工具.它提供很多generator,generator相当于VisualStudio的模板,用来初始化项目.更多的就不多说了,写一遍都写不完,自己看吧 ...

  2. Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  3. win10下vs2015创建asp,net core项目并运行在ubuntu14.04下

    上文说了.net core程序在win10与ubuntu下运行,用的是示例程序(https://github.com/aspnet/cli-samples),今天用vs2015 构建asp.net c ...

  4. Docker + Jenkins 持续部署 ASP.NET Core 项目

    Docker 是个好东西,特别是用它来部署 ASP.NET Core Web 项目的时候,但是仅仅的让程序运行起来远远不能满足我的需求,如果能够像 DaoCloud 提供的持续集成服务那样,检测 gi ...

  5. ASP.NET Core 项目简单实现身份验证及鉴权

    ASP.NET Core 身份验证及鉴权 目录 项目准备 身份验证 定义基本类型和接口 编写验证处理器 实现用户身份验证 权限鉴定 思路 编写过滤器类及相关接口 实现属性注入 实现用户权限鉴定 测试 ...

  6. 使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core

    使用Visual Studio Team Services持续集成(一)--构建ASP.NET Core 概述 持续集成(CI)是将代码尽可能频繁地集成到共享仓库中的过程.在代码集成期间,构建中断或测 ...

  7. k8s+Jenkins+GitLab-自动化部署asp.net core项目

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 此文阅读目录: 1.闲聊 ...

  8. ASP.NET Core 项目配置 ( Startup ) - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 项目配置 ( Startup ) - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 项目配置 ( Startup ) 前面几章节 ...

  9. 在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射

    一.前言 在实际项目开发过程中,我们使用到的各种 ORM 组件都可以很便捷的将我们获取到的数据绑定到对应的 List<T> 集合中,因为我们最终想要在页面上展示的数据与数据库实体类之间可能 ...

随机推荐

  1. 提高你的Java代码质量吧:使用构造函数协助描述枚举项

    一.分析 一般来说,我们经常使用的枚举项只有一个属性,即排序号,其默认值是从0.1.2... ....但是除了排序号外,枚举还有一个(或多个)属性. 二.场景 比如,可以通过枚举构造函数声明业务值,定 ...

  2. HTML系列(六):划分文档结构

    常见的网页结构布局是酱紫的,真是美美哒^O^: 一.添加基本标题h1~h6(没什么好说的): 二.标题分组hgroup <hgroup>用来将标题和子标题进行分组.如果一篇文章articl ...

  3. <转>LINQ To SQL 语法及实例大全

    一篇很全很强大的linq to sql 总结 来源:http://blog.csdn.net/pan_junbiao/article/details/7015633 目录(?)[-] LINQ to ...

  4. SSIS: 把存储在数据库中的图片导出来

    Data Flow Task Step 1 获取二进制图片数据 )='C:\labs\Images\' SELECT ThumbNailPhoto,@path+ThumbnailPhotoFileNa ...

  5. hibernate sql查询后对象转换成实体类

    在多表查询的时候使用hibernate的sql查询的时候,一般返回的是object[]数组,或者可以使用  session.createSQLQuery(sql).setResultTransform ...

  6. 共享bean

    到此为止,对于jsp:useBean创建的对象,我们都将它们看作是_jspService方法中的局部变量来处理(jspService由页面生成的servlet的service方法调用).虽然bean的 ...

  7. 关于 WP上应用调试时报错“指定的通信资源(端口)”已由另一个应用程序使用 问题

    问题来源 碰到这个问题是调试wp7项目的时候,之前因为安装的是wp8.0的sdk 包括wp7.5所以wp7的也能用,后来不知道怎么回事wp7项目就不能调试了总是显示启动而不是 device或者是虚拟机 ...

  8. 前自加(++a)与后自加(a++)的差别

    自加是自己加1的操作.比如a++ 是a+1 ,变量a变成了 a+1的值. 如果是简单的只做 a++:或者++a的语句,效果是一样的. 但是如果嵌入到复杂的语句中,比如 b = a++: 和 b = + ...

  9. Hive学习之更改表的属性

    1.修改表名    alter table table_name rename to new_table_name;2.修改列名    alter table tablename change col ...

  10. R与数据分析旧笔记(十一)数据挖掘初步

    PART 1 PART 1 传统回归模型的困难 1.为什么一定是线性的?或某种非线性模型? 2.过分依赖于分析者的经验 3.对于非连续的离散数据难以处理 网格方法 <Science>上的文 ...