2016-09-16 8 views
1

.NET 4.6向けに構築された既存のASP.NET APIをASP.NETコアに変換したいと考えています。私がやった少しのテストから、私は.NETコアで見ているものが好きです - それは速く、Linuxで動く機会を与えます。.NETライブラリを.NETコアにラップ/変換する

しかし、私が遭遇した最大の問題は、完全な.NET F/Wを使用して書かれた多くのオープンソースライブラリがまだそれと互換性がないことです(そして、 。だから突然、.NET Coreは多くの魅力を失います。

私の質問は、.NETコアで既存のナゲットライブラリを利用する方法があるかどうかです。それらを動作させるためにそれらをラップする方法はありますか?それ以外の場合、.NET F/Wライブラリ全体を.NET Coreに変換するにはどうすればよいですか?それは完全に書き直さなければならないのですか?

+0

ご迷惑をおかけして申し訳ございません。ヒントについては、.NETポータビリティアナライザhttps://visualstudiogallery.msdn.microsoft.com/1177943e-cfb7-4822-a8a6-e56c7905292bを実行してください。ただし、ケースによって異なります。まともな量の作業で移植できるものもあれば、互換性を持たせるために大規模な書き換えが必要なものもあります。それはライブラリがどのくらいのAPIを使用するかによって異なります。あなたの最善の策は、完全な.NET FrameworkでASP.NET Coreを使用し、ゆっくりと移行するか、.NETで互換性のあるライブラリを置き換えることです – Tseng

+0

この段階の.NET Coreは、あなたのニーズをサポートすることができません。 .NET Frameworkに固執し、より豊かなAPIを使用して移行するオープンソースプロジェクトまでお待ちください。マイクロソフトは、.NET Coreの後のリリースで公開します。 –

+0

@Tseng ok。私は移植性アナライザをインストールし、githugからダウンロードしたプロジェクトで実行しました。それは100%を通過することを示します。しかし、それはそれだけのことです - それは具体的に.NETコアをチェックしますか?そして今、それは通過します - それを.NETコアに変換する私の次の動きは何ですか? – developer82

答えて

0

.NET Framework全体を使用してビルドされたAPIがあり、.NET Core(CoreFx)にコンパイルする必要があります。これは現在私たちによって手動で行われているわけではありません。必要な場合は、PCLを作成する必要があります。

.NETコアのドキュメントを見ると、.NETコアがで、最適化された実行時間がであることがわかります。したがって、すべての.NET Frameworkライブラリは.NET Teamによる最適化のためにCoreFxに再コンパイルされます。すべての.NET Frameworkライブラリのサポートは、hereについてもっと学ぶことができるように、第1四半期、2017年第2四半期に互換性があると見込まれています。

.NETコアで.NET Frameworkライブラリを使用することもできますが、Windows互換のみになります。

+0

しかし、.NET Coreの全体が完全なFrameworkを使用するのではないでしょうか?それは、今日の.NETアプリケーションを非常に重くする完全なF/Wです。フルF/Wで.NETコアを使用する利点がありますか? – developer82

+0

.NET Coreは.NET Frameworkの最適化バージョンです。 .NET Frameworkには、WPF、Windowsフォームなどの他の多くのサブフレームワークが含まれています。これらのサブフレームワークをすべて.NET Coreで使用することはできません。あなたが使用できる最初のものはASPNET Coreです。エコシステムの詳細については、下記の私のブログを参照してください。 http://kjanshair.azurewebsites.net/fundamentals/dotnetcore –

0

.NETコアに既存のナゲットライブラリを利用する方法はありますか?

はい、これらのライブラリが移植可能である限り(PCL)です。移植可能なライブラリで.NETコアでサポートされていないAPIを使用する可能性はありますが、そのようなライブラリを使用するには、project.jsonで"imports"を使用する必要があります。

.NET Frameworkライブラリでは、再コンパイルが必要です(ただし、おそらくは十分ではありません)。

また、.Net FrameworkでASP.NETコアを使用することもできます。そうすれば、.NET Frameworkをすべて使用することができますが、パフォーマンスの向上を得ることができます。しかし、あなたはLinuxやMac OSに移植性を失います(モノを数えない限り)。

[.Net Coreライブラリ]を[.Net Core]上で動作させるためにラップする方法はありますか?

私の知る限りではありません。

完全な.NET F/Wライブラリを.NETコアに変換するにはどうすればよいですか?それは完全に書き直さなければならないのですか?

通常、完全に書き換えられる必要はありません。しかし、.Net Coreでサポートされていない部分を変更する必要があります。

待っても元々は.Net Coreで省略されていたAPIがすぐに戻ってくるので、状況は良くなります。これは、一部の図書館の著者が.Net Coreをサポートするために急いでいない理由の1つになる可能性があります。

関連する問題