【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
0404デフォルトの名無しさん
2005/09/13(火) 23:00:39あぁ、何ともなりませんね。
JAVA+JSP+Struts+Tomcat
http://pc8.2ch.net/test/read.cgi/tech/1123605954/l50
客「なぜこのアーキテクチャを採用したんですか?」
Java厨「いや、なぜって……。いま作るならこれがいま一番はやってるからなんですけど……」
客「このシステム、5年はこのまま改修しながら使い続ける予定なんですけど、もちろんそれは考えてのことですよね!?」
Java厨「いや、ちゃんと現場を教育し続ければ可能だと思うんですよ、第一……」
客「できる、できないの話じゃないんですよ。じゃあ一体その教育コストと時間は誰が払うんですか? あなた、払ってくれるんですかね?」
Java厨「いや、それは……」
客「あなたの趣味で作られたら、運用する側はたまったもんじゃないんですよ。私のいってること、理解できますよね?」
Java厨「いえ、そもそもソフトウェアというのはオブジェクト指向に基づいてこう作るべきというのが最近の考え方で……」
客「あんたから大学の授業みたいなのを聞きたいんじゃないんだよ、もういい。帰って」
0405デフォルトの名無しさん
2005/09/13(火) 23:05:52あーいいーね
0406デフォルトの名無しさん
2005/09/13(火) 23:32:22Microsoft Codename Max
http://www.microsoft.com/max/
0407406
2005/09/13(火) 23:34:08"WinFX Runtime Components 3.0 Beta2"だって。
0408デフォルトの名無しさん
2005/09/13(火) 23:34:440409406
2005/09/13(火) 23:35:24http://go.microsoft.com/fwlink/?linkid=50750
0410406
2005/09/13(火) 23:51:34でもWinFXはOK。
0411デフォルトの名無しさん
2005/09/13(火) 23:54:260412デフォルトの名無しさん
2005/09/14(水) 00:00:11GJ!
0413デフォルトの名無しさん
2005/09/14(水) 00:03:570414名無しさん♯
2005/09/14(水) 00:16:51マターリとKeynoteを待ちますか。
0415デフォルトの名無しさん
2005/09/14(水) 00:24:190416名無しさん♯
2005/09/14(水) 00:24:35ttp://beta.asp.net/default.aspx?tabindex=7&tabid=47
0417デフォルトの名無しさん
2005/09/14(水) 00:27:59まさにラッシュ
0418デフォルトの名無しさん
2005/09/14(水) 00:50:12http://msdn.microsoft.com/winfx/
0419デフォルトの名無しさん
2005/09/14(水) 00:52:050420名無しさん♯
2005/09/14(水) 02:06:16/|:: ┌──────┐ ::|
/. |:: | しばらく | ::|
|.... |:: | お待ちください | ::|
|.... |:: | | ::|
|.... |:: └──────┘ ::|
\_| ┌────┐ .| ∧∧
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( _)
/ ̄ ̄ ̄ ̄ ̄旦 ̄(_, )
/ \ `
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|、_)
 ̄| ̄| ̄ ̄ ̄ ̄ ̄ ̄| ̄| ̄
0421デフォルトの名無しさん
2005/09/14(水) 02:07:420422デフォルトの名無しさん
2005/09/14(水) 02:34:350423デフォルトの名無しさん
2005/09/14(水) 02:47:590424デフォルトの名無しさん
2005/09/14(水) 02:48:150425デフォルトの名無しさん
2005/09/14(水) 02:53:330426名無しさん♯
2005/09/14(水) 02:55:380427名無しさん♯
2005/09/14(水) 02:56:380428デフォルトの名無しさん
2005/09/14(水) 02:56:530429デフォルトの名無しさん
2005/09/14(水) 02:56:570430デフォルトの名無しさん
2005/09/14(水) 02:57:230431デフォルトの名無しさん
2005/09/14(水) 02:58:190432名無しさん♯
2005/09/14(水) 03:17:050433デフォルトの名無しさん
2005/09/14(水) 03:18:510434デフォルトの名無しさん
2005/09/14(水) 03:42:49http://msdn.microsoft.com/netframework/future/
0435名無しさん♯
2005/09/14(水) 03:44:33ttp://download.microsoft.com/download/4/7/0/4703eba2-78c4-4b09-8912-69f6c38d3a56/linq%20preview.msi
0436デフォルトの名無しさん
2005/09/14(水) 03:46:11ttp://download.microsoft.com/download/9/5/0/9503e33e-fde6-4aed-b5d0-ffe749822f1b/csharp%203.0%20specification.doc
0437デフォルトの名無しさん
2005/09/14(水) 04:10:270438名無しさん♯
2005/09/14(水) 04:10:280439名無しさん♯
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移植の失敗を思いおこされる。
■ このスレッドは過去ログ倉庫に格納されています