Tag: 兼容性

开发相同PHP代码的命名空间和非命名空间版本的策略

我正在维护为PHP 5.2编写的库,我想创buildPHP 5.3的命名空间版本。 不过,我也会保持非命名空间的版本,直到PHP 5.3变得如此之久,甚至Debian稳定版本才能运行;) 我有相当干净的代码,约80个类Project_Directory_Filename命名scheme(我会改变他们\Project\Directory\Filename当然),只有less数的函数和常量(也带有项目名称的前缀)。 问题是:并行开发名称空间和非名称空间版本的最佳方法是什么? 我应该只是在仓库中创build分叉,并保持合并分支之间的变化? 是否有反斜杠代码变得难以合并的情况? 我应该编写脚本,将5.2版本转换为5.3,反之亦然? 我应该使用PHP标记器吗? sed ? C预处理器? 有没有更好的方法来使用名称空间,并保持与旧版本PHP的向后兼容性? 更新: 决定不要使用命名空间 。

编写向后兼容的Android代码

我正在编写一个应用程序,它只使用最新API级别的某些函数和类 – 16,但是我希望它在API级别为15的设备上运行时没有错误。 我们来举几个例子。 一个新的类: Android.widget.Advanceable和一个新的/重命名的方法: View.setBackground() : 我可以做这样的事情: Advanceable myAdvanceable = …; if (android.os.Build.VERSION.SDK_INT >= 16) { myView.setBackground(…); myAdvanceable.advance(); } else { myView.setBackgroundDrawable(…); // The old function name. // Don't bother advancing advanceables. } 如果我设置15的minSdk,但build立目标是16(即在项目属性 – > Android),它将实际编译没有错误。 至less有一些时间。 Eclipse对这些错误有些随意,有时候会说“setBackground()只能在API级别> = 16”或类似的情况下才可用,但是如果我只是清理项目,这些错误就会消失。 所以我的问题是,我允许这样做吗? 如果我在API 15级设备上运行代码,会不会崩溃? 它只会崩溃,如果它实际上得到16代码? Eclipse为什么不阻止我构build它? 编辑1 感谢您的答案,我想这个问题应该是:为什么不皮棉警告我使用新的API? 我在清单中有这个,并且正在使用API​​级别16的函数,但它仍然不会警告我: <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="16"/> 另外我还不确定整个类是什么时候是API级别的新类,比如Advanceable […]

如何使iPhone应用程序与多个SDK(固件)版本兼容

随着iOS4即将推出,我已经计划在未来更新我的应用程序中包含一个iAd。 我认为这会使我的应用程序对于固件版本低于4.0的人无法使用。 有没有办法根据用户的固件更改variables和.xib文件? 干杯。

Internet Explorer 11通过元标记禁用“在兼容性视图中显示Intranet站点”不起作用

我一直在Intranet网站工作超过6个月,我一直在使用下面的HTML5 doctype和边缘兼容性元标记来强制Internet Explorer不模仿旧的浏览器版本,这一直工作正常。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>My title</title> <meta http-equiv="X-UA-Compatible" content="IE=EDGE" /> </head> <body> </body> </html> 我这样做的原因是因为我工作的地方使用策略设置来启用所有Intranet站点的兼容性视图,并且这种使用EDGE设置的方法在Internet Explorer 9中可以正常工作。 一个多月前,我升级到了Internet Explorer 11,该网站仍按预期工作。 今天这个按预期停止工作,我不能肯定地说,但我认为强制兼容性视图的政策没有在IE11中启用,现在是…因为已启用兼容性元标记不再做预期的事情,而这个网站正在模拟IE8的企业模式下运行。 有谁知道如何解决这个问题,并强制IE11在Intranet网站上使用兼容性“企业模式”执行时? 并不能通过浏览器设置禁用? 编辑 我刚刚尝试添加自定义标题在我的web.config中解释这个答案https://stackoverflow.com/a/18257208/98706 而这对我来说不起作用我仍然在开发者工具栏控制台中得到下面的消息 HTML1122: Internet Explorer is running in Enterprise Mode emulating IE8. 在IE11中启用此Intranet兼容性设置时,版本8就好像被视为edge 。 这篇文章: https : //www.leapinggorilla.com/Blog/Read/1016/ie-ate-my-css—disabling-compatability-mode解释了这一点,我还没有尝试通过代码设置此标头和我们的用户没有访问权限来更改他们的浏览器设置..其他更改没有任何工作。 UPDATE 有关企业模式和兼容模式之间的区别,请参阅我对这篇文章的评论,因为它很重要。

是否有可能在XP上运行.NET 4.5应用程序?

首先,我读了以下内容: 连接案例 VS情况 特别是这个channel9的post 所以,从最后一颗子弹起,我真的觉得没有办法解决这个问题,但是我不得不看看我能否得到明确的答案,因为我的团队想要从.NET 4.0升级到.NET 4.5。 但是,我们必须支持XP。 如果我们想支持XP,是不是有可能去.NET 4.5? 我唯一能想到的就是创build两个独立的解决scheme,但是如果我们使用.NET 4.5特性,那么代码库就不得不分离。 所以,我正在寻找一些令人惊讶的解决方法,我无法find,其他人可能已经知道了。

在Visual Studio 2013中启用WiX项目

我有一个VS 2012解决scheme与WiX安装程序项目。 但是,当我在VS 2013(Release)中打开解决scheme时,WiX项目是不兼容的。 有谁知道VS 2013版本(wixtoolset?)在哪里可用吗? 或者有没有办法使VS 2013中的当前项目兼容?

我可以使用哪些HTML5标签而不用担心浏览器兼容性?

我正在构build一个在PC上使用的Web应用程序。 什么是HTML5标签,以防止与IE8和以上浏览器的兼容性问题? 注:在这个问题上,大多数问题是1-3岁。

我可以在同一台计算机上安装Python 3.x和2.x吗?

我正在运行Windows,当您在命令行上运行程序时,shell / OS会根据registry设置自动运行Python。 如果我在同一台机器上安装了2.x和3.x版本的Python,会不会破坏? 我想玩Python 3,同时仍然能够在同一台机器上运行2.x脚本。

logging框架不兼容

我正在构build一个小的Java应用程序,并希望使用logback进行日志logging。 我的应用程序依赖于一个较老的项目,通过它进行日志logging org.apache.commons | com.springsource.org.apache.commons.logging | 1.1.1 …所以我的计划是使用 org.slf4j | jcl-over-slf4j | 1.5.6 …将JCL日志redirect到 org.slf4j | slf4j-api | 1.6.0 最终… ch.qos.logback | logback-classic | 0.9.22 ch.qos.logback | logback-core | 0.9.22 所以我的应用程序可以通过它的slf4j APIloginlogback,而旧的库代码可以通过redirectlogin到同一个位置。 唉,这个结果 java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:141) 我已经尝试了更高和更低的一些这些瓶子的verision号码,也挖通过API文档等…但我无法find并解决问题。 请帮助? 尽pipelogback被认为是“战略性”的日志框架,但是我最终还是会使用日志机制。 我希望可以使用logback或log4j,但是我确实希望通过一个通用的configuration将旧的项目的日志logging合并到“新”日志框架中。

Java 8代码可以编译为在Java 7 JVM上运行吗?

Java 8引入了重要的新语言function,如lambdaexpression式。 这些语言变化是否伴随着编译的字节码中的重大变化,如果不使用某些retrotranslator,将会阻止它在Java 7虚拟机上运行?