mvccore,mvccore5000
asp.net core mvc 是不是未包含使用UA 动态选择displayModel
这个吧,可能有些东西你不太理解造成的。
关于性能提升的问题,net core是否性能提升10倍?答案是还真差不多!为什么呢?这是因为.net core为了跨平台,编译的方式使用的是dotnet publish -r 版本,例如发布到windows X64的机器上,使用的命令就应该是dotnet publish -r win-x64这样的命令进行发布。而运行方式呢,使用的是dotnet run xx.dll,或者直接dotnet xx.dll,它并不依赖于IIS!当然可以在IIS上部署,也就是在配置文件中使用dotnet 其中参数为xx.dll效果是一样的——但是一旦这样部署的样,受制于IIS(多数情况下使用的是IIS10.0),尤其多线程测试时weblimit参数不做更新的话,性能上有影响,即使数据很大也是有影响的。
当然如果你直接使用IIS把源码丢过去,在配置文件中使用允许编译的方式的话,这种方式其实与.net framework的效果是一样的,并没有任何性能上的优势——这种情况只是你把net core看作是net framework的一个版本一样,他自然和其他版本相关不大!所以你不说话你的测试方式自然性能上无法估量。
net core相比之下的优势其实除了性能上的提高就是跨平台(其实是源码跨平台),什么意思呢?.net framework的移植性非常好,生成一个通用的dll(MSIL中间文件),然后该文件由不同机器上的运行环境自行翻译(JIT功能),一般认为是边翻译边执行,当然为了整体的性能问题,JIT首次编译的内容(调用的片段才会被翻译,不调用的不会翻译)存储到Native上,下次再调用时不用翻译过的代码时,JIT会跳过翻译,直接使用使用首次翻译过的片段。所以在以前的时候,有时我们为了性能,玩Native文件,而netcore后边指定版本的作用,其实就是翻译成可执行的二进制PE文件,当然他需要指定操作系统的,比如ubuntu等linux发行版上都可以的!想来看看,netcore本身在net framework上进行了重写,生成的也是针对不同系统的可执行内容,所以性能上肯定有所提升是绝对的。当然,这种方式最适合的方式还是容器方式(docker),所以性能上要比在IIS上提升不少——当然不能是类似.net framework直接源码的形式,有点类似于.net framework,但是比framework发布的形式还要高些,而性能提升也是基本这两种形式的对比!
当然,严格来说.net core也是试水跨平台的方式,他去掉了.net framework的大多数内容,所以主要的体现就以下三点:
1,跨平台
2,重写库,性能上的提高
3,为docker做足准备(也是跨平台的扩展之一)
换句话来说,如果你不是基于以上几种的考虑,那么为什么要选择net core呢?要知道每种技术都有他适应的场景的,如果你是winform/WPF时,没有考虑net core的必要性,而且net core也不支持!如果是Azercloud的话,net core小巧,且服务专一,当然可以考虑net core.如果你公司考虑到使用linux发行版以避免高昂的windows费用,还有一堆.net程序员的话,net core肯定是你的选择优势——net framework不支持linux系统啊!
所以我认为技术只是适用!也不是用来比较,net framework与net core的定位是相当明显且不相互冲突,所以只是一种选择罢了,而不是谁一定比谁牛B!
ASP.net mvc5和asp.net.core有什么区别呢?前景如何?
ASP.net mvc5和asp.net.core有什么区别呢,前景如何:
区别:
asp.net mvc5只能运行在Windows,一般通过IIS发布。
asp.net core开源,可跨平台,能够发布到Linux等系统上。asp.net core做了很多的整合工作,目前来说完成了最基本的一部分类库的迁移。
前景:
asp.net core肯定是以后的一种潮流,随着docker等技术的普及,跨平台的重要性凸显,必须要使用asp.net core编写的接口才能发布到linux中,也就是asp.net core编写的接口可以做成docker的镜像发布,而asp.net mvc5不能。所以最终肯定是会慢慢都转移到asp.net core上来。
但是这需要一个比较久的过程。因为从asp.net mvc5转移到asp.net core需要一定时间的学习,即使在国外也需要一定过程。而国内由于语言环境、开发工具(需要VS2015才能进行asp.net core的开发)等的原因,肯定需要更久。国内的技术一直以来也比较保守。
如果单纯的以在国内找个开发的工作的话,建议先熟悉下asp.net mvc5。如果确实有跨平台的需求,或者团队成员都对新技术有很高的热情,从事的也是全新的项目的话,就使用asp.net core。
.net core:
.NET Core?是.NET Framework的新一代版本,是微软开发的第一个官方版本,具有跨平台 (Windows、Mac OSX、Linux) 能力的应用程序开发框架 (Application Framework),未来也将会支持?FreeBSD?与 Alpine 平台,也是微软在一开始发展时就开源的软件平台[1]??,它经常也会拿来和现有的开源 .NET 平台?Mono?比较。
由于 .NET Core 的开发目标是跨平台的 .NET 平台,因此 .NET Core 会包含 .NET Framework 的类库,但与 .NET Framework 不同的是 .NET Core 采用包化 (Packages) 的管理方式,应用程序只需要获取需要的组件即可,与 .NET Framework 大包式安装的作法截然不同,同时各包亦有独立的版本线 (Version line),不再硬性要求应用程序跟随主线版本。
参考资料
百度百科.百度百科[引用时间2018-1-4]
请问asp.net core mvc怎么使用ef连接现有数据库?
查了一下,可以用命令行生成相应的文件:
Scaffold-DbContext "Server=.\SQLExpress;Database=SchoolDB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
连接字符串放json里面
"ConnectionStrings":?{
"MbkDbConstr":?"Data?Source=(localdb)\\MBK;Database=MbkTest;"
}
参考资料:
网页链接
从 ASP.NET MVC 迁移到 ASP.NET Core MVC
从 ASP.NET MVC 迁移是一个多步骤过程。 本文介绍:
若要迁移配置和 Identity 代码,请参阅将配置迁移到 ASP.NET Core并迁移身份验证和 Identity ASP.NET Core。
在 Visual Studio 中创建 ASP.NET MVC 项目的示例以进行迁移:
使用要迁移到的新 ASP.NET Core 项目创建新的解决方案:
在 ASP.NET Core 3.0 及更高版本的项目中,.NET Framework 不再是受支持的目标框架。 你的项目必须面向 .NET Core。 包含 MVC 的 ASP.NET Core 共享框架是 .net Core 运行时安装的一部分。 使用项目文件中的 Microsoft.NET.Sdk.Web SDK 时,会自动引用共享框架:
XML
有关详细信息,请参阅 框架引用。
在 ASP.NET Core 中, Startup 类:
有关详细信息,请参阅 ASP.NET Core 中的应用启动。
在 "ASP.NET Core" 项目中,打开 " 启动 .cs " 文件:
C#
ASP.NET Core 应用必须选择包含中间件的框架功能。 上一个模板生成的代码添加以下服务和中间件:
此现有配置包括将示例 ASP.NET MVC 项目迁移所需的内容。 有关 ASP.NET Core 中间件选项的详细信息,请参阅 ASP.NET Core 中的应用启动 。
在 ASP.NET Core 项目中,将添加新的空控制器类和视图类作为占位符使用与要从中进行迁移的任何 ASP.NET MVC 项目中的控制器和视图类相同的名称。
ASP.NET Core WebApp1 项目已包含与 ASP.NET MVC 项目相同的名称的最小示例控制器和视图。 这将用作 ASP.NET mvc 控制器的占位符,以及要从 ASP.NET mvc WebApp1 项目迁移的视图。
有关详细信息,请参阅 在 ASP.NET Core MVC 中使用控制器处理请求 和 ASP.NET Core MVC 中的视图。
可以测试每个控制器终结点,但在本文档的后面部分介绍了布局和样式。
在 ASP.NET MVC 5 及更早版本中,静态内容是从 web 项目的根目录承载的,与服务器端文件混合。 在 ASP.NET Core 中,静态文件存储在项目的web 根目录中。 默认目录为 {content root}/wwwroot ,但可以对其进行更改。 有关详细信息,请参阅 ASP.NET Core 中的静态文件。
将 ASP.NET MVC WebApp1 项目中的静态内容复制到 ASP.NET Core WebApp1 项目中的 wwwroot 目录:
将 ASP.NET MVC 项目布局文件复制到 ASP.NET Core 项目:
将 ASP.NET MVC 项目共享布局文件复制到 ASP.NET Core 项目:
在 ASP.NET Core 项目中,打开 _Layout。 进行以下更改,使其与下面显示的已完成代码相匹配:
更新启动 CSS 包含项以匹配以下已完成的代码:
已完成的启动 CSS 包含的替换标记:
HTML
更新 jQuery 和启动 JavaScript 包含项以匹配以下已完成的代码:
Ubuntu 上对 ASP.NET Core Mvc进行 Docker 部署
创建Asp.net Core项目项目:选择MVC模板,勾选启用Docker
修改Dockerfile文件的属性为始终输出
CD到发布文件
root@ubuntu:/home/fcj/Desktop/code/DockerPub# cd /home/fcj/Desktop/code/DockerPubMvc
安装microsoft/dotnet :2.1-aspnetcore-runtim镜像之所以安装此镜像,是因为Dockerfile文件指明项目依赖于此镜像
sudo docker pull microsoft/dotnet :2.1-aspnetcore-runtim
生成应用程序的镜像:
root@ubuntu:/home/fcj/Desktop/code/DockerPubMvc# docker build -t mymvc:1.0 .
-t ---指定镜像名称
. ---表示build上下文为当前目录,默认情况下docker会使用在上下文的根目录下找到Dockerfile文件
运行: docker run --name mymvccontiner -d -p 8072:8011 mymvc:1.0
-d 表示在后台以守护态(daemonized)形式运行容器
-p 外部端口与内部容器端口映射。
--name 指定容器的名称。当然可以不指定,默认会为我们创建
最后一个参数 mymvc:1.0 就是我们刚创建的镜像名称
查看已运行的容器
在浏览器查看:
在局域网其他电脑浏览器查看:
需要知道ubuntu系统的IP
通过 ifconfig -a 获取
asp.net core Mvc 怎么连接sql server
不知道你用过EF没,asp.net core mvc里同样可以使用EF core来操作数据库,如果你不喜欢还可以使用Dapper或是国内的SqlSugar等ORM.如果你要代码的话,微软官方文档""有图有真相,不习惯英文的话可以搜索对应关键词博客.既然用到了.net core,相信对这些你也不会陌生.