rksoftware

Visual Studio とか C# とかが好きです

.NET

Uno Platform が VSCode でデバッグできるらしいので試してみた 目次

Uno Platform が VSCode でデバッグできるらしいので試してみています。 ちょっと横道にそれたりなどしながら見ているのでまだ全然進んでいませんが少しずつ見て行きます。 Uno Platform 本家の記事へのリンクです。 ■ Uno Platform が VSCode でデバッグで…

Uno Platform が VSCode でデバッグできるらしいので試してみた その3

つづき 前回まででひとまずプロジェクト (ソリューション) が生まれたので実行して行きたいと思います。まずは、今回の元記事の本体である、Visual Studio Code での Wasm。Windows で行ってみます。 ■ ソリューションを VSCode で開く (Windows) コマンドプ…

Uno Platform が VSCode でデバッグできるらしいので試してみた その2

つづき ■ プロジェクト新規作成! 記事にしたがって、プロジェクトを新規作成は次の様でした。 dotnet new unoapp -o MyApp -ios=false -android=false -macos=false -uwp=false --vscodeWasm この時に大量についているオプション。明らかに対象プラットフォ…

Uno Platform が VSCode でデバッグできるらしいので試してみた その1

Uno Platform が VSCode でデバッグできるらしいので試してみています。 ちょっと横道にそれたりなどしながら見ているのでまだ全然進んでいませんが少しずつ見て行きます。 Uno Platform 本家の記事へのリンクです。 対応は WebAssembly だけとのことですが…

Uno Platform アプリを Mac と 上の VM 上の Windows で作りたい

Uno Platform は Android と iOS と UWP と Wasm のアプリを作れる夢のプラットフォームです。 そしてどんなクロスプラットフォーム開発でもそうであるように、実際の開発では一つの環境で全てのデバッグを行うことは困難です。 ※ Windows から Mac へ接続し…

C# でクラスがとあるインタフェースを実装しているかを調べる

C# でクラスがとあるインタフェースを実装しているかが知りたくなることが、稀に良くあります。 ■ Type.GetInterfaces メソッドの結果に Contains メソッド クラスが実装しているインタフェースのリストは Type.GetInterfaces メソッドで簡単に取得できます…

C# でクラスが実装しているインタフェースを取得する

C# でクラスがどのインタフェースを実装しているかが知りたくなることが、稀に良くあります。 ■ Type.GetInterfaces メソッド Type.GetInterfaces メソッドで簡単に取得できます。 ■ 実例 namespace ConsoleApp1 に次のインタフェースとクラスがあるものとし…

C# で参照で追加したプロジェクトのクラスが見つからない

少し詳しく表現すると、参照で追加したプロジェクトのクラスの定義されている Assembly (追加したプロジェクト) がロードされていない、です。 例えば次のように ClassLibrary1 プロジェクトを参照しているものとします。 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> </PropertyGroup> <ItemGroup> </itemgroup></project>

C# で現在読み込まれている Class を取得する

C# で現在読み込まれている Class を取得したいことが良くあります。 ■ 前提知識 以前に書いた次の「C# で現在読み込まれている Assembly を取得する」記事が前提です。 ■ コード 解説するよりコードが速いでしょう。 Console アプリを作成して Class の Typ…

C# で現在読み込まれている Assembly を取得する

C# で現在読み込まれている Assembly を取得したいことが良くあります。 ■ コード 解説するよりコードが速いでしょう。 Console アプリを作成して Assembly を表示するコードです。 AppDomain.CurrentDomain.GetAssemblies() 取得コード(例) foreach (var as…

C# で DLL をファイル名で読み込む

DLL をファイル名で動的に読み込みたいことはあまりないかもしれませんが、ない事もない要件です。 ■ Assembly.LoadFrom(string) メソッド Assembly.LoadFrom(string) メソッドで読み込めます。 引数の string は dll の拡張子まで含めたパスです。 こんな感…

C# 文字列を連続で結合するときの + と StringBuilder の速さ

以前に文字列を + で結合する場合と StringBuilder で Append する場合どちらが速いかという話をどこかで見た記憶があります。その記憶では 10 回くらい結合するなら StringBuilder、それ未満なら + が速いとされていた気がします。 今、試したらどうなるか…

Uno Wasm を IIS で動かす

Uno Wasm を IIS で動かそうとするとエラーになって動きませんでした。 エラーの内容 HTTP Error 500.19 - Internal Server Error The requested page cannot be accessed because the related configuration data for the page is invalid. Detailed Error …

UWP で XAML で ViewModel を指定する

UWP で XAML で ViewModel を指定する際に WPF とほんの少し違ったので。 ■ WPF の場合 ViewModel のクラスが名前空間 WpfApp1.ViewModels に MainPageViewModel として作っているとします。その場合 XAML で Window の属性に xmlns:vm="clr-namespace:WpfAp…

Uno Platform が MSB4018 エラーでビルドできない

Uno Platform が MSB4018 エラーでビルドできないことがありました。 発生条件 プロジェクト作成後、ビルド wasm プロジェクト オフライン 発生するエラー エラー MSB4018 "UnoInstallSDKTask_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" タスクが予期せず…

Uno Platform でページを追加する (mac)

Uno Platform は Windows の Visual Studio でなら簡単にページを追加できます。 しかし、残念ながら mac では GUI でポチポチしてページを追加することはできそうにありません。 ■ ポチポチできないなら Uno Platform でアプリを作る際のソースコードはテキ…

Uno Platform で Hello world サンプルを GitHub に作りました。

■ Uno Platform で はろーわーるど 最近 Uno Platform がスゴイ注目を集めています (私調査)。 そこで先日頑張って、Uno Platform で Hello world してみました。 ■ ジャパニーズ ビジネスパーソン エンジニア は忙しい 注目を集めていますが、実際に触って…

Uno Platform ふたつの空白のページ

Uno Platform で遊んでいたらフシギなことに気が付きました。 ■ 不思議画像 何が不思議か? 項目を上から見てみましょう! 一つ目は、「 空白のページ 」。二つ目は、「 空白のページ 」。 逆にしてみましょう。 二つ目は、「 空白のページ 」。一つ目は、「…

Uno Platform で はろーわーるど 目次

Uno Platform を環境構築から C# 世界に挨拶するコードを書いて、Uno Platform を完全に理解することを目指す一連の記事です。 ■ 環境構築 ■ プロジェクト(ソリューション)の新規作成 ■ イベント処理と画面更新 ■ データバインディング ■ リスト表示と画面遷…

C# で定義が未知の Json を扱う (.NET Framework / .NET Core) まとめ

以前に書いた一連の記事をまとめた記事です。 C# で定義が未知の Json を扱う (.NET Framework / JObject) - rksoftware C# で定義が未知の Json を扱う (.NET Framework / ExpandoObject) - rksoftware C# で定義が未知の Json を扱う (.NET Core / System.…

C# で定義が未知の Json を扱う (.NET Core / System.Text.Json / System.Dynamic.ExpandoObject)

未知の Json を扱う一連の記事をまとめた記事を書きました。 こちらの記事で一気読みできます。 ■ 現行世代の Json API / System.Text.Json Json を扱う際には .NET Framework 時代には Json.NET というライブラリがよく使われていました。今の時代 (.NET Co…

Uno Platform を始めよう

Uno Platform は UWP の XAML でモバイルを含めたクロスプラットフォームができる開発環境で、最近 .NET のクライアント側の界隈で大きな注目を得ています。 今まで、私も含めてあまり注目してこなかったのはカナダの nventive 社が作っているもので MS のプ…

try-convert で .NET Framework プロジェクトを .NET Core プロジェクトにコンバートしてみる

最近 .NET Core が話題です。というかデスクトッパー(※1)的に、WPF や WinForms が .NET Core 3.0 で動くようになって対応が進んできていることに注目しています。 ※1:デスクトッパーって何ですか? ■ try-convert .NET Core のグローバルツールで、旧形式の…

.NET Framwrok で使えない C# 8.0 の機能

今日は偶然にも、新機能を一通り試した .NET Core 3.0 プロジェクトの コードが手元にあったので ( 参考記事 ) .NET Framework プロジェクトにしてビルドしてみました。 ※参考記事 ■ コンパイル結果 C# 8.0 の新機能 ○ / × 読み取り専用メンバー ○ 既定のイ…

.NET Core アプリプロジェクトを .NET Framework プロジェクトにする (新形式)

今まで生きてきてこんなことをしようとは、今まで一度も思ったことがありませんでした。 .csproj を編集する .NET Core 3.0 で作ったコンソールアプリの .csproj 例です。 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <RootNamespace>YourProjectName</RootNamespace> </PropertyGroup> </Project> …

CakeBuild 目次

最近 cakebuild というものを知りました。 そこで、少し確認してみた記録です。 最近 cakebuild というものを知りました。 cakebuild のインストール cake の実行 (build.ps1) でない NuGet なので cake をプロジェクトにインストールしてみた Mac で CakeBu…

CakeBuild でタスクの依存を扱う

Cake は C# Make なのでタスク間に依存関係が欲しいところです。「A タスクを実行するには B タスクがその前に実行されていなければならない」みたいな。 IsDependentOn メソッドで実現します。 ■ 今回実行するコード var target = Argument("target", "Defa…

CakeBuild でタスクの中でタスクを実行する

今回のスクリプトは良くないスクリプトだと、私のエンジニア勘が告げています。 ■ 今回実行するスクリプト var target = Argument("target", "Default"); Task("Default").Does(() =>{ Information("Hello World!"); }); Task("cs").Does(() => { Informatio…

CakeBuild でメソッドを書いて使う

Cake は C# でスクリプトが書けるのでメソッドも書いて使えます。 具体例は今回実行するスクリプトを見てください。 ■ 今回実行するスクリプト var target = Argument("target", "Default"); var number1 = Argument("number1", "123000"); var number2 = Ar…

CakeBuild で引数で数値を扱う

Cake は素人なのでこれで良いのかということろはあるのですが、こんなこともできましたということで。 ■ 引数の指定 Cake ではスクリプトの中で var number1 = Argument("number1", "123000"); のようなコードを書いて、実行時に Cake -number1=2540 のよう…