質問: タイトルの件、System.Net.FtpWebRequestの記事が検索すると出てきますが、 推奨していないとの記載もあります。 オープンソースを利用せずにFTPファイル送受信をC#で実現したい場合、 どのような方法がありますでしょうか? 利用すべきAPI等の紹介でも構いません。 よろしくお願い致します。
回答: kunifさんも書かれていますが改めて引用から > > We don't recommend that you use the `FtpWebRequest` class for new development. For more information and alternatives to `FtpWebRequest`, see **WebRequest shouldn't be used** on GitHub. > > > > > `WebRequest`-based APIs are on life-support only (that is, only critical fixes, no new improvements, enhancements). > > > これはPlatform Compatibility Analyzerによるもので > > This tool provides Roslyn analyzers that find usages of .NET Core & .NET Standard APIs that are problematic on specific platforms or are deprecated. > > > と説明されているように、.NET Coreおよび.NET Standardを対象としたものです。というわけで、使用している.NETごとに異なってきます。 ### .NET Coreを使用している場合 「life-support only (that is, only critical fixes, no new improvements, enhancements)」、つまり致命的な問題の修正のみを行い、一切の機能追加は行わないとのことです。であれば`FtpWebRequest`が今現在持っている機能で十分かどうかが判断の基準となります。 質問文には「オープンソースを利用せず」とありますが、.NET Core自体がオープンソースですのであまり意味を持ちません。もちろんFtpWebRequest.csもMITライセンスで公開されています。 ### .NET Frameworkを使用している場合 Platform Compatibility Analyzerの対象ではないためあまり気にする必要がありません。 それよりも.NET Core is the Future of .NETで.NET Frameworkは4.8が最後のメジャーバージョンとなり、今後は機能追加されないことが宣言されています。つまり **.NET Framewrokの全てのクラスが`FtpWebRequest`と同様の警告状態** となっています。.NET Frameworkを使い続けるか、オープンソースの.NET Coreに移行するかの判断が必要です。