タグ

ブックマーク / ufcpp.wordpress.com (11)

  • async/awaitと同時実行制御

    C# 5.0のasync/awaitを使うと、多くの場面ではシングル スレッド的な動作になるし、多くの場面ではlock不要(結果的に、デッドロックが起こりようなくなる)になったりします。 ただし、「多くの場面で」。「必ず」ではないのがはまりどころ。いくつかの場面では、同時実行制御が必要です(普通にマルチスレッドの平行実行になるので、同時に同じデータにアクセスされる可能性を考慮しないとバグります)。 前提知識 いくつか、C# 5.0世代の非同期処理についての前提知識は、以下のスライド(先月末の.NETラボでの発表)を参考にしてください。 5~12ページ: async/awaitの書き方 17~22ページ: スレッドとそのコスト 24~26ページ: スレッド プール 29~32ページ: I/O完了待ちと非同期API 36~40ページ: UIスレッドとディスパッチャー 41~45ページ: 同期コ

    async/awaitと同時実行制御
  • 大切な事は全て.NETから学んだ

    下記の文章、「こういうテーマでufcpp.net内のC#ページを更新(今の【雑記】的にやるか、新しいフォルダー掘るかして)したい」というもの。 いつ手を付けるかは未定。実際のところしばらく無理。 表題、誇張ではなく、割と真実。 ソフトウェアに求められる品質水準は非常に高くなっていて、開発者に求められる知識は年々増えています。 単純にプログラミング言語の基礎を覚えるというだけではまるっきり不足で、そこから様々なパターンを覚えて初めて実用化に足る最低水準になります。 パターン。 こういう場面ではこう書くと解かりやすい こう書かないとこんな問題が 計算速度優先ならこう、省メモリならこう 等々、いわゆる先人の知恵。 歴史を積み重ね、普通に1からたどるにはあまりにも遠い道のりに至りました。 先人と同じ手順を経ていては、追いつくことで精一杯。その先の新しい世界を目指すことも叶いません。 楽をするひつよ

    大切な事は全て.NETから学んだ
  • TypeScript(続)

    その後、ちらほら情報追っかけてみていたり。 使ってみるには とりあえず、Web IDE的なものがあるのでこれで試してみるのがよさそう。 TypeScript Playground これのために、公開されているTypeScriptのコンパイラーのソースコードはTypeScript自身で作られてるんですねぇ。 で、Visual Studio上で使うには、プラグインのインストールを。 TypeScript for Visual Studio 2012 2012が必須ですが、無料で使えるVisual Studio Express for Webでも利用できるので、「Visual Studioは有料だから使えない」とか思っている人もご安心を。 これに付属しているテンプレートが、ASP.NET MVC/C#プロジェクトだけなんですよねぇ。TypeScriptのアイテム テンプレートが出てくるのもC#プ

    TypeScript(続)
  • TypeScript

    マイクロソフトも better JavaScript、かつ、JavaScript に変換して使う言語を作ってきたようで。 日語ニュース記事: MicrosoftJavaScript系の新言語、TypeScriptのデベロッパー・プレビュー版を発表 公式サイト: http://www.typescriptlang.org/ MSDN ブログでの告知: TypeScript: JavaScript Development at Application Scale Miguel de Icaza(GNOMEとかMonoの創始者)の感想: TypeScript: First Impressions 「JavaScript を、最小限の変更で、ツール連携(静的チェックやコード補完)しやすくする」という観点でみて、結構よくできてる。 少し前に、Anders Hejlsberg が JavaScri

    TypeScript
  • デスクトップ アプリからのWinRT API利用

    How to call WinRT APIs from .NET desktop apps Windowsストア アプリでない、通常の(デスクトップ版の).NETアプリからWinRT APIを呼び出す方法。 WinRT利用のために、.NET Framework自体に手が入っているので、.NET 4.5を使うなら、別にWindowsストア アプリでなくたってWinRT APIを呼べるわけですが。それのやり方、というか、Visual Studio上でいろいろ([参照の追加]ダイアログにWinRTコンポーネントの追加ペインを出したり)やるためには、csprojファイルを1行手動で書き換えないといけないというお話。 一部簡単に日語で説明しようかというのと、元がVBなので、C#でさらっと書いてみたものを出しておこうかと。 C#ソースコード一式 WinRT APIとは WinRTは、Windows

    デスクトップ アプリからのWinRT API利用
  • Metroスタイル アプリのAppBarアイコン用文字

    外字かー。 そりゃ、自分で画像用意しろと言われるよりは楽だけども。 フォント設定しないと何が何やらわかんないの、どうなのだろう。 とりあえず、Excel使って一覧化: https://skydrive.live.com/#!/edit.aspx?cid=5C622397E11C979D&resid=5C622397E11C979D%2127503

    Metroスタイル アプリのAppBarアイコン用文字
  • どうしてこうなった

    ほんと、どうしてこうなったかなぁ。 Oralceの対Google訴訟、プログラミングの将来を危うくしている 二分された世界 JVM と .NET、もろに競合なわけですが。少しレイヤーが違うとか、棲み分けできるポイントがあるならともかく、ほんとに2個あってもしょうがない状態。競争があるのはいいと思うものの、どうせ競争するなら最低ラインの仕様そろった中で性能改善とかで競って欲しく。 でも、後発の .NET だけが悪いわけでもないのは今の DalvikVM の状況を見ての通り(Oracle になってひどくなったわけでもなく、Sun の時代も大概)。このままだと仕様が違う第3の仮想マシン(VM)ができてしまってもおかしくない状況… 個人的な意見として、「もしもの話」で、一番よかっただろう道筋は、2000年前後の訴訟がなくて、Microsoft Java VM が生きている状態。.NET が生まれる

    どうしてこうなった
  • 非同期処理とディスパッチャー

    24日・25日とWDDに行ってたわけですが。 講演者の皆様、UIスレッドとディスパッチャーの話で苦労されてた印象。この辺りの仕組み、どうなんだろうなーとか、少し書いておこうかと。 UIスレッドに紐付いたクラス まず前提。 UIスレッド まず、GUIがらみのクラスは、単一スレッドからしかアクセスできないように作ってあります。スレッド安全に作ろうとするとパフォーマンスが出ないので、いっそのこと、UIスレッド以外からアクセスがあったら例外を出して止まるように作ってあります。 この、GUIコンポーネントと紐付いているスレッドがUIスレッドです。 エンド ユーザーからの入力なんかを受け付けているのもこのUIスレッドで、UIスレッド上で時間がかかる処理をすると、UIがフリーズします。 なので、時間がかかる処理をするときは、一度別スレッドで処理して、結果をUIスレッドに戻すというフローが必要です。 WP

    非同期処理とディスパッチャー
  • Null非許容

    先週、「C#にもNull非許容な型が欲しい」という話をされたものの「うん、欲しいね」としか返せなかったり。要望は昔からあるけども、実際入れようと思うと結構大変。という話、説明しておいた方がいいんだろうなぁと思ったので、ブログにしてみることに。 先に結論の要旨だけ書くと、以下のような感じ。 C#だけで完結する問題じゃなく、.NETレベルで対応するのは今からだときつい Code Contracts使って契約プログラミングするのがいいよ 以下詳細。 公式の見解 Anders Hejlsberg も、「もしもの話」として、1からの再設計が許されるなら C#/.NET をどうしたいかという質問に対して「Null 許容性の見直し」を挙げています。 一時期、結構頻繁にそういっていたと思います。少し検索して出てきたのでいうと、以下の Q&A インタビューの、1:00:00 からのくだり。 今、値型に関して

    Null非許容
  • 1人Advent Calendar反省会

    研究者肌で、ほっとくとすぐに5年・10年先のビジョンを考え出すんだ 仕事は夢を与えないと。大人がつらいつらいって言ってたら、子供が大人になりたがらないよ! だいぶ現実的。個人レベルじゃなくて、組織全体としての短期~中期の最適解を求めるよ 仕事は意地を通す。土日も勉強! あっ、FとかAってのは例え話ですからね。2人だけでもないんで。CLAMP辺りで例えた方が良かったか。 他との兼ね合いっ! 僕体がC# Advent Calendarへの登録してませんが、これは別に、1人Advent Calendarの方とは無関係です。1人の方を思いついたのが29日で、C#の方はその前にだいたい埋まってましたし。Aさんの方と協議の上、最後にC#たんを混ぜときましたが、この時点では、WordPress.comのアカウントとることすら決めてませんでした。というか、CodeZineの方書くかという話もありました。

    1人Advent Calendar反省会
  • ReMIX Tokyo 09で出てたデモ

    ReMIX Tokyo 09のセミナー中でデモに使われてたサイトをまとめるだけでも面白そうなので、それだけやっとく。 Silverlight採用事例 基調講演で出てた話。 楽天 楽天セレクトウィジェットのことかな、多分 YAHOO! Japan 前々からこまごまと変なのにSilverlight使ってるのは知ってたけども 例えば最近だと、お台場ガンダムのプロモサイトがSilverlight YAHOO! 動画ニュースが7/16からSilverlightになりました 正直使いにくい・・・。Silverlightが使いにくいんじゃなくて、前みたいに1つ再生終わった後に次のニュースに自動的に移動してくれなくなったのが使いにくい。 YAHOO! ツールバー内でSilverlight使ってるらしい YAHOO! オークションの補助ツールがSilverlightらしい SBI証券 SBI証券の株とかFX

    ReMIX Tokyo 09で出てたデモ
  • 1