这次试验的起因是一场内部辩论。

“用K2 smartforms开发一个应用程序究竟比ASP.NET快多少?”

我们推测是快4倍。

但是经过测试发现,我们推测错了。

本文记录了试验的规划、过程以及令人惊讶的结果。

真实的故事。

参与者

Renier 简介

Renier是K2 blackpearl的产品市场营销经理。很 久以前,Renier 还是一名软件开发人员,但是他 现在不再编写程序了。Renier 需要使用 K2 smartforms 来开发测试应用程序。

Eugene 简介

Eugene是一名K2技术专家。他是一名非常专业的开 发人员,擅长使用 Visual Studio 和 K2 blackpearl Eugene 的任务是尽快用 ASP.NET 开发出相同的应 用程序。

///////////////////////////////////////////////////////////////////////////////////////////////////

PK应用程序

我们决定开发费用报销应用程序,因为在某种程度上,所有类型和规模的机构对此都有共同需求。我们常常在 K2 blackpearl 上演示此解决方案,所以可以将现有的应用程序作为设计基础。Renier 和 Eugene 对应用程序的功能都非常熟悉,因此我们相信这是一次公平竞争。

///////////////////////////////////////////////////////////////////////////////////////////////////

PK要求

Renier 和 Eugene 需要对应用程序要求达成共识。为了区分表单及平衡其他变量,他们二人同意将开发仅限于表单开发。

试验中不包括表单背后的工作流,并且提前用 K2 SmartObjects 创建数据存储。SmartObjects 的使用类似于传统的业务对象,具有 CRUD(创建、读取、更新、删除)功能。每个人都可以使用相同的设置:员工、成本中心、部门、费用报销和费用报销项。

///////////////////////////////////////////////////////////////////////////////////////////////////

费用报销状态说明

SAVED(已保存):员工可以创建费用报销单,并且无需提交审批即可保存。这通常用于定期获取费用,以后批量提交。当报销单处于保存状态时,可以打开,对其进行编辑。

SUBMITTED(已提交):报销单已提交审批。员工无法更改这种状态下的报销单,但可以查看。

PROCESSED(已处理):此报销单已经审批并处理。这种状态下的报销单不能更改只能查看。

系统假定登录 Windows 的用户是员工,需要填写表单。要在此基础上开发以下表单。

///////////////////////////////////////////////////////////////////////////////////////////////////

管理费用报销表单

管理费用报销表单将作为应用程序的登录页。

 

 

版块 • 页眉是 K2 标识和应用程序名称 • 当前用户的员工数据及审批负责人列表 • 授权用户创建的所有报销项列表

操作 •打开并创建新的支出表单 •选择现有支出后,打开我的支出(My Expense)

创建新的费用报销表单

员工可以用这个表单收集单项报销费用。

版块

• 页眉是 K2 标识和应用程序名称 • 当前用户的员工数据及审批负责人列表 • 费用报销的详细信息,如日期、名称和汇总资料 • 支出项目,包括日期、说明、币种、汇率和附件

操作 • 提交费用报销单以备审批 • 保存费用报销单,稍后再填写 • 编辑费用报销单的详细信息 • 添加、编辑或删除支出项目

一级和二级审批表单

审批表单用于验证报销费用,作为工作流的一部分。

 

 

版块 • 页眉是 K2 标识和应用程序名称 • 当前用户的员工数据及审批负责人列表 • 费用报销的详细信息,如日期、名称和汇总资料 • 支出项目,包括日期、说明、币种、汇率和附件 • 审批人意见 • 历史意见

操作 • 批准或拒绝报销单 • 添加意见 • 查看支出项目

注:如果报销金额超过部门或审批人的审批额度,那么此报销项就需要2级审批。只要该表单能够显示所有之前的审批意见,那么就由 Renier 和 Eugene 决定他们是否需要使用一个或两个表单来完成多个审批人场景。

我的支出表单

员工可以使用这个表单查看已提交的费用。

版块 • 页眉是 K2 标识和应用程序名称 • 当前用户的员工数据及审批负责人列表 • 费用报销的详细信息,如日期、名称和汇总资料 • 支出项目,包括日期、说明、币种、汇率和附件 • 审批人意见 • 历史意见

操作 • 查看支出项目 • 关闭表单

///////////////////////////////////////////////////////////////////////////////////////////////////

准备工作

摄像头已安装在两个隔间外,机器已配置好必需的

软件,冰箱里放满了苏打水,Camtasia 已经准备好

录下两人的活动。

///////////////////////////////////////////////////////////////////////////////////////////////////

开始运行

Renier: 已经开始构建表单视图。K2 smartforms 为他完成所有的低级命令;零代码;零耗时;

Eugene: 在用 ADO 连接K2 SmartObjects 的时候,他已经慢在起跑线上了;

 18分钟时...  

Renier: 正在配置一个新费用申请表单

Eugene :仍然在开发费用报销表单

 42分钟时...

Renier: 开始创建一个新的费用报销表单

Eugene :仍然在编写费用报销表单

 88分钟时...  

Renier: 已开始测试费用报销表单

Eugene :仍然在开发表单,已落后 Renier 67 分钟

 117分钟时...

Renier: 已完成整个应用程序开始享受余下时光

Eugene :仍然在编写代码

4小时... 9小时... 第二天...
Eugene在编写代码 Eugene在编写代码 Eugene在编写代码

///////////////////////////////////////////////////////////////////////////////////////////////////

结论

“用K2 smartforms开发一个应用程序

究竟比ASP.NET快多少?”

 17小时,15分钟,52秒 …

Eugene 终于快完成了。他很疲惫。我们的观点被证实了。我们应该欢呼。

我们推测是快4倍。

但是经过测试发现,我们推测错了。

不是快4倍,而是8倍。

(至少)

  1:57:52  
                                        VS                                             
  17:15:52  

“我对 K2 smartforms 有了新的认识。让任何一位ASP.NET 开发者进行此项试验,他们都会得出完全相同的结论 - 这件产品简直太棒了!”- Eugene

用K2 smartforms开发一个应用程序究竟比ASP.NET快多少?的更多相关文章

  1. ubuntu下使用C语言开发一个cgi程序

    主要步骤是: 1. 开发一个C程序(在标准输出中输出HTML字符串) 2. 复制到apache2的cgi-bin目录去 3. 在httpd.conf中开启cgi功能(我似乎没用到,也可以使用cgi) ...

  2. K8S集群入门:运行一个应用程序究竟需要多少集群?

    如果你使用Kubernetes作为应用程序的操作平台,那么你应该会遇到一些有关使用集群的方式的基本问题: 你应该有多少集群? 它们应该多大? 它们应该包含什么? 本文将深入讨论这些问题,并分析你所拥有 ...

  3. 探索 Python、机器学习和 NLTK 库 开发一个应用程序,使用 Python、NLTK 和机器学习对 RSS 提要进行分类

    挑战:使用机器学习对 RSS 提要进行分类 最近,我接到一项任务,要求为客户创建一个 RSS 提要分类子系统.目标是读取几十个甚至几百个 RSS 提要,将它们的许多文章自动分类到几十个预定义的主题领域 ...

  4. yii开发一个web程序的基本流程

    1. 创建目录结构.在前面的章节Creating First Yii Application写的yiic工具可以帮助我们快速完成这步. 2. 配置 application.就是修改applicatio ...

  5. 开发一个App的成本是多少?

    英文出处:savvyapps.欢迎加入翻译小组. 在最近的一个会议上,一个叫Bob的老顾客引用了<App Savvy>(<放飞App:移动产品经理实战指南>)中探讨研发一个io ...

  6. 【Qt开发】【Linux开发】Qt程序在嵌入式设备(arm) 上运行,鼠标擦除界面的解决方案

    笔者最近想在arm开发板上,开发一个应用程序,经过网上查询发现qt作为跨平台开发软件很不错,于是便选择了qt开发,笔者的qt版本是4.8.6的.由于arm的主频太低,在arm上进行开发编译,效率会大大 ...

  7. 搭建java开发环境、使用eclipse编写第一个java程序

    搭建java开发环境.使用eclipse编写第一个java程序 一.Java 开发环境的搭建 1.首先安装java SDK(简称JDK). 点击可执行文件 jdk-6u24-windows-i586. ...

  8. [Ruby on Rails系列]3、初试Rails:使用Rails开发第一个Web程序

    本系列前两部分已经介绍了如何配置Ruby on Rails开发环境,现在终于进入正题啦! Part1.开发前的准备 本次的主要任务是开发第一个Rails程序.需要特别指出的是,本次我选用了一个(Paa ...

  9. Android(java)学习笔记219:开发一个多界面的应用程序之两种意图

    1.两种意图: (1)显式意图: 在代码里面用intent设置要开启Activity的字节码.class文件: (2)隐式意图: Android(java)学习笔记218:开发一个多界面的应用程序之人 ...

随机推荐

  1. Bootstrap文本对齐风格

    在排版中离不开文本的对齐方式.在CSS中常常使用text-align来实现文本的对齐风格的设置.其中主要有四种风格: ☑  左对齐,取值left ☑  居中对齐,取值center ☑  右对齐,取值r ...

  2. 简单ssh框架整合

    Struts2+Spring4 +Hibernate4 首先看看建立项目的框架 第一步  建立web项目 第二步  导入相对应需要的jar包(放在项目WEB-INFO/lib下) 需要导入Spring ...

  3. 理解 Linux shell 中的一个方言:2>&1

    理解 Linux shell 中的一个方言:2>&1  2016-11-14 杜亦舒 前言 在使用 linux 命令或者 shell 编程时,这个用法常会遇到 2>&1 如 ...

  4. 测试分页查询出数据并分文件导出[java工程]

    package cn.shiyanjun.test; import java.util.ArrayList; import java.util.List; public class ExcelTest ...

  5. ltib学习抄录

    linux -- LTIB学习笔记 一 安装篇二 运行篇三 修改工具包 四 编译新的内核 ---------相关资料------------------------------------------ ...

  6. Hbase之使用回调函数进行批处理操作

    import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; impo ...

  7. python操作mongodb之四cp数据库

    from pymongo import MongoClient #连接数据库 client=MongoClient('192.168.30.252',27017) #获取现有数据库的名称 client ...

  8. Sql Server中通配符的使用

    Sql Server中通配符的使用 通配符_ "_"号表示任意单个字符,该符号只能匹配一个字符."_"可以放在查询条件的任意位置,且只能代表一个字符.一个汉字只 ...

  9. php 使用 restler 框架构建 restfull api

    php 使用 restler 框架构建 restfull api restler 轻量级,小巧,构建restfull api非常方便! 官网:http://restler3.luracast.com/ ...

  10. 如何使用JavaScript和正则表达式进行数据验证

    利用客户端JavaScript的优势,JavaScript中的正则表达式可以简化数据验证的工作,下面与大家分享下如何使用JavaScript和正则表达式进行数据验证,感兴趣的朋友可以参考下哈 数据验证 ...