問題タブ [legacy]
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.
legacy - マイクロソフトから入手できなくなった製品へのアクセスの取得
Javaテクノロジに関するSunとの法的な和解の結果として、Microsoftは、特定の製品を何らかの手段で直接利用できないようにしました。これが彼らのMSDNサイトからの抜粋です:
http://msdn.microsoft.com/en-gb/subscriptions/aa948864.aspx
Java関連の決済のために利用できない製品
一部の製品は、MicrosoftがSunMicrosystemsと締結したJava関連の和解の条件によりサブスクライバーダウンロードから削除されました。これらの製品は、Microsoftからいかなる形式でも入手できなくなりましたが、サードパーティの再販業者またはWebサイトから入手できる場合があります。
このリストには、Office 200、Windows 98、Windows XP、Visual Studio 6.0、VSS 6.0dなど、さまざまな製品が含まれています。
マイクロソフトは、これらの製品をさまざまな「再販業者」から入手できることを提案していますが、それ以上のことはしません。
開発者が安価で評判の良い再販業者からこれらの製品(この場合はテスト目的)にアクセスできる場所を知っている人はいますか?または、さらに良いことに、既存の合法的なライセンスキーを持っている場合、元のメディアにアクセスするための合法で無料のリソースですか?
lucene - LuceneのConstantScoreRangeQuery
LuceneのConstantScoreRangeQueryは、古いRangeQueryよりもどのように優れていますか?
どのような場合でも、RangeQueryを使用する必要がありますか?
oracle - SQL*Plus でストアド プロシージャを開いて編集する方法
古いレガシープロセスを実行するために保管されている古いボックスの古い Oracle ストアドプロシージャにいくつかの変更を加える必要があります。データベースに接続できる唯一のツールは SQL Plus です。SQL Plus で編集するためにストアド プロシージャをメモリにロードするにはどうすればよいですか?
私がオンラインで見つけたチュートリアルでは、それがどのように行われるかを説明していません。:-(
c# - マルチスレッドのc#WindowsサービスアプリケーションからVB6 DLLを呼び出しますか?
VB6dllを呼び出す必要があるマルチスレッドWindowsサービスを実行しています。このVB6dllに関するドキュメントはなく、このレガシーシステムは非常に重要なビジネスプロセスをサポートしています。
初めて(最初のスレッド)、このdllはうまく機能します。他のスレッドがアクセスする必要があるため、間違った結果を提供し始めます。
私は言っている一人の男を読んだ:
「VB6を使用している場合は、1つだけ注意してください。マルチスレッドサービスを実行している場合は、スレッドモデルを変更してアパートメントをサポートする必要があります。VBは複数のシングルスレッドアパートメントのみをサポートしますが、.NETは通常は完全にフリースレッドで実行されます。VB6DLLを呼び出すスレッドは、DLLと互換性がある必要があります。」
チームの別の人が、このddlを別のアプリケーションドメインに配置するというアイデアをくれました。確信はないけど。
マルチスレッドのc#Windowsサービスアプリケーションから呼び出されたVB6 dllをどのように操作できますか?
windows - Windowsアプリケーションでのバッチファイルの可能な置換について質問がありますか?
データベースと相互作用する多くの実行可能ファイルで構成される大きなWindowsレガシーアプリケーションがあります。実行可能ファイルには、主に4つの目的があります。
(a)データベース上のファイルの解析とロード
(b)ファイルを変換します(たとえば、ファイルをエンコードします)。これにより、ファイルを多くの部分に分割することもできます。
(c)データベースである種の複雑な更新を実行する
(d)ファイルを作成する
これらの実行可能ファイルは、バッチファイルによって呼び出されます。バッチファイルは、実行内容に基づいて3つのタイプになります。
(1)条件を待ち、外部パスからファイルを取得し、場合によっては(b)で変換し、(c)を実行し、アクティビティの結果に関する通知を送信し、データベースにレコードを書き込みます
(2)条件を待ち、(c)を実行し、ファイルを作成し、(b)で変換してから、1つまたは複数の宛先(ローカルファイル、データベース、ftp)にコピーし、アクティビティの結果に関する通知を送信します、データベースにレコードを書き込みます。
(3)(abcd)実行可能ファイルの他の複雑なシーケンスを調整し、アクティビティの結果に関する通知を送信し、データベースにレコードを書き込みます
バッチファイルは、Windowsマシン上の通常のBATファイルです(おそらく相互に呼び出します)。ファイルはスケジューラーによって起動されます。
問題は次のとおりです。
-各バッチファイルでは、環境(共通ディレクトリなど)に関するほとんどの情報が複製されており、タイプ(1)または(2)のほとんどのファイルは非常によく似ています。
-バッチファイルは、テスト環境用に簡単に構成することも、自動的に簡単にテストすることもできません。
-通知および開始条件の待機のコードが部分的に重複しています(errorAがbを呼び出す場合、エラーbがcを呼び出す場合、エラーdがeを呼び出す場合)。
-gotoの使用
-どのバッチファイルが廃止され、どのバッチファイルが定期的に呼び出されるかを正確に追跡することはできません
-送信または受信されたファイルを理解するには、バッチごとに個別に開く必要があります。
-アプリケーションに設計上の制約を課し、一般的なコードを抽象化することはできません
-水平機能を実装するには(たとえば、デフォルトのログポリシーがあり、各ジョブが呼び出された回数を数えます)、多くのファイルに(保守不可能な?)コードを書き込む必要があります。
プラス面:
バッチファイルは簡単に変更できるため、何らかの理由でバッチが失敗した場合でも、バッチを作成して状況を安全な状態に戻すことは難しくありません。
彼らは戦いでテストされています。彼らは長い間生産されてきました
私はこの解決策を思いついた:
共通の関数と構成(イベントを通知する関数、ファイルを転送する関数、条件を待つ関数)を提供するJavaライブラリーをいくつか作成します。
タスククラスをロードして実行できるJava「スクリプトエンジンフレームワーク」コマンドラインアプリケーションを作成します。(タスククラスは、上記のライブラリで提供されている関数を使用できます。)
スクリプトは、ユーザーが必要に応じて別のjarファイルのクラスで提供できます。
スクリプトは、注釈を使用して自動文書化できます
スクリプトエンジンは、スクリプトにそれ自体とそのパラメータの説明を出力するように要求できます
ファイルの作成とコピーを分離する
スクリプト言語(PHP、Python)ではなく、Javaを使用することにしました。これにより、コンパイルのメリットを享受でき、「致命的なエラー」を引き起こす可能性のある共通のライブラリに何かを書くことを恐れる必要がなくなります。スクリプトの実行を停止します。
これにより、最も標準的なバッチファイル(タイプ1および2)の実行が簡単になると思いますが、タイプ3のバッチを表すのは難しいと思います。また、自動展開と私の心配は、悪いバッチファイルを書くと問題が発生する可能性がある一方で、エンジン自体(コンパイルとテストのために発生する可能性が低い場合でも)または構成にバグのあるコードをデプロイすると、すべてのスクリプトに影響を与える大きな懸念が生じる可能性があることです。
システムは100%信頼できる必要があり、システムタスクを実行するための期限と「時間枠」があることに注意してください。
私の質問は次のとおりです。
バッチファイルは大丈夫だと思いますか?それらはこの文脈で広く使用されていますか?
私は正しい方向に進んでいると思いますか?考えていないことはありますか?<
誰かがより良いアイデアを持っていますか?
私を助けることができるフレームワークを知っていますか?
将来的に柔軟性を高めるためにこのシステムを開発する価値があると思いますか、それともバッチを保持したほうがいいですか?
開発する新しいソリューションは、最初は既存のシステムと統合されるため、たとえば、アプリケーションサーバーで機能するようにすべてを書き直すことはできません。
ruby-on-rails - activerecord のデフォルトの属性列の関連付けをオーバーライドするには?
私は完全に無意味なレガシーデータベースに取り組んでいます。c00、c01、c02 などの名前の列を含む movie というテーブルがあります。このテーブルでは、非標準の primary_keys も使用されています。そこで、次のように movie というクラスを作成しました。
Movie.find_by_title("Die Hard") のようなことをして、正しい結果を返すようにしたいと思います。また、Movie.create(:title => "Die Hard") と言えるようにしたいです。どうすればいいですか?
ruby-on-rails - レガシーデータベースのActiveRecord結合テーブル
ActiveRecordを動作させるために取り組んでいるレガシーデータベースがあります。結合テーブルで問題が発生しました。私は次のものを持っています:
次に、2つのフィールドを持つtvshowlinkepisodeというテーブルがあります:idShow、idEpisodeしたがって、2つのテーブルとそれらの間の結合(多対多の関係)がありますが、結合は非標準の外部キーを使用します。私が最初に考えたのは、TvShowEpisodeLinkというモデルを作成することでしたが、主キーがありません。外部キーは非標準であるため、set_foreign_keyを使用して、ある程度制御できるという考え方でした。最終的には、TvShow.find(:last).episodesやEpisode.find(:last).tv_showのようなものを言いたいです。どうやってそこまで行くの?
open-source - JDK 1.4 をサポートする正当な理由はまだありますか?
Java でオープンソース プロジェクトをまとめることを検討しており、1.4 以前の JDK をサポートしないことについて激しく議論しています。フレームワークは、古い Java パターンとイディオムを使用して作成することもできますが、ジェネリックやアノテーションなど、より成熟した 1.5+ リリースの機能の恩恵を受けることができます。
だから本当に知りたいのは、古いJDKのサポートがフレームワークを選択する際の主要な決定要因であるかどうかです?
当然のことながら、古い JDK に固執しているレガシー システムがありますが、ロジスティクスは別として、1.4 JDK をサポートする説得力のある技術的な理由がある人はいますか?
ありがとう、
スティーブ
perl - Perl モジュールの依存関係を管理するにはどうすればよいですか?
現在、他部署が開発したフレームワークをベースに開発するプロジェクトに携わっています。私たちは現在、私たちの部門で品質基準を導入しています (ついに、やった!) が、それらを他の部門に導入することは現在不可能です. その結果、API の安定性も安定版リリースもなしに、絶え間なく変化するターゲットに対して取り組んでおり、少なくともストレスがたまっています。
私たちは最初に問題を修正しようとしているので、「アップストリーム」別名フレームワーク コードの変更に対して可能な限り自分自身を保護したいと考えています。ハード モジュールの依存関係を想定していました。
- コードで定義されたフレームワーク モジュールの特定のバージョン範囲のみを使用します。
- 単体テスト チェックを使用して、必要なすべてのバージョンがまだ利用可能であることを確認します。
- フレームワーク コードのピア レビューを必要とするすべてのバージョン範囲の拡張。
それが今のところの計画です。今質問:
- それは賢明ですか?そうでない場合、他のアイデアはありますか?
- これをperlでどのように実装しますか? を使用
use Module
すると、動作するはずの最も低いバージョン コードのみを定義できます。
c# - 従来のテキストボックスへの装飾の追加
従来のコントロールに装飾レイヤーを追加する最良の方法は何ですか?つまり、ジェットブレインのリファクタリング ツールを知っている場合、間違ったテキストの下に波線をどのように描画するのでしょうか? また、別の注意として、アプリケーションの直接参照下にないコントロール、つまりハンドルを使用して、上記の装飾を描くことはできますか? 洞察、または単なる理論がある場合は、お願いします。