只看楼主 楼主

本主题由 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)
[本帖最后由 bbsh 于 2011-12-12 12:21:02 编辑]
评分记录
tjjzsj 金钱: +2  操作理由: 奖励 2010-09-29 15:10:01
lewi 金钱: +10 威望: +1  操作理由: 2010-09-28 14:35:28
wjlsunshine的签名
欢迎体验 PowerEasy® SiteGroup™ 的各项新特性并提出建议,您的支持是我们最大的动力!

评分

举报 使用道具 TOP

只看该用户 沙发

q r
评分记录
莫默 金钱: +2  操作理由: 比我还快 2010-09-28 14:19:35
lzsz357的签名
看看 链接:http://www.shangxiawen.com (www.shangxiawen.com)

评分

举报 使用道具 TOP

只看该用户 板凳

沙发

评分

举报 使用道具 TOP

只看该用户 地板

板凳?支持来了

评分

举报 使用道具 TOP

只看该用户 第4楼

支持,可惜我不会开发
romaintic的签名
BI什么时候才能让我感到满足

评分

举报 使用道具 TOP

只看该用户 第5楼

支持
xiaoyuercxh的签名
链接:http://www.newdu.com/ (新都网www.newdu.com)

评分

举报 使用道具 TOP

只看该用户 第6楼

哦,恩

评分

举报 使用道具 TOP

只看该用户 第7楼

asp.net很强大
jelman的签名
一日千里

评分

举报 使用道具 TOP

只看该用户 第8楼

插件功能是一大靓点,建议逐步开放更多的扩展点,可以预见4.0将会是一个传奇! 动易努力!


虽然不开源,但有插件也不错,知足吧!



It's gonna be legendary!






[本帖最后由 cfso2773 于 2010-09-28 14:46:48 编辑]
cfso2773的签名
本人精通DIV+CSS,制作模板及标签的联系我哈!
QQ:103915875

-------------------------------------
网页设计W3C —— QQ群:17069917
-------------------------------------------------

评分

举报 使用道具 TOP

只看该用户 第9楼

插件功能的引入,更加奠定我自学asp.net的决心
评分记录
flex 金钱: +2  操作理由: 祝你三天打鱼,两天晒网 2010-09-28 19:38:12
cfso2773的签名
本人精通DIV+CSS,制作模板及标签的联系我哈!
QQ:103915875

-------------------------------------
网页设计W3C —— QQ群:17069917
-------------------------------------------------

评分

举报 使用道具 TOP