欢迎来到天天文库
浏览记录
ID:42603646
大小:166.75 KB
页数:28页
时间:2019-09-18
《Orchard模块开发流程文档》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Orchard中的命令行工具在Orchard中提供了一个命令行工具,我们可以使用这个命令行工具创建用户、创建博客、生成代码、配置网站、打包模块等。并且这个命令行工具是可以扩充的,只要我们在自己开发的模块中创建一个Command类,并继承于Orcahrd框架所提供的DefaultOrchardCommandHandler。这样我们就可以在这个类中实现自己模块可以提供的命令了。具体实现方式,可以参考默认提供的Orchard.Users模块中的UserCommands.cs文件。启动此命令行工具,可以在
2、Orchard网站的Bin目录下,执行orchard.exe文件。就是在项目文件中的Orchard.WebBin目录下。 等待命令行工具初始成功后,会出现一个“orchard>”提示行。在这里我们就可以输入相应的一些命令了。比如Orchard框架提供的helpcommands。 它会列出全部可以使用的命令。 输入:help(help+相应的命令会显示此相应命令的帮助信息),如输入Helpusercreate,显示如下:它提示我们在使用创建用户这个命令的时候该如何输入相应的参数
3、。 默认提供的命令都给出了很清楚的解释,就不在这里浪费篇幅介绍了,只要大家使用helpcommands命令列一下就都清楚了。在这里重点介绍一下自动生成代码模板的命令,这在我们做Orchard模块开发的时候会很有用。 如果需使用Orachard的代码自动生成功能,就需要先安装一个CodeGeneration模块。我们可以在Orchard网站的管理后台的模块市场中找到它并安装。安装完成后在Features中启用一下这个模块。当然我们也可以用命令行工具去启用它,如:orchard>featureen
4、ableOrchard.CodeGeneration。 当Orchard.CodeGeneration启用后,我们就可以在Orchard命令行中运行相应的命令来创建模块了。创建模块在Orchard命令行工具中输入:codegen module JT56.Advertisement模块创建成功后,可以在Orchard的Module目录中看见我们刚创建的模块项目。模块项目创建好以后,就要创建Migrations,定义ContentType,以及创建表结构Migrations在Orchard中提供了一
5、套模块的安装和升级机制。当模块需要用到数据库的时候,Orchard通过一个Migrations.cs文件去创建和更新数据库。在Orchard命令行工具中输入以下命令,即可创建Migrations.cs文件模板。CodegendatamigrationJT56.AdvertisementMigrations.cs代码如下:publicclassMigrations:DataMigrationImpl{publicLocalizerT{get;set;}publicMigrations(){T=Nul
6、lLocalizer.Instance;}publicintCreate(){//创建表结构SchemaBuilder.CreateTable("AdvertisementPartRecord",table=>table.ContentPartRecord().Column("Alimama",cfg=>cfg.WithLength(1024))//定义表字段,数据类型.Column("UrlAddress",cfg=>cfg.WithLength(100)).Co
7、lumn("Remark",cfg=>cfg.WithLength(100)).Column("Image",cfg=>cfg.WithLength(100)).Column("Title",cfg=>cfg.WithLength(100)));//定义ContentPartContentDefinitionManager.AlterPartDefinition("AdvertisementPart",builder=>builder.Attacha
8、ble().WithField("Image",fieldBuilder=>fieldBuilder.OfType("MediaLibraryPickerField").WithDisplayName("展示图").WithSetting("MediaLibraryPickerFieldSettings.Required","True"))//定义Field,设置必须输入属性.WithDescription("AdvertisementPart."));//定义ContentTyp
此文档下载收益归作者所有