カテゴリー: .NET

.NET Framework, .NET Core に関する話題が中心です。

ブログ管理用Webアプリ(SAFE Stack)の.NET Core 3.x 移行

先日、当ブログの.NET Core 3.1への移行という記事を書きました。

今回はF#でブログ管理用Webアプリ開発という一連の記事で作成した管理用アプリを.NET Core 3.xに移行しました。

前回の当ブログシステムと違い、今回の対象アプリはSAFE StackというSPA作成フレームワークを使っています。言語はF#になります。

SAFE Stackについてはこの記事で簡単にご紹介しています。併せてお読み頂けるとうれしいです。

ASP.NET Coreのバージョンを2.1から3.1にしました。

LTS版の.NET Core 3.1が正式リリースされたので、当サイトもこれで3回目のアップグレードです。

前回は2.0から2.1へのアップグレードだったので、そこまで大変ではありませんでした。
多少ハマりましたけど...

今回は2.1から3.1へと、メジャーバージョンのアップグレードとなるのでちょっと不安がありましたが、まぁ、なんとかなりました。

ハマりポイントは結構多かったかもしれません...。

WPFでもValidationAttributeのメッセージリソースの既定値を設定したい - その2

前回の記事、WPFでもValidationAttributeのメッセージリソースの既定値を設定したいの最後の方で「ReactivePropertyにも対応したい」ということでReactiveProperty用の拡張メソッドも作ってみました。

でも、ひとつひとつに設定するのも面倒ですよねぇ。

ということで、ReactiveProperty用にクラスライブラリプロジェクト(DataValidation.ReactiveProperty)を追加して、まとめて処理するヘルパメソッドを追加してみました。

ソースは前回のものをそのまま修正してGitHubのこちらに置いてあります。


2019/09/28
.NET Core 3.0でWPFしてみました。Nekoni.DataValidation
という記事で.NET Core 3.0のサンプルプロジェクトを追加しています。併せてご覧ください。


WPFでもValidationAttributeのメッセージリソースの既定値を設定したい

WPFにてViewModelやModelでデータ検証を行う際に System.ComponentModel.DataAnnotationsの検証属性を使用することが多いのではないかと思います。その場合、メッセージリソースと共に使用したいんじゃないかと思いますが、

/// <summary>
/// メールアドレス
/// </summary>
[Display(Name = "メールアドレス")]
[Required(ErrorMessageResourceType=typeof(ErrorMessage), ErrorMessageResourceName="Required")]
[EmailAddress(ErrorMessageResourceType=typeof(ErrorMessage), ErrorMessageResourceName="EmailAddress")]
public string MailAddress {
    get =>  _MailAddress;
    set
    {
        if (_MailAddress == value) return;
        _MailAddress = value;
        OnPropertyChanged();
    }
}
private string _MailAddress;

のように、エラーメッセージリソースのTypeとリソースキーを指定することになります。
この記述、例えば必須チェックのメッセージなんて全て一緒になることがほとんどなのに、全ての項目にやたら長い属性指定を付けなければいけません。

ASP.NET MVCには DefaultModelBinder.ResourceClassKey や、~AttributeAdapterを使って既定のメッセージリソースを指定する方法があります。

今回は「WPFでもどうにかならないのか?」と思い1週間ほど格闘してみました。
場合によってはWPF以外でも使える...かもしれません。

格闘結果のソースはGitHubのこちらに置いてあります。
煮るなり焼くなりお好きにどうぞ。


part2の記事を書きました。
これに伴い、GitHubのソースも変更しています。


2019/09/28、さらにさらに、
.NET Core 3.0でWPFしてみました。Nekoni.DataValidation
という記事で.NET Core 3.0のサンプルプロジェクトを追加しています。併せてご覧ください。
本記事中のConfigurationクラスは上記の記事中で、ValidationConfigという名前に変更しています。
最新ソースと一緒に本記事を読まれている方は、適宜読み換えていただけると幸いです。


VSCode拡張機能のプロジェクトテンプレート作成(yo code)でエラー発生。

先日、npm でエラーが発生してビルドに失敗しました。という記事をアップしたばかりなのですが、またまた別のトラブルに見舞われました...

当サイトのブログ用エディタはVSCode拡張機能で実装しているのですが、機能追加を思い立ちました。
最新のVSCode拡張機能テンプレートのdependenciesに合わせようと、新規テンプレートを作成したところで、以下のようにエラーが...。

SAFE Stackにログイン画面を追加 -- JWT(Json Web Token)による認証/認定の実装

前回の記事、Elmish ... メッセージがいっぱいはFable.ElmishでTaxonomyマスタ保守画面をどのように実装したか?というお話でした。
マスタ保守画面の機能としては、その前のF#でDapperを使ったDBアクセスと併せて、ひとまず完了したつもりですが、このままでは誰でもデータを変更できてしまうのでログイン画面を追加します。