您的位置:首页 > 其它

Management Console ERP项目开发辅助工具 正确的方法+适当的工具使做项目的效率高而且问题少

2011-12-22 09:12 609 查看
ManagementConsole这个工具已经使用大半年了,期间经历了一些调整和修复。起初它是由一个ORM的扩展工具而来,后来经过众多工具的组合和拼接,逐渐庞大起来。在今年八月份就想到使用一个插件框架来把它们都集成起来,请参考文章《ManagementConsole工具管理类软件通用开发框架(开放源码)》来了解这个框架,这个框架是开源的,你可以到epn.codeplex.com中获取它的代码。我也用这个框架开发出了DataLoader文档处理程序的主界面,请参考《知识管理系统DataSolution研发日记之二应用程序系列》来了解它的应用。

ManagementConsole的主界面如下图所示





一共有十九个应用程序实用工具,它们在代码生成,报表制作,数据导入/导出,解决方案转换,资源翻译等方面发挥了重要的作用。

DataSetReader数据集读取

在用代码制作报表时,对数据进行SELECT之后,通常还会进行一些分组或是调整,以制作符合要求的报表。我知道有些时候,直接在SQLServer中进行应用聚合函数会使效率高很多,但是有些时候还是会以代码来完成。当把数据展现给报表组件(ReportViewer,CystalReportViewer)之前,我很想知道内存中的数据是怎样的,于是会把它写到文件中,然后用这个工具来查看DataTable或DataSet的值。在报表中检查到问题后,直接用这个工具打开数据表,以对比发生问题的原因。虽然这个工具只有简单的几行代码,但是我认为在报表数据诊断方面,它的作用非常大。源代码只有下面几行

OpenFileDialogdlg=newOpenFileDialog();
if(dlg.ShowDialog()==DialogResult.OK)
{
DataSetds=newDataSet();
ds.ReadXml(dlg.FileName);
dataGridView1.DataSource=ds.Tables[0];
rtfXml.Text=File.ReadAllText(dlg.FileName);
txtFile.Text=dlg.FileName;
}



Translation翻译

我们自小学会了简体汉语,进入初中后又知道有古汉语,进而学习文言文,进入大学后又知道了有台湾,香港,澳门这些地区使用繁体中文,如果没有计算机,您想知道一个简体字如何用繁体来写,还真是个麻烦。Office软件内置了简体与繁体的转换功能,现在有了.NET,你可以使用下面的代码,把一个简体字转化为繁体字

publicstringtranslation(stringsimpleChinese)
{
return(Microsoft.VisualBasic.Strings.StrConv(simpleChineseasstring,Microsoft.VisualBasic.VbStrConv.TraditionalChinese,0));
}


再进化一步,做成一个工具,方便重复使用





当在Simplified文本框中输入”工作单”后,应用translation函数,自动转化为出下面的繁体文字。

StringBuilder字符串转化





在拼凑SQL写程序的那段日子里,这个工具的价值是很大的。试想一些SQL语句,你要转化成.NET代码,也就是转化为string类型,在外套上引号,可以当你的SQL语句有很多行的时候,给它们套上冒号就要耗费一些时间。如果有这个工具,你可以把SQL语句拷贝到上面的文本框中,点击转化,则自动产生下面的StringBuilder类型的代码片段,都已经写好了,直接拷贝到代码中就可以用了。而且这个工具可以支持VB和C#两种语言的输出。后来还知道有这样的写法





在SQL语句的外面套一个@,这样就可以产生多行的语句,而不用在每一行末尾加引号。尽管如些,但是这个工具还是很好用,推荐给你这个思路,如果想做出它的实现代码来,半个小时内应该可以完成。

LicenseGenerator许可证产生器

当软件做好了之后,加上了必要的许可验证机制,可以用这个工具来产生软件必须的许可证。这个可以控制软件的行为,功能是否可用。虽然有条件编译,运行时类型解析,动态加载这些有利于控制软件功能点的方法,不过都不如这种方法简单灵活。举例说明,专业版的EPN框架不允许部署到虚拟机中,而只有企业版才可以,我在许可证生产器中中加一项AllowRunVirtualMachine选项,产生专业版的license文件设置它为false,表示不允许运行于虚拟机中。产生企业版的license文件中,则设置AllowRunVirtualMachine=true,以表示允许运行于虚拟机中。同一套代码,根据不同的license文件,决定功能是否可用,这种思路可以帮你设计功能点的限制与许可,实现起来方便。

QueryGenerator查询生成器





如果你维护过ERP系统,有过大量的表格及其数据关系的维护体会,你肯定会喜欢这个工具。把数据从一个数据库搬动到另一个数据库,这个轻量级的SQLServer导入导出工具,会相当的方便。选择需要导出数据的表格,生产UPDATE或INSERT语句,在到指定的数据库中执行一下生成的SQL语句,数据就被放到了指定的数据库中。比SQLServer的导入导出工具方便,小巧,虽然功能没有它那么强大。

LookupGenerator查询生成器

ReportGenerator报表生产器

QueryLookup查询导出

这三个系列的工具,是对上面的QueryGenerator的简化,导出指定数据库中的查询,报表设置。

SmithBuilder代码生成工具





在以前的文章中,我曾经开放了SmithBuilder的源代码。这是一个基于CodeSmith的代码生成器。当您在CodeSmith中设计好模板后,再用这个工具调用模板,传入必须的参数,以产生代码。这个工具可以简化CodeSmith的使用。比如,左边的树视图,我把当前选择的数据表都列出来,把多个表名传到指定的模板中,在Parameter区域中指定参数,会可以快速生成多个数据表的模板代码,以达到快速批处理的目的。CopyTextOnly表示是只拷贝代码片段,不拷贝文件,如果不打勾,则表示会生成多个接口或实现文件,而且会自动拷贝到剪贴板中,你只要在VisualStudio中点Paste就可以了,经过SmithBuilder的简化处理,是不是简单很多了。从代码的角度来理解,看起来是这样的

btnScriptTable.PerformClick();
if(generatedFiles.Count>0)
{
if(chkCopyTextOnly.Checked)
{
TextReadertr=newStreamReader(generatedFiles[0]);
stringtemplate=tr.ReadToEnd();
tr.Close();
Clipboard.SetText(template,TextDataFormat.UnicodeText);
}
else
{
StringCollectionfileDropList=newStringCollection();
fileDropList.AddRange(generatedFiles.ToArray());
Clipboard.SetFileDropList(fileDropList);
}
}



经过这二个功能的包装(多表选择,多文件批处理生成),应该是比CodeSmith要方便很多了。

SolutionConverter解决方案转化




经常在网上找一些资料,也会下一些代码回去实验一下。也经常会遇到这些代码是用不同版本的VisualStudio开发。虽然我们开发人员是穷人,但是所拥有的软件却是最富有的,从VisualStudio到SQLServer,再到PowerDesigner,你想要的,基本上都有了。但是,这么多软件也是个麻烦,比如,你不太愿意想在自己的电脑上,装上VisualStudio2005,VisualStudio2008,VisualStudio2010,这三个软件太耗费硬盘空间了。尽管新版本的VisualStudio会识别和转换旧版本的VisualStudio解决方案文件,但是的反过来就不行了。好了,有了这个工具,你机器中只装一个你喜欢的VisualStudio2008或是VisualStudio2010,任何的解决方案文件都可以经过这个工具的转换,变成你需要的版本。这个工具还有一个好处是,当我用VisualStudio2010开发好了系统,同时希望也提供VisualStudio2008的解决方案文件,老的办法是创建一个VisualStudio2008的解决方案文件,一个个的Addexistingitem。这样会耗费一些精力和时间。有了这个工具,你可以轻易的为你的项目源码,产生多个版本的VisualStudio解决方案文件。

这个工具来源于codeproject,请到该网站搜索它的源代码与执行文件。

CodeConversionVB与C#代码转化





如果你是C#程序员,你也会经常碰到一些好的代码是VB写的,虽然读懂它们并不困难,一致的.NETFrameworkAPI让C#程序员读懂VB程序轻松了很多,但是,有时候你想直接Copy到项目中去用,这样一行一行的转化也会消耗一些时间,而且容易出错。网上有很多免费的VB与C#代码转化的工具,可是要联机才行。像我这样的人,经常会无法连接到互联网,所以需要一个脱机运行的VB与C#代码转化工具,于是就有了这个工具的产生。它的基本原理是复杂的,你可以参考#Develop来学习和了解,如果要集成到项目中去,从下载的源代码中找到ICSharpCode.NRefactory项目的例子程序,这个工具就是取自于它。再进一步的,我需要做到整个VB项目文件(.vbproj)转化为C#项目文件(.csproj),这也没有多大的难度,用一个XmlDocument读项目文件的VB源代码,然后逐个代码文件的转化,最后生成csproj就可以了。

这个功能还会涉及到多个版本的VisualStudio的项目文件与解决方案文件的格式问题,stackoverflow上面有介绍这个主题的文章,也可以参考前面提到的开放源代码的SolutionConverter来学习不同版本的VisualStudio他们产生的文件格式的不同,解决了这个问题,一个VB与C#项目转化的软件基本上就完成了。在Google上搜索了一下,目前能找到的一个软件VBConversion,也只支持到了VisualStudio2008。

孟子说,不积跬步,无以致千里,不积小河,无以成江流。希望这些工具和思想可以帮助到你。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐