問題タブ [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 のドキュメントには、iPad と iPhone のどちらで実行しているかを確認するために使用するように書かれていますが、私たちの iPhone は 3.1.2 であり、定義されUI_USER_INTERFACE_IDIOM()
ていません。UI_USER_INTERFACE_IDIOM()
そのため、このコードは次のように壊れます。
Apple のSDK 互換性ガイドでは、関数が存在するかどうかを確認するために次のことを行うことを提案しています。
これは機能しますが、「ポインタと整数の比較」というコンパイラ警告が表示されます。掘り下げた後、次のようにキャストすることでコンパイラの警告を消すことができることがわかりました(void *)
。
私の質問はこれです: ここの最後のコードブロックは大丈夫ですか/許容できる/標準的な慣行ですか? クイック検索でこのようなことをしている人を他に見つけることができなかったので、落とし穴や似たようなことを見逃したのではないかと思いました.
ありがとう。
jquery - jQuery バージョンの互換性検出
バージョンの互換性の問題について、jQuery スクリプト/拡張機能/プラグイン/その他をテストできるリソースはありますか?
c++ - 他のライブラリに依存するライブラリの libtool バージョン管理
コア アプリケーションとそのインターフェイスで Boost と CgiCC を使用するフレームワークがあります。
ライブラリ バイナリ インターフェイス (別名 libtool ) をどのようにバージョン管理すればよい-version-info
ですか?
さまざまな変更を加えたときに、ライブラリ自体の変更を追跡するのに問題はありません。どのようにバージョンアップするべきかは明らかです。
しかし...
-version-info
Boost と CgiCC の両方のライブラリは下位互換性のある API/ABI を提供しておらず、私のライブラリは非常に任意のバージョンの Boost と CgiCC にリンクされている可能性があるため、インターフェイスについて約束することはできません。Boost と CgiCC の異なるバージョンに対してコンパイルされたライブラリは互換性がありません。
それで…どうしたらいいですか?ライブラリをバージョン管理するにはどうすればよいですか?
そもそも Boost や CgiCC インターフェースに依存すべきではないことはわかっていますが、これは既存の安定バージョンでこれまで得られたものです。この問題は次のメジャー リリースで対処されますが、非常に価値があるため、現在のリリースを維持したいと考えています。
android - Android:後方互換性を維持するには?
ここにある手順に従って、サポートできる画面サイズをアプリで指定するには、Android 1.6 に対してアプリをコンパイルする必要があります。
minSdkVersion と targetSdkVersion を使用すると、これは Android 1.5 でも実行されます。
ただし、エミュレートされた 1.5 で実行するために Eclipse からアプリを起動しようとすると、次のエラーが発生します。
これはEclipseツール/エミュレーターのエラーですか? または、サポートされている画面を指定するオプションを提供しながら、1.5 を正しくターゲットにする方法を教えてください。
wcf - WCF バージョニングの安らかな方法の問題
Icontact と wcf サービスに 2 つのメソッドがあり、新しい要件のために 1 つのメソッドをバージョンアップしたいと考えています。既存のクライアントに古いコードを呼び出してもらいたい。下位互換性のために、変更された新しいメソッドと既存のメソッドを呼び出す新しいクライアント。
コード:
ここで私はバージョン管理をしています.....
既存のメソッドを呼び出すと、うまく機能し、呼び出す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 固有のコードを書くのを妨げているのは、どのような状況ですか?
回答ごとに 1 つの理由。
.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 でも動作しますか?
または、代わりに、問題を解決するためにインストールできる便利なコンパイラ フラグまたはパッケージがいくつかありますか?