Windows Presentation Frameworkについて語るスレ。
前スレ
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463
関連スレ
Windows 10 UWPアプリ開発 Part 2
http://mevius.2ch.net/test/read.cgi/tech/1499658092/
コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
探検
WPF(.NET, WinUI) GUIプログラミング Part26
■ このスレッドは過去ログ倉庫に格納されています
2021/06/20(日) 17:04:18.66ID:7UVkl7BZ
652デフォルトの名無しさん
2021/08/10(火) 17:46:08.05ID:l4gp57RE うーん、今更Windows7時代のAPIを叩くWindows API Code PackやOokiiDialogを使うのは微妙だなってことで。
Windows11になったときに浮いてしまうんじゃないかとというのはさておき、複数のファイルやディレクトリを選択できるのがいいかなと。
いつの時代なんだよといわんばかりのデザインのMessageBoxもまた然り。
>>651
ハンドルのとり方に違いはあるにせよ、だいたい以下のようなコードを使うみたいなことが書いてある。
これはとりあえず動いているコード。
[ComImport, Guid("3E68D4BD-7135-4D10-8018-9FB6D9F33FA1"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IInitializeWithWindow
{
void Initialize([In] IntPtr hwnd);
}
// ダイアログを定義
FileSavePicker picker = new()
{
SuggestedFileName = "text",
SuggestedStartLocation = PickerLocationId.PicturesLibrary,
FileTypeChoices = { { "Text File", new List<string>() { ".txt" } } }
};
// ウィンドウバンドルを取得
IntPtr hwnd = new WindowInteropHelper(Application.Current.MainWindow).Handle;
IInitializeWithWindow withWindow = picker.As<IInitializeWithWindow>();
withWindow.Initialize(hwnd);
// ファイルダイアログを表示
StorageFile file = await picker.PickSaveFileAsync();
まぁ、上のコードはちゃんと動くけど、
IReadOnlyList<StorageFile> files= await picker.PickMultipleFilesAsync();
のように複数選択にすると動かない不思議。
参考:https://qiita.com/okazuki/items/227f8d19e38a67099006
Windows11になったときに浮いてしまうんじゃないかとというのはさておき、複数のファイルやディレクトリを選択できるのがいいかなと。
いつの時代なんだよといわんばかりのデザインのMessageBoxもまた然り。
>>651
ハンドルのとり方に違いはあるにせよ、だいたい以下のようなコードを使うみたいなことが書いてある。
これはとりあえず動いているコード。
[ComImport, Guid("3E68D4BD-7135-4D10-8018-9FB6D9F33FA1"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IInitializeWithWindow
{
void Initialize([In] IntPtr hwnd);
}
// ダイアログを定義
FileSavePicker picker = new()
{
SuggestedFileName = "text",
SuggestedStartLocation = PickerLocationId.PicturesLibrary,
FileTypeChoices = { { "Text File", new List<string>() { ".txt" } } }
};
// ウィンドウバンドルを取得
IntPtr hwnd = new WindowInteropHelper(Application.Current.MainWindow).Handle;
IInitializeWithWindow withWindow = picker.As<IInitializeWithWindow>();
withWindow.Initialize(hwnd);
// ファイルダイアログを表示
StorageFile file = await picker.PickSaveFileAsync();
まぁ、上のコードはちゃんと動くけど、
IReadOnlyList<StorageFile> files= await picker.PickMultipleFilesAsync();
のように複数選択にすると動かない不思議。
参考:https://qiita.com/okazuki/items/227f8d19e38a67099006
653デフォルトの名無しさん
2021/08/10(火) 18:43:48.86ID:3CW5QVj8654おじさん(*'▽')
2021/08/10(火) 19:13:20.91ID:/fr9b65w GUIプログラムは、Electronを使うのが一番簡単だと思うね
ちなみにおじさん(*'▽')はJavascriptはあんまり得意じゃないな
ちなみにおじさん(*'▽')はJavascriptはあんまり得意じゃないな
655おじさん(*'▽')
2021/08/10(火) 19:18:23.47ID:/fr9b65w C言語は、競技プログラミングでしか使ったことないな
656デフォルトの名無しさん
2021/08/10(火) 19:42:06.18ID:l4gp57RE 652の問題はWindowsAppSDK側の報告済みのバグだった模様。
https://github.com/microsoft/WindowsAppSDK/issues/467
>>654
まぁね〜。VueとTypeScriptでいくつか作っているけど、ブラウザに用意されているOSの機能(ファイル添付とか)以外を叩かないのであれば楽。(むしろそっちのほうが得意である)
DiscordみたいなWebでもディスクトップでもってアプリを作る場合は便利だし、速度的な問題もWebAssemblyで遜色ない程度の速度で動くけど、OSの機能を叩く場合IPCRendererの知識がいるし、CのライブラリをWebAssemblyにしてJavaScriptから叩けるようにする場合は、Emscriptenの知識がいるよ。
npmで配布されているwasmなライブラリで、ブラウザでは動くのにElectronでは動かないってトラブルが結構あった。
かつてのJScriptみたく、直接COM基盤やDLLを叩けるとか、WPFを操作するのにC#の代わりにTypeScriptで組めるとかできればいいんだけどね〜。
https://github.com/microsoft/WindowsAppSDK/issues/467
>>654
まぁね〜。VueとTypeScriptでいくつか作っているけど、ブラウザに用意されているOSの機能(ファイル添付とか)以外を叩かないのであれば楽。(むしろそっちのほうが得意である)
DiscordみたいなWebでもディスクトップでもってアプリを作る場合は便利だし、速度的な問題もWebAssemblyで遜色ない程度の速度で動くけど、OSの機能を叩く場合IPCRendererの知識がいるし、CのライブラリをWebAssemblyにしてJavaScriptから叩けるようにする場合は、Emscriptenの知識がいるよ。
npmで配布されているwasmなライブラリで、ブラウザでは動くのにElectronでは動かないってトラブルが結構あった。
かつてのJScriptみたく、直接COM基盤やDLLを叩けるとか、WPFを操作するのにC#の代わりにTypeScriptで組めるとかできればいいんだけどね〜。
657デフォルトの名無しさん
2021/08/10(火) 19:59:56.48ID:pB3MREYf そのへんはEdgeエンジンのWebViewに期待したいところだなぁ。
658デフォルトの名無しさん
2021/08/11(水) 12:43:37.02ID:dnSnLDjM Electron互換でwebview2使ったhta並のファイルサイズのexeかできれば覇権取れるよな
659デフォルトの名無しさん
2021/08/11(水) 13:03:17.24ID:SyYdmIb8 WebViewってホストがC#ってだけで、内側からOSや.NETフレームワークの機能が
アクセスしやすくなっているわけじゃないよな。
アクセスしやすくなっているわけじゃないよな。
660656
2021/08/16(月) 10:46:18.07ID:H7Gaa2kS >>658
https://docs.microsoft.com/ja-jp/microsoft-edge/webview2/get-started/wpf#step-7---communication-between-host-and-web-content
を見る限り、postMessageで通信って書いてあるから、WebWorkerのWorker部分をC#で実装するみたいなイメージだと思う。
WebWorkerは以下のようにJavaScriptで並列処理する目的でよく使われるけど、DOMにアクセスできなかったりselfになるなど結構特殊だからねぇ。
呼び出す側:
var worker = new Worker('worker.js');
worker.addEventListener('message', (e) => {
console.log(e.data); // Workerから送られてきたデータ
}, false);
worker.postMessage('workerに送るデータ');
worker.js:
self.addEventListener('message', function(e) {
//なんかの処理
//処理結果を送信
self.postMessage(e.data);
}, false);
C#ではこのworker.jsに相当する部分を[webView].CoreWebView2.WebMessageReceivedで待ち受けるっぽい。
https://docs.microsoft.com/ja-jp/microsoft-edge/webview2/get-started/wpf#step-7---communication-between-host-and-web-content
を見る限り、postMessageで通信って書いてあるから、WebWorkerのWorker部分をC#で実装するみたいなイメージだと思う。
WebWorkerは以下のようにJavaScriptで並列処理する目的でよく使われるけど、DOMにアクセスできなかったりselfになるなど結構特殊だからねぇ。
呼び出す側:
var worker = new Worker('worker.js');
worker.addEventListener('message', (e) => {
console.log(e.data); // Workerから送られてきたデータ
}, false);
worker.postMessage('workerに送るデータ');
worker.js:
self.addEventListener('message', function(e) {
//なんかの処理
//処理結果を送信
self.postMessage(e.data);
}, false);
C#ではこのworker.jsに相当する部分を[webView].CoreWebView2.WebMessageReceivedで待ち受けるっぽい。
661デフォルトの名無しさん
2021/08/19(木) 08:23:07.44ID:NViLy9VH662デフォルトの名無しさん
2021/08/19(木) 08:50:27.44ID:DS/L8+OC >>661
分かりにくいなあ
初心者向けのチュートリアルなのかと思ったら突然妙に細かい概念の説明が入ったりWPF独自用語がロクな説明もなしに多用されてたり、
何がしたいのかよくわからん
MS技術は概念から入りがちでわかりにくいとよく言われるけど、社員もこんな感じならそらそうなるわな
分かりにくいなあ
初心者向けのチュートリアルなのかと思ったら突然妙に細かい概念の説明が入ったりWPF独自用語がロクな説明もなしに多用されてたり、
何がしたいのかよくわからん
MS技術は概念から入りがちでわかりにくいとよく言われるけど、社員もこんな感じならそらそうなるわな
663デフォルトの名無しさん
2021/08/19(木) 09:51:56.00ID:3QyxcYYx 今から始めるもんでもないような
664デフォルトの名無しさん
2021/08/19(木) 10:31:22.37ID:oZ+vhOv+ そのサイトは読んでないけどkazukiのWPF連載は実際的だったけどなあ
665デフォルトの名無しさん
2021/08/19(木) 11:07:01.91ID:3B3dleWs そりゃまだHello WorldにWPFの概要説明が載ってるだけだし
ただの難癖早漏
ただの難癖早漏
666デフォルトの名無しさん
2021/08/19(木) 11:44:55.48ID:B78SxsT8 WINUI入門お願いします
667デフォルトの名無しさん
2021/08/19(木) 11:46:09.64ID:IgpDwdm7 >>664
リンク先はkuzuki氏のサイトなのだが
リンク先はkuzuki氏のサイトなのだが
668デフォルトの名無しさん
2021/08/19(木) 15:01:24.51ID:9SGe/4Ie WPFでも使えるプレイグラウンドってある?
669デフォルトの名無しさん
2021/08/19(木) 18:05:18.10ID:pPr2+R/k >>662
本書の対象者を見るに
本書の対象者を見るに
670デフォルトの名無しさん
2021/08/19(木) 18:11:13.58ID:pPr2+R/k671デフォルトの名無しさん
2021/08/20(金) 07:31:12.77ID:RlHkksrv そりゃC#入門じゃなくてWPF入門だからね
672デフォルトの名無しさん
2021/08/21(土) 20:12:33.02ID:3/tZrvXL 中身を見て見たけどあらかじめ知識のある人向けの入門書だから初心者には難しい
データバインディングとか普通に意味が分かる人じゃないと
入門と言うより再入門に近いかな
データバインディングとか普通に意味が分かる人じゃないと
入門と言うより再入門に近いかな
673デフォルトの名無しさん
2021/08/21(土) 20:13:15.10ID:3/tZrvXL WPF再入門でC#についていくら知っててもなんの意味もない
674デフォルトの名無しさん
2021/08/21(土) 20:23:29.65ID:K2WIpt9a WPFについて知りたいのにC#入門からやられてもウザいだけだわな
675デフォルトの名無しさん
2021/08/21(土) 20:36:08.76ID:xRCh69hJ 秘伝のタレなんか知らんがWPFのMVVMパターンを使ったレシピがネットに転がってなくて困る。
プログラマーならフワッとした概念と、あの3つの四角形が矢印で繋がってるのだけ見て「なるほど、そういう事ね」と作り始められるの?
プログラマーならフワッとした概念と、あの3つの四角形が矢印で繋がってるのだけ見て「なるほど、そういう事ね」と作り始められるの?
676デフォルトの名無しさん
2021/08/21(土) 20:36:30.51ID:sxt2sGHA 旧版にあたるWPF4.5入門(https://www.slideshare.net/okazuki0130/wpf45-38048141)と
見比べてみれば、まだまださわりの部分だわな
つか、現状に合わない部分を削除してるだけに近いかね
まだ加筆が必要な部分じゃないからだろうけど
見比べてみれば、まだまださわりの部分だわな
つか、現状に合わない部分を削除してるだけに近いかね
まだ加筆が必要な部分じゃないからだろうけど
677デフォルトの名無しさん
2021/08/21(土) 21:03:06.13ID:7GAoG1Iq Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています
Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しでView types参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます
Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ
なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?
Nimの実験的特徴
著者: アンドレアス・ルンプ
バージョン: 1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、Cのソースコードを吐き出せるのでC言語でリモートワークされ
ている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる
「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています
Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しでView types参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます
Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ
なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?
Nimの実験的特徴
著者: アンドレアス・ルンプ
バージョン: 1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、Cのソースコードを吐き出せるのでC言語でリモートワークされ
ている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる
「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
678デフォルトの名無しさん
2021/08/21(土) 22:01:00.51ID:K2WIpt9a679デフォルトの名無しさん
2021/08/21(土) 22:05:08.07ID:K2WIpt9a680デフォルトの名無しさん
2021/08/21(土) 23:02:56.36ID:xRCh69hJ681デフォルトの名無しさん
2021/08/22(日) 04:37:08.19ID:L9R2hvxM こういうの見て正義に成ったと勘違いして
糞コード量産タイプになんだろな
reactとかだと1/10以下のコード量だぞおい
糞コード量産タイプになんだろな
reactとかだと1/10以下のコード量だぞおい
682デフォルトの名無しさん
2021/08/22(日) 08:24:41.03ID:Y053yx43 >>680
>例えば計算機レベルのサンプル
>
>厳密に3つの責務(View, ViewModel, Model)に分けた所でPDSの冗長さが目立つだけです。
>計算機程度の小規模であるならば、ViewModelをModelと統合するのは大抵の場合あるべき姿です。
https://slidesplayer.net/slide/11235164/
>例えば計算機レベルのサンプル
>
>厳密に3つの責務(View, ViewModel, Model)に分けた所でPDSの冗長さが目立つだけです。
>計算機程度の小規模であるならば、ViewModelをModelと統合するのは大抵の場合あるべき姿です。
https://slidesplayer.net/slide/11235164/
683デフォルトの名無しさん
2021/08/22(日) 10:06:31.28ID:hhuNowTY684デフォルトの名無しさん
2021/08/22(日) 13:08:52.90ID:0Cz6ueFz Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています
Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます
Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ
なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?
Nimの実験的特徴 バージョン1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
第二プログラミング言語として Rust はオススメしません Nim をやるのです
https://wolfbash.hateblo.jp/entry/2017/07/30/193412
Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる
「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています
Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます
Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ
なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?
Nimの実験的特徴 バージョン1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
第二プログラミング言語として Rust はオススメしません Nim をやるのです
https://wolfbash.hateblo.jp/entry/2017/07/30/193412
Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる
「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
685デフォルトの名無しさん
2021/08/22(日) 20:28:25.21ID:A59qHoiu >>684
隔離スレから出てこないように
隔離スレから出てこないように
686デフォルトの名無しさん
2021/08/23(月) 04:16:34.70ID:7m4C54nZ687デフォルトの名無しさん
2021/08/23(月) 04:16:35.32ID:7m4C54nZ688デフォルトの名無しさん
2021/08/24(火) 15:32:26.18ID:WZMj7UxV 秘伝のへたれ
689デフォルトの名無しさん
2021/08/24(火) 20:56:36.64ID:nOPW+Wx/ >>687
たった1週間程度だけど調べてサンプル写経して、WPFで用意されたデータバインドと各インターフェースを用いてオブジェクト指向で作ったのがMVVMになんのかなと、とりあえず理解した。
WPFでMVVMって秘伝のタレというより、作り手の匙加減で決まるお袋の味みたいなもんか。
たった1週間程度だけど調べてサンプル写経して、WPFで用意されたデータバインドと各インターフェースを用いてオブジェクト指向で作ったのがMVVMになんのかなと、とりあえず理解した。
WPFでMVVMって秘伝のタレというより、作り手の匙加減で決まるお袋の味みたいなもんか。
690デフォルトの名無しさん
2021/08/24(火) 21:49:09.60ID:3M+O79CU MVVMは従来のWindowを幾つも開くタイプのアプリじゃなくて、1つのフレームにページを読み込むWebページのような動作をするアプリに最適なアーキテクチャで
MVVMのベースとなるprimsやMVVM Toolkitなどのライブラリはそっちで必要なDIやマルチキャストのイベントなどの機能も盛り込まれています
Windows template studioというMSによるVSの拡張機能でこれらを使った雛形でアプリを作れるけど、生成されたアプリを眺めていけば見えてくるんじゃないかな
MVVMのベースとなるprimsやMVVM Toolkitなどのライブラリはそっちで必要なDIやマルチキャストのイベントなどの機能も盛り込まれています
Windows template studioというMSによるVSの拡張機能でこれらを使った雛形でアプリを作れるけど、生成されたアプリを眺めていけば見えてくるんじゃないかな
691デフォルトの名無しさん
2021/08/24(火) 21:58:06.93ID:NErefsYh >MVVMは従来のWindowを幾つも開くタイプのアプリじゃなくて、1つのフレームにページを読み込むWebページのような動作をするアプリに最適なアーキテクチャで
逆に、MFCやFormsと比べてもその違いを意識することが少ないと思うが。
トップレベルの要素が<Window>かそうじゃないかの違いくらいしかないし。
逆に、MFCやFormsと比べてもその違いを意識することが少ないと思うが。
トップレベルの要素が<Window>かそうじゃないかの違いくらいしかないし。
692デフォルトの名無しさん
2021/08/24(火) 22:00:09.91ID:Fpbrw/6U うん、あんまり関係ないね
むしろマルチページアプリをコードビハインドを最小にする純粋MVVMで作ろうとすると苦労する
むしろマルチページアプリをコードビハインドを最小にする純粋MVVMで作ろうとすると苦労する
693デフォルトの名無しさん
2021/08/24(火) 22:01:39.27ID:XRxvSkOV694デフォルトの名無しさん
2021/08/25(水) 03:57:42.90ID:J/1+/EUy VMのプロパティとXAMLのプロパティ(Text="Hello World"のTextがプロパティ)をバインディングして組んでいくのがWPFのMVVM
オブジェクト指向がどうとか難しいこと考えなくていい
オブジェクト指向がどうとか難しいこと考えなくていい
695デフォルトの名無しさん
2021/08/25(水) 07:05:02.51ID:J/1+/EUy 個人ツール作るだけだと設計が自由でDIで困るような事態にならないので
何もわからない状態のときに、よく見るPrismって何だとか必須なのかとか思って調べてた時間が無駄だった
入門者がMVVMを理解しようとする上で邪魔な情報が多い
今のところ手間削減のために使ってみたいと感じさせてくれるものはReactivePropertyだな
何もわからない状態のときに、よく見るPrismって何だとか必須なのかとか思って調べてた時間が無駄だった
入門者がMVVMを理解しようとする上で邪魔な情報が多い
今のところ手間削減のために使ってみたいと感じさせてくれるものはReactivePropertyだな
696デフォルトの名無しさん
2021/08/25(水) 07:50:46.77ID:H6wiA6E4 とにかく楽してMVVMしたい人向けならCaliburn.Micro一択
697デフォルトの名無しさん
2021/08/25(水) 16:32:19.70ID:efp5szRf >>696
caliburnはもう死んだだろ
caliburnはもう死んだだろ
698デフォルトの名無しさん
2021/08/25(水) 16:40:02.69ID:jUUODgwG699デフォルトの名無しさん
2021/08/25(水) 16:54:38.02ID:rhTS1cJX ReactivePropertyでVM作るのパズル組んでるみたいで楽しい
700デフォルトの名無しさん
2021/08/25(水) 17:57:25.18ID:eN7VzoDp viewのイベントを全部vmで拾えれば楽なのに
コードビハインドからvmのコマンドつかったら疎結合ガーとか面倒くさい
コードビハインドからvmのコマンドつかったら疎結合ガーとか面倒くさい
701デフォルトの名無しさん
2021/08/25(水) 19:13:09.36ID:acmPLHd8 疎結合おじさん
笑
笑
702デフォルトの名無しさん
2021/08/25(水) 19:17:59.52ID:acmPLHd8 bland用のframeworkを
mvvmと称して流布した??だれ?(・・;)
の罪は重いな
mvvmと称して流布した??だれ?(・・;)
の罪は重いな
703デフォルトの名無しさん
2021/08/25(水) 19:48:43.46ID:J/1+/EUy MVVMでイベントが使いたいときはMicrosoft.Xaml.Behaviorsを使おう
これ公式WPF拡張パッチみたいなもんだよね
これ公式WPF拡張パッチみたいなもんだよね
704デフォルトの名無しさん
2021/08/25(水) 20:24:15.90ID:rgXi1H5Z705デフォルトの名無しさん
2021/08/25(水) 20:56:38.65ID:NVjF9CjI ReactivePropertyはナシだな
個人作成のは業務で使えんわ
Prismもサードパーティ扱いだからギリNG
個人作成のは業務で使えんわ
Prismもサードパーティ扱いだからギリNG
706デフォルトの名無しさん
2021/08/25(水) 21:21:12.91ID:8WeB8rUa ReactivePropertyやPrism相当のものをMicrosoftが用意しないのがダメすぎる。
ライブラリでもプラットフォームでも各自で勝手にやってくれがひどすぎる。
ライブラリでもプラットフォームでも各自で勝手にやってくれがひどすぎる。
707デフォルトの名無しさん
2021/08/25(水) 21:25:29.69ID:w4zcDk6l っ Microsoft.Toolkit.Mvvm (MVVM Toolkit)
708デフォルトの名無しさん
2021/08/25(水) 21:45:37.63ID:NVjF9CjI これ来るの遅すぎた
名前空間にMicrosoftが付いてればどこの現場でも文句言われずに使えるのに
名前空間にMicrosoftが付いてればどこの現場でも文句言われずに使えるのに
709デフォルトの名無しさん
2021/08/25(水) 21:47:59.78ID:OX0ngrMb >>705
多くのオープンソースライブラリが使えなくて大変な職場だねー
多くのオープンソースライブラリが使えなくて大変な職場だねー
710デフォルトの名無しさん
2021/08/25(水) 22:07:43.44ID:rgXi1H5Z まあガチガチな所はそうでしょう
遅れてるとしか思わんが
遅れてるとしか思わんが
711デフォルトの名無しさん
2021/08/25(水) 22:12:40.48ID:hCSs42Ld リスクがあるのは事実だからねえ
JSON.NETの作者に悪意があれば明日にも.NETは崩壊するんだよ
JSON.NETの作者に悪意があれば明日にも.NETは崩壊するんだよ
712デフォルトの名無しさん
2021/08/25(水) 22:16:18.43ID:4eXJCyoq >>711
気になるならSystem.Text.Jsonに移行すればいいんじゃないの?
気になるならSystem.Text.Jsonに移行すればいいんじゃないの?
713デフォルトの名無しさん
2021/08/25(水) 22:21:02.62ID:w4zcDk6l Json.NETはMITライセンスでソースが公開されているからどうとでもなるような
714デフォルトの名無しさん
2021/08/25(水) 22:23:12.71ID:rhTS1cJX ReactivePropertyもMITライセンスだね
715デフォルトの名無しさん
2021/08/25(水) 22:43:32.24ID:H6wiA6E4 そんなおいらはLitJSON
ただし日本語の扱いにちょいと問題あって自分で直す必要あるんよ
ただし日本語の扱いにちょいと問題あって自分で直す必要あるんよ
716デフォルトの名無しさん
2021/08/25(水) 23:13:06.54ID:9vnK5UYj ReactivePropertyってコレクションと双方向バインドできないよね?
717デフォルトの名無しさん
2021/08/26(木) 07:18:08.68ID:uYrXn854 できますん
718デフォルトの名無しさん
2021/08/27(金) 11:29:58.61ID:RLcNjb1t MVVMスレが過疎ってるんでこちらで質問させてください。(>>8 その通りです)
Microsoft.Toolkit.Mvvmは、Prismなんかの外部のMVVMフレームワークに対抗して、Microsoft内で作ったMVVMフレームワーク、という認識で合っていますか?
Prismの使い方を知らないんですが、これからはMicrosoft.Toolkit.Mvvmを勉強すればいいですか?
Microsoft.Toolkit.Mvvmは、Prismなんかの外部のMVVMフレームワークに対抗して、Microsoft内で作ったMVVMフレームワーク、という認識で合っていますか?
Prismの使い方を知らないんですが、これからはMicrosoft.Toolkit.Mvvmを勉強すればいいですか?
719デフォルトの名無しさん
2021/08/27(金) 12:35:53.57ID:+WAf4pLi コミュニティツールキットの一部だけど、MS公式と考えていいと思う。
自分の使いたい機能だけピックアップして使えるし、将来性もあるし、軽量だからお勧め。
自分の使いたい機能だけピックアップして使えるし、将来性もあるし、軽量だからお勧め。
720デフォルトの名無しさん
2021/08/27(金) 12:47:47.66ID:Vf27KQAk wpf と同時期に Bland っていうデザイナーアプリが同時期にリリースされていて
wpf : dotNet標準ライブラリ(プレーンな mvvm 機能のみ)
Bland(デザイナー) : Bland SDK(mvvmを拡張してドラッグ&ドロップでUIを設計出来る機能を追加)
ってすみ分けだったんだよ
dotNet標準ライブラリにはプレーンな mvvm 機能のみしか導入しないという意志に思えた
そもそも wpf = mvvm 必須でもないし、
以前のFormsアプリのようにイベントハンドラー(コードビハインド)でも実装出来る
Bland SDK は Bland(デザイナー)を購入しなくてもダウンロード出来たし、
配布も自由だったから、
必要ならdotNet標準ライブラリと Bland SDKを組み合わせて使えって感じ
wpfの登場時からずっと追っかけてる俺からすると、
(wpf → Xamarin → Vue.js → React で Xaml系列は数年前に捨てた)
Bland SDK → Microsoft.Toolkit.Mvvm
に見える(Bland SDK は終了)
標準ライブラリに入るものではなく、
これらの機能はあくまでオプション扱いという事かな
wpf : dotNet標準ライブラリ(プレーンな mvvm 機能のみ)
Bland(デザイナー) : Bland SDK(mvvmを拡張してドラッグ&ドロップでUIを設計出来る機能を追加)
ってすみ分けだったんだよ
dotNet標準ライブラリにはプレーンな mvvm 機能のみしか導入しないという意志に思えた
そもそも wpf = mvvm 必須でもないし、
以前のFormsアプリのようにイベントハンドラー(コードビハインド)でも実装出来る
Bland SDK は Bland(デザイナー)を購入しなくてもダウンロード出来たし、
配布も自由だったから、
必要ならdotNet標準ライブラリと Bland SDKを組み合わせて使えって感じ
wpfの登場時からずっと追っかけてる俺からすると、
(wpf → Xamarin → Vue.js → React で Xaml系列は数年前に捨てた)
Bland SDK → Microsoft.Toolkit.Mvvm
に見える(Bland SDK は終了)
標準ライブラリに入るものではなく、
これらの機能はあくまでオプション扱いという事かな
721デフォルトの名無しさん
2021/08/27(金) 12:49:05.65ID:Y9IwEnSW Prismは元々MSが作ったサンプルコード集で、MSがメンテを終了しコミュニティに移管された
まず確実にMicrosoft.Toolkit.Mvvmも同じ運命を辿る
まず確実にMicrosoft.Toolkit.Mvvmも同じ運命を辿る
722デフォルトの名無しさん
2021/08/27(金) 13:04:11.97ID:7dOJ0Fee >>720
Blendでしょ
Blendでしょ
723デフォルトの名無しさん
2021/08/27(金) 13:48:17.67ID:Vf27KQAk >>722
(;´Д`)
(;´Д`)
724デフォルトの名無しさん
2021/08/27(金) 15:03:57.58ID:RLcNjb1t725デフォルトの名無しさん
2021/08/27(金) 17:11:23.78ID:Vf27KQAk726デフォルトの名無しさん
2021/08/27(金) 17:18:03.70ID:ahqxLAuM デスクトップアプリとウェブアプリ一緒にしてるあたり理解度低そうだな
727デフォルトの名無しさん
2021/08/27(金) 17:21:57.98ID:Vf27KQAk そんなあなたにElectron!
728デフォルトの名無しさん
2021/08/27(金) 18:22:27.64ID:SHdBUDHT Electronしたいけど
作り方がよくわからん・・・
作り方がよくわからん・・・
729デフォルトの名無しさん
2021/08/27(金) 19:16:29.04ID:7eXWtuz7 Blendはそのうち消えるだろ。
覚える必要なし。
Electronは1アプリごとに新しくブラウザを追加インストールするようなアホアホマンだからやめとけ。
覚える必要なし。
Electronは1アプリごとに新しくブラウザを追加インストールするようなアホアホマンだからやめとけ。
730デフォルトの名無しさん
2021/08/27(金) 19:26:17.01ID:Q47YKSur JavaアプリケーションとJavaアプレットは同一で作れたんじゃ
731デフォルトの名無しさん
2021/08/27(金) 19:36:53.91ID:RLcNjb1t732デフォルトの名無しさん
2021/08/27(金) 19:39:16.57ID:XVCMVrJv Microsoft.Toolkit.Mvvmを覚えるには、今の所Windows Template StudioというVSの拡張を入れてから
WInUI3かWpfの雛形を自動生成して、そのコードをMSのドキュメント見ながら学習した
ライブラリの中でもMessengerは便利でお薦め
WInUI3かWpfの雛形を自動生成して、そのコードをMSのドキュメント見ながら学習した
ライブラリの中でもMessengerは便利でお薦め
733デフォルトの名無しさん
2021/08/27(金) 22:23:27.21ID:Vf27KQAk >>728
そんなに難しくないですよー−
UI/UXに凝りたいならWebの数多あるUIライブラリーが使えるのでおすすめ
一応、Web系はなんでも動く、React, Vueに
ASP.NET Razorとかでもクライアントアプリ作れます
ローカルリソースにあんまアクセスしななら、
PWAとかでもデスクトップアプリ作れますよー−
OS問わずマルチプラットフォームで動きます
そんなに難しくないですよー−
UI/UXに凝りたいならWebの数多あるUIライブラリーが使えるのでおすすめ
一応、Web系はなんでも動く、React, Vueに
ASP.NET Razorとかでもクライアントアプリ作れます
ローカルリソースにあんまアクセスしななら、
PWAとかでもデスクトップアプリ作れますよー−
OS問わずマルチプラットフォームで動きます
734デフォルトの名無しさん
2021/08/27(金) 22:29:33.81ID:Vf27KQAk そういえば、Messengerパターンって自分が
いろいろ方向性を変えたきっかけでしたね
いろいろ方向性を変えたきっかけでしたね
735デフォルトの名無しさん
2021/08/27(金) 23:24:12.33ID:Pcfxrq+u736デフォルトの名無しさん
2021/08/27(金) 23:50:29.03ID:Vf27KQAk 早くにVSからVS Codeに脱却する事をお勧めするが
(いつまでたってもオープンソース世界に行けなくなるので)
手っ取り早くVS使って、派生.NET版のElectron.NETこのあたりで入門できへん?
Blazor使うやつと、ASP.NET MVC Razor のやつ C#で書けるからやりやすいでしょ
https://qiita.com/minoura_a/items/6361a213fdb86343c441
https://qiita.com/nqdior/items/d21d67624d893225762c
(いつまでたってもオープンソース世界に行けなくなるので)
手っ取り早くVS使って、派生.NET版のElectron.NETこのあたりで入門できへん?
Blazor使うやつと、ASP.NET MVC Razor のやつ C#で書けるからやりやすいでしょ
https://qiita.com/minoura_a/items/6361a213fdb86343c441
https://qiita.com/nqdior/items/d21d67624d893225762c
737デフォルトの名無しさん
2021/08/28(土) 00:01:20.25ID:t/0aPppO >>736
サンクスや鳥会えず見てハロワで基礎かしらねば如何もです
サンクスや鳥会えず見てハロワで基礎かしらねば如何もです
738デフォルトの名無しさん
2021/08/28(土) 00:09:05.90ID:5cd2kTad >>737
最初のはBlazorだからデバック面倒なのでやめといたほうが良いね
ASP.NET CORE MVC の方が良いでしょ
動けば、ローカルリソースを使う部分以外のUI的なのは普通のWebアプリと同じ
一応、Electron.NETは派生なので、元のElectronとは少し違う、似てるけど、
.NETな人が雰囲気つかむ目的なら最適かな
最初のはBlazorだからデバック面倒なのでやめといたほうが良いね
ASP.NET CORE MVC の方が良いでしょ
動けば、ローカルリソースを使う部分以外のUI的なのは普通のWebアプリと同じ
一応、Electron.NETは派生なので、元のElectronとは少し違う、似てるけど、
.NETな人が雰囲気つかむ目的なら最適かな
739デフォルトの名無しさん
2021/08/28(土) 00:15:46.06ID:5cd2kTad 記事のリンク先にあった、こっちのが素のElectonだ
https://qiita.com/nqdior/items/091200c9f01e8827fdbd
この場合、ローカルアクセス部分をC#で書きたいなら、
Edge.js という便利なのがある
https://github.com/agracio/edge-js
これは js <-> C# ブリッジだ!
では、貴殿の検討を祈る!
https://qiita.com/nqdior/items/091200c9f01e8827fdbd
この場合、ローカルアクセス部分をC#で書きたいなら、
Edge.js という便利なのがある
https://github.com/agracio/edge-js
これは js <-> C# ブリッジだ!
では、貴殿の検討を祈る!
740デフォルトの名無しさん
2021/08/28(土) 00:20:01.51ID:U4nd98Cv741デフォルトの名無しさん
2021/08/28(土) 01:37:37.38ID:iKEKAWV9 スレチと自分語りしかいなくなってしまったなw
742デフォルトの名無しさん
2021/08/28(土) 02:57:21.18ID:5qToFZIh >>732
Windows Template Studio、さっそくインストールして試してみました。
いいですね。Navigation Paneのテンプレートもすぐに試せました。
でも、その参考にしたサイトがPrism推しで、
良いチュートリアルがあるみたいなんで
Prismでもいいのかなとまだ少し迷っています。
ああいうサイトがもう少し前にあったらPrismやってたんですけどね。
Windows Template Studio、さっそくインストールして試してみました。
いいですね。Navigation Paneのテンプレートもすぐに試せました。
でも、その参考にしたサイトがPrism推しで、
良いチュートリアルがあるみたいなんで
Prismでもいいのかなとまだ少し迷っています。
ああいうサイトがもう少し前にあったらPrismやってたんですけどね。
743デフォルトの名無しさん
2021/08/28(土) 06:38:54.70ID:hybb9KOp 信者がキモイからElectronはやめておこうっと…
744デフォルトの名無しさん
2021/08/28(土) 11:56:24.12ID:Ft/jS/XE Prismは複雑怪奇だったんだが、Ver7で破壊的更新をやって前との互換性は失ったけど
機能は整理されて格段に使いやすくなっているんだよな
昔触った人が二度と使いたくないと思う気持ちはわかるし、
互換性を犠牲にしたバージョンアップで他所に移った人もいるだろうが
今のやつは言うほど酷いものじゃない
機能は整理されて格段に使いやすくなっているんだよな
昔触った人が二度と使いたくないと思う気持ちはわかるし、
互換性を犠牲にしたバージョンアップで他所に移った人もいるだろうが
今のやつは言うほど酷いものじゃない
745デフォルトの名無しさん
2021/08/28(土) 20:09:03.92ID:VSJ2s/IQ prismは途中から路線変更してフレームワーク的なライブラリみたいなのになったところで切った
746デフォルトの名無しさん
2021/08/28(土) 21:00:05.63ID:gUcQvnZZ なんで?
747デフォルトの名無しさん
2021/08/28(土) 21:04:04.97ID:/sXnGLY7 Webview2ってClearScriptみたいにJSのFunctionオブジェクトをデリゲートに変換できないのかな?
UIだけReact、それ以外の層を.NETで実装してて詰まった
素直にmessage使うしかない?
UIだけReact、それ以外の層を.NETで実装してて詰まった
素直にmessage使うしかない?
748デフォルトの名無しさん
2021/08/28(土) 21:57:39.12ID:5oeB/yz3 >>745
切らないでも便利なライブラリだけ使えばよくね?
切らないでも便利なライブラリだけ使えばよくね?
749デフォルトの名無しさん
2021/08/28(土) 22:09:34.58ID:2IM7P+Sb750デフォルトの名無しさん
2021/08/28(土) 22:34:13.14ID:5cd2kTad >>747
素直にElection.NETじゃね?
素直にElection.NETじゃね?
751デフォルトの名無しさん
2021/08/29(日) 08:10:20.00ID:Fm6ljTvP■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 ★2 [少考さん★]
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 [少考さん★]
- 「働いて働いて」の流行語大賞に懸念 「言葉が独り歩き」 過労自殺遺族 [尺アジ★]
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化へ 過去10年間に使用のメールアドレスや電話番号等も★3 [Hitzeschleier★]
- 【画像】消えた美人女優 上原多香子さん(42)、沖縄で目撃される [牛丼★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は ★2 [蚤の市★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★1
- 【高市悲報】JA、発狂www「臨時に経費率を下げるので、どうかお米券を使ってください」 [246620176]
- 俺「お疲れ様でぇぇす」お前ら「ゥェェス…」←これ
- 女はチンコをオカズにオナニーするに決まってる
- 【速報】ペルソナ5でいちゃラブべろちゅー中出し子作りセックスしたいキャラランキング、発表されるwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [322239926]
- 高市早苗、森元総理の愛人だった [347751896]
