ASP.NET勉強会 -2ページ目

第2回 初心者向けASP.NET勉強会ログ

第2回はTwitterもどきのアプリケーションを作成しました。

デモ内容はこちら


RepeaterコントロールとSqlDataSourceを接続することでSQLServerからデータを取得し画面に表示するアプリケーションを実現。

通常は、SELECT文を書いて、それを1行ずつ取得し画面表示を行うが、ASP.NETはそんなことはせずにコントロールを接続するだけでできてしまう。

1. SQLServerの基礎講座

途中、SQLServerに関する簡単な説明を行った。

データベースの型はざっくり言うと3つしかない。

・文字列型(Varchar, NVarchar, Charなど)
・数値型(Number, intなど)
・日付型(Date, Datetime, Timestampなど)

(Question) 同じ文字列でもいくつもあるが使い分けはあるのか?
(Answer) Charは固定長なので4byteで取った場合に3byte入っている場合でも4byte取得され1byte分はスペースで取得されてしまう。varcharは可変長なので同じく4byteで取って3byte入っている場合は普通に3byte取れる。nがついている場合(nchar, nvarchar)はbyteではなく文字数で取る。なのでnvarchar(5)であれば5文字分取る。半角、全角関係なく1文字は1文字の扱いとなる。

2. コードビハインド

aspxに直接、SQL分を書くことを説明したことに対する質問。

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
SelectCommand="SELECT * FROM [TwitterTbl] ORDER BY [送信日時] DESC"
</asp:SqlDataSource>

(Question) aspxに直接、SQL文が書かれているが、画面の入力等によって条件を記述するにはどうしたらよいか?
(Ans) aspxでコントロールを定義すれば、vbファイルにも記述できる。つまり以下のように記述が可能。

SqlDataSource1.SelectCommand = "SELECT * FROM [TwitterTbl] ORDER BY [送信日時] DESC"




第2回 初心者向けASP.NET勉強会

Microsoft ASP.NETによるWebアプリケーション勉強会を開催します。

~ 対象者 ~
  • プログラミング未経験者
  • Webプログラムの基礎知識を知りたい方
  • PHP、Javaは分かるが.NET技術に興味のある方
~ 勉強会内容 ~
  • Visual Studio Web Developerを利用した簡単なアプリケーションを作成します。
    動作確認するまでデモします。受講者も一緒に操作して感覚をつかんでください。
  • Webアプリ、ASP.NETの基本的な考え方について説明します。
~日程など~
  • 開催日時 : 8 / 8 (日)  18:30~20:30
  • 場所 : 池上会館 小研修場
  • 参加費 : 2,000円
  • 持ち物 : ノートPC
     ※事前にVisual Studio Web Developerをインストール願います。インストール方法はこちら
  • 定員 : 10名
    (8/5までに3名以上の申し込みがない場合は中止します)

お申し込み・お問合せは以下のいずれかを選択してください。

*メールフォームで質問・申し込みする
※メールアドレスの記入が必要です

*ATNDで質問・申し込みする
※ メールアドレスの記入が不要です。mixi, google,yahoo等のアカウントがあれば簡単に申込みできます

*twitterで質問・申し込みする
※ twitterアカウントが必要です。私宛にダイレクトメッセージを送ってください

*mixiで質問・申し込みする
※ 私宛にメッセージを送ってください。

第1回 初心者向けASP.NET勉強会ログ

開催日時:2010/7/25 18:30~20:30
参加者:3名



1. オウム返しアプリケーション解説

メッセージを入れたら返すだけのアプリケーションのデモを行った。
言語はVB.NETを選択。もちろんC#でもできるが、個人的にVB.NETに慣れているので。
(Question) "Dim"って何? (Ans) 変数を定義するときにつける宣言文。"Dim a As String" これから変数aを定義します。aは文字列(String)とします。という意味。今回は説明をしなかったが、メソッド(関数)内で変数を定義する場合は"Dim"が必要だがインスタンス変数(クラスの属性)についてはDimは使わない。Public a As StringとかPublic、Privateをつけるのが一般的。


2. ASP.NETの仕組みについての解説

ASP.NETの説明の前にWebの基本的な仕組みの話をした。WebはRequest-Responseが基本。


Webブラウザ(IEとか) ---Request--> Webサーバ
             <--Response--

Requestはサーバのホスト(IPアドレス)、ポート番号、取得するファイル名を指定する。つまりURL。

http://ホスト名:ポート番号/xxxx/yyy.aspx(ファイル名)

Responseは単純に言えばhtml。実はこれしかできない。

(Question) Requestするときにブラウザに入力した情報は渡せないの?
(Ans)渡せます。方法は2つあって、GETとPOST。GETはURLに付加する。POSTはURLとは別に"おまけ"の項目として渡す。渡し方はKeyとValueのセットで送る。


[GETの場合]
http://hostname/xxx/yyy.aspx?AAA=BBB&CCC=DDD

[POSTの場合]
http://hostname/xxx/yyy.aspx
裏でおまけ項目(AAA=BBB&CCC=DDD)をサーバに渡す

※AAA、CCCがKey。BBB、DDDがValue


なので、Webは単純にhtmlを返すだけ。だからASP.NETは動的にhtmlを返している。
ASP.NETは以下の2つのファイルを使うだけ。

AAA.aspx
AAA.aspx.vb

ブラウザからはaspxを指定する。aspxはHTMLのひな形(デザイン部分)である。aspx.vbはボタン等を押したときのイベント定義。つまりこのイベントの中でaspxのコントロールの読み書きを行う。時にはデータベースへの接続も必要でしょう。(今回はオウム返しするだけなのでラベルに値をセットするだけ)ASP.NETはaspxとイベントの動作から動的にhtmlを作り上げる。

[イメージ]

AAA.aspx   → ASP.NET → html → Webブラウザへ
AAA.aspx.vb


3. その他

(Question) 新しいプロジェクトと新しいWebサイトの違いは?
(Ans) 違いはほとんどない。新しいWebサイトはWebアプリだけを作れる。新しいプロジェクトはライブラリなどWebアプリではないものを作れる。
※後で調べてみましたが、Webサイトはサーバ上に直接、http指定でプロジェクトを作れるみたいです。デフォルトは[My Document]\visual studio 2010\WebSites\ 以下に作る。ソリューションファイルは
[My Document]\visual studio 2010\Projects 以下に作られる。プロジェクトの場合はすべて
[My Document]\visual studio 2010\Projects 以下に作られる。
Webサイトなので、httpを使ってサーバ上に構築するという意味合いが強いのでしょう。プロジェクトは
自分のマシンで作って作ったものをWebサイトにアップする。
一般的には後者なのでプロジェクトを作った方がよいでしょう。

(Question) ASP.NETとVB.NETは何が違うのか?
(Ans) VB.NETは言語で、ASP.NETはWebを作るための仕組みです。ASP.NETでサポートされている言語であれば、選択できる。つまり、ASP.NETアプリをVB.NETで作成する、というのが正しい。
VB.NET以外に、C#、J#(Java)などがある。