概要
アクセスログの出力点が net48 版と Core 版で食い違っている。
|
ログ出力点 |
net48 MyBaseMVController |
7つ:OnActionExecuting(----->) / OnActionExecuted(<-----) / View(IView, object)(----->>) / View(string, string, object)(----->>) / OnResultExecuting(----->, Debug) / OnResultExecuted(<-----, Debug) / OnException(<-----, Error) |
Core MyBaseMVControllerCore |
3つ:OnActionExecutionAsync の前後(-----> / <-----)と MyMVCCoreFilterAttribute.OnException |
Core では View() / OnResultExecuting / OnResultExecuted に相当する出力点が無い。
実害
ビューのレンダリング区間がアクセスログに出ず、性能測定の粒度が粗くなる。
移植漏れと見られる根拠
- net48 の漏斗(
View(IView, object) / View(string, string, object))は Core に対応オーバーロードが無く(マスタページ概念が無い)、機械的移植では落ちやすい。
OnActionExecuting/Executed は Core 側でコメントアウト+「OnActionExecutionAsyncに移行」と理由が明記されるのに、View() / OnResultExecuting / OnResultExecuted は跡形が無い。ヘッダのイベント順コメントには列挙されているのに実装だけが無い。
- net48 は 2015〜2017 に段階的にログ出力点が増えた履歴があるが、Core は 2018/04/19 の新規作成でその積み上げを引き継いでいない。
期待する挙動
Core MVC でもレンダリング/結果実行の区間を含め、net48 と同等の出力点でアクセスログを出す
(MyMVCCoreFilterAttribute は ActionFilterAttribute を継承しており OnResultExecuting/Executed を実装可能)。
概要
アクセスログの出力点が net48 版と Core 版で食い違っている。
MyBaseMVControllerOnActionExecuting(----->) /OnActionExecuted(<-----) /View(IView, object)(----->>) /View(string, string, object)(----->>) /OnResultExecuting(----->, Debug) /OnResultExecuted(<-----, Debug) /OnException(<-----, Error)MyBaseMVControllerCoreOnActionExecutionAsyncの前後(----->/<-----)とMyMVCCoreFilterAttribute.OnExceptionCore では
View()/OnResultExecuting/OnResultExecutedに相当する出力点が無い。実害
ビューのレンダリング区間がアクセスログに出ず、性能測定の粒度が粗くなる。
移植漏れと見られる根拠
View(IView, object)/View(string, string, object))は Core に対応オーバーロードが無く(マスタページ概念が無い)、機械的移植では落ちやすい。OnActionExecuting/Executedは Core 側でコメントアウト+「OnActionExecutionAsyncに移行」と理由が明記されるのに、View()/OnResultExecuting/OnResultExecutedは跡形が無い。ヘッダのイベント順コメントには列挙されているのに実装だけが無い。期待する挙動
Core MVC でもレンダリング/結果実行の区間を含め、net48 と同等の出力点でアクセスログを出す
(
MyMVCCoreFilterAttributeはActionFilterAttributeを継承しておりOnResultExecuting/Executedを実装可能)。