2005年02月10日

スマートクライアント

先日のイベントの折、ちょっと話題に上った『スマートクライアント』について考えてみたいと思います。

そもそもスマートクライアントとは何か、ということですが、これは一言で言うと
 『ファットクライアントとシンクライアント両方の利点を併せ持つクライアントアプリケーションの一種』
ということが出来ます。さて、ここで『ファットクライアント』と『シンクライアント』とはなんでしょうか。

ファットクライアントとは、クライアントアプリケーション側でデータアクセスやビジネスロジックなどを全て実装し、高機能なUIを併せ持ったクライアントアプリケーションのことを言います。ファットクライアントの利点と欠点は以下のとおりです。


利点



  • 高機能で操作のしやすいUIを提供できる
  • 自由に開発できる
  • (作り方によりますが)レスポンスが良い


欠点



  • プログラムがでかい
  • メモリを食う
  • 配付が困難な場合がほとんど
  • 頻繁なバージョンアップがあるとこれまた配付が大変
  • DLLのバージョンによる競合問題が良く発生していた(DLL HELL)



ファットクライアントの例としては、VBなどで作られた業務アプリ、Microsoft Officeなどが上げられます。

対して、シンクライアントとは、データアクセスやビジネスロジックなどを扱う層(中間層)をクライアント側では無いところに用意して、極力クライアント側に機能を盛り込まないクライアントアプリケーションのことを言います。シンクライアントの利点と欠点は以下のとおりです。


利点



  • 配付が容易な場合がほとんど
  • ロジックの変更が比較的容易
  • クライアント側のメモリをあまり消費しない


欠点



  • ネットワークに依存してしまう
  • UIが貧弱になりがち
  • システムトータルで構築するため開発やテストが困難になりやすい



シンクライアントの例としてはASP.NETによるWebアプリケーション、モバイルアプリケーション(携帯・PocketPC)などが上げられます。

スマートクライアントでは、これらのクライアントのそれぞれの利点をいいとこどりしたものになるので、


  • 高機能なUIを持つ
  • 開発しやすい
  • レスポンスも良くすることが可能
  • 配付が容易
  • ロジックの変更が比較的容易
  • クライアントのメモリを圧迫しない

ということになります。

いいことづくめに見えるスマートクライアントですが、実現するためには一つだけ条件があります。それは『WEBサービス』を使うという点です。スマートクライアントと、ビジネスロジックを持つサーバーとのデータのやり取りは、通常WEBサービスを用います。これは裏を返すと、WEBサービスを提供するWEBサーバーが必要と言うことになります。
またさらに、こうした[クライアント]-[WEBサーバー]-[DBサーバー]といったスマートクライアントアプリケーションシステムの構成は、クライアントの部分をIEなどのブラウザに置き換えても同じ事だと言うことが出来てしまいます。つまり、スマートクライアントとは、ぶっちゃけ「高機能なUIを持ったブラウザ」と言っちゃってもいいかもしれません。
#これはかなり暴言かも知れませんが(;^^)
ただ、こうしてみると先ほど上げた利点に加えてさらに良いところがあります。それは、WEBサービスを使うということは、サーバーにHTTP/HTTPSでアクセスできればどこからでも使うことができる、と言うことです。例えば、販売在庫管理システムなどで利用すると、営業の人がノートパソコンを社内でLANにつないだ状態でシステムを使い、営業で外に出ているときにはモバイルアクセスでWEBアクセスさえ出来れば社内/社外の区別無く利用可能になり、営業の機動力がアップするでしょう。また、WEBサーバー側のWEBサービスのインターフェースはPCアプリに限らず、場合によってはPocketPC、携帯電話のJavaアプリからも利用可能(WEBサービスのSOAPプロトコルは今のところ万国共通)なので、サーバー側のロジックをあれこれと変更しなくても、様々なデバイスに対してシステムをサービスすることが可能です。

ここまで書くと、まさにスマートクライアントというソリューションはいい事だらけなので、Microsoftでもかなり力を入れているようです(確かに、ブラウザによるサービス提供にはそろそろ限界が見え始めているもの事実)。これからのシステム開発はこの形を取ることが多くなっていくことでしょう。

ただし、これは私個人の考えですが、真の『スマートクライアント』システムを開発するためには、ClickOnceが実装された.NET Framework 2.0 つまり Visual Studio 2005 を待たなければならないと思われます。スマートクライアントの利点である「配付が容易」「バージョンアップが容易」という部分は、現行のFrameworkでは「ノータッチデプロイメント」というソリューションで一応行うことが出来ますが、実はこれ自身にまだ制限が多少あるので、ほんとうに使いやすいとはいえません。対して次期バージョンで実現されるClickOnceはそのあたりを非常によく考えて作られているので、ある意味クライアントアプリケーションの配付に対するパラダイムシフトとなる可能性があります。

スマートクライアントに関しては、Microsoftの『Smart Client Developer Center (http://www.microsoft.com/japan/msdn/smartclient/default.aspx)』に詳しい解説とサンプルが置いてありますので、そちらを参考にされてはいかがでしょう。


さて、識者の突込みを待つかな(^^;

Posted by suzuki at 16:08 | コメント (0) | トラックバック

2005年01月21日

Microsoft、MSDN(R)サブスクリプション上位レベルからMicrosoft(R) Visual Studio(R) 2005 Team Systemへのライセンス体系の移行計画を発表

MSDN(R) サブスクリプション上位レベルから Microsoft(R) Visual Studio(R) 2005 Team Systemへのライセンス体系

Visual Studio 2005 の発売に合わせて、MSDNユニバーサル及びエンタープライズを、Visual Studio 2005 Team Systemを基盤にしたソフトウェアアシュアランス(L&SA)のモデルに移行するそうです。

はっきり言ってわけがわかりませんので、ここでひとつおさらいをしておきましょう。

これまでにMicrosoftが提供してきたMSDN(Microsoft Developer Network)は、開発者向けに、Visual Studioや評価目的に使うことのできるServerやクライアントOSや各種ライブラリを提供してきており、目的に合わせて以下のサブスクリプションレベルが提供されてきました。詳しくはこちら

MSDN ユニバーサル(Visual Studio .NET Enterprise Architect 2003 MSDN Deluxe Edition
Visual Studio Enterprise Architect、各サーバー製品に加えて、設計(VISIO、Office)やプロジェクト管理(Microsoft Project)といった上流工程ソフトウェアまでを提供し、開発のフェーズだけでなく、設計、進捗管理及びサポートといった全ソフトウェア開発工程を整備するサブスクリプション
MSDNエンタープライズ(Visual Studio .NET Enterprise Developer 2003 MSDN Deluxe Edition)
複数の開発者によるチーム単位での開発をサポートする開発ツールであるVisual Studio Enterprise Developerや、データベースやOSなどの基本的なサーバーソフトウェアが提供され、オペレーティングシステムや開発ツールだけではなく、各種サーバーソフトウェアを用いた企業システム開発者向けのサブスクリプション
MSDNプロフェッショナル
Visual Studio Professional及びWindows、SQL Serverが提供され,Windowsやスマートクライアント用アプリケーション開発者向けのサブスクリプション
MSDNオペレーティングシステム
Windows及び各オペレーティングシステムに対応したSDKやDDKが提供され、Visual Studioを使用せずにWindows対応のアプリケーションやデバイスドライバなどを開発する開発者向けのサブスクリプション
MSDNライブラリサブスクリプション
ソフトウェアのマニュアル、ドキュメント、最新仕様書、技術情報といったMSDNライブラリが提供され、マイクロソフト製品の技術情報を定期的にオフラインで参照したい人向けのサブスクリプション

さて、今年Visual Studio 2005 Team Systemという新しいものが登場するわけですが、いったいこれが何かというところから始めないといけません。

これまでのソフトウェア開発サイクルにおいては、一般的に

  • 設計者:仕様書を書く人
  • 開発者:コードを書く人
  • テスター:テストをする人

    という人が登場します(あくまでも一般的には、です)。技術の進歩に伴い、ソフトウェアの開発期間はどんどんと短縮され、またソフトウェアに対する要求も高まっています。しかしいくら技術が進歩しても人はなかなか変わらないものなので、期間と費用の圧縮、機能の増大という相反する要因の中でソフトウェアの品質を高めることはかなり難しいものになっています。

    Visual Studio 2005 Team Systemでは、こうしたソフトウェア開発サイクル(SDLC:Software Development Life Cycle)での、各プレイヤーの作業をサポートするための機能を盛り込んでいるそうです。
    #"そうです"といったのは、私がTeam Systemに興味が無いばかりか、まだ使ったことがないからです(^^;

    詳しくはこちらを見ていただければいいと思いますが、要するにTeam Systemでは、ソフトウェア開発という一つのプロジェクトにおいて、容易な進捗管理とコミュニケーションの実現、ツールの提供をするプロダクトと言うことが出来ます。

    さて、Visual Studio 2005 Team System は以下のレベルが用意されています。


    Visual Studio 2005 Team Architect

    サービス志向のソリューションを視覚的に作成するための、統合された高生産性ツールが含まれている。

    Visual Studio 2005 Team Developer

    静的分析ツール、コードプロファイリングツール、コードカバレッジツール、および単体テストツールが含まれている。

    Visual Studio 2005 Team Test

    単体テスト、手動テスト、Webテスト、配置(デプロイメント)に先立ってパフォーマンスを検証するための高度な不可テストなど、様々なテストの管理や実施のためのツールが含まれている。

    Visual Studio 2005 Team Foundation

    Office、Project、SharePoint Servicesなどの既存の良く知られたソフトウェアをベースとする一連のプロジェクト管理ツールが含まれている。また、プロジェクトの進捗や状況を組織で簡単に管理及び追跡できるチームコラボレーションツールも含まれている。従来のVSSもこれに含まれる

    このように分かれているのは、Team System自体があまりに規模が大きいので、各担当者毎に最適と思われるツールを提供することで導入価格を引き下げる狙いがあると思われます。一応、これら全てのレベルを含む「Suite Edition」もあるようです。

    さて、やっと本題ですが(笑)、Microsoftからの発表によれば、これまでマイクロソフトが提供してきた開発者向けソフトウェア提供サービスの名称は、MSDNサブスクリプションからVisual Studioに統一されます。簡単に言えば、「MSDNユニバーサル」という名称が「Visual Studioほにゃらら」に変わるということです。
    また、提供価格も従来のモデルから、他のマイクロソフト製品と共通のライセンス及びL&SAモデルに移行します。

    で、従来のMSDNを契約しているユーザーはどのようにVisual Studio 2005 Team Systemにマッピングされるかと言うと、発表のとおりであれば以下のようになります。

    Team SystemMSDN追加費用
    Team Suiteユニバーサル特別価格で更新可
    Team Architechtユニバーサル無し
    Team Developerユニバーサル無し
    Team Developerエンタープライズ無し
    Team Testユニバーサル無し

    MSDNプロフェッショナルとかMSDNライブラリなどのユーザーにはTeam Systemへの移行パスが用意されておらず、Team Systemが必要な場合は「MSDNユニバーサルに移行しなさい」キャンペーンが提供されているようです。

    なんだかよくわからないのでまた後日時間のあるときにまとめようかと思いますが、なんか各所で波乱を起こしそうな体系に変わりますねぇ。。。

    #個人的にはTeam System イラネ なのであんまり興味ないんですが。。。

    Posted by suzuki at 11:01 | コメント (3) | トラックバック

    Re:「MSDNユニバーサルに移行しなさい」キャンペーン

    MSDN-Pro更新でVS2005Proが手に入るならTSは静観予定...
    格差が激しすぎる気がします。

    Posted by Moo | 2005年01月21日 17:21.

    Team System は、その名の通り チーム開発をするためのものなので、例えば私のようなサンデープログラマ(ぇ にとっては無理して導入するメリットは無いですね。

    また、企業内の基幹システム開発とかで導入したら確かにメリットはあるかもしれませんが、これを導入したら効率が確実に良くなる、という魔法のソフトではないので注意が必要です。

    導入する前に、他にやることをやってから導入しないといけないでしょうねぇ。

    Posted by suzuki | 2005年01月21日 17:30.

    今回の発表内容について某筋のお話では、

    「現在ライセンス形態で契約している企業向けの情報だけで、パッケージ版や個人で購入する際の形態、および価格に関しての情報はまだ発表されていない」と言うことだそうです。

    Beta3やRCが出るころにはまた新たな情報が出てくるということみたいですね。

    Posted by suzuki | 2005年01月24日 12:54.

  • 2005年01月06日

    2005年の展望

    2005年になりました。今年はMicrosoftから巨大プロダクトが出る年でもあります。

    まず一つ目はVisual Studio .NET 2005です。.NET Frameworkが2.0となり、待望の「Click Once」や「ASP.NET2.0」が使えるようになります。Visual Studio自体のIDE(統合開発環境)も、さらに熟成が進んでいるということなのでいまから楽しみです。

    そして二つ目はSQL Server 2005です。ほんとにでるかどうか怪しい部分もありますが(笑、このプロダクトがリリースされると、今までのデータベースアプリケーションの作り方とはまた違ったアプリケーションの作り方になるかもしれません。

    ともあれ、デベロッパー的には様々な変革が起こる年になることでしょう。

    Posted by suzuki at 12:51 | コメント (1) | トラックバック

    今度の Visual Studio から名前からは .NET が外れて Visual Studio 2005 になるかと思います。製品自体が .NET のロゴを取得する形担っていると思います。

    Posted by はらみず | 2005年01月07日 11:26.

    2004年12月06日

    慎重さ

    BEGIN TRANSACTION
    ・・・
    Update ほげほげ
    ・・・
    SELECT * FROM ほげほげ
    ROLLBACK
    


    何度も何度も繰り返し実行してしつこく確認

    BEGIN TRANSACTION
    ・・・
    Update ほげほげ
    ・・・
    SELECT * FROM ほげほげ
    
    COMMIT
    


    人差し指に気を込めてEnterキーをぽちっとな。(完

    私はいくじなしですかそうですか.....orz

    Posted by suzuki at 16:48 | コメント (0) | トラックバック

    2004年10月15日

    [VS2005 Beta1] コンソールアプリケーションを試す

    Visual Studio 2005 Beta1(以下VS2005)のインストールも終わったので、ためしに簡単なアプリケーションを作ってみることにしました。

    VS2005では、最初のインストールの際、どのカテゴリの開発をするかの選択をします。例えばC#を使ってWindowsアプリケーションを作るのか、はたまたWebアプリケーションを主に作るのかということです。こうすることでWindowsアプリケーションを作るときに必要な機能だけが使えるIDEとなりますので、開発者にやさしい、ということらしいのですが、個人的には余計なお世話だと思います。
    #Webサービス開発など、ASP.NETとWinアプリを同一ソリューションで開発する場合どうするんじゃ、とか。

    一応、そうした環境の切り替えや、全てを使える環境というのも準備されていますが、そもそもそういうくくりになること自体要らないような気がします。

    さて、話がそれましたがコンソールアプリケーションのプロジェクトを「Sample1」というプロジェクト名で新規に作成すると、デフォルトで以下のコードが書かれた「Program.cs」というファイルと、その中にmainメソッドを持つ「Program」クラスが作成されます。

    #region Using directives
    
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    #endregion
    
    namespace Sample1
    {
        class Program
        {
            static void Main(string[] args)
            {
    
            }
        }
    }
    

    参考までに、Visual Studio 2003では、同じように作ると以下のコードが自動生成されます。

    using System;
    
    namespace Sample1
    {
        /// 
        /// Class1 の概要の説明です。
        /// 
        class Class1
        {
            /// 
            /// アプリケーションのメイン エントリ ポイントです。
            /// 
            [STAThread]
            static void Main(string[] args)
            {
                //
                // TODO: アプリケーションを開始するコードをここに追加してください。
                //
            }
        }
    }
    

    まだβ版なのでなんともいえないのですが、なんとなく生成されるものが違っています。とくにusingディレクティブのあたりと、mainメソッドのあたりに違いが見受けられます。

    さて、このままプログラムを作り始めるのはアレなので、まず、自動で生成された「Program.cs」のファイル名を変更してみます。右のソリューションエクスプローラでファイル名を「Program.cs」から「main.cs」にへんこうします。すると、左のコードのクラス名が、「Program」から「main」に自動で変わります。

    これはVS2005の新機能(改善点)のひとつではないでしょうか。VS2003では、ファイル名を変更しても、自動で生成されたクラス名は変更されませんでしたが、VS2005ではこのようにファイル名にあわせてクラス名が変更されます。これは裏を返せば、VS2005からは「1クラス1ファイルにしなさい」というMicrosoftのメッセージとも受け取れます。人によってはクラスごとにファイルを分けるのは面倒だと思われるかもしれませんが私はその方が見通しがよくなるのでいいと思います。

    また、クラスに関連して、VS2005のIDEには"リファクタ"というメニューがあります。これはクラスのリファクタリングをするためのメニューです。私はリファクタリングって何?という人なので使うことはないでしょうが(^^;オブジェクト指向な人には待望の機能らしいです。

    Console.Writeで適当な文字を出力するコードを書き、メニューの"デバッグ"⇒"ウィンドウ"⇒"コンソール"とすると実行結果がIDE内のコンソールウィンドウに表示されるようになります。これもVS2003には無かった機能で、単純なコンソールアプリを作る際はいちいち結果を確認するためにブレークポイントをつけなくていいのでとても楽です。

    以上、画面キャプチャも無く簡単な説明だけしましたが、VS2005には、VS2003までには無かったさまざまな便利な機能が追加されているようです。日本語β版はWEBや書籍で手に入るので、興味のある方は一度試してみてはいかがでしょう。

    Posted by suzuki at 18:32 | コメント (3) | トラックバック

    必要な機能だけになるというより、メインになるであろうと思われる機能が目に付くようになっているという感じです。ただ、初期表示(ソリューションとかを開いてない)のときに表示されるメニューの違いが雑誌や書籍の説明と違う場合があるので注意が必要ですね。とりあえず「設定のインポートとエクスポート」で初期設定をしなおせるので初回起動時に設定したのが馴染まなかったら他の設定を試してみるといいですね。

    Posted by うに。 | 2004年10月16日 02:08.

    リファクタリング関連でファイル名変更ですが注意というか好みによっては使えなくなります。主にASP.NETの方なのですがWebフォーム(コードは別ファイル)を追加してファイル名を変更してみてください。クラス名はファイル名に追従しません。理由は今ひとつはっきりしませんがaspxファイルが別にあるためなのかPartialのためなのか。。。

    あ、適当にクラスのメソッドとかプロパティを作っていて「う~ん、名前の統一性が崩れてきた」というときなどにリファクタリング使うと気持ちよく作業できますよ。個人的には「メソッド抽出」や「メソッドの移動」なんかあると嬉しいんだけどね。

    ちなみに、エディタのとこで[Ctrl]+K+X [Tab] P [Tab]という感じでキー操作するとプロパティの雛形が挿入されます。動かしてみると「なるほど!」と思うことしかり。

    Posted by うに。 | 2004年10月16日 02:38.

    1クラス複数ファイル、がVS2005のデフォルトであ?
    Partialで。

    #さすがにコンソールアプリは1ファイルなのかな?

    Posted by 小野@どっとねっとふぁん | 2004年10月18日 12:38.

    Visual Studio 2005 Beta1 日本語版を VAIO Type U にインストール

    Visual Studio 2005 Beta1 日本語版をVAIO Type U にインストールしてみました(^^;
    TypeU のHDD容量は20GB(10GB+10GB)で、リカバリ用領域が3GBほど取られているのでこんな巨大なアプリケーションをインストールするとアップアップです。おまけにVisual Studio 2003 Enterprise Archtectをインストールしていたので入る余地がありません。
    ということで、Visual Studio 2003 をアンインストールし、またその他の使わないであろうアプリも極力削ってなんとかスペースを確保、インストールしました。
    SBS2003にまったく入らなかった過去があるのでどうかな、と思いましたが、一応XP Proということもあってすんなり導入できました。TypeUでVisual Studioなんかどうするの?という話はありますが、とりあえずこれでなんとか評価できる環境は整いましたので、会議前の待ち時間など、ちょっと空いた時間にいろいろと触ってみたいと思います。

    Yukonは入るかな(ぼそ

    Posted by suzuki at 18:15 | コメント (0) | トラックバック

    2004年10月13日

    SBS2003にVisual Studio 2005 Beta1 インストール

    そろそろちゃんと評価しないといけない時期にきたWhidbeyなんですが、手元にまともに評価できそうな端末がなかったので、自宅サーバー(SBS2003)にインストールしてみることにしました。
    ただ、このマシンは手違いで光学ドライブがついてないので(^^; "DAEMON Tool"で仮想光学ドライブをマウントして、MSDN Subscriber Downloadから落としたDVD isoイメージをマウントしてインストールしてみました。
    しかし、なんどやってもインストールの最初で失敗してしまいます。DAEMON Toolが原因か、そもそもSBS2003が原因かということがちとわからないのですが、今度はちゃんと物理的に光学ドライブをつけてから(^^;試そうかな、と思います。

    #TypeUにも入れてみるべきなんだろうな・・・(ぼそ

    Posted by suzuki at 09:27 | コメント (2) | トラックバック

    HDDに全部コピーするとかしてみてください。(^^

    Posted by 中 博俊 | 2004年10月13日 23:34.

    それがHDDに全部コピーしてもだめなんですよねぇ。
    「要件を満たしていません」という状態のようです。
    ハード、ソフトとも満たしているんですが。。。

    なので、Windows Server 2003 for SBS なのが
    あやしいのかな、と思っています。

    Posted by suzuki | 2004年10月14日 10:29.

    2004年10月05日

    DataSet操作でよくある方法

    308909 - [HOW TO] Visual C# .NET で DataRow オブジェクトを別の DataTable にコピーする方法

    案外、使う場面が多い方法ですね。こういうアルゴリズムが最適かどうか、という問題はありますけど。

    Posted by suzuki at 18:38 | コメント (0) | トラックバック

    2004年08月12日

    2004年07月28日

    2004年07月15日

    NTFS のプレインストールと Windows XP

    NTFS のプレインストールと Windows XP

    ディスクシステムの仕様に関する詳細あり。なんとなく、リソースキットにも載ってたような気がするけど

    Posted by suzuki at 13:15 | コメント (2) | トラックバック

    この記事でひとつ気になること。
    Windows NT 3.51までは NTFSじゃなく HPFSだったような気がすること。

    Posted by Holly | 2004年07月15日 19:01.

    WIndows NT 3.1 から NTFS じゃありませんでしたっけ?

    Posted by 安藤@大分 | 2004年07月29日 12:38.

    2004年07月13日

    あなたはどっち派?

    例えば、プログラムを書いていて以下の文を書いたとします

    for ( int i = 0; i < 100; i++)
    

    さて、上記の for 文の"("と")"ですが、皆さんはどういった順番で入力(タイプ)しますでしょうか。

    ものの本によると、括弧は連続して入力するのが望ましいとなっています。つまり例の場合、まず

    for ()
    

    と書いてから、カーソルを一つ戻し、残りの条件を書くのが望ましいそうです。

    確かに"()"がたくさんネストするプログラム文だと括弧の閉じ忘れというよくあるプログラムミスを防ぐことが出来るので『先に括弧を入力』するのは非常にお勧めですが、世のプログラマーの人たちはどっち派(『先に括弧を入力派』 or 『後から括弧を入力派』)が多いんでしょうねぇ。ふと気になりました。

    ちなみに私は左から順番に入力する癖がついちゃってます(^^; いわゆる『後から括弧を入力派』ということになりますねぇ。

    Posted by suzuki at 11:20 | コメント (5) | トラックバック

    if じゃなくて for でそ?w
    僕は元々「括弧が先」派でしたが、Visual Studio を使うようになって、キーカスタマイズしないと Ctrl+B でカーソルを1つ前に戻せなくなって以来、頻度が大分低下してます;-p

    Posted by 渋木宏明(ひどり) | 2004年07月13日 12:04.

    for に直しました(笑
    #適当に書いてるとあかんですな。

    VS使うと『後から括弧派』が育ちやすいのでしょうかねぇ。
    Emacsで育つと括弧先、な人が多いような気もしています。

    Posted by suzuki | 2004年07月13日 12:53.

    Web developer 2005 で HTMLタグを打ち込んでいると、勝手に閉じタグも出力してくれます。
    これって最初に()を書くってのに準じてるのかな?

    Posted by Holly | 2004年07月13日 13:01.

    VS2003でもHTMLの閉じタグを出力してくれますね。
    #個人的にはアレ、余計なお世話だったりします(^^;

    でも『あるべき作法はまず閉じてからだ』というVSチームのメッセージと受け取れないこともないですねぇ。

    Posted by suzuki | 2004年07月13日 14:20.

    コーディングって頭の中にあるものを転記する作業だから左から順番にだなぁ。

    Posted by 中 博俊 | 2004年07月13日 22:24.

    2004年07月06日

    Contents of .NET Framework 1.1 Service Pack 1

    MSDN .NET Framework Developer Center: Contents of .NET Framework 1.1 Service Pack 1

    .NET Framework 1.1 Service Pack1 がTPとなっています。あわせて.NET Framework 1.0 Service Pack3もTPだそうで、これはいろいろと試さないとなぁ、と思いつつ、本業が噴火してしまったのでそんな時間ぜんぜんありません。。。

    つか、一人で数千万オーダーのDBシステムの仕様書&提案書を五日間で二つあげなきゃいけない状況ってどうよ。ヽ(´ー`)ノ 開発真っ只中のDBシステムのマネジメントもしないとあかんのに。

    そろそろ遭難するかも。

    Posted by suzuki at 11:46 | コメント (0) | トラックバック

    2004年07月01日

    Mono 1.0 Released

    What is Mono?

    Linux上での.NET開発をするためのフレームワーク"Mono 1.0"がリリースされたようです。Windows Formはありませんが、ASP.NET、ADO.NETなどが使えるようになっているとのことです。
    ふーむ。ちと使ってみるかな。

    Posted by suzuki at 17:34 | コメント (0) | トラックバック

    2004年06月29日

    Visual Studio 2005 Beta1

    Visual Studio 2005 Beta Home

    ついにWhidbeyがBeta1を迎えました。

    さて、どのマシンにインストールしようか。。。。。

    Posted by suzuki at 17:05 | コメント (0) | トラックバック

    Visual Studio 2005 Express Beta Products

    Visual Studio 2005 Express Beta Products

    なんだこりゃ?廉価版Visual Studio.NETっていうことなのかな。
    うーん。「業務向けじゃなくてもっと気軽に」という感じのものみたいですねえl。

    Posted by suzuki at 17:04 | コメント (1) | トラックバック

    以前DelphiにあったPersonal Editionみたいなもんでしょうか。

    Posted by いしどう | 2004年06月29日 17:18.

    2004年06月17日

    RSS.NET

    RSS.NET: An open-source .NET class library for RSS feeds

    haramizuさんとこより。時間が取れたら見てみよう。

    Posted by suzuki at 10:02 | コメント (0) | トラックバック

    2004年06月16日

    2004年06月07日

    Visioで始めるUMLモデリング

    @IT:Visioで始めるUMLモデリング 第1回 「習うより慣れよ」方式で学ぶUMLモデリング

    最近ちょっとUMLモデリングに興味がありますφ(.. )

    Posted by suzuki at 11:18 | コメント (6) | トラックバック

    D3 では、既に UML の限界(主に適用範囲の限界)について、2・3のエバンジェリストの方が公演中にさらっと語ってました (^^;

    適用範囲については、僕の仕事の範囲ではあまり問題にならないんですが、イベントが表現できないのは辛いなぁ>UML

    Posted by 渋木宏明(ひどり) | 2004年06月07日 11:40.

    同感>イベントが表現できない

     少なくともUMLで書く事は抽象度が高い事なので、UMLの図形を見ながら考えを検証してコードに落とす段階の参考資料にするぐらいにしかならないのではないでしょうか。

    Posted by 菊池 | 2004年06月07日 15:12.

    UMLは落書きにはいいけど仕様書には使うなという格言もあります。
    whitehorseよろしくって言う感じで(^^

    Posted by 中 博俊 | 2004年06月08日 00:13.

    そろそろUML神話も終わりに近づいてきた?

    UML自体はコミュニケーションを主体としたドキュメントの位置付けにありますがUMLで会話できる範囲ってどこまででしょうか?そして、UMLとソースのやり取りはなんとか実装されてますが正直なとこクラス図までという認識です。シーケンス図とかまで自動では反映されませんよね。となると、ドキュメントとソースの最新版の維持というのがやはり問題になってきます。

    まぁ、根本的にクラス図を使うとして抽象化しちゃうとあまり意味が無いし詳細にすれば記述量が増える。この辺のバランスがどうもとりにくい。

    そういった意味で「デスマーチよ!さようなら!」のスタイルは外部設計でドキュメントは止めちゃうあたりの割りきり具合が素敵ですね。ISOとか絡むととても割り切れなくなるんですけど。。。

    Posted by うに。 | 2004年06月08日 01:45.

    最近買ったUML入門(ぉぃ を読んでいて思うのは、なんつーかこう、「直感的じゃない」というか「こりゃUML図を書くことにこだわりすぎる人が出てきてるんじゃないか」ということ。

    やりたいことは、システムという漠然としたものを、以下に簡潔に表して認識の際をなくすこと、というのは分かるんですけど「UML言語」とか言われちゃうとちょっとなぁ、と。

    Java屋さんなんかが「U・M・L!U・M・L!」と騒いでいるのをよく見かけますが(気のせい?)、皆さんのコメントを見ているとほんとのところは、やはり手段であって目的ではないということをきちんと認識した上で「それが全てでは無いナリよ」ということなんでしょうねぇ。

    自分で書いててわけがわからんコメントだ↑(w

    Posted by suzuki | 2004年06月08日 20:16.

    UML関係の書籍とか読んでていっつもおいらが漠然と思うオブジェクト構造と違うんですよね。おかげで「なんでこういった構造になってるんだ?」とぜんぜん違う部分が気になって集中できません。。。ついつい、「オブジェクトの構造ありきでUML書いてないか?」と思うわけです。それはそれで間違ってはいないんだけど。。。

    Posted by うに。 | 2004年06月09日 20:55.

    2004年05月28日

    MayCTPインストール時の注意?

    VS 2005 May CTP Installation Gremlins

    気に留めておこう。

    Posted by at 23:55 | コメント (1) | トラックバック

    DVDで入れるは無駄ってことですか。。。
    ちょっとこの辺を参考に入れてみよう。

    Posted by うに。 | 2004年05月31日 01:34.

    2004年05月26日

    大出費

    調子に乗ってAmazonで2万円ほど本を買っちゃいました。
    ・UML入門
    ・Visual C#.NET 実践講座 Vol.1 基礎編
    ・Visual C#.NET 実践講座 Vol.2 活用編
    ・C#によるプログラミングWindows 上
    ・C#によるプログラミングWindows 下
    Let's 自己投資(涙

    いや、最近各所のDeveloper's Blog見ていて鬱になりそうだったんで本格的に勉強しようかな、と。
    #ええ、あたしゃどちらかというと Developer じゃなくて Administrator なんですよね。
    #↑ "Visual Developer"の称号が面映いこと。。。

    Posted by suzuki at 11:48 | コメント (0) | トラックバック

    2004年05月25日

    Web Services Enhancements (WSE)

    Web Services Developer Center: Web Services Enhancements (WSE)

    これもTechEdでの発表ですが、Web Serviceのセキュリティを強化するものがリリースの運びとなったようです。
    LonghornのIndigoに向けて、というところでしょうか。理論や概念ばかりが先走ってる感のあるXML WebServiceですが、これ、ほんとに今後普及するんでしょうかねぇ。。。

    Posted by suzuki at 11:40 | コメント (0) | トラックバック

    Visual Studio 2005 May CTP

    Visual Studio 2005 May Community Technology Preview がMSDN Subscriber Downloadからダウンロードできるようになってますね。
    ASP.NET Administration Tools や Longhorn上で動くようになってたりしないかな。
    ちなみに前回のやつは March CTP でしたからちょっとはいろいろ治ってることを期待。

    Posted by suzuki at 11:36 | コメント (0) | トラックバック

    Visual Studio 2005 Team System

    Visual Studio 2005 Team System

    TechEdにて発表がありました。何するものかよく分かっていないのですが、「That's cool stuff!」と各blogで騒がれているところを見ると、よいものなのかな?
    ざっくりまとめると設計からテストまでの一連のソフトウェア開発の流れをサポートするツールがそろったものだと言うことみたいですけど実際のところはどうなんでしょう。ほんとに有用なものなのかな。

    おしえて偉い人(笑

    Posted by suzuki at 11:28 | コメント (3) | トラックバック

    Visual Studio 2005 Team System: Overview
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvsent/html/vsts-over.asp

    Posted by suzuki | 2004年05月25日 11:37.

    Tech Ed の発表に合わせて、日本のMSDN にも日本語訳が上がっています。
    私からは "とにかくすごい" としか言えません。どうぞご確認ください。
    http://www.microsoft.com/japan/msdn/vstudio/teamsystem/overview/

    Posted by Kazuhiko Kondo | 2004年05月25日 11:51.

    ちょっと意地悪してみようかな(^^;

    ・「とにかくすごい」って何がすごいの?
    ・カタカナ英語が乱発されてるけどほんとに意味分かって訳してる?
    ・今現在SDLCツール(もどきを含む)を使っている顧客に対して、VSTSの方がこれだけいいんだよ、という明確な指標はだせるの?
    ・日本的な開発に果たして適合するの?
    ・これが必要になるほどの開発をするようなところではないところでも果たして導入メリットはあるのかしら?
    などなど、このあたりがきちんと説明できないと絵に書いた餅になりかねないような気がするのです。

    まあ、まだPressReleaseレベルなので酷だとは思いますが、"大規模開発をしない"私のファーストインプレッションはこんなものです。UMLな大規模開発をしているような人にとっては「こいつぁありがてぇや」なのかしら。
    ともあれ、今後「目から鱗」な展開になることを期待(^^;

    #ところでVisualSourceSafeの立場は・・・(;_;

    Posted by suzuki | 2004年05月25日 13:28.

    2004年05月19日

    連番管理テーブルによる、未使用の最小番号を得るクエリー

    連番管理テーブルによる、未使用の最小番号を得るクエリー

    心配性なものでどうしてもこういうの気になります。伝票発行システムなどでは、当然伝票番号をシステムで管理発行しなければならないのですが、その性質上、どんなタイミングでも絶対に番号がかぶらないようにしなければなりません。その場合、トラックバック先のように連番管理テーブルなどを用いて、番号の整合性を取る必要があるというわけです。GUIDとか使えれば間違いないんですがあれは長すぎるし、IDENTITY列を使えればそれに越したことは無いんですが往々にしてナンバリングというのはオリジナル性にこだわるところがほとんどでして(^^;

    てなわけで、いろいろ工夫しなければならないということです。ちなみに、トランザクション中にあるレコードにロックをかけるには

    SELECT * FROM T WITH(XLOCK,ROWLOCK) WHERE X=1
    

    でいいそうです。

    Posted by suzuki at 19:06 | コメント (2) | トラックバック

    趣旨違うかもしれませんが。。。
    伝票番号などの場合、IDENTITY 列を持たせておいて
    オリジナル性は計算列で表現するという方法もあります。
    [種別コード] + [年月日] + [IDENTITY] とか。

    Posted by 渋谷 泰宏 | 2004年05月19日 23:34.

    計算列!なるほどそういうのもありますね!
    φ(..)メモメモ

    Posted by suzuki | 2004年05月19日 23:44.

    2004年05月18日

    [PRB] Visual Studio .NET 上でソース管理を行うと Unicode ファイルおよび UTF-8 ファイルが破損することがある

    842037 - [PRB] Visual Studio .NET 上でソース管理を行うと Unicode ファイルおよび UTF-8 ファイルが破損することがある

    完全に見落としていたのですがこんな話があったのですね。特にデータベースプロジェクトでSQL Server相手にストアドプロシージャなんかを書いていると、これはUTF-8で記述されているので見事にこの事例に当てはまります。
    またWEBプロジェクトでも、Web.configとかUTF-8なので注意が必要ですね。

    Posted by suzuki at 13:09 | コメント (0) | トラックバック

    2004年05月13日

    行列を入れ替えるSQL

    問題:以下のテーブルAをテーブルBのように抽出するSQL文は?

    テーブルA

    IDdata1data2data3data4
    1a1b1c1d1
    2a2b2c2d2
    3a3b3c3d3
    4a4b4c4d4
    5a5b5c5d5

    テーブルB

    12345
    12345
    a1a2a3a4a5
    b1b2b3b4b5
    c1c2c3c4c5
    d1d2d3d4d5

    Excelにコピーして(略 というのは無しの方向で。

    Posted by at 21:20 | コメント (2) | トラックバック

    正解:
    SELECT DISTINCT
    CAST((SELECT T1.ID FROM TABLEA T1 WHERE ID='1') AS varchar) AS '1',
    CAST((SELECT T1.ID FROM TABLEA T1 WHERE ID='2') AS varchar) AS '2',
    CAST((SELECT T1.ID FROM TABLEA T1 WHERE ID='3') AS varchar) AS '3',
    CAST((SELECT T1.ID FROM TABLEA T1 WHERE ID='4') AS varchar) AS '4',
    CAST((SELECT T1.ID FROM TABLEA T1 WHERE ID='5') AS varchar) AS '5'
    FROM TABLEA T
    UNION ALL
    SELECT DISTINCT
    (SELECT T1.data1 FROM TABLEA T1 WHERE ID='1') ,
    (SELECT T1.data1 FROM TABLEA T1 WHERE ID='2') ,
    (SELECT T1.data1 FROM TABLEA T1 WHERE ID='3') ,
    (SELECT T1.data1 FROM TABLEA T1 WHERE ID='4') ,
    (SELECT T1.data1 FROM TABLEA T1 WHERE ID='5') ,
    FROM TABLEA T
    UNION ALL
    SELECT DISTINCT
    (SELECT T1.data2 FROM TABLEA T1 WHERE ID='1') ,
    (SELECT T1.data2 FROM TABLEA T1 WHERE ID='2') ,
    (SELECT T1.data2 FROM TABLEA T1 WHERE ID='3') ,
    (SELECT T1.data2 FROM TABLEA T1 WHERE ID='4') ,
    (SELECT T1.data2 FROM TABLEA T1 WHERE ID='5') ,
    FROM TABLEA T
    UNION ALL
    SELECT DISTINCT
    (SELECT T1.data3 FROM TABLEA T1 WHERE ID='1') ,
    (SELECT T1.data3 FROM TABLEA T1 WHERE ID='2') ,
    (SELECT T1.data3 FROM TABLEA T1 WHERE ID='3') ,
    (SELECT T1.data3 FROM TABLEA T1 WHERE ID='4') ,
    (SELECT T1.data3 FROM TABLEA T1 WHERE ID='5') ,
    FROM TABLEA T
    UNION ALL
    SELECT DISTINCT
    (SELECT T1.data4 FROM TABLEA T1 WHERE ID='1') ,
    (SELECT T1.data4 FROM TABLEA T1 WHERE ID='2') ,
    (SELECT T1.data4 FROM TABLEA T1 WHERE ID='3') ,
    (SELECT T1.data4 FROM TABLEA T1 WHERE ID='4') ,
    (SELECT T1.data4 FROM TABLEA T1 WHERE ID='5') ,
    FROM TABLEA T

    UNION ALL と CAST が 肝かな

    Posted by suzuki | 2004年05月14日 10:35.

    って、一応正解だけどほんとにこれがBESTなのかな。
    教えてえらい人(^^;

    Posted by suzuki | 2004年05月14日 11:05.

    WinFormから外部EXEを起動

    WinFormから外部EXEを起動するとき、例えば以下のようにします。

    条件:WinForm上に貼り付けられたButton1をClickするとNotePad.exeが立ち上がる

     コード例:VB.NET
    
     Imports System.Threading
     Imports System.Diagnostics
     ~中略~
        Friend WithEvents noteProcess As System.Diagnostics.Process
     ~中略~
            Me.noteProcess = New System.Diagnostics.Process
            Me.noteProcess.StartInfo.FileName = "notepad.exe"
            Me.noteProcess.SynchronizingObject = Me
     ~中略~
        Private Sub Button1_Click(ByVal sender As System.Object, _
                                              ByVal e As System.EventArgs) _
                                              Handles Button1.Click
            noteProcess.Start()
        End Sub
    

    Visual Studioの入門書なんかみるとこんな感じでかかれていることが多いんですけど、別に別スレッドにする必要は無い場合はどうするんでしょうね。

    Posted by at 16:36 | コメント (2) | トラックバック

    別プロセスで起動するなら、Process.Start(アプリ名)を
    呼び出すだけでOK。
    http://homepage3.nifty.com/dotnetfan/console/console16.html

    外部EXEがマネージドなアプリケーションだったら、リフレクションを
    利用して別スレッドで起動するとか、別AppDomainで起動するとか
    同一AppDomainで起動するとかできる。
    でも、マネージドじゃないアプリケーションは、別プロセスで
    起動するしかできないんじゃないかな?

    Posted by 小野@どっとねっとふぁん | 2004年05月13日 17:50.

    ふーむ。
    例えば業務系アプリをチームで開発しているとき、メインパネルから各種業務機能のフォームを呼び出すものを想定します。
    このとき、各業務機能フォームを「単体EXE」として作成し、最終的にメインパネルのEXEからそれぞれの各業務機能EXEを呼び出すようにすれば開発が楽かなー、というのが発端。
    それぞれをプロジェクトにしてソリューションでまとめて、ソースコードはVSSで管理して、というのが普通だとは思うのですが、案外、そうしたことについてのドキュメントやらケーススタディって無いんですよね。MicrosoftのVSSのページ見ても「?」だし。
    いままで自分は「一人で開発一人でデバッグ一人でリリース一人で使用する」というとってもアローンな環境(笑)しか経験がないもんですから、.NET系の大規模開発をしているところはいったいどういう手法で取り組んでいるのかに興味があるのです。

    先のVB.NETのプログラムも、どうしたらそういう開発で楽できるかなぁ、というのを考えてるときにふと思いついたプログラムをメモしたのでした。

    Posted by suzuki | 2004年05月13日 18:36.

    .NET アーキテクチャ センター

    .NET アーキテクチャ センター

    というのが公開されています。時間があったら(無いけど)見ておこう。

    2004年05月11日

    How do you design new features for C#?

    うにょうにょ日記 - How do you design new features for C#?

    Channnel9 の Eric のインタビューが文字に起こされてます。必見。

    SELECT結果のn番目からn+m番目までを抽出

    TというテーブルにFieldという順列のつけられる一意なデータを持つ列があったとして。

    SELECT * FROM
    (SELECT Count(*) AS NO FROM T AS T11,T AS T12
    WHERE T12.Field <= T11.Field Group by T11.Field) AS T13
    WHERE T13.NO Between 10 and 20 Order by T13.NO
    

    これで、10番目から20番目のレコードを抽出できますがコスト高っ(w
    #まぁ100件くらいならなんとか。。。

    ちなみに、Pentium4 3.06GHz RAM 1GB Windows2000Pro SP4 SQL Dev SP3 、6万行のテーブル(インデックスなし)相手に大体30秒の実行時間がかかりました

    またはこんな方法も

    SELECT TOP 10 * FROM T
    WHERE Field NOT IN (SELECT TOP 10 Field FROM T)
    ORDER BY Field
    

    こちらは、SELECT上位10を除いたSELECT結果から上位10個ということで、11番目から20番目を抽出することが出来ます。こっちのほうが素直かも。

    [HOWTO] Visual Studio .NET 2003 で初歩的な C アプリケーションを作成する方法

    841226 - [HOWTO] Visual Studio .NET 2003 で初歩的な C アプリケーションを作成する方法

    ことさらKBにするまでも無い内容だと思うのだけどどうなんだろう。確かに、基礎的CプログラムをVS.NETのIDEで書くのは抵抗があったりしますけどね。
    「Cはviとgccでやらなければならない(瞳孔開」
    というつもりもさらさら無いですが(^^;

    2004年05月03日

    C# and ASP.net Whidbey

    C# and ASP.net Whidbey

    Anatoly Lubarsky っつーのがなにやら吼えてますな。自分のBlogでも吼えてるみたいで。あれかなー、自分の尺度でしか物事を捉えようとしない人なのかな。

    OneNote Powertoy:Rss2OnNote

    OneNote Powertoy: Rss2OneNote

    ほんと、MSDN blogにはお宝が眠っている。OneNoteでRSSフィードを読めるようにするPowerToyだそうです。

    2004年04月27日

    2004年04月26日

    ジャグ配列

    Developerと言われても恥ずかしくないようにいろいろお勉強中なのですが
    (私の本職はAdministrator)、その中で『ジャグ配列』というものに出くわしました。

    どうもこのジャグ配列というものは、配列の中に、配列を持つというような感じの配列みたいです。・・・・・自分で言ってて意味が分からんのですが(笑
    というわけで簡単なサンプルプログラムを。

    using System;
    
    public class JagArray
    {
        public static void Main()
        {
            // Jagged array
            byte[][] scores = new byte[5][];
    
            // Initialized the jagged array
            for (int i = 0; i < scores.Length; i++)
            {
                scores[i] = new byte[i+3];
            }
    
            // Print length of each row
            for (int i = 0; i < scores.Length; i++)
            {
                Console.WriteLine("Length of row {0} is {1}", i, scores[i].Length);
            }
        }
    }
    

    こいつの出力結果は下記のようになります。

    Length of row 0 is 3
    Length of row 1 is 4
    Length of row 2 is 5
    Length of row 3 is 6
    Length of row 4 is 7
    

    イメージできますでしょうか。一つ目の配列変数の中には3つの要素をもつ配列変数が、二つ目の配列変数の中には4つの要素を持つ配列変数がといったような感じとなります。

    あまり使わない種類の配列だと思いますが、状況によっては便利に使える配列だと思います。ちなみに、C#では配列も"オブジェクト"ですのでご注意を。

    2004年04月23日

    SQL Server 2000 自習書シリーズ

    Microsoft SQL Server - 技術情報 - SQL Server 2000 評価ガイド - SQL Server 2000 自習書シリーズ

    さて、そろそろちゃんと読み始めるかな。いままで感覚的に使ってたからきっと間違って覚えているところがあるだろうし(^^;

    2004年04月22日

    VG.net

    VG.net: Animated Vector Graphics

    おお、なんだかすごいφ(.. )

    2004年04月21日

    メモメモ

    ms-help://MS.MSDNQTR.2004APR.1041/vsintro7/html/vbwlkCreatingDistributedWebApplicationWalkthrough.htm

    Webサービスで作っちゃってもいいかなぁ。。。

    Posted by at 18:54 | コメント (1) | トラックバック

    Good job

    Posted by yaoi | 2004年09月26日 09:02.

    2004年04月15日

    Visual SourceSafe 6.0d

    Visual Studio .NET と Visual SourceSafe を使用したチーム開発

    今度、チームでアプリ開発をすることになりそうなので(本業じゃないのに)、このページを見ながらVisual SourceSafeの可能性について調べてみましたが・・・さっぱりわけわかりません。もうちょっと調べたり使ったりしないとだめみたいですわ。しかし、なんとなくVisual SourceSafeの話って表に出てこないのはなぜ?Windowsプログラマって一匹狼な人ばかりではないだろうし。以前聞いた話では、VSSでは機能が足らんということで皆結局使わなくなってしまうということもあるみたいですけど果たして。

    Posted by at 14:10 | コメント (1) | トラックバック

    チェックアウト:管理データベースに保管されたソースコードを取得すること
    チェックイン:更新したソースコードを管理データベースに保存すること

    あってます?(w

    Posted by suzukiworks | 2004年04月15日 14:27.

    2004年04月14日

    NothingとDispose

    users.gr.jpのASPX-MLより:

    ・.NETでは、GCによってクラスインスタンスがメモリ上から削除される際に呼び出される
     メソッドを「ファイナライザ」と定義している。
    ・C#、Managed C++では、クラスのファイナライザメソッドをC++のデストラクタと同じ
     構文で記述している。
    ・自分で new したクラスインスタンスは使い終わったら破棄。これが原則。
    ・クラス仕様で定められた破棄メソッドがある時はそれを呼び出す。
    ・クラスがIDisposableインターフェースを実装しているときは、usingで括る。
    ・クラス仕様が要求する廃棄手順は、IDisposable.Dispose()よりも優先されるべき
    ・クラスメソッドとしてのDispose()とIDisposableの継承によるDispose()は同等でない場合がある

    <usingで括る使用例>
    using (Class class = new Class())
    {
      // class に対する処理
      class.Close();
    }
    

    φ(.. )なるほど勉強になる。 <#こら、おめーVisual DeveloperのMVPだろ。
    Posted by at 10:44 | コメント (5) | トラックバック

    どもども (^^;

    興味が沸いた所で、GDNJ の大長編スレッド

    http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=4718

    のサマリをまとめてみませんか? (^^;;;

    Posted by 渋木宏明(ひどり) | 2004年04月14日 10:56.

    ひええええ

    Posted by Szk | 2004年04月14日 11:00.

    最初の1ページで遭難しました(笑

    カタカナ英語や(私にとっての)新語が山盛りなのでもう少し修行してから出直さないとだめっぽいです。

    #いままでCloseもDisposeも気にかけたことがなかったりするし(^^;
    ##「このクラスはこうする」くらいしかしてない。

    Posted by Szk | 2004年04月14日 11:41.

    http://www.microsoft.com/japan/msdn/net/bda/daag.asp より引用:
    『メソッドから戻る前に接続が閉じられることを保証するために、以下の 2 つのコード サンプルで例示されているアプローチのいずれかを考慮してください。最初のコードは、finally ブロックを使用します。 2 番目のコードは、C# using ステートメントを使用します。これは、オブジェクトの Dispose メソッドが確実に呼び出されるようにします。』
    この言葉の裏には、ConnectionオブジェクトはCloseではなく、Disposeを呼ぶのが望ましい(呼ばなければならない?)という思惑が見え隠れしますね。WhidbeyからはVB.NETでもusingステートメントが使えるようになるという噂を耳にしましたが、今現在で言うとtry~catch~finallyを使え、というのが共通解になるでしょうか。
    #でも、あの超長大スレッドの落としどころにはならんか・・・。

    Posted by suzukiworks | 2004年04月15日 15:34.

    まぁ、中途半端にCloseされるよりDisposeしちゃえ。
    そういうことではないでしょうか。

    Posted by うに。 | 2004年04月17日 00:09.

    VMWare Workstation 4.5.1

    速いぞ! VMware Workstastion 4.5.1

    あおりに負けて買っちゃいました(笑)。もともとVMWare Workstation 3.xを持っていたので、Upgrade版をご購入。最近使っていたVirtualPCと比較すると、確かに動きが速いです。OSのインストール時間とか段違い。これなら実験or評価環境としてサクサク環境を作ることが出来ます。

    というわけでVMWareに英語版Windows Server 2003 Standard Edition と Visual Studio 2005 (Whidbey) をインストールしてみました。ぼちぼち評価していこうと思います。

    2004年04月13日

    すごいクエリー技

    1 ~ 43 までの数字をランダムに抽出するクエリー

    なるほどこの手が。しかし。。。UNION ALLとはきづきませんでした(笑

    Posted by at 18:06 | コメント (1) | トラックバック

    定数からなる一時テーブルを、テーブル変数や一時テーブルを作らずに作成するワザですね。

    Posted by 河端善博 | 2004年04月14日 10:40.

    2004年04月10日

    MSDN Release RSS Feeds

    MSDN Releases RSS Feeds

    U.Sだけかも、ですがMSDNのRSS Feedsが出ています。RSS BanditなどのRSS リーダで情報を集めることができますね。

    2004年03月31日

    2004年03月29日

    Form認証

    ASP.NET Form認証の基本 ※ユーザーデータベースはSQL Server/MSDEに入っていることが前提

    【Web.config】

    <authentication mode="Forms">
        <forms loginUrl="login.aspx" />
    </authentication>
    

    【login.aspx.cs】

    private void OnLogin_Click(object sender, System.EventArgs e)
    {
        if (CustomAuthentication(UserID.Text,Password.Text))
        {
            FormsAuthentication.RedirectFromLoginPage (UserID.Text,false);
        }
        else
        {
            Label3.Text = "Invalid Login";
        }
    }
    
    private bool CustomAuthentication (string username,string password)
    {
        SqlConnection conn = new SqlConnection("server=localhost;database=dbname;uid=uid;pwd=password");
        try
        {
            conn.Open();
            StringBuilder strB = new StringBuilder();
            strB.Append("Select count(*) from users where username=\'");
            strB.Append(username);
            strB.Append("\' and cast(rtrim(password) as varbinary) = cast(\'");
            strB.Append(password);
            strB.Append("\' as varbinary)");
            SqlCommand command = new SqlCommand(strB.ToString(),conn);
            int count = (int)command.ExecuteScalar();
            return(count > 0);
        } 
        catch
       {
             return false;
        }
        finally
        {
             conn.Close();
        }
    }
    

    他にもGlobal.asaxを使う方法もありかと。

    Posted by at 13:00 | コメント (1) | トラックバック

    なんか、うまくコードが表記できないなぁ。MovableTypeではどうやればいいんだろう(^^;

    Posted by suzukiworks | 2004年03月30日 10:40.

    2004年03月25日

    mono::

    Home / Mono

    オープンソースな.NET Frameworkだそうで。なんて素敵な人たち(^^;

    今のところ、WebformsとWebServicesが動くそうで、C#コンパイラもあるとか。いやはやすごいですねぇ。

    2004年03月24日

    .Text

    Weblogs @ ASP.NET や、SQLPASSJブログ(ベータ)USERS GROUP 日記 などで使われている.TextというBLogツール(?)をインストールして見ました。が、

    めっちゃはまりました。

    結局は「なんじゃこらぁあああっ!(@p@ (C)ジーパン」という現象ではまったのですが、まあそれを除けば何とか動かすことができました。

    サンプルはこちらです。近いうちにインストール記録でも公開しようと思います。

    Posted by at 00:02 | コメント (1) | トラックバック

    インストール記録ぷりーず。参考にさせてもらいたいっす。_o_

    Posted by YamaKen | 2004年03月30日 16:02.

    2004年03月23日

    ドメインコントローラでデフォルトのASPNETアカウントを使用するとASP.NETが動作しない

    315158 - [FIX] ドメイン コントローラでデフォルトの ASPNET アカウントを使用すると ASP.NET が動作しない

    通常、(Active Directory)ドメインコントローラ上でIISをホストするということはしないほうがいいのですが、予算削減のあおりを受けて、満足にサーバーを買ってもらえないIT部門(涙)であるとか、最近大バーゲンしているSmall Business Server 2003とかだとそうはいきません。
    で、基本的な考え方として、IISのプロセスを動作させるアカウントには、IISにしかアクセス権を持たないくらい低い権限しか与えていないアカウントを用いるべきで、そうしたアカウントをドメイン上に作成し、そのアカウントをIISのMachine.configに記述して運用するのがスマートです。
    ASP.NETからSQLサーバーとかネットワークドライブなどのネットワークリソースが使いたい場合はどうするねん、という話はありますが、そのときにはアカウントの偽装というテクを使えば無問題。"偽装"というとなにやら難しそうですが、ようはプログラムの中で別の権限をもつアカウントに"なりすます"ということです。
    Windows開発者はアカウントの権限に弱いとよく言われますが今後は必要なときに必要な権限を取得するプログラミングというのが必須となるでしょう。

    ちなみに、ASP.NETのバージョン毎のASPNETプロセスのIDは以下のようになっているみたいです。
    ASP.NET 1.0:localmachinename\ASPNET
    ASP.NET 1.1:IWAM_MachineName
    あり、いつの間に変わってたんだっけ(^^; <ぉぃ
    参考:ASP.NETのプロセスIDと要求ID

    Visual Studio .NET を使用して Visual SourceSafe に SQL Server 2000 ストアドプロシージャを追加する方法

    818368 - [HOWTO] Visual Studio .NET を使用して Visual SourceSafe に SQL Server 2000 ストアド プロシージャを追加する方法

    Visual SourceSafeが何者かというと、まあ要するにソースコード管理をするためのものということが出来ます。オープンソースな世界だとCVSツリーがこれにあたりますかね。
    チームでプログラミング開発をしていると、いつ誰がどこを変更したかというのが非常に重要で、かつ同じソースを別々の人間が更新してしまって不幸になることを防ぐ意味でもこうしたソースコード管理システムというのは重要になってきます。
    私は今までどちらかというと一匹狼でアプリを開発することが多かったのでこうしたシステムを使う機会はあまりなかったのですが今後は共同作業でアプリを開発することが多そうなのでそろそろVisual SourceSafeを使ったソースコード(のバージョン)管理もしなければならないでしょう。

    そしてこのKBではWindowsアプリのソースコードのみならず、SQL Serverのストアドプロシージャも管理するための方法が記載されているので要チェックですね。

    ちなみに、アプリ開発にまつわるドキュメント(仕様書とか)もVisual SourceSafeで簡単に管理できたらいいなーと思ったりするのですがそれはできるのかな。そしてことのついでにMicrosoft Project Serverとも連携できたりしないのかな。 ちと調べてみよう。

    2004年03月20日

    URL Rewriting in ASP.NET

    Web Applications: URL Rewriting in ASP.NET (ASP.NET Technical Articles)

    こりゃまた。。。今度じっくり腰をすえて読もうかな。。。

    2004年03月18日

    FreeTextBox

    FreeTextBox というASP.NET用のサーバーコントロールがあります。
    このコントロールを使いたいページの先頭に
    <%@ Register TagPrefix="FTB" Namespace="FreeTextBoxControls" Assembly="FreeTextBox" %>
    と書いて、HTML文中に、
    <FTB:FreeTextBox id="ftb1" runat="Server">
    とでも書けば使えます。現在はそのままでは日本語は使えないようですが、きっと誰かが日本語化してくれることでしょう。
    #ていうか日本語リソースファイルをLanguagesにぶち込むだけのような気が。

    ちなみに、Visual Studio.NETで使う分にはあまり気にしなくてもいいのですが、WebMatrixで使う場合、WebMatrixのデバッグ用WEBはProgram Files\ASP.NETフォルダをルートに持つみたいなので、そこにFreeTextBoxの配布ファイルを予めコピーしておかないとデバッグできないみたいです。他にいいやり方があるかもしれませんけど。

    2004年03月17日

    DB 設計者のための明解 ADO.NET

    .NET フィールドエバンジェリスト チーム コラム : DB 設計者のための明解 ADO.NET

    この手の解説記事は、長々と書くのではなくポイントだけをずばっと書くのが好ましい。このくらいでもちょっと長いかなぁと思うのですがいかがでしょうか。

    ただ、悲観的同時実行制御と楽観的同時実効制御は意見の分かれるところではありますなぁ。

    2004年03月16日

    2004年03月11日

    ASP.NET WebMatrix Project 日本語版

    ASP.NET Web Matrix Project 日本語版

    こういうツールが無償で提供されるのは嬉しいんだけど・・・。
    結局、Microsoftからでているこの手のツールって、プログラマー向けなんですよね。間違ってもWEBデザイナー向けではない。Visual Studio.NETなんて言わずもがなだし、ここに至って非常に中途半端なプロダクトになってしまったMicrosoft Office FrontPageとかね。
    WEBというのは、確かにあれこれしようとするとプログラミングは必須なのですが、やはり元が「閲覧」というビジュアルに類する仕組みということで、デザイナーが主体であるところは無視できないと思うんですよ。実際プログラマーって「動くこと」を重視していわゆるUIのデザインをおざなりにする部分が往々にしてあるし(ここで言うデザインとは、見た目だけではなくてボタンの配置などの人の感覚により近い部分での設計力を指します)。WEBだとやはり見た目のインパクトとか直感的にわかる配置とかが大事なのでそういうところはデザイナーさんに任せたほうがよいものが出来上がるし。そういう意味ではMacromediaのDreamweaverやIBMのHomepage Builder、AdobeのGo Live!のようなWEBオーサリングツールと、WebMatrixやVisual Studio.NETが協調できるといいんですけどね。

    某MVPな集まりでも、「Visual Studio.NETだけで今のMicrosoftのWEBサイトを一から十まで全部作ってみろや」見たいな話も出てましたね(これはおそらく不可能^_^;)。

    UNIXベースのApacheサイトもVisual Studio.NETだけで作れると私的には楽になるなーと思いつつ。

    Posted by at 23:12 | コメント (1) | トラックバック

    na

    Posted by izumiohka | 2004年05月19日 18:31.

    2004年02月27日

    ASP.NET Resource Kit

    ASP.NET Resource Kit

    あら、ASP.NETリソースキットなんてあったんですね。
    使用するにはユーザー登録してLicenceKeyを取得
    する必要があるみたいですけど。

    MSDNに収録してくれないかな。

    2004年02月24日

    ASP.NET Web Matrix Project 日本語版

    ASP.NET Web Matrix Project 日本語版

    日本語版でました。ASP.NETで開発をしてみたいけどIISも無いしVisual Studio.NETもないから無理、と思っていた人はぜひ試して見ましょう。

    2004年02月16日

    SQL Serverでログイン名を取得する

    Windows認証の場合のユーザIDを取得する方法[USERS.GR.JP SQL-ML:09572より]

    CREATE TABLE #login(spid SMALLINT,ecid SMALLINT, status NCHAR(30),loginname NCHAR(128),hostname NCHAR(128),blk CHAR(5), dbname NCHAR(128), cmd NCHAR(16))
    INSERT INTO #login
    EXEC sp_who @@spid
    SELECT loginname FROM #login
    GO

    sp_whoは、現在のSQL Serverのユーザおよびプロセスに関する情報を返すストアドプロシージャです。@@spidは現在のユーザープロセスのサーバープロセス識別子(ID)を返します。
    "#login"は一時テーブルで、テーブル名の先頭に"#"が一つついていることによって、ローカル一時テーブルとして作成されます。ローカル一時テーブルはテーブルを作成したユーザーの現在の接続においてのみ可視であり、そのユーザーがSQL Serverのインスタンスとの接続を切断すると削除されるタイプの一時テーブルです。逆にテーブル名の先頭に"##"とつけるとグローバル一時テーブルというものになります。これはどのユーザーにも可視で、このテーブルを参照するすべてのユーザーがSQL Serverとの接続を切断した時点で削除されます。一時テーブルを作成するときの場面に応じて適切な一時テーブルにすればよいでしょう。
    ちなみにこうした一時テーブルはtempdbというSQL Serverの一時テーブル格納領域に作成されます。一時テーブル作成しまくりデータベースシステムの場合、tempdbをRAID0かつ高速ハードディスク上に物理的に配置すると速くなるかも?(なーんてね)

    というわけでおがわ大先生勉強させていただきましたm(__)m

    Posted by at 10:40 | コメント (1) | トラックバック

    神に問い合わせたら、なぜかたどりついちゃいました。(^_^;)

    で、システムテーブル直接見る方法もありましたね。
    たとえば、ユーザ定義関数でこれをやる場合は一時テーブルが使えませんね。
    やるとしたらこんな感じ。
    CREATE FUNCTION fnGetUserName()
    RETURNS NCHAR(128)
    AS
    BEGIN
    DECLARE @login NCHAR(128)

    SELECT
    @login = master.dbo.sysprocesses.loginame
    FROM
    master.dbo.sysprocesses
    WHERE
    spid = (SELECT @@spid)
    RETURN @login
    END

    Posted by おがわみつぎ | 2004年03月17日 00:26.

    2004年02月15日

    .NET Framework SDK 1.1を単体で導入するときの注意

    ダウンロードの詳細 : .NET Framework Software Development Kit Version 1.1

    φ(..)メモメモ
    たとえばWindowsXPをクリーンインストールして、そこに.NET Framework SDK 1.1をインストールする場合は、先に.NET Framework 1.1ランタイムをインストールしておく必要があります。

    2004年02月11日

    2004年02月10日

    ASP.NET と Struts : Web アプリケーションのアーキテクチャ

    ASP.NET と Struts : Web アプリケーションのアーキテクチャ

    φ(.. )

    Posted by at 10:55 | コメント (1) | トラックバック

    http://unimaru.mydns.jp/FlexWiki/default.aspx/MyWiki.FrontContoler

    ここにこれ関連でメモ置いてあります。
    追記、修正があったらよろぴく(w。

    Posted by うに。 | 2004年02月17日 03:25.

    2004年02月09日

    ASP.NETホスティング

    ELN WEBSITE : レンタルサーバー/ホスティングサービス

    φ(.. )とりあえずメモ

    あと、ここもチェック
    http://www.asp.net/Hosters/

    Free TextBox

    FreeTextBox

    φ(.. ) 何かに使えるかな。(自分で作れ!という話もあるが)

    2004年02月06日

    IRC Reference

    IRC Reference

    φ(.. ) よし (ぉ?

    Posted by at 14:50 | コメント (1) | トラックバック

    dotcha Project 参戦ですね(w

    Posted by うに。 | 2004年02月08日 01:33.

    2004年02月04日

    2004年01月31日

    .NET Framework のための安全なコーディング ガイドライン

    .NET Framework のための安全なコーディング ガイドライン

    エビデンスベースセキュリティですか。世の中には「エビデンスってなんや?」って人も多いんだから中途半端な和製英語を使わずに、きちんと日本語に訳せばいいのに。
    #エビデンス=証拠、成果物 って程度に理解すればいいんだけど。
    横文字を日本語にきちんと訳せないのが情報格差を生む一端だと思う今日この頃。

    それはともかくとして、安全なコーディングのガイドラインというのは開発者はよく読んでおいたほうがいいですね。世の中まだまだ[ピー]や[ピー]なものが転がっているから。

    2004年01月29日

    Request.Querystringで文字化け?

    例えば、
    http://localhost/test.aspx?q=テスト
    とすると、Request.QueryString[0]の値が化けてしまいます。

    これの対策のひとつは、Web.configにおいて、<globalization>属性を
    <globalization
    requestEncoding="shift-jis"
    responseEncoding="shift-jis"
    />
    等とすると解決したりします。

    ただし、この対策が正しいのかどうかということは分かりません(爆

    Posted by at 18:50 | コメント (1) | トラックバック

    今更のコメントですが、ASP.NETになってJavaで悩まされた文字コードによる文字化けが出てきましたね。ASPの時はほとんど気にならなかったんだけど。。。ASP.NETではデフォルトエンコーディングはJava同様トラブルを招くと思われます。ファイルの入出力などでは必ず指定したほうがいいかと思われ。

    ちなみに、その指定は微妙にトラぶりそうですね(w。

    Posted by うに。 | 2004年02月03日 18:43.

    2004年01月27日

    2004年01月22日

    Windows XP Service Pack 2: 開発者向け情報

    Windows XP Service Pack 2: 開発者向け情報 (Windows XP 技術情報)

    φ(..)メモメモ。でもなぁ、XP SP2になるとMovableTypeが使いにくくなるんだよなぁ(ぼそ。

    2004年01月20日

    [WD2003] [HOWTO] Visual Basic .NET からオートメーションを使用して、Word で新しい文書を作成する方法

    316383 - [WD2003] [HOWTO] Visual Basic .NET からオートメーションを使用して、Word で新しい文書を作成する方法

    メモメモφ(.. )
    同じことが他のOffice製品でも言えるし。これを使えばhogeからhogeできるな、と。

    Posted by at 10:40 | コメント (1) | トラックバック

    この方法だと、Wordのバージョン固定じゃないかな?
    という点に注意が必要な気がする今日このごろ。

    Posted by 小野@EAC | 2004年01月21日 13:01.

    2004年01月14日

    たのむよMSDN事務局

    住所変更の連絡はしたのですが、今月分のMSDNが旧居に届いてしまったようです。

    たのむよ、MSDN事務局。。。*sigh*

    Posted by at 23:49 | コメント (1) | トラックバック

    事務局に電話したら住所は変更されてました。
    ただ、出荷時期と住所変更時期のタイミングが
    微妙にずれたために旧居に配送されてしまった
    ようです。結局今日、無事に届けられました。

    Posted by tankmage | 2004年01月15日 22:43.

    2004年01月12日

    SQL Server with WinXP or WS2003 has problem.

    いきなりでたらめな英語で恐縮ですがSQL Serverに不具合があるのでメモ。

    WindowsXP/Windows Server 2003を使ってSQL Serverの開発をしている場合、テーブル名、フィールド名等に「ー(長音)」を使っているとエンティティが表示されない。

    要するに、日本語(ほとんどは和製英語)を使うな、ということです。いつもローカライズでは文句を言っているのですが(フィードバックされた試しがないですけど)、言語対応はがんばろうよ、アレでアレすると激アレになっちゃうところとかさ。

    2003年12月18日

    ポート番号一覧

    ダウンロードの詳細 : ポート番号一覧

    Windowsが使用しているポート番号の一覧をExcelのシートで参照できます。興味のある人はどうぞ。

    ・・・私はもうこういうのに興味無くなってきたなぁ。


    と言ってみるテスト。

    2003年12月17日

    Whidbeyすごすぎる

    Whidbeyをぼちぼちと触り始めているのですが、こいつはすごい開発環境です。こいつさえリリースされてしまえばWinアプリの開発・配布がどれだけ簡単になるか(これはClickOnceという新.NET Frameworkの機能を使った新しい仕組みです)。
    また、WEBアプリ開発においてもmasterファイルを使うことでサイトデザインを簡単に統一できたり、また開発のためだけにIISをインストールしなくても動作確認はできてしまうという簡易WEBサーバーが搭載されていたり(これはデバッグや動作確認のときだけ、ローカルからのみアクセス可能になるWEBサーバー)、一般のWEBサーバーでもつかえるようにFTPに対応していたりともう、すごさは枚挙に暇がありません。

    Whidbeyの特集ページでも作ろうかな。あ、でも画面キャプチャって勝手に自分のサイトに張っていいんだっけか←EULAちゃんと読んでないのがバレバレ。

    Posted by at 23:48 | コメント (1) | トラックバック

    ムハッ!! なんかすごそうっ!! 欲しまるかもっ!! w

    Posted by e-doc. | 2003年12月18日 00:10.

    2003年12月13日

    Whidbeyに挑戦

    友人に貸していたVAIO Z505 C/BPが帰ってきたので、さっくりフォーマットして、そこにWindows Server 2003のEnglishバージョンを入れてから設定を調整し、先日の.NET Developer ConferenceでもらったVisual Studio "Whidbey"をインストールして見ました。

    さすがにZ505 C/BPでは非力すぎてインストールに時間がかかるかかる(^^;(Z505 C/BPはCPUがCeleron550MHzで、メモリは192MBしかありません)。まあ、使って見ること、が目的なので、年末年始にかけてのんびり評価しようと思います。

    ・・・って、年末年始は引越しでそれどころじゃないじゃん(w

    2003年12月10日

    .NET Developers Conference 二日目

    一言。

    楽しかった。。。

    ほんと新物好きかつテクノロジ大好き人間の私にとって最高の二日間。こういうイベントには以前から行きたかったんですが仕事で行くには会社の理解がまったく得られず(いったい誰の努力のおかげで会社のシステムがう動いとるとおもっとんねん)、かといって自費で行くにはちょっと、という状態だったのでこういう機会を提供してくれたMSの皆さんに感謝。

    そしてかばんの中にはWhidbeyが。。。。うれしー(笑。さあ、早くインストールしなければ。

    Posted by at 21:21 | コメント (1) | トラックバック

    自分のとこに書きましたが、新調したマシンはいまだ動かず(爆。
    早く動くようになって試したいところです。

    Posted by うに。 | 2003年12月11日 13:24.

    2003年12月09日

    .NET Developers Conference

    今日は.NET Developers Conferenceに参加するために有給をとって上京。そのため朝早くの新幹線に乗るために朝5時に目覚ましをかけたのですが、起きたら6時。

    寝坊してるー!!Σ(゜∇゜;

    ていうか新幹線7時発だしっ!家から駅まで1時間ぐらいかかるしっ!
    というわけで人生最速の身支度を整えてあわてて出発。朝早いせいか思いのほか早くつくことができ、ギリギリセーフで新幹線に乗ることができました・・・あー、危ない危ない。やっぱり私の場合、こういうイベントのときは前ノリしといたほうがいいかもしれません。

    車中、天気がよくて富士山がとっても綺麗に見えたのが何よりでした。

    さて、.NET DCの会場は台場のグランパシフィックメリディアン。セッション内容は省きますが、まあ、一言で言うなら

    早く出せ>Whidbey&Yukon

    いやもう、待てないって実際。これらがあればどれだけ楽に開発できるか。Whidbeyがあれば、このtankmage.comも、ASP.NETサイトも同じ環境の中で作ることが可能になるし。
    ということで早く出してね、ということは偉い人にお願いしておきました。また明日もあるのですが、明日配られる予定のWhidbeyやらYukonは、早速自宅の開発環境に入れてあれこれ楽しみたいと思います。よければそのまま仕事先で使ってしまおうっと。
    気が早いですか?いえいえ、それぐらいインパクトがあるってことです。

    Posted by at 23:30 | コメント (2) | トラックバック

    せっかく近くまできたのですから、大江戸温泉に入っていかれてはいかがでしょうか。
    夕方6時以降は、入場料安くなりますし。

    Posted by ひろりん | 2003年12月10日 12:34.

    セッション最後まで受けてたら入りに行く暇が有りませんでした・・・またの機会に(^^;

    Posted by tankmage | 2003年12月11日 00:27.

    2003年11月20日

    独り言

    Blogにしてから記事引用はどんどん延びるんだけど・・・ま、いっか。それがそもそものBlogだし、というのはおいといて、今日は書くことも注目した記事もないので最近思っていることでも書こう。何をいまさら、という話ではあるのですが、先日東京に行って町をテクテク歩いていたときに痛烈に感じたので、自分の考えをまとめるベースとするためにも書いておきます。

    最近、『これからはCell Phoneの時代』だと強く感じました。現在の姿のPCは再びマニアの手に戻り、一般の人(ユーザー)はCell PhoneやPDAといったスマートクライアントを使ってネットワークを利用することになるだろうと。これはBillGやSteveBも力説していますね。

    最近家や仕事場に引きこもりがちで通勤時間や休みの日はもっぱら睡眠時間というDeveloperの皆さん、町へ繰り出して人間ウォッチングしてみてください。どうでしょうか。道行く人、特に若年層のほとんどが携帯電話を拝みながら歩いているとは思いませんか?

    そして彼らが何を拝んでいるかといえば、『メール』です。PCの世界で『キラーアプリケーション』といわれて久しいものです。そして『WEB』です。これもPCの世界では『キラーアプリケーション』などといわれてきましたね。つまり彼らは歩きながら携帯電話で『ネットしている』のです。
    #あんたは歩きながらNotePCでCHATしとるやんけ、という突っ込みは無しの方向で。

    最近では、携帯電話から参加するオークションサイトやショッピングサイトなどなど、携帯電話ならではの使われ方を想定したサイトが続々と登場しています。
    こうしたシステムを構築する場合に開発者の頭痛の種となるのが

    『どこからどのようなデバイスがアクセスしてくるのかわからない。しかし、表示できる内容に差があってはならない。』

    というものです。日本の携帯電話のキャリア間で使われているマークアップ言語の仕様が違うというのは携帯電話向けサイトを構築したことがある人ならよく知っていると思います。それらすべてに対応するようなシステムを作るということは同じものを複数作らなくてはならなくなることと等しいので開発コスト(手間、技術、時間)がかなり高くなります。こういう開発案件って開発者の人は受注してしまうとまず真っ先に「うぇぇ、めんどくさいなぁ」と思うのではないでしょうか。

    しかし、こうした案件は増加する一方で、いつまでも面倒がっていては始まりません。そこで、携帯電話のキャリア間での差異を気にせずにすむようなアプリケーションフレームワークが登場することとなりました。Javaの世界は知りませんが、WindowsのIISの世界では、Visual Studio.NETで使用できる『Mobile Internet ToolKit(以下MIT)』というものがあります。このKitを使ってASP.NETのサイトを一つ作ると、Kitが持つDLLが、どのキャリアからのアクセスであるかを判断し、適切な応答を自動で返してくれるので、開発者がいちいちキャリアごとのページやそこへのジャンプを作る必要がありません。せいぜい、「PCかスマートデバイスか」ということを考えればよいだけです。私自身も簡単なページを作成してみましたが、携帯電話用のマークアップ言語を知らなくても簡単に作成することができました(私が使っている携帯電話はvodafoneなのですが、これってcHTMLでしたっけ?WXLでしたっけ?というレベルの私でも作成可能)。

    今後のアプリケーション開発では、そのアプリケーションが動作するターゲットとして携帯電話やPDA、カーナビといったスマートクライアントはとても重要なものとなるでしょう。しかし、従来のアプリケーション作成方法では各デバイスごとのアプリケーションを記述しなくてはならず、大変な開発工数がかかっていました。その状況を改善すべく、ベンダー各社もそうしたアプリケーションフレームワークを充実させてきているように思います。

    今の若年層が大人になったときにいったいどのようなコンピューティング環境になっているのかとても想像できませんが、今私がNoteパソコンを持ち歩いているように、彼らは携帯電話やPDAを持ち歩いて今の私のようにいつでもどこでも情報を得られる環境になっていることは間違いないかもしれませんね。そういう世界になることを想定して、いまからそうしたデバイス向けのWEBアプリケーション構築のTipsをいろいろ集めておこうかなぁ、と思っています。

    以上、独り言でした。

    2003年11月18日

    Gatesの語る未来 from COMDEX

    Bill Gates' Web Site - Speech Transcript, COMDEX Las Vegas 2003

    シームレスコンピューティング。今、まさに私が一番興味ある(というか興味がでてきた)分野です。私なりの意見ですが、今後PCはまた10年以上前のようにマニアや好き者、企業だけのものになり、一般ユーザーはシン・クライアントやセットトップボックス、携帯電話で情報を受け取るようになるでしょう。しかし、そうした状況にあっても、雑多なデバイスからアクセスできる情報はすべて同じものになるのではないでしょうか。すべてのデバイスがすべてのソフトウェアからすべての情報に"同じようにアクセスできる"、まさにシームレス(垣根のない)な状態。また、個人が所有するデータが、どのデバイスからも同じようにアクセスできる状態。
    そこには、やれLinuxだのWindowsだのAIXだのCellだのといった種類はなく、ただ単に『データおよびそれにアクセスするソフトウェア』があるだけです。そうした世界に今後なっていくだろうと語っています。

    また、Microsoftの取り組みとして
    Security
    reliability
    manageability
    についても語っています。

    そして、"Longhorn"、"Stuff I've Seen"についても語っていますが、この"Stuff I've Seen"って、Googleのあれじゃぁ。。。と思ったのは秘密です。

    MS、Office 2003のXMLスキーマを無償ライセンス

    ZDNN:MS、Office 2003のXMLスキーマを無償ライセンス

    Microsoftの今後は、こうした「業界標準準拠」にまっしぐらになります。「もう、独自路線の時代じゃない」ということですから。

    しかし、このXMLスキーマ、かなり複雑なんだろうなぁー(笑

    次期ASP.NETの足音

    ASP.NET "Whidbey" Overview

    次期ASP.NETの足音が聞こえてきました。コードネーム『ASP.NET "Whidbey"』はおそらくリリース時(Yukonと同時期?Visual Studio .NET "Whidbey"と同時期?)には『ASP.NET 2.0』という名前になると思われます。ASP.NETのメジャーバージョンアップなので、様々な機能追加がされる予定ですが、その内容は大きく3つの部分に分かれているようです。その3つとは、

    Developer Productivity
    Administration and Management
    Speed and Performance

    であり、『更なる開発工数(手間)の削減』、『更なる管理運用のしやすさの追求』、『更なる実行速度の向上』ということみたいです。確かにASP.NETとかで開発していると、いわゆる定型的なコードやフォームを何回も書いたりしなくてはならないのですが、これらを全て基本部品として用意することで、開発者に対して「ほら、手間を省いてあげたからもっと他の真に考えなければならないロジック部分にもっと時間を割けるでしょ」といったメッセージも感じますし、「管理運用で一番手間になっていたあの部分をすっきりさせたから導入やメンテナンスが楽になりまっせ」といったメッセージが感じられますね。

    実際のリリースは来年の第2四半期くらいかな?と思いますがなかなかに楽しみだと思います。

    ASP.NET Whidbeyに関するASP.NETのページはこちら

    2003年11月15日

    Visual SourceSafe使ってみるかなぁ

    @IT:Visual Studio .NETによるチーム開発事始め Visual SourceSafeによるソース管理(準備編)
    やはり、チームで開発するとソースのリビジョン管理というのは大切ですからねぇ。自分ひとりで開発しててもそうだし。というわけで私もVisual SourceSafeを入れてテストしてみるかな。知っておいて損はないし、会社でもきっと役に立つだろう。
    個人的にちょっと思ってるのは、なにもソースコードだけに限った話じゃなくてPCで扱うあらゆるドキュメントやCADデータなんかにも応用できるんじゃないかな、と。
    UNIXベースでいうとCVSツリーがそれにあたるのかな。

    2003年11月11日

    When will Microsoft take Asp.Net Security seriously?

    When will Microsoft take Asp.Net Security seriously?
    『いつになったら真剣にASP.NETのSecurity Vulnに取り組んでくれるの?>Microsoft』 とでも訳すのでしょうか。私は英語が大変苦手なので中身は斜め読みですが、どうもこのスレッドの元の人、ちょっと痛い人にしか見えないんですけど気のせいでしょうか。

    そら、"Full Trust"なんかに設定したらなんでもし放題なんてのは当たり前だと思うのですがなんか私の認識って間違ってますかねぇ。。。

    『"Full Trust"にすると誰でも改変できてしまう!バグだ!スグにアナウンスしてパッチをだせっ!』

    ・・・なにかがおかしいような気がする今日この頃。どなたか英語に堪能な方、私の認識違いを指摘してください。

    Posted by at 21:04 | コメント (0)

    2003年11月06日

    Visual Studio ロードマップ 2004-2005

    Visual Studio ロードマップ 2004-2005にて、Visual Studioの今後のロードマップ(リリース計画)が示されています。ことしVisual Studio .NET 2003になったと思ったらもう来年には"Whidbey"、さらにLonghornがリリースされるという2005年には"Orcas"ですか。こりゃ毎年毎年大変そうです。2004年の新SQL Server "Yukon"は、おそらく来年最も重要なリリースになるのですが、果たして今の私についていけるのだろうか。・・・転職でもしない限り無理なような気がしていたりもしますけどね。。。

    あ、ちなみにこのエントリーはMovableTypeのBOOKMARKLETという機能を使って書き込んで見ています。

    Posted by at 21:07 | コメント (0)