本主题由 bbsh 于2011-12-12 12:22:00 执行标题样式 (
查看更多)
插件开发说明及制作范例/源代码,邀请码插件范例。
插件开发环境说明(插件范例请移步:http://bbs.powereasy.net/forum73/thread-491704-1-1.aspx;网友制作邀请码插件:
http://bbs.powereasy.net/forum73/thread-494171-1-1.aspx )1、 使用VS2010/2008新建一个空的WebApplication


2、 把动易程序放在项目根目录下,并点击显示所有文件

3、 把bin目录改名为DLL目录
4、 把DLL目录的所有DLL添加引用到项目中。

由于项目比较多,可能这个操作需要比较久的时间。
经过上面四步,插件开发环境就搭建好了。当然这里的开发环境不是唯一的标准,如果你对asp.net熟悉,可以以其他形式开发。
具体实现效果可以参考插件DEMO工程。
插件开发过程简述1、 我们把新增功能所需要的新增文件包含到项目中

2、 配置好相关配置文件


和数据连接字符串,即可正常运行程序。(在此之前先把数据库建立好,数据库脚本为:SQLServerSchema2005.sql-架构,SQLServerData2005.sql-默认数据,也要注意数据库版本。)

3、 插件开发完毕后的打包
插件开发完成后,打包程序,先把程序发布出来,然后保留新增功能文件。并根据安装配置需要分别打包。具体可以参考插件DEMO中的打包方式。
插件安装卸载配置说明插件信息配置文件统一为:Plugin.config
Plugin.confg 模板:
<?xml version="1.0" encoding="utf-8"?><Plugin> <PluginName>Hello World</PluginName> <PluginUrl>http://www.powereasy.net</PluginUrl> <Description>Hello World</Description> <Author>Jannock</Author> <Version>3.6.0.0</Version> <AssemblyVersion>3.6.0.0</AssemblyVersion> <Install> <InstallStep Action="Load" Description="检查环境"> <Load Type="check" FilePath="" NameSpace=""></Load> </InstallStep> <InstallStep Action="File" Description="复制插件文件"> <File Type="zip" OriginPath="" TargetPath="" Description=""></File> <File Type="copy" OriginPath="" TargetPath="" Description=""></File> <File Type="edit" FilePath="" OriginString="" TargetString="" ActionType="sql" Description=""></File> <File Type="del" FilePath="" Description=""></File> </InstallStep> <InstallStep Action="Database" Description="安装数据库"> <Database Type="file"></Database> <Database Type="txt"></Database> </InstallStep> <InstallStep Action="Load" Description="加载插件"> <Load Type="service" FilePath="" NameSpace=""></Load> </InstallStep> <InstallStep Action="Menu" Description="设置菜单"> <Menu Type="admin" Description="菜单测试"></Menu> <Menu Type="user" Description=""></Menu> </InstallStep> </Install> <Uninstall> <UninstallStep></UninstallStep> </Uninstall> <Upgrade> <UpgradeStep > </UpgradeStep> </Upgrade></Plugin> Install 节为插件安装步骤其中InstallStep 为一步。这里可以同时处理同一类操作的集合。
InstallStep可用操作有 Action 为 :
Load (加载插件操作)
File (文件操作)
Database (数据库操作)
Menu (菜单操作)
Description 为操作说明
可用操作详细说明:Load (加载插件操作) 可以分为:Type 为:
check 类
直接执行插件类,一般用于环境检查操作,也可用于其他操作。
同时必须要有参数
FilePath 以“~/”开头即为网站根目录,否则是当前插件目录
NameSpace 插件命名空间
service 类
服务类插件,系统启动时加载。
同时必须有参数
FilePath 以“~/”开头即为网站根目录,否则是当前插件目录
NameSpace 插件命名空间
File (文件操作)Type 为:
zip文件解压
必须参数
OriginPath 源文件路径 以“~/”开头即为网站根目录,否则是当前插件目录
TargetPath 目标路径 以“~/”开头即为网站根目录,否则是当前插件目录
Description 为操作说明
copy 文件复制
必须参数
OriginPath 源文件路径 以“~/”开头即为网站根目录,否则是当前插件目录
TargetPath 目标路径 以“~/”开头即为网站根目录,否则是当前插件目录
Description 为操作说明
edit 文件编辑
必须参数
FilePath 源文件路径 以“~/”开头即为网站根目录,否则是当前插件目录
ActionType 操作类型
OriginString 被替换内容
TargetString 替换内容
Description 为操作说明
当ActionType 为 sql 时,限查询数据库替换。
例 :
<File Type="edit" FilePath="~/{TemplateDir}/文章内容页模板.html" OriginString="{ModelID}" ActionType="sql" TargetString="SELECT TOP 1 ModelID FROM PE_Model WHERE ModelName='产品展示模型'" Description="更新模板中内容模型ID"></File> 当ActionType 为txt 时。即替换文本
<File Type="edit" FilePath="~/{TemplateDir}/文章内容页模板.html" OriginString="xxxxx" ActionType="sql" TargetString=" yyyyyy" Description="更新模板中内容"></File> del 删除文件
必须参数
FilePath 文件路径 以“~/”开头即为网站根目录,否则是当前插件目录
Description 为操作说明
Database (数据库操作)<Database Type="file"></Database>
Type 类型
file 执行脚本文件
Database 的InnerText 为脚本文件路径,以“~/”开头即为网站根目录,否则是当前插件目录
前面分2000 或2005数据库
例如脚本文件为:2005Task.sql 此处只需写上
<Database Type="file"> Task.sql </Database>
txt 执行SQL语句
Database 的InnerText 为SQL语句
Menu (菜单操作)<Menu Type="admin" Action="Install" Description="菜单测试"></Menu>
Type 类型
admin 后台菜单操作
FilePath 为后台SiteMap路径。必须是~/ 开头
user 会员中心菜单操作
FilePath 菜单xml。必须是~/ 开头
Action 类型
Install 菜单安装
Uninstall 菜单删除
注:菜单操作需注意菜单组织结构,需对系统菜单有一定的了解才行。同类型的操作只能出现一个,即不能如下:
<Menu Type="admin" Action="Install" Description="菜单测试"></Menu>
<Menu Type="admin" Action="Install" Description="菜单测试"></Menu>
两个后台菜单同时出现,可以
<Menu Type="admin" Action="Install" Description="菜单测试"></Menu>
<Menu Type="user" Action="Install" Description="菜单测试"></Menu>
Uninstall 节点,<Uninstall>
<UninstallStep></UninstallStep>
</Uninstall>
UninstallStep 中的操作和上面的基本相同。
其中菜单部份
后台菜单需要添加属性
TitleList 菜单的标题(菜单命名时需要注意不能与系统的相同)
菜单标题可以是多个,使用 | 分开。
前台菜单也要增加属性
id 前台菜单对应的id。
Upgrade 节点 <Upgrade>
<UpgradeStep>
</UpgradeStep>
</Upgrade>
操作和上面的基本相同。
特殊路径:{TemplateDir} 模板路径 {SkinDir} 样式路径
插件接口说明 /// <summary>
///
/// </summary>
public interface IPlugin
{
/// <summary>
/// 是否出错
/// </summary>
bool IsError
{
get;
set;
}
/// <summary>
/// 执行方法
/// </summary>
/// <param name="pluginPath">插件路径</param>
/// <returns>执行信息/错误信息</returns>
string Exe(string pluginPath);
}
插件实例 HelloWorld系统扩展点说明系统插件扩展点统一放在
这里为扩展点。在系统启动时可以加载外部插件。
插件编写
新建项目

实现接口函数,添加事件弹出 HelloWorld。
插件功能基本完成,下面编写插件安装配置文件
新建文件Plugin.config
内容如下

然后把编译后的dll统一放到一个目录下:

插件到此完成。目前,动易系统的扩展点正在收集整理当中。如果大家觉得那些地方可以开放扩展的,可以在论坛里提出来。
附:Word版
插件开发说明.docx (文件大小:470 K, 下载次数:1292)