Skip to content

ARCHIVED

!注意“归档”

This chapter has not been updated for the current version of Orchard, and has been ARCHIVED.

Requirements and declaration of intents

意图的要求和声明

Goals

目标

  • Simple

  • 简单 *

  • Localizable

  • 本地化 *

  • Web-based: unzip in a web app directory and browse

  • 基于Web:在Web应用程序目录中解压缩并浏览 *

  • Small number of decisions, none of which require knowledge that is out of reach of the typical user. It should be made clear why we're asking a question to make it easier to make a decision.

  • 少数决策,其中任何一项都不需要普通用户无法获得的知识。应该明确为什么我们要问一个问题,以便更容易做出决定。 *

  • Good defaults that are easily overridable by advanced users

  • 高级用户可轻松覆盖的良好默认值 *

  • Adaptable to different usage profiles: hosters, site administrators, developers, theme builders, etc.

  • 适应不同的使用情况:托管人,网站管理员,开发人员,主题建设者等。 *

  • Enables specialized "distributions" of the application (blog, commerce, etc.)

  • 启用应用程序的专门“分发”(博客,商业等) *

  • Gracefully handling failure is an important scenario

  • 优雅地处理故障是一个重要的场景 *

  • Works with WebPI or standalone

  • 适用于WebPI或独立 *

  • Modules can take part in the install process

  • 模块可以参与安装过程 *

  • Sample data can optionally be installed along with the application

  • 可以选择将示例数据与应用程序一起安装 *

  • Scriptable

  • 编写脚本 *

  • Must work as a real wizard and enable the user to go back and change his mind

  • 必须作为一个真正的向导工作,并使用户能够回头改变主意 *

  • Progress should be visible

  • 应该看到进展 *

  • Distinguishes between initial setup and configuration

  • 区分初始设置和配置 *

Non-goals

非目标

  • Update / upgrade of the application, themes and modules is not handled by this specification. It will be the object of a separate spec.

  • 本规范不处理应用程序,主题和模块的更新/升级。这将是一个单独的规范的对象。 *

Scenarios

方案

Hosted site with support for Orchard

托管网站,支持Orchard

A user goes to his hoster's control panel and chooses Orchard. With just one click, he was able to deploy the application. He can then navigate to it and provide an administrator password (the database setup step can be skipped as that choice is made once and for all by the hoster). The site is then ready to use.

用户去他的主机控制面板并选择Orchard。只需单击一下,他就可以部署应用程序。然后,他可以导航到它并提供管理员密码(可以跳过数据库设置步骤,因为该选择是由托管商一次性完成的)。然后该网站即可使用。

To enable this scenario, the setup model of the application must be scriptable so that hosters can provide one-click installs from common control panel applications.

要启用此方案,应用程序的安装模型必须是可编写脚本的,以便托管商可以从常用控制面板应用程序提供一键安装。

Hosted site without support for Orchard

托管网站不支持Orchard

A user downloads a zip file from the Orchard web site. He unpacks the archive and uploads the resulting directory to his web site using ftp. He navigates to the application and follows the setup wizard.

用户从Orchard网站下载zip文件。他解压缩存档并使用ftp将生成的目录上传到他的网站。他导航到应用程序并按照设置向导进行操作。

Local install for core development purposes

本地安装用于核心开发目的

A developer wants to create an extension for Orchard. He points TortoiseSVN to the CodePlex repository and gets enlisted. He starts the project in Visual Studio and works on the application. He then uploads a patch to CodePlex.

开发人员想要为Orchard创建扩展。他将TortoiseSVN指向CodePlex存储库并获得入伍。他在Visual Studio中启动项目并处理应用程序。然后他将补丁上传到CodePlex。

Local install for module development

本地安装模块开发

A developer downloads the latest version of the application (same as end users) and opens the project file that can be found at the root of the application in Visual Studio. He is able to use Visual Studio tooling to create a new area/module. Once his module is built and working, he can run a command-line tool to package his module into a zip file that he uploads to the Orchard module gallery.

开发人员下载最新版本的应用程序(与最终用户相同),并打开可在Visual Studio中的应用程序根目录中找到的项目文件。他能够使用Visual Studio工具创建新的区域/模块。一旦他的模块构建并运行,他就可以运行一个命令行工具将他的模块打包成一个zip文件,然后上传到Orchard模块库。

Local install for theme development

主题开发的本地安装

A user wants to create his own theme for Orchard. He downloads the application (same as end users), installs it. Then, he creates a subdirectory under the themes folder, and with the help of existing themes and a few tools that are integrated into Orchard, he builds his own theme. He then zips it up and uploads it to the online gallery.

用户想要为Orchard创建自己的主题。他下载应用程序(与最终用户相同),安装它。然后,他在themes文件夹下创建了一个子目录,借助现有主题和一些集成到Orchard的工具,他构建了自己的主题。然后他将其拉上并将其上传到在线图库。

Deployment from a local install to a hosted site

从本地安装部署到托管站点

A user downloads and installs Orchard locally in order to evaluate it. Once he's found that he likes it and would like to use it on his public site, he just uploads it to his hosted account using ftp. The web site just works there as it was working locally.

用户在本地下载并安装Orchard以进行评估。一旦他发现他喜欢它并希望在他的公共网站上使用它,他只需使用ftp将其上传到他的托管帐户。该网站在那里工作,因为它在本地工作。

Dedicated server

专用服务器

A user runs WebPI on his dedicated web server. WebPI installs everything necessary (including IIS and ASP.NET) as well as the application. He can then go through the setup wizard to finish installation.

用户在其专用Web服务器上运行WebPI。 WebPI安装所有必需的(包括IIS和ASP.NET)以及应用程序。然后,他可以通过设置向导完成安装。

Serial installs on dedicated server

串行安装在专用服务器上

A site administrator or integrator who routinely creates new Orchard sites installs the necessary pieces using WebPI. Once this is done, he can run a command-line version of setup to easily create new instances of Orchard on his server.

定期创建新Orchard站点的站点管理员或集成商使用WebPI安装必要的部分。完成此操作后,他可以运行命令行版本的setup,以便在其服务器上轻松创建Orchard的新实例。

Extension developer creates a specialized distribution

扩展开发人员创建专门的分发

A developer creates a new e-commerce module for Orchard. He packages it and creates a special distribution of Orchard. He is able to add a few additional setup steps (visual or not) to gather some e-commerce specific settings and add sample data. Users can then download that special version and get an e-commerce application installed with minimal efforts. That special version can still be extended exactly like the base Orchard distribution. In particular, users can add other modules and build their own composite application from it.

开发人员为Orchard创建了一个新的电子商务模块。他打包并创建了Orchard的特殊发行版。他可以添加一些额外的设置步骤(可视或非可视)来收集一些特定于电子商务的设置并添加样本数据。然后,用户可以下载该特殊版本,并以最小的努力安装电子商务应用程序。该特殊版本仍然可以像基础Orchard发行版一样进行扩展。特别是,用户可以添加其他模块并从中构建自己的复合应用程序。

Handling failure

处理失败

Install failures will necessarily happen, for a variety of reasons, some that we can anticipate, some that we can't. In those scenarios, it is very likely that the user would just give up or become frustrated at the difficulty of making it work.

出于各种原因,安装失败必然会发生,有些是我们可以预料到的,有些是我们无法做到的。在这些情况下,用户很可能只是放弃或对使其工作的困难感到沮丧。

We should do everything possible to:

我们应尽一切可能:

  • Anticipate possible failures and do capability checks before the failures happen. For example, check for writing rights on directories and provide clear instructions when such rights aren't properly configured.

  • 在发生故障之前预测可能的故障并进行能力检查**。例如,检查目录的写权限,并在未正确配置此类权限时提供明确的说明。

  • In case of unforeseen catastrophic failure, provide links to forums and support e-mails. Also try to restore the state of the application to a state where it can be salvaged. In other words, work with transactions, always have back buttons.

  • 如果发生无法预料的灾难性故障,请提供论坛和支持电子邮件的链接。还尝试将应用程序的状态恢复到可以抢救的状态。换句话说,使用事务,总是有后退按钮。 *

Capability check and known error cases

能力检查和已知错误情况

Here's a tentative list of possible error cases:

以下是可能的错误情况的暂定列表:

  • The setup information will have to persist its database setup information, and it obviously can't use the database for it. The first check setup should do is verify that App_Data is writable: this will be necessary for many database configurations and in particular the default one, and it is a good place to store the setup completion file. If that directory is not writable, we should give an error message ("The App_Data directory in the application is not writable. That will restrict your choice of database and may deteriorate the setup experience. If you have access to Windows file permissions on this server, please grant the NETWORK SERVICE account Write and Modify permissions on App_Data. If you don't know what that means or are hosting the site externally, please contact your hoster or server administrator and ask him to do this for you. If this is still not possible, you can upload the following file into the App_Data folder using ftp: [link to database config file]."). The link to the file should open a download dialog in the browser and should contain the chosen database configuration in YAML format (database provider name, and if relevant database login info).

  • 设置信息必须保留其数据库设置信息,显然它不能使用数据库。第一个检查设置应该验证App_Data是否可写:这对于许多数据库配置是必需的,特别是默认的配置,并且它是存储设置完成文件的好地方。如果该目录不可写,我们应该给出一条错误消息(“应用程序中的App_Data目录不可写。这将限制您选择的数据库,并可能会降低设置体验。如果您有权访问Windows文件权限这个服务器,请在“App_Data”上授予NETWORK SERVICE帐户“写入”和“修改”权限。如果您不知道这意味着什么或在外部托管该站点,请联系您的托管服务商或服务器管理员并请他为您执行此操作。如果仍然无法做到这一点,可以使用ftp:\ [链接到数据库配置文件\]来将以下文件上传到App_Data文件夹中。“)。该文件的链接应在浏览器中打开下载对话框,并应包含YAML格式的所选数据库配置(数据库提供程序名称,以及相关的数据库登录信息)。 *

  • When using a database provider that stores data locally in App_Data, we also need to check write access to App_Data. If it fails when validating the database configuration, we should display the following error message: "The database provider that you chose requires the application to be able to write into the App_Data directory of the application. If you have access to Windows file permissions on this server, please grant the NETWORK SERVICE account Write and Modify permissions on App_Data. If you don't know what that means or are hosting the site externally, please contact your hoster or server administrator and ask him to do this for you. If this is still not possible, please choose another database provider such as SQL Server. This may require a different hosting plan."

  • 当使用在“App_Data”中本地存储数据的数据库提供程序时,我们还需要检查对“App_Data”的写入访问。如果在验证数据库配置时失败,我们应该显示以下错误消息:“您选择的数据库提供程序要求应用程序能够写入应用程序的App_Data目录。如果您有权访问Windows文件权限在此服务器上,请在“App_Data”上授予NETWORK SERVICE帐户“写入”和“修改”权限。如果您不知道这意味着什么或在外部托管该站点,请联系您的托管服务商或服务器管理员并要求他为您执行此操作如果仍然无法做到这一点,请选择其他数据库提供商,例如SQL Server。这可能需要不同的主机方案。“ *

  • When providing database connection information, for some providers it will be necessary to provide credentials. Those credentials will need to be checked right away. If authentication failed, we should surface the error message from the database.

  • 在提供数据库连接信息时,对于某些提供商,将需要提供凭据。需要立即检查这些凭据。如果身份验证失败,我们应该从数据库中显示错误消息。 *

  • When checking database access, database access may fail because the database provider is not available. We should then recommend the user pick a different provider.

  • 检查数据库访问时,数据库访问可能会失败,因为数据库提供程序不可用。然后我们应该建议用户选择不同的提供商。 *

  • Checking database access may fail in some configurations because the database server address was wrong or because the server timed out or responded in error. In those cases, display: "The database failed to respond in time. Please check that its address is correct and that the server is up and running."

  • 在某些配置中检查数据库访问可能会失败,因为数据库服务器地址错误或服务器超时或响应错误。在这些情况下,显示:“数据库未能及时响应。请检查其地址是否正确以及服务器是否已启动并正在运行。” *

  • The credentials provided may not give rights to create tables in the database. We should test that we can create tables and display the following error message if that fails: "The database credentials you provided don't seem to allow the application to create the table structures that it will need. Please check with your hoster or database administrator that the credentials have table creation rights."

  • 提供的凭据可能不提供在数据库中创建表的权限。我们应该测试我们是否可以创建表并显示以下错误消息:如果失败:“您提供的数据库凭据似乎不允许应用程序创建它需要的表结构。请与您的主机或数据库管理员联系凭据具有表创建权限。“ *

  • Same thing for creating the database if not pointing to an existing database.

  • 如果不指向现有数据库,则创建数据库也是如此。 *

When one of these error cases happen, the setup wizard should stay on the same setup screen. This will enable the user to attempt to fix the problem and click next again.

当其中一个错误情况发生时,安装向导应保持在同一设置屏幕上。这将使用户能够尝试解决问题并再次单击下一步。

Logging

记录

Setup should produce a log of the install operations, detailing the success or failure of each operation. When a failure occurs, the error message should include a link to the log file so that it can be downloaded and posted to support forums.

安装程序应生成安装操作的日志,详细说明每个操作的成功或失败。发生故障时,错误消息应包含指向日志文件的链接,以便可以下载并发布到支持论坛。

Installation steps

安装步骤

Although the following steps could be arranged so that each one is on a separate screen, there are so few here that we will consolidate them into a single setup page with sections. Eventually, modules may be able to chime in and provide their own setup steps but the core ones will be on a single screen.

虽然可以安排以下步骤,以便每个步骤都在一个单独的屏幕上,但是这里很少有我们将它们合并到一个带有部分的设置页面中。最终,模块可以插入并提供自己的设置步骤,但核心模块将在单个屏幕上。

In the future case where more than one step is available, there will be buttons to go to the next step and go back to previous ones and the list of steps should be visible at all times, with a clear indication in the UI of what's already been done and what remains to be done.

在将来可以使用多个步骤的情况下,将有按钮进入下一步并返回到先前步骤,并且步骤列表应始终可见,并在UI中明确指示已经存在的步骤已完成,还有待完成的工作。

Note: eventually, we will have an admin screen to enable or disable modules. We will then have to decide on the set of modules that we ship with the core distribution, and among those, which ones we activate by default. We will also need to be able to run the setup for each module if it exists at the time it gets activated.

注意:最终,我们将有一个管理屏幕来启用或禁用模块。然后,我们将决定我们随核心发行版一起提供的模块集,其中包括我们默认激活的模块。如果每个模块在激活时存在,我们还需要能够运行每个模块的设置。

Language

语言

Note: This step will not be developed until we add localization ability to the rest of the application.

注意:在我们向应用程序的其余部分添加本地化功能之前,不会开发此步骤。

The first installation step should be to ask the user for the language he wants to use during install. This step should only be shown if more than one language is available. The choices should be radio-buttons so that it is immediately obvious visually that you might find text in your own language and not just English.

第一个安装步骤应该是询问用户在安装期间要使用的语言。只有在有多种语言可用时才应显示此步骤。选择应该是单选按钮,以便在视觉上立即明显,您可以使用自己的语言而不仅仅是英语找到文本。

"o Check this if you'd like us to use English throughout the rest of the installation process." The message should be localized in each of the available languages.

“o如果您希望我们在整个安装过程中使用英语,请检查此项。”消息应该以每种可用语言进行本地化。

Database engine

数据库引擎

The choice of a database engine must be done early in the setup process for technical reasons but it is a choice that is only relevant to advanced users. For that reason, the default of using SQLite should require no further configuration from the user, and using an alternative to that choice must require additional manipulations.

必须在设置过程的早期出于技术原因选择数据库引擎,但这是一个仅与高级用户相关的选择。因此,使用SQLite的默认设置不需要用户进一步配置,并且使用该选项的替代方法必须进行额外的操作。

We could display a text such as "Database configuration: Orchard uses a database to store the contents it manages. The default database engine that we chose for you should work just fine and if you don't have a specific reason to change it we recommend you proceed with that choice. This should be the last time you'll hear about such trivial technical details. Just skip this section and be on your merry way. If you do have a reason to use another database engine, please select it in the following list..."

我们可以显示一个文本,例如“数据库配置:Orchard使用数据库来存储它管理的内容。我们为您选择的默认数据库引擎应该可以正常工作,如果您没有特定的理由进行更改,我们建议你应该继续这个选择。这应该是你最后一次听到这些琐碎的技术细节。只需跳过这一部分,并以你的快乐方式。如果你有理由使用另一个数据库引擎,请选择它以下列表......“

There should be no other setting for SQLite, but other choices may require the user to enter an administrator login and password, and a user login and password (with password confirm) to create that the application will use to access data. It should be clear that the admin login/password will only be used to create the database and user, and that after that it's thrown away and never again used.

SQLite应该没有其他设置,但是其他选择可能要求用户输入管理员登录名和密码,以及用户登录名和密码(使用密码确认)来创建应用程序将用于访问数据。应该清楚的是,管理员登录/密码将仅用于创建数据库和用户,之后它将被丢弃并且永远不会再次使用。

A checkbox enables the user to set-up with sample data: "Check this if you want us to install sample data. This is useful if you're installing the application to develop modules or themes and you want to work against existing data without having to create it yourself. It is also useful if you're installing the application for evaluation purposes. If you do not check this, we'll give you an empty site that you can populate yourself."

通过复选框,用户可以使用示例数据进行设置:“如果您希望我们安装示例数据,请选中此选项。如果您要安装应用程序以开发模块或主题,并且希望在不使用现有数据的情况下工作,则此选项非常有用。如果您正在安装应用程序以进行评估,它也很有用。如果您不进行检查,我们将为您提供一个可以自行填充的空白站点。“

The choice of database can't obviously be stored in the database. It should be stored in a YAML file in the App_Data folder instead.

数据库的选择显然不能存储在数据库中。它应该存储在App_Data文件夹中的YAML文件中。

Administrator login

管理员登录

In most applications, the first person to run the application owns it and gets to set-up the administrator password. This works reasonably well although technically there is a risk that somebody might hijack the application, it is quite unlikely and even in that case, there is no data to be stolen yet. Nuking the site and starting over is a simple workaround. Some applications secure this further by giving a key file during setup that must be copied into the application's root directory, but that clearly gets in the way of simplicity to get rid of a very small risk.

在大多数应用程序中,第一个运行应用程序的人拥有它并获得设置管理员密码。虽然技术上存在某人可能劫持应用程序的风险,但这种情况相当不错,这种可能性很小,甚至在这种情况下,也没有数据被窃取。 Nuking网站并重新开始是一个简单的解决方法。有些应用程序通过在安装过程中提供一个必须复制到应用程序根目录中的密钥文件来进一步保护这一点,但这显然会妨碍简单以消除非常小的风险。

This step will pre-fill the administrator's login with "admin" (which is shorter than "Administrator") and will ask for a preferably strong password. We should have a live strong password check here that indicates password strength as you type and we should provide an explanation:

此步骤将使用“admin”(比“Administrator”更短)预先填写管理员的登录名,并且会要求输入一个最好的密码。我们应该在这里有一个实时强密码检查,在您输入时指示密码强度,我们应该提供一个解释:

"We are now going to ask you to provide a password for the administrator of the site. We recommend that you choose a password (or passphrase) that meets a number of complexity requirements that we'll check for you. Otherwise, it would be easy for an attacker to take control of your site and deface it. We're sorry to have to put you through this."

“我们现在要求您为网站管理员提供密码。我们建议您选择一个符合我们将为您检查的复杂性要求的密码(或密码)。否则,它将是攻击者很容易控制你的网站并破坏它。我们很遗憾不得不让你完成这个。“

Site name

网站名称

"You can choose the name of the site that will appear in the title bar of the browser and in the header of all your pages in the following field."

“您可以选择将出现在浏览器标题栏中以及以下字段中所有页面标题中的网站名称。”

After setup is done

设置完成后

Once these steps are completed, the user is directed to the home page of the site. He is logged as the administrator without having to log in.

完成这些步骤后,用户将被定向到站点的主页。他以管理员身份登录,无需登录。

Handling back

处理回来

This does not need to be implemented yet, and we'll recommend any additional setup steps are independent of one another.

这还不需要实现,我们建议任何其他设置步骤彼此独立。

Handling a back button in a setup process is not trivial, especially if there are irreversible or interdependent steps. For example, if the user goes back to the choice of database and changes it, it affects the steps after it. A simple solution to this problem is that some setup settings are marked so that any change of these settings resets all subsequent steps. Reset does not necessarily mean that we forget the values the users entered, but rather that it is "uncommitted". Another approach is to recommend that steps are independent of one another.

在设置过程中处理后退按钮并非易事,尤其是在存在不可逆或相互依赖的步骤时。例如,如果用户返回到数据库的选择并对其进行更改,则会影响其后的步骤。此问题的一个简单解决方案是标记某些设置设置,以便这些设置的任何更改都会重置所有后续步骤。重置并不一定意味着我们忘记了用户输入的值,而是“未提交”。另一种方法是建议步骤彼此独立。

Progress indication

进度指示

This does not need to be implemented until we have multiple installation steps.

在我们有多个安装步骤之前,这不需要实现。

Global progress in the setup process is made visible to the user by showing a list of setup steps and giving a visual indication of what has already been executed and where the user currently is.

通过显示设置步骤列表并给出已经执行的内容以及用户当前所在位置的可视指示,使用户可以看到设置过程中的全局进度。

Local progress of a long-running setup step is not made visible, but an indication that something is running should be given.

长时间运行的设置步骤的本地进度不可见,但应指示某些内容正在运行。

Welcome screen

欢迎屏幕

Even if the user declined the offer to create sample data, we will pre-populate the CMS home page with the following text (the home page is a page named "Home" that has the slug "/"):

即使用户拒绝了创建样本数据的提议,我们也会使用以下文本预填充CMS主页(主页是名为“Home”的页面,其中包含slug“/”):

"Welcome to Orchard!

“欢迎来到乌节!

Congratulations, you've successfully set-up your Orchard site.

恭喜,您已成功设置了Orchard网站。

This is the home page of your new site. We've taken the liberty to write here about a few things you could look at next in order to get familiar with the application. Once you feel confident you don't need this anymore, just click [Edit] to go into edit mode and replace this with whatever you want on your home page to make it your own.

这是您新网站的主页。我们已经自由地在这里写了一些你可以看到的东西,以便熟悉应用程序。一旦您确信不再需要它,只需单击\ [编辑\]进入编辑模式,将其替换为您想要在主页上的任何内容,使其成为您自己的。

One thing you could do (but you don't have to) is go into [Manage Settings] (follow the [Admin] link and then look for it under "Settings" in the menu on the left) and check that everything is configured the way you want.

您可以做的一件事(但您不必)进入\ [管理设置\](按照\ [管理员]链接,然后在左侧菜单中的“设置”下查找)并检查一切都按照你想要的方式配置。

You probably want to make the site your own. One of the ways you can do that is by clicking [Manage Themes] in the admin menu. A theme is a packaged look and feel that affects the whole site. We have installed a few themes already, but you'll also be able to browse through an online gallery of themes created by other users of Orchard.

您可能希望将该网站设为自己的网站。其中一种方法是单击管理菜单中的\ [Manage Themes \]。主题是一种影响整个网站的打包外观。我们已经安装了一些主题,但您还可以浏览由Orchard其他用户创建的主题在线图库。

Next, you can start playing with the content types that we installed. For example, go ahead and click [Add New Page] in the admin menu and create an "about" page. Then, add it to the navigation menu by going to [Manage Navigation]. You can also click [Add New Blog] and start posting by clicking [Add New Post].

接下来,您可以开始使用我们安装的内容类型。例如,继续并单击管理菜单中的\ [添加新页面\]并创建“关于”页面\。然后,转到\ [管理导航\] \将其添加到导航菜单。您也可以单击\ [添加新博客]并通过单击\ [添加新帖子\]开始发布。

Finally, Orchard has been designed to be extended. It comes with a few built-in modules such as pages and blogs but you can install new ones by going to [Manage Themes] and clicking [Install a new Theme]. Like for themes, modules are created by other users of Orchard just like you so if you feel up to it, please [consider participating]."

最后,Orchard已被设计为扩展。它附带了一些内置模块,如页面和博客,但您可以通过转到\ [Manage Themes \]并单击\ [安装新主题\]来安装新模块。和主题一样,模块是由Orchard的其他用户创建的,就像你一样,如果你有这种感觉,请\ [考虑参与\] \。“

WebPI steps

WebPI步骤

WebPI's main value is to make sure the application's most basic requirements are satisfied before it can take over and start its own consistent setup experience. There is little value in having WebPI replicate what the application's setup process already implements. Not doing so reduces duplication and avoids synchronization issues between the WebPI-provided setup data and the web-setup-provided data.

WebPI的主要价值在于确保应用程序的最基本要求得到满足,然后才能接管并开始自己的一致安装体验。让WebPI复制应用程序的设置过程已经实现的内容几乎没有价值。不这样做可以减少重复并避免WebPI提供的设置数据与Web设置提供的数据之间的同步问题。

The database engines will be declared as optional dependencies of Orchard. USers will have to take care of installing the database engine that they want to use.

数据库引擎将被声明为Orchard的可选依赖项。用户必须负责安装他们想要使用的数据库引擎。

The WebPI install should include making sure the write permissions that are necessary for optimal use of Orchard are in place.

WebPI安装应该包括确保最佳使用Orchard所需的写权限。

Release process and format

发布流程和格式

The setup package should be the zipped contents of the web project, so that unzipping it into an IIS web application directory puts the application in a running state.

安装程序包应该是Web项目的压缩内容,因此将其解压缩到IIS Web应用程序目录会使应用程序处于运行状态。

The build process for this package should be automated and should run on the continuous integration server. It's output should be the zip file and the WebPI manifest.

此程序包的构建过程应该是自动的,并且应该在持续集成服务器上运行。它的输出应该是zip文件和WebPI清单。

Versioning should be integrated into the generated file names: Orchard.[major].[minor].[build].zip. The major and minor versions are manually incremented, whereas the build number comes from the changeset number.

版本控制应该集成到生成的文件名中:Orchard \。\ [major \] \。\ [minor \] \。\ [build \] \ .zip。主要版本和次要版本是手动递增的,而构建编号来自变更集编号。

When does setup run?

什么时候设置运行?

If no database has been set-up yet, navigating to any page of the application redirects to the first step of setup.

如果尚未设置数据库,则导航到应用程序的任何页面都会重定向到安装的第一步。

Until the final step of setup has been reached and executed, navigating to any page of the application redirects to the latest step of setup that has not been completed before.

在达到并执行设置的最后一步之前,导航到应用程序的任何页面都会重定向到之前尚未完成的最新设置步骤。

If the browser is closed for whatever reason, navigating back to the application redirects to the latest step of setup that wasn't completed before.

如果浏览器因任何原因而关闭,则导航回应用程序会重定向到之前未完成的最新安装步骤。

Once the setup process has been completed, the setup controller should give 404 errors on all operations.

设置过程完成后,设置控制器应在所有操作上给出404错误。

Sample data

样本数据

Sample data should be provided by each module. This means that each module will be able to chime into the setup process and create and populate data tables. Among the modules that will provide sample data out of the box, we will have blog, pages and some associated comments (validated, spam and unvalidated) as well as some images in the media folder.

每个模块都应提供样本数据。这意味着每个模块都能够进入设置过程并创建和填充数据表。在提供开箱即用的样本数据的模块中,我们将有博客,页面和一些相关评论(经过验证,垃圾邮件和未经验证)以及媒体文件夹中的一些图像。

The page sample data will consist of the home page (even if an empty site was chosen) and an about page. The about page will have the following text:

页面样本数据将包含主页(即使选择了空站点)和about页面。 about页面将包含以下文本:

"About the Orchard Project

“关于果园项目

Orchard is a free, open source, community-focused project aimed at delivering applications and reusable components on the ASP.NET platform.

Orchard是一个免费的,开源的,以社区为中心的项目,旨在在ASP.NET平台上提供应用程序和可重用组件。

More information about Orchard can be found here: http://orchardproject.net/"

有关Orchard的更多信息,请访问:http://orchardproject.net/“

The blog sample data will consist in tutorial posts that we will build. There should be one post about customizing settings, one about writing pages, one about writing and managing blog posts, one about moderating comments, one about building a theme.

博客示例数据将包含我们将构建的教程帖子。应该有一篇关于自定义设置的帖子,一篇关于编写页面,一篇关于编写和管理博客文章,一篇关于评论评论,一篇关于构建主题。

Sample comments can be short and simple "Amazing" kinds of comments.

样本评论可以简短而简单的“惊人”类型的评论。

Initial features set

初始功能设置

Initially, we'll focus on implementing the features necessary for the following scenarios:

最初,我们将专注于实现以下方案所需的功能:

  • hosted site without support from the hoster

  • 托管网站没有托管服务商的支持 *

  • local install for development or theme building purposes

  • 本地安装用于开发或主题构建目的 *

  • deploy from local install to host

  • 从本地安装部署到主机 *

  • dedicated server

  • 专用服务器 *