asp向不同的用户发送信息_【asp.net core 系列】 1 带你了解一下asp.net core

0. 前言

这是一个新的系列,名字是《http://ASP.NET Core 入门到实战》。这个系列主讲http://ASP.NET Core MVC,辅助一些前端的基础知识(能用来实现我们需要的即可,并非主讲)。同时这个系列也会在后续介绍http://ASP.NET Core 平台的其它类型的项目,并带领大家以各个类型的项目为主要架构开发一个网站或者网络服务中心。

下图是官网关于http://Asp.net Core支持的项目的介绍

bf252d6bb7079ce12a327c9675143602.png

1. http://ASP.NET Core 介绍

这一节我将为大家介绍一下 http://asp.net core的发展历程。

最早,微软为了替代CGI脚本开发了asp应用。ASP 全程 Active Server Page,意思是活动的服务器网页。ASP是一种HTML+服务器代码的组合,其后缀是.asp 。

在2001年,微软宣布将asp迁移到.NET Framework上,形成了一种新的脚本语言——名为http://asp.net。在2002年发布第一版,名为http://ASP.NET 1.0,附属在.NET Framework 1.0 上。http://ASP.NET 不仅仅是asp + ,更是 asp + .net 。结合了.net之后的http://asp.net 更加强大。

在2008年之前的某一年,http://asp.net mvc 上线了。从此之后,http://asp.net 分为了两种技术:http://asp.net webform(也就是原有的http://asp.net);http://asp.net mvc。MVC极大的减少了在前台页面中设置大量的服务器脚本,同时MVC更贴近与HTML语言,使得程序开发工程师和前端能更好的配合 。

在2016年,微软为了实现自己的跨平台战略,将.NET Framework提取出了.NET Core版本,同年发布1.0版本。与此同时发布了http://asp.net core RTM版,正式版发布于2017年。

从此.net core带着它的小伙伴 EF Core和http://ASP.NET Core一路高歌猛进,然后发展成了如今的现状。

当然,以上内容省略了大量的情节,有兴趣的小伙伴可以自行查阅相关资料。这里就不做过多的介绍了,因为篇幅太长了,而且也会偏离主线。

1.1 为什么是 http://ASP.NET Core

那么,为什么我们选择了http://ASP.NET Core呢?目前市面上还有很多行业系统和领域相关系统都使用着 http://ASP.NET Webform,市场占比依旧不小。但是我们要考虑一件事情,那就是先行者优势和弯道超车。

现在的情况是,老的技术市场已经站满了人,新的技术市场还空空如也(当然,在我发这篇文章的时候http://---2020-5-29---asp.net core已经不算新了)。如果想入场一个技术,那么最适合的就是学最新的。

再者,http://ASP.NET Core支持跨平台。最早.net是不支持跨平台的,后来是Mono 经过努力让.net 开始支持跨平台。后来微软提出了跨平台战略和物联网战略,才提出正式的跨平台实现。

那么,我想到这里理由还是比较充分了。

1.2 为什么是MVC

MVC也就是Model-View-Controller的简称,意思是模型-视图-控制器。它的通信流程是这样的:

  • 用户访问界面(View),提交请求(包括访问请求)
  • 界面向控制器(Controller)转送用户的请求,并进行一定程度封装
  • 控制器(Controller)处理并完成后,以Model的形式返回给View
  • View解析返回的Model,然后绘制界面展示给用户

MVC降低了页面和控制器的耦合,简单的讲就是极大的减少了页面上的服务器脚本。另外,增强了页面复用。http://ASP.NET Core MVC 在这一方便进一步优化了,又减少了不符合HTML格式的标签。

当然,MVC还有更多的好处。不过,最主要的一点就是,MVC可以让你离那些大佬更近一步(意思就是能让你获得一个工作)。

2. http://ASP.NET Core 入门

在上一节,我胡扯了一堆,说不定打消了很多人的兴趣,哈哈,开个玩笑。让我们正式开始来试试http://ASP.NET Core。

  1. 先创建一个解决方案:

    dotnet new sln --name AspDemo
  2. 创建一个MVC项目然后加入到解决方案

    dotnet new mvc --name MvcWeb
    dotnet sln add MvcWeb

这时候,如果不出意外的话,你能在AspDemo目录下看到如下目录结构:

├── AspCoreDemo.sln
└── MvcWeb├── appsettings.Development.json├── appsettings.json├── Controllers│   └── HomeController.cs├── Models│   └── ErrorViewModel.cs├── MvcWeb.csproj├── obj│   ├── MvcWeb.csproj.nuget.dgspec.json│   ├── MvcWeb.csproj.nuget.g.props│   ├── MvcWeb.csproj.nuget.g.targets│   ├── project.assets.json│   └── project.nuget.cache├── Program.cs├── Properties│   └── launchSettings.json├── Startup.cs├── Views│   ├── Home│   │   ├── Index.cshtml│   │   └── Privacy.cshtml│   ├── Shared│   │   ├── Error.cshtml│   │   ├── _Layout.cshtml│   │   └── _ValidationScriptsPartial.cshtml│   ├── _ViewImports.cshtml│   └── _ViewStart.cshtml└── wwwroot├── css│   └── site.css├── favicon.ico├── js│   └── site.js└── lib├── bootstrap│   ├── dist│   │   ├── css│   │   │   ├── bootstrap.css│   │   │   ├── bootstrap.css.map│   │   │   ├── bootstrap-grid.css│   │   │   ├── bootstrap-grid.css.map│   │   │   ├── bootstrap-grid.min.css│   │   │   ├── bootstrap-grid.min.css.map│   │   │   ├── bootstrap.min.css│   │   │   ├── bootstrap.min.css.map│   │   │   ├── bootstrap-reboot.css│   │   │   ├── bootstrap-reboot.css.map│   │   │   ├── bootstrap-reboot.min.css│   │   │   └── bootstrap-reboot.min.css.map│   │   └── js│   │       ├── bootstrap.bundle.js│   │       ├── bootstrap.bundle.js.map│   │       ├── bootstrap.bundle.min.js│   │       ├── bootstrap.bundle.min.js.map│   │       ├── bootstrap.js│   │       ├── bootstrap.js.map│   │       ├── bootstrap.min.js│   │       └── bootstrap.min.js.map│   └── LICENSE├── jquery│   ├── dist│   │   ├── jquery.js│   │   ├── jquery.min.js│   │   └── jquery.min.map│   └── LICENSE.txt├── jquery-validation│   ├── dist│   │   ├── additional-methods.js│   │   ├── additional-methods.min.js│   │   ├── jquery.validate.js│   │   └── jquery.validate.min.js│   └── LICENSE.md└── jquery-validation-unobtrusive├── jquery.validate.unobtrusive.js├── jquery.validate.unobtrusive.min.js└── LICENSE.txt

简单介绍一下MvcWeb项目中的几个目录:

  • Controllers 里存放着控制器,负责处理视图回传的数据
  • Models 里存放着Model层代码,目录名称不强求,也不一定非要在这里
  • Views 存放着视图路径,这个是固定名称
  • wwwroot 用来存放一些js脚本和css样式表
  • obj 目录是编译生成的目录,暂时不用过多的关心。

那么,接下来运行一下这个项目看看效果:

cd MvcWeb
dotnet run
# 或者
dotnet run --porject MvcWeb

如果出现如下内容表示项目已经启动完成了:

b40b0baa337e4c600f94232a8d038284.png

然后在浏览器中输入:

http://localhost:5000

然后就能看到如下内容:

6660a50457d41ab59ad63ff1dccc19a6.png

目前是一个空荡荡的项目,不要急,在这个系列之后的文章中我们会继续丰富这个项目,让它的内容更加丰富更加符合我们的需要。

3. Program.cs

有没有觉得这个名字很熟悉?没错,我们之前每次演示使用的都是控制台程序,就有一个Program.cs文件,里面有一个Main方法。我们知道,Main方法是一个程序的入口。之前的http://Asp.net项目并没有这个方法,是因为之前的项目都是依托在IIS上。而http://asp.net core脱离了IIS,使其可以直接运行,所以就有一个入口方法。

代码应当如下:

public class Program
{public static void Main(string[] args){CreateHostBuilder(args).Build().Run();}public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();});
}

3.1 修改端口

在我们使用的时候,经常会出现端口被占用的情况,这时候就需要我们设置一下端口了。设置方法如下:

webBuilder.UseUrls("http://*:5006");

然后重启项目,就可以发现端口已经发生改变。

4. Setup.cs

这个类用来配置服务和应用的请求管道。这是一个约定的名称。初始版本的类文件应该是这样的:

public class Startup
{public Startup(IConfiguration configuration){Configuration = configuration;}public IConfiguration Configuration { get; }// This method gets called by the runtime. Use this method to add services to the container.public void ConfigureServices(IServiceCollection services){services.AddControllersWithViews();}// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.public void Configure(IApplicationBuilder app, IWebHostEnvironment env){if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}else{app.UseExceptionHandler("/Home/Error");// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.app.UseHsts();}app.UseHttpsRedirection();app.UseStaticFiles();app.UseRouting();app.UseAuthorization();app.UseEndpoints(endpoints =>{endpoints.MapControllerRoute(name: "default",pattern: "{controller=Home}/{action=Index}/{id?}");});}
}

5. 总结

这一篇简单的带领大家一起看了下http://asp.net core MVC项目。可以说这是最能提现微软的约定优于配置这句话的项目。MVC项目配置、继承都很少。所有的方法和类都是通过约定好的名称和参数列表来区分。所以在开发MVC项目适合,发现效果和预期不太一致的时候,看一下是不是有拼写错误。

嗯,这一篇就到这了。《http://asp.net core 系列》期待你的关注,下一篇将介绍如何编写一个控制器并访问它。

更多内容烦请关注我的博客《高先生小屋》

45c814416a753a67038db6d251c5dfe9.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244534.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python邮件转发_把Gmail邮件转发到gtalk的Python方法

用Python方法把Gmail邮件转发到gtalk有多难&#xff0c;想知道gmail如何转发邮件?gmail自动转发已收到邮件的设置方法。本文就来把这段详细的python学习参考代码贴出来&#xff0c;大家一起参考下吧。gmail转发邮件到gtalk的Python方法源码&#xff1a;#!/usr/bin/env python#…

html 怎么使用http请求数据类型,HTTP请求方式中8种请求方法(简单介绍)

HTTP工作原理HTTP协议定义Web客户端如何从Web服务器请求Web页面&#xff0c;以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文&#xff0c;请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行…

上行30m下行200m是多少宽带_套餐内有多少流量,就加送多少流量!电信流量攻势太凶猛!...

虽然6月6日国内发放了5G商用牌照&#xff0c;5G时代正式开启。但是对于用户来说&#xff0c;要想用上5G服务尚需等待一段时间&#xff0c;因为现在5G手机终端尚未普及、5G资费套餐也未出炉、运营商的5G网络还需要通过建设进一步扩大覆盖范围。在5G真正走近用户的前夕&#xff0…

怎么在终端启用python_在终端启动Python时报错的解决方案

最近&#xff0c;在终端启动Python时&#xff0c;报了一个错误&#xff1a; Failed calling sys.__interactivehook__ Traceback (most recent call last): File "d:\ProgramData\Anaconda3\lib\site.py", line 439, in register_readline readline.read_history_fil…

vue项目html引入css,vue项目引入自定义.css的样式文件

ES6的引入方式&#xff1a;.vue文件中css文件引入import "../assets/common/common.css";//自定义.css的样式路径js文件的引入在main.js中&#xff1a;import API from ./assets/api/api.config.jsVue.prototype.$API API;P.S.&#xff1a;传统上&#xff0c;引入cs…

485通信原理_上位机开发之单片机通信实践

经常会有一些学员会问到上位机与单片机之间通信的问题&#xff0c;而我们经常会讲上位机与PLC之间通信&#xff0c;那么其实对上位机开发来说&#xff0c;不管是和PLC通信&#xff0c;还是和单片机通信&#xff0c;通信原理都是一样的。PLC的本质就是单片机&#xff0c;在单片机…

hive 结构metastone_深入理解hive之事务处理

事务的四个特性1.automicity&#xff1a;原子性2.consistency:一致性3. isolation:独立性4.durability:持久性5.支持事务有几个条件需要满足&#xff1a;1.所有的事务都支持自动提交&#xff1b;2.只支持ORC格式的数据&#xff1b;3.桶表7.配置hive的参数使其支持事务&#xff…

计算机数媒专业优势,27所院校新开设数字媒体艺术专业,“数媒”专业为什么这么火?...

原标题&#xff1a;27所院校新开设数字媒体艺术专业&#xff0c;“数媒”专业为什么这么火&#xff1f;今年2月&#xff0c;教育部公布了2020年度普通高等学校本科专业备案和审批结果。其中&#xff0c;有包括华中农业大学在内的全国27所院校新增备案了“数字媒体艺术”本科专业…

sap 分割评估_SAP那些事-实战篇-73-受托加工的几种方案探讨

大家都知道&#xff0c;SAP中对于委托加工有标准的解决方案&#xff0c;包括标准委托&#xff08;带料委托加工&#xff09;和工序委托&#xff0c;然而&#xff0c;对于受托方&#xff08;即代加工方&#xff09;SAP却没有标准的解决方案&#xff0c;后来想想&#xff0c;也怪…

婚宴座位图html5,图解现代婚宴座位安排

中国人衣、食、住、行素来都有“礼”可循。对于婚宴来说更是讲究&#xff0c;桌子的摆放&#xff0c;座位的安排都需要经过深思熟虑。因为小小的桌椅就关系到婚宴的礼仪以及宾客的身份。下面就让专家为我们进行图解婚宴座位安排和礼仪的指导吧&#xff01;婚礼座位安排&#xf…

c++ 图的连通分量是什么_学习数据结构第五章:图(图的遍历操作)

第五章&#xff1a;图(图的遍历操作)1.图的遍历图的遍历&#xff1a;从图中某一顶点出发&#xff0c;按照某种搜索方法沿着图中的边对图中的所有顶点访问依次且仅访问一次其实树的层次遍历和图的广度优先搜索类似&#xff0c;可以把这个二叉树看成一个图2.广度优先搜索(BFS)广度…

带通滤波器作用和用途_带通滤波器的作用和电路设计图

一个带通滤波器是一个只有在特定频段的频率传递信号衰减这一频段以外的所有信号的同时&#xff0c;其目的是的电路。在一个带通滤波器的重要参数&#xff0c;高&#xff0c;低截止频率( F H 和f 升)&#xff0c;带宽(BW)&#xff0c;中心频率 f C&#xff0c;中心频率增益&…

轮换html有虚宽出现,乒乓球理论考试复习资料

一、判断题(共10题&#xff0c;每题3分)1)突出、战术变化多、无明显漏洞。()正确2)运动员甲使用的球拍底板由于磨损碰掉一块木片&#xff0c;他用质量相同的木料进行修补&#xff0c;表面平整&#xff0c;裁判员不许其正式比赛时使用。()正确3)发球时第一落点距球网过近&#x…

gson json转map_Java几种常用JSON库性能比较

点击上方“Java研发军团”&#xff0c;选择“置顶公众号”关键时刻&#xff0c;第一时间送达&#xff01;阅读本文需要5分钟作者&#xff1a;飞污熊xncoding.com/2018/01/09/java/jsons.html本篇通过JMH来测试一下Java中几种常见的JSON解析库的性能。 每次都在网上看到别人说什…

nodejs 游戏框架_nodejs游戏服务器框架

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":6,"count":6}]},"card":[{"des":"云服务器 ECS(Elastic Compute Service)是一…

计算机辅助设计工业产品cad竞赛试题,2017计算机辅助设计(工业产品CAD)赛项样题...

2017年全国职业院校技能大赛中职“计算机辅助设计(工业产品CAD)”赛项样题参赛选手须知1.比赛时间4小时&#xff0c;赛题共3大题4道题目&#xff0c;参赛选手需完成全部题目。2.参赛选手应始终保持赛题、图册完整&#xff0c;不得拆散赛题或图册。3.参赛选手须严格按照题目规定…

技校毕业是什么学历_技校毕业了是什么学历

展开全部技校毕业是中专学历。技校的全称为&#xff1a;技工学校。技校与中专、32313133353236313431303231363533e59b9ee7ad9431333365656536职高、一样&#xff0c;都是属于同等的高中层次学历。技校毕业的学生可以获得技工学校印发的初级、中级、高级或者以上的职业资格证书…

golang 捕获堆栈信息_【网络数据安全】为什么时间戳对于数据包捕获很重要

网络上发生的所有事件都是时间敏感的&#xff0c;这就是为什么在讨论数据包捕获和分析时&#xff0c;给数据包加上时间戳非常重要。此功能不仅可以防止和分析网络攻击&#xff0c;而且还能让你检查趋势和网络延迟。网络数据包时间戳可用于调查以某种方式影响网络性能的事件。例…

只能计算机论文,谈计算机及人工智能技术发展-人工智能论文-计算机论文.docx...

谈计算机及人工智能技术发展-人工智能论文-计算机论文——文章均为WORD文档&#xff0c;下载后可直接编辑使用亦可打印—— 摘要&#xff1a;计算机技术的发展&#xff0c;在一定程度上改变了社会的生产生活方式&#xff0c;其作为辅助工具的一种&#xff0c;应用范围十分广泛&…

单选按钮带文字_计算机二级MS office高级应用历年真题操作题文字解析

​word 1题目在考生文件夹下打开文档 WORD.DOCX。 某高校学生会计划举办一场"大学生网络创业交流会"的活动&#xff0c;拟邀请部分专家和老师给在校学生进行演讲。因此&#xff0c;校学生会外联部需制作一批邀请函&#xff0c;并分别递送给相关的专家和老师。 请按如…