ASP.NET MVC系列文章

【01】浅谈Google Chrome浏览器(理论篇)

【02】浅谈Google Chrome浏览器(操作篇)(上)

【03】浅谈Google Chrome浏览器(操作篇)(下)

【04】浅谈ASP.NET框架

【05】浅谈ASP.NET MVC运行过程

【06】浅谈ASP.NET MVC 控制器

【07】浅谈ASP.NET MVC 路由

【08】浅谈ASP.NET MVC 视图

【09】浅谈ASP.NET MVC 视图与控制器传递数据

【10】浅谈jqGrid 在ASP.NET MVC中增删改查

【11】浅谈ASP.NET 页面之间传值的几种方式

【12】浅谈缓存技术在ASP.NET中的运用

【13】浅谈NuGet在VS中的运用

【14】浅谈ASP.NET 程序发布过程

【15】浅谈数据注解和验证

【16】浅谈依赖注入

【17】浅谈表单和HTML辅助方法

【18】浅谈基于APS.NET身份验证

【19】浅谈ASP.NET MVC 模型

【20】浅谈ASP.NET MVC 单元测试

【21】浅谈ASP.NET MVC网络安全;

【22】浅谈ASP.NET MVC八大类扩展

【23】再谈ASP.NET MVC Routing

【24】浅谈ASP.NET 高级话题

【25】浅谈大型ASP.NET MVC项目(含DEMO)

【26】下一系列:ASP.NET WebAPI


一     概述

在我们讲解NuGet前,我们先来看看一个例子。

1.例子:

假设现在开发一套系统,其中前端框架我们选择Bootstrap,由于选择Bootstrap作为前端框架,因此,在项目中,我们需要引入Bootstrap相关文件,大致会执行如下操作。

步骤一:下载Bootstrap文件

输入Bootstrap官网域名   http://v3.bootcss.com/

输入域名,进入官网

步骤二:选择合适的版本,下载Bootstrap包

步骤三:将包引入到项目中

关于将Bootstrap包引入到Project中,过程似乎比较麻烦,更可怕的的是,当在项目中的Bootstrap包需要更新时,需要做重复的工作,这是非常繁琐的,很好的是,VS自带的NuGet包管理器很好地

帮助我们解决了此类问题。

2.何为Nuget包管理器?

对于.NET和VS而言,NuGet是一个.NET包管理系统,它可以很容易地响应运用程序中添加、更新和删除外部库文件及其依赖。

除此之外,我们可以通过创建包,发布包实现包之间的共享,使共享得以实现。

站在微软的角度:要尽可能地尝试,不要指望Microsoft为我们提供所需要的每一段代码,在.NET平台上进行开发的开发人员多大数百万甚至上千万,而每一个开发人员都有其独特的技术和有待解决

的问题,等待Microsoft去解决每个开发人员的每个问题,既形不成规模,也没有意义。值得庆幸的是,他们可以通过网上发布的一些库莱解决他们或他们客户遇到的问题。然而,面对网上的这些有

用的库我们面临三大挑战:发现,安装和维护。但庆幸的是,NuGet却很好地解决了此类问题。

二    将包添加到库

将包添加到库,有许多方式,常用方式为Manage NuGet Package 和 Package Manager Console,下面将结合VS2017和基于ASP.NET MVC模板讲解该两种方式。

(一)Manage  NuGet  Packages

1.准备好VS2017开发环境,并用VS的MVC模板创建一个默认项目:NuGetDemo

分析:

细心的你会发现,在上图中出项了packages.config文件,其实,它就是NuGet包的配置文件,因为我们在选择基于MVC模板创建项目时,默认的引入了第三方库文件,如Bootstrap,Jquery等;

2.打开NuGet包管理器

引用=>管理Nuget程序包

3.打开NuGet包管理器后,我们可执行如下操作

(1)浏览包  (2)查看当前系统已安装包  (3)更新包  (4)在搜索框中搜索包

4.查看包的详细信息

我们以log4net为例

分析:

包的基本信息

5.安装

在安装AnyLog.Log4Net之前,先选择好安装版本,然后再安装。

6.查看安装情况

(1)查看控制台输出安装信息情况

(2)查看NuGet包已安装情况

(3)查看项目引用情况

(4)查看packages.config文件

7.更新包

NuGet包管理器不仅能帮助我们安装包,而且还能帮助我们维护包,我们可以借助NuGet包管理器来更新包。

注意:当我们更新包时,这个操作也会更新该包的所以依赖,以确保只安装依赖的兼容保本。

在以下例子中,我们在项目NuGet中安装了Log4net  2.0.3版本,现在,我们将其更新都最新版本2.0.8,选择“更新”。

点击确认。

注意,此步会更新运用程序中与Log4net相关所有内容。

查看更新结果

8.包恢复

NuGet默认的工作流程是把包文件夹提交到版本控制,这样做的一个好处是可从版本控制检索解决方案,以确保构建解决方案的每个包都能够安装,而且这些包还不需要从其他位置检索。

但是,这样做也是有弊端的,Packages文件夹不是VS解决方案的一部分,因此,通过VS集成管理版本控制的开发人员需要进行一个额外的步骤以确保Packages文件夹能够提交。

(1)TFS可以自动提交Packages文件夹

(2)分布式版本控制系统(如Git),不建议把Packages文件夹提交到版本控制,因为分布式版本控制系统不擅长处理二进制文件,如果项目中大量的包都有变化,分布式版本控制系统库就会

变得很庞大。

可喜的是,NuGet 1.6引入的包修复功能来处理这些问题,这样就支持一个新的个工作流程,我们就不需要把Packages文件夹提交到源代码控制了。

这个过程需要手动执行几个步骤:对每个项目都需要执行单独的一步操作,以启用包恢复(在NuGet2.0~2.6中,每个开发人员还需要配置VS来允许包恢复)

注意:

现在NuGet包恢复时自动启用的,但是在VS的Package Manager设置中使用下面两个选项,可以禁用包恢复功能:

a.允许NuGet下载缺少包;

b.在VS中构建运用程序时,自动检查缺少的包;

通过NuGet 2.7 自动包恢复功能。

(二)Package Manager Console

Package Manager Console是Visual Studio 中基于PowerShell的控制台,不仅提供了强大的功能来查找和安装包,而且还支持Manager NuGet Packages对话框不支持的一些功能。

1.启动控制台

工具=>NuGet包管理器=>程序包管理器控制台

2.查看当前项目已安装的包

在控制台中输入Get--Package,可以查看当前项目已安装的包

拓展:

(1)以前版本,可以通过以下命令来过滤包

Get-Package -ListAvailable -Filter Route

(2)可以采用如下命令代替Get-Package -ListAvailable -Filter 命令

Find-Package [-Id]

3.安装包

在控制台中通过:Install-Package 包名

下图中,我们在项目中安装Log4net,因此输入Install-Package Log4net,由于我已在项目中安装了Log4net,因此提示已经安装。

拓展:

(1)PowerShell命令的支持扩展功能,相当于智能感应。输入命令部分字符,按Tab键就可以查看输入的内容,从而实现智能感应。

(2) PowerShell支持复合命令,比如通过将一个命令管道传输到另一个命令。

如下命令向解决方案中每一个项目安装一个包。

Get-Project -ALL | Install-Package  log4net

(3)PowerShell也支持动态添加新命令

PowerShell强大之处在于,安装的一些包可以为shell添加新命令。

(三)其他方式启动NuGet

如在项目名称中添加,这里不论述,核心内容还是在如上的(一)和(二)部分。

4.关于包源和项目的选择

通过选择程序包源右边的齿轮,即可查看该包及对包的基本操作

5.NuGet包管理器概述

(1)NuGe包管理器基本界面

在控制台操作中,由两大部分组成:常规和程序包源

(2)程序包源概述

拓展:

在Manage  NuGet  Packages 操作包方式中,与如上对应的操作

例子讲解:

下面我们讲解基于如上两种模式添加autofac包的操作过程

Manage  NuGet  Packages 方式

控制台操作方式

(1)找到autofac包的NuGet地址

(2)添加autofac包

三    创建包

篇幅有限,以后专门写一篇文章概述......

四    发布包

篇幅有限,以后专门写一篇文章概述......

五    参考文献

【01】ASP.NET MVC5 高级编程(Jon Galloway,Brad Wilson,K.Scott Allen,David Matson ,孙远帅 译)

六   版权区

  • 感谢您的阅读,若有不足之处,欢迎指教,共同学习、共同进步。
  • 博主网址:http://www.cnblogs.com/wangjiming/。
  • 极少部分文章利用读书、参考、引用、抄袭、复制和粘贴等多种方式整合而成的,大部分为原创。
  • 如您喜欢,麻烦推荐一下;如您有新想法,欢迎提出,邮箱:2016177728@qq.com。
  • 可以转载该博客,但必须著名博客来源。

【ASP.NET MVC系列】浅谈NuGet在VS中的运用的更多相关文章

  1. 【ASP.NET MVC系列】浅谈表单和HTML辅助方法

    [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作篇)(下) [04]浅谈ASP. ...

  2. 【ASP.NET MVC系列】浅谈ASP.NET MVC八大类扩展(上篇)

    lASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操 ...

  3. 【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  4. 【ASP.NET MVC系列】浅谈ASP.NET MVC运行过程

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  5. 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  6. 【ASP.NET MVC系列】浅谈jqGrid 在ASP.NET MVC中增删改查

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  7. 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图与控制器传递数据

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  8. 【ASP.NET MVC系列】浅谈ASP.NET MVC 控制器

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  9. 【ASP.NET MVC系列】浅谈ASP.NET MVC 路由

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

随机推荐

  1. TypeScript入门,使用TypeScript编写第三方控件的方式!

    这是一篇新手篇的typescript插件编写方式!!!! 源码完整地址:https://gitee.com/dissucc/typescriptLearn 1.环境安装 node下载 下载地址:htt ...

  2. php结合redis实现秒杀功能

    <?php 第一种,简单实现 $conn=mysql_connect("localhost","big","123456"); if( ...

  3. 前端页面适配的rem换算

    为什么要使用rem 之前有些适配做法,是通过js动态计算viewport的缩放值(initial-scale). 例如以屏幕320像素为基准,设置1,那屏幕375像素就是375/320=1.18以此类 ...

  4. Netty4 学习笔记之三:粘包和拆包

    前言 在上一篇Netty 心跳 demo 中,了解了Netty中的客户端和服务端之间的心跳.这篇就来讲讲Netty中的粘包和拆包以及相应的处理. 名词解释 粘包: 会将消息粘粘起来发送.类似吃米饭,一 ...

  5. Vue 浅谈前端js框架vue

    Vue Vue近几年来特别的受关注,三年前的时候angularJS霸占前端JS框架市场很长时间,接着react框架横空出世,因为它有一个特性是虚拟DOM,从性能上碾轧angularJS,这个时候,vu ...

  6. eclipse中将项目打包成jar的两种方法,及其问题与解决方法

    第一种:利用eclipse中自带的export功能 第一种方法分两种情况先来看第一种情况:没有引用外部jar的项目打包 步骤一:右键点击项目选择导出(export),选择java>jar文件(不 ...

  7. struts2摘抄

    Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互.struts使 ...

  8. 免费靠谱的 Let’s Encrypt 免费 https 证书申请全过程

    申请 Let’s Encrypt证书的原因: 现在阿里云等都有免费的 https 证书,为什么还要申请这个呢(估计也是因为阿里云这些有免费证书的原因,所以 Let’s Encrypt 知道的人其实并不 ...

  9. 解决failed to push some refs to git

    Administrator@PC-20150110FGWU /K/cocos2d/yc (master) $ git push -u origin master To git@github.com:y ...

  10. configure:cannot guess build type; you must specify one

    换了msys2后.编译xerces-c-2.8.0../runConfigure -pmingw-msys -cgcc -xg++ -s -P/opt/xercesc-2.8.0 后遇到如标题所看到的 ...