Razor

Posted by muchag | Library & PlugIn & AddIn,Visual Studio |
初回投稿:2019-11-16 (土) 19:41:28 | 最終更新:2019-11-16 (土) 22:00:47

MVC 3 から、標準で導入されたらしい。
Microsoft:ASP.NET Core の Razor 構文リファレンス

【環境】
VS: 2019C
文法

インライン式。
「コードナゲット」とも呼ばれるみたい。


複数行に渡る場合以外は、閉じる必要がない。

埋め込み例

コメント

全て使える。

エスケープ

Razor の根幹となる @ を文字列として表記したい場合は
例によって @@ と、重ねて記述する。

サニタイズ

コードブロック

複数行に渡る処理を書きたい場合は、@{} で記述する。

コードブロック内に出力内容を記述することも可能。


構文

if などの構文を記述する際は、コードブロック拡張版を利用する。


javascript

if などの構文を記述する際は、コードブロック拡張版を利用する。


javascript へ値を渡すときは
‘(シングルクォーテーション)
“(ダブルクォーテーション)
いずれかで囲む必要があるらしい。

参考サイト

vaguely:【ASP.NET Core】Razorで遊んでみる(2018-11-08)

Posted by muchag | Library & PlugIn & AddIn,Visual Studio |
初回投稿:2019-11-16 (土) 19:41:28 | 最終更新:2019-11-16 (土) 22:00:47

インストール -> 8.0.15

Posted by muchag | CentOS,MySQL,VirtualBox |
初回投稿:2019-02-26 (火) 22:09:16 | 最終更新:2019-03-09 (土) 17:00:59

【環境】
MySQL: 8.0.15
CentOS: 7.6.1810
VirtualBox グラフィカルユーザーインターフェース: 5.1.24 r117012 (Qt5.6.2)
リポジトリ
取得

rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm

noarch の前の数値が、前回の 1 から 2 へ増えている。
気になるけど、次回!

確認

yum repolist all | grep mysql
インストール

yum install -y mysql-community-server
起動と停止

// 起動
systemctl start mysqld.service

// 停止
systemctl stop mysqld.service

// 自動起動
systemctl enable mysqld.service
systemctl list-unit-files -t service | grep mysqld
mysqld.service                                enabled
mysqld@.service                               disabled
初期パスワード
確認

cat /var/log/mysqld.log | grep "A temporary password"
2019-03-09T05:40:56.206659Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: hogehoge
変更
ログイン

mysql -uroot -p -hlocalhost
Enter password:

上記初期パスワードを入力。

変更

今回は、my.cnf で設定しただけではダメで
下記処理が必要だった。

パスワード変更
まで面倒なことをしなくても


ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';

こちらでうまくいった。


use mysql;
select user, host, plugin from user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)
タイムゾーン

タイムゾーン

設定

my.cnf 8.0.x

参考サイト

Qiita:CentOS7にMySQL8.0をインストール(2019-02-17)

試行錯誤
起動しない
原因想像

インストール直後に例の「初期パスワードを調べなきゃ」と思ってやり方を探していた際
Qiita:MySQL 8.0 初期設定覚書(2019-02-07)
を見つけた。

初期パスワードを調べなくてよい方法が書かれているようだったので
ロクに調べもせずに、盲従して


mysqld  --initialize-insecure
mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root:

となり、参考サイトとは異なる道順となってしまった。

あれ?と思い、


systemctl  enable  mysqld
systemctl  start   mysqld
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

と起動してみたところ、エラーとなった。


systemctl  status   mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 水 2019-02-27 00:57:05 JST; 16s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 15500 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS (code=exited, status=1/FAILURE)
  Process: 15483 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 15500 (code=exited, status=1/FAILURE)
   Status: "SERVER_BOOTING"
    Error: 2 (そのようなファイルやディレクトリはありません)

 2月 27 00:57:05 localhost.localdomain systemd[1]: Starting MySQL Server...
 2月 27 00:57:05 localhost.localdomain systemd[1]: mysqld.service: main process exited, code=exited, status=1/FAILURE
 2月 27 00:57:05 localhost.localdomain systemd[1]: Failed to start MySQL Server.
 2月 27 00:57:05 localhost.localdomain systemd[1]: Unit mysqld.service entered failed state.
 2月 27 00:57:05 localhost.localdomain systemd[1]: mysqld.service failed.
初期パスワード確認

ちなみにこのタイミングで初期パスワードを確認してみたら


grep -i password /var/log/mysqld.log
2019-02-26T15:54:54.194358Z 5 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

となった。

エラー

ログを確認してみたところ


vi /var/log/mysqld.log

2019-02-26T15:57:05.414331Z 1 [ERROR] [MY-012271] [InnoDB] The innodb_system data file 'ibdata1' must be writable

となっていたので

権限確認

当該ファイルの場所を探し


find / -name 'ibdata1'
/var/lib/mysql/ibdata1

当該ファイルの権限を確認してみたら


ll /var/lib/mysql

ほとんどの権限者が root になっていた。

他の仮想マシンを参照したところ
全ての権限者が mysql になっていた。

あちゃー。。。

再インストール

rm -rf /var/lib/mysql/*
yum remove mysql-community-server
yum install -y mysql-community-server

この時点では


ll /var/lib/mysql
合計 0

続いて


systemctl status mysqld.service
systemctl start mysqld.service

こうしたら


ll /var/lib/mysql
合計 168000
drwxr-x--- 2 mysql mysql      187  3月  9 14:41 #innodb_temp
-rw-r----- 1 mysql mysql       56  3月  9 14:40 auto.cnf
-rw-r----- 1 mysql mysql      155  3月  9 14:41 binlog.000001
-rw-r----- 1 mysql mysql       16  3月  9 14:41 binlog.index
-rw------- 1 mysql mysql     1680  3月  9 14:40 ca-key.pem
-rw-r--r-- 1 mysql mysql     1112  3月  9 14:40 ca.pem
-rw-r--r-- 1 mysql mysql     1112  3月  9 14:40 client-cert.pem
-rw------- 1 mysql mysql     1680  3月  9 14:40 client-key.pem
-rw-r----- 1 mysql mysql     5748  3月  9 14:40 ib_buffer_pool
-rw-r----- 1 mysql mysql 50331648  3月  9 14:41 ib_logfile0
-rw-r----- 1 mysql mysql 50331648  3月  9 14:40 ib_logfile1
-rw-r----- 1 mysql mysql 12582912  3月  9 14:41 ibdata1
-rw-r----- 1 mysql mysql 12582912  3月  9 14:41 ibtmp1
drwxr-x--- 2 mysql mysql      143  3月  9 14:40 mysql
-rw-r----- 1 mysql mysql 25165824  3月  9 14:41 mysql.ibd
srwxrwxrwx 1 mysql mysql        0  3月  9 14:41 mysql.sock
-rw------- 1 mysql mysql        6  3月  9 14:41 mysql.sock.lock
drwxr-x--- 2 mysql mysql     4096  3月  9 14:40 performance_schema
-rw------- 1 mysql mysql     1680  3月  9 14:40 private_key.pem
-rw-r--r-- 1 mysql mysql      452  3月  9 14:40 public_key.pem
-rw-r--r-- 1 mysql mysql     1112  3月  9 14:40 server-cert.pem
-rw------- 1 mysql mysql     1680  3月  9 14:40 server-key.pem
drwxr-x--- 2 mysql mysql       28  3月  9 14:40 sys
-rw-r----- 1 mysql mysql 10485760  3月  9 14:41 undo_001
-rw-r----- 1 mysql mysql 10485760  3月  9 14:41 undo_002

無事に権限者が mysql になった。

前回は何だったのかしらね。。。

Posted by muchag | CentOS,MySQL,VirtualBox |
初回投稿:2019-02-26 (火) 22:09:16 | 最終更新:2019-03-09 (土) 17:00:59

Cordova Index

Posted by muchag | Cordova |
初回投稿:2018-11-23 (金) 17:38:44 | 最終更新:2018-11-23 (金) 17:55:42

丸っきりの書きかけ項目は Not found になる。

基本
  1. インストール
プラグイン
  1. カメラ操作
Tips
がい~ん!(はまったこと)
  1. 解決済み(たぶん)
  2. 未解決
参考

公式:CORDOVA 
Documentation:英語 日本語
日本語ドキュメントは、残念ながら翻訳が追いついていない。

Posted by muchag | Cordova |
初回投稿:2018-11-23 (金) 17:38:44 | 最終更新:2018-11-23 (金) 17:55:42

ファイル表示

Posted by muchag | Eclipse |
初回投稿:2018-08-01 (水) 20:42:18 | 最終更新:2018-08-01 (水) 20:42:42

【環境】
Eclipse: Oxygen (4.7) PHP
OS:Windows10 Pro 64bit
手順
  1. プロジェクト・エクスプローラー右上の ▼ をクリック
  2. [フィルターおよびカスタマイズ]
  3. 「フィルターおよびカスタマイズ」
    1. 「フィルター」タブを選択

ここのチェックを付け外しすれば OK。
チェックが付いているものは、表示されない。

.htaccess

.htaccess や .gitignore などは
「.*リソース」のチェックを外すと表示される。

Posted by muchag | Eclipse |
初回投稿:2018-08-01 (水) 20:42:18 | 最終更新:2018-08-01 (水) 20:42:42

editorconfig-eclipse

Posted by muchag | CakePHP 3.x,Eclipse,Library & PlugIn & AddIn |
初回投稿:2018-03-07 (水) 16:21:41 | 最終更新:2018-03-07 (水) 20:45:00

.editorconfig に対応するためのプラグイン。

CakePHP3 の コーディング規約 を調べていたら
.editorconfig なるものの存在を知った。

これを Eclipse で利用できるようになるプラグイン。

【環境】
editorconfig-eclipse: 0.3.0.201702161018 Beta
Eclipse:Oxygen (4.7)
EPP Marketplace Client:1.5.1.v20160929-1432
OS:Windows10 Pro 64bit
インストール
[ヘルプ]-[Eclipse マーケットプレース] 検索窓に「editorconfig」
「editorconfig-eclipse 0.x」がヒットするので [インストール] ライセンスに同意して [完了]
警告:署名なしコンテンツを含むソフトウェアをインストールしています。
このソフトウェアの真正性または妥当性を実証できません。
インストールを続行しますか?

がーん。。。断念。 😥

Posted by muchag | CakePHP 3.x,Eclipse,Library & PlugIn & AddIn |
初回投稿:2018-03-07 (水) 16:21:41 | 最終更新:2018-03-07 (水) 20:45:00

Localkit が起動しない!

Posted by muchag | Monaca |
初回投稿:2018-02-18 (日) 21:59:11 | 最終更新:2018-02-18 (日) 22:08:47

【環境】
Monaca LocalKit: 2.5.0? → 2.5.1
経緯

ある日突然 Localkit が起動しなくなった。

アプリアイコンをクリックして、処理中のグルグルが断続的に2,3回出たものの
サッパリ起動しない。

Localkit をアンインストールして、再インストールしてもダメ。

原因

不明。

解決

teratail:Monaca LocalKitが起動されません(2017-12-11)
こちらの記事のおかげで解決。

記事にある通り、下記手順にて無事に起動するようになった。

  1. Localkit(おそらく 2.5.0)をアンインストール
  2. 下記2ディレクトリを削除
    1. ローカルディスク(c)/Users/(ユーザ名)/.cordova
    2. ローカルディスク(c)/Users/(ユーザ名)/AppData/Roaming/Monaca Localkit
  3. Localkit 2.5.1 を再インストール

私が戸惑っている数ヶ月の間に、解決記事がアップされていて助かりました。
ありがとうございました。

プロジェクト追加

プロジェクトが綺麗サッパリなくなっていたので

  1. 左ペイン「プロジェクト一覧」右にある+ボタンから
  2. [インポート]-[Cordova プロジェクトをインポート]
  3. 「既存の Cordova プロジェクトをインポート」
    1. 作業ディレクトリ:[参照] からローカルリポジトリ(ディレクトリ)を選択
    2. プロジェクト名:任意
    3. [インポート]
Posted by muchag | Monaca |
初回投稿:2018-02-18 (日) 21:59:11 | 最終更新:2018-02-18 (日) 22:08:47

「OK」「キャンセル」

Posted by muchag | C#,Visual Studio |
初回投稿:2018-01-28 (日) 20:28:51 | 最終更新:2018-01-28 (日) 22:40:07

フォームの「OK」「キャンセル」ボタンのお話。

【環境】
Visual C#: 15.5.4(2017)
キー連動

フォーム表に配置したボタンに「OK」「キャンセル」の挙動を持たせる。
=Enter 押下で反応する「OK」ボタン、ECS 押下で反応する「キャンセル」ボタン。

フォームのプロパティ
AcceptButton:「OK」の挙動をするボタンの Name を設定
CancelButton:「キャンセル」の挙動をするボタンの Name を設定

手書き

下記のように手書きして、Form の Key_Down イベントへ登録する手もある。


private void Login_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
    }
    else if (e.KeyCode == Keys.Cancel)
    {
    }
}
値の受け渡し

値の受け渡し

Posted by muchag | C#,Visual Studio |
初回投稿:2018-01-28 (日) 20:28:51 | 最終更新:2018-01-28 (日) 22:40:07

アプリケーション設定

Posted by muchag | C#,Visual Studio |
初回投稿:2018-01-28 (日) 18:47:49 | 最終更新:2018-01-28 (日) 23:22:14

アプリケーション内の設定のこと。
preference の方が区別が付くかも?

この話、どこかの記事に書いた気がするんだけど
見つけられないので、改めて記述。

【環境】
Visual C#: 15.5.4(2017)
入れ物

プロジェクトのコンテキストメニュー [プロパティ] 左ペイン [設定]

こちらの画面で、1つずつ下記を設定していく。
名前:設定値の名称。任意。プログラム内で使用するので、アルファベットで設定してね
種類:設定値のデータ型
スコープ:
アプリケーション:全ユーザー統一
ユーザー:ユーザー毎
値:値

利用

// 取得
txtUsername.Text = Properties.Settings.Default.LoginUsername;
Properties.Settings.Default.Save();

// 設定
Properties.Settings.Default.LoginUsername = "username";
保存場所

ユーザー設定は、ユーザーの非表示のローカル アプリケーション データ フォルダーのサブフォルダー内のファイルに保存されます。

MSDN:方法 : 実行時にユーザー設定を C# で書き込む

というわけで、SQLite -> 導入 にも書いた通り

C:\Users\[user_name]\AppData\Local\Packages\(おそらくランダム文字列)\LocalState

にあるみたいだけど、上記記事は UWP の場合なわけで
フォームアプリケーションの場合は、パッケージ ID をどこで見ればいいのかしらね~。

Posted by muchag | C#,Visual Studio |
初回投稿:2018-01-28 (日) 18:47:49 | 最終更新:2018-01-28 (日) 23:22:14

DataGridView

Posted by muchag | C#,Visual Studio |
初回投稿:2018-01-23 (火) 14:26:29 | 最終更新:2018-01-23 (火) 17:17:13

データを一覧表示するコントロール。

MSDN:DataGridView コントロール (Windows フォーム)
MSDN:DataGridView クラス

【環境】
Visual C#: 15.5.4(2017)
用途

データを一覧表示するコントロール。

プロパティ

MSDN:DataGridView クラス
一覧はこちらにあるので、逆引きで!

縞々にしたい

MSDN:AlternatingRowsDefaultCellStyle

行ヘッダを消したい

RowHeadersVisible

Posted by muchag | C#,Visual Studio |
初回投稿:2018-01-23 (火) 14:26:29 | 最終更新:2018-01-23 (火) 17:17:13

DbDateTimePicker

Posted by muchag | C#,Visual Studio |
初回投稿:2018-01-23 (火) 14:12:17 | 最終更新:2019-06-10 (月) 10:59:18


@IT:DateTimePickerコントロールでDBNullを扱うには?[C#、VB](2008-01-31)

MSDN:DateTimePicker コントロール (Windows フォーム)
MSDN:DateTimePicker クラス

【環境】
Visual C#: 15.5.4(2017)
経緯
デフォルトの DateTimePicker

DateTimePicker を使いたい。
だけど、null のときに日付が入ってしまうと
空欄にしておきたいユーザが、誤入力をしてしまう。
むぅ。

設計の問題?

Google 先生に聞いてみると、色々とあるみたいだけど
ほとんどの情報が古い。。。

何で改善されないんだろう。
どこかにも書いてあったけど、DateTime 型を利用するのに
null は普通に使うと思うんだけどな~。

私の設計が悪いのかしらね。

記事

それでも、DateTimePicker が null を許容できないことは
当時?みなさんが試行錯誤されたようで、下記のような記事を見つけた。
codeguru:Yet Another Nullable DateTimePicker Control(2005-04-25)
CodeZine:Nullを許容するDateTimePickerコントロール(2005-05-13、日本語訳記事)

null に対応してくれる DateTimePicker

現時点では、よい方針を思いつかないので
DbDateTimePicker を使ってみた。

@IT:DateTimePickerコントロールでDBNullを扱うには?[C#、VB](2008-01-31)
おおお、奇しくも後1週間で10周年w

作成

カスタム コントロールを追加 して
自動生成ソースに、参考サイトのソースを、ちみっと調整してコピペ。


public partial class DbDateTimePicker : DateTimePicker
{
    public DbDateTimePicker()
    {
        InitializeComponent();
    }

    protected override void OnPaint(PaintEventArgs pe)
    {
        base.OnPaint(pe);
    }

    [Bindable(true), Browsable(false)]
    public new object Value
    {
        get
        {
            if (base.Checked)
                return base.Value;
            else
                return DBNull.Value;
        }
        set
        {
            try
            {
                if (Convert.IsDBNull(value))
                {
                    base.Checked = false;
                }
                else
                {
                    base.Value = Convert.ToDateTime(value);
                    base.Checked = true;
                }
            }
            catch (Exception ex)
            {
                base.Value = Convert.ToDateTime(value);
                base.Checked = true;
            }
        }
    }
}
配置

アプリ側にコントロールを追加 して
フォーム上へ配置。
dbdtpDate

コントロールのプロパティから
ShowCheckBox を True

Posted by muchag | C#,Visual Studio |
初回投稿:2018-01-23 (火) 14:12:17 | 最終更新:2019-06-10 (月) 10:59:18
次ページへ »