广告
返回顶部
首页 > 资讯 > 前端开发 > html >Orchard架构的简单介绍
  • 763
分享到

Orchard架构的简单介绍

2024-04-02 19:04:59 763人浏览 泡泡鱼
摘要

这篇文章主要讲解了“Orchard架构的简单介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Orchard架构的简单介绍”吧!  对于我们来说,更重要的是

这篇文章主要讲解了“Orchard架构的简单介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Orchard架构的简单介绍”吧!

  对于我们来说,更重要的是学习Orchard是如何架构的,如果我们自己编写一个类似应用该如何做。今天有空再次看看 Orchard的其它内容,本篇介绍一下Orchard的一些架构方面的内容。Orchard内容较多,现在还只是了解一些皮毛,还有待进一步学习,放上 来权当随笔记录。

  Architecture

  Orchard foundations

  Orchard构建在已有的一些框架和类库之上,下面是一些主要内容:

  asp.net mvc:这是微软开源的基于MVC的web开发框架

  NHibernate:NHibernate 是一个ORM工具,从Hibernate演化而来

  Autofac: 一个ioc container。Orchard大量使用依赖注入

  Castle Dynamic Proxy: Castle 是.net中很早就出现的一个开源项目,Castle Dynamic Proxy是一个生产动态代理的东东

  Orchard Framework

  Orchard framework处于Orchard的最底层,你可以把它看成是Orchard的基础类库。

  Orchard的启动

  当Orchard WEB应用启动后,生成一个应用域级别的单例的Orchard Host(DefaultOrchardHost)

  View Code

  public class MvcApplication : HttpApplication {protected void Application_Start() {_host = OrchardStarter.CreateHost(MvcSingletons);_host.Initialize();}public static class OrchardStarter {public static IOrchardHost CreateHost(Action reGIStrations) {var container = CreateHostContainer(registrations);return container.Resolve();}public static IContainer CreateHostContainer(Action registrations) {……builder.RegisterType().As().As().SingleInstance();}}

  DefaultOrchardHost负责生成shell,其中引入了一些类:ShellContextFactory、ExtensionManager、ShellSettingsManager、CompositionStrategy、ShellBlueprint,现在就不细说了,因为我还没有怎么看

  V  public class DefaultOrchardHost : IOrchardHost, IShellSettingsManagerEventHandler, IShellDescriptorManagerEventHandler {void IOrchardHost.Initialize() {BuildCurrent();}IEnumerable BuildCurrent() {if (_current == null) {lock (_syncLock) {if (_current == null) {SetupExtensions();MonitorExtensions();_current = CreateAndActivate().ToArray();}}}return _current;}IEnumerable CreateAndActivate() {var allSettings = _shellSettingsManager.LoadSettings();if (allSettings.Any()) {return allSettings.Select(settings => {var context = CreateShellContext(settings);ActivateShell(context);return context;});}……}ShellContext CreateShellContext(ShellSettings settings) {if (settings.State.CurrentState == TenantState.State.Uninitialized) {Logger.Debug("Creating shell context for tenant {0} setup", settings.Name);return _shellContextFactory.CreateSetupContext(settings);}Logger.Debug("Creating shell context for tenant {0}", settings.Name);return _shellContextFactory.CreateShellContext(settings);}}

  Dependency injection

  在Orchard中生成依赖项的标准方法是实现IDependency 或者其继承接口。

  对于依赖有三种可能的范围,具体讲解等待后期分析:

  o Request:每次HTTP请求都创建一个新的实例,请求处理有销毁。这种对象实现IDependency

  o Object:实现ITransientDependency,实例不共享

  o Shell: 实现ISingletonDependency,单例

  ASP.NET MVC

  Orchard是构建在ASP.NET MVC 之上的一个框架,但是为了增加主题、多租户等额外功能而也挺入了额外的一些层和概念。例如,当需要一个特定视图时引入LayoutAwareViewEngine。严格的说,这不是一个新的视图引擎,因为它并不关心实际绘制,而只是包含一些查找当前主题下正确视图的一些逻辑功能,然后委托给实际的视图引擎去展现。

  Types, Parts and Fields

  Orchard能够处理任意内容类型(content types),内容类型又是由内容Parts组成,例如一个blog、video都可能有地址、回复、tag等,为了重用可以把回复作为一个part存在于一个module中,这样只需要生成一次就行了。

  Parts本身又有自己的属性和内容字段。内容字段(Fields)也是一个重用的概念,它比parts更细粒度,它可以使用在多个part中。

  Content Manager

  所有的内容通过ContentManager 对象进行访问,ContentManager有查询内容存储、版本内容和管理发布状态等功能

  Transactions 

  Orchard自动为每次HTTP请求生成一个事务

  Event bus

  Commands

  很多在Orchard中可以执行的动作都可以通过命令行形式执行,这些Command都需要实现,命令方法使用CommandName 属性标识

  Search and indexing

  默认使用Lucene 进行索引和查询

  Caching

  基于ASP.NET cache之上的缓存,Orchard缓存api主要好处是对每个租户的透明性

  File systems

  Orchard的文件系统是抽象概念的,可以是直接的物理文件,也可以是部署在云端的blob storage

  Orchard core

  Orchard.Core 程序集包含Orchard必须使用到的一些模块,例如feeds、navigation和routable

  Modules

  Orchard默认发布一些内建的模块,例如blog等。一个模块只是一个包含manifest.txt 文件的一个ASP.NET MVC area 文件。

感谢各位的阅读,以上就是“Orchard架构的简单介绍”的内容了,经过本文的学习后,相信大家对Orchard架构的简单介绍这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Orchard架构的简单介绍

本文链接: https://www.lsjlt.com/news/80152.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Orchard架构的简单介绍
    这篇文章主要讲解了“Orchard架构的简单介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Orchard架构的简单介绍”吧!  对于我们来说,更重要的是...
    99+
    2022-10-19
  • scrapy框架的简单介绍
    这篇文章主要介绍“scrapy框架的简单介绍”,在日常操作中,相信很多人在scrapy框架的简单介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”scrapy框架的简单介绍”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-02
  • 简单介绍三层架构工作原理
    目录前言一、什么是三层架构各模块功能划分表:三层架构运作流程图:三层架构中各功能模块如何联系?Entity在三层架构中的作用: 三层及实体层之间的依赖关系:二、为什么使用三层架构三、...
    99+
    2022-11-12
  • Cassandra基本介绍(3) - 架构简介
        通过上面2节,大家了解到了RDBMS遇到的问题,以及对Cassandra有了基本的了解。下面将介绍下Cassandra内部简单结构。  &...
    99+
    2022-10-18
  • Micronaut框架的简单使用介绍
    目录什么是Micronaut主要特点入门依赖注入构建HTTP服务器阻塞HTTP反应式IO构建HTTP客户端声明性HTTP客户端编程HTTP客户端Micronaut客户端联合项目特征现...
    99+
    2022-11-12
  • Eclipse中的Jobs框架的简单介绍
    这篇文章主要讲解了“Eclipse中的Jobs框架的简单介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Eclipse中的Jobs框架的简单介绍”吧!了解Eclipse多线程机制,需要先了...
    99+
    2023-06-17
  • .net中的DI框架AutoFac简单介绍
    AutoFac是.net程序下一个非常灵活易用,且功能强大的DI框架,本文这里简单的介绍一下使用方法。 安装: Install-Package Autofac 简单的示例: stat...
    99+
    2022-11-13
  • Visual Studio的内部构造简单介绍
    这篇文章主要介绍“Visual Studio的内部构造简单介绍”,在日常操作中,相信很多人在Visual Studio的内部构造简单介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Visual Studio...
    99+
    2023-06-17
  • Java框架入门之简单介绍SpringBoot框架
    前言 Spring都包含了哪些部分呢? 主要包含Spring Boot、Spring Framework、Spring Data、Spring Cloud、Spring Cloud ...
    99+
    2022-11-12
  • Spring框架七大模块简单介绍
    Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring框架的7个模块组成 Spring框架的每个...
    99+
    2023-05-30
    spring框架 七大模块 简单介绍
  • NodeJs下的测试框架Mocha的简单介绍
    介绍和代码下载 Mocha在2011年发布,是目前最为流行的javascript框架之一,在本文我们重点介绍它在NodeJs上的使用。 如果你需要下载实例代码,可以通过去官网查找。https://mocha...
    99+
    2022-06-04
    框架 简单 测试
  • LAMP架构介绍、MYSQL介绍、安装
    LAMP 架构 LAMP 指的Linux(操作系统)、Apache(httpd服务器)、MySQL(数据库软件)和PHP(有时也是指Per或Python)的缩写,一般用来建立web服务器(三个角色可以在一...
    99+
    2022-10-18
  • imba框架的简单介绍和性能测试
    这篇文章主要讲解了“imba框架的简单介绍和性能测试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“imba框架的简单介绍和性能测试”吧!imba 简单介绍i...
    99+
    2022-10-19
  • Django admin简单介绍
    生成同步数据库的脚本: python manage.py makemigrations 同步数据库: python manage.py migrate 创建后台用户 python manage.py createsuperuser 访...
    99+
    2023-01-31
    简单 Django admin
  • Django ajax 简单介绍
    AJAX Asynchronous Javascript And XML是 "异步Javascript和XML"。即使用 Javascript 语言与服务器进行异步交互,传输的数据为XML。 同步交互:客户端发出一个请求后,需要等待服务器...
    99+
    2023-01-31
    简单 Django ajax
  • C++ OpenMP简单介绍
    目录一、背景知识1、program作用2、C++不同版本区别二、什么是OpenMP三、关键字1、reduction 作用2、default(shared)作用一、背景知识 1、pro...
    99+
    2023-05-20
    c++ OpenMP简介 c++ OpenMP
  • Android Socket 简单介绍
    文章目录 前言一、Socket是什么?百度百科的解释我自己的理解 二、简单示例1.服务端2.客户端3.布局4.实现 参考总结 前言 最近需求需要使用Socket进行通讯,我在工作...
    99+
    2023-09-23
    android
  • 4:GTID简单介绍
    概述: 当使用GTIDs时,可以识别和跟踪每一个事务,因为它是在原始服务器上提交的,并由任何slave应用;简单来说就是master提交的所有事务都在slaves应用一次,两者的数据就能保证一致性,此外,...
    99+
    2022-10-18
  • oracle lob 简单介绍
    何为LOB?lob为oracle数据库的一个大对象数据类型,可以存储超过4000bytes的字符串,二进制数据,OS文件等大对象信息.最大可存储的容量根oracle的版本和oracle 块大小有关.有那几种...
    99+
    2022-10-18
  • 1.AutoMapper简单介绍
    官网:http://automapper.org/ 源码:https://github.com/AutoMapper/AutoMapper NUGET安装: PM> Install-Package AutoMapper Au...
    99+
    2020-08-26
    1.AutoMapper简单介绍
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作