問題タブ [code-sharing]

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.

0 投票する
1 に答える
907 参照

flash - モバイル アプリケーションと Web アプリケーションの両方でコードベースを共有していますか?

私はしばらくの間、モバイルアプリケーションを開発しています。iOS と Android で動作し、AIR アプリとしてデスクトップでも動作します。これは素晴らしいことで、とても興奮しています。しかし、先週、Web ブラウザー内で実行されるバージョンのアプリをエクスポートできない理由を尋ねられました。私はできると思っていて、それを調べてみると言いました。

しかし、なぜモバイル コードをデスクトップで実行したいのでしょうか?

いくつかの理由:

  • コードの再利用の向上。これはすべての場合に意味があるわけではありませんが、多くの場合は意味があります。(これは自明だと思うので、詳しく説明しません。同意しない場合は、喜んで話しますが、この説明で詰まらせたくはありません。)
  • より迅速で簡単なクライアント デモ。モバイル デバイスに apk や ipa をインストールする必要はなく、URL を送信するだけで済みます。

それで、私は何を見つけましたか?さて、私がこれまでに試したことから..それは..うまくいきません。というか、うまくできていない。

まず、すべての共有コード用に Flex Library プロジェクトを作成しました。次に、それを参照する 2 つのアプリケーション プロジェクトを作成しました。1 つはモバイル用、もう 1 つは Web 用です。モバイル プロジェクトは正常に動作しますが、Web プロジェクトは動作しません。これを機能させるためにこれまでに試したことは次のとおりです。

  • Flash Builder が MobileSkin (およびその他のモバイル専用クラス) を認識できるように、web プロジェクトに mobilecomponents.swc および mobile.swc テーマを追加してみました。これにより、アプリをコンパイルできますが、起動するとすぐに UIComponent: 内でランタイム エラーがスローされますVerifyError: Error #1014: Class flash.text::StageText could not be foundこのエラーについてはほとんど発見できませんでした。私が見つけた 1 つのヒント (--swf-version=13コンパイラ オプションの追加) は機能しません。
  • 条件付きコンパイルを使用して、スキン コンポーネントがどのクラスから継承されたか (MobileSkin または SparkSkin) を制御しようとしました。これは、機能するかどうかを確認するための簡単な実験でした。私はそれが嫌であり、生産ソリューションではないことを知っています. 私の考えでは、MobileSkin が実際に SparkSkin の最適化されたバージョンに過ぎないのであれば、私のスキンはどちらから継承しても問題ないはずです。これはすぐには機能しませんでした-アプリは特定のメソッドが欠落しているためにコンパイルされませんでした(例:layoutContents)。
  • とにかく、MobileSkin はおそらく UIComponent の単なる軽量サブクラスであると考えて、すべてのスキンのスーパー クラスとして MobileSkin を UIComponent に置き換えてみました。このアプローチでは、最初にいくつかのコンパイラ エラーが発生しました (例: layoutContents メソッドがない、measuredDefaultWidth/measuredDefaultHeight プロパティがない、addChild と addElement など)。これらの問題が解決されると、アプリはコンパイルされましたが、UIComponent の「getState」メソッド内で実行時エラーが発生してクラッシュしました。(MobileSkin はこのメソッドをオーバーライドして、UIComponent のデフォルトの動作を妨げているようです。)

これまでのところ、これらのアプローチはどれもうまくいきませんでした...しかし、皆さんはどうですか? この問題に遭遇したことがありますか? あなたはそれを機能させることができましたか、それとも私が上で試した方法で私が行った明らかな見落としを見つけることができますか? できればよろしくお願いします。


更新: 問題が解決しました

上記の最初のルートで進歩を遂げることができました。私の Web プロジェクトに mobilecomponents.swc と mobile.swc テーマを追加することです。

この点で、Flash Builder が私を間違った方向に導いていたことが判明しました。「コードに結合」設定を使用してライブラリ プロジェクトにモバイル SWC を追加すると、次のようなコンパイラ警告が表示されます: The swc '/Applications/Adobe Flash Builder

4.6/sdks/4.6.0/frameworks/themes/Mobile/mobile.swc' にはスタイルのデフォルトがあり、ライブラリ パスにあります。つまり、依存関係はスタイルなしでリンクされます。これにより、出力 swc を使用するアプリケーションでスキンが欠落する可能性があります。swc は、external-library-path に配置する必要があります。

初めてこれを見て、リンケージタイプを「外部」に変更したところ、警告は消えました。次に、Web プロジェクトにモバイル SWC も追加し、リンケージ タイプを「コードに結合」に設定しました。Flash Builder はこのアプローチに満足しているように見えましたが、アプリケーションを実行すると奇妙なランタイム エラーが発生しました (前述のとおり)。

私の最初の試みが正しい方法だったことがわかりました。ライブラリ プロジェクトのリンケージ タイプを「コードにマージ」に設定し、Web プロジェクトから再リンクしないでください。Flash Builder から警告が表示されますが、警告は無視してください。現在、ほとんどの場合、物事はかなりうまくいっているようです! 調査すべき問題が 1 つまたは 2 つあります (例: リスト コンポーネントがスクロールしない) が、全体的にかなり有望に見えます!

0 投票する
3 に答える
6073 参照

c# - VisualStudioでの一元化されたライブ共同編集

さて、SOFで重複する質問を提起するために私を撃つ前に、まず私が探しているものを正確に知ってもらいましょう。他の質問と回答、およびそれが不十分である理由について説明します。

質問1

ソースが一元化されたソース管理サーバーで維持されている間に、ライブの共同編集を実行する方法を探しています。たとえば、MeとJoe BlowがX.cs同時にファイルを編集している場合、入力時にお互いの編集を確認できるはずです。まるで同じコンピューターに一緒に座っているかのように。次に、次のシナリオを考えます。私とジョーがオフラインになり、NimhaSmithがコードを更新することを決定しました。翌日オンラインに戻ると、Nimhaがスリープ中/サーバーから離れているときに更新したコードがプッシュされます。

これは、ライブコラボレーションのアイデアと、SVNなどのソース管理システムを組み合わせたものです。

重複の可能性のあるアドレス指定:

同様の質問がここにありました:.NET開発のための協調編集-可能性は何ですか、しかしそれは私に何も有用なものを与えません、そして私は理由を説明します:

  • VsAnywhere:中央のパブリックサーバー(正しい方向..?)を介して実行されます。ただし、関係するすべての関係者は、セッションに参加する前にマシン上にまったく同じコードを持っている必要があり、オフラインになるとセッションは破棄されます。
  • SourceMeet:P2Pシステムで実行されるため、オフラインなどで変更を追跡するサーバーがありません。試したことがないため、コードをマージできるかどうかを証明できません(可能な場合)。
  • CollabEdit:VisualStudioではありません
  • Cloud 9:VisualStudioではありません

そして、明らかにこの質問と、SVNやGITなどのソース管理ソフトウェアに関する直接の質問です。今、私はVSAnywhereとSVNを一緒にうまく機能させようとしました(オフライン中に変更を加えるためのSVN、オンライン開発者のためのVSAnywhere)が、それは単に機能しません。

<edit>

私は最近、 Collabという名前のこの学士論文プロジェクトを見つけました。それは良い考えのようですが、それを試してみることができなかったようです。他の誰かがそれで成功した場合は、あなたが何をしたかを私に知らせてください。このコラボプロジェクトを機能させることができれば、自分のニーズに合ったものを作成するための良いスタートになると思われます。

<edit2>

また、そのサービス用にVisual Studio拡張機能を備えたBeWeeVeeに出くわしましたが、そのサービスへのすべてのリンクが機能しなくなりました。また、VSリアルタイムコラボレーションの代わりとなる可能性のあるCodeALikeには、リアルタイム機能が削除され、「将来」に再実装されることを説明するFAQエントリがあります。

質問2:

さて、これは私の質問の2番目の部分に私をもたらします。なぜなら、私の背の高い注文に合うプログラムがそこにないかもしれないことを完全に理解しているからです。このようなソフトウェアの実装を自分でどこから始めればよいでしょうか。これを作成するために構築を開始できる既存のオープンソースのソース管理/リアルタイム編集コードはありますか?それとも、これを実装したいのであれば、最初から始めてかなり立ち往生していますか?そして、私がそれに取り組む必要がある場合、私がC#でこのようなタスクに取り組みたいことをタグで見ることができると確信しています。

2017年の更新

コメントには継続的な関心が寄せられているため、関心のある人を集めてこれを実現できる可能性のあるgitterを作成しました:https ://gitter.im/sof-centrailized-collab-editing/Lobby 。

0 投票する
1 に答える
74 参照

open-source - code.google.com のプロジェクトを複数のリポジトリと共有するにはどうすればよいですか?

あなたが code.google.com で所有しているすべてのリポジトリについて、誰かを指す単一のページまたは URL を見つけるのに苦労しました。

誰も方法を知っていますか?bitbucket や github で取得したようなページを作成するために何かする必要はありますか?

0 投票する
2 に答える
3637 参照

c# - TFS のソリューション間でコードを共有する

メンテナンスを減らすためにコードを共有する必要があるいくつかの異なるアプリケーションがあります。私はstackoverflowとWeb全般について多くのことを読もうとしましたが、これはかなり一般的な問題です。私は好きな答えを見つけていません。

私たちの TFS 分岐構造はこのようなものです。開発、メイン、プロダクションの 3 つのブランチがあります。開発ブランチでは、すべてのアクティブな開発が行われ、新しい機能の開発が完了したら、それをメインにマージしてから本番に移行します。production ブランチは、常にサーバー上で実行されるコードです。次の反復の前に修正する必要があるバグを検出した場合。変更はメインで行われ、デプロイ時にプロダクションにマージされます。コードを共有する必要があるアプリケーションは、共通の分岐階層や共通の反復スケジュールを共有していません。実際、アプリケーションの 1 つは、1 か月の反復を年に 1 回しか実行しません。(これは従来の方法とは少し異なることは承知しています。

調査中にいくつかの異なる解決策を見つけましたが、それらすべてに問題があります。

バイナリ共有: 私が見つけた一般的な方法の 1 つは、コンパイルされたバイナリを開発ブランチの下のフォルダーに分岐することでした。私の問題は、迅速に修正する必要がある共有コードのバグをどこで検出した場合、問題のコードがコンパイルされているかということです。そして、どこでバグを修正するかを決めれば、共有コード ベースにすべての変更を加えることができます。

プロジェクトの共有: ここでの私の主な問題は、許容できる方法でそれを行う方法です。私の最初のアイデアは、新しいイテレーションが開始されたときに、メイン ブランチからの変更を共有コードとマージして更新することでした。メインを開発ブランチにマージして、バグ修正の結果としての変更で開発ブランチを更新します。そして、共有コードの新しい更新バージョンを開発ブランチにブランチします。しかし、私が理解していることから、ネストされたブランチを作成するため、これは TFS ではサポートされていません。

私の質問は、いくつかの共通プロジェクトをソリューション間で共有しながらそれらを分離したままにし、共通プロジェクトが変更されて新しいバグが発生することを心配することなく、メイン ブランチのバグを修正できるようにするにはどうすればよいかということです。ただし、共通プロジェクトのバグを修正し、それらの修正を共有共通プロジェクトにマージすることはできます。

0 投票する
6 に答える
11051 参照

java - Javaプロジェクトを他の開発者と共有する方法は?

私は共同作業者と一緒にJavaプロジェクトに取り組んでおり、どちらもEclipseエディターを使用しています。私がやりたいのは、.javaファイルを彼と共有できるようにすることです。これにより、両方を別々に編集しながら、もう一方が何を書き込んだかを確認できます。現在、私はこれを、プロジェクトを含むDropboxフォルダーを共有することによるアドホックな方法で行っています。ただし、彼は別のバージョンのJavaを使用しているため(私がWindowsを使用しているときにMacを実行しているため)、このアプローチはうまく機能しません。プロジェクトを実行するには、Dropboxがすべてのファイルを共有するだけなので、彼が作成したすべての.classファイルをクリアする必要があります。これは私のコンピューターに表示されます。

開発者間のファイル共有を管理する方法としてCVSについて聞いたことがありますが、それは大変な作業のように思えます。たとえば、CVSサーバーを入手する方法や、CVSサーバーを機能させるために何をすべきかわかりません。同じJavaプロジェクトで一緒に作業できるようにする簡単で簡単な方法はありますか?GitHubが答えですか?

0 投票する
4 に答える
6111 参照

ios - iOSおよびOSX開発用の共有コードベース

主にcocos2dを使用して構築された、かなり豊富なeラーニングアプリがあります。現在、アルファ版であり、プロジェクト構造をセットアップして、MacAppStoreをターゲットとするMacバージョンをビルドできるようにしたいと考えています。これは約80%cocos2dで、UIKitにいくつかの初期画面があり、Macに移植(書き直し)する必要があります。

単一のコードベースからMacとiOSの両方のアプリストアをターゲットにするための推奨セットアップは何ですか?選択肢は次のとおりです。

  1. 同じアプリケーションソースコードルートフォルダーに2つのxCodeプロジェクトを作成し、各プロジェクトを使用して単一のターゲットを構築します。これは次のようになります:Project.xcodeprojおよびProjectMac.xcodeproj
  2. 新しいMacターゲットを既存のiPadアプリケーションプロジェクトに追加し、ターゲットメンバーシップをいじって、目的の結果を取得します。これは次のようになります:Project.xcodeproj

さらに状況を複雑にしているのは、現在、iOSアプリの静的ライブラリとしてcocos2dを使用していることです。また、CoreInfrastructureというライブラリがあり、すべてのプロジェクトで使用する多くのコードが含まれています。最近、同じコードベースからMacをターゲットにしたフレームワークとiOSをターゲットにしたライブラリを同時に構築するプロジェクトを作成できることがわかりました。これは、フレームワークプロジェクトから開始し、iOS用の静的ライブラリを構築するためのターゲットを追加することによって行われます。

だから、みんなの意見と洞察を得たかっただけです。上記の選択肢で注意すべき注意点を知っている人はいますか?MacとiOSのアプリストア向けに構築している人は、同時にそれらの構造を共有したいと思っていますか?私たちのライブラリコードで機能するターゲットを追加する...それはアプリケーションにも行く方法ですか?

どちらの選択肢でもアーカイブと配布のビルドを行う際に問題はありますか?

前もって感謝します。

0 投票する
2 に答える
175 参照

git - 特定の要件のためのコード リポジトリ - Git は「小さなダウンロード」を提供できますか?

現在「オープン ソース」であるコードがありますが、リポジトリから入手できないため、簡単にアクセスできません。SourceForge または Github のいずれかから入手できるようにするという考えですが、要件をサポートしている無料のサイトなら何でも喜んで使用します。

プロジェクトの説明

プロジェクトは、多くのモジュール (org.pscode階層下の Java パッケージ) のコードと、いくつかの依存関係 (たとえば、50 MB のクロス コンパイル プラグイン、5 ~ 10 MB の MP3..) で構成されています。このプロジェクトには、開発者向けのクロス コンパイル コンパイラやエンド ユーザー向けのミュージック ジューク ボックスなど、さまざまなスタンドアロン アプリケーションが多数含まれています。BigClipただし、プロジェクト自体以外のアプリケーションで役立つ単一のクラス (大きなサウンド クリップを保持できるクラスなど) もあります。一部のパッケージは事実上「自己完結型」です (例: JaNeLA ) が、他のパッケージはさまざまな既存のアプリケーションで使用されるコンポーネントです。

私のマシンに存在するプロジェクト全体は、すでに 200 メガを押し上げています。

長いクリップを再生したい開発者として、コードが SO に投稿するのに十分短いクラスを取得するためだけに、200 メガバイト以上のプロジェクトをダウンロードすることを躊躇します。

コード リポジトリの要件

  • ユーザーが必要な部分だけをダウンロードできるコード リポジトリ/共有システム。
  • メイン プロジェクトの多くの個別の部分で構成されている場合、それらは自動的にダウンロードされます。
  • 各「サブ」プロジェクトに必要なダウンロード量を (ユーザーに表示するために) 自動的に計算する方法を提供します。OK、それは私の選択を「成功または失敗」させる要件ではありませんが、非常に便利です。

以前の形式の CVS よりも多くの進歩があるように見えるので、Git を調べていて、Git For Eclipse Usersを読んでいて、分散バージョン管理システムのポイント 3 に到達しました..

マスター リポジトリがないことを考えると、DVCS の各ノードにリポジトリ全体が存在する必要があることは明らかです。..

それは私を心配させますが、それを完全に理解しているかどうか、または必要な動作を提供する別のメカニズムが Git 内にあるかどうかはわかりません。

質問

Git は上記の要件を満たすことができますか?

別の見方をすれば、これはほとんどの開発者にとって「問題外」ですか? コンマ区切り値のファイルを解析するための 3 KB のコードを取得するためだけに 200 MB のプロジェクトをダウンロードする場合、おそらく私は何も心配していません。

0 投票する
2 に答える
188 参照

windows-phone-7 - WP7.5 から Windows 8 に SQL データベースを使用してコードを移植するための推奨されるアプローチは?

既存の Windows Phone 7.5 アプリがあります。このアプリはローカル データベースを使用して電話にデータを保存します ( WP のローカル データベースの概要)。そのため、私のビジネス モデルは、[列]、[テーブル] などの SQL テーブルでのストレージをサポートする属性で装飾されています...

このアプリを Windows 8 に移植することを検討しています。ストレージを変更しながらビジネス モデルを再利用するには、どのようなアプローチがよいか考えています (WinRT は SQL データベースをサポートしていません)。2 つのプラットフォーム間でビジネス モデルのソース コードを共有したいと考えています。

ありがとう、、

0 投票する
1 に答える
982 参照

c# - wcf プロジェクトでの共通クラスの共有

このクラスは、

  1. サービスプロジェクト
  2. wcf クライアント プロジェクト
  3. それらが参照であるもう一方。この共通プロジェクトでは、サービス参照を生成できません。

生成できなかったと思いますが、クラスをシリアル化できないようにマークするにはどうすればよいですかMyCommonClass? ServiceReferencesプロパティにはIgnoreDataMemberAttribute. 共通プロジェクトにある MyCommonClass タイプも再利用しようとしましたが、それでも生成されます

アップデート

別の言い方をすれば、ServiceOperation で何らかの型が使用されている場合、自動的に wsdl ドキュメントに生成されます。無効にする方法は?(wcf-client側にはしたくない)

0 投票する
1 に答える
46 参照

sharing - 共有コードでのクリープと依存関係の防止

職場ではいくつかの C# プロジェクトがあり、それらの間でクラスと関数を共有することがあります。ただし、そのコードは、1 つの機能のために人々が扱いたくない依存関係をもたらすクラスに埋め込まれている場合があります。そのため、1 つまたは 2 つの関数またはクラスをコードにコピー アンド ペーストすることになります。

これは私には悪いことだと思います。

しかし、これを独自の共有ツール プロジェクトに分割して flotsam を回避すると、誰かが独自の関数とクラスを追加し、すぐに元の場所に戻ることになります。または、コードを編集して、知らない別のプロジェクトでコードを壊してしまうこともあります。

お互いのつま先を踏まないように、適切に共有するにはどうすればよいでしょうか? 結局、コピー&ペーストは正しい選択ですか?