- 浏览: 169843 次
- 性别:
- 来自: 杭州
最新评论
文章列表
(我文笔太烂,就当练手了)
NPOI 版本信息:
Binary: 2.1.3.1
Source Code: https://github.com/tonyqus/npoi (2015-06-15)
最近想改善某个项目中操作 Excel 文件的性能,于是重新开始研究 NPOI。
为什么是“重新”?
以前试用过 NPOI,实现过一些很基础的功能,但因为某些原因,一直用 Microsoft.Office.Interop.Excel。
为什么是“研究”?
因为 NPOI 的很多功能都有待实现/改善,帮助文档也不完善。甚至为了实现某些功能,不得不
参考:http://fellowtuts.com/mysql/query-to-obtain-rank-function-in-mysql
前段时间看到个帖子,是关于用 SQL 查询排名的。那个帖子里针对的数据库是 Oracle,用到了 Oracle 自带的函数 RANK(或 DENSE_RANK)。由于 MySQL 里没有相应的类似函数,所以写 SQL 会稍微繁琐一点。参考文章的主要思路:
对目标列排序
设置一个变量作为排名值,在每条记录中自增 1
方案一:
SQL: (如果想要降序排名,可以改成 ORDER BY age DESC)
有一次在用 Python 开发的时候遇到个问题:既需要调用 .Net Assembly,又需要调用只支持 CPython 的 module.
对于前一种场景,我们只能用 IronPython 作为引擎。
对于后一种场景,我们只能用 CPython。
当时找到一种简易的方法:遇 ...
该示例中:
C# 版本的实现主要靠 xmlrpcnet 和 xmlrpc-server
Python 版本的实现主要靠 SimpleXMLRPCServer.
C# 版的代码详见附件。
Pythont 版的可参考Python官网的代码(SimpleXMLRPCServer Example)。
之前在开发定制的 .Net 平台 Test Library 时,考虑过是做成 Remote Library 还是 Normal Library。
我更倾向于 Normal Library 的模式。
Remote Library
Remote Library 模式下,Test Library(实现具体功能的 dll 文件)host 在一个独立的进程中,也就是 Remote Server (如:NRobotRemote)。
优点
驱动更自由。CPython、IronPython 都行,只要装了相应的 Robot Framework。
缺点
参考:《Pros and Cons of Data-driven versus Keyword-driven Automation Frameworks》
数据驱动
优点
> 被测系统/功能还处于开发阶段时,就能开始着手写测试脚本。
> 模块化的脚本设计和数据集的使用可减少冗余的脚本 被测 ...
参考:《Thinking Clearly about Performance》
两个指标
响应时间:执行一个任务所耗费的时间
吞吐量:在指定的单位时间内执行任务的个数
响应时间和吞吐量“一般”是倒数关系
(真实关系比较复杂)
> 如果每秒吞吐 ...
参考:《Comparing Web Forms And ASP.NET MVC》
WebForm 的优点
> 成熟,稳定,有大量的第三方控件库和工具
> 开发效率高,适用于快速开发数据驱动型的应用
开发方式与 WinForm 很相似。WebForm 隐藏了很多内部细节,开发人员不需要对 HTML 和 JavaScript 非常熟悉就能开发 Web 应用。
WebForm 的缺陷
如果共享文件中的文件已被其它用户或进程打开,可能会导致不能被删除。
解决方法:
方法 1:预先设置共享文件夹为权限为只读
方法 2:先关闭占用共享文件的session,再删除
(在命令行中关闭session:net session /delete /y /y)
第一步:以不同用户的身份创建连接到远程目录的映射。
例:在Windows中创建映射到远程目录的临时网络驱动器(driver)(以不同的账户身份)。
命令行中用 net use, 不同账户的用户名,密码作为该命令的参数。
第二步:将文件拷贝到上一步创建的driver中。
第一步:规定好不同模块间交互的“接口”。
一般不同的人负责不同的模块。
第二步:验证“接口”设计是否合理。
尽快完成可用于验证“接口”的部分代码,先验证“接口”设计的合理性。
第三步:完成开发人员各自模块的内部细节。
方法1:用调用MSBuild执行自定义的MSBuild脚本文件
第一步:创建MSBuild脚本文件,并将其复制到目标工程所在路径。
第二步:用MSBuild执行上述脚本文件。
[MSBuild.EXE path] /p:PublishProject=[Target project];Configuration=Release;PublishDestination=[Publish destination dir] /t:PublishToFileSystem [MSBuild file]
例:
参考:
《Customize Data Display with Data Binding and WPF》
《DisplayMemberPath concatenation》
方法1:
DataTemplate 包含一个 StackPanel;
StackPanel 包含多个 TextBlock;
一个属性绑定到一个 TextBlock。
(我比较喜欢的)
XAML代码
<ItemsControl ItemsSource="{Binding Path=.}">
<ItemsControl.ItemTemplate&g ...
参考:《Changing the string format of the WPF DatePicker》
XAML代码:
<Style TargetType="DatePickerTextBox">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<TextBox Text="{Binding ...