Microsoft Office以及Windows应该是微软的两个最大的盈利产品,所以它们的一举一动,最能牵扯广大最终用户的心。
Office System 2003的推出,让我们感受到其受为一个System的强大协作功能,但相信很多用户,对于Office 2003之外的InfoPath、OneNet等组件还不太了解。我在这儿想先讲讲啥是InfoPath。开心很难使用官方语言去为一个产品下定义,所以还是想到哪说到哪吧。
在几个PoC里面,简单的应用了InfoPath。最简单的,如果你开发了一个Web Service,在你不愿意为其编写ASP.NET的UI的时候,使用InfoPath是最佳选择,其操作就那么几步:
- 选择一个Web Service作为提交数据的数据源;
- 将数据列表中的Schema拖到表单设计器上;
- 再加一个Button按钮,就可以提交了,如果想美化一下,还有多种配色方案可供选择。
一切大功告成,就这么简单。做为一个表单设计工具来讲,InfoPath简单超强!!!有了它,你公司的部门秘书MM甚至不用学习任何编程,就可以做出一个像模像样的报销表单或者会议记录表单出来,供大家填写,甚至直接入库。所需要的就是拖拉而已。当然,再花哨一些的,就需要使用JavaScript编程了。
对于我来说,InfoPath让我感觉最不爽的有两点:
- 不支持.NET 语言编程,作为一个.NET时代出生的产品,不支持这.NET简单太不可思议了,竟然还使用老套的JS以及老大的VBS;
- 做出来的表单不能发布到Web上,再往前一步,如果像FrontPage一样,直接就设计出来生成ASP.NET网页,那不是超爽?那样,我们为什么还使用VS.NET来设计ASP.NET表单呢?
第一条不爽,估计下一版本就会有所改善。第二条不爽,估计不会有所改善了,至少MS官方不会提供类似的产品,因为这是Business,是By Design。
但官方不会,非官方就不会了吗?类似于.NET的跨平台,虽然MS没有提供官方实现,但Mono实现了呀。InfoPath也是同样的,有非官方提供的InfoView(http://infoview.uniqueworld.net/)。
可惜呀可惜,这个InfoView不像Mono那么慷慨,它不是免费的,其价格竟然是$12,000,而且还竟然是per CPU的。
世上无难事,只要肯登攀,老外能赚这钱,我们有五千年文明的老中们就不能赚这笔钱了吗?下载InfoPath的SDK,翻翻里面的内容,嘿嘿,还真有咱们需要的,那就是Downlevel工具,这是一个以三种外貌出现的工具,分别是cmd形式,JS形式以及xls形式。它可以将您的InfoPath表单给降格成HTML,为什么说是降格呢?因为在生成HTML后,所有的文本框都不再能填写呢,看来此路不通呀。
我们再来分析一下InfoPath的文件内容吧,InfoPath表单设计完后,其后缀名是一个XSN文件,其实如果你再深究一步,这是一个cab文件,你可以从InfoPath的文件菜单中选择“提取表单文件”将里面的文件全部提取出来,里面会有一个XML以及一个XSL(根据你定义的视图而定),XML是数据Schema,而XSL则是表现,主要是配色方案。此XSL其实也是Downlevel的,但如果转换一下思路,再用另外一个XSL,将里面的<span>转换为<asp:TextBox>也不是很难吧?再从js文件里面读取出来相应的验证,做一个InfoServer,相信几个人用半年时间也可以开发出来了。到时候,大把的钱不是到手了吗?
可惜呀,我没有时间去做这个研究及开发,哪位感兴趣,赶快动手做起来,成功后,我就收取一点提成就是了,$100 per CPU,便宜吧?
您太牛了!:)
开心,你回来了?
太好了,欢迎~~!!
欢迎开心回来。。。
Welcome back
在浏览器中呈现InfoPath表单应该不难做到,但是如果不能对表单做在线修改会造成表单的生命周期过短的问题。SharePoint上将表单内容直接按XML文件形式保存,我个人认为在真正的业务流程中,这样不太实际。但如果要保存为关系数据,如果重新在InfoPath里设计修改,然后再导入到WEB时,对前期保存数据的冲击太大,这一点如果是在线编辑表单时就可以比较从容的处理。但在浏览器里进行表单设计,确很难做到类似InfoPath这样尽善尽美。总之,总是有不如意之处。
看到开心回来,真的很高兴:)。
见面劈一半,我50$ per cpu吧。
欢迎你回来:)前一段我也在研究InforPath,呵呵,确实是很强大,但是有些东西还不够,本来打算把一些功能在微软“创新杯”软件大赛中做出来,可惜最近被BO公司的CR忙得天昏地暗。希望你有什么好想法就写出来吧。对了,顺便问个问题,请问Microsoft Project有自动排程的功能吗?就是能够解决JSSP问题
Welcome back!dude!
Good~开心回来了~
Welcome back ,Mr.XX,,We miss you~
很高兴看到开心回来了,
想你啊。
我们公司已经做好了 也是解压又压缩的 呵呵
欢迎开心回来!! 想死你了!!
To tintin:可否提供一个Dem版Look一下?:)
InfoPath SP1 + InfoPath 2003 ToolKit for VS.NET就可以用C#或VB.NET编程。
我在最近的一个项目中要用到InfoPath.
一句话:InforPath与BizTalk的关系,就好像是Outlook和Exchange的关系。
@mvm:
同理,就像Outlook也能够用作Exchange之外基于其他标准的后端服务(如POP3/IMAP4等)的前端客户程序一样,InfoPath也可以用作除了BizTalk之外的其他后端数据接收服务(Web Services、HTTP POST以及SQL Server数据库服务器)的前端工具。
了解了InfoPath的工作原理之后,很容易规划开发出更好的前端架构,以便多种UI均可以向后台服务提交数据。比如一个基于Web的任务列表中,每一项任务表单都是由URL标示的,通过合成特定的URL,可以启用不同的用户界面向用户展现表单并收集数据(如:LaunchInfoPathForm.aspx?ID=xxx或CustomWebForm.aspx?ID=xxx)——只需要令LaunchInfoPathForm.aspx返回的是一个附着了与InfoPath相关的特定PI的XML即可。
期待InfoPath SP1,将有更多特性被实现,对于软件架构人员来讲又多了新的选择,对于最终用户而言也将会有更佳的工作体验。
伤心就跑回来了? 🙂
如果用户提交后要取消怎么办?
Infopath的核心似乎是快速为Webservice/schema生成input/output UI,也许把它跟smartClient结合起来用会更有效吧。
自己搞一个根据schema动态生成webform/winform的工具吧,肯定更赚钱
在BizTalk Server 2004中,HWS就是通过InfoPath来做前端的各种数据UI,用起来感觉还不错,顶方便的,但就是因为它是客户端软件和office还是分开卖的,成本太高了,实际项目实施中应该是不会考虑!
我一直想找个能将InfoPath做成的表单转换成服务端WEB表单的途径;这样,顶多只需要一套InfoPath给管理员去做表单设计就可以了。
回去试试你所说的方法,另外如果有谁试成功了,麻烦发一些资料给我好吗![email protected]
哦,居然可以说话?哈哈哈
各位好!
To 罗亭:领导好!
开心回来啦。。
开心大哥又回来啦~
@开心就好:
可惜还只是Preview嘛!不过有些特性真的很棒…… :)
我安装了InfoPath以后,不知道做什么就删除了,呵呵,原来可以玩这些,过两天再装上,为了那么多Dollar
呵呵。
我的看法是比较悲观的,这样的程序设计会遇到很多问题。最主要的就是你要在服务器进程里面调用一个InfoPath进程。如同在服务器上安装了Word/Excel来实时处理上载的Word/Excel文件一样难,会有一些阻塞的问题。
Office既然在设计的时候是作为Desktop软件,不会为服务器进程考虑并行、死锁之类。我曾经看到了太多服务器死机时候的调用堆栈:
最上面都是User:MessageBox之类的函数,那就是因为在没有用户界面的服务器进程里面弹出对话框造成的。这样的对话框实际上是无法释放的。
更糟糕的,这个问题除微软之外还没法解决,除非微软在设计InfoPath的时候考虑到作为服务器进程运行的问题,但这明显是不正确的。
我不同意“上书房行走”的意见,因为在我的建议中,我没有使用VBA或者其它自动化方式来解决此问题,而是直接使用其xml及xsl文件格式,而得到这种文件格式,只需要调用一个简单的解包命令(此解包命令并不包含在infopath应用程序中,而是一个单独的命令)。所以我想做的这个应用程序,在服务器端根本不需要安装InfoPath。InfoPath只需要安装在需要做Design的机器上即可。
这个东西的确挺方便的.很多小企业应该有这个就够了.
我正在研究Infopath这个东东,感觉功能很强大。请问哪位知道如果用代码把XSN包解成几个文件吗?
两个急需的问题:
1 如何利用c#读取和解压 cab文件
2 InfoPath 2003 ToolKit for VS.NET我在哪里能找到请提供链接
多谢各位大哥帮忙!!!
OneNet? 笔误? OneNote, 是一个类似便签的东西,用tablet pc上才能把所有功能发挥出来,一般pc上不是很实用。Office 2003家族还有PS(project server)和sps(SharePoint Portal Server)这两个版本开心应该比我熟,呵呵
我已经完成了INFOPATH设计表单转换成WEB页面。后台和ORACLE数据库结合。利用第三方工作流引擎,完成了一个数据报送系统。每个流程只需要2个小时左右就可以完成
To hyphappy: 可以与我联系一下吗? joycode at gmail.com, Thank you very much.
To 开心就好
我现在完成的将INFOPATH表单转换成WEB页面,对INFOPATH的功能支持不是太完善,借用了INFOVIEW的一些客户端代码,自己对infopath sp1的一些函数做了一些支持。
我做这些工作的主要目的是为了现在进行的一个项目,因此还没有把它封装成一个控件。还有一个限制是,infopath里的数据源字段名称必须和数据库字段的名称一致(我没有来得及做映射)。
如果你需要的 话,我可以将源代码(总共就1000多行)拿出来,大家一起研究。
我也在试验InfoPath,在它的SP1版本中,能够添加自定义的控件,我想把自己写的ActiveX控件加入其中。
楼上的代码我也很感兴趣。希望能够参考参考。
hyphappy 能给我一份代码么 我很需要 我的E-MAIL: [email protected]
hyphappy 能给我一份代码么 我很需要 我的E-MAIL: [email protected]
能给发一分吗? 共同研究! 谢谢!! [email protected]
InfoView 我走马看花的看过了, 现阶段还是很初步…
开心: 你的评论挺不错。不过我不能下载你的个人简历…
hyphappy: 我对你所说的 1000多行源代码, "对Infopath SP1的一些函数做了一些支持", "Oracle 数据库结合" 及 "利用第三方工作流引擎都很感兴趣"。
有兴趣找寻新的工作机会吗? 请跟我联络: cy at hkucs . org
能发一份给我吗?mail是[email protected],谢谢!
最近才开始用InfoPath,感到非常的吃惊加一点疑惑,想用InfoPath+SharePoint+BizTalk试着做OA,需要一些朋友的帮助和支持,非常感谢!!!请与我联系:[email protected]
hyphappy 能发一份给我吗? 我很需要 我的E-MAIL: [email protected]
hyphappy 能发一份给我吗? 非常感谢!!!
E-mail:[email protected]
hyphappy 能给我一份吗?
E-mail:[email protected]
请问哪位大侠知道如何做到只打印inforpath表单中填上去的内容,即套打数据源中的内容,
如何解压安装程序里的cab文件,然后再压缩,多谢!!
请教大哥,如何解压安装程序里的cab文件,然后再压缩,多谢!! 可以把答案e-mail 给我吗?shaohuatt@21cn.net
hyphappy能给我一份吗?
[email protected]
hyphappy能给我一份吗?
[email protected]