このスレッドは過去ログです。
プレミアム会員に登録すると続きを読めます。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
───────────────────
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。 初心者質問で申し訳ないのですが、vsコードで予測変換が出なくて困っています。
調べてみたのですが原因も分らず…if文などの予測変換は出るのですが、gameobjectなどのユニティで使うようなプログラムの予測が出ません。
解決策などあるでしょうか?
なんかぶっ壊れてんじゃん?
とかテキトー言ってみる
俺のも(会社PC)そうだわ
オムニシャープ入れたけどダメだった
もうVSでよくね?
どうせIntelliSenseとかVS以下だろ
試しに俺んところでやってみたら、OmniSharpのバックエンドにMono等が選ばれなきゃいけないのに.NET7が選ばれちゃってこうなるみたいだな
試行錯誤しても全然切り替わらないし、ほんとどうすりゃ良いんだろうねこれ・・・・
メディアファイル(特にmkv)のオーディオチャンネルの属性を取得したいって話ですね。
わかりません。
>>10
Unityのコードは特殊な環境だけ動いて普通のC#の環境とは違う
基本的に非対応と言ったほうがいいのかあな >>16
普通にUnityでも.NETの技術使われてるけどな 練習で始めてWPFを使って簡単な時計アプリ作ってみたんだけど
デバッグなしモードだとちゃんと動くのだけれど
デバッグモードで起動するとタイマーが進まなくてウインドウにカーソルを
行ったりきたりさせるとタイマーが変化するんだけどこれって仕様なのかな?
デバッグで動いてリリースで動かんのは大抵は初期化漏れだが
逆のパターンはなんだっけ
違うdllをリンクしてるとかか
これはひどい
>アサートは、チェック機能の実行に時間がかかるため、
>デバッグ版にだけ仕込まれており、リリース版では機能しません。
>そのため、リリース版では発生しないように見えているだけで
>不具合がなくなるわけではありません。
知らぬが仏とはよく言ったもので
WPFは時計すら満足に作れないんだな
これでいいかな
>>18
普通に考えるとビルドしないで直接別のプログラムを走らせてないか?
visual studioの三角押して実行してる?
それかビルド失敗して以前のを動かしてないか?
デバッグの方はマウスenterあたりでタイマー動作が働いてると言うことでそこらへんをミスってる可能性が高い
間違ってなんか別のイベントハンドラを作ってうまく消せないでタイマーハンドラのと混ざっているんだろうなと アサートはデバッグ時に想定した状態になっているか確認する手段で
リリース時にはアプリの挙動に関与しないし
>>26
一応メニューの方のビルドやリビルドとか色々試してみたけどダメだった
ビルドは成功してるっぽい
デバッグの方は単にウインドウにマウスオーバーしてもタイマーは動かなくてウインドウ中央上部にある
横棒2本のメニュー開くところにマウスオーバーすると一瞬だけタイマー動く感じですぐ止まる
再度そこからはずしてマウスオーバーするとまた一瞬動く
あとなぜかドラッグでウインドウ動かしまくっててもタイマー動いた
正直初心者の自分にも現状原因まったくわからんからあきらめるわ わかりました二度と我々の前に姿を現わさないでください
IList.Item[Int32] Property
public object? this[int index] { get; set; }
object? ってなんですか ?
プログラミング初心者は電卓でも作ってろ
→ 数式を評価できるようにしたいんやが、やり方が分からん
→ Roslynってやつがあるやん
→ なんやC#のREPLみたいになりそう
→ VisualStudioに付属してるREPLでええやん、ってなった
>>29
なんで初心者スレでそんな正確悪いこと言うかね ここの住人意味わからんよな
同じC#erなのに優しく接しればいいのに
>>33
ここ腐っても技術板だから現象をぐだぐだ書くより最低限の現象が発生するコードを示すなりしないとみんな冷たいよ
初心者と言うのは免罪符にならんし 初心者スレでなに言ってんだと思わなくもないけど、気持ちは分かる。
>>28
面白現象だから保存しておいて別のプロジェクト作ってやり直してみたらいい
そのページ見たら5分でできる内容だからさ
イベントハンドラの記述ミスだろうなあとは思う
プロパティウィンドウのイベントのmouseleftbuttondownとmouseLeaveがすぐ隣なのでそちら関係なんだろうなと 初心者だから甘えさせてっていう人は昭和の人間としては理解できないわ
まあ俺が理解する必要ないんだけどせっかくの伸びる時期を浪費してもったいなくないか?
気に入らないなら優しい奴が優しく答えてやればいい
顔も知らんやつに横から指図したところで時間の無駄
>>37
試しにコードミスの可能性も考えて全部コピペで新しいプロジェクトでやってみたけどデバッグモードどけダメみたい
あと気づいたのがマウスオーバーしなくても10秒くらい待ってたら一瞬だけタイマー動いた
もしかしたら自分の環境だけの現象かもしれない
こんな変な現象に色々付き合ってくれてどうもありがとう > 顔も知らんやつに横から指図したところで時間の無駄
これまたでかいブーメランやなw
ソースコードがあるなら貼り付けてみればいいのに
そんなおもしろ現象なら共有の意味も込めて
精度とか使ったタイマーの話が何一つ書かれてないから
アドバイスしようがない
>>46
それは>>21のリンク先に書いてあるぞ
まぁ質問者が間違えてる可能性が一番高いにも関わらずコードを出さないから救いようがない 描画だけコケているのか、あるいは計算処理そのものがコケているのか
サイトにあるように作った(作れてない)
って話なんだろうなぁ
こんな感じ。でも手打ちでダメだったから全部コピペでやってみたんだけどな
using System;
using System.Windows;
using System.Windows.Threading;
namespace clock2
{
public partial class MainWindow : Window
{
private readonly DispatcherTimer _timer = new();
public MainWindow()
{
InitializeComponent();
InitializeTimer();
_timer.Start();
}
private void InitializeTimer()
{
_timer.Interval = TimeSpan.FromMilliseconds(500);
_timer.Tick += (_, _) =>
{
TimeLabel.Text = DateTime.Now.ToString("HH:mm:ss");
};
}
}
}
>>50
ぱっと見はコードに気になるところないなぁ
タイマーのプライオリティを上げてみて動きに差が出るようならデバッガーがUIスレッドで忙しくしてるのかも >>52
これが正解なんじゃね?
UIスレッドが忙しい、というのは最適化がかからないデバッグだと動かない説明にはなる ゲームセンターのゲームとか、コマ落ち・カクカク・プチフリーズする
1秒間に、30〜60回も処理できない
漏れはパソコンをエコモードにして、使うCPU を1つだけにすると、
ブラウザゲームが、1秒間に1回しか描画されない
セロリンとか、性能が低いCPUでも、そうなる
InitializeComponent()より前にnew DispatcherTimer()していいんだろうか
>>51
>>52
>>54
これでした!試しにプライオリティをInputにしてみたら期待通りに動いてくれた!
一人でやっていたらずっと気づくことができなかったと思う
色々アドバイスしてくれた人たち本当にありがとうございました UIスレッド忙し過ぎてUIの挙動にも影響出てそうなんだが
プライオリティ弄るよりそっちをどうにかした方が良いと思うぞ
デバッグビルドのexeを直接実行した場合と
VSからデバッグ実行した場合で違いが出るようならデバッガーによる影響
ReactiveXが理解できない…
何をやってるのかはわかるんだが具体的にアプリにどう実装すればいいのか検討がつかない…
こういうアプリを作ってみるといいよっみたいな資料とかないだろうか?
UIスレッドは軽量になるように非同期を駆使して細心の注意を払ってるわ
久しぶりにC#の世界に戻るかもしれないんだけど、
以前触ってたのはVS2010/Windows 7の時代なんで浦島太郎状態
で、言語の方は自分で調べて差分を埋めようと思うけど、
実行環境というか、以前ならCLRとか.NET Framerowkと呼ばれていたものが
どう変わったのかいまいちよく分からないんですが、その辺サクッと分かる記事とか
どっかにないですかね?
>>67
.NET FrameworkはWindows用
マルチプラットホームは.NET Standardという規格で.NET Frameworkや.NET Coreやmonoをつないでいた
今はそれらが全て統合されて.NETになってる
Windowsユーザーから見れば.NET Coreが.NETという名前になって.NET Frameworkを吸収合併したと見てもそれほど大きくは間違ってない
Visual Studioの新規プロジェクトテンプレートでは無印のものが.NETで.NET Frameworkと書かれてるものが旧バージョン
旧バージョンではあるがWindows専用に作られただけあってWindowsアプリを作る時には.NET Frameworkが便利な場面も一部ある
しかしいずれ消えるので新規アプリは.NETで作るべき
これだけ把握しときゃ後は何とかなる .NET5以降はサポート期間が最長でも3年で、ジャパニーズドカタディヴィロップメントでの採用はかなり厳しいことに注意
そして、断言するが、.NET Frameworkは最終的には5以降のCore系の.NETよりも確実に長く生き残る
.NET FrameworkはWindows UpdateでOSをアップグレードしたらサポート(インストールすら)されなくなることがあるからサポートが重要ならなおさら新しいバージョンを使うべき
>>71
使えてた.NET Framework がアップデートで使えなくなったってこと?
いつそんなことがあった? >>72
過去からの類推じゃなくMSのサイトにそう書いてあるぞ そもそも.NET Frameworkの最終バージョン4.8のサポートが多少長いのは破壊的変更が多いから今のうちに移行しろっていう猶予期間だって察しろよ
今から.NET Frameworkで新規開発始めるのは正気の沙汰じゃないわ
俺が探すんかいw
ググれよ
サポートはOSのポリシー次第って書いてるのが簡単にみつかるから
4.8.1とかになってまだまだ毎月パッチ当たってるし
あと10年はOSにデフォルトで搭載されるっしょ
net core系は今後もデフォルトでは絶対に入らないから
余計にそうなる。
.net4.8と比べ、.net7の方がファイル数もファイルサイズも速度も速くなりますなんてものほぼないし。
だってフレームワークがクロスであることには意味があっても
各人が作る最終制作物をクロスで動かすなんてことはほぼない
わけなんだから
Windowsがバージョンアップするの知らないやつおるな
てか4.8が最終バージョンてとこでどんなボンクラでも後がないんだなーって気づくだろ
マジで気づかないの?
でもMSってなかなかレガシーを切れないから、
Windows15くらいまでFramework 4.xも平行して続けてもおかしくない
>>69
なるほど。簡潔で分かりやすくて助かります。ありがとう。 .net standardは規格なの?
いつの間にかこの概念を耳にすることがなくなったのでまだよくわからん
.net core以降で開発する時にこいつをどう意識すべきなのかな?
>>84
.NET Standardはバージョン2.1で.NET Frameworkを切り捨てたため、事実上の存在意義をほとんど失った
不特定多数向けにNuGetパッケージを開発しているのでない限り、全く気にする必要はない .NETはいつまでたっても未完成品
今後のことも考えて仕方なく使ってる
.NETはゲートウェイを指定してHTTPリクエスト送るのがメチャクチャ回りくどくなった
これに限らずリファクタリング版は大抵劣化してるだけのゴミ
>>69
最近C#始めたのでこういう情報はありがたい。 だからといってC#の代わりになる言語なんてあるはずもなく…
>>85
2.1は意味わからんよなぁ。うちはしばらく2.0でいく。 .NETはサポート期間が短いのが難点
業務アプリならやっぱり.NET Framework
何をサポートしてほしいのか知らんけどバージョンアップすればいいじゃん
>>92
まあ.NET Frameworkは少なくとも今後10年のうちにサポートを切られることはないだろうから、仮にリミットを2032年としよう
現在最新のLTSである.NET6で開発したとして、サポート期限は2024年だ
そしてLTSは2年毎にリリースされ、リリースから3年間サポートされる
つまり3年を超えて使い続ける想定であれば2年毎のアップグレードが必要であり、
まず2024年にLTSの.NET8にアップグレードして以後は2026年、2028年、2030年と計4回のアップグレードが必要になる
一方.NET Frameworkを採用していればその間何もしなくてもいいわけだ
技術者として新しいものを使いたい感情は理解するが、これを客に正直に説明すれば客が望むのはどちらか、答えは明白だろう 特に不便が無ければ、枯れた.NET Frameworkの方が安定して動作するからな
.NETにしか無い新しい機能が必須!とかならともかく
自分用のアプリは全部.net framework
新しい機能を試したい場合はcore使う
未完成品のデザイナがまともになれば.NETに全面移行するんだけど
それにAPIに互換性のないものがあるのが困る
>>95
放置してようがアクティブに開発してようが、アップグレードの際のコストに大差はない
自社サービスや内製システムのキラキラした話によって、アクティブに継続的な開発が行われているシステムではアップグレードしやすいというようなイメージを持っているかもしれないが、実態は別にそんなことはない
そういった恵まれた環境では、受託と違って自己責任なので場合によってある程度品質を犠牲にする選択がしやすいのと、比較的エンジニアスキルが高く彼らの技術者的感情もが尊重されるから、
結果的にアップグレードに積極的な傾向があるだけだ >>95
不具合や不都合が出るまで
出ないのが一番良いシステムだからな さすがに三年バージョンアップ無しのソフトはオワコン扱いだわ
>>101
そもそもコンテンツじゃないからな
産業界などでは何十年前のソフトがずっと動いてるなんてざらだろ
一度作ったソフトが何も問題ないならわざわざフレームワークのアップデートでバージョンアップ版作り直す必要はないわ
MSが頻繁に電卓をアップデートしてるのがおかしい
誰も電卓に期待してない機能をどんどん継ぎ足してる
ほっとくと電卓がexcelになる >>101
ペイントやメモ帳はいつオワコンになるの? ペイントもメモ帳も開発が続いてる
いらない機能を追加し続けてる
MSはアホなのかと
単体で毎回100MB以上ダウンロードさせてる
世界で数億台あるwindowsマシンのリソースや
世界の電気の無駄づかい
MSは自然由来の電力を使っていますと言ってるけど各家庭や職場はそうじゃない
>>102
グラフ描画機能おもろいよな
コンバーターもかなり便利だと思う >>107
そんなもんいらないだろ
常識的に考えて使ってるのは0.001%もいない 世界に数人の電卓に関数グラフいるマンがいるから環境が破壊されるw
まあ実務で使う業種は少ないかもしれんな
大学とかの勉強とか研究とかではグラフを描きたいときはよくある
>>115
> 常識的に考えて使ってるのは0.001%もいない
国語力ないなお前は 国語力ってのはある程度目安になる数字を出してから行ってくんないかなあ
少し数字を変えて80億人もいないとか言っても意味ないのはわかる?
そういえば電卓アプリって整数だけで、浮動小数点には対応して無いんだな
アップデートはよ!
目ん玉と頭の中のアップデートが必要か?
普通に小数は扱えるし指数表現もおk
というか関数電卓の機能すらあるのになぜ整数だけだと思った?
違う
三角関数や指数・対数計算などの時の計算モードのこと
電卓はデカすぎ拡大機能はいらないから縮小させろ
クソデカボタンをマウスで押すとでも思ってんのかMSさんは
>>122
サイズ変えられると思ったけど一定サイズ以下にはならんのね
確かに大きすぎると言われれば…
スレチがいつもまでも続いてごめんね… webformアプリ抱えてる会社とかこれからどうするのかな
リプレイスするにしてもほぼ再設計になるだろうし
どうするもクソも.NET Frameworkを使い続けるだけだよ
.NET Framework のサポートが終了するのが10年先か20年先かはともかく、その頃には既にCore系の.NETもレガシー扱いとなり新しい代替技術が出てきているはず
中途半端なステップを踏む必要はない
.netは .NET6すなわち2021年秋ではじめて
広範な人々が.NET Frameworkに変わるものとして提供する
ある程度安定したプラットフォームです、
ってなったばかり。
Core3系ではリプレイスにはなり得なかったし.NET5は
実験もしくはアーリー用といった扱いだったし。
新体制はまだ1年、マイクロソフトの特性から考えて
.net4がOSのプリインストールでなくなるのが最速で2031年あたり
3.5と同じようにnet4依存の実行ファイルの初回実行時に
自動インストールを問うような仕組みが外されるのは
2041年頃だろう。
.NET6が安定と言われるのは.NET統合後最初の長期サポート版だからだよ
.NETは基本的に奇数バージョンがCurrentで登場後に偶数バージョンがLTSCでリリースされることになってる
新機能を早く使って試したいユーザーは毎回更新してもいいけど安定サポートを望むなら偶数バージョンを乗り継いでいく運用が推奨されてる
「アップデートに追従できないなら.NETランタイムのバージョンを固定して塩漬けにしろ。そのために完全なサイドバイサイドとSCDを実現した。」
が.NET5系の互換性に対する基本ポリシーなんで、バージョンが上がる際に.NET Framework よりも気軽に破壊的変更を入れてくるのは確実
Windowsのアップデートに影響されないから本来的には楽になるはずなんだけど、常にセキュリティパッチを当てているかをちゃんと監査してるようなとこではかなり厳しいだろうね
.NET6 のサポート期間は3年。
その期間の開始は去年で、終わるのが24年。正式リリースはやっと今。
このサポート期間の短さゆえに .Net Framework4.8 (31年まで)を採用とか、実際にあった話なんけど、なんとかなんないかな。
そこまでバージョンアップを厭うシステムが間違ってるから見直せばいいと思うぞ
君らが必要としてる.NET Frameworkのサポートもバージョンアップという形でサポートするだけだから何も変わらん
いや、できることが増えるならまだしも劣化版になんで苦労して移植せなアカンのかってね
結局win32apiで組んでおけばよかったねってのが
結論になっちゃってるダッサ
困る困らないじゃなくてダッサ
そういう裏切りを何度も受けてるこその現状
今の年寄りは平気でじゃあwin32apiでっていうぞ
ちょうどそういう世代だし
バージョンアップしなくていいLinuxで組むってのもやってる
会社で
会議を開いてメリットデメリットを比較のために並べるとどうしてもそういう方法が選択されてしまう
ビジネスだからメリットデメリットを並べてでた結論には逆らえない
なのでc++に戻ってるまである(Linuxでも使えるから)
上の人間はプログラマの都合なんて決定に混ぜない
>>132
それはシステムではなく組織構造や契約の問題だからなんとも
ベンダーにとってはスタックの更新は貴重な売上機会だし、不具合出したら責任負わされるから、やるからには大袈裟にしたい
一方で、客からすればそんなことは何の価値もない作業に見えるから、当然なるべく避けたいわけ 現在の最新版(Current)は 7.0.1
長期サポート版(LTS)は 6.0.12
>>135
周辺の人間活動までシステムに含めるのならその通りだが、だとすると君は「間違っているのは俺ではなく世界の方だ」と言っているようなものだ
もはや主張としてなんら意味を持たない単なる厨二病的発言ではないか >>137
単純に君の世界が他の人の世界より狭いとは思わんのかね? ぶっちゃけ今の.NET戦略は失敗してる
出た当時からほぼ完成されていたCOMを進化する方向になぜ行けなかったのか
政治的な問題なのか
Googleの存在がなければCOMとActiveXが進化する方向性も僅かにあったかも知らんけど今更な話だな
COMを使ったことあれば
> 出た当時からほぼ完成されていたCOM
なんて戯言を言わなくなると思う...
MVVMというものについてなのですが、ビューからではなくモデルでプロパティを書き換えた場合にもビューに伝達するようにしたい場合はビューのプロパティもPropertyChangedを実装しないといけないという認識であっていますでしょうか。
いいえ
モデルがプロパティ書き換えたよと言う情報を登録先に投げるので何も変わりません
モデルがプロパティを書き換えたよという状況がビュー側に投げられるようにするにはPropertyChangedを呼ばないといけない認識なのすが違いますか?
すみません、、「ビューのプロパティもProertyChangedを~」と書いていましたがモデルのプロパティの間違いです。。
ネット上のサンプルはモデルのプロパティがただのプロパティになっているものばかりで謎だったのですがやっぱりモデルもMVVM仕様に設計しないといけないんですよね。。
jsのMVVMフレームワークなどでは対象の変数をフレームワークが書き換えて
自動で通知するようになってる
言語レベルでプロパティに通知機構を入れてもいいはずだけどc#はそうしてない
今プロパティにinitアクセサ入れたけどbindアクセサを入れてもいいはず
>>154
このサイトというよりこのページの間違い
PropertyChangedを言語レベルで補助するつもりはなくてコード生成でやってもらう方針と書いてあったから参考になると思って。 >>156
そこはみんなが参考にしてるサイトだからそこだけじゃなく隅々まで全部読むといいぞ みんな隅々まで読んでいてこのページも知ってたってことか
すまねえ…
>用途が狭く、言語機能としては採用しにくい
プロパティの変更通知は言うほど用途が狭いかね?
MVVMを推すくらいならそれくらい標準で実装してほしいものだが。
言語レベルでMVVMヘルパー実装しろと前から言われてるけど
実際は微妙な補助機能を数回追加し続けて便利になった便利になったと言い続けてる
>>159
C# は GUI 使わないコンソールアプリを作ったりもするからそんな変な言語仕様を入れられても困る
それでなくても最近ちょっとやりすぎなぐらい言語仕様膨らんでるし 言語仕様がふくらみすぎてるのは舵取りする人間がそういう人に変わったからで
C#はかなり学習しにくいゴミ言語になりつつある
一方で本当に需要のあるmvvmヘルパー機能はライブラリなどに投げられて15年
そこは別にライブラリでいいだろ
そしたらVBもF#も使えるし
今のC#のメインストリームは完全にWebに移ってるからね
Webではほとんどイベント使わないし、基本的にデータの流れが一方通行なのでプロパティの変更をモニタする必要がない
>今のC#のメインストリームは完全にWeb
MAUIはお遊びですか。
>今のC#のメインストリームは完全にWebに移ってるからね
何年も前からそういうことを言う人を見かけるけど、それを裏付けるまともな統計を見たことがない。
JetBrainsのサーベイか。なるほどありがとう。
>>166
なわけなくね?
Blazor MAUIとか知らんのか?
あれWebアプリそっくりそのままモバイルアプリにできるすぐれものだぞ まぁ最近の世界的な流行りがWeb化してるから仕方ないでしょ
俺は何でもかんでもWebアプリ化するのは嫌いだけどな
Figmaとかもちゃんとしたデスクトップアプリで使いたいわ
言うほどWeb化してるか?
スマホ時代からはむしろWebアプリで良くね?ってレベルのものまで何でもかんでもネイティブアプリ化してるのがめちゃくちゃうざく感じるが
Webアプリで良くね?ってレベルのものは実際開発者もそう考えていてWebブラウザを全面に貼り付けてあるだけのものが多く、技術的には完全にWebの一種
MAUI Blazorもまさにそうだね
>>172
がんばってる
WinUI3って<ContentPage.BindingContext>ってないんだな
どうやってMVVMすればいいんだ? >>173
スマホはそうかもだけどFigmaのようなそこそこスペックがいりそうなものまでWeb化してる気が、、、 >>174
MAUI BlazorはただのWebとはちょっと違うかな
Blazorを介して直接スマホのネイティブAPI呼び出せるっていうスゲー利点がある
ただこの機能を使わないなら別に普通のWebViewでも良いかなってのは思う。 >>175
WinUI3はコンパイル時バインディングっていうのだけ用意されてるらしいよ >>178
よくわからんけどWindowの中にPageを追加したらPage.DataContextでVVMのBindingできました 板一覧ってjsonで取れんの?
datのみだった記憶あるが
ぱっと見たけどHttpClientはstatic readonlyで一本永続化したほうが良いよ
稀にしか使わないならまだしも5chブラウザってことならむしろメインオブジェクトだし
>>183
クラスってどう分ければいいんだろうか?
板一覧取得サービス、スレッド一覧取得サービス、スレッド取得サービスで分けようとしてたけど
どうがいいんだろ? Ruby on Rails では、データベースの各表の設計・関連ばかりやる
1対1、1対多、多対多など
HttpClientを含むネットワーク接続用のクラスを作成してマウイ君の言うところの各サービスクラスのコンストラクタに渡しておくとか?
>>173
各社脱獄を目論んでいる
なんでかっていうとgoogleやAppleの気分次第でアプリを修正しなくちゃいけなくて凄く面倒くさいから
amazonはアプリ作るのやめたっぽい
amazonでこうだから他はもっと面倒くさいと思われ
うちも中小だけどあるとき
ふっと動かなくなってるなんてことあって非常に面倒くさい
もう現状でWEBコントロールにWEBページ貼り付けて強引にアプリっぽい挙動してるけど
なんかもうWEBアプリにしちゃおうか?
って話出てる >>187
MAUI Blazorでいいんじゃね?それ? 専ブラか…
15年ぐらい前にWPFで作ってたな
そのせいでWPFにいい思いを持てない
MS死ねって思えた
機能をてんこ盛りにしてもガワがダサいと台無しになるんだよな
優秀なデザイナーおらんかね
>>190
フラットデザインならツッコまれない上に最古のieでも動くはず short i;
i = 0; // ok
i = true ? 1 : 0; // コンパイルエラー(キャストが必要)
三項演算子で数値を返す場合って、int固定になってしまうのは言語仕様ということでしょうか?
ぁぁ
上記の場合はコンパイルエラーにならないですね。
以下のようにするとエラーになります
short i;
bool hoge = true;
i = 0; // ok
i = true ? 1 : 0; // ok
i = hoge ? 1 : 0; // コンパイルエラー(キャストが必要)
特に明示しない場合、整数リテラルはintになるからってだけなのでは?
まず右辺の数字は整数リテラルと言うもの
変数に代入時は整数リテラルは型より大きすぎるなどしてない限り変数と同じ型とみなされる
そうしないと不便だから
次に i = hoge ? 1 : 0;
の右辺は式である
整数リテラルは代入じゃないときは暗黙的にint扱いになるので右辺の式の値の型はintになる
これでキャストが必要
i = true ? 1 : 0;
この右辺はコンパイル時に決定されてるので代入可能
short s = 7000000-6999999;
これも代入可能なのと同じ感覚
>>196
ありがとうございました。理解しました
確かに
const bool hoge = true;
i = hoge ? 1 : 0;
とやってコンパイル時に決定されるようにするとエラーが無くなりました。
けど簡潔に書くための三項演算子なのに
(short)(hoge ? 1 : 0);
とかやると台無しですねぇ むしろ、あえてshortを使う理由の方が気になるな
>>196
> 整数リテラルは代入じゃないときは暗黙的にint扱いになるので右辺の式の値の型はintになる
> これでキャストが必要
ほんとか?
short s = b switch { true => 1, false => 2 };
はエラーにならんのだが... >>199
ない、あってもいいのにと思ったけどそもそもshortなんて滅多に使わんことに気づいたわw >>200
それ、varで定義したらintになってるし、右辺がintになるのは本当だな
で、c#のコンパイラ、縮小変換で切り捨てがないことが確認ができたら、暗黙の縮小変換を許可するっぽいな。
ちゃんとした言語仕様確認しないと何とも言えんが
おそらくコンパイル時に解決可能なことが前提条件じゃないかと推察するが 文字列の中の何文字目に日付があるかを調べたいのですが、
日付の書式としては「2023/01/05(木)」といった感じで固定なものの、
日付の数字は当然日によって違ってくるわけなのでContainsだとちょっとうまくいかないです
いい方法はないでしょうか
>>204
static int IndexOfDateString(string str)
{
const string kDateFormat = "yyyy/MM/dd(ddd)";
int dateLength = kDateFormat.Length - 2;
int index = 0;
while ((index = str.IndexOf(')', index) + 1) >= dateLength)
{
int iStart = index - dateLength;
Console.Out.WriteLine(str.AsSpan(iStart, dateLength));
if (DateTime.TryParseExact(str.AsSpan(iStart, dateLength), kDateFormat, null, default, out var date)) return iStart;
}
return -1;
} ありがとうございます
参考に(と言うかそのままなのかな?)させてもらいます
WinフォームアプリでgroupBoxをタブみたいに切り替えて使おうと、
コントローラを切り替えるコードを書いたのですが、groupBoxを重ねて実行したら
全てのgroupBoxが一番下のgroupBoxの子になってるようで、思うように表示されませんでした。
groupBoxを、一番下のgroupBoxの子にしない方法はありますでしょうか?
>>208
・・・.Designer.cs を開くと、自動生成したコードが
一番下のgroupBox.Controls.Add(子のgroupBox)
になってないかな?
だとしたら、デザインモードから子のgroupBoxをフォームに貼り付けるとき、
フォーム直下じゃなく、一番下のgroupBoxに貼り付けてると思う
自分なら、Load のタイミングで、任意のgroupBox.Controls.Add(任意の孫コントロール)
を明示的にコーディングする >>207
Console.Out.WriteLine(str.AsSpan(iStart, dateLength));
確認用のコード消し忘れたからこれは消しといてOK >>200
switch式は左辺参照して型を決める特殊な仕様らしい
int→shortに変えられる詳しい仕様は書かれていないので実装依存になるかも まぁ、あっても使わなきゃいいだけなんじゃね
C++のような機能性とJavaのような読みやすさを両立してるってことで
C#ってUnityのせい(おかげ?)で簡単みたいに言われている気がしなくもないけど
まともに使える人は案外少ない印象
そりゃC++とかよりは簡単だろうけど
いきなりスラスラ組めるようになった奴はセンスあると思う
それはC#に限らずオブジェクト指向全般に言える話
最初は誰でも手続きぐちゃぐちゃプログラミングになるからな
C#の言語仕様を拡張してどんどん便利にしても.NETが旧態依然のままでぜんぜん便利にならないから誰も.NETで開発しようなんて思わないんだよな
MSはいい加減.NETそのものやライブラリにお金をかけるべきだわ不便だから誰も使わなくてハウツーやナレッジも少ないからエコシステムが構築されずどんどんC#の人気が落ちてる
JS(TS)やPythonが人気なのはスクリプトだからとか簡単だからとかじゃなくて便利で高機能なパッケージ(ライブラリ)が無料で腐るほどあって人気があるからハウツーやナレッジも豊富でエコシステムが構築されてものすごく良い循環してるからなわけよ
とりあえずいい加減P/Invokeは廃止してMS自らがラッパー提供しろって話なんよなぜ未だにC#でGlobal HookなんかのOSのAPIにアクセスするのにP/Invokeが必要なのかそもそもこれがおかしいと思わんのかな
P/InvokeなんてC/C++理解できんやつには使えるわけがないんだがMAUIとかBlazorとかフロントエンドばかり小手先の改良加えるだけでぜんぜんやる気ないだろそりゃAndroidアプリに頼るしかなくなるわな
またランタイムに相当するやつを別にインストールする必要があるのかってところが猛烈にダサいよね
巨大exeの配布とどっちが良いかみたいな時代と逆行した昔話を思い出すよ
結局昔のようにMS主導で強制されるまでは誰も積極的に使わないだろう
C#は実際のアクティブユーザー数は少ない
プログラムが趣味ですと言ってる人の中でC#使ってる人の割合が少ないと言う感覚
更にガチ勢の割合が少ない
当初.netのライブラリが充実していた(GUI除く)ので一般人はOSSやサードパーティー製をなかなか使わない風土になってる
それで開発が少ないしされてもすぐ放置される
jsonライブラリも標準が出てしまった
ユーザーはライブラリ開発しないで提供されるのを待つだけ
ガチ勢が育たない
jsは唯一のwebブラウザ向け言語なのに素では開発しづらいから便利なライブラリが開発され続けてる
ライブラリのみでなくjs自体にトランスパイルされる言語が複数開発されてる
一方C#じゃなければ実現できないことはないから積極的に開発されない
C#の人気が落ちてると感じるのは相対的に他の言語の魅力が上がってるから
と言うより20年使ってたけどC#はホビーユースが中心にもかかわらずMS以外でそんなにC#は重要視されてた時代はない
C#は基本的に想定した以外のAPIは放置されてる
GlobalHookなどは馬鹿避けで馬鹿に触らせると問題が起こるので機能を提供してないものと思われる
ほらMAUI君のキチガイムーブのせいでこんなことになってる
C#は外部ライブラリがあまり開発されてない
純正志向が強い
js,Pythonなどは区別なく使われてる
Rustは標準ライブラリも外部ライブラリ向けに実装部分を差し替えられるように提供されてたりする
コミュニティ提供のrust入門書でも外部の乱数ライブラリを使ってる
.netは純正主義
>>227
たしかに.NETの標準ライブラリで何でも出来すぎてOSSが盛んにならないってのはあると思う
ただサイシャープの河合社長だったり有用なOSSライブラリを作ってる人はかなりいる
みんな知らないだけ まさか標準ライブラリの充実がOSSの足枷になってるとはね
たしかに言語仕様的にゴミカスなJSやPythonがこんだけOSSで流行ってるって言うのは割と関係あるな
>>230
まぁバージョンが新しい古いとかで動かないとかかなりあるしね
Node.jsなんてそんな感じのグチかなり聞くわ
Sysmem.Text.JsonもNewtonsoft.Jsonのアプデ頻度が高いからしゃーなしに開発されたものらしい それに .net standardとかPLCとかの問題で非常にライブラリ開発がつらい時期があった
ふざけるなと思ってる人も多かったはず
Pythonなんてライブラリのバージョンや本体のバージョンで動かなくなるのでうんざりする
それはPythonに限らんよReactもFlutterもViteもなんでもそうだ
ちゃんとパッケージを管理できてないお前のスキルが低いだけ
>>234
そういうレベルじゃない
ライブラリ同士の整合性問題がC#の比較じゃない
そもそも比較がC#なのに何で他のを持ち出すんだ?
頭悪そう >>235
ここのスレタイ確認しろよ
Pythonを例に挙げている時点でお前も頭悪いよ >>235
わかる
あれひどいよな
ものすごくメジャーライブラリでもPythonのバージョン上がると動かなくなって修正に半年とか普通にかかる
リリースされて半年~1年は実質ベータ期間 他人に期待しても無駄だから安定してるの使えばいいのよ
俺もC#はpowershellとも連携させるから基本OS標準に入ってるバージョンの機能しか使わないし
ライセンス気にせずにExcel操作ライブラリ使うなら、読み取りはExcelDataReader、書き込みはClosedXMLがいいのかね?
EPPlusは商用ライセンス高すぎて使えないわ
SpreadsheetLightってのもある
あと知ってるかもしれんがEPPlusはv4系までは商用でもフリーだぞ
net standard2.0だから今後しばらくは問題ないと思う
単純な真理
馬鹿でも使えるようにすると馬鹿しか使わなくなる
winformsってみんな普通に使ってるし自分も時々使ってるけどこれといったテキスト売ってないよね
みんななんとなくで習得してる
それでもなんとかなるほど学習コストが低いってことなのかな
visualstudio使えば、割と簡単とは思うけど
GUI的な考えが分からない奴は結局ちょっと複雑になると作れないんだよなぁ
UI thread的な考えが理解出来ないとUI thread以外でUI操作しようとしたりするしw
>>245
比較対象がWPFなら簡単過ぎるぐらいだな まあアレは直感的にわかりますし……
WPFの方が調べても全然出てこなくて困る、書籍も少ないし
@ if ((choice == 2 && player == 2) || (choice == 3 && player == 1))
A if (0 <= xpos && xpos < XMAX && num[xpos] < YMAX)
B board[xpos][num[xpos]++] = player;
C for (x = 0, y = ypos, n = 0; x < XMAX; x++)
D for (x = xpos, y = 0, n = 0; y <= ypos; y++)
E for (x = 0, y = ypos - xpos, n = 0; y < YMAX; x++, y++)
F for (x = xpos - ypos, y = 0, n = 0; x < XMAX; x++, y++)
G for (x = 0, y = xpos + ypos, n = 0; y >= 0; x++, y--)
H for (x = xpos + ypos - YMAX + 1, y = YMAX - 1, n = 0; x < XMAX; x++, y--)
の各条件文内でどーゆー計算、アルゴリズムがされてるか教えてくださる人いますか??
何がわからんのかわからん
課題なら先生に聞け
あーChatGPTなら教えてくれるかもな
例えば@だと、&&が論理積、||が論理和ということだと思うんですけど、演算子が分かってもその条件文内で何が行われているかとかが分からないので知りたい状態なんです。。
>>251
それなら俺らもそれ以上はわからんぞ
変数名をちゃんと意味あるものにしてやって >>253 が言うようにマジックナンバーをなくすと読めるようになる >>249
いますかの答えとしてはいない
書いてるコード断片にはアルゴリズムもなにもない
それにこれ多分Cだろ
ここは C#と言う別言語のスレなのですれ違い
これは多分オセロみたいなゲームのコードだろ
縦ラインループ横ラインループと斜めラインループしてる
player1 と player2が対戦して boardが合ってXMAXとYAMXのボード幅ではみ出し判定してる
計算もアルゴリズムも何も感じられない
その前にさあIDEの使い方覚えて一行ずつ動かして何が起こってるか見てみたらいい
初心者の間は状態などを紙にでも書かないと多分わからないよ マルチで Google Drive のリンクまで晒してるけど
学校名も個人名もばれるから落第だな
下手したら退学
ちゃんと対象言語のスレで聞いてりゃまだ可愛げがあるけど
他言語やVSCodeのスレとかにまでマルチポストだからげんなりするわ
半期やってこれがわからないような学生に今どきCを教える大学って終わってるな
>>255
ありがとうございます、スレ違いで申し訳ありません。
>>"これは多分オセロみたいなゲームのコードだろ
縦ラインループ横ラインループと斜めラインループしてる"
例えばどの条件文、関数からこれを読み取れたのですか? マルチなのか相手して損した
にしてもやる気がない人にはこのレベルはちょっと難しいんだろうなとも思う
二次元配列とボードがイメージとして直結してなくてx、yで盤面の位置を指してることが理解できれば変わるだろうけど
リロードしてなかったから書き込みが見えてなかったけど
スレ違いなのでもうレスしない
わかんない人をわからせるのは
短文投稿サイトでは難儀なので
元々の問題文を貼ってくれれば
正確な回答をもらえると思いま
す
>>262
こら!
スレ違いなので答えてはいけないしどうも他のスレでは張ってあるらしし データテーブルの列名が日本語になってるデータベースと、C#コードを連携します。
データテーブルのデータを保持するクラスを定義する際、同じようにして日本語を使ってフィールドを定義すれば対応関係がよくわかるのですが、英語やローマ字で定義したほうが良いでしょうか。
今開発してるのがまさに日本語カラムばかりなんだけどめっちゃ楽だぞ
ソースコード内でもカラムを示す箇所が視覚的にわかりやすいしインテリセンスでも埋もれない
カルチャー的に受け付けない人はいるだろうけど使ってみると考えも変わる
過去に行政の税システムのソースを見たら変数名が日本語だった。メーカーのPMに「日本語なんすね」と言ったら「間違いを無くすにはもうこれしかないんです」と言っていた。
税の用語は難しく数が多くて計算は複雑で、もし間違えたら記者会見して新聞記事になる。こういう対象にはそれに適した手段を用いるのが肝要だと思った。
nameof使えるし日本語フィールド名で良いんじゃない
>>266
レスありがとうございます。
>インテリセンスでも埋もれない
インスタンス名に続けて、ドットを打ったらインテリセンスで日本語名フィールドが表示されるのですね。
row_日本語の列名 みたいにしてなにか最初にアルファベットで列名に関与していることを示してみようかと思っています。
フィールドでは無意味かな。
でも、クラス名が日本語の場合は、model_日本語名 みたいな感じで最初にアルファベットをつけておくと、
インスタンス化のときにnewによるコンストラクタの呼び出しが便利かもと思っています。
>>267
たしかに。間違いはなくなりそう。日本語から英語に訳すのに時間がとられるし、それで対応関係がわからなくなってしまったら、
まったく無意味ですよね。
私も、日本語でやってみたいと思います。
>>268
https://atmarkit.itmedia.co.jp/ait/articles/1607/20/news026.html によると、
>nameof演算子を使うと、名前空間/型/メソッド/プロパティ/変数などの単純な名前(=名前空間やクラス名などで修飾されていない名前)の文字列が取得できる。
でも、何の役に立つのかピンとこない。
日本語フィールドとどう関係があるの? ひょっとしていまだにDataTable/DataSetを使ってるとか、生のDataReaderでレコードを取り出して1項目ずつフィールドに転記するつもりなんだろうか
EntityFrameworkなりDapperなり使わなきゃだめだよ
DapperでSQLを手書きする前提なら、nameofを使ってこんな感じ
public class T_テーブル1 {
public string カラム1 { get; set; }
public string カラム2 { get; set; }
public string カラム3 { get; set; }
}
var sql1 = $"SELECT * FROM {nameof(T_テーブル1)} WHERE {nameof(T_テーブル1.カラム1)}=@val";
T_テーブル1? rec = connection.QueryFirstOrDefault<T_テーブル1>(sql, new { val = "aaa" });
string sql2 = $"INSERT INTO {nameof(T_テーブル1)}"
+ $"({nameof(T_テーブル1.カラム1)}, {nameof(T_テーブル1.カラム2)},{nameof(T_テーブル1.カラム3)})"
+ $"VALUES(@{nameof(T_テーブル1.カラム1)}, @{nameof(T_テーブル1.カラム2)}, @{nameof(T_テーブル1.カラム3)})"
connection.Execute(sql2, rec);
個人的にはクラス名(テーブル名)・プロパティ名(カラム名)については
たとえC#の命名規約に反しようと全角半角・英大文字小文字含めDB定義通りにして
SQL文組み立てにフル活用できるようにする
テーブル1とテーブル2で同じカラム名があるとダルそうですね
テーブル名やカラム名そのままならたぶん大丈夫だとは思うけど
カッコ系や「・」なんかの全角記号がほとんど使えないのは一応注意を
>>270
レスありがとうございます。
お察しの通り、datareaderをforでぐるぐる回しながら、エンティティにデータ格納しようとしています。
ほとんどストアドプロシジャによる処理手順があり、これを実行した結果をC#で扱いたいんです。
ストアドプロシジャがあるのにEFを使う話は書籍にも見られません。
Dapperは全く勉強したことないので全然知りませんでした。
でも、そうやってnameofを使うわけなのですね。
優位性や適応についても知りたくなりました。 >>271
同じ名前のフィールドができるからですか?
でも異なるタイプのエンティティなら問題ないのかなと思います。
>>272
ありがとうございます。
気をつけます。 >>273
>でも、そうやってnameofを使うわけなのですね。
文字列内(今回はSQL文)に、クラスのフィールド名を組み込みたいときに使うと良いということがよくわかりました。
すると、その場合、クラス名、フィールド名は、データベースの列名に一致させておくことが必須ですね。
どうもありがとうございます。 ちょっとまって、フィールド名とカラム名を一致させるのはnameofのためじゃなくて
EFやDapperでもって取得したレコードや更新値を全レコード/全カラム自動マッピングさせるためだよ
いまどき手動でDataReaderから1項目ずつ値転記したりDbCommand/DbParameterをいちいち指定したりなんて
もはや許されない前時代的老害コーディングだからやっちゃだめ
あとEFでのストアド実行ならふつうにSqlQuery()とかの生クエリで出来ると思う
SQL 文を組み立てるのは、数十年前のやり方
Ruby on Rails では、1対1・1対多・多対多など、表同士の関連を定義する
HttpClientでPostAsyncするときにユーザーエージェントを指定したい時はDefaultHeadersをいじるしかないのでしょうか。
それをするとマルチスレッドで同時に別のユーザーエージェントで送りたいときに独自で排他制御しないといけない気がします。
かと言ってSendAsyncを使うと今度はContent-Typeをapplication/x-www-form-urlencodedにしたくても勝手に後ろに文字コードの;uft-8などが付いてきて困っています。
記載し忘れましたがHttpClientはひとつのオブジェクトを用意して同時に使います。
FormUrlEncodedContentを持ったHttpRequestMessageをSendAsyncでPOSTしても
Content-Type: application/x-www-form-urlencoded
だけだったけど
.NET7, .NET Fx 4.8両方で
すみません、また記載し忘れていましたがFormUrlEncodedConentを使用すると文字コードをShiftJISにしたいのですができず困っています。
あとはまだ試してしないのですがスペースが%20になってしまうとのことでそちらについても都合が悪いです。
HttpContentというクラスを独自にはせいさせるとできるかもしれないです
明日ためしてみます
ByteArrayも試したのですが何かしらの問題があったような気が…
すみません、明日さいど確認してみます
HttpClientのサードパーティー製をNugetで探すと上位の方にかなりパンチの効いたのが出てくる
>>276
ありがとうございます。
EFもかなり発展しているということなのですね。
以前はまだ未完成みたいな感じだったので、利用を躊躇しておりました。
ストアドの実行もEFでやってみたいと思います。
ただEFについては勉強が必要なので、少し時間がかかりそうです。
DataReaderはVBのときからやっているので、やっぱりいじり方がわかりやすいんですね。
>>277
表同士の結合は、ストアドプロシージャでやっては今の時代はダメなんですかね。 >>291
いちおう、ドメイン駆動設計なども学びはしました。
リポジトリ、モデル、アプリケーション、プレゼンに分けて構築しています。
でも、効率が良さそうなのはわかりますが、EFとかはどうも苦手意識があって。
いつか、慣れていく必要がありそうだとは思っています。 DB畑なら特定の環境に依存する中途半端なことするより普通にSQL文使うのを選ぶと思うけど
Ruby on Rails では、各データベース(DB)の方言に依存しないように、
O/R マッパーで、3大DB のSQLite, PostgreSQL, MySQL を使う
多くはPostgreSQLだから、AWS Aurora とも互換性ある
O/R マッパーを使わないと、各列の型も異なる
>>291
いきなりRailsを持ち出す奴は構ってはいけない
この板の鉄則 >>292
リポジトリのインターフェースがきちんと定義されててDBの実装に依存する部分が全てリポジトリの実装クラス側に隠蔽されてるなら中身は好きにすりゃ良い
後でリファクタリングするのも大した手間じゃない
リポジトリから返される型の名前を変更したらSQL文も動かなくなるみたいな実装は依存性を分離できてないから基本的には良くない設計
(良くない設計だけど開発効率を重視して採用することはある) ByteArrayContentの件ですが、ほかのヘッダーと同様にHttpRequestMessage.Headers プロパティでContent-Typeを設定していましたが、これではContent-Typeだけリクエスト文に現れませんでした。
しかし、ByteArrayContentのHttpContentHeaders.ContentType プロパティに設定することで無事、目的のContent-Typeが送信されるようになりました。
ご協力ありがとうございました。
おもしろhttpclient代替ライブラリの出番はなかったと
残念
>>296
>リポジトリのインターフェースがきちんと定義されてて
データベースなどの入れ替えに対応させるためですね。
>リポジトリから返される型の名前を変更したらSQL文も動かなくなるみたいな実装
これはいまいちピンとこないです。
どういう問題を持っているのですか。 >>299について、>>300さんへ
言い方がまずかったです。
>リポジトリから返される型の名前を変更したらSQL文も動かなくなるみたいな実装
これがどういう実装になってるのかなと。
リポジトリから返される型とは、モデルクラスでしょう。エンティティのことだと思います。
この型の名前を変えるとは、モデルクラスの名を変えるということですかね。
単純にかんがえると、コンパイル段階でエラーになると思います。
SQL文も動かなくなるとは、リポジトリがエンティティを受け入れる段階をいうのかな。
でも、リポジトリの永続化メソッドの引数の型と、エンティティの型が合わないという話なら、やはりコンパイルでエラーになる。
こういう話ではないのかな? >>301
なんで段落じゃなくて毎回改行してんの? >>270が動かなくなるって具体的にどういうこと?
カラムnを実際のテーブルの列名と違う名前にしようとしたとかそういうこと? 正直、不必要なレベルの過剰な依存性の排除だと思うけどな
もしやるならDBを使わない選択が必要な程の
>>276
うーん?
どこかでやらなきゃいけないのを
先延ばしにしただけのような?
俺はその構造になんの意味も感じなかった
なぜなら絶対にどこかで指定する必要があってその場所が変わるだけだから
間に一つ挟んだら取り決めが増えるだけで何も変わらんよ >>302
>>270はDapperを使ったコードだけどEFやSqlCommandの例とどんな関係が? ASP.NETの勉強を始めました。具体的にはASP.NET MVC5 実践プログラミングって本を使っています。
その中でentity frameworkを使ってdbcontextをうにゃうにゃしてデバッグ実行時にデータベースが制作されるようにしてページに表示して…みたいなことをやりました。
それでmdfファイルってのが出来あがってたのですがそれについて質問です。
これが出来上がったデータベースであって、sqlserverがデータを保存する形式ってのは分かりました。
これつまりC#(entity framework?)サイドからするとsqlserverは別に起動してなくてもデータベース本体だけあれば読み込めるということなんでしょうか。
それとも起動時に勝手に裏でsqlserverが立ち上がってたりするのでしょうか。
一応本の流れにそってSQL Express LocalDB edition 11.0なるものはインストールしています。
すいませんこれまでの開発でmanagement studio経由でいじるとかそれくらいしか経験無いんでよく分かってないです。
厳密にはC#の質問じゃないと思うんですけどよろしくお願いします。
>>308
すでに立ち上がってるSQLServerと通信する形となります
SQLServerが動いてなかったらもちろん意味を成しません
アプリから処理を呼び出し→SQLServerに接続→SQLServerがmdfファイルを編集
という感じだと思います SQLServerは起動しっぱなしですね
応答により電源がついたり消えたりするという形ではないです