WPF(.NET, WinUI) GUIプログラミング Part26

■ このスレッドは過去ログ倉庫に格納されています
2021/06/20(日) 17:04:18.66ID:7UVkl7BZ
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/
625デフォルトの名無しさん
垢版 |
2021/07/28(水) 09:34:26.66ID:m3dX+aIk
>>623
確かどっかにC#初心者スレがあったはずだから
2021/07/29(木) 12:37:19.54ID:VxNcNDZg
こっちクローズして初心者スレ行きます
2021/08/01(日) 18:11:43.70ID:tzaLBmjr
c#に慣れてきてWPFに挑戦しようかなと公式チュートリアルのHello Goodbyeを試した。
1.まずはxamlの名前を変えましょうでエラー。
1時間ほどなら悩みまくってチュートリアルページ遥か下にデバッグの項目で意図的なバグだとわかった時はキレそうになった。
引き続き学習しようと思ってるんだけど、参考になるサイトある?
2021/08/01(日) 18:45:22.56ID:BCtBnKvQ
かずき
2021/08/01(日) 20:21:17.09ID:ovUX7fTa
xamlはhtmlと同じようにタグをエディターで入力するしかないって気づいたところから使えるようになっていったな
Formsみたくコントロールをマウスで並べようとして挫折しかけた
630デフォルトの名無しさん
垢版 |
2021/08/01(日) 21:11:07.02ID:zuqV0aN+
タグ書いて完璧なUIを作るのが楽しい
グラフィカルなエディターってチラ見するだけのものだな
2021/08/01(日) 21:17:10.83ID:zRRMy60W
公式チュートリアルにHello Goodbye(world?) なんてあったっけ
2021/08/01(日) 22:31:27.62ID:tzaLBmjr
>>631
チュートリアル: C# で単純なアプリケーションを作成する 2021/02/10
ttps://docs.microsoft.com/ja-jp/visualstudio/get-started/csharp/tutorial-wpf?view=vs-2019

Hello Worldレベルでつまづいたのは初めてでショック。
wpf tutorialで検索したら良さげなサイト見つけられたからもういいんだけどね。
2021/08/01(日) 22:31:58.77ID:hLrbx4IS
ハロー!そしてグッドバイ!
2021/08/02(月) 01:14:13.50ID:GLNJH6H3
>>632
StartupUriを変更してないから実行時エラーになる件?
チュートリアルを手順通りやってれば悩むようなことなくね?
2021/08/02(月) 12:27:13.51ID:cBPUjued
>>629
Formsと同じような作り方してると結局Formsと同じくサイズ変更やレイアウト変更に脆い画面になっちまうんだよな。
GUIから貼り付けると余計なプロパティも追加されてごちゃつくし。
XAML用のコードスニペット用意して爆速コーディングがお勧め。
636デフォルトの名無しさん
垢版 |
2021/08/02(月) 17:35:01.31ID:OwNzYS4q
縦にズラーと並べてご満悦ですか
2021/08/03(火) 06:02:09.33ID:YKUXzg3a
WrapPanelもあるでよ
2021/08/05(木) 12:08:27.09ID:LnW659PN
winui触ってるけど非同期メソッド多すぎてイライラする
慣れたら気にならなくなるのかな
2021/08/05(木) 12:48:41.25ID:qCKYnrg6
むしろ非同期メソッドが用意されていない方がイライラするだろ。
640デフォルトの名無しさん
垢版 |
2021/08/05(木) 21:46:17.56ID:iyi+GUtj
>>638
WinUIまだ触れてなくて分からないんだが、もうDispatcher.Invokeしなくて良くなるの?
2021/08/05(木) 22:11:14.99ID:hAnk8QxE
きっちりMVVMしてりゃDispatcher.Invokeなんて出番ないんだが。
2021/08/05(木) 22:41:02.46ID:szLnk8N0
>>640
https://docs.microsoft.com/en-us/dotnet/api/microsoft.toolkit.uwp.DispatcherQueueExtensions?view=win-comm-toolkit-dotnet-7.0

こんなクラス使ってUIスレッド呼び出すんだわ
2021/08/06(金) 00:49:06.65ID:y474vaxZ
最近のアプリはクリックしたあとすぐに反応しないアプリ多すぎ。というかWindows10。

馬鹿に非同期の実装は無理ということ。
2021/08/06(金) 18:59:51.04ID:gqafcbP7
OneNote UWP版、死亡。
着実に脱UWPしていってるな、よしよし。
2021/08/08(日) 10:59:54.62ID:CLpDwXEd
コード簡略のためにawait 使いまくってるサンプルが世に広まってるのが良くないのかね(´・ω・`)
2021/08/10(火) 10:09:01.90ID:l4gp57RE
MahAppsでGUI作っていたけど今更Metro(Modern) UIというのもアレなんで
最近出たらしいWinUI 3.0で組もうとしているけど、ウィンドウサイズを変えることができない。

なんか、いい方法ない?

あと、WPFで使っているからかもしれないが、Windows.Storage.FilePickerの動作がなんか不安定だ。
PickSingleFileAsyncは動くのにPickMultipleFilesAsyncだとコケる。
2021/08/10(火) 10:50:56.88ID:WgvQ9Z8W
>>646
User32でハンドル拾ってメソッドを呼び出すと色々出来ます
いろいろ調べたけど、現状だとこうするしかない模様
2021/08/10(火) 11:07:37.44ID:l4gp57RE
非同期じゃないとUIロックしちゃうじゃないですかーっ。(キャンセルボタンが押せない進捗ダイアログとかできてしまう)

>>647
ハンドルかぁ。
なんか以下の4種類ぐらい取得する方法あるっぽいけど違いがよくわからない・・・。

1:
[DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto, PreserveSig = true, SetLastError = false)]
private static extern IntPtr GetActiveWindow();

IntPtr hwnd = GetActiveWindow();

2:
[ComImport, Guid("EECDBF0E-BAE9-4CB6-A68E-9598E1CB57BB"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IWindowNative
{
IntPtr WindowHandle { get; }
}

IntPtr hwnd = WindowHandle();

3:
IntPtr hwnd = new WindowInteropHelper(Application.Current.MainWindow).Handle;

4:
IntPtr hwnd = WinRT.Interop.WindowNative.GetWindowHandle(Application.Current.MainWindow);
2021/08/10(火) 12:38:45.38ID:WgvQ9Z8W
>>648
microsoft shell controls and automation ってのをcom参照すればOK

それでWindowがアクティブな状態で
m_windowhandle = PInvoke.User32.GetActiveWindow();
な具合でOK
2021/08/10(火) 15:18:02.31ID:Zfr/tHwz
WinAPI使うならPciker使うこと自体避けてしまえば
https://docs.microsoft.com/en-us/windows/win32/api/commdlg/ns-commdlg-openfilenamew
2021/08/10(火) 16:38:59.72ID:3CW5QVj8
WINUIってコントロールにハンドルないの?
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
2021/08/10(火) 18:43:48.86ID:3CW5QVj8
>>652
帰ったら試してみます
どうもありがとう
654おじさん(*'▽')
垢版 |
2021/08/10(火) 19:13:20.91ID:/fr9b65w
GUIプログラムは、Electronを使うのが一番簡単だと思うね
ちなみにおじさん(*'▽')はJavascriptはあんまり得意じゃないな
655おじさん(*'▽')
垢版 |
2021/08/10(火) 19:18:23.47ID:/fr9b65w
C言語は、競技プログラミングでしか使ったことないな
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で組めるとかできればいいんだけどね〜。
2021/08/10(火) 19:59:56.48ID:pB3MREYf
そのへんはEdgeエンジンのWebViewに期待したいところだなぁ。
658デフォルトの名無しさん
垢版 |
2021/08/11(水) 12:43:37.02ID:dnSnLDjM
Electron互換でwebview2使ったhta並のファイルサイズのexeかできれば覇権取れるよな
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で待ち受けるっぽい。
2021/08/19(木) 08:23:07.44ID:NViLy9VH
期待

WPF 入門
https://zenn.dev/okazuki/books/windows-presentation-foundation
2021/08/19(木) 08:50:27.44ID:DS/L8+OC
>>661
分かりにくいなあ
初心者向けのチュートリアルなのかと思ったら突然妙に細かい概念の説明が入ったりWPF独自用語がロクな説明もなしに多用されてたり、
何がしたいのかよくわからん
MS技術は概念から入りがちでわかりにくいとよく言われるけど、社員もこんな感じならそらそうなるわな
2021/08/19(木) 09:51:56.00ID:3QyxcYYx
今から始めるもんでもないような
2021/08/19(木) 10:31:22.37ID:oZ+vhOv+
そのサイトは読んでないけどkazukiのWPF連載は実際的だったけどなあ
2021/08/19(木) 11:07:01.91ID:3B3dleWs
そりゃまだHello WorldにWPFの概要説明が載ってるだけだし
ただの難癖早漏
2021/08/19(木) 11:44:55.48ID:B78SxsT8
WINUI入門お願いします
2021/08/19(木) 11:46:09.64ID:IgpDwdm7
>>664
リンク先はkuzuki氏のサイトなのだが
2021/08/19(木) 15:01:24.51ID:9SGe/4Ie
WPFでも使えるプレイグラウンドってある?
2021/08/19(木) 18:05:18.10ID:pPr2+R/k
>>662
本書の対象者を見るに
2021/08/19(木) 18:11:13.58ID:pPr2+R/k
誤送信すみません

>>662
本書の対象者を見るに入門とは言ってもそこそこC#に触れてる人向けっぽいよ
2021/08/20(金) 07:31:12.77ID:RlHkksrv
そりゃC#入門じゃなくてWPF入門だからね
2021/08/21(土) 20:12:33.02ID:3/tZrvXL
中身を見て見たけどあらかじめ知識のある人向けの入門書だから初心者には難しい
データバインディングとか普通に意味が分かる人じゃないと

入門と言うより再入門に近いかな
2021/08/21(土) 20:13:15.10ID:3/tZrvXL
WPF再入門でC#についていくら知っててもなんの意味もない
2021/08/21(土) 20:23:29.65ID:K2WIpt9a
WPFについて知りたいのにC#入門からやられてもウザいだけだわな
2021/08/21(土) 20:36:08.76ID:xRCh69hJ
秘伝のタレなんか知らんがWPFのMVVMパターンを使ったレシピがネットに転がってなくて困る。
プログラマーならフワッとした概念と、あの3つの四角形が矢印で繋がってるのだけ見て「なるほど、そういう事ね」と作り始められるの?
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 は我々に教えてくれます
2021/08/21(土) 22:01:00.51ID:K2WIpt9a
>>675
こういうのじゃないの?
https://zenn.dev/apterygiformes/articles/79a7c9e7e15106
2021/08/21(土) 22:05:08.07ID:K2WIpt9a
>>675
https://emu2021makuake.github.io/MVVM-Samples-Index/
2021/08/21(土) 23:02:56.36ID:xRCh69hJ
>>678
これは参考にしたけど途中でモデルがない?ってなったやつだわ。
>>679
こっちは見た事ないからちょっと勉強させてもらいます。
2021/08/22(日) 04:37:08.19ID:L9R2hvxM
こういうの見て正義に成ったと勘違いして
糞コード量産タイプになんだろな

reactとかだと1/10以下のコード量だぞおい
2021/08/22(日) 08:24:41.03ID:Y053yx43
>>680

>例えば計算機レベルのサンプル
>
>厳密に3つの責務(View, ViewModel, Model)に分けた所でPDSの冗長さが目立つだけです。
>計算機程度の小規模であるならば、ViewModelをModelと統合するのは大抵の場合あるべき姿です。

https://slidesplayer.net/slide/11235164/
2021/08/22(日) 10:06:31.28ID:hhuNowTY
>>681
趣味で盆栽的にやってるもんだから特に発信する気もないし誰にも迷惑かけんから勘弁してよ。

>>682
数日前にこのスライド読んで、今はMVCやMVPから調べ直してるところだわ。
684デフォルトの名無しさん
垢版 |
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 は我々に教えてくれます
2021/08/22(日) 20:28:25.21ID:A59qHoiu
>>684
隔離スレから出てこないように
686デフォルトの名無しさん
垢版 |
2021/08/23(月) 04:16:34.70ID:7m4C54nZ
>>675
自分もそれは思ってたな
でも結局MVVMの基礎部分はこのインターフェースを使ってこの通りに実装するみたいな感じの決まり事だった
687デフォルトの名無しさん
垢版 |
2021/08/23(月) 04:16:35.32ID:7m4C54nZ
>>675
自分もそれは思ってたな
でも結局MVVMの基礎部分はこのインターフェースを使ってこの通りに実装するみたいな感じの決まり事だった
688デフォルトの名無しさん
垢版 |
2021/08/24(火) 15:32:26.18ID:WZMj7UxV
秘伝のへたれ
2021/08/24(火) 20:56:36.64ID:nOPW+Wx/
>>687
たった1週間程度だけど調べてサンプル写経して、WPFで用意されたデータバインドと各インターフェースを用いてオブジェクト指向で作ったのがMVVMになんのかなと、とりあえず理解した。
WPFでMVVMって秘伝のタレというより、作り手の匙加減で決まるお袋の味みたいなもんか。
2021/08/24(火) 21:49:09.60ID:3M+O79CU
MVVMは従来のWindowを幾つも開くタイプのアプリじゃなくて、1つのフレームにページを読み込むWebページのような動作をするアプリに最適なアーキテクチャで
MVVMのベースとなるprimsやMVVM Toolkitなどのライブラリはそっちで必要なDIやマルチキャストのイベントなどの機能も盛り込まれています
Windows template studioというMSによるVSの拡張機能でこれらを使った雛形でアプリを作れるけど、生成されたアプリを眺めていけば見えてくるんじゃないかな
2021/08/24(火) 21:58:06.93ID:NErefsYh
>MVVMは従来のWindowを幾つも開くタイプのアプリじゃなくて、1つのフレームにページを読み込むWebページのような動作をするアプリに最適なアーキテクチャで

逆に、MFCやFormsと比べてもその違いを意識することが少ないと思うが。
トップレベルの要素が<Window>かそうじゃないかの違いくらいしかないし。
692デフォルトの名無しさん
垢版 |
2021/08/24(火) 22:00:09.91ID:Fpbrw/6U
うん、あんまり関係ないね
むしろマルチページアプリをコードビハインドを最小にする純粋MVVMで作ろうとすると苦労する
2021/08/24(火) 22:01:39.27ID:XRxvSkOV
>>689
あなたが苦労して作ったのは大半が MVVM 部分じゃなくて
MVVM + α の α の部分
694デフォルトの名無しさん
垢版 |
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だな
2021/08/25(水) 07:50:46.77ID:H6wiA6E4
とにかく楽してMVVMしたい人向けならCaliburn.Micro一択
2021/08/25(水) 16:32:19.70ID:efp5szRf
>>696
caliburnはもう死んだだろ
2021/08/25(水) 16:40:02.69ID:jUUODgwG
>>694
自分それだわ
バインドバインドぉ!mvvm?こんなのでいいの?動くからおk
2021/08/25(水) 16:54:38.02ID:rhTS1cJX
ReactivePropertyでVM作るのパズル組んでるみたいで楽しい
700デフォルトの名無しさん
垢版 |
2021/08/25(水) 17:57:25.18ID:eN7VzoDp
viewのイベントを全部vmで拾えれば楽なのに
コードビハインドからvmのコマンドつかったら疎結合ガーとか面倒くさい
2021/08/25(水) 19:13:09.36ID:acmPLHd8
疎結合おじさん

2021/08/25(水) 19:17:59.52ID:acmPLHd8
bland用のframeworkを
mvvmと称して流布した??だれ?(・・;)
の罪は重いな
703デフォルトの名無しさん
垢版 |
2021/08/25(水) 19:48:43.46ID:J/1+/EUy
MVVMでイベントが使いたいときはMicrosoft.Xaml.Behaviorsを使おう
これ公式WPF拡張パッチみたいなもんだよね
704デフォルトの名無しさん
垢版 |
2021/08/25(水) 20:24:15.90ID:rgXi1H5Z
>>699
慣れたらReactivePropertyは手放せない罠
Prismはそれほどでもない
2021/08/25(水) 20:56:38.65ID:NVjF9CjI
ReactivePropertyはナシだな
個人作成のは業務で使えんわ
Prismもサードパーティ扱いだからギリNG
2021/08/25(水) 21:21:12.91ID:8WeB8rUa
ReactivePropertyやPrism相当のものをMicrosoftが用意しないのがダメすぎる。
ライブラリでもプラットフォームでも各自で勝手にやってくれがひどすぎる。
2021/08/25(水) 21:25:29.69ID:w4zcDk6l
っ Microsoft.Toolkit.Mvvm (MVVM Toolkit)
2021/08/25(水) 21:45:37.63ID:NVjF9CjI
これ来るの遅すぎた
名前空間にMicrosoftが付いてればどこの現場でも文句言われずに使えるのに
2021/08/25(水) 21:47:59.78ID:OX0ngrMb
>>705
多くのオープンソースライブラリが使えなくて大変な職場だねー
2021/08/25(水) 22:07:43.44ID:rgXi1H5Z
まあガチガチな所はそうでしょう
遅れてるとしか思わんが
2021/08/25(水) 22:12:40.48ID:hCSs42Ld
リスクがあるのは事実だからねえ
JSON.NETの作者に悪意があれば明日にも.NETは崩壊するんだよ
2021/08/25(水) 22:16:18.43ID:4eXJCyoq
>>711
気になるならSystem.Text.Jsonに移行すればいいんじゃないの?
2021/08/25(水) 22:21:02.62ID:w4zcDk6l
Json.NETはMITライセンスでソースが公開されているからどうとでもなるような
2021/08/25(水) 22:23:12.71ID:rhTS1cJX
ReactivePropertyもMITライセンスだね
2021/08/25(水) 22:43:32.24ID:H6wiA6E4
そんなおいらはLitJSON
ただし日本語の扱いにちょいと問題あって自分で直す必要あるんよ
2021/08/25(水) 23:13:06.54ID:9vnK5UYj
ReactivePropertyってコレクションと双方向バインドできないよね?
2021/08/26(木) 07:18:08.68ID:uYrXn854
できますん
2021/08/27(金) 11:29:58.61ID:RLcNjb1t
MVVMスレが過疎ってるんでこちらで質問させてください。(>>8 その通りです)

Microsoft.Toolkit.Mvvmは、Prismなんかの外部のMVVMフレームワークに対抗して、Microsoft内で作ったMVVMフレームワーク、という認識で合っていますか?
Prismの使い方を知らないんですが、これからはMicrosoft.Toolkit.Mvvmを勉強すればいいですか?
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 は終了)
標準ライブラリに入るものではなく、
これらの機能はあくまでオプション扱いという事かな
2021/08/27(金) 12:49:05.65ID:Y9IwEnSW
Prismは元々MSが作ったサンプルコード集で、MSがメンテを終了しコミュニティに移管された
まず確実にMicrosoft.Toolkit.Mvvmも同じ運命を辿る
2021/08/27(金) 13:04:11.97ID:7dOJ0Fee
>>720
Blendでしょ
723デフォルトの名無しさん
垢版 |
2021/08/27(金) 13:48:17.67ID:Vf27KQAk
>>722
(;´Д`)
2021/08/27(金) 15:03:57.58ID:RLcNjb1t
皆さん、ありがとうございます。

>>719
一応、MS公式と考えてもいいんですね。
他のと比較すると軽量らしいですね。

>>720
なるほど、勉強になります。
ちなみに、そのBlendのドラッグ&ドロップでUIを設計出来る機能は
Microsoft.Toolkit.Mvvmに引き継がれていそうですか?

>>721
へぇ、Prismも元々はMS製だったんですね。
それなら標準に入れてほしかったですね…。
同じ運命を辿るなら将来性はありますね。
勉強してみます。
725デフォルトの名無しさん
垢版 |
2021/08/27(金) 17:11:23.78ID:Vf27KQAk
>>724
VS 使わなくなって長いからわからんね
VS 使えれば、Blendもライセンス的に付属していたとい思うので、
試してくださいな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況