WEBからダウンロードしたファイルのセキュリティブロックを解除する方法

WEBからダウンロードしたファイルはセキュリティブロックされており、「Microsoft Defender SmartScreen」の確認画面が表示されたりします。

このセキュリティブロックを解除するには、代替データストリームのZone.Identifierを削除する必要があります。

C#で解除する拡張メソッドを作成しました。
以下のUnblockメソッドを実行すると解除できます。


[DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool DeleteFile(string name);

public static void Unblock(this FileInfo file) {
    file.IsReadOnly = false;
    DeleteFile(file.FullName + ":Zone.Identifier");
}

ソフトウェアの価値。

こんにちはmtjです。

ソフトウェアの価値についてですが ソフトウェアは基本買ってきただけでは価値を生まないと思っています。
それこそ普段使うプログラム開発用のIDEも買うだけでは何も生産を行いません。

IDE等もプログラムを効率よく開発したいから買うので購入して即成果が上がるような物でもありません。
道具を使いこなして価値を産む人がいて初めて価値が生まれます

流行りのIOT等の機器も遠隔で情報を知れるだけの物ですが
その情報を使って価値を生んでいくのは利用者側です。

自分たちもソフトを作る上でその先に価値があるのかを考えながら開発していきたいです。

Xamarinのサポート終了

弊社でも使用しているMicrosoft Xamarinのサポートが間もなく終了します。
iOS関連と合わせて開発環境の状況を整理しました。

Microsoft関連
- 2024/5/1:Xamarin.Android サポート終了
- 2024/5/1:Xamarin.Forms サポート終了
- 2024/5/1:Xamarin.iOS サポート終了
- 2024/8/31:Visual Studio for Mac廃止

iOS関連
- 2024/4/29:ストアへのアプリは、Xcode 15 と iOS 17 SDKが必要

既存のiOSアプリは、ストアがXcode 15が受け入れられるまではアップデートは可能と思われます。
Visual Studio for Mac廃止に伴い、
MacでのC#開発用IDEの代替としてはVisual Studio Code、
または仮想Windows上のVisual Studioが位置づけされているようです。
MacでUnity開発などを行っている場合は大きな影響がありそうです。

弊社でも今後はモバイルアプリは.NET MAUIに移行していきます。

VisualStudioのGitでブランチの変更内容を確認

Gitでコミットをする場合、都度ざっくりコミット内容のチェックは行うのですが、
とは言え見落としなどしてしまうことがあります。

なのでブランチをmasterにマージする前に全ての変更を最終確認したいと思っていたのですが、
VisualStudioのGitなら以下の手順で簡単に確認できることに今更気が付きました。

1. VS上部のGitからブランチの管理を開く
2. ウィンドウ左部のブランチにてmasterを右クリックして対象のブランチにmasterをマージ

3. ウィンドウ右部のローカル履歴にてブランチの最新のコミット(masterをマージしたコミット)と
    masterの最新のコミットを同時に選択し、右クリックしてコミットの比較

小規模かつ短期間のブランチなら都度確認だけでも問題ないかもしれませんが、
開発が長期に渡った場合や、ブランチ内で修正を何度も行った場合などは、
ゴミとなるコードが残っていないかや意図せず破壊的変更を行ってしまっていないかなど
最終確認するのが良いのかなと思っています。
以上です。