自己定义的UserControls(例如为:WebWorkFlow,所在namespace为:WebPubControls ),生成Dll后,在Refrence中Add后,在WebForm的代码编写环境中编写时,已经能看到WebPubControls 、WebWorkFlow等对象及其WebWorkFlow的Public属性方法了,但是编译的时候是没办法通过的,因为UserControl 继承自System.Windows.Form.UserCOntrol中,而web项目中不允许Using System.Windows.Form这个NameSpace的,所以没办法通过! 我试着用tlbEpx和regasm来生成一个COM,也是不行的(使用命令行组册时不会出错,但加入到ToolBox的COM中时提示:It was Not Recoginized as a COM Server )。当然我在UserControl中已经加入了ClassInterface(ClassInterfaceType.AutoDual )]
还有另一种发布方式,你的windows forms control,可以先作成窗体(dll),加到asp.net application中。当调用时,客户端会弹出这个窗体(client must installed .net framework),不是在IE中,和一般的form一样。这当然是有安全性的,如果这个form想写文件,client就会提示。
windows forms control VS web control
大家熟悉的windows forms control,主要是把代码封装在对象、方法中,当调用时,程序就执行相应的代码
而web control
不但封装了逻辑上的代码,还要有动态生成html代码的功能,以便能把数据以及界面的html代码传给browser。比如查询到了10个结果,就得用循环WriteLine出相应的html代码,至于什么样的,什么颜色,那就是你的代码的功能了。很像ASP,应该不局限于html代码,javascript、vbscript...凡是浏览器能解析的都可以。
所以,从windows forms control转成web control,不是那么容易的,还要看你的html造诣如何了,:)(至少我很怕web的东西)