Hawk 6. 编译和扩展开发
Hawk是开源项目,因此任何人都可以为其贡献代码。作者也非常欢迎使用者能够扩展出更有用的插件。
编译
编译需要Visual Stuido,版本建议使用2015, 2010及以上没有经过测试,但应该可以编译。
需要安装.Net Framework 4.5 和.NET Framework 4.0
没有其他依赖项。
可能出现的编译问题
虽然在GitHub上是最新的代码,最新代码是可以成功编译的。但不能保证用户是否clone的是早期版本的代码,因此此处罗列可能的编译错误。
因为工程
Hawk.csproj包含的两个图片文件不存在导致,在这些文件图标上点击右键,选择'排除出项目',即可正常编译。找不到项目
System.Windows.???.WPFPropertyGrid.csproj项目,有两种方法,一种是从作者的GitHub上clone对应的项目,并添加项目引用,另外一种做法是,删除项目引用,添加外部dll引用,所有的外部dll,都能在Include文件夹中找到。
代码结构
Hawk采用插件式结构,所有的组件都是可分离的。插件系统是自行设计的,非常类似于MEF框架。使用WPF技术,MVVM结构,界面和逻辑分离。
工程文件介绍如下:
- Hawk.Core 底层基础类库
- Hawk.ETL 数据清洗和爬虫插件库
- Hawk.ETL.Controls 界面库
- HawK.exe 可执行程序和插件容器
核心的需要修改的代码,都位于Hawk.ETL和Hawk.Core中。
实现新的连接器
以实现MySQL支持为例,在Hawk.Core.Connectors目录中,新建MySQLConnector.cs文件,创建对应的类,从DBConnectorBase继承。
在类上添加attribute,结构如下:
[XFrmWork("MySQLConnector")]
public class MySQLConnector
{
//implement interface IDataBaseConnector
}
实现新的子模块组件
如果你想开发新的组件,完全可以参考已有的代码。但一些特别简单的功能,不建议再开发新的插件,而是直接使用Python转换器即可。
你可以创建一个.NET工程,之后引用Hawk.Core.dll即可。不论是界面控件,转换器,过滤器还是执行器,都可以从已有的基类继承。
生成对应的dll文件后,可以将其拷贝到Hawk的根目录下,并在PluginLoadLogic.xml配置文件中,修改PluginFileName配置节,将该文件的dll文件名粘贴进去。这样Hawk在启动时,就会自动检索该dll中的所有插件。i
Hawk 6. 编译和扩展开发的更多相关文章
- iOS开发系列--App扩展开发
概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...
- 关于PHP扩展开发(收藏)
一.Linux shell命令: ls –lh 查看文件大小 du –a 查看文件及文件夹大小 -------------------------- nginx ------------- ...
- postgres扩展开发
扩展开发的基本组成 demo--1.0.sql demo.c demo.control Makefile demo.c当中包含了自定义函数的实现,纯C语言,目录下可包含多个.c文件.demo-1.0. ...
- PHP扩展开发相关总结
1.线程安全宏定义 在TSRM/TSRM.h文件中有如下定义 #define TSRMLS_FETCH() void ***tsrm_ls = (void ***) ts_resource_ex(0, ...
- php扩展开发初探
2015年2月26日 15:44:41 原因: 想用PHP实现一个布隆过滤器算法, 其中要用到位运算, 但是PHP的内置的int类型不给力, 不能支持大整数的位运算 数据一旦太大, 就会变为浮点数表示 ...
- PHP扩展开发(1):入门
有关PHP扩展开发的文章.博客已经很多了,比较经典的有: TIPI项目(http://www.php-internals.com/,强烈推荐) <Extending and Embedding ...
- PHP扩展开发01:第一个扩展【转】
我们先假设业务场景,是需要有这么一个扩展,提供一个叫ccvita_string的函数,他的主要作用是返回一段字符.(这个业务场景实在太假,大家就这么看看吧)对应的PHP代码可能是这样: functio ...
- centos php扩展开发流程
原文:centos php扩展开发流程 一.安装php centos 默认 yum 安装 php 版本为 5.3, 很多php框架基本上要求5.4以上版本,这时候不能直接 用 yum install ...
- PHP扩展开发-简单类扩展
今天来学习简单类扩展开发 实现目标为如下php的类 <?php class classext(){ private $username; CONST URL="http://www.g ...
随机推荐
- 透过WinDBG的视角看String
摘要 : 最近在博客园里面看到有人在讨论 C# String的一些特性. 大部分情况下是从CODING的角度来讨论String. 本人觉得非常好奇, 在运行时态, String是如何与这些特性联系上的 ...
- iframe用法
<iframe src="http://caiyanli.top/" height="500" width="500" frameb ...
- AngularJs之九(ending......)
今天继续angularJs,但也是最后一篇关于它的了,基础部分差不多也就这些,后续有机会再写它的提升部分. 今天要写的也是一个基础的选择列表: 一:使用ng-options,数组进行循环. <d ...
- Git命令总结
本文转载自345大神.... 查看原文 先上个图形化界面GIT工具 SourceTree下载链接 windows版 1.8.3 & Mac版 2.2.4 链接: http://pan.baid ...
- C++内联函数
在C语言中,我们使用宏定义函数这种借助编译器的优化技术来减少程序的执行时间,那么在C++中有没有相同的技术或者更好的实现方法呢?答案是有的,那就是内联函数.内联函数作为编译器优化手段的一种技术,在降低 ...
- bzoj3207--Hash+主席树
题目大意: 给定一个n个数的序列和m个询问(n,m<=100000)和k,每个询问包含k+2个数字:l,r,b[1],b[2]...b[k],要求输出b[1]~b[k]在[l,r]中是否出现. ...
- 太多选择——企业如何选择合适的BI工具?
在没认清现状前,企业当然不能一言不合就上BI. BI不同于一般的企业管理软件,不能简单归类为类似用于提高管理的ERP和WMS,或用于提高企业效率的OA.BPM.BI的本质应该是通过展现数据,用于加强企 ...
- Android—基于GifView显示gif动态图片
android中显示gif动态图片用到了开源框架GifView 1.拷GifView.jar到自己的项目中. 2.将自己的gif图片拷贝到drawable文件夹 3.在xml文件中设置基本属性: &l ...
- Android Studio 编译单个module
前期自己要把gradle环境变量配置好 在Terminal中gradle命令行编译apk 输入gradle assembleRelease 会编译全部module编译单个modulecd ./xiru ...
- Hibernate 系列 学习笔记 目录 (持续更新...)
前言: 最近也在学习Hibernate,遇到的问题差不多都解决了,顺便把学习过程遇到的问题和查找的资料文档都整理了一下分享出来,也算是能帮助更多的朋友们了. 最开始使用的是经典的MyEclipse,后 ...