.NET Programing
.NETのプログラム作成技法関連について
めちゃくちゃ遅れてごめんなさい。
今年のTechED 2006 Yokohama でUsergroup Street Live をやったんですが、それのPPTです。
PDFで公開します。
こちらからどうぞ[PDF]Windows サービスとUSB温度計
ref:TechEd 2006 YokohamaにてLiveやりました。
このLive、最後だけ失敗してしまったのですが、それのリベンジを、近日開催予定。
とある検証プログラムを書いている時に思いついた。
Imports System.Security.Principalしてから、
For Each group As Security.Principal.IdentityReference In Security.Principal.WindowsIdentity.GetCurrent.Groups
Edited at 2006/10:16 22:25
Windows Vistaで新しく加わったUAC(ユーザーアクセス制御)な話。
自作のアプリケーション等々をUACに対応させる方法です。Manifestファイルを使用する方法。
簡単に言うと、Manifestファイルを作成し、そこに、以下(<Assembly>から下)のような記述を埋め込みます。(宣言は飛ばしても良いかと)
<?xml version="1.0" encoding="utf-8"?> <assembly
Microsoft TechED 2006 Yokohama で行われたセッションレポートです。うろ覚えかつ急いでメモを取ってたので間違ってる可能性もあります。PPTの丸写しは避けたいと思ってますがそのままだったらごめんなさい。ちなみにセッション中、メモはOneNoteで書いてました。
次期、.NET Framework(以下.NET Fx)の中身です。バージョンは 3.0になります。
簡単に説明すると、現在の.NET Fx 2.0に以下のものが追加されて、.NET Fx 3.0になるようです。
久しぶりに自作ツール公開です。
PowerNotify v1.0.0.0
.NET Framework 2.0 が必要です。
要はノートパソコン等のバッテリ情報を表示するツールです。
実行すると「i」のアイコンがタスクトレイ上に常駐表示します。
アイコンをダブルクリックするとバッテリ情報がバルーンで表示されます。アイコン右クリックでメニューが出ます。バージョン情報か終了の2択です。
バッテリ容量に変化があった場合もバルーンで表示されます。
参考:Coding4Fun
もしかしたらバグあるかもしれません。ご容赦を
Visual Studio 2005 Express に登録すると、いろんな特典がもらえます。
英語ページですけど。http://msdn.microsoft.com/vstudio/express/register/
サンプルや(たしか)書籍(PDF)、ロイヤリティフリーのアイコン・リソース集等々。
一覧を書いてみます。
Corbis Image Pack250ものロイヤリティフリーの画像集。Webサイトや作成したアプリに使用可能。
IconBuffet Studio Edition
イベント情報です。VSUG(Visual Studio User Group)のイベント、VSUG Day 2006 Summer が秋葉原コンベンションホール(東京 秋葉原ダイビル2F)で開催されます。詳細は以下画像クリックのリンク先をどうぞ。
行きたいんですがね。行けないんですよ。いろいろと。開催が火曜日なんですよ…。
KeyNote(?)だけでも見る価値あるかもしれません。あ、LINQも気になるな…。
SQL Server 2000/2005で共有メモリ接続を使用する場合、ConnectionStringのServerオプションは、(local)でなくてはならない。
先ほどDotNetNuke 3.2.2 + SQL Server 2000 SP4 でなんとか共有メモリ接続ができないかと考えてました。昨日書いたサーバーネットワークユーティリティで、すべての接続をオフ(=共有メモリ接続しか認めない)にしたのに、何故つながらないか、悩んでました。
で、今朝、MSDNを見てみたら書いてありました。(.NET
おぎわらさんのブログより。
クラス ライブラリ開発のデザイン ガイドライン
MSDN ライブラリ > .NET 開発 > .NET Framework SDK > 一般的なリファレンス > クラス ライブラリ開発のデザイン ガイドライン http://msdn2.microsoft.com/ja-jp/library/ms229042(VS.80).aspx
ちなみに今、使えるのか使えないのか微妙なクラスライブラリを作ってます。パターンを指定したランダム文字列生成、ってやつです。公開はもうちょっと待ってください。#大きな声では言えませんが、イースターエッグ仕込んでます
以前、CodeZineで記事を書いたんですが、その記事が、本になります。といっても、記事集の形で、なんですけどね。
書名は、「CodeZine傑作選 Vol.1」という本です。掲載されるのは、「.NETでLAN転送速度を測定するIEツールバーを作る」という記事です。今気づいたんですが、閲覧数が5000弱、すごいなぁ。
翔泳社さんから、2月13日発売予定です。
紙面の関係上、VS2005で使用するための補足事項は外してあります。VS2005 で使う方法はこちらも参考にしてください→ http://tipsofvb.net/forums/300/ShowPost.aspx#300
もしかしたら前にも書いたかもしれない。
Visual Basic Developer Center: Upgrading Visual Basic 6.0 Applications to Visual Basic .NET and Visual Basic 2005
http://msdn.microsoft.com/vbasic/default.aspx?pull=/library/en-us/dnpag2/html/VB6ToVBNetUpgrade.asp (英語)
VB6アプリからVB.NET/VB2005
CodeProject.com にFTPのいいサンプルがあったので紹介。
An FTP client library for .NET 2.0 (英語)
簡単にFTPクライアントが使えるなぁ。
うん。今度からこれ使おう。
VS2005:Form上でDataBindingしているコントロールを更新 の補足です。
VS2005で、デバッグ実行していると、データベースを更新したのに、次回デバッグを開始したときに、結果が反映されていないときがあります。
これは、デバッグの開始時に、プロジェクトのフォルダ内に置かれたデータベース(たとえばAccessの.mdbファイルとか、SQL2005Express だと.mdfファイルとか)を、プロジェクトの出力ディレクトリにその都度コピーしているから。らしいです。
IDEを使って作成したプロジェクト(Solution
うまく言えないのですが。
フォーム上でDataBindingしている各コントロールを更新?
たとえば、ListBoxとか各種Detailなコントロール(DataBinding済み)を設置して、TextBoxに書いてある検索ワードで検索した結果をListBoxに反映して、なおかつListBoxの選択内容(SelectedItemなの?)が変化したら、DataBindingしているDetailなコントロールも一緒に変更
ってやつ。
以下のコードで一発でした。これの解決に1週間くらいかけてた。orzListBoxに対してだけにDataSource(内容はクエリの結果セット)を割り当ててたり、してました。それじゃよく考えてみたら意味無いよね。DataBindingしてるとこ全体に対して適用しなきゃ。
先ほど、MSDNで My クラス を調べていたら、以前見たときよりいくつか新しい My が追加されていました。
確認したところでは、
My.Log (My.Application.Log と同等?)
My.Request
My.Responce
の3つです。
ちなみに、My の中で一番オブジェクトが多いのは、My.Computer だと思います(数えたことないですが)
今、一生懸命まとめてます。
VB6とか、VBAで、こんな変数宣言をよく目にします。
Dim i, j, k As Double
きっと、ループ変数にでも使いたいのでしょう。(ループ変数でDouble宣言とはこれまた微妙ですが)しかし、ここで罠です。
実は、上記の場合、変数 k しかDouble型になりません。他はVariant型です。変数に値を入れると、値に該当した型になります。該当する変数を、VarType 関数で調べてみるとわかります。
ちなみに、VB.NETの場合は、上記のコードの場合、すべてDouble(System.Double)型になります。
MSDN探し回ってやっと見つけました(^^;
Visual Basic Language Reference - My Reference
Myに関するリファレンスです。(注:英語)
これから、これを読み解いていきます。
Microsoft のKB(Knowlegde Base)にありました。KB番号は、903898 です。
通知領域でアプリケーションのアイコンを表示するための Visual Basic .NET で Windows フォーム NotifyIcon コンポーネントを使用する方法#機械翻訳なので、注意。
常駐アプリとかでタスクトレイ(通知領域)にアイコンを表示させてアプリケーションをバックグラウンドで動作させる方法です。
NotifyIcon コントロールの作成と使い方の例がサンプルとしてあります。
Windows Form アプリの場合です。ASP.NETでもいけるかな?(未確認)
OpenFileDialog から、選択されたAccess MDBファイルを読み込んで、DataGridにデータを表示します。
下記ソース中、DGrid1ってのは、DataGridの事です。念のため。
Dim cn As New OleDb.OleDbConnectionDim ds As New DataSetDim da As New OleDb.OleDbDataAdapterDim
中さんのBlogでVisual Studio 2005でコードスニペット機能を組み込む(C#) が公開されてます。
ついでに、.NET 2.0向けスニペット センターも開設した模様。
結構便利なコードスニペット。実務やデモでも大活躍しそうです。
…オリジナルのスニペット、作ってみようかなぁ…。
VS2005/VB2005でファイル情報を取得する方法です。
コードスニペットからやると楽です。
呼び出し方:コード画面でfilfileinfoと入力してTabキーを押します。
ぱぱっと展開されます。
ちなみに以下のようなコードが生成されます。
Dim fileData As System.IO.FileInfo
MSKBへのポインタ
[HOW TO] Visual Basic .NET を使用したハッシュ値の計算および比較方法[HOW TO] C# .NET を使用してハッシュ値を計算し比較する方法
System.Security.Cryptography 名前空間を使用しています。
また、MD5はRFCで定義されています。
RFC 1321 - The MD5 Message-Digest Algorithm (HTML版)
RFC 1321 - The MD5 Message-Digest
Windowsのサービス状態を表示するアプリケーションの作成 というタイトルで、記事を投稿しました。
System.ServiceProcess 名前空間を使って、サービスの状態をタイマーを使って取得しています。それをただラベルに表示させてるだけですw
また、ただ表示するだけのサンプルソースとは別に、もうひとつのサンプルソース(DL可能)にて、サービスを開始・終了・一時停止・再開 など制御するサンプルも作成しました。
実際には、後者のサンプルの方が実用的かと思います。
拙い者ですが、これからもよろしくお願いいたします
Windows Forms アプリケーションで、いろいろ画面の描画処理(特に画像を動かしたり、頻繁に書き換えたり)すると、速度が遅くなったり、ちらつきが発生したりします。
その解決方法。ダブルバッファリングを使用します。
フォームのロード時イベントに、以下の文を追加します。
Me.SetStyle(ControlStyles.DoubleBuffer, True)Me.SetStyle(ControlStyles.UserPaint, True)Me.SetStyle(ControlStyles.AllPaintingInWmPaint,
Windowsでのサービスのサービス名の取得です。
参照設定で、System.ServiceProcess.dll を参照に加えてください。
以下のコードでは、存在するサービス名を列挙し、コンソールに表示させています。
Function PrintSvcs() Dim Svcs() As ServiceProcess.ServiceController
VB.NETでは、2通りの方法でDLLが呼び出せます。ここでは、例として7-zip32.DLLの圧縮解凍を行うSevenZip関数を呼び出す方法をサンプルとして、書きます。
VB6形式Private Declare Function SevenZip Lib "7-zip32" (ByVal hWnd As Long, ByVal szCmdLine As String, ByVal szOutput As String, ByVal dwSize As Long)
VB.NET形式最初に、Imports
以前にも書いたかも。
VB.NETでは、System.IO.File.Exists を使うと、簡単にファイルの存在が確認できます。戻り値は、Boolernで返るので、判定が簡単。
例:File.Exists("C:\Windows\notepad.exe")
VB6だと、DIR関数があるけど、個人的に好きじゃないです。DIR関数は、そのファイルが存在する場合にだけ、そのファイル名がStringで返ります。
社内で結構質問されたので(^^;
SQL文にコントロールのプロパティとかをそのまま連結させると、どえらいことになりますよ。
要は、レコード一つだけ抽出するクエリで、SQL = "SELECT [氏名] FROM HogeHoge WHERE ID= '" & TextBox1.Text & "'"
ってなことやっちゃうと、どうなるかわかりますよね?TextBox1.Textが、「100」などという想定内の入力だったらいいんですけども、もし、”100' OR 10='10”
コンストラクタとは、戻り値が無く、インスタンスが生成された直後に呼び出されるメソッドです。
VB.NETでいうと、こんな感じ。
Public Class ExSample Sub New() ←コンストラクタ ....(処理) End SubEnd