C#(ASP.NET Core) SkiaSharp IFormFile(画像)リサイズ

 

Excel 信頼済みサイト登録(レジストリ)

通常の方法

Excel 不具合関連

レジストリの場合

ホスト名
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains

IPアドレス
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges

ホスト名はDomains、IPアドレスはRanges以下に分かれる。
Domains以下はそのままホスト名がキーとして登録されるが、Ranges以下はRange1、Range2というようなキーになる。
Domains以下のホスト名はキー名を変えると信頼済みサイトに登録されている名前も変わる。

登録(ホスト名)
reg add “HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\[xxx]” /v file /t REG_DWORD /d 2 /f
[xxx]の部分はホスト名

登録(IPアドレス)
reg add “HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range[*]” /v file /t REG_DWORD /d 2 /f
reg add “HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range[*]” /v :Range /t REG_SZ /d [xxx.xxx.xxx.xxx] /f
[*]の部分は数字(1~)
[xxx.xxx.xxx.xxx]の部分はIPアドレス

キー名を変更してみる
reg add “HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\192.168.10.108” /v file /t REG_DWORD /d 2 /f
reg add “HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\192.168.10.108” /v :Range /t REG_SZ /d 192.168.10.108 /f
テストしてみると、Range[*]キーの部分をIPアドレス等に変えてしまっても問題なく動作するよう。

/v:名前
/t:種類
 REG_SZ
 REG_MULTI_SZ、
 REG_EXPAND_SZ、
 REG_DWORD、
 REG_QWORD、
 REG_BINARY、
 REG_NONE
/d:値
/f:強制上書

・ZoneIDの確認方法

cmd>notepad xxx.xlsm:zone.identifier
として該当ブックを起動する

実験等、手動で付与する場合
[ZoneTransfer]
ZoneId=3
を追記する。

ASP.NET Core MVC メモ

プロジェクト・NuGet

・ASP.NET Core Webアプリ(Model-View-Controller)を作成

・ファイル/フォルダ削除

Controllers/HomeControllers.cs
Views/Home/
削除

・NuGet インストール

ツール>NuGetパッケージマネージャ>ソリューションのNuGetパッケージの管理>参照
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Sqlite(SqlServer)
Microsoft.EntityFrameworkCore.Tools
あるいはパッケージマネージャーコンソールから
PM>Install-Package Microsoft.EntityFrameworkCore
PM>Install-Package Microsoft.EntityFrameworkCore.Sqlite(SqlServer)
PM>Install-Package Microsoft.EntityFrameworkCore.Tools

DB First・スキャフォールディング

DB(テーブル、フィールド)まで準備しておく。とりあえずなので最低限の内容。

・SQLiteの場合

SQLiteのファイルを作成しbin\Debug\net6.0以下に移動しておく。

PM>Scaffold-dbcontext -Connection “Data Source=./bin/Debug/net6.0/dat.sqlite” -Provider Microsoft.EntityFrameworkCore.Sqlite -OutputDir Models

(更新の場合 -f)

SQL Serverの場合
PM>Scaffold-dbcontext -Connection “Server=localhost,49153\SQLEXPRESS;Database=TestDb;persist security info=True;user id=sa;password=passw0rd!;MultipleActiveResultSets=True” -Provider Microsoft.EntityFrameworkCore.SqlServer -tables “TestTable33” -OutputDir Models

・コントローラー、ビュー作成

ソリューションエクスプローラ右クリック>追加>新規スキャフォールディングアイテム>EntityFrameworkを使用したビューがあるMVCコントローラー

表示されたダイアログで、
モデルクラス、データコンテキストクラスは自動生成されたファイルを選択。
コントローラー名は自動で命名されるが、用途に応じて変更する。

・Programs.cs編集

の部分を必要に応じて書き換え。

を追加。

・xxxContext.cs編集

を削除。

を削除。

・DB更新

SQLiteメモ

Modelsの内容を変更し、
PM>Add-Migration xxx
PM>Update-Database

ここではxxxContextなど自動で変更されない。

・アクションメソッド

アクションメソッドとは、コントローラーの中で定義されたpublicのメソッドのこと。アクションメソッドの戻値はIActionResultを実装したオブジェクト。

URLの基本は/コントローラー名/アクションメソッド名となる。

アクションメソッド

・アクションメソッドの戻り値

・コントローラからビューの呼び出し

ヘッダーなどは/Views/Shared/_Layout.cshtmlにて定義され、コンテンツは@RenderBodyの部分で読み込まれる

Razor

インライン
@をつける、式の値を出力する。

コードブロック
@{}をつける、出力しない。

コードブロック内で出力する場合、
HTMLタグで囲む、または<text>タグで囲む、または@:をつける。

コメント
@* *@
@{ }の中では、// や /* */が使える。

@のエスケープ
@をつける。

Win11 アップグレード

Win11にアップグレードしてみた。

・Explorer Patcher for Windows 11

https://github.com/valinet/ExplorerPatcher

和暦、秒を追加して表示させていたTClockが起動せず、クイック起動も表示できなかったのでインストール。

アップデートはタスクバー右クリック>プロパティ

・クイック起動

タスクバー右クリック>新規ツールバー
C:\Users\xxx\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
を登録する。

クイック起動は
shell:quick launch
でも開ける。

コンテキストメニューのアクセスキーを使うため手間が増え不便になったので、オプション表示を消した。

reg add “HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32” /f /ve

***

AcrobatⅪという古いバージョンを使っていたがライセンス認証の動作がおかしくなってしまったので利用を止めた。(PDFelementに切り替え)

グラフィックボードやネットワークに係わる部分のドライバーの更新を実施。

動作も軽く見た目も洗練されているよう。

.NET メモ

ランタイムの種類

●SDK
.NET Runtime、.NET Desktop Runtime、ASP.NET Core Runtimeが含まれる

●.NET Runtime
コンソールの実行に必要なコンポーネントのみ。
通常、この代わりに.NET Desktop Runtimeと ASP.NET Core Runtimeの両方をインストールする。

●.NET Desktop Runtime
WPF、Windows Formsをサポート。
Windowsに付属する.NET Frameworkとは異なる。
.NET Runtimeが含まれる。
ASP.NET Core Runtimeは含まれない。

●ASP.NET Core Runtime
.NET Runtimeをインストールする必要がある。

バージョン確認

.NET Framework
https://learn.microsoft.com/ja-jp/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed

.NET 5 以降
https://learn.microsoft.com/ja-jp/dotnet/core/install/how-to-detect-installed-versions?pivots=os-windows

互換性

.NET Framwork1.0(1.0)
.NET Framwork1.1(1.1)
.NET Framwork3.5(2.0, 3.0, 3.5)
.NET Framwork4.8(4, 4,5, 4.6, 4.7, 4.8)
.NET Core2.2(2.0, 2.1, 2.2)
.NET Core3.1(3.0, 3.1)
.NET5(5)
.NET6(6)

現在サポート中

.NET Framwork3.5(2028年)
.NET Framwork4.8(2031年)
.NET Core3.1(2022年)
.NET5(2022年)
.NET6(2024年)

.NET5でFramworkとCoreが統合された

C# テキストファイル(CSV) インクリメンタルサーチ

もともと複数のエクセルに分割されたデータで、都度ファイルを開いて検索+合計の計算を繰り返していたようなので、テキストファイル(CSV)にまとめ、インクリメンタルサーチで行の絞り込み+選択した行の合計を求める機能を作成した。

DataGridView版

 

SSD メモ

NAND

SLC:シングル
MLC:マルチ
TLC:トリプル(現在主流)
QLC:クアッド

の順番で耐久性が下がる

サイズ

・2.5インチ

接続:SATAケーブル

SATA1:1.5Gb/s
SATA2:3Gb/s
SATA3:6Gb/s

・mSATA

接続:マザーボードソケット

・M.2

接続:マザーボードソケット
SATA / PCIe

Read/Write(SATA)

シーケンシャルRead/Write:500MB/s程度
ランダムRead/Write(IOPS):70,000~100,000

耐久性

最初のころはSSDの耐久性を心配する人も多かったが、現在、各メーカーが公表するMTTF(寿命)、TBW(総書込容量)から考えても数十GBを毎日書き込んでも5年以上は持つので心配する必要はない。

SSD クローン

メインPCが5年になるので、そろそろSSDを交換しておくことにした。一応、メーカーのユーティリティソフトを使って確認しても問題ないとなっているが。

今回はCrucial製にした。

Crucialのサイトから、Acronis True Image for Crucial
をダウンロードしインストール。
https://www.acronis.com/ja-jp/promotion/crucialhd-download/

クローン先のSSDを取り付ける。今回はSATA-USB変換ケーブルを利用。
(CrucialのSSDが接続されていないとソフトが起動しない)

ソフトを起動し、クローン作成ウィザードを開始

ソース、ターゲットディスクを選択し、
このコンピュータのディスク交換を選択する。

30分程度で完了したので、SSDを付け替えて起動すれば完了。

Aterm WG1200HS4 購入

今までPC類は有線だったけど、間取りが変わったのでWiFi接続に切り替えることにした。どうせならWPA3で接続しようかと思い、Aterm WG1200HS4を購入した。

ONUに接続。

本体記載のSSID(xxx-a)+本体記載の暗号化キーで接続。

cmd>ipconfig
を見ると、
192.168.10.101
を取得しているので、
192.168.10.1
にアクセスする。

ID:admin
パスワード:本体記載の WebPW
で管理画面にログインする。

・基本設定

自動判別>OFF
動作モード>IPv6オプション
(BIGLOBE)
PPPoEブリッジ>OFF
子機の接続制限>MACアドレスフィルタリング

・Wi-Fi 詳細設定 (2.4GHz)

WPA3未対応の機器用

暗号化モード>WPA2-PSK(AES)
ネットワーク分離機能>ON
TVモード>使用しない
MACアドレスフィルタリング機能>ON

・Wi-Fi詳細設定(5GHz)

クワッドチャネル機能>使用しない

Chromeで複数タブを同時に開くとネット接続が一瞬切れる症状が発生していて、使用しないにすると発生しなくなった。

暗号化モード>WPA3-SAE(AES)
TVモード>使用しない

・MACアドレスフィルタリング
2.4GHzに接続する機器のMACアドレスを追加する。

・メンテナンス
管理者パスワードを変更する。

・その他の設定
LAN側Pause機能>OFF

PC側

IPv6で接続する場合、
ncpa.cpl>Wi-Fi>右クリックプロパティ
・TCP/IPv6
を有効化しておく(無効化してあったので)

今までIPv4でも遅くなることはなかったけど、現在の家だと時間帯によって異常に通信速度が遅くなることがあるのでIPv6も有効化することにした。

マイナポイント第二弾 登録

先日の転出、転入のときに数年ぶりにマイナンバーカードを利用した。
ちょうどマイナポイントがもらえるキャンペーンがあるようなので登録してみた。

・マイナンバーカードの新規取得
・健康保険証としての利用申込み
・公金受取口座の登録

https://mynumbercard.point.soumu.go.jp/
から申込みを実行。

・マイキーID作成・登録準備ソフト
・ブラウザ用拡張機能
を指示通りインストールする。

ICカードリーダーにセットし、利用者証明用電子証明書のパスワード(4桁)を入力する。

・マイナンバーカードの新規取得
・健康保険証としての利用申込み
・公金受取口座の登録
の3つにチェックし次へ。

次に、キャッシュレス決済サービスの選択画面では、既にアカウントを持っている、PayPayチャージ特典を選択する。

・決済サービスID
・セキュリティコード1
・電話番号(下4桁)
の入力が必要になるので、
PayPayアプリ>ホーム>マイナポイント
決済サービスIDを使って申し込む
を選択して確認する。

次に公金受取口座の登録では、指示通りに進めていくと口座情報登録画面になるので、利用している銀行口座を登録する。

これで完了。

PASMOからApplePay+Suica乗り換え

オートチャージ機能付PASMOが始まった頃から、PASMO+交通系クレジットカードのオートチャージという運用でやってきて特に不便もなかったのだけれど、気分転換にApplePay+Suica/PASMOに切り替えてみた。

Suica

・ApplePayにSuica取込み

Suicaアプリから発行も可能だけど、手元に1枚余っていたの、Walletから取込み。

Wallet>追加>交通系ICカード>Suica>お手持ちのカードを追加
SuicaID番号末尾4桁、生年月日を入力し、カードにiPhoneかざせば転送される。そのままエクスプレスカードに設定されるので、iPhoneが消灯でも使える。

プラスチックのカードは破棄する。

・チャージ

チャージはSuicaアプリ、Walletのどちらからでもできる。

・グリーン券

今までグリーン車に乗る場合(機会は少ないが)、券売機からSuica/PASMOに記録していたのだけど、ApplePay+Suicaには記録できないので、グリーン券を購入するときはSuicaアプリが必要になる。

・Suicaアプリ登録

モバイルSuica会員にならないと、制限があるので会員登録。PCから登録できないので注意。

・AppleWatch転送

AppleWatchに転送するとiPhoneで使えないためSuicaはiPhoneで利用。

PASMO

・ApplePayにPASMO取込み

方法はSuicaとほとんど同じ。

・オートチャージ解除

オートチャージが設定されているので解除する。

まず、PASMOアプリインストールする。(途中でクレジットカードの入力になるのでそこで終了させればOK)その後アプリの設定からオートチャージを解除する。

・AppleWatch転送

PASMOはAppleWatch用にするため転送。
Watchアプリ>ウォレットとApplePay>記名PASMO>追加
(パスコードの設定が必要)