问题标签 [backwards-compatibility]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - ISerializable 和向后兼容性
我必须使用一个旧应用程序,该应用程序使用 binaryFormatter 将应用程序数据序列化到文件流中(比如在名为“data.oldformat”的文件中),没有任何优化主类已用属性标记
和序列化代码
为了优化序列化/反序列化过程,我只是让类实现 ISerializable 接口并编写了一些优化的序列化例程
优化效果非常好,但我必须找到一种方法来重新获取旧文件中的数据以实现向后兼容性。
我怎样才能做到这一点??
皮尔路易吉
opengl - OpenGL 着色语言向后兼容性
我注意到当 GLSL 版本低于 130 时,我的 GLSL 着色器无法编译。
拥有向后兼容的着色器源最关键的元素是什么?我不想完全向后兼容,但我想了解在 GLSL 低于 130 的 GPU 上运行简单(向前兼容)着色器的主要准则。
当然这个问题可以用预处理器解决
但我可能忽略了很多问题。
iphone - 在运行时检查 UI_USER_INTERFACE_IDIOM 是否存在
我正在开发一个应该能够在 iPad 和 iPhone 上运行的通用应用程序。Apple iPad 文档说用来UI_USER_INTERFACE_IDIOM()
检查我是在 iPad 还是 iPhone 上运行,但我们的 iPhone 是 3.1.2 并且没有UI_USER_INTERFACE_IDIOM()
定义。因此,此代码中断:
在 Apple 的SDK 兼容性指南中,他们建议执行以下操作来检查该功能是否存在:
这可行,但会导致编译器警告:“指针和整数之间的比较”。在四处挖掘之后,我发现我可以通过以下转换使编译器警告消失(void *)
:
我的问题是:这里的最后一个代码块可以/可接受/标准做法吗?我找不到其他人通过快速搜索来做这样的事情,这让我想知道我是否错过了一个陷阱或类似的事情。
谢谢。
jquery - jQuery版本兼容性检测
是否有任何资源可以测试 jQuery 脚本/扩展/插件/任何版本兼容性问题?
c++ - 依赖于其他库的库的 Libtool 版本控制
我有一个在核心应用程序及其界面中使用 Boost 和 CgiCC的框架。
我应该如何对库二进制接口(又名 libtool -version-info
)进行版本控制?
当我进行各种更改时,我可以毫无问题地跟踪库本身的更改。我很清楚我应该如何版本。
但...
Boost 和 CgiCC 库都没有提供任何向后兼容的 API/ABI,而且我的库可能与 Boost 和 CgiCC 的任意版本链接,所以我不能提供关于接口的任何承诺,所以我不能真正指定-version-info
,因为即使是相同的针对不同版本的 Boost 和 CgiCC 编译的库将不兼容。
所以我该怎么做?我应该如何版本库?
我知道我不应该首先依赖 Boost 和 CgiCC 接口,但这是我迄今为止对现有稳定版本的了解。这个问题在下一个主要版本中得到解决,但我仍然拥有并希望保持当前版本,因为它非常有价值。
android - Android:如何保持向后兼容?
根据此处找到的说明,要让您的应用说明您可以支持哪些屏幕尺寸,您需要针对 Android 1.6 编译您的应用。
使用 minSdkVersion 和 targetSdkVersion 这应该也可以在 Android 1.5 上运行:
但是,当我尝试从 Eclipse 启动我的应用程序以在模拟 1.5 中运行时,我收到以下错误:
这是 Eclipse 工具/模拟器的错误吗?或者如何在让我选择指定支持的屏幕的同时正确定位 1.5?
wcf - WCF Versioning 宁静方式问题
我在 Icontact 和 wcf 服务中有两种方法,我想为新需求版本一种方法。并希望现有客户调用旧代码。和新客户端调用新更改的方法和现有方法以实现向后兼容性。
代码:
我在这里进行版本控制......
当我调用现有方法时效果很好,当我调用service.svc/r1/GetWorkingDetails
它时效果也很好。但我也想打电话给service.svc/r1/GetList
以前的合同。我怎么能称之为向后兼容。
谢谢
ruby - 是什么阻止您编写特定于 ruby 1.9 的代码?
到目前为止,我只是将 YARV (ruby 1.9) 用作比 ruby 1.8 更快的 ruby 实现,并确保我的所有代码都向后兼容 ruby 1.8.6。什么情况(如果有的话)阻止您编写特定于 1.9 的代码?
每个答案一个原因。
.net - 在 Visual Studio 2010 中打开 .NET 2.0 项目时可能会遇到什么问题?
我工作的小型软件团队最近获准升级到 Visual Studio 2010(我们目前使用的是 VS 2005)。我们有几个 ASP.NET 2.0 和 WinForms(在 .NET 2.0 中)项目正在生产中。
我的任务是下载 VS 2010,看看它在我们当前项目中的表现如何。在 VS 2010 中针对较旧的应用程序时,我应该注意哪些问题?如果我在 VS 2010 中打开一个 VS 2005 项目,当我的队友返回在 VS 2005 中打开该项目时,它是否仍然很好?我们是否必须升级项目才能在 VS 2010 中工作(假设项目本身没有升级到 .NET 4)?我可以使用 VS 2010 来编辑旧版 VB6 应用程序(开个玩笑)吗?
我很高兴能使用最新的软件,但我们担心在已经运行良好的生产应用程序上遇到开发障碍。
注意:我开始赏金,希望能得到这个问题的更详细的答案。也许答案真的和已经提供的一样简单,但我对更多关于我们从使用 VS 2005 过渡到 VS 2010 的选项的反馈感兴趣。
linux - 构建不需要最新 glibc 的软件的最佳方法是什么?
我正在尝试构建一个可以在多个 Linux 发行版上运行的二进制包。它目前是在 Ubuntu 10.04 上构建的,但在 Ubuntu 8.04 上失败并出现以下错误:
解决此问题的首选方法是什么?有没有办法在新盒子上安装旧 glibc 并针对它进行构建,还是我必须在旧发行版上构建?如果我针对旧的 glibc 构建,它会在新的 glibc 上工作吗?
或者,是否只有一些方便的编译器标志或包我可以安装来解决问题?