MVC5 いい感じです

ここ最近、Visual Studio2013 で ASP.NET MVC5 について学習してましたが、
タイミング良く、ほどよい規模の案件に恵まれ、実戦投入しました。

最初はWebFormの開発とはアプローチが異なるのでかなり戸惑いが有りましたが、
慣れてるまで、それほど時間はかかりませんでした。
MVCの基本的な考え方、MVC独自の機能などがある程度理解できれば、
WebFormの開発で得たノウハウも活用出来る場面も多くなじみやすいと思います。

そして、なにより重要なのは MVC のFramework に加えて
Entity Framework
LINQ(LINQ to SQL)
これらを積極的に組み合わせることで、
DBを使ったアプリケーションの開発がかなり効率化できるという実感を持てました。

正直なところ最初は
「Entity Framework で Code Firtst は邪道じゃないか?」
「ましてやLINQなんか...」
などと考えていましたが、実際に開発場面で使うと、DBとプログラムがシームレスになり
これが、今ままでになかった感覚で、心地よさすら覚えてきます(笑

まだテクニック的な面で学ぶべきものは多いような気はしてますが、
しばらく、この開発スタイルにはまってしまいそうです。

久しぶりにいいものに巡り会えた感じです。


状況が落ち着いたら、ノウハウやテクニックをここでまとめていこうかと考えています。

最近のハードディスクの壊れ方

某所(笑)より、PCの調子が悪いので見て欲しいとの依頼がありました。

DEL Optiprex 790
CPU:Intel i5
メモリ:4GB
内蔵ハードディスク:2.5インチ 250GB × 1
OS:Windows7 Pro(32bit)

現象的には、日本語入力中、断続的に止まるような動きをして、
まともに入力出来ないとのこと。
実際試して見ると、そのとおりでイライラして使い物には成りません。

最初は、アンチウイルスソフトなどが邪魔しているのかとか思い、
スタートアッププログラムを全て止めた状態にしましたが現象変わらず。
セーフモードで起動してもダメです。

BIOSのアップデートが出ていたので、これもやってみましたがダメ。

そうこうしているうちに、ハードディスクのアクセスランプの動きが妙な
動きをしていることに気がつきました。

操作とは無関係に、ヤケにアクセスランプが点灯するのです。
そして、点灯中はキーボードの入力を受け付けないことも解りました。
チェックディスクも行いましたが結果は異常なし。
でもこれは明らかに異常。

これまでの観察結果からハードディスクの異常と判断し、
ハードディスクを交換することにしました。

この際、ハードディスクではなく、価格も落ち着いてきた
SSDに転換してみることにしました。

クローン作製用のソフトで現在のハードディスクの内容をコピーしたのですが、
これが大変...
通常なら、30分ぐらいで終わりそうな容量なのに3時間程掛かりました。
ここで、ハードディスクの異常は決定的になりました。
まだ、コピーできただけよかったのですが...

コピーも何とか無事完了しいよいよ転換し、起動。
無事起動し、その後の動作も問題ないようです。
転換前にあれほど頻発していた、プチフリーズ現象も皆無になりました。
SSDにしたことで起動時間も早くなりました。

最近のハードディスクってこんな壊れ方をするんですね。

ともあれ、早期発見でダメージもなく回復できたのでよかったです。
PCも人間と同じで、早期発見は大切です!

これは便利!「最前面でポーズ」

新しいものではないので、知っている方もおられると思いますが...
最近見つけた便利で面白いフリーソフトです。

最前面でポーズ - Pauseキーでウィンドウを最前面に表示

Windowsを使っていて、幾つもの画面を開き作業していると
見たい画面が後ろに隠れてしまい、そのたびに「イラッ!」と
している方も多いのでは無いでしょうか?

そこでこの「最前面でポーズ」の登場です。

インストール(と言っても任意のフォルダーにプログラムを置くだけです)し
起動したら、最前面に出したいウインドウを選択アクティブにして
キーボードの「Pause」キーを押す。これだけです。
解除するときには再度「Pause」キーを押します。

ほとんど使い事のない「Pause」に割り当てているところが
なんとも憎いというか、作者のセンスの良いところですね。

「スタートアップ」に登録しておけば、次回からは
Windowsの起動と共に「最前面でポーズ」が起動されます。


補足)
↓↓↓ちなみに「スタートアップ」のフォルダーはここです。↓↓↓

Windows7 or 8(Cドライブにインストール)の場合

C:\Users\(ログインユーザー名)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

エクスプローラーから場合

PC>ローカルディスク(C:)>ユーザー>(ユーザー名)>AppData>Roaming>Microsoft>\Windows>スタートメニュー>プログラム>スタートアップ

のように見えます。

この[Startup(スタートアップ)]フォルダーに、起動したいプログラムのショートカットを置きます。

Visual Studio 2013 で ODP.NET 64bit版 を使う!

Visual Studio 2013 で Oracle の ODP.NET を使った
64bit Webアプリの開発環境の作り方です。

実はここ数日、大ハマリしてました。(汗
下記にポイントを列挙しますが、まだ誤解等があるかも?

この記事を見た方、お気づきの点ございましたら、ご指摘頂ければ幸いです。

*2015.03.31 一部訂正

                                                                                                                                        • -

以下内容を明確にするため、
ODP.NETのマイナーバージョンの相違で発生する現象には触れていません。

■目指す状態
◆Server
OS:Windows2012(64bit)
IIS8(64bit)
DB:Oracle Database 12c(64bit)
Oracle Data Access(64bit)

◆Client(開発環境)
OS:Windows8.1 Pro(64bit)
Visual Studio2013 Pro(32bit)※
Oracle Data Access(32bit)
Oracle Data Access(64bit)
(↑32/64bit 両方インストールします。詳しくは後述)
IIS8.5 Express(64bit)

※運用環境でASP.NET Webアプリを64bit ネイティブで
動作させる為の開発環境を作る。


■留意事項
Visual Studio2013 が 32bit という事 ※ココ重要


■環境作成手順
◆Server
IIS8とASP.NET 4.5 をセットアップ

Oracle Database12c(64bit)インストール
ODP.NET(64bit)もインストールされる
インストールフォルダーは c:\Oracle 等にする

Oracle Data Provider for.NET の環境設定 ※ココ重要
(Oracle Home)\odp.net\managed\x64\configure.bat
を実行する。
これを忘れるとWebアプリ実行でSqlDataSourceなどの
Oracle.ManagedDataAccess.Client」の呼び出して
「要求された .net framework データプロバイダーが見つかりません」などの
エラーが返される。


◆Client(開発環境)
Visual Studio2013 インストール

・ODTwithODAC121012(32bit)インストール
32-bit Oracle Data Access Components (ODAC)
with Oracle Developer Tools for Visual Studio

インストールフォルダーは c:\Oracle 等にする
Oracle home は「OraClient12Home1」にする。

C:\Oracle\product\12.1.0\client_1\Network\Admin\tnsnames.ora


・ODAC121012(64bit)インストール
64-bit ODAC 12c Release 2 (12.1.0.1.2) for Windows x64

※32bit版とは異なるフォルダーにインストールする
インストールフォルダーは c:\Oracle64 等にする ※ココ重要!
Oracle home は「OraClient12Home2」にする。 ※ココ重要!

C:\Oracle64\product\12.1.0\client_1\Network\Admin\tnsnames.ora

64bit版のODACはVisual Studio に対応している訳ではないので
「ODT」は付いていないのがミソ

Oracle Data Access
Visual Sutudio用の(開発ツールとしての)32bit版と
Webアプリ(ランタイム)で使う64bit版の両方が必要

Visual Studio 2013 の設定
・デバックで使う IIS Express の設定
[ツール]-[オプション]-
[プロジェクトおよびソリューション]
   (開いた直後は見えないかも?[環境]の上にある)
    [Webプロジェクト]
Webサイトおよびプロジェクト用IIS Expressの64ビットバージョンを使用
にチェックする。(デフォルトでは32bitで動作する)

・プロジェクト内の参照設定
64bit版を参照する
Oracle.DataAccess
(C:\Oracle64\product\12.1.0\client_1\ODP.NET\bin\4\Oracle.DataAccess.dll)
Oracle.ManagerDataAccess
(C:\Oracle64\product\12.1.0\client_1\ODP.NET\managed\common\Oracle.ManagedDataAccess.dll)
Oracle.Web
(C:\Oracle64\product\12.1.0\client_1\ASP.NET\bin\4\Oracle.Web.dll)
※「ローカルコピー」「特定バージョン」などのプロパティの設定は環境に合わせて設定

・サーバーエクスプローラ
32bit版を使う(何も考えなければ見えるのは32bit版)
「現在使用中のtnsnames.ora」には
C:\Oracle\product\12.1.0\client_1\Network\Admin\tnsnames.ora
が表示されているハズ

・構成マネージャー
Debug :x64
Ralease:x64

※表面的には32/64bitのどちらで動作しているかわかりにくい。
スタートアップのフォームで下記のようなコードを埋め込めば
確実に確認出来る。

(C#の場合)

if (System.Environment.Is64BitProcess)
{
    this.Label1.Text = "64bit";
}
else
{
    this.Label1.Text = "32bit";
}

・Webを発行
発行内の「設定」
「ファイル発行オプション」
□発行中にプリコンパイルする はチェックしない ※ココ重要

発行中にプリコンパイルすると
「ファイルまたはアセンブリ '****'、またはその依存関係の
1つが読み込めませんでした。
間違ったフォーマットのプログラムを読み込もうとしました。」
という致命的なエラーが表示され発行できない。

                                                                                                                                        • -

「納品をなくせばうまくいく(納品のない受託開発)」を読みました。

一気に読みました。

僭越ながら感想をちょっこと...

私が独立開業したのは2002年8月でした。
"本当の「コンピュータシステム」をもっともっと皆様と共に作りたい。"
という想いからの独立でした。

"本当の"との言葉には、
・顧客と直接対話し、長期的な信頼関係を築きたかった。
・システム作りの理想は、構想から設計、製造、運用、保守に至るまで
 分業することなく、全てを責任もって行いたかった。
というような背景がありました。

そして今日まで10年以上、顧客の皆様に支えられ、
その実現に精一杯努力させて頂きましたし、
勿論、これからも継続して行きたいと考えています。

そんな私は、この「納品のない受託開発」に同意出来る部分を多く感じました。

従来の受託開発のスタイルからすれば、「ずいぶん常識外れだ」とか
「そんなのはあくまで理想論で、ビジネス的には非現実的だ。」と思う
方もいるでしょう。

しかし、従来のスタイルそのものが、時代に合わなくなって、
ビジネスの機会そのものを減らしている現実もあると思うのです。

SIそのものはこれからも無くならないどころか、
ますます必要とされることは間違いないと思うのですが、
求められるSIerの姿の変化に、未だに気づいていないSIer
なんと多いことか...

本書の中で、著者も何度も書かれていますが、
このスタイルが全てのSIの場面で通用する方法だとは思いません。
大規模なシステム構築や、ある程度の規模以上のSIerなどには向かないでしょう。

サービスを受ける顧客の想定としては、スタートアップ企業が
インターネット上に構築するサービスに一番フィットすると思いますが、
中小企業の業務システムでも十分適用できる開発手法であり、
実用的なビジネスモデルだと思います。

現在の私のスタイルに、このビジネスモデル全て適用できるものではありませんが、
かなりの部分で共通しているところもあり参考になります。(特にマインド的な部分かな...)

「納品のない受託開発」は究極のサービス指向の受託開発スタイルだと思います。



[PR]
業務システムでお悩みの経営者、管理者の皆様!
KATSU System Design 鈴木勝俊 が直接伺います。
まずは業務の分析から、ご一緒に始めましょう!

新規開発はもとより、
古くなってしまった環境(ハードウエア、ソフトウエア、開発言語)からの
再構築作業も得意分野です。
オフコンからの移行相談も可能です)

静岡県静岡市浜松市の範囲を中心に活動しています。
システム開発 業務システム 掛川市 システムエンジニア SI 鈴木勝俊

Snipping Toolはご存じですか?

Windowsを使っていて、画面キャプチャを撮りたい時、どうしてますか?

「Print Screen」キーで全画面、
Ctl + Alt +「Print Screen」でアクティブウインドウ
のキャプチャーが撮れる(クリップボードに貼り付けされる)ので
それをExcelやWordに貼り付けている。

という方は多いと思います。
しかし、その方法ではキャプチャーされる範囲が大きく
必要な所を切り出したりするとなると、画像編集ツールが必要になり、
急に敷居が高くなります。

もしくは、画面キャプチャーソフトを入手しそれを使っている。
という方も多いと思います。

Windows7以降には、画面キャプチャーツールが標準で備わっています。
これが結構使えます。

[スタート]-[すべてのプログラム]-[アクセサリ]と辿ると
Snipping Tool」というものがあります。

詳しい使い方は
WindowsのSnipping Toolで画面をキャプチャーする:Tech TIPS - @IT
等を参考にして頂ければと思いますが、
画面単位の他に、任意の大きさの四角形、任意の形でキャプチャーが撮れて
編集も出来ます。

標準ツールにしては良くできていて、使えるツールなのに、
知名度は低いようです。このツールの存在を憶えておけば、
標準機能なので、PCが変わっても使えます。 

資料作りや、ブログ記事作りの際に活用しましょう。


追記
頻繁に使う方は、
[スタート]-[すべてのプログラム]-[アクセサリ]と辿って
Snipping Tool」の上で右クリックし、
「タスクバーに表示する」をクリックすれば、デスクトップ画面下のタスクバーに
表示されれば、必要な時にスグに呼び出せます。
※「タスクバーに表示する」も以外に使われていないような気がします...
※好みで「スタートメニューに表示する」のも良いかと思います。

Windows 7 Starter にはこのツールは実装されてません。
#まあ、Starterってバージョンは、ネットブックとかに搭載された
#バージョンなので、使われている方は少数派だと思います。




[PR]
業務システムでお悩みの経営者、管理者の皆様!
KATSU System Design 鈴木勝俊 が直接伺います。
まずは業務の分析から、ご一緒に始めましょう!

新規開発はもとより、
古くなってしまった環境(ハードウエア、ソフトウエア、開発言語)からの
再構築作業も得意分野です。
オフコンからの移行相談も可能です)

静岡県静岡市浜松市の範囲を中心に活動しています。
システム開発 業務システム 掛川市 システムエンジニア SI 鈴木勝俊

ブログの勉強に良い教材を見つけました!

ブログを見直すにあたり、今一度いろいろ勉強したいと思ってる今日この頃です(笑

ちょうどそんなとき、参考になりそうなYoutubeを見つけました。

宇田和志 - YouTube

(ウダカズシ)さんの

中小企業・個人事業主様へ
ブログなら集客できます!

というタイトルのYoutubeチャンネルです。
しっかり内容も練られてますし、
ほほう...と思うノウハウもたくさん詰まっています。

過去の動画をちょっと遡ると、
これが同じ人物かと思うほどイメチェンされてますが、
その理由もおもしろい。
実は、私が宇田さんを知ったのは、そのイメチェンのきっかけになった
他のYoutubeチャンネルなんです。

やっぱり、イメチェン後の方が良いですよ!
ご本人は「気に入らない」と言ってますが、
やはり大先輩の仰ることは間違いないです。(笑

まあ、ともかく、これからブログを始めようとか、
私のようにブログを見直そうとか考えている人は
過去の動画もしっかりチェック!です。



[PR]
業務システムでお悩みの経営者、管理者の皆様!
KATSU System Design 鈴木勝俊 が直接伺います。
まずは業務の分析から、ご一緒に始めましょう!

新規開発はもとより、
古くなってしまった環境(ハードウエア、ソフトウエア、開発言語)からの
再構築作業も得意分野です。
オフコンからの移行相談も可能です)

静岡県静岡市浜松市の範囲を中心に活動しています。
システム開発 業務システム 掛川市 システムエンジニア SI 鈴木勝俊