SEの読んだ本 -8ページ目

SEの読んだ本

SEをしているのですが、仕事に関係の無い本も日々読んでいます。
まずは1週間に1冊程度から、読んだ本の感想をまとめていきたいと思っています。
また、おすすめの本などありましたら、ぜひぜひコメントよろしくお願いいたします。

夏ですね~
暑すぎてわが家のクーラーも連日大活躍ですあせる

本日は、以前読んだ.NET開発技術大全の応用編を読みました。

.NETエンタープライズWebアプリケーション開発技術大全〈Vol.3〉ASP.NET応用編 (マイクロソフトコンサルティングサービステクニカルリファレンスシリーズ)/赤間 信幸

¥3,990
Amazon.co.jp


本書では、.NETを用いたWebアプリの開発において基礎編よりも詳細な内容が書かれています。
応用編なので当然ですか。。。

内容は、、、といいますと、

スケーラビリティの考え方については、DBサーバーはスケールアップで、Webサーバはスケールアウトする形になるがそれはどうしてか。。。

とか、

設計に関しては、レイヤ(論理3階層)やティア(物理3階層)の考え方なども書かれていました。
ちなみにこの辺は結構混同されやすいようで、私も良くわかってませんでした。。。


また状態管理としては、ViewStateと、Sessionの扱いについても書かれていました。

一般的に、ViewStateは1画面中で保持しておきたいデータを格納し、改ざんのチェックなどを確認する目的で利用するようです。
ただし、基本的には暗号化などしないのでセキュアな情報は含まないように設計するのがポイントだそうです。

一方、Sessionは複数の画面間で共有したい情報を格納する目的で利用するようです。
こちらはDBにSession用の領域を作ってそこに格納したりといった使い方ができるので、セキュアな情報はこちらに格納するように設計するのがポイントのようです。


.NETのワーカプロセス、ランタイム、IISなどがリクエストに対してどのように動作するのかといった内部動作も解説されていました。
IISの5.0/5.1と、6.0では内部の挙動がまったく異なるので注意が必要とのことでした。
6.0の方がプロセス間通信が少ないため、パフォーマンスに優れているようです。


あとは、やや開発者よりな内容となりますが、デバッグ・トレース・例外処理 に関しても書かれていました。
Webアプリの構成管理として、machine.config/web.configファイルの内容や、IISサービスマネージャ上の構成管理についてもふれていました。


読み終えてみて感じるのは、
前回の基礎編に比べるとページ数も多くて内容も濃かったなぁ。。。
というところですショック!

全てを習得しきれていない感じはありますが、.NETの全体像把握には役立った気がしますビックリマーク

◆関連記事
.NETエンタープライズWebアプリケーション開発技術大全〈Vol.1〉
.NETエンタープライズWebアプリケーション開発技術大全〈Vol.2〉
UMLモデリング入門
ご存知、東大生タレントの木村美紀さんが書いた本書です!!
ちなみに木村美紀さんのオフィシャルブログがAmebaにありますので、合わせてご紹介します。

ストップウオッチ勉強法
木村美紀の七変化

先日読んだこちらの本でも紹介されていて、気になったので読んでみました。

本書のタイトルどおり、ストップウォッチを使って時間管理するという内容になっています。
自分も受験生の時にこんな本読んでたらよかったなと感じましたあせる

それにしても、木村美紀さんの時間に関するストイックさには脱帽ですショック!
そもそも受験生用に書かれた本書ですが、自分も見習わなきゃ…と新たな発見があったように思っています!!

◆関連記事
A6ノートで読書を超速化しなさい
A6ノートで思考を地図化しなさい
さあ、才能(じぶん)に目覚めよう
若者はなぜ3年でやめるのか?
先週に引き続き、こちらの技術書を読みました。

ASP.NETの基礎編です!!

.NETエンタープライズWebアプリケーション開発技術大全〈Vol.2〉ASP.NET基礎編 (マイクロソフトコンサルティングサービステクニカルリファレンスシリーズ)/赤間 信幸

¥3,675
Amazon.co.jp

まずは、フレームワークについてです。
ASP.NETの特徴に始まり、そのランタイムVerの管理方法なども記載されています。
今までWeb開発は3つの世代を経ているそうです。
 第一世代:コードの中でHTMLを生成する開発方法
 第二世代:HTMLの中にコードを記述する開発方法
 第三世代:HTML(デザイン)とコード(処理)を完全に分離する開発方法

ASP.NETの大きな特徴の1つは、この第三世代の開発方法に対応しているということです。
これは「コードビハインド」として本書でより詳細に記述されています。
コードビハインドとは、HTML(デザイン)部分とコード(処理)部分が完全に別のファイルになるイメージです。

ASP.NETの大きな特徴の2つ目としては、下記のような技術によって開発者が記述しなければいけないコード量が減り、開発生産性を高められるということです。


ポストバック処理
Webページは次々に切り替わるものですが、入力値に基づいてサーバでは次ページを生成する処理を行っています。
今までは、ある1ページの入力値を次ページの生成ロジックに渡していました。
入力値にエラーがあったらエラー用のページを生成したりしていたので、クライアント側のWeb画面とサーバ側の処理ロジックが1対1になることはありませんでした。

そこで、クライアント側とサーバ側が1対1に対応できるように、クライアント側の入力値を対応するロジックに再送するという考えかたが「ポストバック」ですひらめき電球
このポストバックはASP.NETを利用すれば簡単に実装することができます。


検証コントロール
これはユーザーの入力値が不正データだった時にエラーメッセージを表示するというものです。
よく、アカウント登録なんかの時に必須項目の入力もれがあると赤字で「入力してください」とか出るやつです。
これがASP.NETでは完全に部品化されていますので、簡単な操作で実装することが可能です。

データバインド
これはデータベースとの連携技術ですが、ここでも開発生産性を高める工夫があります。
ADO.NETを利用することでデータベースから簡単にデータを抽出できます。
抽出したデータをプールしておく、データセットという概念があります。
これをWeb画面のDataGridコントロールという部品にひも付けるだけで簡単に一覧表を表示できます。

JSP(Java)なんかでは一行ずつ取り出して、表の一行目を生成して…といった処理を全てコーディングする必要があったかと思いますので、全然楽になると思います。

こんな技術のおかげで、下記MVCモデルに近い設計が可能になるようです。
 M:Model    データソース
 V:View    デザイン(HTML)
 C:Controller 処理ロジック


他にはセキュアな設計についても記載されていました。
まずはユーザー入力は基本的に信用しないで、入力検証などの検証ロジックを用意しておくこと。
SQLインジェクションについても注意して、コーディングすること。
などなどの技術的対応方法がいくつか書かれていました。


最後に、勉強用PCのセットアップ方法も書かれていましたのでこれを元に環境を整えて勉強するといいと思います。


■関連記事
.NETエンタープライズWebアプリケーション開発技術大全〈Vol.1〉
UMLモデリング入門
すいすい習得 UMLモデリング
新しい検索方法!