ASP.NET ZERO 学习 —— (3) 开发手册之介绍和MVC 应用前端
来源:互联网 发布:魔域老网络连接堵塞 编辑:程序博客网 时间:2024/05/27 14:11
介绍
解决方案结构(层)
在解决方案里面一共有7个项目
- Core 领域模型层(如实体和领域服务)
- Application 应用逻辑层(如应用服务和DTO)
- EntityFramework 包含DbContext, repository 的实现,数据库迁移和EntityFramework的其他具体概念
- WebApi Web API 控制器
- Web 表现层(脚本, 样式和视图)
- Migrator 运行数据迁移的控制台应用层序
- Test 单元和集成测试
应用程序
ASP.NET ZERO 解决方案包含四个应用程序
- MVC 前端应用程序:可以用它创建公共的网站或者是应用程序的登陆页
- Angular 后台单页应用程序:需要用户名及密码登录的应用程序,用AngularJs构造的单页应用。
- MVC 后台多页应用程序 : 用MVC和JQuery构造的和Angular应用相同的方法
- Migrator:运行数据库迁移的控制台应用程序
因此,后台应用有两种架构(SPA 单页面应用 和 MPA 多页面应用)。你可以选择适合自己应用的方式。
多租户
多租户可以很方便的用来构造SaaS(软件即服务),通过这个技术我们可以部署单独的应用给多个顾客进行服务。每个租户将拥有自己的角色,用户和设置。
所有的ASP.NET ZERO的基础代码都是按照多租户模式开发的。但是,你可以通过一行配置代码禁用多租户模式,以提供单租户应用。如果多租户模式被禁用,所有的多租户逻辑将被隐藏或变为不可用。如果多租户模式被禁用,那么会只有一个默认的租户叫default。
在多租户应用中有两种角色:
- Host:管理所有租户及系统,即SaaS服务的提供者。
- Tenant : 使用SaaS服务的对象,即这个应用的客户
ASP.NET Zero 使用了ABP的Data filters。因此,如果你正确的使用filter接口,它会自动的过滤租户数据。
网站的Root URL
web.config 文件包含了一个设置WebSiteRootAddress,它存储了网站应用程序的Root URL:
<add key="WebSiteRootAddress" value="http://localhost:6240/" />
它是用来计算网站应用程序的一些URL地址。所以,在部署的时候需要更改它。针对于多租户应用,URL可以包含动态的租户名字。举个栗子,{TENANCY_NAME} 将替换为租户名字:
<add key="WebSiteRootAddress" value="http://{TENANCY_NAME}.mydomain.com/" />
因此,ASP.NET Zero 通过URL自动的定位到当前租户。如果像上面那样配置,还可以重定向至应用程序的所有子域名。
- 需要配置DNS重定向子域名的一个静态IP地址。申明“所有子域”时,需要使用通配符例如*.mydomain.com
- 需要配置IIS绑定静态IP地址
也许还有其他实现方式,但这是最简单的。
MVC 应用前端
ASP.NET Zero 包含可用于公共网站的起点或应用程序的登陆的前端页。当第一次运行项目的时候,会看见像下图所展示的主页:
有两个页面,Home page 和 About us。网页的内容有初始模板创建,需要修改。也可以完全删除该内容,并根据需要建立页面。当然,也需要将Logo改为你公司的Logo。
metronic 有很多选项和组件,他们是一个广泛的资源,使您能够更快地建立一个更丰富的网站。
菜单在 FrontEndNavigationProvider类 中定义。当你添加一个新的菜单选项时,将会自动的出现在菜单里。
frontEndMenu //HOME .AddItem(new MenuItemDefinition( PageNames.Frontend.Home, L("HomePage"), url: "" ) //ABOUT ).AddItem(new MenuItemDefinition( PageNames.Frontend.About, L("AboutUs"), url: "About" ) //MULTI-LEVEL MENU (JUST FOR EXAMPLE) //).AddItem(new MenuItemDefinition( // "MultiLevelMenu", // new FixedLocalizableString("Multi level menu") // ).AddItem(new MenuItemDefinition( // "MultiLevelMenu.1", // new FixedLocalizableString("Sub menu item 1") // ) // ).AddItem(new MenuItemDefinition( // "MultiLevelMenu.2", // new FixedLocalizableString("Sub menu item 2") // ).AddItem(new MenuItemDefinition( // "MultiLevelMenu.2.1", // new FixedLocalizableString("Sub menu item 2.1") // ) // ).AddItem(new MenuItemDefinition( // "MultiLevelMenu.2.2", // new FixedLocalizableString("Sub menu item 2.2") // ) // ).AddItem(new MenuItemDefinition( // "MultiLevelMenu.2.3", // new FixedLocalizableString("Sub menu item 2.3") // ).AddItem(new MenuItemDefinition( // "MultiLevelMenu.2.3.1", // new FixedLocalizableString("ASP.NET Boilerplate"), // url: "http://aspnetboilerplate.com" // ) // ).AddItem(new MenuItemDefinition( // "MultiLevelMenu.2.3.2", // new FixedLocalizableString("jtable.org"), // url: "http://jtable.org" // ) // ) // ) // ) );
在左上角有一个Login链接,这个链接将会跳转到后台应用程序的Login Page。
布局
前端布局页面位于 .Web 项目的 Views/Layout 文件夹里
_Layout 是主要的布局文件,包含了脚本和样式。语言标签和菜单在 _Header 文件中。 _PreFooter 并没有使用,如果你需要可以自行将其添加至 _Layout 文件里。
租户注册
当你在首页点击 New tenant 链接时,你可以注册一个新的租户。
(上图中显示为中英文混搭,是因为部分标签没有对应的中文,后面在配置文件中增加就行)
这里你可以创建一个新的租户。TenantRegistrationController 就是用来注册新租户的。租户的注册也可以在后台配置文件中设置是否禁用。
- ASP.NET ZERO 学习 —— (3) 开发手册之介绍和MVC 应用前端
- ASP.NET ZERO 学习 —— (6) 开发手册之MVC后台多页面应用及迁移控制台程序
- ASP.NET ZERO 学习 —— (5) 开发手册之ANGULAR后台单页面应用
- ASP.NET ZERO 学习 —— (4) 开发手册之AccountController
- ASP.NET ZERO 学习 —— (7) 开发手册之基础架构
- ASP.NET ZERO 学习 —— (8) 开发手册之基于令牌的身份认证&其他
- ASP.NET ZERO 学习 —— (9) 应用开发Demo之工程创建
- ASP.NET ZERO 学习 —— (10) 应用开发Demo之创建实体对象
- ASP.NET ZERO 学习 —— (11) 应用开发Demo之创建应用服务
- ASP.NET ZERO 学习 —— (12) 应用开发Demo之测试应用服务
- ASP.NET ZERO 学习 —— (13) 应用开发Demo之页面呈现Person数据
- ASP.NET ZERO 学习 —— (14) 应用开发Demo之新建People
- ASP.NET ZERO 学习 —— (15) 应用开发Demo之授权
- ASP.NET ZERO 学习 —— (16) 应用开发Demo之删除用户
- ASP.NET ZERO 学习 —— (17) 应用开发Demo之筛选
- ASP.NET ZERO 学习 —— (18) 应用开发Demo之扩展电话信息
- ASP.NET ZERO 学习 —— (1) 介绍
- Asp.net MVC 3实例学习之ExtShop(一)————创建应用并设置开发环境
- windows cmd 定义和使用变量
- Java从数据库取出BLOB数据放入map中,从map中拿出转换成String类型数据
- Redis主从复制读写分离搭建
- TEW-654TR路由器漏洞分析和挖掘
- Thinking in Java ——第二十章-注解
- ASP.NET ZERO 学习 —— (3) 开发手册之介绍和MVC 应用前端
- 【maven】setting.xml配置国内镜像地址
- [题解]bzoj2152 聪聪可可
- 海思adc寄存器的配置
- LeetCode-520. Detect Capital
- 【LeetCode】492. Construct the Rectangle【E】【73】
- Linux常用命令大全
- idea 设置maven pom.xml的自动提示
- 噪声系数与噪声因子