鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > .net技术 > asp.net编程 > >

使用ASP.NET MVC和AngularJS的Web模块化管理

来源:互联网 作者:佚名 时间:2015-12-12 12:38
快速浏览标题便了解到本文要谈到公开资源平台,该平台允许快速,轻松地创建一个管理网络,并不需要在风格,导航,解决方案架构和其它跟主要任务无关的琐事上花费

   快速浏览标题便了解到本文要谈到公开资源平台,该平台允许快速,轻松地创建一个管理网络,并不需要在风格,导航,解决方案架构和其它跟主要任务无关的琐事上花费过多的时间。

平台视觉图和其中一块模板:(见附图一)

很长一段时间里,我们使用WPF技术模块化管理应用。我们做出的决定是将此管理迁移到网站中。最后我们得出了2个不同的产品:第一个:平台,就是这篇文章致力于介绍的,第二个是用于电子商务应用程序开发使用的集合模块。

技术运用于:(见附图二)


我们决定使用这些技术都是我们广泛应用微软产品的经验结果。

我们使用以下的技术:

·        ASP.NET MVC 5.0 -作为一个网络托管技术

·        ASP.NET Web API 2.0-去实施REST服务

·        Entity Framework 6.0 – ORM 

·        EF Migrations -以便管理数据库模式的更改和数据

·        ASP.NET Identity -授权和认证任务

AngularJS –主要针对SPA 的用户界面。挑选它的主要依据之一是因为它的普及性和文件质量。我们之前虽然没有过应用AngularJS方面的工作经验。但一路回首,我们从未对这个选择有过任何遗憾。

Architecture 

平台和模块都采用DDDSOLIDTestDriven DevelopmentTDD)。从表面看,我们在使用MVVM(非常感谢AngularJS-WPF的过渡到现在都没有出现过任何并发症)

Platform Capabilities

现在让我们看一下平台兼容性的核心列表。理解这个列表包含平台兼容性是很重要的,因为它不仅仅是电子商务应用的一个附加功能。

风格指南(见附图三)


我们使用MCSS系统方法的应用创造了我们自己的主题。我们还创建了一个风格元素指南和用于元素导航的视觉构造,允许您轻松地创建一段HTML源码,以此用来扩展模块。


Navigation

在这里,我们针对用户界面提出了一个统一的导航用户界面概念。我们非常喜欢应用于新portal.azure.com中水平滚动页面导航的想法,于是我们决定把它作为一个基点。

主要的导航元素是:

·        blade-传统界面的模拟窗口

·        widget容器包含widget

·        “main menu” -针对所有模块的全局导航菜单

 Modularity

平台在运行安装扩展模块时允许系统功能扩展。鉴于每个模块都可以提供自己的用户界面和REST API服务,所以该平台可以被定制用于服务许多特殊的商业需求。

模块化是我们遇到的最困难的问题之一。为了解决这个问题,我们不得不从WPF中采用微软PRISM,并且使它在ASP.NETMVC中可以正常运行。模块包含了使用版本和依附关系的信息,这些信息常在系统在模块初始化和安装过程中有被使用

除了扩张用户界面和API ,每个模板可以用自己的数据库模式并且支持在版本更新过程中的数据迁移。它们也可以通过loC和依赖注入来扩展或覆盖其他模块的功能。

我们就不一一列出所有用户界面的扩展点啦,这只是其中的一小部分:主菜单,工具栏,窗口,通知等。

其它有用的信息

·        授权和认证联合认证兼容-使用微软ASP.NETIdentity

·        Managing users and permissions -我们自己的执行并且准备使用UI

·        Working with binary data (files) -扩展系统提供API上传文件到本地磁盘存储,网络存储或azureblob存储。可以扩展用来使用任何类型的存储服务。

·        背景工作调度-使用延时库来实现,是一个很灵活的功能体系,为监测工作提供自己的接口。

·        动态设置系统-允许声明性设置,并提供标准管理界面和API代码使用。

·        动态特性系统-允许使用UI 或代码来动态扩展任何用户对象的新属性。

·        贮藏-使用缓存服务来优化和提升缓存能力   (AppFabric, WEB Cache, memcache.)

网友评论
<