如何将pb11系统转到.NET?

如何将pb11系统转到.NET?

转载自 http://bbs.kosney.cn

www.kosney.cn

由于历史原因,部门的系统大多是采用pb开发的,而且有了很多系统的积累,所以不可能一下子全部扔掉,但是,客户对纯BS结构的系统呼声越来越高,不得已必须要把原来的PB9系统转到BS上。

感谢上帝,PB11 beta版出来的真是时候,它提供工具允许把PB11的系统转到.NET上。于是有了我今天的痛苦经历:首先,自己通过pb11写了一个短小的,简单的程序,能很正常地转到.NET上了,而且运行正常。但等我把公司的程序移上去就出问题了,在Generate Assembly files 时,总是失败,而且还报一个 pb2cs.exe 文件的执行错误,到网上也没有找到解决办法,绝望之极!

pb2cs.exe错误的原因总结:
1、在执行转.NET操作之前,一定要确保在PB11中,Generate整个工程没有错误。
2、如果你引用了pbd,则请引用pbl源程序,这点是可以理解的,因为转换过程,是要通过pb11生成源代码的,要是只给一个pbd就可以生成源代码,那么pb自带的web service支持库,肯定就要被人家破解了,呵呵。

目前就是以上的总结,欢迎大家和我交流。

问题:同一个程序发布后,有时候IE有地址栏、工具栏,有时候没有地址、工具栏。
回答:在IE中输入地址的时候不要省略default.aspx或者其他*.aspx,比如http://www.kosney.cn:80/default.aspx

4。不知道PB有没有提供方法去判断程序是在C/S模式下运行,还是在B/S模式下运行。在B/S模式下又怎么去获取用户的IP地址、IE版本等信息。。我所知道的正阳是提供了这样的函数的。
回答:
你可以在default.aspx的
protected override PBSession CreateSession(){
//这里的applicationName就是你的应用名字

applicationname.SetIPAddress(System.Web.HttpContext.Current.Request.UserHostAddress);

}
并且在
applicationName.aspx.cs中增加如下代码:
private static string sIpAddress;

public static void SetIPAddress(string _IPAdress)
{
sIpAddress = _IPAdress;
}

然后在你要使用的地方调用applicationName.sIpAddress即可。