ASP.NET MVC: ASP.NET MVCアプリを.NET Coreへ移植

 このブログのエンジンのフレームワークとしてASP.NET MVCを使っているが、.NET Framework上で動作するものを使っていた。今年の春だったか夏にLinuxなどへも移植を可能にした.NET Coreがリリースされており、もともとこれで動かすつもりだったのでブログエンジンをon .NET Frameworkからon .NET Coreへ移植した。

 
 実際の移植作業としてやったのは、
・プロジェクト立て直し
・依存ライブラリ入れ(.NET Core対応のものにする)
・ビュー、コントローラ、モデルもろもろコピペ移動
・動かなくなっている組み込みクラスの代替(一つだけだった)
という程度だった。VSで新しいプロジェクト作って、そこでNugetでライブラリ入れて、ファイルをコピペでプロジェクトに入れて、動かなくなったクラスを一つ書き換えた。30分程度で済んだ。
 動かなくなったのはセキュアなトークンの発行メソッドである。なので・・・
using System.Security.Cryptography;

を入れて、
private static string GetToken()

{
var rng = RandomNumberGenerator.Create();
var buff = new byte[25];
rng.GetBytes(buff);
return Convert.ToBase64String(buff);
}

のようなトークン生成関数を用意した。もともとあったのは下記のメソッド。
private static string GetToken()

{
var token = "";
using (var rng = new RNGCryptoServiceProvider())
{
byte[] tokenData = new byte[32];
rng.GetBytes(tokenData);

token = Convert.ToBase64String(tokenData);
}

return token;
}



 あとproject.jsonでランタイムの指定が必要かも。テストする環境やデプロイするサーバの環境をターゲットに指定する。
"runtimes": {

"win8-x86": {},
"win10-x64": {}
},


 .NET Coreへのアプリ移植は案の定、楽に進んだ。大筋問題ないようなので、あとは細部がおかしなことになっていないか確認していく。
comment: 0