.NetエンジニアのプロジェクトX -2ページ目

コード・スニペット

VisualStudio2005では、なにやらとても便利な機能があるらしい。

その名も「コード・スニペット」。

@ITの「どう書くんだっけ? を「コード・スニペット」で一発挿入! 」という記事で知りました。


普段ガリガリと実装仕事をしない僕にとっては、何ともありがたい機能のようです。

この機能については参照元の@ITを。


i-eijiさん、リポーツお待ちしてますよん。

.Netといえば

.Netといえば、C#が人気が高いのでしょうか。


それでも、世間一般では、VBのお仕事も結構見かけます。

というわけで、ここでは、VB(VisualBasic)について、とりとめもなく書いていくことにします。


一昔前までは、VBといえば、「言語?」「それしかできないとねぇ」などと、ひどい扱いを

うけることもしばしば(^ ^;


それでも、.Netに対応するようになった今日では、すこしずつ(いやかなりな勢い?)ですが

市民権(お仕事)を得てきているようです。

(今現在の案件も実はVB)


大きく昔と変わったのは、インタプリタ言語ではなくった?のでしょうか。

以前のように、動作させながら、ソースを変更しても、即反映されない・・・。つまり、コンパイル

しないと動かない。やはり、.Netということで、COMとしての形態を作成しないといけなくなった

からでしょうか。これでは、C#やC++となんら変わりない。いや、むしろ他の言語との構文の

違いで、少し扱い難い言語になってしまっているのでは・・・。

しかし、そこはVisualStudioの機能が軽くカバーしてくれています。

入力したソースをほぼリアルタイムでビルドチェック?してくれるため、入力ミスによるコンパイル

エラーが激減していることでしょう。(この機能をC#とかにも対応して欲しいくらいです)

この便利機能になれてきた頃に、C#とかを記述しようとすると、ビルドで「;」がなかったり、

IF分で「()」をつけなかったりしてしまいます。(う~ん、VBマジック!)


てなわけで、たまには違う言語を書いてみないと、VBしか書けない人になりそうな今日この頃でした。

コントロールやら、クラスなんかの詳しいことはそのうちいずれ♪



解決!!

前回、レスポンスに関して悩んでいましたがようやく

解決しました。

方法は、SQLを組める人であれば簡単なようです。

SQLの知識に乏しいオイラにはさっぱり・・・

レスポン向上その1

 SQL発行は全てPL/SQL化

レスポンス向上その2

 ここが最大のチューニングのしどころ。

 前回記述した2にあたる箇所の条件をUNION ALLで

 接続することにより1レコードに対してSQLを最大5回

 発行するところを1回に短縮が出来ました。(ここのSQL

 が知識が乏しく組めなかった(^^; )

 この短縮により最大64万回(チューニング前最大128万回)

 に発行回数が減った事により30分以内でかるく処理が

 可能となる予定です。

アップロードファイル上限値設定(IIS6.0)

IIS6.0


アップロードファイルの上限値を変更するには、IISMetaBase.xmlファイルの設定値を編集する必要があります。


ファイル>C:\WINDOWS\system32\inetsrv\MetaBase.xml

パラメータ>AspMaxRequestEntityAllowed


デフォルト設定ですと以下のように200KBにセットされてます。

AspMaxRequestEntityAllowed="204800"


IIS動作中はロックされているので、編集する際はIISを停止しましょう。

で、ASP.NETのWebアプリ単位、ディレクトリ単位など限定的にこの制限値を設定する事はできるのでしょうか?

ご存知の方いらっしゃいましたら教えてくださいまし。

当方で分かりましたら、ここへアップします。

アップロードファイル上限値設定(IIS5.x+ASP.NET)

IIS5.x

ASP.NET


サーバーへアップロードするファイルサイズがデフォルトで4,096 KB (4 MB) と設定されています。

この設定を変更するには、<httpRuntime> セクションの maxRequestLength パラメータを変更する必要があります。 デフォルトではmachine.configに記述されてますが、web.configにも記述でき、柔軟な設定ができます。


この制限を超えるファイルをアップしようとすると、"サーバーが見つからないか、DNS エラーです。" というエラー メッセージが表示されますが、さすがにこれはちょっと。。。

セキュリティ上この制約は当然必要なものですが、限定されたユーザー向けのサイトでは、平気で10MBぐらいのファイルをアップされる事もありますし、もう少し原因が分かりやすいメッセージにしてくれないものかと。

そう思いません?

ちょっとSE的な話

本日2回目です。

パソコン嫌いの私が何故こんな時間にパソコンを起動しているかと

いうと。。。。

実は設計で悩んでます。自宅で仕事です・・・・

ま、簡単にここで愚痴のような悩みを書いてみます。

1、まず、Aテーブルから対象Dataを取得します。

2、次にBテーブルからAテーブルで取得した条件を元にData取得します。

 ここでは1つのAテーブルからのDataで最大5回SQLを発行します。

 ここで厄介なのがPrimary Keyで検索出来ないため下記の結果に

 なります。

 1件取得:対象カラムのDataを取得

 複数件取得:決められた条件を満たすカラムのDataを取得

 0件取得:デフォルト値を使用

3、上記で取得したDataを元にCテーブルにアクセス。

 ここではフラグを取得します。

 フラグをY、NとしNフラグをもつDataが取得できた場合、さらに

 DテーブルをアクセスしDataを取得します。

4、上記でそろったDataをAテーブルにINSERTします。


こんな解りにくい内容で何書いてんだなんて思うかも知れませんが、

悩みはレスポンスです。

条件はAテーブルから取得される最大件数が16万件ということです。

そうなると1で一回のSQLを発行、次に2で最大80万回のSQLを発行、

3で16万回+最大16万回、4で16万回のSQL発行。

計:128万回のSQL発行回数を30分以内で流すという条件です。

きっとC#で作成する場合、マシンスペックによるが30分を切るのは難しい

と頭を抱えている状態です。_| ̄|○ハァー

やはりPL/SQLを使ったほうがよさそうな。。。。

一括でSQLを投げれないものかと。眠れん・・・・・



嬉しい事ありました

2回目で早速ですが、.NETとは違う話をさせて下さい。

実は我が社の新人の話なのですが今日とあるIT関連の

資格を取得しました。

上司(??)としてはとても喜ばしくこれを期に彼に変革

があればと期待しています。

これで私も頑張らねば・・・・・

仕事が忙しくて暇がないなって言ってられん(^^;

ブログ始めました。

ブログというものに初めて書き込みました。
まだ何を書いたらよいのやら手探り状態が続くかとは思いますが、
三日坊主にならないよう、がんばって書き込んでいきたいと考えています。
みなさん、よろしくお願いします。

はじめまして

さっき頼まれて、さっそく書いてたりします。

この仕事をしていると、こんな時間でも普通に、PCの画面にむかっていたり・・・(私だけ?)


.Net関連の話とか、いっぱいできるとよいかな。私もまだ知らないことばかりですし(^ ^;


.Netを触り始めたのは(かかわり始めた?)のは、もう3年ほど前になります。

このドットネット、何が肝かというと、環境設定が肝でしょうか。

特に言語とかは、C++~JAVA,果てはVBなんかまで対応してますので、作り手を

選ばないといえば、そうなんですが、開発できる環境を作るまでに(目隠しで作れるように

なるまでに?)かなり時間を割きました。

当時は、あまり文献もなく、先人の方々の手探りの情報しかなかったような状況です。


しかし、最近はすっかり、VBの魔力におどらされてしまい、もう他の言語には戻れないかも

しれません(^o^)

C#でヴァリヴァリ書いていたころが懐かしいこの頃。

C++?何それ(笑)


てなわけで、よろしくお願い致します。

初めてのC#奮闘記

お初の投稿です。


今回は私の.NET C#の経験について書きこもうと思います。

文章下手なんで気楽に読んでください。


C#を始めたのが今から約2年と9ヶ月前。経験年数でいくとかなりの

やり手になる。(やべ~俺ってやり手かな????)

当時C#を始めたときは経験言語がVBとVCのみでした。

それも適当にかじった程度でDLLって何すんのって感じでした。(待て)


初めてのC#のお仕事は画面側のLOGIC作成。

VB感覚でクリックイベントに対して処理を入れていけばOKかと

思ったら大間違い・・・

親画面があり子画面があり子画面での処理は親画面にイベントを

投げてと何の事だかわっぱり。(俺駄目だ_| ̄|○)

イベントハンダラって何だよ????

JAVAをやってると知ってたらしい。しかし、今までの経験だとそんな事は

知らない。プロジェクトの先住民のソースを見てただただ勉強。(やばっネタ

がない)

結局どんな感じで作成したかというと。

画面構成は親画面がありその画面に対して検索部、検索結果表示部(BODY)、

FOOTERといった構成になっている。

そこで検索などのイベントが発生するのは子画面からとなりDBへのアクセスを

行う処理等に関しては親画面にイベントを投げ親からDLLのメソッドを呼び出す

ような処理にしました。(待て。何の話してんだ?)


と、こんな具合でした。

次回からもっと詳しく書いていきたいと思います。