【Avalon】WinFX を語るスレ Part5【Indigo】
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん♯
NGNGhttp://msdn.microsoft.com/windowsvista/
WinFX SDK
http://winfx.msdn.microsoft.com/library/
Windows Vista
http://www.microsoft.com/windowsvista/default.mspx
http://www.microsoft.com/japan/windowsvista/default.mspx
過去スレ
Part4 http://pc8.2ch.net/test/read.cgi/tech/1090939006/
Part3 http://pc5.2ch.net/test/read.cgi/tech/1071150423/
Part2 http://pc5.2ch.net/tech/kako/1069/10693/1069394880.html
Part1 http://pc5.2ch.net/tech/kako/1067/10674/1067489881.html
0439名無しさん♯
2005/09/14(水) 04:30:220440名無しさん♯
2005/09/14(水) 05:16:44Extension methods → genericアルゴリズムをインスタンスメソッド風に呼び出せる。混乱の元の予感。
Lambda expressions → 使い捨てメソッド。匿名メソッドよりも便利に。
Type inference → 文字通り型推論。
Object and collection initializers → 宣言型言語っぽく記述できる。
Implicitly typed arrays → これも型推論。
Query expressions → System.Query.Sequenceクラスを使ったコードに展開するマクロと解釈していい?
Expression trees → これだけ使い道がさっぱりわからん。
・・・そろそろ寝よ。
0441名無しさん♯
2005/09/14(水) 05:45:31Lambda expressions → 使い捨てメソッドをFunc型で統一。
Expression trees → Lambda expressionsを実行不可能な単なるデータとして扱う。
_∧∧__ / ̄ ̄ ̄ ̄
|( ゚д゚)| < 今度こそ寝る!
|\⌒~\ \____
\ |⌒⌒|
0442デフォルトの名無しさん
2005/09/14(水) 06:20:11String.prototype.mymethod = function(){...}
のような感じの、既存クラスの拡張ですか。
0443デフォルトの名無しさん
2005/09/14(水) 06:58:36乙wwww
0444名無しさん♯
2005/09/14(水) 12:31:51こんな感じで。
using System;
using System.Collections.Generic;
using System.Query;
using MyExtension;
namespace MyExtension {
static class Extension1 {
public static IEnumerable<T> Filter<T>(this IEnumerable<T> data, Func<T, bool> func) {
foreach (T d in data) {
if (func(d)) yield return d;
}
}
public static void Trace<T>(this IEnumerable<T> data) {
foreach (T d in data) {
Console.WriteLine(d);
}
}
}
}
0445名無しさん♯
2005/09/14(水) 12:32:21class Test {
static void Main() {
var arr1 = new[] { 1, 2, 3, 4, 5 };
// 従来の呼び出し方
var result1 = Extension1.Filter(arr1, n => n < 3);
Extension1.Trace(result1);
var arr2 = new[] { "mona", "giko", "sii" };
// Extension Methodでの呼び出し方
var result2 = arr2.Filter(s => s.Contains("i"));
result2.Trace();
}
}
0446名無しさん♯
2005/09/14(水) 12:35:14> Extension methods → genericアルゴリズムをインスタンスメソッド風に呼び出せる。混乱の元の予感。
ということです。
0447名無しさん♯
2005/09/14(水) 12:42:33http://forums.microsoft.com/msdn/
0448名無しさん♯
2005/09/14(水) 13:02:04ttp://msdn.microsoft.com/vbasic/future/default.aspx?pull=/library/en-us/dnvs05/html/vb9overview.asp
XML literalとかdynamic系の新機能ってC#にはないよ・・・。(´・ω・`)
0449デフォルトの名無しさん
2005/09/14(水) 13:54:270450デフォルトの名無しさん
2005/09/14(水) 13:57:490451デフォルトの名無しさん
2005/09/14(水) 15:22:28時代を気づくほど、主要機能として組み込まれてるわけでもなくない?
0452名無しさん♯
2005/09/14(水) 16:11:18という感じがものすごくします。
0453名無しさん♯
2005/09/14(水) 16:21:34VBの方が変更を入れやすかったのかもしれませんね。
0454デフォルトの名無しさん
2005/09/14(水) 16:22:560455デフォルトの名無しさん
2005/09/14(水) 16:24:48VB の方はさらに微妙な線攻めすぎな感じで。
0456デフォルトの名無しさん
2005/09/14(水) 16:39:44生き残ってきたVBの底力が脅威となるということじゃね?
0457デフォルトの名無しさん
2005/09/14(水) 16:42:040458デフォルトの名無しさん
2005/09/14(水) 16:42:30VB.NETはされにレアケースだから、
生き残ってきたわけじゃない。
0459デフォルトの名無しさん
2005/09/14(水) 16:52:06今後どうするつもりなんだろ。SQL使用路線に変更?
0460デフォルトの名無しさん
2005/09/14(水) 17:06:33ドキュメントにストアド連携のことも書かれてるよ。
DataContextクラス(System.Data.DLinq)を使うらしい。
0461デフォルトの名無しさん
2005/09/14(水) 17:11:050462デフォルトの名無しさん
2005/09/14(水) 21:17:150463名無しさん♯
2005/09/14(水) 21:55:56その前にこれを読んでみれ。そうすればVB 9.0でやろうとしてることが見えてくると思われ。
ttp://pico.vub.ac.be/~wdmeuter/RDL04/papers/Meijer.pdf
0464デフォルトの名無しさん
2005/09/14(水) 22:17:420465デフォルトの名無しさん
2005/09/14(水) 22:21:170467デフォルトの名無しさん
2005/09/14(水) 22:57:11Lambdaとかは使いこなせなくてもそんなに支障ない気が。
0468名無しさん♯
2005/09/14(水) 23:08:13漏れ的にはいきなりQuery構文を使うよりは、Sequenceクラスの
Extension Methodを使った方がわかりやすいと思ってみたり。
0469デフォルトの名無しさん
2005/09/14(水) 23:36:19.where() って感じよね?
あれ、条件に懲りだすと結構きつくない?
あと、今はもう、結構 SQL の教育受けた人材が多いだろうから、
SQL チックに書けるという事が重要な気が。
あと、むしろ、Extension Method って混乱招きそうじゃない?
クラス定義のどこ見てもメソッド定義がねーって感じで。
まだあんまり仕様書見れてないんだけど、あれって、
namespace 内限定とか、クラス名 Extensions でないと駄目とかそういう制約とかあるの?
ある人が string クラスの Extension Method 書いてて、
また別の人が別のライブラリで string に同名の Extension Method 書いたときとか、
衝突回避はできるの?
0470名無しさん♯
2005/09/15(木) 00:05:31> .where() って感じよね?
そです。
> あれ、条件に懲りだすと結構きつくない?
> あと、今はもう、結構 SQL の教育受けた人材が多いだろうから、
> SQL チックに書けるという事が重要な気が。
禿同ですけど、「どうしてこう書けるのか、どうしてこう書くとエラーになるのか」という点で、
どういうコードに展開されるのか知っておくべきという意味で書きますた。
> あと、むしろ、Extension Method って混乱招きそうじゃない?
> クラス定義のどこ見てもメソッド定義がねーって感じで。
その点は激しく心配です。まあ、IDEでたどることはできるんでしょうけど・・・。
> まだあんまり仕様書見れてないんだけど、あれって、
> namespace 内限定とか、クラス名 Extensions でないと駄目とかそういう制約とかあるの?
Extension Methodのあるnamespaceをusingしないと使えません。
クラス名じゃなくてnamespaceというのがなんか違和感があるんですけど・・・。
Javaのstatic importみたいなのを期待してた。
> ある人が string クラスの Extension Method 書いてて、
> また別の人が別のライブラリで string に同名の Extension Method 書いたときとか、
> 衝突回避はできるの?
まだ十分試してませんけど、おそらくできないと思います。
そういうときは従来のstaticメソッド呼び出しするしかないと思われ。
0471デフォルトの名無しさん
2005/09/15(木) 00:36:18> 禿同ですけど、「どうしてこう書けるのか、どうしてこう書くとエラーになるのか」という点で、
> どういうコードに展開されるのか知っておくべきという意味で書きますた。
一応、csharp 3.0 specification.doc に、SQL ライク構文が .Where() とかに
どう翻訳されるか書いてあるし、それを見て知ってもらうと言うことで。
> まだ十分試してませんけど、おそらくできないと思います。
> そういうときは従来のstaticメソッド呼び出しするしかないと思われ。
うーん・・・
せめて、using A = Extensions.MethodName 的なものは用意して欲しいかも。
ほんとこの機能だけは微妙。
Ruby とかでは確かに似たような機能実装されてるけど、本当に必要あるのかなぁ。
0472デフォルトの名無しさん
2005/09/15(木) 00:39:32あるようなので必要なんだろうが混乱しそうだよなぁ…。
クラス名までusingで指定するようにしたほうがよくね?
using Namespace.ExtensionName; //こことか
public class Sample {
using Namespace.ExtensionName; //こことか
private static void Main(string[] args) {
using Namespace.ExtensionName; //こことか
...
}
}
でもヘジたんがこんな単純なこと思いつかないわけないだろうから
なんか理由があるのかなぁ
0473デフォルトの名無しさん
2005/09/15(木) 01:15:48SQL ライク構文は結局、 .Where() とか .OrderBy() とかのメソッド
もしくは拡張メソッド呼び出しに展開される。
で、 .Where() とかを適切に定義した自作コレクションクラスを作れば、
そのクラスに対しても xx in MyCollectionClass where .... みたいな構文を使える。
と言うことかな。
で、既存のコレクションに後付けで .Where() とかを追加するために
拡張メソッドという新仕様を入れたのかな。
一応、C# 3.0 仕様書にも、基本的には普通のインスタンスメソッドを使えって書いてあるね。
拡張メソッドは、発見しやすさも機能面でもインスタンスメソッドに劣るって。
0474デフォルトの名無しさん
2005/09/15(木) 01:19:03Windows Workflow Foundation
http://www.microsoft.com/presspass/press/2005/sep05/09-14PDC05Day2PR.mspx
Microsoft Expression
http://www.microsoft.com/presspass/press/2005/sep05/09-14PDC05ExpressionPR.mspx
0475デフォルトの名無しさん
2005/09/15(木) 01:22:18http://msdn.microsoft.com/windowsvista/building/workflow/default.aspx
0476名無しさん♯
2005/09/15(木) 01:31:36http://www.microsoft.com/downloads/details.aspx?familyid=7096d039-2638-4f63-8654-d2e5d98fa417&displaylang=en
0477デフォルトの名無しさん
2005/09/15(木) 01:36:41http://www.windowsworkflow.net/Default.aspx?tabindex=0&tabid=1
0478デフォルトの名無しさん
2005/09/15(木) 02:06:000479名無しさん♯
2005/09/15(木) 02:14:280480デフォルトの名無しさん
2005/09/15(木) 03:22:32> Visual Basic seems to have introduced more extensive changes to the language than C#.
> Many of the COmega inspired features seems to have migrated into Visual Basic instead of C#;
0481デフォルトの名無しさん
2005/09/15(木) 03:50:01問題は値段だな。
0482デフォルトの名無しさん
2005/09/15(木) 04:22:27Sparkle自体が開発ツールとしての扱いじゃね?
0483デフォルトの名無しさん
2005/09/15(木) 04:30:31VBっぽい雰囲気を感じた途端に眩暈がした
0484名無しさん♯
2005/09/15(木) 09:44:11WinFX Runtime Components
http://www.microsoft.com/downloads/details.aspx?FamilyID=ffd636f0-86e9-41e8-9e1c-100a4cc4888f&DisplayLang=en
WinFX SDK
http://www.microsoft.com/downloads/details.aspx?FamilyID=c20cc6c8-1f4e-4a5c-bc79-c2fe9abe69aa&DisplayLang=en
Visual Studio Extensions for WinFX
http://www.microsoft.com/downloads/details.aspx?FamilyID=ede1a645-2a53-42e1-8482-3bf1fadade06&DisplayLang=en
0485デフォルトの名無しさん
2005/09/15(木) 09:46:040486デフォルトの名無しさん
2005/09/15(木) 10:22:37いいかげんなれたほうがいいよ。
時代は、VBっぽい方向に行っているんだから。
RADとか。
0487デフォルトの名無しさん
2005/09/15(木) 12:57:08.NETの枠自体が狭すぎて、ユーザーにとって必要なアプリが作れない。
自分用だとコンソールで良いから、便利なクラスをMSDNで探して楽に開発できる。
しかし、素人な他人に使わせるとなると、UI必須だったりする。
RADがあるからRADで作れる程度のUI作るなら十分なんだが、
「ここをドラッグしてこうなるようにして欲しい」とか言われたとき、
「.NETだから出来ません。」と言うことが普通。
そこで、API叩く事になるわけだが、ちょっぴり改変しようとしても、
.NETは継承不可なクラス、DLL外から呼び出せないクラスが多く、
丸ごとAPIな新規クラスを作るはめになり、C++でやっておけばと何度か後悔した。
0488デフォルトの名無しさん
2005/09/15(木) 12:59:27Javaに対する明確なアドバンテージは、高機能なコントロールを数多く揃え
それらをポトペタするだけでUI部分が完成するという簡便さだったはず。
Javaの場合、UIを拵えるのに先ず実現法から考えなきゃならない。
これが.NETではデザインと使い勝手に注力できる。はずだったのに・・・・・・
結局、コントロールをガリガリ書かなきゃならない。
その上、次のバージョンでは修正が必要と、更にその次のバージョンは目前と、
それどころか次は新しい技術に取って代わられる予定と、これじゃ増えようがない。
0489デフォルトの名無しさん
2005/09/15(木) 13:01:060490名無しさん♯
2005/09/15(木) 14:04:49Func<string, unit>みたいなことをやりたくても、genericsにvoidが使えないからFunc<string, void>はNG。
0491名無しさん♯
2005/09/15(木) 14:39:40ほとんど IEnumerable, Func の順で最悪に使いづらい・・・。
Func, IEnumerable の順になったとしても、高階関数がサポートされてないから
関数型ライクにはとても使えない。
C# 3.0は関数型になったというのは間違いだったぽ・・・。(´・ω・`)
0492デフォルトの名無しさん
2005/09/15(木) 14:59:130493デフォルトの名無しさん
2005/09/15(木) 15:17:400494デフォルトの名無しさん
2005/09/15(木) 15:18:58ttp://d.hatena.ne.jp/yaneurao/20050916#p1
0495デフォルトの名無しさん
2005/09/15(木) 15:23:28ミ,,゚Д゚彡フサギコのフサフサDelphi談話室その25
ttp://pc8.2ch.net/test/read.cgi/tech/1125304359/340-
MS的には全部揃えば万全だと思ってるんだろうけど、そこまでに1年掛けちゃ駄目だと思う
んだよな。.NET Frameworkは過渡期です、ASP.NETも過渡期です、MSDEもWindowsもC#
も過渡期ですってやり続けてる限りデベロッパーも本腰入れられない。
ある程度のとこでステイブルとしてリリースすべきだよ。ってのが俺の視点。ただそれだけ。
0496名無しさん♯
2005/09/15(木) 15:32:25今まで見落としてたけど、Cωと違ってinsert・update・deleteはないし。
selectしかないなら、漏れ的にはWinFSのStorageSearcher APIの方が好きだなあ。(´・ω・`)
0497名無しさん♯
2005/09/15(木) 15:46:23var list = new List<string>();
list.Add("hoge");
...
list.FindAll(s => s.Contains("o"));
list.Sort((s1, s2) => String.Compare(s1, s2));
// list.ForEach(s => Console.WriteLine(s));
FindAll, Sortはおkで、ForEachはコンパイルエラー。
0498デフォルトの名無しさん
2005/09/15(木) 15:49:030500デフォルトの名無しさん
2005/09/15(木) 15:55:200501デフォルトの名無しさん
2005/09/15(木) 22:35:520502デフォルトの名無しさん
2005/09/15(木) 23:21:03.NETは素晴らしいアーキテクチャなのだが、C#等の言語機能はずいぶんと時代から遅れていると思う。
0503デフォルトの名無しさん
2005/09/15(木) 23:34:24Win専用になっちゃたとこみると、意外にそうでもないかも。
COMのBSD移植の失敗を思いおこされる。
0504デフォルトの名無しさん
2005/09/15(木) 23:37:21Anders Hejlsberg - LINQ
http://channel9.msdn.com/Showpost.aspx?postid=114680
0505デフォルトの名無しさん
2005/09/15(木) 23:37:320506デフォルトの名無しさん
2005/09/16(金) 00:09:330507デフォルトの名無しさん
2005/09/16(金) 00:13:47というか、ローカル変数の型を式から決めるなんてのは、typeofの類いであって、型推論では無いと思うのだがどうよ?
0508デフォルトの名無しさん
2005/09/16(金) 00:14:060509デフォルトの名無しさん
2005/09/16(金) 00:49:450510デフォルトの名無しさん
2005/09/16(金) 02:04:04C#はまぁ、こんな感じじゃないかな。高階関数や型推論をフルサポート
するのにMSILの上にさらに中間レイヤーを作るようなことは、C#の
デザインとしてはできないのでは?
0511デフォルトの名無しさん
2005/09/16(金) 02:38:55うん、Orcas(Vista第一世代環境)だってのが中途半端な原因のような希ガス
CLR3.0期待やね。
0512名無しさん♯
2005/09/16(金) 03:36:01ttp://download.microsoft.com/download/4/1/f/41fa0da9-3fd3-4b35-9d5d-6031f243a140/Windows_WinFX_Poster.zip
0513デフォルトの名無しさん
2005/09/16(金) 12:56:51http://msdn.microsoft.com/netframework/future/linq/default.aspx?pull=/library/en-us/dndotnet/html/linqprojectovw.asp
0514デフォルトの名無しさん
2005/09/16(金) 13:06:13これはPreview版のバグではないかと。
ドキュメントには、()=>Console.WriteLine()の例が載ってるし。
delegate void MyFunc();
...
MyFunc f = () => Console.WriteLine();
正式版ではこれが通るようになると思う。
0515デフォルトの名無しさん
2005/09/16(金) 13:58:51http://commnet1.microsoftpdc.com/content/downloads.aspx
0516名無しさん♯
2005/09/16(金) 15:29:47でも、動くものはWinFSの次のベータあたりまで出ないのかな?(´・ω・`)
0518デフォルトの名無しさん
2005/09/16(金) 17:58:07WinFXもLINQもVS 2005上で動くみたいだけど。
0519デフォルトの名無しさん
2005/09/16(金) 23:03:190520デフォルトの名無しさん
2005/09/17(土) 12:30:031. .NET Framework 2.0 Beta2 (2.0.50215.322)
2. SQL Server Express July CTP
3. Visual Studio 2005 Beta2
4. WinFX Runtime Components
5. WinFX SDK
6. VS Extensions for WinFX
7. VS Extensions for WWF
8. WinFS SDK
9. Atlas (.vsi)
10. LINQ Preview
0521デフォルトの名無しさん
2005/09/17(土) 13:11:320522名無しさん♯
2005/09/17(土) 22:11:46それとVSのデザイナを使わないとどうにもならないわ。
アーキテクチャ的にはイベント使いまくりだけど、非同期の使われ具合はどうなんだろ。
なかなかおもろい。
0523名無しさん♯
2005/09/18(日) 11:52:14Lambda Expressionを単なるデータ構造に変換できることはわかったけど、
using System;
using System.Expressions;
using System.Query;
class Test {
static void Main() {
Expression<Func<int, int>> f = n => (n + n) * n;
Console.WriteLine(f);
}
}
(実行結果)
|n| Multiply(Add(n, n), n)
逆にTreeから実行可能コードに変換する手立てが見つからない・・・。
自作しろって?(´・ω・`)
0524名無しさん♯
2005/09/18(日) 20:55:53でも、Query表現関連はバッサリなくなっとる。
ひとりごとばっかりやね・・・。
0525デフォルトの名無しさん
2005/09/18(日) 21:14:47俺のところではエラー起きまくりで全く使い物にならないのだが。
0527デフォルトの名無しさん
2005/09/18(日) 22:28:43thx。環境作り直しだ。orz
0528名無しさん♯
2005/09/18(日) 22:41:12C# LINQ → VS 2005 Beta2
VB LINQ → VS 2005 RC
つーことです。両方同じ環境で試すのは無理ぽ。
0529デフォルトの名無しさん
2005/09/19(月) 01:20:080530チラシの裏
2005/09/19(月) 01:34:201. .NET Framework 2.0 Beta2 (2.0.50215.322)
http://www.microsoft.com/downloads/details.aspx?familyid=7ABD8C8F-287E-4C7E-9A4A-A4ECFF40FC8E&displaylang=en
2. SQL Server Express July CTP
http://lab.msdn.microsoft.com/express/sql/default.aspx
3. Visual Studio 2005 Beta2 (雑誌とかMSDNサブクライバ)
4. WinFX Runtime Components
http://www.microsoft.com/downloads/details.aspx?FamilyId=CE888B4C-CCBD-452F-9D90-F4B7190CCA24&displaylang=en
5. WinFX SDK
http://www.microsoft.com/downloads/details.aspx?familyid=64193CC5-D566-402C-A211-BA48B312CF6D&displaylang=en
6. VS Extensions for WinFX
http://www.microsoft.com/downloads/details.aspx?familyid=45F9BE99-3264-4BF1-8879-78A7A95D9217&displaylang=en
7. VS Extensions for WWF
8. WinFS SDK(MSDNサブクライバ))
9. Atlas (.vsi)
10. LINQ Preview
0531デフォルトの名無しさん
2005/09/19(月) 02:28:311. .NET Framework 2.0 Beta2 (2.0.50215.322)
ttp://download.microsoft.com/download/7/7/2/772060B2-0CBE-43CA-8F3E-2335308B6831/dotnetfx.exe
2. SQL Server Express July CTP
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=1a722b0f-6cca-4e8b-b6ea-12d9c450ed92&DisplayLang=en
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=c7a5cc62-ec54-4299-85fc-ba05c181ed55&DisplayLang=en (Express Manager)
3. Visual Studio 2005 Beta2
(雑誌とかMSDNサブクライバ)
4. WinFX Runtime Components
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=ffd636f0-86e9-41e8-9e1c-100a4cc4888f&DisplayLang=en
5. WinFX SDK
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=c20cc6c8-1f4e-4a5c-bc79-c2fe9abe69aa&DisplayLang=en
6. VS Extensions for WinFX
ttp://www.microsoft.com/downloads/details.aspx?FamilyId=EDE1A645-2A53-42E1-8482-3BF1FADADE06&displaylang=en
7. VS Extensions for WWF
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=7096d039-2638-4f63-8654-d2e5d98fa417&DisplayLang=en
8. WinFS SDK
(MSDNサブクライバ)
9. Atlas (.vsi)
ttp://msdn.microsoft.com/asp.net/future/atlastemplate/default.aspx
10. LINQ Preview
ttp://download.microsoft.com/download/4/7/0/4703eba2-78c4-4b09-8912-69f6c38d3a56/LINQ%20Preview.msi
※VB LINQ PreviewはBeta2では動きません
0532デフォルトの名無しさん
2005/09/19(月) 02:31:50July CTPなんて出てない。
0533デフォルトの名無しさん
2005/09/19(月) 07:57:17俺のサブスクリプションレベル(OS)じゃとれなかったよ・・・
チキショー
0534デフォルトの名無しさん
2005/09/19(月) 10:31:34・パッケージ版:150万円(MSDN Premium Subscription1年分付き)
・Open Business:117万円(SA with MSDN Premium Subscription2年分付きの場合は185万円)
・Select A:84万300円(SA with MSDN Premium Subscription3年分付きの場合は157万1300円)
ちゃんとお金出して買えYO!
0535デフォルトの名無しさん
2005/09/19(月) 13:20:47System.TypeLoadException
Could not load type 'System.Runtime.CompilerServices.RuntimeCompatibilityAttribute' from assembly 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
0536デフォルトの名無しさん
2005/09/19(月) 13:36:010537535
2005/09/19(月) 15:13:56WinFX Runtime Componentsについてきたやつを入れ直したらきちんと動いた。
0538名無しさん♯
2005/09/19(月) 16:06:31何で車輪の再発明するんだろう。(´・ω・`)
■ このスレッドは過去ログ倉庫に格納されています