Windows Presentation Frameworkについて語るスレ。
前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part21
http://mevius.2ch.net/test/read.cgi/tech/1494288553/
関連スレ
Windows 10 UWPアプリ開発 Part 2
http://mevius.2ch.net/test/read.cgi/tech/1499658092/
コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
探検
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part22
■ このスレッドは過去ログ倉庫に格納されています
2017/12/13(水) 23:35:47.18ID:muTUiD7C
152デフォルトの名無しさん
2018/02/08(木) 07:06:45.70ID:OLINQejk 全く。マウンティングするための道具として最高におもしろいわ。
153デフォルトの名無しさん
2018/02/08(木) 07:18:53.58ID:as09ZcmN WPFはエヴァンジェリストとブロガーのオモチャ。
154デフォルトの名無しさん
2018/02/12(月) 11:41:38.41ID:fQpoXnex Windows10,VS2017でWPFでWindowChromeちゃんを使って、
Windowのスタイルをカスタマイズしようとしてるんだけど、
タイトルバー高さをSystemParameters.WindowCaptionHeightで取得すると
23が返ってくるんよ。で、これ実際にPhotoshopとかで測定すると、31ぐらいなんだけど、
これって、もしかして72dpiと96dpiの違いで、96/72=1.333...をこの23に掛けてるんかな?
例えば、電卓の右上の[X]ボタンはH:30,W:48なんだけど、
SystemParameters.WindowCaptionButtonWidth=36
SystemParameters.WindowCaptionButtonHeight=22
36 x 1.333...= 47.999999
22 x 1.333...= 29.333333
こういう資料って、公式のどっかに説明あるんでしょうか?
Windowのスタイルをカスタマイズしようとしてるんだけど、
タイトルバー高さをSystemParameters.WindowCaptionHeightで取得すると
23が返ってくるんよ。で、これ実際にPhotoshopとかで測定すると、31ぐらいなんだけど、
これって、もしかして72dpiと96dpiの違いで、96/72=1.333...をこの23に掛けてるんかな?
例えば、電卓の右上の[X]ボタンはH:30,W:48なんだけど、
SystemParameters.WindowCaptionButtonWidth=36
SystemParameters.WindowCaptionButtonHeight=22
36 x 1.333...= 47.999999
22 x 1.333...= 29.333333
こういう資料って、公式のどっかに説明あるんでしょうか?
155デフォルトの名無しさん
2018/02/12(月) 15:00:33.06ID:3jR6du7D >>151
わたしもきぼんぬ
わたしもきぼんぬ
156デフォルトの名無しさん
2018/02/12(月) 16:07:10.38ID:qK1FqdY3157デフォルトの名無しさん
2018/02/17(土) 11:24:01.09ID:hzHa4Ili158デフォルトの名無しさん
2018/03/13(火) 21:45:11.61ID:QSraSytV デザイナ画面で、現在作業しているプロジェクトファイルのパスが取得したいのですが、方法ありますでしょうか?
AssemblyやGetCurrentDirectoryを使ってもXDesProcのパスが返ってきて取得できません
AssemblyやGetCurrentDirectoryを使ってもXDesProcのパスが返ってきて取得できません
159デフォルトの名無しさん
2018/03/30(金) 20:45:57.81ID:S5bBhBUr TreeView を操作していると、StackOverflowException 例外で WPF アプリケーションが強制終了します
https://blogs.msdn.microsoft.com/japan_platform_sdkwindows_sdk_support_team_blog/2018/03/30/treeview-stackoverflowexception-wpf-47-crash/
https://blogs.msdn.microsoft.com/japan_platform_sdkwindows_sdk_support_team_blog/2018/03/30/treeview-stackoverflowexception-wpf-47-crash/
160デフォルトの名無しさん
2018/03/31(土) 13:25:10.48ID:VKIypx1l まだ枯れてないのか。
161デフォルトの名無しさん
2018/03/31(土) 13:39:52.89ID:UATmZRNx ComputeFirstItemInViewportIndexAndOffsetがFloorをつかっている件か
162デフォルトの名無しさん
2018/04/09(月) 17:25:00.82ID:90D6Yu/l datagridにおいて、以下のようなキーボード操作はXAMLだけで記述できますでしょうか?
・セルのtab移動を止める
・enterキーで次の行に移動するのを止める(矢印キーのみで移動)
・セルのtab移動を止める
・enterキーで次の行に移動するのを止める(矢印キーのみで移動)
163デフォルトの名無しさん
2018/04/09(月) 18:08:40.11ID:2gnvm26g DataGridは未完成糞品質のまま開発打ち切られて放置されたままのゴミだから使っちゃダメ
WinFormsのをホストして使うかサードのを買うかListViewでスクラッチするかWPFを捨てよう
WinFormsのをホストして使うかサードのを買うかListViewでスクラッチするかWPFを捨てよう
164デフォルトの名無しさん
2018/04/09(月) 18:25:22.70ID:lwmVdEfV >>163
行数少なければ十分使えるから、数百行表示させないようにプログラムすればいいだけですね
行数少なければ十分使えるから、数百行表示させないようにプログラムすればいいだけですね
165デフォルトの名無しさん
2018/04/15(日) 08:53:11.02ID:W7Pttv5/ 2ヶ月ちょいjs/javaやったけど
Eclipseはポトペタできへんから面倒くさすぎる
いやワイが知らんだけかもしらんけど
しかしIDE落ちまくるし同期とらんと時々嘘くさい表示しよるし何なんやこれ
隣の席のやつ(javaマン)はWPFやらされててワカランワカランいうてるし
ちゃんと履歴書読んどんのかここの会社逆やろw
Eclipseはポトペタできへんから面倒くさすぎる
いやワイが知らんだけかもしらんけど
しかしIDE落ちまくるし同期とらんと時々嘘くさい表示しよるし何なんやこれ
隣の席のやつ(javaマン)はWPFやらされててワカランワカランいうてるし
ちゃんと履歴書読んどんのかここの会社逆やろw
166デフォルトの名無しさん
2018/04/15(日) 09:48:51.28ID:GbdfDf+/ そう思うんなら便所に落書きするより上司に相談しろ
喜んで入れ替えてくれるだろ
その程度の交渉や調整もできないカスなら何やらせたってダメだし、会社もお前に何も期待しないよ
喜んで入れ替えてくれるだろ
その程度の交渉や調整もできないカスなら何やらせたってダメだし、会社もお前に何も期待しないよ
167デフォルトの名無しさん
2018/04/15(日) 09:51:56.54ID:koN3j5aX eclipse使ってる企業なんてまだあったんだ
168デフォルトの名無しさん
2018/04/15(日) 12:39:36.05ID:W7Pttv5/ 替わりたくないんやが
ちな会社は赤字垂れ流して潰れそうやでw
ちな会社は赤字垂れ流して潰れそうやでw
169デフォルトの名無しさん
2018/04/15(日) 13:26:36.78ID:eVQUY7wr 嘘みたいな話だけどeclipse大好きっこているんだぞ
一個も共感できないeclipse自慢話してくるよ
一個も共感できないeclipse自慢話してくるよ
170デフォルトの名無しさん
2018/04/15(日) 13:38:15.45ID:5EOPJhuZ eclipseはモダンemacs的な開発者のオープンプラットフォームとして、
今でいうVSCodeに近いポジションを占めてたから、そういう面ではわりと根強いファンはいた
今ではJavaはIntelliJに取られemacs的な用途はVSCodeに取られ完全にオワコン
今でいうVSCodeに近いポジションを占めてたから、そういう面ではわりと根強いファンはいた
今ではJavaはIntelliJに取られemacs的な用途はVSCodeに取られ完全にオワコン
171デフォルトの名無しさん
2018/04/15(日) 18:31:48.26ID:UK26r34r >>169
あるある
あるある
172デフォルトの名無しさん
2018/04/24(火) 15:05:21.91ID:bXlVc9iu GridSplitter を挟んだUIを作成中です
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
...
上記のように Columnの幅を1:3などの割合のまま、
Properties.Settings のメンバに Bind するにはどのようにしたらよいですか?
下記のように書いてみましたが、いくつか問題にぶち当たりました
<ColumnDefinition Width="{Binding Source={x:Static p:Settings.Default}, Path=ColumnSplitterSize, Mode=TwoWay}"/>
・Column の幅を変更して、Settings.Default.Save() しても Settings に反映されない(Settings の他の値の変更は確認済み)
・Settings の要素の型に GridLength を指定した場合、3* などを指定できない(数値かアスタリスクのみ)
・1:3 などの割合を指定したまま、サイズを保存、復元する方法があるのか不明
グリッド幅の保存は基本だと思うので簡易な方法があると思うのですが……
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
...
上記のように Columnの幅を1:3などの割合のまま、
Properties.Settings のメンバに Bind するにはどのようにしたらよいですか?
下記のように書いてみましたが、いくつか問題にぶち当たりました
<ColumnDefinition Width="{Binding Source={x:Static p:Settings.Default}, Path=ColumnSplitterSize, Mode=TwoWay}"/>
・Column の幅を変更して、Settings.Default.Save() しても Settings に反映されない(Settings の他の値の変更は確認済み)
・Settings の要素の型に GridLength を指定した場合、3* などを指定できない(数値かアスタリスクのみ)
・1:3 などの割合を指定したまま、サイズを保存、復元する方法があるのか不明
グリッド幅の保存は基本だと思うので簡易な方法があると思うのですが……
173デフォルトの名無しさん
2018/04/27(金) 20:15:09.50ID:TaLNc1sW GridLength 構造体
174デフォルトの名無しさん
2018/04/28(土) 10:07:15.37ID:j2qq32KP175デフォルトの名無しさん
2018/04/28(土) 14:55:45.90ID:ljffXje0 GridLength GridUnitType.Starでぐぐる
176デフォルトの名無しさん
2018/05/05(土) 08:55:29.93ID:GHjIUW8T177デフォルトの名無しさん
2018/05/05(土) 09:01:31.10ID:GHjIUW8T >>172
1:3なのに、なんでAUTOが入ってるの?
1:3なのに、なんでAUTOが入ってるの?
178デフォルトの名無しさん
2018/05/05(土) 09:04:56.56ID:nVs07IkD >>177
GridSplitter
GridSplitter
179172
2018/05/05(土) 11:44:18.82ID:+6BF6Qlx 試行錯誤しつつ、あれから冷却期間を入れて試したところ 2番目の問題は設定できるようになりました
>>175
> GridLength GridUnitType.Starでぐぐる
「・Settings の要素の型に GridLength を指定した場合、3* などを指定できない」
ことへのコンストラクタを使ってコードを書くべきというアドバイスかと思います
本当に申し訳無いのですが当方の思い込みが含まれていました
実際に試した値は「1*」で、書き込むと「*」になるため、誤認していました
正しく書き直すと、
プロジェクトの「プロパティ」→「設定」→要素の「型」で
PresentationFramework の System.Windows.GridLength を指定した
ケースでの「値」列の内容について、XAMLで指定できる文字列「1*」を指定できず、
書き込むと「*」になるということです
Settings.Designer.cs での DefaultSettingValueAttribute の引数の文字列です
試しに「3*」を入れたところ、3:3(=1:1)に指定できましたので Settings で初期化はうまくできていましたので、
2番目の問題は解決しました
(「1*」は値として同じ意味の文字列「*」に自動で変換されるみたいです)
XAMLは下記のとおり、
<ColumnDefinition Width="{Binding Source={x:Static p:Settings.Default}, Path=ColumnSplitterLength}"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="3*"/>
ただ、Settings で指定は可能なのですが、Grid.Width プロパティは実際のサイズに連動しておらず、
Mode=TwoWay を追加しても、肝心の1番目、2番目が解決できませんでした
実際のサイズに連動するよう少しずつ調査する予定です
(ActualWidth:double を読み取って、GridLengthのコンストラクタを使って Settingsに保存する?)
>>178
はい、GridSplitter を挟んでGridの列を 1:3 にするXAMLの書き方になってます
>>175
> GridLength GridUnitType.Starでぐぐる
「・Settings の要素の型に GridLength を指定した場合、3* などを指定できない」
ことへのコンストラクタを使ってコードを書くべきというアドバイスかと思います
本当に申し訳無いのですが当方の思い込みが含まれていました
実際に試した値は「1*」で、書き込むと「*」になるため、誤認していました
正しく書き直すと、
プロジェクトの「プロパティ」→「設定」→要素の「型」で
PresentationFramework の System.Windows.GridLength を指定した
ケースでの「値」列の内容について、XAMLで指定できる文字列「1*」を指定できず、
書き込むと「*」になるということです
Settings.Designer.cs での DefaultSettingValueAttribute の引数の文字列です
試しに「3*」を入れたところ、3:3(=1:1)に指定できましたので Settings で初期化はうまくできていましたので、
2番目の問題は解決しました
(「1*」は値として同じ意味の文字列「*」に自動で変換されるみたいです)
XAMLは下記のとおり、
<ColumnDefinition Width="{Binding Source={x:Static p:Settings.Default}, Path=ColumnSplitterLength}"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="3*"/>
ただ、Settings で指定は可能なのですが、Grid.Width プロパティは実際のサイズに連動しておらず、
Mode=TwoWay を追加しても、肝心の1番目、2番目が解決できませんでした
実際のサイズに連動するよう少しずつ調査する予定です
(ActualWidth:double を読み取って、GridLengthのコンストラクタを使って Settingsに保存する?)
>>178
はい、GridSplitter を挟んでGridの列を 1:3 にするXAMLの書き方になってます
180172
2018/05/05(土) 11:48:02.94ID:+6BF6Qlx あああ、typo です
「ただ、Settings で指定は可能なのですが、Grid.Width プロパティは実際のサイズに連動しておらず〜」
ColumnDefinition.Width プロパティの間違いです
「ただ、Settings で指定は可能なのですが、Grid.Width プロパティは実際のサイズに連動しておらず〜」
ColumnDefinition.Width プロパティの間違いです
181175
2018/05/05(土) 17:52:13.05ID:Lbg9iiKd 175は忘れてください
Value+GridUnitType <--> 文字列 相互変換できてました
フォルダー <UserName>\AppData\Local\<アプリケーション名>
の下のほうの user.configに書き込まれているはず
Value+GridUnitType <--> 文字列 相互変換できてました
フォルダー <UserName>\AppData\Local\<アプリケーション名>
の下のほうの user.configに書き込まれているはず
182デフォルトの名無しさん
2018/05/05(土) 23:52:00.74ID:enzOGVxg splitterの幅をバリアブルにしている理由はなんなの?
183デフォルトの名無しさん
2018/05/05(土) 23:53:18.47ID:enzOGVxg ま、いいか理由はあるんでしょうから。
184デフォルトの名無しさん
2018/05/06(日) 15:47:40.64ID:Z7mEypo0 質問させてください。
以下の画像のようにウィンドウの表示がSizeToContentの値によっておかしくなる場合があるのですが、
対策方法など分かる方がいらっしゃれば教えていただけないでしょうか。
https://dotup.org/uploda/dotup.org1526890.png
VSのバージョンは15.6.7、ターゲットフレームワークは4.7.1、
実行環境は Windows 10 で「拡大縮小とレイアウト」の設定は100%です。
XAMLは以下の通りです。どうぞよろしくお願いいたします。
<Window
x:Class="SizeToContentIssue.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Width="213" Height="55"
SizeToContent="Width"><!--←Width を Manual に書き換えると正常に表示される-->
<Grid>
<TextBlock>
<Run Text="{Binding Width, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"/>
x
<Run Text="{Binding Height, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"/>
縦棒が入ったり入らなかったり→
</TextBlock>
</Grid>
</Window>
以下の画像のようにウィンドウの表示がSizeToContentの値によっておかしくなる場合があるのですが、
対策方法など分かる方がいらっしゃれば教えていただけないでしょうか。
https://dotup.org/uploda/dotup.org1526890.png
VSのバージョンは15.6.7、ターゲットフレームワークは4.7.1、
実行環境は Windows 10 で「拡大縮小とレイアウト」の設定は100%です。
XAMLは以下の通りです。どうぞよろしくお願いいたします。
<Window
x:Class="SizeToContentIssue.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Width="213" Height="55"
SizeToContent="Width"><!--←Width を Manual に書き換えると正常に表示される-->
<Grid>
<TextBlock>
<Run Text="{Binding Width, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"/>
x
<Run Text="{Binding Height, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"/>
縦棒が入ったり入らなかったり→
</TextBlock>
</Grid>
</Window>
185デフォルトの名無しさん
2018/05/06(日) 16:36:46.08ID:JnKw6YEv >>184
SizeToContent paints an unwanted border
https://stackoverflow.com/questions/16356507/sizetocontent-paints-an-unwanted-border
<Window UseLayoutRounding="True" />
でとりあえずその線は消えた
SizeToContent paints an unwanted border
https://stackoverflow.com/questions/16356507/sizetocontent-paints-an-unwanted-border
<Window UseLayoutRounding="True" />
でとりあえずその線は消えた
186デフォルトの名無しさん
2018/05/06(日) 17:21:51.43ID:Z7mEypo0 >>185
レスありがとうございます!私の方でも線が消えることを確認しました。
Webで検索しても答えを見つけられなかったので質問させていただいたのですが、
恥ずかしいことに紹介していただいたページは見落としてしまっていたようです。
何はともあれ、お答えいただきどうもありがとうございました。
レスありがとうございます!私の方でも線が消えることを確認しました。
Webで検索しても答えを見つけられなかったので質問させていただいたのですが、
恥ずかしいことに紹介していただいたページは見落としてしまっていたようです。
何はともあれ、お答えいただきどうもありがとうございました。
187デフォルトの名無しさん
2018/05/06(日) 18:14:56.23ID:Z7mEypo0 >>184-186で自分の検索の不十分さを反省して以前から抱えていた別の問題も改めて検索してみたのですが、
やはり私の力ではどうしようもありませんでした。
立て続けに申し訳ないのですが、こちらについてもお力を貸していただけないでしょうか。
以下のような Binding のマークアップ拡張を作成したところ、
Mode が TwoWay のときは期待通りに動作するものの、
Mode が OneWay だと正しくバインディングできずに困っています。
class MyBindingExtension : MarkupExtension
{
public PropertyPath Path { get; set; }
public BindingMode Mode { get; set; }
public override object ProvideValue(IServiceProvider serviceProvider)
{
var service= (IProvideValueTarget)serviceProvider.GetService(typeof(IProvideValueTarget));
var target = (DependencyObject)service.TargetObject;
var dp = (DependencyProperty)service.TargetProperty;
BindingOperations.SetBinding(target, dp, new Binding { Path = Path, Mode = Mode });
return target.GetValue(dp);
}
}
(続く)
やはり私の力ではどうしようもありませんでした。
立て続けに申し訳ないのですが、こちらについてもお力を貸していただけないでしょうか。
以下のような Binding のマークアップ拡張を作成したところ、
Mode が TwoWay のときは期待通りに動作するものの、
Mode が OneWay だと正しくバインディングできずに困っています。
class MyBindingExtension : MarkupExtension
{
public PropertyPath Path { get; set; }
public BindingMode Mode { get; set; }
public override object ProvideValue(IServiceProvider serviceProvider)
{
var service= (IProvideValueTarget)serviceProvider.GetService(typeof(IProvideValueTarget));
var target = (DependencyObject)service.TargetObject;
var dp = (DependencyProperty)service.TargetProperty;
BindingOperations.SetBinding(target, dp, new Binding { Path = Path, Mode = Mode });
return target.GetValue(dp);
}
}
(続く)
188デフォルトの名無しさん
2018/05/06(日) 18:15:23.63ID:Z7mEypo0 (続き)
原因はほとんど分かっていて、
・Mode が OneWay のとき、ターゲット側が書き換えられるとバインディングがクリアされてしまう
・ProvideValue が呼び出されたあと、その戻り値でターゲット側が書き換えられる
ということだと思うのですが、この問題を解決する良い方法が見つかりません。
苦肉の策として、SetBinding の行を次のように書き換えればとりあえず動作することが確認できています。
// BindingOperations.SetBinding(target, dp, new Binding { Path = Path, Mode = Mode });
Application.Current.Dispatcher.BeginInvoke((Action)(()
=> BindingOperations.SetBinding(target, dp, new Binding { Path = Path, Mode = Mode })));
ただ、バインディングのタイミングがずれてしまうと、
例えば SetBinding してから ClearBinding したつもりが順番が逆転してしまうなど
思わぬバグの原因となりかねないためできれば避けたいと考えています。どうぞよろしくお願いいたします。
原因はほとんど分かっていて、
・Mode が OneWay のとき、ターゲット側が書き換えられるとバインディングがクリアされてしまう
・ProvideValue が呼び出されたあと、その戻り値でターゲット側が書き換えられる
ということだと思うのですが、この問題を解決する良い方法が見つかりません。
苦肉の策として、SetBinding の行を次のように書き換えればとりあえず動作することが確認できています。
// BindingOperations.SetBinding(target, dp, new Binding { Path = Path, Mode = Mode });
Application.Current.Dispatcher.BeginInvoke((Action)(()
=> BindingOperations.SetBinding(target, dp, new Binding { Path = Path, Mode = Mode })));
ただ、バインディングのタイミングがずれてしまうと、
例えば SetBinding してから ClearBinding したつもりが順番が逆転してしまうなど
思わぬバグの原因となりかねないためできれば避けたいと考えています。どうぞよろしくお願いいたします。
189デフォルトの名無しさん
2018/05/08(火) 00:48:26.70ID:wFWfdcvC190デフォルトの名無しさん
2018/05/08(火) 01:18:46.99ID:8/Cw9iIa YATTA!
191デフォルトの名無しさん
2018/05/08(火) 01:50:46.69ID:vwdvRU81 やるやん
192デフォルトの名無しさん
2018/05/08(火) 01:56:55.14ID:8PlXTSnU 日本語でOK
193デフォルトの名無しさん
2018/05/08(火) 01:58:48.97ID:3Tr8AiF6 Windowsでしか動かない.NET Coreアプリw
一体何の意味があるのか
一体何の意味があるのか
194デフォルトの名無しさん
2018/05/08(火) 02:05:19.36ID:I+Jt0Kav せっかく.NET Coreが盛り上がってきてたところだったのに、水を差すことになりそうで心配だな
Linuxサーバーで運用してる人達からしたら、結局梯子外してWinに誘導するいつものMSがまた正体を現したかと疑念を持たれるよこれ
Linuxサーバーで運用してる人達からしたら、結局梯子外してWinに誘導するいつものMSがまた正体を現したかと疑念を持たれるよこれ
195デフォルトの名無しさん
2018/05/08(火) 02:37:14.81ID:wFWfdcvC >>193
Windowsにインストールされた.NET Frameworkに縛られなくなる
Windowsにインストールされた.NET Frameworkに縛られなくなる
196デフォルトの名無しさん
2018/05/08(火) 02:39:25.29ID:u/n9hYSm197デフォルトの名無しさん
2018/05/08(火) 17:52:26.19ID:xyA4XcJo 実質何も発表なかったこと一緒ってこと?
.NETは完全にWinプラトフォーム環境限定ということでオワコン
.NETは完全にWinプラトフォーム環境限定ということでオワコン
198デフォルトの名無しさん
2018/05/08(火) 18:10:18.00ID:xyA4XcJo サーバーサイドはクロスだけど微妙にしか人気ねぇし、Xamarin捨てる勇気なかったのか
199デフォルトの名無しさん
2018/05/08(火) 18:17:27.20ID:kbsHCLUb >>197
どこをどう読んだらそうなるんだよwww
どこをどう読んだらそうなるんだよwww
200デフォルトの名無しさん
2018/05/10(木) 14:57:37.18ID:1UHxaKzf .NET Core 3ハWindowsデスクトップアプリをサポートする
https://www.infoq.com/jp/news/2018/05/net-core3-announced
開発者が、既存の.NET Framework for Windowsではなく.NET Coreを使いたい理由はなにか?
それにはいくつかの理由がある。まず、.NET Frameworkとは違い、.NET Coreアプリは完全に独立しており、異なるバージョンの.NET Coreを使用することが可能だ。
.NET Core 3の新しいオプションでは、.NET Coreランタイムと組み合わせて実行できる単一の実行ファイルを生成することが可能だ。
この発表に反応した開発者は、WPFとWinFormsをGitHub上でオープンソース化する可能性について尋ねた。
興味深いことにこの要求は、Lander氏に否定されてはない - Microsoftは将来的にオープンにする可能性がある。
コミュニティの主な望みは、これらをmacOSやLinuxに移植するよりも、Windows用のGUIツールキットの拡張とモダン化である。
https://www.infoq.com/jp/news/2018/05/net-core3-announced
開発者が、既存の.NET Framework for Windowsではなく.NET Coreを使いたい理由はなにか?
それにはいくつかの理由がある。まず、.NET Frameworkとは違い、.NET Coreアプリは完全に独立しており、異なるバージョンの.NET Coreを使用することが可能だ。
.NET Core 3の新しいオプションでは、.NET Coreランタイムと組み合わせて実行できる単一の実行ファイルを生成することが可能だ。
この発表に反応した開発者は、WPFとWinFormsをGitHub上でオープンソース化する可能性について尋ねた。
興味深いことにこの要求は、Lander氏に否定されてはない - Microsoftは将来的にオープンにする可能性がある。
コミュニティの主な望みは、これらをmacOSやLinuxに移植するよりも、Windows用のGUIツールキットの拡張とモダン化である。
201デフォルトの名無しさん
2018/05/13(日) 10:02:27.03ID:JffwGpoG .NET Coreが全然注目されないからいろいろやりだしたんだな
いままでの.NET Coreって誰から見たら魅力があるのかわからない微妙な物だから
積極的に使いたいと言う人は少なかった
いままでの.NET Coreって誰から見たら魅力があるのかわからない微妙な物だから
積極的に使いたいと言う人は少なかった
202デフォルトの名無しさん
2018/05/13(日) 10:28:33.00ID:i7PAGBqe 日本は全体的に低レベルなエンジニアが多い
なのでUIとその他のロジックがガッツリ結合して分離できない
なのでそう簡単には.Net Coreに移植できなかった
そうする必要のないあらゆるものまでがdnfやwindowsインフラに依存してしまっていたんだ
そりゃ移植して使えないものに魅力は感じないだろう
海外では設計が綺麗なので細かいコンポーネント事に移植の可能性を検討することができた
移植可能なものはすぐに移植する動きが広まってあっという間にCore対応が進んだ
彼らは高パフォーマンス、セルフコンテインドデプロイ、マルチプラットフォーム対応といった様々な収穫を殆どタダで得ることができた
.NET Coreはとても魅力的でエキサイティングなアップデートだった
なのでUIとその他のロジックがガッツリ結合して分離できない
なのでそう簡単には.Net Coreに移植できなかった
そうする必要のないあらゆるものまでがdnfやwindowsインフラに依存してしまっていたんだ
そりゃ移植して使えないものに魅力は感じないだろう
海外では設計が綺麗なので細かいコンポーネント事に移植の可能性を検討することができた
移植可能なものはすぐに移植する動きが広まってあっという間にCore対応が進んだ
彼らは高パフォーマンス、セルフコンテインドデプロイ、マルチプラットフォーム対応といった様々な収穫を殆どタダで得ることができた
.NET Coreはとても魅力的でエキサイティングなアップデートだった
203デフォルトの名無しさん
2018/05/13(日) 10:43:11.44ID:hwu0eulf .NET Coreは既存の環境から乗り換えたいと思わせるだけの魅力がない
windowsで,.net frameworkから乗り換える人は少ない
linuxで他の言語から乗り換える人も少ない
利点をはっきり打ち出せてない
ただ作りました使ってくださいじゃ使わない
windowsで,.net frameworkから乗り換える人は少ない
linuxで他の言語から乗り換える人も少ない
利点をはっきり打ち出せてない
ただ作りました使ってくださいじゃ使わない
204デフォルトの名無しさん
2018/05/13(日) 10:48:35.00ID:nDD5wzJU コンパイルして起動時間が一桁早くなるってのは十分な魅力だと思うが
205デフォルトの名無しさん
2018/05/13(日) 10:49:14.92ID:i7PAGBqe206デフォルトの名無しさん
2018/05/13(日) 10:52:56.28ID:VCvSTJHc >>204
起動は確実にクソ遅くなるよ
今までは共有ライブラリとしてシステムにインストされいて自然にメモリにキャッシュされてた大量のDLL達を、
ローカルにバンドルしていちいちディスクからロードするんだから
起動は確実にクソ遅くなるよ
今までは共有ライブラリとしてシステムにインストされいて自然にメモリにキャッシュされてた大量のDLL達を、
ローカルにバンドルしていちいちディスクからロードするんだから
207デフォルトの名無しさん
2018/05/13(日) 11:03:04.42ID:nDD5wzJU208デフォルトの名無しさん
2018/05/13(日) 11:06:50.54ID:VCvSTJHc209デフォルトの名無しさん
2018/05/13(日) 11:15:03.29ID:nDD5wzJU210デフォルトの名無しさん
2018/05/13(日) 11:22:25.15ID:i7PAGBqe 体感的にわからない程度に起動が遅くなるかもしれない
デメリットってそれだけ?
デメリットってそれだけ?
211デフォルトの名無しさん
2018/05/13(日) 11:23:47.84ID:VCvSTJHc >>209
https://blogs.msdn.microsoft.com/dotnet/2018/05/07/net-core-3-and-support-for-windows-desktop-applications/
あくまで.NET自体を簡単にバンドルできるのが売りだ
.NET NativeはあくまでWinRT版の.NETの機能で、今出てる.NET Coreとは関係ない
ちなみに、.NET CoreではNuGetパッケージを結構細かく分割するのが普通だから、
WinFormsやWPFがそれぞれ丸ごと一つのNuGetパッケージになるようなことはたぶんない
必要なNuGetパッケージをある程度小分けで取捨選択できるようにはなるから、
今のSystem.Windows.Forms.dllよりは結果的にロードするサイズが小さくなる可能性はあるよ
https://blogs.msdn.microsoft.com/dotnet/2018/05/07/net-core-3-and-support-for-windows-desktop-applications/
あくまで.NET自体を簡単にバンドルできるのが売りだ
.NET NativeはあくまでWinRT版の.NETの機能で、今出てる.NET Coreとは関係ない
ちなみに、.NET CoreではNuGetパッケージを結構細かく分割するのが普通だから、
WinFormsやWPFがそれぞれ丸ごと一つのNuGetパッケージになるようなことはたぶんない
必要なNuGetパッケージをある程度小分けで取捨選択できるようにはなるから、
今のSystem.Windows.Forms.dllよりは結果的にロードするサイズが小さくなる可能性はあるよ
212デフォルトの名無しさん
2018/05/13(日) 11:34:23.20ID:nDD5wzJU >>211
将来はともかく、最初はこの程度なんかね
将来はともかく、最初はこの程度なんかね
213デフォルトの名無しさん
2018/05/13(日) 11:39:17.10ID:QSiC/kkG よく分かんないけど
動作環境の.NETバージョンに影響されずに済むって話じゃないの
動作環境の.NETバージョンに影響されずに済むって話じゃないの
214デフォルトの名無しさん
2018/05/13(日) 11:44:29.93ID:VCvSTJHc >>210
全部バンドルしちまえってのは今時の流行りで基本的には良いものだけど、あえて挙げるならこんなとこかな
・配布サイズがクソ大きくなる
・DLLのディスクキャッシュが共有されないのでメモリを食うかも
・.NETに重大な脆弱性や不具合が見つかってもユーザーの裁量で.NETを更新できない
・NuGet必須なのでインターネット環境がないとビルドすらできない
・NuGet必須なのでキャッシュなしの状態だとビルドがクソ遅い
全部バンドルしちまえってのは今時の流行りで基本的には良いものだけど、あえて挙げるならこんなとこかな
・配布サイズがクソ大きくなる
・DLLのディスクキャッシュが共有されないのでメモリを食うかも
・.NETに重大な脆弱性や不具合が見つかってもユーザーの裁量で.NETを更新できない
・NuGet必須なのでインターネット環境がないとビルドすらできない
・NuGet必須なのでキャッシュなしの状態だとビルドがクソ遅い
215デフォルトの名無しさん
2018/05/13(日) 11:46:21.62ID:VCvSTJHc ・.NET Coreは(NuGetのせいでもあるが)デバッグが遅い
も追加で
も追加で
216デフォルトの名無しさん
2018/05/13(日) 11:56:03.56ID:gN1ETgni >>201
どうやら違う世界に生きてるようだ
どうやら違う世界に生きてるようだ
217デフォルトの名無しさん
2018/05/13(日) 12:00:18.98ID:olmzHM0E >>214
こいつC#使ったことないやろ…
こいつC#使ったことないやろ…
218デフォルトの名無しさん
2018/05/13(日) 12:05:59.25ID:vAxwPzXD219デフォルトの名無しさん
2018/05/13(日) 12:06:45.67ID:VCvSTJHc220デフォルトの名無しさん
2018/05/13(日) 12:07:59.36ID:FNCE059f corefxやcoreclrも知らないからユーザーの裁量でランタイムを更新できないって発想になるんか?
221デフォルトの名無しさん
2018/05/13(日) 12:08:12.97ID:hwu0eulf222デフォルトの名無しさん
2018/05/13(日) 12:09:07.71ID:FNCE059f >>219
配布サイズが大きいのは、RuntimeStoreのない時代かもしくはランタイム自体をアプリに同梱する場合ね
配布サイズが大きいのは、RuntimeStoreのない時代かもしくはランタイム自体をアプリに同梱する場合ね
223デフォルトの名無しさん
2018/05/13(日) 12:09:52.99ID:dLXOPcbs >>221
ああ奴隷の世界ねごめんよ
ああ奴隷の世界ねごめんよ
224デフォルトの名無しさん
2018/05/13(日) 12:11:36.53ID:hwu0eulf225214
2018/05/13(日) 12:11:45.00ID:VCvSTJHc デスクトップでCore使うメリットはSCDで、当然それは大前提だと思ってたんだけど
システムにCore入れるならそれこそ何の意味もなくね?
システムにCore入れるならそれこそ何の意味もなくね?
226デフォルトの名無しさん
2018/05/13(日) 12:14:31.02ID:hwu0eulf サーバサイドでも使われてない
デスクトップでも使われてない
業務でも使われてない
趣味で使うのがちょうどいい
C#大大大大好きだけど.Net CoreやAsp.net CoreやUWPは早く消えてほしい
デスクトップでも使われてない
業務でも使われてない
趣味で使うのがちょうどいい
C#大大大大好きだけど.Net CoreやAsp.net CoreやUWPは早く消えてほしい
227デフォルトの名無しさん
2018/05/13(日) 12:17:23.58ID:dLXOPcbs >>224
Stackoverflowのreportでも見て現実を直視しろよwww
Stackoverflowのreportでも見て現実を直視しろよwww
228デフォルトの名無しさん
2018/05/13(日) 12:19:44.68ID:dLXOPcbs229デフォルトの名無しさん
2018/05/13(日) 12:21:24.73ID:LtcW78m3230デフォルトの名無しさん
2018/05/13(日) 12:26:39.99ID:VCvSTJHc >>228
だからそれFull .NETのサイドバイサイドと比べて何のメリットがあるの?
だからそれFull .NETのサイドバイサイドと比べて何のメリットがあるの?
231デフォルトの名無しさん
2018/05/13(日) 12:29:17.88ID:LtcW78m3232デフォルトの名無しさん
2018/05/13(日) 12:31:43.28ID:ENNgICED >>230
たとえば.NET4.5.2と4.6.1はSideBySideでインストールできないっしょ?
たとえば.NET4.5.2と4.6.1はSideBySideでインストールできないっしょ?
233デフォルトの名無しさん
2018/05/13(日) 12:37:57.79ID:VCvSTJHc >>232
結局システムに.NETを入れさせなきゃいけないのは同じだよね
.NET Coreなんか頻繁にアップデートされてるから事実上はほとんど特定のアプリと一対一になるだろうし、
アプリ側で.NETのバージョンを上げたくなったらまたそのアプリのためだけにまた特定バージョンのCoreをインストールさせるのか?
そのとき前のバージョンを安全に削除できるかどうか誰がわかる?
開発環境でのテストくらいにしか使えないよこんなの
結局システムに.NETを入れさせなきゃいけないのは同じだよね
.NET Coreなんか頻繁にアップデートされてるから事実上はほとんど特定のアプリと一対一になるだろうし、
アプリ側で.NETのバージョンを上げたくなったらまたそのアプリのためだけにまた特定バージョンのCoreをインストールさせるのか?
そのとき前のバージョンを安全に削除できるかどうか誰がわかる?
開発環境でのテストくらいにしか使えないよこんなの
234デフォルトの名無しさん
2018/05/13(日) 13:04:22.39ID:kjz8UZqt まだ実用化されていない技術のブログ記事上げてドヤってる
それは既存の.Net Coreの利点じゃないだろ?
それは既存の.Net Coreの利点じゃないだろ?
235デフォルトの名無しさん
2018/05/13(日) 13:05:48.16ID:kjz8UZqt コアのアーキテクトの戦略がフラフラしてる
魅力のないロードマップがそれを物語ってる
魅力のないロードマップがそれを物語ってる
236デフォルトの名無しさん
2018/05/13(日) 22:00:07.98ID:ENNgICED >>233
前のバージョンを削除www
前のバージョンを削除www
237デフォルトの名無しさん
2018/05/13(日) 22:01:26.62ID:RTDdDgUS >>230
こいつSideBySideなんて知らんのやろ
こいつSideBySideなんて知らんのやろ
238デフォルトの名無しさん
2018/05/13(日) 22:07:34.73ID:yk+U0xvA >>236-237
.NET CoreのSideBySideを利用したデスクトップアプリの正しいデプロイサイクルを具体的に説明してくれ
.NET CoreのSideBySideを利用したデスクトップアプリの正しいデプロイサイクルを具体的に説明してくれ
239デフォルトの名無しさん
2018/05/13(日) 22:24:25.44ID:yk+U0xvA ちなみに.NET Coreって月一くらいのペースでバージョン上がってるんだが、それ全部SideBySideするってことだぞ?
アプリとは別にシステムの.NETのバージョン管理の余計な手間が増える以外になんかSCDと比較してメリットある?
アプリとは別にシステムの.NETのバージョン管理の余計な手間が増える以外になんかSCDと比較してメリットある?
240デフォルトの名無しさん
2018/05/13(日) 22:27:27.84ID:F2hiJGIV >>239
全部とかただのキチガイか
全部とかただのキチガイか
241デフォルトの名無しさん
2018/05/13(日) 22:30:48.25ID:F2hiJGIV >>214
NuGetって言葉覚えたてかな?嘘ばっかwww
NuGetって言葉覚えたてかな?嘘ばっかwww
242デフォルトの名無しさん
2018/05/13(日) 22:55:13.58ID:yk+U0xvA >>240
結局アプリごとに必要とするバージョンが違うケースが多いはずだからSCDでいいだろと言ってるんだけど、これだけ言っても伝わらない?
結局アプリごとに必要とするバージョンが違うケースが多いはずだからSCDでいいだろと言ってるんだけど、これだけ言っても伝わらない?
243デフォルトの名無しさん
2018/05/13(日) 22:57:05.68ID:F2hiJGIV >>242
RuntimeStore
RuntimeStore
244デフォルトの名無しさん
2018/05/13(日) 22:59:58.25ID:9k6A64Mq245デフォルトの名無しさん
2018/05/13(日) 23:21:18.21ID:yk+U0xvA >>244
そりゃ.NET CoreかつFDDのアプリ自体が(WinFormsやWPFがサポートされてもなお)稀だろうし、
フレームワークの方も月一で更新されてるとなれば共有できるケースは現実にはほとんど無いでしょ
そりゃ.NET CoreかつFDDのアプリ自体が(WinFormsやWPFがサポートされてもなお)稀だろうし、
フレームワークの方も月一で更新されてるとなれば共有できるケースは現実にはほとんど無いでしょ
246245
2018/05/13(日) 23:23:46.38ID:yk+U0xvA もちろんデスクトップアプリに限った話な
サーバーだと一括で複数のアプリをデプロイしたりすることは普通にあるからもちろん意味はあるよ
サーバーだと一括で複数のアプリをデプロイしたりすることは普通にあるからもちろん意味はあるよ
247デフォルトの名無しさん
2018/05/13(日) 23:46:18.97ID:vj3G+EXI WPFってグラボの違いでどれくらい速度変わってくるものなの?
ハイスペックグラボ使う意味ある?
ハイスペックグラボ使う意味ある?
248デフォルトの名無しさん
2018/05/13(日) 23:55:08.61ID:F2hiJGIV >>245
妄想おつ
妄想おつ
249デフォルトの名無しさん
2018/05/14(月) 02:28:15.65ID:tinSsmGQ 大変そうだな。予防線はりまくりマウント取ろうと形だけは前傾で
250デフォルトの名無しさん
2018/05/14(月) 19:24:27.32ID:wio42IgJ デスクトップ対応はありがたい
業務系でウェブアプリはめんどくさいだけなんだよね
業務系でウェブアプリはめんどくさいだけなんだよね
251デフォルトの名無しさん
2018/05/16(水) 17:32:30.01ID:39uyimjr >>211
https://github.com/dotnet/corert
corertとかあるけどこれちゃうの?
ちょくちょく試すけど相変わらずx86がうまく生成されなかったりIssue多すぎて
比較的アクティブとはいえ使い物になるのかよくわからん状況だけど
VCランタイムすら不要の単体PEファイルになってdnSpyとかじゃなんも見れなくなるし
こういうのがプロジェクト単位でざっくりと組み込み検討できそうだから
デスクトップ向けの.NET Coreも結構期待してたりするんだけどね
WinformsとWPFのポーティングは朗報だけどどうせ改良する気はないんだろうし
クロスプラットーム化は無理でもせめてReference Source下じゃなくOSSにまでして提供してほしいもんだぬ
https://github.com/dotnet/corert
corertとかあるけどこれちゃうの?
ちょくちょく試すけど相変わらずx86がうまく生成されなかったりIssue多すぎて
比較的アクティブとはいえ使い物になるのかよくわからん状況だけど
VCランタイムすら不要の単体PEファイルになってdnSpyとかじゃなんも見れなくなるし
こういうのがプロジェクト単位でざっくりと組み込み検討できそうだから
デスクトップ向けの.NET Coreも結構期待してたりするんだけどね
WinformsとWPFのポーティングは朗報だけどどうせ改良する気はないんだろうし
クロスプラットーム化は無理でもせめてReference Source下じゃなくOSSにまでして提供してほしいもんだぬ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 [蚤の市★]
- 地震 [Hitzeschleier★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 【話題】好きな鍋は?! 「寄せ鍋」「キムチ鍋」「水炊き」「もつ鍋」「豆乳鍋」「ちゃんこ鍋」「ごま坦々鍋」「トマト鍋」 [ひぃぃ★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 [蚤の市★]
- 【地震】 茨城 栃木 埼玉 千葉 震度4 [KingFisherは魚じゃないよ★]
- J( 'ー`)し「で、アンタなんで働かないの?」 ワイ👶「理由は2つありまして~」🏡
- 自民党、金融所得課税30%で決定か。株を売ったり、配当金が入ると国が30%持って行きます [838847604]
- ムミィ🥺いる❓🏡
- おさかなさんあつまれえ
- 新型PSP、ほぼ全てのPS5ソフトをプレイできる?キタ━━━━━━(゚∀゚)━━━━━━!!!!! [303493227]
- 【画像】ぶっ壊れた蒸気機関車、なんかえっち
