当前位置:首页 » 操作系统 » workflow源码

workflow源码

发布时间: 2022-07-10 23:27:40

‘壹’ 如何:编译工作流

然后,可使用工作流编译器编译该工作流文件,或者不对它进行编译,而通过主机应用程序将它传递到工作流运行时引擎中。 这称为“无代码工作流创作”。 有关更多信息,请参见 使用工作流标记 。 所创建的文件使用的文件扩展名为 .xoml。 标记文件可用于声明工作流,但之后会使用包含实现逻辑的代码文件对它进行编译。 这称为“代码分离工作流创作”。 在这种情况下,所创建的文件使用的文件扩展名为 .xoml 和 .xoml.cs 或 .xoml.vb。 在代码文件中使用 Windows Workflow Foundation 对象模型。 这称为“仅限代码工作流创作”。 在这种情况下,所创建的文件使用标准的 C# 或 Visual Basic 源代码文件扩展名。 此外,也会对这些文件进行编译。

‘贰’ 请高手介绍一下Workflow Software

工作流(Workflow)就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。一个工作流包括一组任务(或活动)及它们的相互顺序关系,还包括流程及任务(或活动)的启动和终止条件,以及对每个任务(或活动)的描述。
工作流在大多数的实际应用中的情况可以这样来简单地描述:在网络、服务器和多台计算机客户端的硬件平台上,业务过程按照预先设定的规则并借助应用程序和人对相关数据的处理而完成。例如,在日常办公中,当撰写好某份报告之后,可能需要将其提交给领导进行审阅或批示;审批意见可能需要汇集并提交给另外一个人,以便对报告进行进一步的修改。这样,可能会形成同一篇文档在多个人之间的顺序或同时传递。对于这样的情况,我们可以使用工作流技术来控制和管理文档在各个计算机之间自动传递,而非手工传递。这就可以称之为工作流。
类似的关于文档的自动化处理只是工作流技术的一种简单应用。事实上,工作流技术在现实生活中能够完成更多更复杂的任务。如企业(或机构)内部的各种数据或信息的自动处理,多种业务流程的整合,企业(或机构)之间的数据交换,借助Internet技术实现跨地域的数据传输和处理等等。
某产品销售的工作流示意图:

一、工作流发展
工作流技术起源于二十世纪七十年代中期办公自动化领域的研究,由于当时计算机尚未普及,网络技术水平还很低以及理论基础匮乏,这项新技术并未取得成功。1983年至1985年间,在图像处理领域和电子邮件领域出现了早期的含有工作流特征的商用系统。
进入九十年代以后,随着个人计算机、网络技术的普及和推广,以及信息化建设的日益完善,使得工作流技术的研究与开发进入了一个新的热潮。1993年8月,第一个工作流技术标准化的工业组织——工作流管理联盟(Workflow Management Coalition,简称WFMC,下同)成立。1994年,工作流管理联盟发布了用于工作流管理系统之间互操作的工作流参考模型,并相继制定了一系列工业标准。与此同时,关于工作流技术的学术研究也十分活跃,许多原型系统在实验室里开发出来。进入二十一世纪以来,工作流技术已被越来越多的人认可,与之相关的标准规范、工作流引擎及商业产品不胜枚举。人们在开发推广工作流产品的同时,更加注重工作流的理论研究,以推动该项技术走向成熟。
二、工作流的特点
1,图形化、可视化设计流程图
2,支持各种复杂流程
3,组织结构级处理者指定功能
4,B/S结构,纯浏览器应用
5,强大的安全性特色
6,表单功能强大,扩展便捷
7,灵活的外出、超时管理策略
8,处理过程可跟踪、管理
9,丰富的统计、查询、报表功能
10,与MAIL系统集成
三、工作流的优点
企业实施工作流管理所带来的好处是非常明显的,这包括提高企业运营效率、改善企业资源利用、提高企业运作的灵活性和适应性、提高工作效率、集中精力处理核心业务、跟踪业务处理过程、量化考核业务处理的效率、减少浪费、增加利润、充分发挥现有计算机网络资源的作用。实施工作流将达到缩短企业运营周期、改善企业内(外)部流程、优化并合理利用资源、减少人为差错和延误,提高劳动生产率等目的。

总结实施工作流带来的好处,可以归纳为以下几点:
1,要处理的事项已自动传递到个人电脑上
2,不再需要对员工进行流程的培训,平滑实现流程变更
3,员工只需将精力集中在处理自己关心的数据上
4,随时得到历史数据
5,随时生成处理效率报表
6,达到无纸化办公的目标
7,完全支持移动办公,使作业同步化
8,科学管理更进一层,办公效率明显提高
9,企业的核心竞争力将有提升
10,通过流程自动化与数据库集成,以及各类表单统计查询功能,提高决策能力
四、工作流WorkFlow技术构架

五、工作流是如何实现的
工作流的实施需要三个基本步骤:映射、建模和管理。映射是第一个步骤,其首要任务是确定并且文档化组织内全部现有的手工和自动化的业务流程;建模则是开发一个有助于建成流线型业务过程的模型。第三阶段是软件实施以及跨越全部工作部门、业务单元甚至是整个企业的无缝系统集成。
为了确保工作流系统能够“无缝地”实施到组织机构中,项目组都必须遵从已经定义好的、经过实践确认的行之有效的工作方法,并且在每个工作阶段都必须有可以度量的结果。一个深思熟虑的实施计划被有经验的团队执行,是成功地采用和实施工作流的决定因素。下图描述了一个推荐的、可供典型组织机构采纳的高层工作流(实施流程)。下面按图中步骤具体阐述。
建立项目管理办公室
项目管理办公室的组成是第一步,也是最重要的一步。项目管理办公室的成员须经过严格谨慎挑选,他们必须在恰当的程度上广泛代表组织内的业务、运营、IT以及审计等部门。产品供应方的产品专家、技术支持人员和管理人员也必须参与其中,以与用户互补。通常在PMO中还包含变更管理顾问,有助于形成组织中人员思路的多样化。每个成员的角色和责任必须定义清楚。PMO从整体上确立项目的实施范围、目标、实施时间框架以及优先级等等。PMO也负责管理和跟踪项目进度、设定检测项目是否成功的指标,以及定期向高层汇报项目状况等。
业务分析
项目组将分析用户现有的业务流程,找出哪些流程需要优化和改进以达到上佳效果,并分析每个流程的时间线和期望的结果。他们将与关键人员进行座谈,收集和鉴别正确的信息及数据,从而决定工作流系统如何满足需求。接下来的业务分析将辨别出哪些流程可以被优化、自动化、流线型化,哪些流程甚至需要重新设计。
确定目标
确定上佳目标是建立在业务流程详细分析的基础之上的。工作流项目的目标定义应该清晰并可以进行验证,好的目标意味着项目的成功。在实施过程的每一个阶段,项目组必须确认达到的结果是他们所期望的结果。例如,如果目标是缩短开发票周期两周,则必须分析现有的时间跟踪、记账和开发票等流程。
确定实施计划
目标确立后,由用户和软件供应商组成的项目组展示工作流解决方案具备的各种模块,根据用户提出的特定需求定义他们的功能和特性,并基于业务的优先级,共同决定每个模块的上线时间。
将业务流程在工作流系统中建立模型
在实施过程中建立业务模型是一个极重要的步骤。用户应当紧密地同软件产品应用专家进行合作,以在易用性和功能需求之间达到平衡。
用户可以在部署阶段前对模型进行测试,以确保该模型符合实际要求且没有过多的开销。需要指出的是,如果这个建模步骤没有完全正确地完成,将导致错误的报表或者多余的管理工作。
实现流程和软件集成
在这个阶段,项目组将确定现有的需要与工作流系统交互的流程与系统。如果处理不当,新旧流程的集成将导致失败。流程集成的一个重要方面就是在多系统之间消除或者最小化冗余数据,并在多个系统间复制这些数据。流程必须紧密集成,数据必须能跨越不同的流程和应用,顺畅流动。
项目组也必须确保工作流系统符合用户组织机构的安全标准,这一点经常在部署阶段前被忽视。
部署工作流系统
部署工作流系统包括两部分内容。第一部分自然是技术部分,涵盖了硬件和软件的安装、备份、恢复以及网络安装等等,这与一般的IT应用实施相似。
第二部分是指上线试运行。试运行小组应具有真正的代表性。项目组必须与试运行小组就项目的重要性进行沟通,并确保提供足够的培训,使得试运行小组能够对试运行工作得心应手。建议项目组建立清晰的沟通渠道,保证在试运行期间可以及时反馈用户的意见和建议。试运行将使项目组鉴别出原来设计和计划的弱点和缺点,并在大规模上线运行前加以解决。这也可以提高用户对于新流程的接受程度,因为用户感到他们也参与了项目的开发部分,解决方案不是强加给他们的。
一般认为,采用阶段性实施工作流系统可使用户更快地获得效益。因为用户可以更有效地渐进学习新系统,取得立竿见影的效益。阶段性实施还给予用户更多的时间了解、评估他们进一步的需求,使得项目实施期间的修改更加容易。另外,阶段性实施项目降低了风险。
系统评估
特别注意,在每一个阶段完成后,项目组都应该基于项目开始时设定的目标,对已经完成的结果进行评估,同时分析所达到的结果,并与最初的设计目标相对照。为了确保工作流解决方案在现有的业务环境中优化出更理??通,以了解什么需要更改。
系统支持
为确保实施成功,更佳地使用工作流软件,组织机构必须进行服务投资,组织机构应该委派专业人员提供第一线的服务,也应负责与供应商签订合同,以获得第二级支持。
六、工作流适用行业
消费品行业,制造业,电信服务业,银证险等金融服务业,物流服务业,物业服务业,物业管理,大中型进出口贸易公司,政府事业机构,研究院所及教育服务业等,特别是大的跨国企业和集团公司。
七、工作流具体应用
关键业务流程: 订单、报价处理、采购处理、合同审核、客户电话处理、供应链管理等
行政管理类:出差申请、加班申请、请假申请、用车申请、各种办公用品申请、购买申请、日报周报等凡是原来手工流转处理的行政表单。
人事管理类: 员工培训安排、绩效考评、职位变动处理、员工档案信息管理等。
财务相关类: 付款请求、应收款处理、日常报销处理、出差报销、预算和计划申请等。
客户服务类: 客户信息管理、客户投诉、请求处理、售后服务管理等管理等。
特殊服务类: ISO系列对应流程、质量管理对应流程、产品数据信息管理、贸易公司报关处理、物流公司货物跟踪处理等各种通过表单逐步手工流转完成的任务均可应用工作流软件自动规范地实施。
作为一个成熟稳定的工作流产品,不仅提供日常办公和关键业务流程智能化管理,而且能根据公司的特殊实际要求轻松方便地随时定制各种流程,并可实现不同角色不同的跟踪、查询、统计、打印等强大功能
结论
许多组织机构都有雄心勃勃的计划,为了能够夺回失去的时间和获得竞争优势,希望能够以大的步伐,更深(企业级或多级)、更广(多应用)和更快(短时间)地进入数字工作流时代。我经常发现他们因为许多原因而惨遭失败。根据我个人经验,明智的做法是从小的范围开始做起,并随着工作流的成长而逐步做大。阶段性实施提供了转换到新的流程的平稳方法。由于用户看到了效益,使得用户更易于接纳新的工作流程。阶段性实施的另一个原因,是用户不能够承受一下子丢弃原有的全部流程,从零开始。组织机构应该在当前业务过程中最没有效率的地方,集中寻找他们的“痛处”,然后利用“案例驱动”原则影响他们。
组织机构也必须认识到,当计划实施一个新的工作流程时,行政力量和企业文化必须要考虑进去。
成功与否的最后一个关键要素就是“人”。当我们改变业务流程时,技术是一个方面,但更大的挑战来自员工。的确,数字工作流系统要分阶段进行,使人们“渐进式”地取得经验,而不是“革命式”地得到经验。

工作流:workflow
今天讲的是工作流系统
什么是工作流系统: 工作流(Workflow)就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
简单地说,工作流系统就是一系列相互衔接、自动进行的业务活动或任务。//一个工作流包括一组任务(或活动)及它们的相互顺序关系,还包括流程及任务(或活动)的启动和终止条件,以及对每个任务(或活动)的描述
例如,在日常办公中,当撰写好某份报告之后,可能需要将其提交给领导进行审阅或批示;审批意见可能需要汇集并提交给另外一个人,以便对报告进行进一步的修改。这样,可能会形成同一篇文档在多个人之间的顺序或同时传递。对于这样的情况,我们可以使用工作流技术来控制和管理文档在各个计算机之间自动传递,而非手工传递。这就可以称之为工作流。
工作流技术架构(图片)
词语解释
Middleware 中间件
Runtime 运行时间
Prebuilt 之前建立
Flowchart 流程图,作业图
Subsystem 子系统
工作流(Workflow)的优点
企业实施工作流管理所带来的好处是非常明显的,这包括提高企业运营效率、改善企业资源利用、提高企业运作的灵活性和适应性、提高工作效率、集中精力处理核心业务、跟踪业务处理过程、量化考核业务处理的效率、减少浪费、增加利润、充分发挥现有计算机网络资源的作用。实施工作流将达到缩短企业运营周期、改善企业内(外)部流程、优化并合理利用资源、减少人为差错和延误,提高劳动生产率等目的。

总结实施工作流带来的好处,可以归纳为以下几点:
1,要处理的事项已自动传递到个人电脑上
2,不再需要对员工进行流程的培训,平滑实现流程变更
3,员工只需将精力集中在处理自己关心的数据上
4,随时得到历史数据
5,随时生成处理效率报表
6,达到无纸化办公的目标
7,完全支持移动办公,使作业同步化
8,科学bsp; 9,企业的核心竞争力将有提升
10,通过流程自动化与数据库集成,以及各类表单统计查询功能,提高决策能力
组织的本质:1 是参与者与技术的聚集
2. 由总体的目标约束
组织的种类:1 理性的(整个集体是追求相当明确的目标和显示出相当高的固定社会结构,如商业) 2 natural(整个集体有同样的兴趣,并且乐于集体活动,如慈善机构)
3. 开放式的组织
数据流中的组织运用:理性的组织是用于计算机化中最成功的 数据流也同时对自然的和开放式的组织进行计算机化
数据流系统的一个联系:1 消息系统 2 工作项目 3 业务规则 4 流程图
消息系统:两类:1 数据流能识别的格式,2 不能识别格式
工作项目 一个工作项目具体说明一个需要被工作者执行的任务
数据流系统的任务是和工作项目相协调
业务规则: 一个典型的数据流有许多业务逻辑块所组成
在其生命周期内,业务规则在任何时候受限于数据流
业务规则在模型化组织时扮演很重要的角色
业务规则的起因:---
流程图:在数据流中一个主要模型结构是流程图
Synchronize ; 相协调; 暂停 解决数据流的例子记忆功能
运行时(runtime)运行语言:--
主机运行一般在组织的服务器,也可在客户端

数据流的中间件框架{中间件”简单解释:为了解决应用程序对网络过分依赖的问题采取了一种有效的方法,在客户机和服务器之间加一层软件。}
执行这些工作:1 初始化和终止
2.执行:即执行在模型中明确规定的行为
3 长期数据流运行的管理
4 管理长期和短期的交易

演讲稿
在英语中working with the flow 是随波逐流的意思,但在这里表示工作流.

工作流的实质:在一个机构内,通过用电子文档来替换纸张文档系统,从而实现文档处理过程的自动化。我们可以将整个业务过程看作是一条河,其中流过的就是工作流。
数据流应用的产生的发展是以下两个因素的结果:

在这里 有两个关键字 在计算机环境下 以及自动化(办转学手续的例子)

数据流如邮件,电子邮件,活动和信息。
数据流的传递 是在一定的逻辑和规则下进行的。

无缝集成系统 就是 实现了平台管理的不同系统间信息交换和数据共享,

那么工作流系统是如何开始被人们所应用的呢?

下面介绍一下工作流中的专业术语

工作项目 一个工作项目具体说明一个需要被工作者执行的任务。打个比方说,就像我们编程时,给出提示信息,让操作者输入所需信息。

业务规则: 一个典型的数据流有许多业务逻辑块所组成
在其生命周期内,业务规则在任何时候受限于数据流
业务规则在模型化组织时扮演很重要的角色

定义和运行一个数据模型:是一个很复杂的工作,要有重要的体系结构,设计,和发展工作,并且工作永远都不会结束,因为模型必须一直调整来反映变化的存在的组织环境。

结论:工作流的核心部分是组织工作的模型,这个模型被用于编译许多部分用来运行一个组织。

接着是已经被广泛应用的一些工作流软件
MRP-III
是由MRP-II与JIT(Just In Time,准时制生产)的混合加上专家系统(ES)、并行工程(CE)和承担该系统运行的管理人员融为一体而成。
ERP
ERP的基本思想是将制造企业的制造流程看作是一个紧密连接的供应链,其中包括供应商、制造工厂、分销网络和客户;将企业内部划分成几个相互协同作业的支持集团,如财务、市场、销售、质量、工程等,还包括竞争对手的监视管理。
与以往已经被采用的企业IT应用体系,例如MRPII或ERP相比,WFMS是一个相当重要的里程碑。从用户的角度,WFMS带来(或将要带来)的变化是极其强烈的,甚至可以形容为一种用户“梦想”的实现。
在一些老的“模块化”的产品中,系统的设计是通常是基于任务分割的,作业项目之间是分裂的。面向对象的技术,并不能直接解决这个的问题,相反,往往使系统变得更加混乱和琐碎。从操作上,典型地,我们必须不断地在层次结构的功能表(比如下拉菜单)或对象之间“进进退退”,或者在“神出鬼没”的对象以及相关菜单中捉迷藏。
工作流管理系统是一个真正的“人-机”系统,用户是系统中的基本角色,是直接的任务分派对象,他或她可以直接看到电脑针对自己列出的“任务清单”,跟踪每一项任务的状态,或继续一项任务,而不必从一个模块退出,进入另一个模块,搜索相应任务的线索。前者是面向功能或对象的,而后者是直接面向用户的。这样,用户的任务分派和任务的完成状态,可以被最大程度地电脑化和受到控制。
现在的典型工作流产品是客户-服务软件。而日益增长的重要途径是通过万维网界面,它可以令客户或远程的职员更好地参与。工作流的定义经常是借助于图形化工具,依照业务过程实例的情况定义相应工作的安排。

1. 已经能够持续自动产生大量的细节数据。这类数据最早出现于传统的银行和股票交易领域,现在则也出现在地质测量、气象、天文观测等方面。尤其是互联网(网络流量监控,点击流)和无线通信网(通话记录)的出现,产生了大量的数据流类型的数据。我们注意到这类数据大都与地理信息有一定关联,这主要是因为地理信息的维度较大,容易产生这类大量的细节数据。
2. 需要以近实时的方式对更新流进行复杂分析。对以上领域的数据进行复杂分析(如趋势分析,预测)以前往往是(在数据仓库中)脱机进行的,然而一些新的应用(尤其是在网络安全和国家安全领域)对时间都非常敏感,如检测互联网上的极端事件、欺诈、入侵、异常,复杂人群监控,趋势监控(track trend),探查性分析(exploratory analyses),和谐度分析(harmonic analysis)等,都需要进行联机的分析。
OSWorkflow是一个灵活的工作流引擎,设计成可嵌入到企业应用程序中。它提供了许多的持久化API支持包括:EJB,Hibernate,JDBC和其它。OSWorkflow还可以与Spring集成。

jBpm是一个灵活可扩展的工作流管理系统。作为 jBpm运行时server输入的业务流程使用简单强大的语言表达并打包在流程档案中。jBmp将工作流应用开发的便利性和杰出的企业应用集成(EAI)能力结合了起来。jBmp包括一个Web应用程序和一个日程安排程序。jBmp是一组J2SE组件,可以作为J2EE应用集群部署。

OpenWFE是一个开放源码java工作流引擎。它是一个完整的业务处理管理套件:一个引擎,一个工作列表,一个Web界面和一个反应器(存放自动代理)。它可以可以跟你的程序很好的给合。

Werkflow是一个灵活可扩展的基于流程和状态的工作流引擎。它的目标是满足可以想象的所有工作流程,从企业级的业务流程到小范围的用户交互流程。通过使用可插拔和分层结构,可以方便地容纳各种工作流语义。

OFBiz是一个非常着名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。 OFBiz最主要的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具。包括实体引擎, 服务引擎, 消息引擎, 工作流引擎, 规则引擎等。

‘叁’ OA办公系统源码使用方法

与派Exchange-MAIL-OA-实时通讯-视频会议技术支持网 http://www.yupai.net 基于Windows Server、Active Directory、Exchange Server、Sharepoint、Live Communications、Live Meeting技术,致力于办公自动化系统OA、实时通讯RTC、视频会议MEET、工作流WORKFLOW、企业邮局MAIL等开发,交流技术、分享源码、下载工具、人才招聘自荐的供求园地

技术交流
//////////////////////////////////
Exchange维护
Exchange、Active Directory、ISA、Conferencing、Instant Messaging、Live Communication系列的管理和维护、Outlook、msn、Windows、Office等的使用

Exchange开发
基于Exchange系统,ADSI、.Net工具的OA办公系统的开发研讨

Exchange下载
可在这里寻求下载OA系统建设相关资源(工具软件、程序源码、技术书籍等),也可在这里伟大的共享、平等的交换、有偿的出售。可以双方直接交易,也可委托本站做双方验证人,以回避可能的交易风险

Exchange手册
归纳Exchange、Outlook、AD、IM等维护使用中常见问题的解决方法,使用心得、维护诀窍等。

源码产品
/////////////////////////////////////
与派办公网(在线试用:http://www.yupai.net/bbs/useroa/logonoa.asp)
基于Exchange Server、Active Directory,采用.Net开发的OA系统、提供包括“邮件”、“日历会议”、“通讯簿”、“便签”等个人办公工具;公告通知、部门的日程安排及公用通讯录、公司及部门主管可以随时监控下属员工的工作状况,包括个人日历与个人联系人等;公文摸板及流程自定义,支持串签、会签、多人决策等,具有过程跟踪、公文查询等功能;部门文档中心支持管理权限分配,支持全文、关键字等检索方式...

与派视频会议(在线试用:http://www.yupai.net/bbs/usermeeting/logonmeeting.asp)
从世界各地参加现场讨论、发送多媒体报告、允许您与其他与会者聊天、使用白板以及共享文件或应用程序协作。如果计算机带有摄像头和话筒,则可以使用视频会议提供程序观看或与其他与会者交谈...

与派邮局(在线试用:http://www.yupai.net/bbs/usermail/logonmail.asp)
基于Exchange Server、Active Directory,采用.Net开发的邮件(Mail)收发+邮箱管理系统,与exchange高度集成,界面友好,收发自如,公司通讯录列举、检索,个人通讯录管理,密码修改、签名、自动转发;管理组织、用户信息、及用户邮箱存储限制...

与派实时通讯(在线试用:http://www.yupai.net/bbs/userim/logonim.asp)
基于Exchange IM\Office Live Communications技术开发的即时通讯系统,可以配置用户的即时通讯功能,可以自动获取全公司、部门可进行即时通讯的联系人列表...

OA市场
/////////////////////////////////
OA动态
业界在OA技术、应用等方面的新闻动态

OA应用
针对办公自动化系统、团队协作消息系统在各行业的典型应用,交流应用感受、指出缺陷、指出期望的功能。

OA人才
OA企业可以在此招聘所需人才;OA人才也可在此毛遂自荐,寻求伯乐。

去看看 http://www.yupai.net
参考资料:与派Exchange-MAIL-OA-实时通讯-视频会议技术交流工具下载源码提供www.yupai.net

‘肆’ C#的侧边栏技术。答好了加分。

http://joerong666.javaeye.com/category/26990?show_full=true
自己上去来,我晕了,都是程序。
一、AOP框架
Encase 是C#编写开发的为.NET平台提供的AOP框架。Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式。这种部署方面(aspects)的方法帮助缺少经验的开发人员提高开发效率,NKalore是一款编程语言,它扩展了C#允许在.net平台使用AOP。NKalore的语法简单、直观,它的编译器是基于Mono C#编译器(MCS)。NKalore目前只能在命令行或#Develop内部使用。NKalore兼容公共语言规范CLS(Common Language Specification),它可以在任何.NET开发环境中使用,包括微软的Visual Studio .NET。PostSharp读取.NET字节模块,转换成对象模型。让插件分析和转换这个模型并写回到MSIL。PostSharp使开发程序分析应用程序容易得像分析代码规则和设计模式,它使程序开发的思想变革为面向方面软件开发(AOSD/AOD)思想。AspectDNG的目标是为.NET开发人员提供简单而功能强大的AOP-GAOP实现。它效仿java下的开源工具AspectJ 和 Spoon,成熟程度也很接近它们。
RAIL(Runtime Assembly Instrumentation Library) 开源项目可以在C#程序集加载和运行前进行处理控制调整和重新构建。C#在CLR中,我们已经能够动态加载程序集并且获得程序集中的类和方法,RAIL(Runtime Assembly Instrumentation Library)的出现填补了CLR处理过程中的一些空白。SetPoint是一款.NET框架下的全功能(full-featured)AOP引擎.它着重为称为语义切点(semantic pointcuts)的定义依赖RDF/OWL的使用.它的功能为一个IL-level,highly dynamic weaver&LENDL,一个引人注目的定义语言、、、、、、
DotNetAOP为 CLR language提供AOP 框架基础属性。NAop是一个DotNet下的AOP框架。AspectSharp是DotNet下的免费AOP框架,它以Dynamic Proxies和XML作为配置文件。
二、Ajax框架
Ajax.NET Professional (AjaxPro)是最先把AJAX技术在微软.NET环境下的实现的AJAX框架之一。它在客户端脚本之上创建代理类来调用服务器端的方法。MagicAjax.NET是一款在ASP.NET下创建Web页面提供AJAX技术的框架。它使开发人员很容易把AJAX整合到他们的页面而不需要替换ASP.NET控件或自己写javascript脚本代码。Anthem.NET是为ASP.NET开发环境提供的开源AJAX工具包,它可以运行于ASP.NET 1.1和2.0。
三、工作流(workflow)
Workflow.Net是使用微软.Net技术基于wmfc标准的创建工作流引擎。NetBPM是JBpm移植到.net平台下的一款开源工作流软件。NetBpm可以很容易和.Net应用程序集成在一起,可以创建,执行和管理工作流程序。Bpm Tool支持将业务模型转换成软件模型。业务开发人员可以使用模型驱动的方法设计,实现,执行和跟踪业务流程。因此开发人员能够更容易的关注业务逻辑的变化。
三、文本编辑
FCKeditor是一款功能强大的开源在线文本编辑器(DHTML editor),它使你在web上可以使用类似微软Word 的桌面文本编辑器的许多强大功能。它是轻量级且不必在客户端进行任何方式的安装。FreeTextBox 是一个基于 Internet Explorer 中 MSHTML 技术的 ASP.NET 开源服务器控件。这是一款优秀的自由软件(Free Software),我们可以轻松地将其嵌入到 Web Forms 中实现 HTML 内容的在线编辑,在新闻发布、博客写作、论坛社区等多种 Web 系统中都会有用途。VietPad是一个功能完整的跨平台的Java/.NET的Vietnamese Unicode开源文本编辑器。支持打开,编辑,打印,转换,排序,和保存基于文本的Unicode格式的Vietnamese文件。NetSpell是一款.NET框架下的开源拼写检查引擎。
PPC_edit是一款应用在Pocket PC上的开源文本编辑器,它支持TXT, RTF, HTML, WordML, DocBook 和 ZIP格式的文件,屏幕上会显示国际标准的软键盘。
四、博客(Blog)
NovaShare是一款Blog引擎,它使你创建基于交互式的web的新闻和论坛网站,很像WonkoSlice或Slashdot。管理员可以发布文章和发起投票,浏览者可以创建用户帐号,发表议论等等。dasBlog是从BlogX 网上日志引擎发展而来。像Trackback ,Pingback 一样增加许多附加的特征,有完整的Blogger/MovableType API支持,API注释,完整的Radio-style模板定制,支持Mail-To-Weblog/POP3的附件和内嵌图片,基于WEB的DHTML,OPML,配置的编辑器。DotText是一个被使用了数百个blogs的强劲的blog引擎。这是一个N-tiered应用的例子。tBlogger是一个C#开发的完整的blog网站程序,使用XML配置。
Ludico是C#编写的居于ASP.NET 2.0的Portal/CMS系统。它的模块化设计是你可以按照你希望的使用或开发网站功能。它里面有高级的用户管理,一个所见即所的(WYSIWYG)的编辑器等。mojoPortal是一款C#开发的面相对象网站框架,它可以运行于Windows的ASP.NET 和GNU/Linux 或Mac OS X的Mono的平台上。
Cuyahoga是C#开发的灵活的CMS / Portal 解决方案。它可以运行于Microsoft .NET 和Mono 平台,支持SQL Server, PostgreSQL或MySQL作为底层数据库。Umbraco是一款在.net平台下C#开发的开源内容管理系统,该系统效率,灵活,用户界面都不错。Kodai CMS是.NET平台下的一款功能齐全的内容管理系统。Rainbow项目是一款使用Microsoft''s ASP.NET和C#技术开发的有丰富功能的开源内容管理系统。NkCMS是使用ASP.net和Sql server 2000开发的内容管理系统。Amplefile是一款内容管理系统,是.Net环境下的windows应用程序,使用了.Net remoting.Go.Kryo是一个用ASP.NET(C#).NET 实现的简单的内容管理系统,后台数据库使用Microsoft SQL Server 。ndCMS是 ASP.net (C#)下的一个内容管理系统。它提供了用户管理,文件管理,一个WYSIWYG编辑器,模板管理,拼写检查和内置的http压缩。ndCMS的目标是提供一个简单而快速的方式部署.Net站点以节省你的时间和金钱。
八、代码覆盖(Code Coverage)
NCover是.NET框架下的C#版本代码覆盖分析工具。NCover可以对程序进行 line-by-line 的代码覆盖统计。
九、论坛系统
YetAnotherForum可以作为ASP.NET开发的网站的论坛或是留言板。它使用MSSQL作为底层数据库。
十、开发工具(IDE)
SharpDevelop是一个DotNet平台下的免费开发工具,支持C#和VB.NET。
MonoDevelop是可以支持C#和其它符合.Net规范的开发语言的IDE。C# Studio是 C#/Mono/GTK# 开发者的一个简单的IDE。
十一、安装制作
izfree是一套套免费的工具用于帮助创建使用Microsoft''''s Windows Installer 技术的安装程序。使用izfree你可以为你的应用程序制作强劲的安装程序。Windows Installer XML (WiX)可以重XML源文件创建Windows程序安装包的工具集。它支持命令行方式,开发人员可以把结合它来创建MSI和MSM安装包一个可以和商业软件安装产品相比的开源打包工具。
十二、IoC容器
Spring.net是从java的Spring Framework移植过来的。java的Spring包含了许多功能和特性,在当前的Spring.net都有提供。Spring.net最初发布的版本包含了一个很有特色的IoC容器。Castle是一组应用开发的工具,内含一个简单的IoC容器。StructureMap是.NET环境下的一个轻量级依赖注入工具,StructureMap也是一个灵活的、可扩展的通用“插件”机制的.NE
十三、Bug追踪
BugNet是一款C#编写的基于Web的开源Bug跟踪系统。BTsys是一款轻量级的开源桌面Bug跟踪系统,是C#和ADO.NET实现。一个Bug记录和跟踪的解决方案,支持文件附件和注释历史。BugTracker.NET是使用ASP.NET 和 C#开发的基于web的开源Bug跟踪系统。需要SQL Server 或 MSDE支持。它安装简单,容易使用,功能强大。BugBye是一款ASP.NET和C#开发的基于web的Bug跟踪系统。
十四、日志工具
log4net是一个可以帮助程序员把日志信息输出到各种不同目标的.net类库。它可以容易的加载到开发项目中,实现程序调试和运行的时候的日志信息输出,提供了比.net自己提供的debug类和trace类的功能更多。log4net是从java下有卓越表现的log4j移植过来的。它是apache基金资助的项目的一部分。NLog是C#编写的开源日志类库,它的设计思想是使其简单而灵活。NLog让你处理诊断的日志消息,用相关信息扩充消息,依照你的选择格式化日志消息和把日志消息输出到一个或多个目的地。 LogThis是为.NET应用程序提供的一款C#开源日志框架,它可以嵌入到应用程序之中。AppLog是一个简单的应用日志工具。它使用C#开发,且使用ByteFX MySQL 数据访问库.。C#开发的可扩展日志工具,有高级消息队列支持,可以异步使用。CSharp Logger是apache继log4net项目后设计的又一个日志工具。它用来向Windows的事件日志写入debug、info、warn和error四个等级的信息。
十五、网络客户端
.NET FTP Client是C#编写的开源类库。
.NET Telnet是微软.NET Framework下的C#开发的开源telnet类库。它的灵感来至Java Telnet Application。metro这个项目是C#编写的类库,它提供了一套丰富的类使开发IP version 4, TCP, UDP and ICMP等工作更容易。它包含了有很有用的工具如包嗅探器,网络分析工具例如路由跟踪,ping等。
LJ.NET是LiveJournal站点的客户端。它为LJ在线日志服务提供了简单而强大的用户接口。NET VNC Viewer 是一款完全用C#开发的开源VNC观察器。它兼容Smartphones, Pocket PC和Windows的电脑(.NET CF or .NET Framework)。它比起其它观察器的优点是可以在Pocket PC上全屏显示而且可以旋转屏幕。
GVDownloader允许你从google videos, metacafe, putfile, youtube, break.com 和更多的地方快速下载内含的视频和多媒体。它的包含一个强劲IE插件和位于你系统托盘的独立程序。DotNetOpenMail能够使你在微软.net框架开发的asp.net, WinForm应用程序发送Email。它是C#编写的开源组件,它不需要使用System.Web.Mail类库就可以容易的创建带附件HTML和Plain-text的Email。程序员不需要知道很多相关的细节就可以使用不同的字符集或不同的MINE编码来创建multipart/alternative,multipart/related和multipart/mixed的MIME消息。DotMSN是一款独立的开源类库,它不需要和官方的MSN Messenger交互,因此不必安装MSN Messenger就可以使用DotMSN和MSN Messenger服务通信.DotMSN是C#编写的,所以.NET环境支持的语言都能够使用.DotMSN类库使用简单而且实现方便。它灵活,坚固,轻量级利于整合到任何应用系统.使用DotMSN的应用系统能实现从创建消息机器人到自定义客户端等各种不同的功能.如果你的应用程序需要和Messenger服务通信,DotMSN是一个不错的工具.SharpSSH使用C#实现了SSH2协议,它支持SSH, SCP 和 SFTP.OpenPOP.NET一组和POP Servers通信的.NET类库。
IceChat是为连接多样的IRC Servers设计的Internet Relay Chat Client。
lphant是为edonkey/emule开发的开源客户端程序。
.NET FTP Client C#开发的类库。OpenSmtp.net 是 C# 开发的开源SMTP组件。它不依赖.NET Framework 的System.Web.Mail 包中的类。允许开发人员使用不同于MS SMTP的SMTP 服务器且提供了web service而可以通过HTTP发送email。
网络服务器
ODC(#)H是一款C#编写的开源hub software,它功能强大,消耗的资源少且支持插件功能。Dawn of Light (DOL)是第一个开源的Dark Age of Camelot (DAOC)游戏服务器,你可以创建自己的服务器且自己设计游戏内容。DOL使用.Net Framework框架的C#编写,使用XML和MySQL存储数据,支持Windows和Mono平台。
NeatUpload可以让ASP.NET开发人员把磁盘上的文件通过流的方式上传并且可以监视上传进度。它是开源的且在 Mono''s XSP/mod_mono和微软的ASP.NET下运行得Advanced Data Provider是为ADO.NET提供的动态数据提供者。可以让应用程序透明的访问不同的ADO.NET 数据提供者。
OJB.NET是一款.NET平台下的对象/关系映射(O/R Mapping)工具。
门户系统
OmniPortal基于一种web-portal-kernel(Web门户核心)的思想而构建的开源基础框架,它解决了安全控制、主题和本地化等。你可以基于 OmniPortal 来更容易的创建任意的Web应用系统(例如 ERP, CMS, CRM)。它支持Mono 和.Net 。对于Web开发人员来说,OmniPortal为他们提供了一款优秀的二次开发基础类库。SharpNuke.NET是一款C#开发的基于 ASP.NET 的开源 Portal/CMS。最初是从流行的VB.NET开发的web portal系统DotNetNuke移植过来的的。以后的版本将会兼容 Windows和 Linux Mono。
Personal .NET Portal是一个基于Web的个人门户系统。它试图提供一种简单的方式建立个人网站,页面使用标签和模板创建。
My Community Portal提供了一个统一的Internet门户,作为论坛,群组,聊天,你自己的Email,搜索引擎,网络目录,个人主页,投票还有更多的功能入口。
剖析工具(Profilers)
Prof-It是一款独特易用的C#程序剖析工具。当保持对一个最小量的源代码的探测时,它为每一条语句测量执行频率。
NProf不仅仅是成熟的剖析程序,也是一套可以用来创建其它功能齐全的剖析程序的完整API,以及用可视化的工具扩展的默认GUI。
NProfiler,.NET平台下的一个应用程序剖析工具。
项目管理
SharpForge支持协作多个软件项目的开发和管理,它为你的团队提供类似 SourceForge 和 CodePlex的功能。SharpForge是C#开发的.NET 2.0开源项目。User Story.NET是一个Extreme Programming 项目。
RSS和RDF工具
Rss Bandit是C#开发的开源RSS阅读器,它内建多国语系,支持Atom 1.0以及其他各种的RSS feed格式。它画面漂亮,拥有分页浏览功能,软件细部设置弹性度高。它的操作画面直观简单易懂,有一个很好的Command模式和ListViewEx来使用,可让使用者很快的上手。iPodder.NET是一款C#编写的开源媒体收集器,它能自动帮你从互联网上下载音乐,能帮你轻松地从成千上万的音乐中选择你喜欢的。用它设置好订阅RSS feeds后,只要节目一有更新,它就自动下载了,你不必大量的浪费时间自己手工下载。它还整合了iTunes,创建播放列表和iPod同步功能,你可以用Apple iTunes或Media Player播放,也可以把音乐导入到你的iPod或其他MP3播放器中。FeedExpress主要是让你订阅一些RSS/RDF资源,知名的如FeedExpress里的Subscriptions。它和Outlook Express让你订阅一些新闻组是一样的。RSS.NET是一款操作RSS feeds的开源.NET类库。它为解析和编写RSS feeds提供了一个可重用的对象模型。它完全兼容RSS 0.90, 0.91, 0.92, 和 2.0.1等版本。GtkSharpRSS是C#开发的开源RSS和RDF客户端,它用于 Mono, Gtk#, 和 RSS.NET。它也可以通过内嵌于Mozilla的窗口来显示内容。
Atom.NET是一款完全使用C#开发的开源类库,它的目标是提供便捷的方法来操作Arom Feeds。它提供一个对象模型来写入和解析Atom Feeds。它只兼容0.3Atom规范,可以运行于微软.NET 1.x,Mono 0.29 或更高版本。
NRss是为微软.NET框架和Mono下提供的开源类库,它读取RSS Feeds元素然后以树型结构来展现对象关系。
Aggie是一个新闻收集器,它是桌面应用程序,可以下载最新的新闻并通过web页面的形式呈现。mail2rss是.NET下的 web service,它在你请求时检查你的电子信箱并返回包含电子信箱里的消息的 RSS feed。它是完全用C#开发的开源项目,没用使用任何第三方控件。
规则引擎
NxBRE是.NET平台下的一款开源轻量级的业务规则引擎(aka Rule Based Engine),它由正向串行的推理引擎(forward-chaining inference engine)和XML驱动流控制引擎(XML-driven flow control engine)组成.它支持 RuleML 0.9 Naf Datalog 和 Visio 2003 建模。
SRE (Simple Rule Engine)是.NET下的一款轻量级的开源正向串行的推理规则引擎(forward chaining inference rule engine)。它容易理解,可以解决复杂的问题。
搜索引擎
NLucene是Lucene的.NET版本。
DotLucene,Lucene.Net开源项目转向商业化后,DotLucene以Lucene.Net作为基础继续进行开发。
版本控制(CVS)
Porc是为CVS和项目管理工具提供了完整的图形化界面,它在CVS的基础上增加了一些有趣的功能。它是.NET平台下用C#编写的。
Sharpcvslib是C#语言编写的CVS客户端API。当前它为公共CVS命令提供了核心函数。NetCvsLib是为.NET平台下C#开发的一个CVS客户端。它作为一个单独的程序集而实现,因而可以很容易的集成到其它项目中去。
SQL客户端
qlBuddy是C#编写的一款用于Microsoft SQL Server和MSDE的开源工具,使用它可以很容易的编写SQL脚本。SqlBuddy提供的功能和查询分析器的目的有些微不同,它倾向于帮助使用者编写SQL。QueryCommander是一款开源的Sql editor,模拟微软的查询分析器,Visual Studio的环境类型。QueryCommander的特点包括类似IntelliSense功能,自动注释,xml文档模型,xml2data等。SQL Buddy是一款有特色的免费MSDE / Sql Server IDE,它是用.NET框架的C#编写。Database Commander是Windows操作系统下的一款用户界面友好的数据库管理工具。
模板引擎
NVelocity 是一个以 .NET 为基础的模板引擎。它允许任何人通过简单而强大的模板语言来定义对象。
测试工具
NUnit一款单元测试框架,它可以应用于遵循.NET框架标准的所有语言下。NUnit最初是从JUnit移植过来的。NUnit完全使用C#编写且设计时考虑了多数.NET语言的特性,例如自定义属性和其它反射特性。NMock是一款.NET平台下的基于动态代理的Mock模拟对象类库,用于C#开发。Mock对象使测试更简单,它测试单个组件或单个类时不需要其它所有组件真正实现。也就是说我们可以仅仅只是测试一个类,比起测试一个完整的对象关系树更容易查清楚Bug。Mock对象一般用于以测试为驱动的开发当中。TestDriven.NET是一款和Visual Studio .NET无缝结合的测试插件。它可以和NUnit, MbUnit 和 Team System紧密结合。Rhino.Mocks源于EasyMock.Net,它试图提供一种更简单的方法去创建和使用mock objects且使你得到更好的重构支持。它结合了EasyMock.Net和NMock的方式。Dot NetUnit实现了XUnit 测试框架,是.NET平台下的单元测试组件。EasyMock.NET是由Java实现的EasyMock到.net平台的一个移植版本的一组类库。它提供了一个简单的方法用来模拟接口和远程对象。dotunit是JUnit移植到微软.net平台的测试框架。它可以实现自动化测试。NUnitForms是NUnit的扩展。它为Windows Forms应用程序提供单元测试和压力测试,可以容易的用它为你的Windows Forms类进行自动化测试。
Web框架
NStruts 是java下大名鼎鼎的struts开源MVC框架的ASP.NET版本,是jakarta struts框架的一部分。Maverick.NET是从Maverick移植来的.NET版本,是一款开源的 Web MVC框架.它专注于MVC逻辑,它支持丰富的模板和转换技术。
MaverickLite是ASP.Net下的一款简单的开源表现层框架。它在建立在Maverick.Net framework基础上。它使用front controller的方式来处理请求。
Ingenious MVC ,基于.NET 2.0的构MVC结构的应用程序,它包含即开即用(out-of-the-box)的特性支持ASP.NET和Windows Forms应用程序.它也可以在大多数方法中扩展和定制.Websharp是.NET平台下的一款轻量级应用框架。
Email客户端
GmailerXP是为Google的Gmail服务提供了全套的工具开源程序。在线所能做的GmailerXP都允许用户做,它也整合了你任何时候在Gmail需要的其它一些程序的特点(GML, Gmailto,等)。
RemoteCalendars是C#开发的为Outlook 2003/2007提供的一款开源 COM-.NET 插件。安装完这款插件后,Outlook的用都可以用Outlook 2003/2007订阅、重新读取和删除远程iCalendar(RFC 2445)。
SharpWebMail是一款C#编写的ASP.NET下的EMail客户端。它通过POP3服务器接收邮件,通过SMTP服务器发送邮件。它的配置很简单(只需要在web.config 里面做几个设置)。
Web测试
NUnitAsp是一款自动测试 ASP.NET页面的开源工具. 它是从NUnit扩展来的。
Wiki引擎
Perspective是一款C#开源Wiki引擎,它使用户可以很容易的合作进行编辑,链接和共享Web页面,它里面有安全和分级的管理环境。Perspective居于奇妙的Wiki思想,包含了其它一些有前途且效果好的特性。
DevHawk Wiki是一款.NET平台下由C#实现的开源Wiki引擎。
ProntoWiki是使用VWD (Visual Web Developer)编写的C#开源wiki引擎,ASP.NET 2.0 和 SQLExpress 2005作为后台。Wiki引擎速度快且容易使用,提供了和 rich text editor 一样的文本标记( text markup )功能。它可以自动通过web接口接收图片和文件作为附件。另外,ProntoWiki的特点还有页面可以在贴出或更新之前预览,基于角色的用户认证,使用 web parts 自定义外观和布局,历史跟踪,和功能查询。FlexWiki是一款使用.NET技术(C#和ASP.NET)编写实现的开源多人协作的写作工具。Thufir提供了字处理和文档链接功能。它类似Wiki-Wiki ,且它具有“所见即所得”的界面。它还可以通过和Word交互来利用Word的拼写检查功能。
XML解析
NASA World Wind 是C#开发的个人电脑上的开源的3D图形虚拟地球系统。它结合了美国国家航空航天局(NASA)从卫星拍摄的图像,这些图像应用于Blue Marble, Landsat 7, SRTM, MODIS 以及其它更多的地方。
其它C#开源项目DockPanel Suite是一款开源的.Net Windows Forms开发环境下的停靠控件(docking)类库。它模仿Visual Studio .Net的效果开发的。wx.NET是基于.NET通用语言基础结构 (CLI)的开源项目。它致力于开发一个基于.NET的GUI库,它按照wxWidgets的类层次用C#编写,可以在多种CLI下执行,包括.NET,Mono,和DotGNU Portable.NET。MMC .NET类库是为Windows的MMC+Snapin开发提供支持而包装的一套开源类库。DPAToolkit(Design Pattern Automation Toolkit)是应用设计模式设计应用程序的开源工具包,它有便捷的代码生成,反向工程功能。拖拽(Drag and Drop)方式便捷的创建UML类图。支持为代码生成,反向工程编写自定义插件。mjbWorld 是一款开源的3D编辑器,它允许用户通过图形界面的选择和拖拽方式来编辑图形。它基于和应用X3D与VRML标准。该软件目的用于利用建立开放免费程序建立3D世界。同时它也可以用于其他免费开放软件程序之间进行数据交换。mjbWorld有Java, C# 和C++ /Qt等版本。MonoCalendar是.NET平台下的开源日历程序,它的目的是为Mac平台之外的其它平台提供一款类似iCal的日历程序。Data Tier Generator是一款微软 .NET平台下的开源项目,它为访问SQL Server 2000而生成存储过程的SQL Server 2000脚本和C#类。这些存储过程包含了Insert, Update, Delete, Select, 根据PK的Select, 根据FK的Select的SQL脚本。Finisar.SQLite是.NET框架下的一款为存取SQLite-Databases提供的ADO.NET Data Provider。Math.NET的目标是为提供一款自身包含清晰框架的符号运算和数学运算/科学运算,它是C#开发的开源类库。Math.NET含了一个支持线性代数的解析器,分析复杂微分,解方程等等功能。Ascii Generator dotNET (ascgen2)是一款把图片转换成高质量的ASCII字符组合(ASCII art - text)。第一个版本支持变形和粗体字体,和实时调节输出。GPSProxy是.NET Compact Framework下的开源程序。它通过COM口在Pocket PC之间拷贝GPS数据,可以把GPS数据格式从NMEA 0183转换成Garmin GPS。它是基于.NET Fra的Windows版本。FOP C# Port这是Apache居于java的 XSL-FO 格式转换器的C#版本。它采用并扩展了XSL-FO标准使FOPs在可以嵌入.NET CLR管理代码应用。14:18 浏览 (1263) 评论 (0) 分类: c# 2008-04-16缩略显示ASP.NET下载文件(弹出打开保存文件对话框)ASP.NET下载文件(弹出打开保存文件对话框) //fileURL为带路径的文件全名 System.IO.FileInfo fileInfo = new System.IO.FileInfo(fileURL); Response.Clear(); Response.AddHeader("content-disposition","attachment;filename="+Server.UrlEncode(fileInfo.Name.ToString())); Response.AddHeader("content-length",fileInfo.Length.ToString()); Response.ContentType = "application/octet-stream"; Response.ContentEncoding = System.Text.Encoding.Default; Response.WriteFile(fileURL); 无错版: try ...{ FullFileName = Server.MapPath(FileName); //FileName--要下载的文件名 FileInfo DownloadFile= new FileInfo(FullFileName); if(DownloadFile.Exists) ...{ Response.Clear(); Response.ClearHeaders(); Response.Buffer=false; Response.ContentType="application/octet-stream"; Response.AppendHeader("Content-Disposition","attachment;filename=" +HttpUtility.UrlEncode(DownloadFile.FullName,System.Text.Encoding.ASCII)); Response.AppendHeader("Content-Length",DownloadFile.Length.ToString()); Response.WriteFile(DownloadFile.FullName); Response.Flush(); Response.End(); } else ...{ //文件不存在 } } catch ...{ //文件不存在 }

‘伍’ 有哪些快速开发平台或者零代码开发平台

什么是零代码应用开发平台?

尽管市场上也把建站、网店开发、小程序开发等免代码服务也称为零代码开发,但因为这些平台面向的是特定的目的,服务一个专有的范式,所以一般不将他们划入零代码平台的范畴之内。真正的零代码开发平台面向的是广泛和多样的需求,在设计aPaaS产品的时候,并不确定一个特定的用户会用它来搭建什么应用。

当然,虽说面向的需求是广泛的,也不代表aPaaS是万能的。零代码开发几乎都是面向企业应用世界,而很难扩展到消费者应用领域,比如游戏、社交、工具软件等必然长期属于原生开发的世界。

所以,零代码应用开发平台需要一个比较准确的定义。它是指围绕企业数据和业务管理需求,通过可视化方式设计数据结构,用户交互形式、设置访问权限和定义工作流程的平台。你会发现,即使是原生开发企业软件,大体也是按照以上这几个步骤来进行的。

我用一个相对完整的列表,将零代码开发平台的能力元素和特性描述如下:

1)可视化构筑业务对象数据表(Entity),并支持建立关联。甚至需要支持跨应用的数据表关联。(这是aPaaS未来可能胜出其他方案的关键优势)。

2)为不同的数据场景配置不同类型的视图(View),能够定义数据行和列的过滤,能够设置列表、看板、日历等不同界面形式。

明道云构筑审批工作流的界面

9)应用能够封装后分发(Distribution)给不同的用户。

10)面向企业内部个人用户的工作台,仪表台等特性,实现个性化使用。

不同的aPaaS产品会有不同的特色和侧重点。所以以上特性并不一定存在于每一个aPaaS产品中。但是,特性越完整的,就越接近一个典型意义上的零代码企业应用开发平台。在以上实现中,有纯粹的零代码模式,也有个别需要用低代码方式来降低产品复杂度,但同时也会让非技术人员难以上手。

所以,aPaaS是SaaS应用和开发工具的混合,说它是SaaS,是因为开发者和终端用户使用的是同一个产品,只是通过权限和分发关系让界面千人千面。说它是开发工具,是因为它用模型模拟的应用搭建思路和原生数据库应用开发是类似的。

软件的应用特点和二次开发能力共存也不是一个新鲜事物。用Excel软件构筑一个个人所得税计算器,让用户可以输入自己的工资,即可得到应缴税额,对于使用者来说是应用,对编制这个Excel文件的人来说是开发工具,但他们用的都是Excel。

为什么企业软件领域可以实现零代码开发?

为什么游戏和社交软件做不到零代码开发,而企业软件市场却出现了零代码工具?是因为企业软件的开发比较简单吗?

当然不是。能够模式化完成一个工作的原因在于这项工作具备可重复性,就像我们会用3D打印制作一两件零件,但如果要生产成千上万个同样的零件,我们宁可花费成本先去制作模具。企业软件可以模式化开发的原因就在于大多数企业管理软件都由非常类似的需求和实现方式来构成,如果不积极利用这些相似性和模型化方法就需要不断重复发明类似的轮子。

当然也并非所有的企业应用都有相似性。在特定行业和职能中总有一些需要专门化设计和开发的应用。但在企业的运营全流程中,围绕客户,供应商,销售订单,产品,供应商,采购订单,制造流程,服务流程等商业对象,企业软件要解决的问题具有很强的相似性。这些相似性,或者使用范式可以被概括为以下环节:

1)围绕上述商业对象(Business Objects)的数据搜集和存储,并对数据的有效性进行验证。例如:建立一个采购订单,向特定供应商采购三项商品。

2)数据的查询和呈现。例如:运营部门查询处A仓库在今天应该到货的采购订单。财务部门查询货物已经收讫,并且应该在本周付款的采购订单。

3)数据的计算。例如:当采购订单的货物到达特定仓库后,更新相关商品的库存信息。

4)流程的控制。例如:当起草采购订单并准备发出时,根据采购的类别和金额发起不同的审核流程,在审核通过或者拒绝后执行不同的流程内容。

5)信息通知。例如:在采购订单批准后,自动生成采购单并发送给供应商,并通知仓库准备收货。

6)数据的统计和分析。例如:汇总过去一年的采购订单中按照BOM清单的产品金额分布,或者按照供应商的分布。

企业软件的设计和开发人员对以上这些使用范式都非常熟悉,它们经常出现在各种企业软件的开发需求中。实际上,除了以上抽象出的范式,企业软件的其他独特功能点并不太多了,甚至很多属于所有企业级软件共有的模块,比如管理用户和用户组,权限角色等。正是因为这个原因,企业软件的开发存在高度模型化的可能,从而在大部分场景下,摆脱对原生代码开发的依赖。

在云时代之前,除了Access以外,苹果公司也有FileMaker,Intuit公司也曾经开发过Quickbase(这个名字来源于Intuit公司财务软件产品Quicken),Quickbase后来被剥离,一直到今天都在提供服务。即使在原生开发领域内,企业软件市场也出现了各种现成的开发框架,它们和今天的零代码平台一样,都是为了通过模型化来提高交付效率和质量的办法。

为每个企业的软件需求,都从第一行代码开始写起,单独依靠某种高级语言和集成开发环境建立开发项目,这种做法已经越来越没有必要。正如Gartner的预测,大部分的企业应用将来都会依赖零代码平台,以至于不远的将来,零代码平台并不会刻意保留这个前缀,因为这将成为天经地义的事情,这就像今天为了满足一个通用需求,大多数企业不会去定制开发,甚至零代码平台都不会用,而是直接使用一个标准的SaaS产品。

为什么aPaaS具有难以替代的优势?

用户开始选择aPaaS产品,不仅仅是因为他们可以这样做,更重要的是因为不得不这样做。因为aPaaS与定制开发,以及标准SaaS产品相比有几个难以替代的优势。

1)满足企业的多样化需求

企业软件需求的多样化是定制开发模式的起源。虽然标准SaaS产品能够满足企业应用需求中的共性部分,但是因为行业、规模和产品内在特性的差异,每个企业的管理方式和流程都有自己的特点,而且它还会根据企业的规模阶段不断演变。这种差异在不同职能中程度不一,一般来说,围绕产品设计、制造和服务履行的核心业务流差异度更高,而人事,财务等价值创造的支持环节差异度比较小。

在这种背景下,用户始终在寻求一种既能保持足够的灵活性,又能够控制开发的成本和复杂度的方法。aPaaS基本就是直接针对这个问题而诞生的。

2)从定制开发中需求沟通的痛苦中解脱

企业软件实现过程中的第一痛点还不是贵,而是需求沟通的复杂。有业务需求的人不是开发软件的人,能够开发软件的人对业务痛点并没有切身的体会和经验。于是行业非常依赖专业的企业软件需求分析和实现方法设计能力,但这个能力是非常稀缺的资源。这也难怪企业软件开发需求的提出主体总是五花八门的,他们之间也需要进行复杂的沟通和信息汇总。

更要命的是,很多时候需求在实施之前都无法100%确定,企业自己无法提出一个完整的解决方案。这时候,要么需要求助于咨询机构这样的外脑,要么就只能走一步看一步。这两个方案听起来都不令人舒适。前者绝非普通中小企业所能够承受,后者可能会影响系统的开发和实施质量。

aPaaS的出现倒是让走一步看一步的方案变得更加现实。企业可以通过零代码平台渐进地开始实施。如果整个系统过于复杂,可以先从一个具体的环节开始,局部数字化(比如先把订单管起来)。反正用aPaaS搭建的速度足够快,用户甚至可以利用零代码工具来生成企业应用原型,在实际使用中进行验证,确认了终端用户可以掌握,原先识别的问题可以被有效解决之后,再继续推进更完整的实施。

可以这么说,零代码工具可以让开发者和使用者之间的距离充分缩短。在极端情况下,使用者甚至可以自己就是搭建开发者自己。他们可能在一两个小时的搭建后就能够确认这个方案是不是能够有效地解决问题。

3)在企业内部打通数据中台的需求

在企业IT中,还有一个致命痛点存在,那就是不同业务系统之间的数据相互隔离,不能综合使用,使得企业难以进行跨职能的数据相关性和因果分析,也难以实现跨职能的数据自动化。比如要分析一个价格调整措施对财务报表的影响,这个工作在任何一个孤立的信息系统中是无法完成的,而如果要做到,就至少需要从采购,销售,营销和财务系统中获得数据。同样的道理,企业也很难在遇到财务目标无法达成的情况下,自动做出最优的价格决策。这些都是影响企业运营水平至关重要的问题。近年来,Gartner提出的Paced Layer架构,以及阿里给电商企业提供的中台方案就是针对这种需求的反馈。

大企业当然可以投入专门的资金来打造数据中台性质的系统,但小企业支付不起,并不代表他们不想获得这样的能力。aPaaS平台提供了这个可能性。

首先,因为aPaaS平台管理数据的模型一致,所以它一般能够提供一个标准化程度非常高的编程接口,从外部系统汇合数据变得相对容易很多,这就像路由器一样,不管你有多少联网设备,它们都可以用统一的协议连接在一起。有了集中的数据,各种应用需求都变得容易兑现。哪怕个别系统依然需要通过抽取数据服务后另行原生开发,也比不断重复做数据整合工作要高效很多倍。

甚至,如果用aPaaS平台直接管理业务数据对象,这个数据整合工作都可以免除。用户可以直接在各个职能相关的数据对象中建立关联,建立汇总查询,批量抽取数据到BI平台,建立不同数据之间的自动化。

有关企业数字中台的介绍,建议可以读一下这篇采访文章。

4)突出的成本和效率优势

零代码开发平台和原生代码开发相比到底能够提高多少效率目前还没有精确的计量,但这个效率差至少是10倍以上。传统开发模式需要10天的,aPaaS一天之内就能够搞定。

更重要的效率差别不仅仅是时间,还包括零代码平台可以免除专业技术人员的参与。虽然它要求搭建者熟悉业务,完成基本的逻辑梳理,但毕竟这和动辄需要和好几位技术人员一起开会沟通需求要高效得多。即便在复杂的应用系统上,也至多只需要2-3人分工就能够完成整个项目的实现。因为简化协作的原因带来的成本节省甚至都不值十倍了。因为所有人都知道找到靠谱的定制软件开发团队几乎就是一件撞大运的事情。

同时,定制开发通常很难提供高品质的软件。软件运行的可靠性,缺陷消除的程度都很难和标准化产品相比,毕竟定制软件只有一个用户。而一个aPaaS平台不仅要同时服务很多终端用户,还要服务五花八门的应用搭建者,它能够做到一次对,次次对;一次缺陷消除,所有用户收益的效果。

5)开箱即用和自己动手的两全

和成型的SaaS应用相比,aPaaS看似有一个缺点,就是依然需要“搭建”。这有点像整体家具系统,摆在样品间很好看,但是实际买回家还需要施工人员来拼装才能达到预期的效果。

实际上,这个问题并不是无解,甚至很好解。aPaaS一开始自然不可能获得各个行业的最佳实践,让每个企业都能够看到“样板间”效果。但是,随着时间的推移,用户企业和集成商的参与,样板间会越来越多,甚至比SaaS产品提供的用例方案更加强大,因为后者提供的是一个固定家具的摆设效果,而前者能够根据不同的房型,提供不同的家具组合方案。

而且,在足够明确的细分市场下(比如金属加工制造流程管理这样的颗粒度),可以在aPaaS平台上开发出完全开箱即用的应用,直接分发给不同企业使用。有了这个能力,aPaaS不仅能够服务好终端用户,还能够催生集成商工作模式的变革,他们不仅可以通过出售IT服务挣钱,还能够在服务中加入解决方案的价值,消除定制开发成本,大幅提高项目服务毛利。

有了开箱即用的能力后,就能够大大加速企业采纳的意愿。而且,才采纳以后,“自己动手”的能力依然存在。就像先进的整体家居系统不仅可以组合,而且可以重新组合。企业软件的适用模式永远和企业阶段有关,比如小型制造业并不见得需要质量管理单元,但当年产值突破一亿元左右后,不仅面临ISO认证的刚性需求,也内在地需要引入全面质量管理。这样的企业可以在软件实施后依照实际需要继续调整、改进和增加软件模块。这个过程同样是低成本和高效率的。

6)平台特征提供的计算能力保证

在数据库应用中,有一个潜在的计算性能问题,尤其是在大规模数据表中进行复杂查询和联动计算时。如今,很多行业的企业数据规模都从数千数万条记录增长到百万,千万,甚至电商厂商轻而易举可以达到亿级数据。在制造和物流行业,物联网技术也必然带动更多的联网对象,产生的数据不仅规模巨大,而且计算形式也需要有针对性地加强。

对于定制实施系统来说,要分别通过分布式数据库,流式计算等先进技术来克服性能问题是一件极其昂贵的事情。aPaaS平台虽然为用户提供的是一个应用级的产品,但因为它范式统一,就有机会将这些基础计算隐藏起来,让用户不必关心这些后台事务就能够获得高性能的计算服务。通过aPaaS平台管理的数据表无论规模有多大,读写有多么频繁,实时查询的要求有多高,总有一个计算框架可以胜任。这种平台的扩展性让客户可以真正放心,aPaaS带来的不仅仅是开发效率的提升,还包括一个伸缩自如的基础设施服务。即便企业将来的业务规模成长百倍,也不会需要彻底重建IT系统。实际上,年收入数百亿美元的业务,背后驱动的IT平台极有可能就是Salesforce的http://force.com平台搭建的应用,而不需要是独立建立的应用系统。

正是因为以上这些优势,aPaaS在没有得到行业命名之前就已经开始逐步渗透到企业IT服务领域。在最近几年正在悄悄替代大量的定制实施软件项目,也让原先依靠标准SaaS产品的企业找到了新的选择。

aPaaS目前适合什么样的企业?

aPaaS虽然拥有巨大的优势,但也不代表它能够满足所有行业和企业的所有IT需求。下面列出了一些常见的排除项。aPaaS方案对这些性质的需求吸引力不强。

1)行业有明显的专有特征

有些行业本身的专有化程度很高,而且企业之间的差异性不大,这时候垂直的行业应用可能更加合理。

围绕这个特征最典型的例子就是餐饮业和酒店业。所有餐饮业的运营逻辑都是类似的,除了单店和连锁可能使用不同复杂度的方案以外,应用模块都大同小异。而且,这个行业解决问题的方法和范式是有明显的行业特征的,比如餐厅的排队等座系统,点单结账系统等。用零代码工具来构建如此专有的场景反而更加麻烦,而且无法有效提供有行业特色的视图。

2)行业有独立的代码审计要求

金融等行业的核心业务系统因为法规等要求不能使用零代码平台,因为它无法满足代码审计的要求。aPaaS平台不一定能够提供源代码给用户企业,而且即使提供,也无法佐证应用系统处理数据的准确性。这些行业因为监管要求高,本身资金也宽裕,所以不会应用aPaaS方案在核心业务环节。

3)面向顾客的前台系统

这个当然就是指的电商网店平台了。虽然电商零售的基本数据管理和aPaaS的能力并无太大的距离,但是面向消费者的前台系统一般要求更高的灵活性和营销设施的配套,用零代码平台创建不如直接使用专门的电商系统,比如有赞、微盟等开店方案。它们提供的不仅仅是店面功能,还包括围绕顾客的营销服务和支付平台,这些是aPaaS所不擅长的领域。

除此之外的大部分企业IT需求,零代码平台都有足够的优势来胜任。而且,随着软件和服务的界限越来越模糊,很难说未来的aPaaS不能扩展它的领地。企业软件的本质就是生产力工具,aPaaS的核心精神就是围绕企业的数字化运营提供高生产力选项。

在用户渗透的过程中,当前阶段的零代码平台更多满足的还不是普通企业的需求,而是那些有一定的自建IT能力的企业。他们一般拥有若干名信息化专员,能够理解自己企业的核心业务流程和问题,能够和业务部门展开有效的沟通。除了终端企业用户外,行业咨询群体和ISV群体也开始更多关注零代码工具,因为行业咨询者永远都希望拥有属于自己的落地工具集,而他们很难投入做出自己高质量的原生软件产品;而ISV群体则常年面临项目实施成本高,客户需求差异度大的痛点,希望通过某种平台来降低开发服务成本,沉淀自己的方案能力,从而让项目实施具备更多的可复制特点。行业咨询、管理咨询和ISV群体对零代码平台的掌握最终会让这个门类的解决方案走入更多的主流企业用户。

读完这段,如果你对零代码平台有兴趣,明道云提供直接的使用体验,你可以自助注册试用。

‘陆’ Oracle EBS中的Workflow的文件在Server上的哪个目录中

应该是保存到数据库中的
Workflow是EBS的基础架构技术之一,系统中大部分流程性的通知和审批控制、账户按规则自动生成都是通过Workflow实现的
1.2工作流的目的
1. 在业务流程中发送、提供附加信息,这些附加信息以自助的Web页面或Form的形式存在,例如:在Application中审批采购订单时,采购订单的form会作为附加信息提供给审批人。
2. 定义业务规则。使用WorkflowBuilder(图形化工具)修改业务规则的流程;使用PL/SQL写流程中活动的源代码。
3. 发送电子邮件。工作流可以以电子邮件的方式向任何Application的用户发送通知。

‘柒’ 求一个JAVA的压缩程序源代码。

package com.io2.homework;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

/*压缩文件夹*/
public class MyMultipleFileZip
{
private String currentZipFilePath = "F:/MyZip.zip";
private String sourceFilePath;
private ZipOutputStream zos;
private FileInputStream fis;

public MyMultipleFileZip(String sourceFilePath)
{
try
{
this.sourceFilePath = sourceFilePath;
zos = new ZipOutputStream(new FileOutputStream(currentZipFilePath));
//设定文件压缩级别
zos.setLevel(9);
} catch (FileNotFoundException e)
{
e.printStackTrace();
}
}

// 在当前条目中写入具体内容
public void writeToEntryZip(String filePath)
{
try
{
fis = new FileInputStream(filePath);
} catch (FileNotFoundException e1)
{
e1.printStackTrace();
}
byte[] buff = new byte[1024];
int len = 0;
try
{
while ((len = fis.read(buff)) != -1)
{
zos.write(buff, 0, len);
}
} catch (IOException e)
{
e.printStackTrace();
}finally
{
if (fis != null)
try
{
fis.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}

// 添加文件条目
public void addFileEntryZip(String fileName)
{
try
{
zos.putNextEntry(new ZipEntry(fileName));
} catch (IOException e)
{
e.printStackTrace();
}
}

public void addDirectoryEntryZip(String directoryName)
{
try
{
zos.putNextEntry(new ZipEntry(directoryName + "/"));
} catch (IOException e)
{
e.printStackTrace();
}
}

// 遍历文件夹
public void listMyDirectory(String filePath)
{
File f = new File(filePath);
File[] files = f.listFiles();
if(files!=null)
{
for (File currentFile : files)
{
// 设置条目名称(此步骤非常关键)
String entryName= currentFile.getAbsolutePath().split(":")[1].substring(1);
// 获取文件物理路径
String absolutePath = currentFile.getAbsolutePath();
if (currentFile.isDirectory())
{
addDirectoryEntryZip(entryName);
//进行递归调用
listMyDirectory(absolutePath);

}
else
{
addFileEntryZip(entryName);
writeToEntryZip(absolutePath);
}
}
}
}

// 主要流程
public void mainWorkFlow()
{
listMyDirectory(this.sourceFilePath);
if(zos!=null)
try
{
zos.close();
} catch (IOException e)
{
e.printStackTrace();
}
}

public static void main(String[] args)
{
new MyMultipleFileZip("F:/fountainDirectory").mainWorkFlow();
}
}

热点内容
诺基亚密码忘了打什么电话 发布:2024-09-17 03:27:09 浏览:555
树深度优先算法 发布:2024-09-17 03:26:58 浏览:472
跳转页源码 发布:2024-09-17 03:13:05 浏览:543
html文件上传表单 发布:2024-09-17 03:08:02 浏览:784
聊天软件编程 发布:2024-09-17 03:00:07 浏览:726
linuxoracle安装路径 发布:2024-09-17 01:57:29 浏览:688
两个安卓手机照片怎么同步 发布:2024-09-17 01:51:53 浏览:207
cf编译后没有黑框跳出来 发布:2024-09-17 01:46:54 浏览:249
安卓怎么禁用应用读取列表 发布:2024-09-17 01:46:45 浏览:524
win10设密码在哪里 发布:2024-09-17 01:33:32 浏览:662