Organization structure of orchard source code (applicable to version 1.1)

Source: Internet
Author: User
Tags orchard cms
ArticleDirectory
  • Modules
  • Modules \ Lucene
  • Modules \ orchard. archivelater
  • Modules \ orchard. Blogs
  • Modules \ orchard. codegeneration
  • Modules \ orchard. Comments
  • Modules \ orchard. contenttypes
  • Modules \ orchard. designertools
  • Modules \ orchard. Email
  • Modules \ orchard. Experimental
  • Modules \ orchard. importexport
  • Modules \ orchard. jquery
  • Modules \ orchard. Lists
  • Modules \ orchard. Localization
  • Modules \ orchard. Media
  • Modules \ orchard. mediapicker
  • Modules \ orchard. messaging
  • Modules \ orchard. Migrations
  • Modules \ orchard. Modules
  • Modules \ orchard. multitenancy
  • Modules \ orchard. Packaging
  • Modules \ orchard. Pages
  • Modules \ orchard. publishlater
  • Modules \ orchard. recipes
  • Modules \ orchard. Roles
  • Modules \ orchard. Scripting
  • Modules \ orchard. Scripting. DLR
  • Modules \ orchard. Search
  • Modules \ orchard. Setup
  • Modules \ orchard. tags
  • Modules \ orchard. Themes
  • Modules \ orchard. Users
  • Modules \ orchard. warmup
  • Modules \ orchard. Widgets
  • Modules \ tinymce
  • Specs
  • Tests
  • Themes
  • Tools
  • Orchard. Core
  • Orchard. Framework
  • Orchard. Web
  • Other annotations
  • About core modules
  • References
This article is based on Orchard V1.1 Source code Describes the functions of each project in the orchard solution. You can use Visual Studio to view the orchard solution. The modulesmodules directory is a VS solution directory that contains orchard module projects. All module projects are an ASP. net mvc Web Application Program Project. The modules \ lucenelucene module allows the site to use Lucene. Net for indexing. The index module uses this search engine to retrieve the full text of a website. The modules \ orchard. archivelaterarchivelater module supports archiving as planned. The modules \ orchard. blogsblogs module provides the ability to manage and present blogs and blog articles. The modules \ orchard. codegenerationcodegeneration module provides a command line tool for creating the orchard component. The modules \ orchard. commentscomments module provides the function of managing and presenting comments. This comment feature is provided in the form of contentpart and can be applied to various content. The modules \ orchard. contenttypescontenttypes module provides a management interface for creating and modifying content types. The modules \ orchard. designertoolsdesignertools module contains a tool that helps web developers develop themes. This tool displays all the current shap and some information to help us customize themes and templates. The modules \ orchard. emailemail module provides the mail sending function. The modules \ orchard. experimentalexperimental module provides the following types of debugging tools: analysis tools that help us configure orchard applications. Web command line tool: this tool allows the website administrator to execute the orchard command line function on the Web interface. Test list tool: this tool defines some content to help test the list function. The modules \ orchard. importexportimportexport module provides the ability to import and export orchard content data. The modules \ orchard. indexingindexing module provides full-site indexes. This module generates indexes for the search module to implement the full-site search function. This module depends on the Lucene module. The modules \ orchard. jqueryjquery module contains jquery scripts and related script libraries. The modules \ orchard. listslists module provides a preset container function. The modules \ orchard. localizationlocalization module provides the localized content item function. The modules \ orchard. mediamedia module provides multimedia management and presentation functions. It currently only supports image files. The file is stored in the current orchard system. It can be a physical file system or stored in azure blob. The modules \ orchard. mediapickermediapicker module provides a function to browse, upload, and select images in the HTML editor. The modules \ orchard. messagingmessaging module contains the Message setting function. The modules \ orchard. migrationsmigrations module provides command line tools for creating and upgrading data structures based on the record class. The modules \ orchard. modulesmodules module provides a management interface for installing and enabling the website administrator management module. The modules \ orchard. multitenancymultitenancy module can be used to run multiple logic sites on one physical Web site. This increases the site density on one server or hosting host. The modules \ orchard. packagingpackaging module can package the module into an OPC file format. The modules \ orchard. pagespages module provides the ability to manage and render CMS pages. It contains a predefined page content type. The modules \ orchard. publishlaterpublishlater module allows you to create and release content in draft form as scheduled. The modules \ orchard. recipesrecipes module supports the automatic configuration of the orchard website.

The modules \ orchard. rolesroles module provides the function of assigning roles to users. It also provides a function to set default roles to define permission sets for other modules. The modules \ orchard. scriptingscripting module can be used to execute a simple script language. The modules \ orchard. Scripting. dlrscripting. DLR module provides a function for executing the DLR script language. The modules \ orchard. searchsearch module manages search indexes and provides interfaces for users to query orchard sites. The modules \ orchard. setupsetup module provides the function of initializing and installing the orchard application. This module is automatically disabled after installation is complete. The modules \ orchard. tagstags module provides the ability to manage and present all content tags. The modules \ orchard. themesthemes module provides a management interface for setting the orchard application topic. The modules \ orchard. usersusers module provides the user management function. The modules \ orchard. warmupwarmup module provides a function to generate static Web pages during application initialization. The modules \ orchard. widgetswidgets module provides the management interface for adding orchard widgets to the page. The modules \ tinymcetinymce module provides the Rich Text Editor function. The specsspecs folder contains the following items: orchard. Profile: displays the website running status and performance. Orchard. Specs: includes the specflow style for integration testing. The specific function information is contained in the *. Feature file. The teststests folder contains the following items: orchard. Core. tests: A test project that tests the core functions of orchard. Orchard. Framework. tests: A test project that tests the orchard framework. Orchard. Tests. modules: A test item used to test the orchard module. The subdirectories below correspond to different orchard modules. Orchard. Web. tests: A test project for testing the orchard website. The themesthemes folder contains the orchard topic project. You can add a new topic in this project. Different topics correspond to different subdirectories. The toolstools folder contains the tool source for compiling the orchard solution. Code . It also contains the command line tool of the orchard project. You can use it to run some commands defined in orchard to automatically execute management tasks. Orchard. coreorchard core function projects include the core modules and content types in orchard, such as feeds components, theme components, navigation components, general components, routing components, and content text components. The orchard. frameworkorchard framework project contains various class libraries used by orchard. Such as cache, set, command, content management, and data access. It also contains a large number of interface definitions and attribute definitions. Orchard. weborchard. Web project is an MVC application project. This is the project that your application actually runs. It is the startup project of the entire solution. It contains the Assembly file of the core platform of the orchard CMS system and is an orchard Host application. Other annotations for the orchard. Web project must be used as the startup project of the entire project (for example, when you use the vs debugging function ). Orchard. Web dynamically loads all orchard modules and discovers module extensions (MVC routing, management pages, etc ). Projects under the modules folder are under the Physical folder "ochard. web \ modules. These modules can contain ASP. NET views (. aspx,. ascx and other files) and static content. The module referenced by the orchard. Web project automatically copies the Assembly file to the bin directory during compilation. Orchard. The web does not depend on module components. This is because when the orchard. Web project runs, it does not know which modules will be dynamically loaded. The project in the modules folder references the orchard project, which allows the orchard module to access the orchard service. This section describes how to create a core module. The first question is: why is it the module of the core module? This is because it is identified at the design orchard stage as the core framework necessary to expand other modules. For example, the common module introduces bodyaspect (content author ). A core concept is that the common module can be used for many other content types, such as blog articles and pages. It can be implemented in the orchard framework DLL so that all modules depend on it. However, this will not benefit from being a module, such as attaching a processor, a drive, a view, or a route. This is also related to the ASP. net mvc region. A region must be in a folder. It is a correct idea to separate the core modules from the framework layer and separate them into a separate DLL. This is similar to a non-monolithic operating system. Implement core functions in one place, implement system modules in another place, and provide a large number of interfaces to expand more advanced modules. The second question is: why is it the core module of the core module. When implemented as a core module, it can be permanently used by other modules. For example, comment module. (The comment module is not a core module. It can be regarded as a basic module.) the problem to be addressed is dependency. In orchard, modules can be disabled and uninstalled under the modules directory, or updated through other channels. The orchard module should avoid dependency on other modules as much as possible, and define types through content components in the background as much as possible. Pages and blog posts belong to pages and blogs modules, and do not reference comments and tag modules. However, they may have added comments or tag functions to pages and blog posts. This separation behavior is implemented by the underlying content type Architecture, rather than directly referenced between other modules. However, the core module is part of the orchard framework and can be depended on by all modules. The core module will be released by the orchard development team and be part of the orchard framework. Other modules can depend on them and directly access their public appearances.

 

Reference document official website code structure Original: http://www.orchardproject.net/docs/Source-code-organization.ashx
Related Article

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.