64位asp.net的编程
给出了一个Windows Vista的.NET 3.5编程和客户端使用环境。在以下情况下,64位操作系统的编程意味着什么?请指定是否存在功能或优化问题,即它是否会工作以及能否在64位环境中更好地工作 1) 您正在开发一个web应用程序(asp.net c#) 2) 您正在开发win forms业务应用程序(无驱动程序级别) 3) 您正在开发一个硬件控制器 我原以为案例1或案例2没有区别,案例3可能有一些警告。但我对缺乏对64位VPN的支持感到困惑。。。一定有什么问题。对于#1,几乎一直都没有区别。我在32位机器上开发并部署到64位服务器场的大型.NET web应用程序上工作。我们遇到的唯一问题是TFS——与之没有直接关系64位asp.net的编程,.net,asp.net,64-bit,.net,Asp.net,64 Bit,给出了一个Windows Vista的.NET 3.5编程和客户端使用环境。在以下情况下,64位操作系统的编程意味着什么?请指定是否存在功能或优化问题,即它是否会工作以及能否在64位环境中更好地工作 1) 您正在开发一个web应用程序(asp.net c#) 2) 您正在开发win forms业务应用程序(无驱动程序级别) 3) 您正在开发一个硬件控制器 我原以为案例1或案例2没有区别,案例3可能有一些警告。但我对缺乏对64位VPN的支持感到困惑。。。一定有什么问题。对于#1,几乎一直都没有区别
对于#2(在某种程度上是#3,因为它涉及到调用非托管代码的一般主题),一个好的答案是。对于1没有区别。二,。除非您特别要求针对特定平台构建二进制文件,.Net工具将编译为IL,并在运行时将其JIT到实际平台。即使您在安装时正在重新设置应用程序,在大多数情况下,它也不会影响您的开发过程 然而,在32位机器上开发时,在使用p/Invoke、COM互操作或注册表访问时,针对64位目标,有两个注意事项。默认情况下,应用程序将作为目标系统的本机应用程序进行JIT,因此:
- 对32位dll的P/Invoke将无法在64位目标系统上加载dll,同时可以在32位开发人员机器上愉快地工作
- COM互操作将失败,目标64位计算机上的32位inproc对象未注册类。32位进程外对象可能会工作,这取决于它们在64位计算机上的注册方式。同样,在您的32位开发人员机器上,一切都将正常工作
- 对32位应用程序注册表项的注册表访问将在您的开发人员机器上工作,但会写入64位目标系统上的其他位置
- 上述问题同样适用
- 直接访问内存时,请注意32位和64位之间的不同寻址(始终使用64位指针)
- 遵循Windows驱动程序工具包文档中的最佳实践