Visual Studio 2015 でWebアプリケーションでMVCを初めてみる

Visual Studio 2015 でWebアプリケーションでMVCを初めてみることにしました。

初心者なのでHello,Worldからスタートしたいと思いますが、まずはどうやってプロジェクトを作るのかなっていうところからです。

 

Hello,Worldができるまでの道のり・・・。

 

(1)Visual Studioで「ファイル」→「新規」→「プロジェクト」をクリック。

(2)「新しいプロジェクト」で「テンプレート」の中から「ASP.NET WEBアプリケーション」を選択し、OK

mvc1

 

(3)テンプレートを「Empty」、「フォルダーおよびコア参照を追加する」で「MVC」にチェックしてOK

mvc2

 

(4)空っぽのMVCの枠が出来がある。

 

 

(5)コントローラーの作成

・「Controllers」右クリック→「追加」→「コントローラー」をクリック

mvc5

 

・「MVC5コントローラー 空」を選択し、OK。名前は「DefaultController」

mvc6

 

DefaultController.csの中身

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace WebApplication1.Controllers
{
    public class DefaultController : Controller
    {
        // GET: Default
        public ActionResult Index()
        {
            return View();
        }
    }
}

 

(6)Viewの作成

・Viewsの「Default」右クリック→「追加」→「ビジュー」をクリックする

mvc7

 

・Viewの名前をコントローラーのActionResultの名前を一致させて、「レイアウトページの使用」はチェックを外します。

mvc8

 

・Index.cshtmlというファイルができあがります。

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div> 
    </div>
</body>
</html>

 

(7)とりあえず動かしてみる

・Viewの中身に適当に記述して表示されるか実行!!

mvc9

 

とりあえずは「ハロー」がでた!!

直書きなので当たり前っちゃあたりまえですね・・・。

 

(8)コントローラーから値を渡してみる。

えーとよくわからないけど「ViewBagとViewData」というものがあるらしい。ControllerとView間でデータの受け渡すためとのこと。まあ、これを使えばいいんだなっということで。

・コントローラーに追記

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace WebApplication1.Controllers
{
    public class DefaultController : Controller
    {
        // GET: Default
        public ActionResult Index()
        {
            ViewData["Message"] = "HELLO,HELLO,";
            return View();
        }
    }
}

 

・Viewに追記

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div> 
        @ViewData["Message"]
    </div>
</body>
</html>

コンパイルしたらうまくいきました。

mvc10

 

で、Modelって

・まずはモデルをつくって。クラスを追加でいいんだと。

mvc3

 

mvc4

 

・Messageという変数を定義して。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebApplication1.Models
{
    public class Class1
    {
        public string Message { get; set; }
    }
}

 

・コントローラーに使うよと値を入れちゃうけんと定義。でViewでmodelを使うよと渡す。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace WebApplication1.Controllers
{
    public class DefaultController : Controller
    {
        // GET: Default
        public ActionResult Index()
        {
            ViewData["Message"] = "HELLO,HELLO,";
            Models.Class1 model = new Models.Class1();
            model.Message = "モデルでのメッセージ";
            return View(model);
        }
    }
}

 

・で、Viewで「@Model」で値を出力するよーって指定。

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div> 
        @ViewData["Message"]
        <br />
        @Model.Message
    </div>
</body>
</html>

 

で結果は、

mvc11

 

やっとモデルでのメッセージが表示された。。あとDBってどーするんだ?

MySQLが起動しない

いつもの通りにmysqlを起動しようとしてコマンドを実行したら、エラーになってしまいました。ソケットを使っているんだとかで。。。

[root@www mysql]# /etc/init.d/mysqld start
Another MySQL daemon already running with the same unix socket.

 

たぶん、「 mysql.sock」が残っているんだろうって調べてみました。

 

 

[root@www mysql]# ls -al /var/lib/mysql/mysql.sock
srwxrwxrwx 1 mysql mysql 0 Sep 16  2015 /var/lib/mysql/mysql.sock

 

やっぱりいましたよ。削除しちゃうのは怖いので名前変更します。「mv・・・」

 

 

[root@www mysql]# /etc/init.d/mysqld start
Starting mysqld:                                           [  OK  ]

 

無事起動しました。ということでごみを残してはいけないのでさっきの名前変更したファイルを削除しました。

 

Outlook.comでメールを見ると受信時刻がずれているときの対処法

gmailに代わって、Outlook.comを今、メーラーとして使用しています。

ふと気づいたのですが、朝受信したメールが昨日の受信日時となっていました。

 

そんなときは下記の手順のようにすると受信日時を治すことが簡単にできます。

 

↓朝8時30分過ぎにメールを受信したのに23時の時間帯に・・・

time1

 

(1)Outlook.comで「オプション」をクリックします。「アカウント管理」の中にある「アカウントの詳細」をクリックします。

time2

 

(2)個人情報のページが表示されるのでタイムゾーンを「東京,日本」に設定します。

time3

 

 

これだけで、メール受信日時が治ります。

 

↓↓ちゃんとした日時に戻りました。

time4

Postgresのチューニングの簡易化

最近はPostgreSQLをメインDBとして利用していますが、チューニングってなんだかんだ面倒で適当にどうにかならないかなと思ってたら下記のような便利なツールがありました。

 

http://pgtune.leopard.in.ua/

 

 

DBバージョン、OSタイプ、 DBタイプ、 メモリ、コネクション数を入れるとおススメの値がでてきます。

 

pgtune

 

 

Officeのカスタムセットアップ

今更ながらOfficeカスタムセットアップメモを書こうと思います。

とりあえず、カスタムセットアップに入るのには下記のようにコマンドプロンプトで実行する。

setup.exe /admin

 

そうするとカスタムセットアップの画面が起動する

 

・・・書き始めたけど、続きは今度更新

 

手元スイッチでインターネットON/OFF装置案

なんとなく思い付きでインターネットON・OFF装置ができるのか構造図だけですが描いてみました。

lan

 

こだわりポイント

・物理的なボタンを押して、切り替えられること。

・全部のネットワーク出力をブロックでなくて特定の出力のみブロックしたい(ファイルサーバーにはアクセスするがインターネットは禁止したい)

・ネットワーク変更をしたくない。(今のままでネットワーク機器の間に入れればどうにかなる)(IPアドレス変更はNG)

 

小型のLinuxマシンは多数見つかったのですがUSBスイッチが思ったようなものがなくてざっくりと上記のように物理的にネットワークを切り替えるLAN切替機を使ったらよいのかなって思いました。

 

フィルタリングはLinuxの方で行うので柔軟な設定ができるかと思います。

 

今度時間があったら試してみようかなと思います。

 

ルーターのファイアウォール機能でどうにかなるって・・・?物理的なスイッチを付けたいのでLinuxでし。

 

PCのスペックを選ぶときに気を付けていること(ビジネス版)

PCでゲームは行いませんのでもっぱらPHPで開発したり、ワード、エクセルで文章を作ったりとしております。

ノートパソコンは、あまり選択肢がありませんので今回は除外をしておきますがデスクトップPCでは、ちょっとしたこだわりを持っています。

↓↓↓こんな感じのデスクトップPCのコンセプトを描いています

大きいファイルを複数同時に、重たい処理を自動的にやっても停止しないパソコン!

具体的には、仮想マシンを2台~3台同時稼働しながら、開発ツールを動かして、ブラウザのタブを20個ぐらい開いて、エクセル、PDFを閲覧して、Dropboxが勝手に動いてて・・・

っていう感じで利用しています。そーなりますよね??

 

 

ということで下記のような感じでパソコンを準備しています。

1.HDDは高速であること

HDDはPCのスペック上最も大事な部分の一つとして考えています。

WDのBlackぐらいのスペックがほしいところです。 SSDを採用している方はSSDであれば特に気になることはないと思います。容量がほしいのでHDDにしています。ドライブもわけると面倒なので1ドライブで2TBまでとしています。3TB以上だと面倒なので。

 

 

 

2.メモリは最大値まで!

そう、メモリは32GBでも64GBでも予算が許す限り、搭載可能なだけ搭載します。意外と16GBしか搭載できないパソコンも多いのでマザーボードを選ぶときは慎重になります。

 

3.CPUは、CoreiXXであれば十分。

やっている内容からすると絶対Corei7の最高CPUがないとNG!ということがありません。

実は、Corei3でも十分やっていけてたりします。

 

 

パソコンが遅いと思ったらまずは、HDDを取り換えてメモリを増設しましょう!!

UX31Aのキーボードの交換

前回の記事からキーボードを注文してからキーボードが届きましたので交換してみたいと思います。

 

えーと、キーボードは・・・。

 

ux31

いろんなものを取り外していかないといけませんでした・・・。

あとで治るのかな・・・どきどき・・。。。

 

 

 

黒いのを取っ払ったら、キーボードです。えーと、ねじがまばら!!そんなもんですかね?キーボードを止めているねじって・・・。

 

 

ux31_2

 

これ以上は写真を撮っていないんですが、交換前のキーボードにはバッテリーを止めるねじ穴があったのですが交換キーボードにはありませんでしたので取り外して接着剤でくっつけました。いいかなそんなもんで・・・。

 

最終的にはくみ上げたのですが、やってしまいました・・・「パットが反応しない!!」

何度かやり直したのですがどこをどうしたのかどうしても戻りませんでした・・・

 

 

 

ということでキーボードは治ったが、パットが反応しなくなった!!

 

まあ、いっかと思って使うことにしました。

Windows10のアップデートを更新したら、ディプレイが縦画面表示となった・・・

動きが遅いなーって思っていたら裏方でWindowsの更新を自動的に実行していたWindows10ですが、再起動したら、なっなーんと、ディプレイが縦型・・・。マウス反応も縦・・・おいおい・・・

 

もうちょっと完成度高くならないかな・・・。

対処は「ディスプレイ設定」から直しました

 

muki

 

向きは「横」です。(横の反対向きというのもの面白いですよ・・・)

 

 

BuddyPressでユーザー登録時に送信されるメールアドレス名を変更する

BuddyPressのユーザー登録時に送信されるメールアドレスの差出人のアドレスの変更方法がわからなくて調べてたのでそれをメモとして残しておきます。

1.下記のプラグインをインストールする

BP Email to WP Mail From Bridge

 

2.function.phpに下記のように追加する。(実際に利用する際は、差出人とか変更してください)

//-- BEGIN BP Email to WP Mail From Bridgeプラグインを追加って送信メールアドレスを変更する --
remove_filter('wp_mail_from', 'bp_core_email_from_address_filter' );
remove_filter('wp_mail_from_name', 'bp_core_email_from_name_filter');

function set_mail_from_address( $email ) {
return '差出人として利用するメールアドレス';
}
function set_mail_from_username( $email_from ) {
return '差出人名';
}
add_filter( 'wp_mail_from', 'set_mail_from_address' );
add_filter( 'wp_mail_from_name', 'set_mail_from_username' );
//-- END BP Email to WP Mail From Bridgeプラグインを追加って送信メールアドレスを変更する --

※修正方法は、インターネットをさまよっていろいろと情報を集めて記載しております。