問題タブ [boo]
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.
nant - Nant、Booc、および x64
常に 32 ビット マシンでビルド/実行されている .NET プロジェクトがあります。私は新しい 64 ビットのコンピューターを手に入れ、そこで動作させる作業に取り組もうとしています。ビルド スクリプトは nant にあり、ある時点で nant タスクを使用して boo コードをコンパイルします。boo コードは、ビルド プロセスの早い段階で c# ソースからビルドされたコア DLL を参照します。
32 ビット モードで実行するようにビルドし、64 ビット モードで実行するようにビルドします。いくつかのプログラム (booc を含む) で corflags を使用することで、32 ビット モードでビルドされたプロジェクトをビルドできましたが、実行時にダウンストリームの問題が多数発生しました。だから私はそれを64ビットモードで構築する必要があります.とにかくそれが望ましいと思います.
nant/booc ソース コードによると、booc nant タスクは CLR の Process クラスを使用して booc.exe インプロセスを呼び出すため、親プロセスから 32 ビットまたは 64 ビットを継承する必要があると思われます。しかし、それは私が見ているものを反映していません。
これが私がやったことです:
- 64 ビット版の powershell を使用して nant を呼び出しました
- タスクで platform="x64" を指定しました。anycpuは問題ないはずなので、これを行う必要はないように感じますが、違いがあるようです。
これが私が得ているエラーです:
つまり、booc ソース コードによると、「参照されているアセンブリ内の型を反射的に一覧表示しようとしましたが、失敗しました」。それが「私は 32 ビットだと思いますが、これらは 64 ビットの dll です」という意味なのか、それとも何なのかわからず、非常に混乱しています。
これを機能させる方法についてのアイデアはありますか?
いくつかの作業の後に更新すると、問題がブーとは何の関係もないことがわかりました。dll をリフレクティブにロードする簡単な C# プログラムを作成しましたが、同じように壊れます。そのため、何らかの理由で、プラットフォーム (x86、x64、または anycpu) として設定したものに関係なく、x64 マシンにリフレクティブにロードできません。だから、本当にブーのせいではありません。ですから、これを掘り下げて、より良い質問があれば再投稿します。
新しいアップデート 私の主要な DLL のサード パーティの依存関係の 1 つが、corflags でビルドされていないにもかかわらず、32 ビット環境にあることを主張していることが判明しました。これにより、64 ビット モードで assembly.GetTypes() が失敗します。
visual-studio - Visual Studioでブー?
msvsでbooを使用する方法はありますか?フォームでC#の代わりにブーイングコードを呼び出したいのですが。
.net - Boo は単体テストの作成に適していますか?
私はCastleスタックでC#で開発しています。私は単体テストを始めたばかりで、より柔軟な言語 (C# よりも) を使用すると、テストの記述が容易になる可能性があると聞いたことがあります。
単体テストを書くためだけに Boo を学ぶ価値はあると思いますか?
私たちは SharpDevelop IDE を使用しているので、Boo サポートが利用可能です。新しい CLR 言語を学ぶ言い訳を探していましたが、単体テストの学習の邪魔になりたくないだけです。
.net - Boo の代わりに Iron Python を選ぶ理由は何ですか?
重複の可能性:
BOO 対 IronPython
Boo 対 IronPython
スクリプト言語を .NET アプリケーションに埋め込みたいとします。
Boo は Python 構文をモデルにしていますが、型推論も含まれており、一般的にスクリプト言語として組み込むには、より優れた、より現代的な言語のようです。
では、なぜ Iron Python についてこれほど騒がれているのでしょうか?
LATER 指摘されたように、この質問はthisとthisの正確な複製です
boo - Booで、配列パラメーターを指定するにはどうすればよいですか?
Booで、をとるパラメータをとるメソッドをオーバーライドしているとしましょうstring[] urls
。何らかの理由で型推論が基本クラスと一致していないため、パラメーターの型を明示的に指定する必要があります。
これは正しいBoo構文ではないことが判明しました。配列パラメーターを受け取るメソッドをオーバーライドすることを指定する正しい方法は何ですか?
通常、私はIEnumerableを期待することを好みますが、Rhino.DSLの一部である他の誰かの基本クラスをオーバーライドしています。
追加のために編集:私の問題は配列宣言構文に正接的にのみ関連していたことがわかりました...私の本当の問題は、プロジェクトで参照されているBooアセンブリの2つの異なるバージョンでした。
.net - Rhino ETL DSLでFluentFileを使用するにはどうすればよいですか?
私はRhinoETLライブラリで遊んでいて、その方向性が本当に気に入っています。ただし、ドキュメントがまばらであり、これらのパイプラインプロセスを作成する方法、特にDSLを使用する方法について十分な情報がないように思われることが悪い部分であることがわかりました。
DSLファイルを作成してファイルをロードし、データを別のファイルにエクスポートして、これらすべてがどのように組み合わされるかを確認しようとしています。私が今まで持っているのはこれです。
この例外をスローします
File.boo(1,2):BCE0064:Boo.Lang.Compiler.CompilerError:「DelimitedRecord」または「DelimitedRecordAttribute」という名前の属性が見つかりませんでした(属性名では大文字と小文字が区別されません)。'System.Diagnostics.DelimitedListTraceListener'のことですか?
属性部分を削除すると、このエラーが発生します
例外:パイプラインの作成に失敗しましたImportFile:クラスUserは、[DelimitedRecord]または[FixedLengthRecord]属性でマークされている必要があります。例外:操作File.import_fileの実行に失敗しました:クラスUserは、[DelimitedRecord]または[FixedLengthRecord]属性でマークされている必要があります。
ここに何かアイデアはありますか?または、Rhino ETLのDSL内でFluentFileを使用する方法の例はありますか?
macros - 難しいブー構文マクロ
私が取り組んでいる拡張可能なカードゲームエンジン用のDSLを、ブーイングで作成しています。
新しいタイプのカードのクラスを作成し、コンストラクターでいくつかのプロパティを初期化するカードマクロがあります。そのマクロには、他のものを設定するためのサブマクロがいくつかあります。基本的に私はそれがこのようなものに変わることを望みます:
これに:
エフェクトは渡されるため、必ずクラスである必要があります(これはストラテジーパターンです)。
これまでのところ、私はこの単純なスケルトンを持っています:
今、私はcard.Bodyで何をすべきかわかりません。ネストされたクラスを生成しながら、能力マクロにコンストラクターにコードを追加させるためのボディ。何かご意見は?これは現在の言語機能で実行できますか?
c# - Boo は 100% C# と互換性がありますか?
Boo
とてもクールな言語のようです。100% C# と互換性がありますか? つまり、C# DLL/クラスを使用できますか? XNA フレームワークを利用できますか?
.net - Booでディスパッチテーブルを作成するにはどうすればよいですか?
関数をハッシュテーブルに格納できるようにしたいと思います。次のようなマップを作成できます。
しかし、私はそれを呼び出すことができません:
これにより、次のエラーメッセージが生成されます。タイプ'object'で式を呼び出すことはできません。どちらもInvoke
機能しませんCall
。
どうすればいいですか?私が推測していることから、ストアド関数は何かにキャストする必要があります。
.net - Boo でメソッド呼び出しをインターセプトするにはどうすればよいですか?
Ruby には がありmethod_missing
、Python には がありgetattr
ます。Boo は、メソッド呼び出しをインターセプトするために使用できるものを提供していますか?