2007年8月21日火曜日

.NET Framework 3.5 概要

Tech ed 2007

.NET Framework 3.5 概要
2007/08/21 17:14:20

・LINQ
・ASP.NET AJAX
・WCF,WF,WPF の機能強化
・Base Class Library 機能強化

関連開発ツール
Visual Studio 2008
マルチターゲット
WPF,WCF 正式サポート
Expression シリーズ


コア機能
CLR + BCL
CLR はほとんど変わらず⇒成熟?
BCL 強化
ハイパフォーマンス HashSet
デモ 乱数を発生させて、かぶらないかチェック
DateTimeOffset と TimeZoneInfoの導入
ローカルPCのタイムゾーンを使用可
複数のタイムゾーンにまたがった時間データの利用
デモ
など
実行速度の向上
ガベージコレクションの改善
64bit 環境でパフォーマンス向上
ThreadPool のパフォーマンス改善
Ngen のメモリ使用の効率化
Ngen におけるセキュリティチェック


機能強化テクノロジ
WPF
Firefox で XBAP(エックスバップと発音)をサポート
旭山動物公園
http://www.asahiyamazoo-aict.jp/
Silverlight (ってWPFじゃないじゃん)

WF
Workflow Embedded Service

WCF (Windows Server 2008 の発売もあって結構強化)
Web サービスだけのテクノロジーではない
統一されたプログラミングモデルで接続を実現
REST style
WebGet,WebInvoke,UriTemplate
デモ
JSON (javaScript Object Notation) サポート
AJAX や Silverlight との連携
RSS/ATOM によるフィード
System.ServiceModel.Syndication 名前空間
デモ ダウンロードできるようにするとのこと
SOAP対応のさらなる強化
部分信頼のサポート

新機能
LINQ
言語統合クエリ
言語:C# 3.0, VB 9.0, 対応させれば他の言語も可
ソース:Objects, DB, SQL, XML
デモ
押さえておくべきキーワード
クエリ表現
拡張メソッド
ラムダ式
匿名型
Expression tree

ASP.NET AJAX
ASP.NET の開発モデルそのままで AJAX サイト構築可


18:19:44

Visual Studio Team System 2008

Tech ed 2007 テクニカルセッション
Visual Studio Team System 2008
2007/08/21

長沢さん

前バージョンをすべて包括
役割によって Edition が異なる
・アーキ
・開発者
・テスタ
・DB
これらを Team Foundation Server で管理


製品名の変更
新機能コンセプト
品質
生産性
コラボ


ソフトウェア品質 ************************************************

Architecture Edition
運用もデザインして設計
VS のプロジェクト生成と同期


コードメトリクス
コードの複雑さ(5つ)
・クラスの結合度合
・クラスの継承の深さ
・コードライン数
・循環的な複雑度
・保守容易性インデックス
Windows のコード・開発情報をもとにコード計測の計算式を開発

メニュー「開発者」
色分け3段階

プロファイリング
動的にボトルネックを検出できる
ホットパス
レポーティング
コマンドライン

単体テストとコードガバレッジ
VS 2008 Professional Edition から
スクラッチから作り直した
期待できるかも
アセンブリ(dll exe)をベースにテストコードが自動生成
csv,DB,XML,などからテストデータを引っ張ってこれる
ガバレッジをとると、どこのコードをカバーしているかを視覚的に表示


Web テスト
http のレベルで動作を記録・自動実行
ロードテスト
負荷をかける
手動テスト

*************************************************************


チームの生産性の向上 ****************************************

Team Foundation Server でチームによる開発を支援
変更セットとバグ・仕様変更と連携
ビルド管理

新機能
ソースコード管理機能の強化
ポリシーの充実
フォルダ単位で管理
チームビルド機能の強化
ビルド管理の向上
結合・単体テストの自動実行


**************************************************************
途中。。。

2007年8月17日金曜日

マネージドアプリのプリコンパイル

.NET において、あらゆる実行ファイル(exe & dll) は中間言語として存在するわけだが、それをあらかじめ、その環境のコードにコンパイルするツールが

Ngen.exe (ネイティブ イメージ ジェネレーター)

 というやつ。ふつーの vista マシンでは C:\Windows\Microsoft.NET\Framework\v2.0.50727 にある。
 Ngen はネイティブイメージ(そのマシンのプロセッサ固有のマシンコードにコンパイルされたファイル)を作成してローカルコンピュータのネイティブイメージキャッシュ(どこよそこ?)にインストールし、ランタイムはキャッシュにあるネイティブイメージを使用できるというわけ。そして、ネイティブイメージによって、メモリ使用の改善と起動時間の短縮が期待できるらしい。
 
 ちなみに、Visual StudioとかBlendとかがネイティブイメージにキャッシュされてた。つまり、Microsoft お墨付きというわけだ。


使用法
インストール
ngen install [exe か dll]

アンインストール
ngen uninstall [exe か dll]

インストールされているイメージ?の確認
ngen display


 例:)
 で、現担当のアプリに適応すると起動が10 ~ 20 % くらい短縮された。

volatile 修飾子

C# にて

複数のスレッドからアクセスされるフィールドは lock 文で排他制御するか volatile をつけるべし

private volatile bool _running;
public bool Running
{
get { return _running; }
set { _running = value; }
}

public void Run()
{
try
{
while (_running)
{
// do something...
}
}
catch (SocketException e)
{
MessageBox.Show("SocketException : " + e.ToString());
}
}


2007年8月9日木曜日

Perl 開発環境

 Windows アプリケーションのパフォーマンスを測定しようとログを吐き出すようにしたものの、それを解析するのに位置からC#でコードを書くのが少々おっくう。

 大それたことをするわけではないから・・・じゃあ、お手軽にPerlで

エディタでチョコチョコ書いているときふと
「あ、Eclipse(for Perl) って最近どうなったんだろ」

と思いつき、導入したのが ↓のEPIC


お、色分けしてる、インデントとかの補完機能がある、インテリセンスもある・・・・ブレークポイントがはれる!!

まさか、Perl でブレークはってデバッグできるとは。。。

こうなると Perl って感じがしないけど、便利は便利

いやはや、半年振りの Perl でした。


# 最近の Windows では、IronPython、IronRuby ときたからには次は IronPerl か!?