女神さまに祈れば、夏の夢もかなう?!…1等前後賞合わせ最高7億円のサマージャンボ宝くじが発売中 「幸運の女神」が新潟市中央区を訪れてPR
女神さまに祈れば、夏の夢もかなう?!…1等前後賞合わせ最高7億円のサマージャンボ宝くじが発売中 「幸運の女神」が新潟市中央区を訪れてPR
編集部注:読者の貴重なご指摘により一部コンテンツを削除・改編させていただきました。内容に不備があったことをお詫び申し上げます(2010年7月8日) プログラマが知っておきたい両者の違いは前回で 第1回「プログラマが知っておきたいJavaと.NETの違い」では、Javaと.NETそれぞれのプラットフォームの特徴や構成、使用されているプログラミング言語や開発環境について解説し、PC上でアプリケーション・ソフトウェアなどのプログラムがどのような仕組みで実行されているかを紹介しました。 今回はクライアント技術、その中でもクライアントアプリケーションを作るうえで重要な、UI(ユーザーインターフェイスを作成するための開発方法や、Webアプリケーションを開発するための主要な技術を、フレームワークやデータアクセス技術なども交えながらご紹介します。 Javaのクライアントサイド技術(GUI開発) Javaの
ASP.NETで開発する場合、Expression Web2をデザインツールとして使っている方も結構といるだろう。 これはASP.NETと連携性が良いからである。簡単に言えば、ASP.NETの独自タグ(asp:XXXX で始まるタグ)を解釈して表示してくれるのである。まあ、これは、Dreamweaverのほうでも一応解釈してくれるのだが。 私はMicrosoft MVPという立場上、あまりMicrosoft社の製品をボロクソ言うことは憚れるのだが、それでもExpression Web2は正直まだ作りかけという感じがプンプンする。 例えば、市販のコンポーネントを配置したページを表示しようとすると、これがうまく表示できない。自分で.NETのGACに登録すれば表示できるらしいのだが、「ユーザーにそんなことさせるか?」という気がする。 あと、ASP.NET標準ではないaspタグがあると開いた瞬間ク
列挙の簡易実装 foreach 文などで利用できるコレクション型は、System.Collection 名前空間の IEnumerable インタフェースを実装しているオブジェクトのことを表します。 例えば配列も、この IEnumerable インタフェースの実装の一つです。 IEnumerable はインタフェースなので、これを実装すれば独自のコレクション型を定義することができます。 コレクション型の基本的な概念は、先頭から末尾までのデータの列のことで、その多くは動的、または静的なインデックスで管理された配列となるでしょう。 しかし、foeeach で処理できるような IEnumerable インタフェースの実装を作成するのは多少煩雑でした。 IEnumerable インタフェースは、同じく System.Collection 名前空間の IEnumerator インタフェースを実装する
オブジェクトの内容をファイルに保存、復元する オブジェクトのXMLシリアル化、逆シリアル化を行うオブジェクトの内容をXMLファイルにして保存し、そのXMLファイルから元のオブジェクトに復元できると色々と便利です。例えば、INIファイルの代わりとして、設定を保存、復元したい時などに有用です。(設定を保存する場合は、「アプリケーションの設定を保存する」も参考にしてください。) これを行うには、XmlSerializerクラス(System.Xml.Serialization名前空間)を使うと簡単です。XMLファイルに書き込む時はSerializeメソッドを使ってオブジェクトをXMLシリアル化(シリアライズ)し、XMLファイルを読み込む時はDeserializeメソッドを使ってXML逆シリアル化(デシリアライズ)をします。 オブジェクトの内容をXMLファイルに保存(シリアル化)する次のコードでは
マイクロソフトが2008年1月21日に開催したイベント「Visual Studio 2008 Ready Day」に合わせて米MicrosoftのScott Guthrie氏(写真1)が来日し,日経ソフトウエア誌の記者のインタビューに答えた。Guthrie氏は,Microsoftで.Net Developer PlatformのGeneral Managerとして,統合開発ツール「Visual Studio 2008(VS 2008)」のほか,「Silverlight」,「ASP.NET」,「ASP.NET AJAX」,「Windows Presentation Foundation(WPF)」などの開発を統括している。 2007年末にVisual Studio 2008の出荷が始まりました。米国での顧客の反応はいかがですか。 すばらしいの一言ですね。出荷直後から好意的な反応がたくさん返っ
Silverlight の構成 Silverlightは、コードネーム WPF/E と呼ばれていたMicrosoftが提供するクロスブラウザ、クロスプラットフォームのプラグインです。Silverlightは性質的にAdobe Flashに競合するもので、多くのメディアで伝えられているようにMicrosoftのFlash対抗製品であると考えられています。基本的にはFlashと同じようにブラウザに組み込まれるプラグインとして動作します。HTMLでは表現が難しい豪華な演出を可能とし、高度なデザインやアニメーション、動画などを表現することができます。 Flashとの大きな違いはファイルフォーマットです。FlashのSWFムービーはバイナリ形式なのでコンパイルが必要になりますが、Silverlightはテキスト形式であるXMLベースのXAMLと呼ばれる言語を使って視覚的な構造を定義し、JavaScr
呼び出されるデリゲートからの戻り値。デリゲートに戻り値がない場合は null。 例 次のコード例は、デリゲートを含むコントロールを示しています。 デリゲートはリスト ボックスに項目を追加するメソッドをカプセル化し、このメソッドはフォームの基になるハンドルを所有するスレッドで実行されます。 ユーザーがボタンをクリックすると、 Invoke デリゲートが実行されます。 /* The following example demonstrates the 'Invoke(Delegate*)' method of 'Control class. A 'ListBox' and a 'Button' control are added to a form, containing a delegate which encapsulates a method that adds items to the
名前空間: System.ComponentModel アセンブリ:System.dll, System.ComponentModel.EventBasedAsync.dll アセンブリ:System.ComponentModel.EventBasedAsync.dll アセンブリ:System.dll アセンブリ:netstandard.dll ソース:BackgroundWorker.cs ソース:BackgroundWorker.cs ソース:BackgroundWorker.cs 重要 一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。 public ref class BackgroundWorker : IDisposable pub
マルチスレッドで Windows フォーム アプリのパフォーマンスを向上させることができますが、Windows フォーム コントロールへのアクセスは本質的にスレッドセーフではありません。 マルチスレッドによって、ご自分のコードが非常に深刻で複雑なバグにさらされる可能性があります。 2 つ以上のスレッドでコントロールを操作することで、コントロールが一貫性のない状態になり、競合状態、デッドロック、フリーズまたはハングが発生する可能性があります。 アプリにマルチスレッドを実装する場合は、クロススレッド コントロールをスレッドセーフな方法で呼び出すようにします。 詳細については、「マネージド スレッド処理のベスト プラクティス」を参照してください。 コントロールを作成していないスレッドから Windows フォーム コントロールを安全に呼び出すには、2 つの方法があります。 System.Wind
概要 属性(attribute)とはクラスやメンバーに追加情報を与えるものです。 例えば、public や private などといったC#のキーワードもある種の属性と考えることが出来ます。 public ならば「このメンバーはクラス外からも参照可能」、 private ならば「このメンバーはクラス内のみから参照可能」という追加情報が与えられます。 C++ などの既存の言語では、このような追加情報を定義する場合、 言語仕様自体を拡張し、新たにコンパイラを作り直す必要がありました。 それに対し、C# では自分で属性を定義し、クラスやメンバーに付加することが出来ます。 すなわち、ライブラリで提供されている属性や自作した属性を用いることで、 コンパイラに対する指示を行ったり、クラスの利用者に対する情報を残すことが出来ます。 属性の情報は、以下のような場面で使われます。 条件コンパイルなどの、コン
こんな風にスコープを抜けたとき(Func()からリターンしたとき)も誰も参照しなくなったことになるのでそのうち破棄されます。 この「そのうち」っていうところに注意してください。決してすぐに破棄されるわけじゃありません。 GCはそれなりに大変な処理なので、そんなに頻繁に動きません。 それどころか、.NET FrameworkのGCは「メモリが足りなくなってきたら動く」という感じらしいです。 まぁ、これ自体は何も問題ありません(どっちにしろそのうち破棄されるんだから)。 けど、オブジェクトがメモリ以外のリソースを持っているときは問題になることがあります。 たとえば、 こんな場合です(えらく意図的ですが)。 Func()メソッドからリターンした時点でfsやsrを参照しているものは無くなりますから、そのうちGCによって破棄されます。 が、破棄されるまでは"test.txt"はオープンされたままにな
Microsoft .NET Framework のガベージコレクション 開発環境: Visual Studio 2003 GotDotNetで、激論になりましたが、どうも自分でも納得できないところがありました。 というのは、明示的なDispose()、あるいはusingステートメントパターンが良いと言う意見がありますが、MSDNのサンプルの多くは、暗黙のGCで書かれているサンプルが多いですよね。 もし、MSがDispose(), usingステートメントをお勧めなら、MSDNのサンプルはDispose()パターン、あるいはusingステートメントパターンでかかれると思うんですよね。 それで、はたしてDispose(), usingステートメントを使うべきなのか、あるいはGCにおまかせパターンでよいのか、GDI+ の場合について検証してみました。 以下は、メモリ管理に関して、ある程度の知識
C++やVisual Basic 6.0の世界でプログラミングしてきた技術者が.NET Frameworkの世界に入ってきてまずおどろくのは、プログラムを実行していると、プロセスが使用するメモリ量がどんどん増えていくことである。「メモリ・リークか!?」と焦ることもあるが、これは正常な動作である。 メモリの解放忘れは典型的なバグの要因であり、メモリ解放を自動化することによって、プログラムの信頼性は向上し、プログラマーの負担も減る。自動的なメモリ解放を行う機構は、ガベージ・コレクタと呼ばれ、解放する行為をガベージ・コレクションと呼ぶ。問題は、ガベージ・コレクションがいつ行われるかであるが、これはメモリが不足してきた場合や、明示的に動作を指示された場合にのみ行われる。つまり、メモリが潤沢に余っている場合には、プロセスの使用するメモリ量が増加するのが正常な動作である。そのままメモリ不足でプログラム
ネイティブ イメージ ジェネレーター (Ngen.exe) は、マネージド アプリケーションのパフォーマンスを向上するツールです。 Ngen.exe は、コンパイルされたプロセッサ固有のマシン コードを含むファイルであるネイティブ イメージを作成してローカル コンピューターのネイティブ イメージ キャッシュにインストールします。 ランタイムは、Just-In-Time (JIT) コンパイラを使用してオリジナルのアセンブリをコンパイルする代わりに、キャッシュにあるネイティブ イメージを使用できます。 .NET Framework 4 での Ngen.exe に対する変更: Ngen.exe によるアセンブリのコンパイルが完全信頼で行われるようになり、コード アクセス セキュリティ (CAS: Code Access Security) ポリシーが評価されなくなりました。 Ngen.exe
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く