设为首页 收藏本站
查看: 1597|回复: 0

[经验分享] Asp.Net Core 项目实战之权限管理系统(0) 无中生有

[复制链接]

尚未签到

发表于 2016-11-22 09:50:09 | 显示全部楼层 |阅读模式
  0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有
  1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端
  2 Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计
  3 Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL
  4 Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现
  5 Asp.Net Core 项目实战之权限管理系统(5) 用户登录
  6 Asp.Net Core 项目实战之权限管理系统(6) 功能管理
  7 Asp.Net Core 项目实战之权限管理系统(7) 组织机构管理
  github源码地址

0 前言
  http://www.cnblogs.com/fonour/p/5848933.html
  学习的最好方法就是动手去做,这里以开发一个普通的权限管理系统的方式来从零体验和学习Asp.net Core。项目的整体规划大致如下:
  技术路线


  • Asp.net Core Mvc
  • EntityFrameworkCore
  • Bootstrap AdminLTE
  • PostgreSQL
  实现功能


  • 组织机构管理
  • 角色管理
  • 用户管理
  • 功能管理
  • 权限管理

1 开发环境准备
  1、安装Visual Studio 2015,我这里安装的是专业版。
  2、安装.NET Core SDK相关
  需要安装Visual Studio 2015 update3和NET Core 1.0.0 - VS 2015 Tooling

2 新建项目
  打开Visual Studio 2015,选择项目保存路径,输入项目名称及解决方案名称,新建一个Asp.Net Core Web Application (.NET Core)项目。
DSC0000.png

  为了更好的理解Asp.net Core的一些东西,我这里选择了空模板
DSC0001.png

  创建好的项目是长这个样子的
DSC0002.png

  解决方案中相关文件大致说明


  • wwwroot      存放js,css,images等静态资源
  • Program.cs   应用程序入口
  • Startup.cs    应用程序相关启动项配置,包含ConfigureServices和Configure两个方法,前者负责服务的配置,后者负责http请求管道的配置。
  • project.json  项目的基础配置文件
  删除示例页面Project_Readme.html,此时我们直接F5运行程序,界面输出HelloWorld,这是因为Stratup.cs中



        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}
3 Mvc基本应用

3.0 添加MVC依赖项引用
  添加MVC引用有两种方法。
  1 通过project.json
  打开project.json文件,在dependencies部门增加Microsoft.AspNetCore.Mvc的引用,当你输入时,Visual Studio会有自动的提示,非常贴心方便。



"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0"
},
  2 通过NuGet
  通过NuGet管理器搜索Microsoft.AspNetCore.Mvc添加引用,或直接在程序包管理器控制台输入命令Install-Package Microsoft.AspNetCore.Mvc即可完成Mvc引用的添加。

3.1 添加控制器
  右键添加项目文件夹,命名为Controllers,右键Controllers文件夹,添加一个名字为HomeController的控制器。
DSC0003.png


3.2 添加视图
  右键项目添加Views文件夹,右键Views文件夹添加一个Home文件夹,与HomeController控制器相对应,在Home文件夹下新建一个名称为Index的视图文件。
DSC0004.png

  将Index.cshtml的内容修改为



<h1>Hello,Asp.Net Core MVC</h1>
3.3 添加MVC服务及Http请求管道处理
  1 添加MVC服务
  修改Startup.cs的ConfigureServices方法如下



        public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
  2 添加Http请求管道处理
  修改Startup.cs的Configure方法如下



        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseMvcWithDefaultRoute();
//app.Run(async (context) =>
//{
//    await context.Response.WriteAsync("Hello World!");
//});
}
  F5运行程序,可以看到已经可以按照mvc的默认路由机制解析了。
DSC0005.png


4 Asp.Net Core默认的两种寄宿方式
  Asp.Net Core应用程序默认提供IIS服务和Kestrel服务两种寄宿方式,意味着Asp.Net Core应用程序可以脱离IIS运行,这也是跨平台的基础。在Program.cs文件中可以看到这种服务的添加。



        public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
  Visual Studio的默认启动选项为IIS Express,即采用IIS服务方式,我们可以通过以下两种方式使用Kestrel服务运行我们的程序
  1 在VS的启动选项中选择我们的项目名称同名的选项,然后F5运行。
DSC0006.png

  2 在项目文件夹根目录,按住Shift键,点击鼠标右键,单击“在此处打开命令窗口”菜单,输入dotnet run命令。
DSC0007.png

  会提示应用程序服务已经启动,并且地址为http://localhost:5000,我们打开浏览器输入这个地址,可以看到页面输出了我们预期的结果,与使用IIS服务是同样的效果。
  可以在Program.cs通过使用UseUrls方法修改应用程序的地址。



        public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseUrls("http://localhost:8000")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-303860-1-1.html 上篇帖子: centos7 离线安装Ambari 下篇帖子: 棋牌游戏服务器架构: 总体设计
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表