好了,废话也不多说,咱们直接来看看这款MVC的造型——你可能会大吼:“这……这特么的都是些什么鬼?”

靠,告诉你吧,我也不知道这都是些什么鬼,反正以前我是没有见过这样的MVC。咦,老纸的config文件呢?跑哪去了?config不是说好的标配吗?我上哪配置数据库连接去?还有那个wwwroot又是什么玩意儿?还有这个__layout下边怎么有environment那个东西?

先不管了,我们先来把我们的系统架构搭建起来吧,这些配置上的问题回头再收拾它。

那好,我们要做的是一个CMS系统,是一个不大不小的玩意儿。那要是把所有的东西都放在一个项目下,回头弄起来肯定是不会太舒服的。我们也利用当前比较流行的简单三层架构,给加一些相关项目进去吧。

额,简单三层架构,都知道吧?三层架构呢分为UI、BLL和DAL,我们的MVC这一整块就当UI了,除了BLL和DAL外,还得加个Models用存放各种模型,有一个DBUtility用于提供数据库的访问。但是呢,我们这里面的数据库访问直接会使用Entity Framework来完成,所以那谁谁谁就不需要了。

好,下边开始快速创建三个类库项目(BLL、DAL、Models)出来。调出  集成终端,用dotnet new -help命令看看创建类库的命令是啥?好了,发现了——是它:dotnet  new classlib,然后  -n 项目名称。如下:

好了,我们创建好了Models,下边接着快速弄出BLL和DAL来,然后还有一个用于一般性操作,比如字符转换啊、文件加密啊之类的公用类common。如下图:

然后,添加引用……创建了项目之后当然要添加引用啊,不引用我咋用?可是我找了老半天,不知道在哪添加引用,真是蛋疼了。都找不到一个生成dll的地方。我去,生成dll?想起来了,刚刚用help看集成终端命令的时候发现有一个build命令,应该是它吧?试一试呗。

好,我们在集成终端中输入命令dotnet build MyCMS.BLL/MyCMS.BLL.csproj先生成BLL试一下,回车,哈哈哈,成了!

接下来生成另外的三个项目。命令分别是dotnet build MyCMS.DAL/MyCMS.DAL.csproj   和  dotnet build MyCMS.Modles/MyCMS.Models.csproj 再和 dotnet build MyCMS.Common/MyCMS.Common.csproj。挺好玩是吧?

但是我们的问题还没有解决啊,就是,怎么进行项目间的相互引用,不会让我去把生成的dll直接拷贝过来放在当前项目下吧?

于是我去翻了微软的官方文档,开源社区什么的,最后在我们自己的项目里的MVC项目下工程文件MyCMS.Web.csproj中发现了下边这个东西——

不会就是这个鬼东西吧?添加引用要在工程文件中手写?我去,真是low到家了。不管怎么样,我们来试一下能不能在这里面吧BLL、Models和Common引用进来吧?我试了一下,不行,但是当我把PackageReference改成ProjectReference后,居然成了!!!我特么真是天才(吹流弊的哈,我是在微软官方文档里找了老半天才发现的)

代码如下:

MyCMS.Web.csproj中配置的引用:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
    <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
    <UserSecretsId>aspnet-MyCMS.Web-45772B25-03D5-4AE3-8841-5C07D7104590</UserSecretsId>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0-preview2-final" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\MyCMS.Models\MyCMS.Models.csproj" />
    <ProjectReference Include="..\MyCMS.BLL\MyCMS.BLL.csproj" />
    <ProjectReference Include="..\MyCMS.Common\MyCMS.Common.csproj" />
  </ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0-preview2-final" />
  </ItemGroup>
</Project>
 

MyCMS.BLL.csproj中配置的引用:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <ProjectReference Include="..\MyCMS.Models\MyCMS.Models.csproj" />
    <ProjectReference Include="..\MyCMS.DAL\MyCMS.DAL.csproj" />
    <ProjectReference Include="..\MyCMS.Common\MyCMS.Common.csproj" />
  </ItemGroup>
</Project>

MyCMS.DAL.csproj中配置的引用:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <ProjectReference Include="..\MyCMS.Models\MyCMS.Models.csproj" />
    <ProjectReference Include="..\MyCMS.Common\MyCMS.Common.csproj" />
  </ItemGroup>
</Project>

好啦,测试一下,一切正常,过程我就不描述啦,m没什么大事却要截图一大堆,想想都累得慌。具体的操作过程,我们在接下来的项目中继续整吧。

今天先整到这里吧。午餐时间到了。

使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之二的更多相关文章

  1. 使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之一

    好吧,现在我们假设你已经安装好了VS Code开发工具..Net Core 2.0预览版的SDK dotnet-sdk-2.0.0(注意自己的操作系统),并且已经为VS Code安装好了C#扩展(在V ...

  2. 使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之三(配置文件读取)

    干了一天的活,还有点时间,给兄弟们写点东西吧. 大家有没有发现一个问题?那就是在.Net Core的MVC项目里面,没有.config文件了!!!同志们,没有config文件了啊,这样搞,我以后要做些 ...

  3. 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台

    使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台. 前面讲解了VSCode开发调试 .NET Core.都只是在windows下运行. .NET Core真正的核心是跨平 ...

  4. 部署到Linux使用VS Code 开发.NET Core 应用程序

    使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台. 前面讲解了VSCode开发调试 .NE ...

  5. ASP.NET Core 2.0 MVC项目实战

    一.前言 毕业后入职现在的公司快有一个月了,公司主要的产品用的是C/S架构,再加上自己现在还在学习维护很老的delphi项目,还是有很多不情愿的.之前实习时主要是做.NET的B/S架构的项目,主要还是 ...

  6. ASP.NET CORE 1.0 MVC API 文档用 SWASHBUCKLE SWAGGER实现

    from:https://damienbod.com/2015/12/13/asp-net-5-mvc-6-api-documentation-using-swagger/ 代码生成工具: https ...

  7. .net core 2.0 mvc 获取配置信息

    mvc_core_config *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 ...

  8. asp.net core 3.0 MVC JSON 全局配置

    asp.net core 3.0 MVC JSON 全局配置 System.Text.Json(default) startup配置代码如下: using System.Text.Encodings. ...

  9. asp.net core 3.0获取web应用的根目录

    目录 1.需求 2.解决方案 1.需求 asp.net core 3.0的web项目中,在controller中,想要获取wwwroot下的imgs/banners文件夹下的所有文件: 在传统的asp ...

随机推荐

  1. 浅谈Swift和OC的区别

    前言 转眼Swift3都出来快一年了,从OC到Swift也经历了很多,所以对两者的一些使用区别也总结了一点,暂且记录下,权当自己的一个笔记. 当然其中一些区别可能大家都有耳闻,所以这里也会结合自身的一 ...

  2. MongoDB--架构搭建(主从、副本集)之副本集

    任何时间点只有一个活跃节点,其他为备份节点,当活跃节点泵机,将会通过选举规则,从备选节点选一个当活跃节点,当泵机的节点恢复之后,则变为备用节点. 节点类型 stabdard:常规节点,存储完整数据,参 ...

  3. Linux: 安装和启用firefox浏览器的java

    之前在linux服务器上浏览一个网页时必须启用java才可以,但是自己只是一个服务器的普通用户,并没有root权限,所以只能把java装在自己的目录下面,因此不能用rpm包,而必须从Oracal官网下 ...

  4. unity3d项目导入android studio

    第一步 拿到unity3d项目,里面包含以下文件 第二步 在android studio下新建一个project 第三步 将unity3d项目目录下的libs下的jar文件复制黏贴到android s ...

  5. 出错场景是升级oracle驱动,将版本从ojdbc14升级到ojdbc6,hibernate执行原生态sql语句会报如下错误

    出错场景是升级oracle驱动,将版本从ojdbc14升级到ojdbc6,hibernate执行原生态sql语句会报如下错误:org.hibernate.MappingException: No Di ...

  6. 几种MQ消息队列对比与消息队列之间的通信问题

    消息队列 开发语言 协议支持 设计模式 持久化支持 事务支持 负载均衡支持 功能特点 缺点 RabbitMQ Erlang AMQP,XMPP,SMTP,STOMP 代理(Broker)模式(消息在发 ...

  7. Java内部类与final关键字详解

    一.内部类的几种创建方法: 1.成员内部类 class Outer{ private int i = 1; class Inner{ public void fun() {System.out.pri ...

  8. JavaScript深入浅出补充——(二)语句和严格模式,对象

    三.语句和严格模式 JavaScript程序由语句组成,语句遵守语法规则. 例如:if语句,while语句,with语句等等-- block块语句 常用于组合0~多个语句,块语句用{}定义 直接以花括 ...

  9. Vulkan Tutorial 25 Images

    操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 Introduction 到目前为止,几何图形使用每个顶点颜色进行着色处理,这是一个 ...

  10. Google调试工具

    f11 逐语句,到过程里,f10逐过程,跳到下一个off,f8调到下一个断点执行.