ホチキス先生の「プログラマーと呼ばれたい」

InfoPath & SQL Server !

Posts Tagged ‘システム開発

C# – 教科「情報」の授業で使うタイピングトレーニングのソフトを作っています。その 5。ユーザー ID を Active Directory から取得するようにした。

leave a comment »

教科「情報」の授業でタイピングソフトを自作して生徒実習をしている。このねらいは 2 つある。ひとつは、実際に使いやすいソフトウエアを使いたい、ということがある。特に生徒の実習データを Microsoft Flow に送信して集計しやすくする、ということがある。もう一つの目的は、ソフトウエア開発の実際を生徒に見せたい、ということだ。

いわゆる「ウォーターフロー型」の開発には限界があることが多く指摘されている。現代的なソフトウエア開発環境を最大限に活用するには、アジャイルと呼ばれる開発スタイルが望ましい。そこで教科「情報」の授業で自分が作ったソフトウエアを生徒に使わせながら、問題点や改善点を指摘させて次のバージョンに適用する、という手法でソフトウエア開発の実際を間接的に体験させるのだ。

そのためには、最初から完成されたソフトウエアを使わさない。最初はごく基本的な仕組みだけ作ったソフトウエアを使わせ、問題点や改善点を指摘することを演習とする。

様々な意見が生徒から出て興味深いのだが、これはまた別項でまとめることにする。今回のマイナーバージョンアップでは「学籍番号を入力するのが面倒だ」と「学籍番号を全角で入力してしまう間違いがおこる」ことを回避することを考えた。これは、システム管理をやっている者には常識的な実装になるが、ユーザー ID を Active Directory から取得することだ。これは一行のコードで実現できる。

——————————————————————————————-

myUserName = Environment.UserName;

——————————————————————————————-

そして取得したユーザー ID を gakuseID テキストボックスに表示する。

——————————————————————————————-

gakuseID.Text = myUserName;

——————————————————————————————-

ちゃんと取得することが確認できれば、学籍番号のテキストボックスの Enabled プロパティを false にし、書き換えられないようにする。

——————————————————————————————-

gakuseID.Enabled = false;

——————————————————————————————-

これで学生番号は間違いなく処理されるようになる。

広告

C# – 教科「情報」の授業で使うタイピングトレーニングのソフトを作っています。その 4。いつでも終了、開始ができるボタンのインタフェースを制御した。

leave a comment »

教科「情報」の授業で使うタイピングトレーニングのソフトを作っている。ここでマイナーチェンジをしたのは、ボタンの有効状態を制御したところだ。たとえば、次の画面は文字入力をトレーニングして「終了」のボタンを押し、かかった時間とスコアを表示したところだ。

textInputProgram_001_mid_640

ところがこの状態で「開始」のボタンが有効になっている。そこでこのまま「開始」をクリックして「終了」をクリックすると、一字も入力することなく結果が出てしまう。

textInputProgram_002_mid_640

そこで「開始」ボタンを押す前は「終了」と「リセット」を無効にし、「開始」ボタンを押せば「開始」ボタンは無効となり「終了」ボタンが有効になり、「終了」ボタンを押せば「終了」ボタンは無効となり「リセット」ボタンが有効となる、といったようにボタンの有効無効を制御することにした。

まずフォームの初期化で「終了」ボタンと「リセット」ボタンを無効にしておく。

——————————————————————————————

btnEnd.Enabled = false; //終了ボタンを無効にする
btnClear.Enabled = false; //クリアボタンを無効にする

——————————————————————————————

次に「開始」ボタンのクリックイベントで「開始」ボタンを無効にし「終了」ボタンを有効にする。

——————————————————————————————

btnStart.Enabled = false; //開始ボタンを無効にする
btnEnd.Enabled = true; //終了ボタンを有効にする

——————————————————————————————

そして「終了」ボタンのクリックイベントで「終了」ボタンを無効にし「クリア」ボタンを有効にする。

——————————————————————————————

btnStart.Enabled = false; //スタートボタンを無効にする
btnClear.Enabled = true; //リセットボタンを有効にする

——————————————————————————————

最後に「クリア」ボタンのクリックイベントで「クリア」ボタンを無効にし「開始」ボタンを有効にする。

——————————————————————————————

btnClear.Enabled = false; //クリアボタンを無効にする
btnStart.Enabled = true; //スタートボタンを有効にする

——————————————————————————————

これでボタンの有効無効管理ができた。

textInputProgram_003_mid_640

textInputProgram_004_mid_640

textInputProgram_005_mid_640

さて、このような制御をどこまですればよいのだろうか。それはプログラムを誰がどのように使うのかにかかっている。たとえばこのソフトウエアが、自分で文字入力のトレーニング結果を知りたいために使うのならば、このような制御を考える必要はないのかもしれない。自分の力を知るために「ずる」をする意味がないからだ。しかし、たとえば学校の授業で先生が生徒に課す場合は、少しでもよい結果を出すために「ずる」をしようと考える生徒がいるかもしれない。

そのことを考えると、たとえばテキストを別に入力しておき、ペーストするような「ずる」も考えられるかもしれない。使いやすさと同時に、想定外の利用をされないように考えることは、ソフトウエアの本来の機能とはまた別に、ソフトウエア開発のテーマである。

C# – 教科「情報」の授業で使うタイピングトレーニングのソフトを作っています。その 3。河端さんとのコラボレーション。Microsoft Flow と Microsoft Power BI で何ができるか。

leave a comment »

教科「情報」の授業で使うタイピングトレーニングのソフトを作っており、Microsoft SQL Server の大家であり Microsoft MVP でもあった河端さんと一緒に考えている。私は Visual Studio でクライアントの開発をし、河端さんにクラウドのアプリケーションを作ってもらっている。クライアントは Windows デスクトップアプリで、開発言語はもちろん C# だ。

河端さんには、クライアントアプリケーションから POST データを受け取るサービスを、Microsoft Flow で作ってもらった。Microsoft Flow で受け取ったメッセージを電子メールで通知する、といったシステムを、お互い離れた拠点でメッセージをやりとりしながら、およそ 30 分で作ることができた。これが現代的な開発スタイルだといえよう。

そして河端さんには、Power BI の分析ページを作ってもらった。こんなかんじだ。

文字入力トレーニングアプリ_003_PowerBI_1_mid_640

文字入力トレーニングアプリ_004_PowerBI_2_mid_640

文字入力トレーニングアプリ_005_PowerBI_3_mid_640

河端さんは、私がクライアントの Windows フォームアプリケーションを調整している間に、Microsoft Flow に送られたデータをこのように分析する Microsoft Power BI のフォームを作られていた。これらのビューを作るには、およそ 15分もあればよいそうだ。

このように、Microsoft Flow と Microsoft Power BI を使うとアイデアさえまとまればアプリケーションを作る手間は革命的に小さくなった。重厚長大のシステム開発の時代は終わったのだ。

片手間プログラマーの復権 – Visual Studio 2013でクライアントサーバー型データベースアプリケーションをあっというまに作る(1) – テーブル接続一対一の一般的な業務アプリケーションは30秒でできる。

with one comment

Microsoft のVisual Studio はアプリケーションソフトを簡単に作れるように進化してきた。とりわけ初心者に対するサポート意識は強く、プログラミングのすそ野を広げることに注力しているように思える。コンピュータが進化するとともに、とりわけインターネット環境が普遍的なものとなった今日では、コンピュータで処理できること、言い換えれば処理しなければならないことが多様化し複雑化しているが、Visual Studio を使えば高度なアプリケーションをますます簡単に作ることができる。

書店にいくと Visual Studio を使った初心者向けの解説書が山ほど目に入る。しかしその多くは、Windows Form を作り、電卓やメモ帳、あるいは簡単なパズルゲームなど、Windows Form で完結する単体のアプリケーションを開発するまでであり、データベースに接続してデータを操作する一般的な業務アプリケーションを作ることは、やはりそれほど簡単なことではなかった。振り返ってみれば2003年に俺は現在の勤務校に異動になり、学校の学籍管理システムを運用することになったが、当時はまだ Visual Studio を使ってもクライアントサーバー型の業務アプリケーションを作ることは難しかった。そこでデータベースを SQL Server とし、まずはデータベースの構築手法を身に付け、クライアントには InfoPath を使うことでクライアントサーバー型のシステムを構築した。教員としての本業の傍ら、いわゆる「片手間プログラマー」として、この選択肢は間違っていなかった。このシステムは極めて低コストでシステムを構築でき、現場のニーズを反映し、かつ柔軟に追加変更可能な学籍管理システムとして今でも順調に動いている。

だが Visual Studio 2010 あたりからデータベース接続の処理が簡単になりはじめ、Visuak Studio 2013 では極めて簡単に SQL Server に接続するデータベースアプリケーションを構築することができる。SQL Server にテーブルができていれば、そのテーブルに対して一対一でデータ編集をするような簡単なクライアントアプリケーションは、たった30秒で作ることができる。まったくもって驚くべき時代になったものだ。俺のような専門職でない「片手間プログラマー」でも業務で使えるクライアントアプリケーションを簡単に作ることができる時代になったのだ。

IMG_2461_mid_640_480

<fig.1 : Visual Studio 2013 を起動し「新しいプロジェクト」をクリックする>

IMG_2458_mid_640_480

<fig.2 : Visual Studio 2013 で「新しいプロジェクト」をクリックした瞬間からストップウォッチを動かす>

IMG_2460_mid_640_480

<fig.3 : SQL Server のテーブル「生徒」に接続し、生徒情報を編集するアプリケーションを作ってビルドした>

IMG_2459_mid_640_480

<fig.4 : ビルドが完了した瞬間にストップウォッチを止めた>

あっという間に SQL Server に接続するアプリケーションができた。まったくノンコードである。もちろんこのアプリケーションには余計な工夫が入っていないので、 SQL Server に接続するとテーブルのデータを全部取得し、単純にデータを変更して送信することや新しいデータを手作業で加えることなど、基本的な操作しかできない。しかし、これほど簡単にクライアントアプリケーションができるということは驚愕である。

Microsoft 社は開発者を支援する視点を大切にしており、常により簡単に、より効率よくプログラミングができる環境を提供することに努力を怠らない。プログラミングは今後もますます身近なものになり、俺のような「片手間プログラマー」が活躍する時代になるだろう。焦ることはなく、いまできないことも、いつか必ず Microsoft が実現してくれることを信じて、目の前の技術に真摯に向き合っていればいい。Microsoft 社は Visual Studio 2013 でデータベースアプリケーション開発の革命を成し遂げたと言っていいだろう。

<次の記事>
「片手間プログラマーの復権 – Visual Studio 2013でクライアントサーバー型データベースアプリケーションをあっというまに作る(2) – テーブル接続一対一アプリケーションの作成手順」