Friday, January 11, 2008

Another one?

We're building yet another UI platform?

According to, we have:

  • Windows Presentation Foundation (WPF) - A managed UI platform. Bloated, slow. We spent a bunch of time in 2006 trying to reduce the working set and startup time.
  • Silverlight - A rewrite of WPF in unmanaged code; small, fast, excellently written. But probably too little, too late to make WPF and XAML relevant to the internet.
  • Windows Forms - A workhorse: a bunch of enterprise apps run on this .Net 1.0 and 2.0 technology.
  • Win32 - The oldest one. Ancient technology. And no developer wants to work with this.
  • Media Center Markup Language - Written by the MC team; flashy. But it doesn't do a lot - just enough to draw the MC UI. You can't use it as a UI platform for all of Windows.
We actually have another one - DirectUI - an internal-only UI platform that is used in XP and Vista to draw control panels, and bits and pieces of the Windows Shell. It was a pre-XAML version of XAML. As far as I know Windows 7 will still have it.

This means that we have 6 teams that work on the same thing - a bit of code that draws the user interface for applications on the screen.

If we were a sane company, we would have the following (from oldest to newest):

Win32 (the oldest one)
Windows Forms (the replacement, to make programming UI better)
(A flashy and fast) unmanaged WPF for Silverlight and Media Center


grinser00 said...

so you think that wpf won't be optimized perf wise and get better feature wise in the future?

will 7 finally be on par with os x in terms of ui effects quality? is directUI able to do that? since vista delivers only the fancy stuff (like glass, composition, ...) with the DWM which uses parts of WPF (the unmanaged components, milcore.dll).

Soma said...

I'm sure that the WPF stack will be optimized, perf-wise. I'll bet anything ( MSFT stock options) that it will be unmanaged in the future.

Wait! It is! See Silverlight - light, small, fast. Microsoft ended up writing a WPF stack twice - which is expensive, and pointless - we should have released something much better the first time round, imo.

WPF can do anything that the Mac technologies can; they are pretty similar.

grinser00 said...

yes, wpf can do almost anything that mac stuff can do (i have worked with it and my only complains are about perf and some windows architectural stuff...) :)

So you think that the libraries will be unmanaged (which are currently managed) but we can still program wpf stuff managed like now? I can imagine big leaps in perf :)

My question in the previous comment was more about the actual UI of windows 7 (not the technologies) - if there will be more fancy animations like they are used in os x or like vista's only fancy animations in flip3d (but useful not senseless). people want sexy transitions...

WaSyL said...

And I have discovered (by Reflectoring assemblies and using depends on unmanaged dlls) that Zune software uses some kind of WPF like rendering, at least similar approach. Is it DirectUI you have mentioned?

grinser00 said...

afaik the zune software uses the mcml stuff from media center software, additionally many folks from the MCE team now work at the zune team :)

Brandon Paddock said...

You seem to mix up things a bit in this post.

You make no distinction between rendering technologies, control libraries, or layout systems. These things are not all the same.

Also, "Win32" is none of these things. Win32 refers to the system APIs that shipped as part of Windows 95 and NT, and their successors.

Perhaps you meant to list USER, GDI, and GDI+. Those, plus Direct3D / DirectDraw are the way you get pixels onto the screen and move them around.

Windows Forms is mainly just a fancy wrapper around the shell's Common Controls. Depending on the version, they render with GDI / GDI+. They aren't an alternative to it.

DUI is mainly a layout engine, and the comparison to an early XAML is a valid one. But XAML is public and managed, so they are obviously quite different beasts.

WPF is really a collection of things. It renders using DirectX (Direct3D), and uses XAML for layout.

So what does IStartedSomething suggest is being added? A new rendering path? A new layout engine? A new set of common controls? Something else?

I don't even know why you'd list Silverlight here. Or at least why you'd list is as seperate from WPF since it is a subset of that clearly designed for portability.

Frank said...

Windows forms has been working fine with with vector graphics, and they aren't bloated either:

Joe said...

Silverlight is unmanaged? Are you sure? SL 1.0 maybe, but that's just a stepping stone to 2.0 - which is basically WPF light with a different MILCORE layer.

Pretty confusing post. I take it that you're not on any of the dev teams.

grinser00 said...

as i understand he is talking about the runtime and the libraries - in wpf, almost every library is written in managed code - only the rendering stuff (which is milcore.dll) is written in unmanaged code. on the contrary, all the underlying stuff in silverlight is unmanaged, if he states it correctly. that silverlight 2.0 can be programmed with different (managed) languages than JS doesn't imply that its libraries are written in managed code too.

Joe said...

I totally dont' agree. Unless I have misunderstood the details - this is how I understand it.

Silverlight pretty much depends on XAML to represent any visual element. XAML is a managed object graph - an XML way of presenting managed objects in memory. In SL 1.0 there was a temporary method of expressing very simple XAML using unmanaged code. These elements transposed directly to MILCORE primitives - that's why it was easy to have an unmanaged layer there. In SL2.0 that all changes and XAML is once again managed only.

I see some people trying to reconcile the excitement around Silverlight and the lack of take-up for WPF by interpretting this as a unmanaged/managed equation. It's not that simple.

On another point. If there is a native alternative UI API used in Vista then this could be a real issue for the monopoly watches. If this API layer uses any undocumented code beneath it then this potentially breaches the consent decree and the recent agreement with the EU about publicly available APIs.

laptop battery said...

battery for COMPAQ M300 N400 146630-001 291694-001 laptop battery
Battery fits COMPAQ Presario 1200 1600 1800 116314-001 laptop battery
Battery For Compaq Presario 311227-001 PP2162S Laptop laptop battery
battery for COMPAQ N150 PP2111X 232060-001 231962-001 laptop battery
Notebook Laptop Battery for Dell D9200 D5318 G5260 laptop battery
6600mAh Battery fits DELL XPS M1210 NF343 HF674 NEW laptop battery

3cell Battery for Dell Latitude X1 T6840 312-0342 Y6457 laptop battery
New Dell Inspiron B130 1300 b120 Battery 312-0416 56whr laptop battery
Gateway M360 M460 M680 8-Cell Notebook Battery 6500949 laptop battery
New Battery for HP M2000 Series DV1000 DV4000 laptop battery
Battery For HP F2019 F2019A F2019B 6000 VT6200 XT6200 laptop battery
Battery For HP HSTNN-IB04 346970-001 HSTNN-DB02 DP399A laptop battery

New F1739A Battery For HP XE XE2 Pavilion N3000 N3490 laptop battery
New Battery For HP Pavilion ZT1000 F2299A F3172B F3172A laptop battery
IBM THINKPAD 600 600A 600D 600E 600X 02K7018 BATTERY laptop battery
Battery for Gateway Solo M500 M505 Medion MD2900 MD6179 laptop battery
Battery Fit Toshiba PA3382U-1BRS PA3384U-1BRS laptop battery
Battery for Toshiba M30X M35X M40X PA3395U-1BRS PA3421U laptop battery

9999 said...


明男 said...

情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,美國aneros,rudeboy,英國rudeboy,英國Rocksoff,德國Fun Factory,Fun Factory,英國甜筒造型按摩座,甜筒造型按摩座,英國Rock Chic ,瑞典 Lelo ,英國Emotional Bliss,英國 E.B,荷蘭 Natural Contours,荷蘭 N C,美國 OhMiBod,美國 OMB,Naughti Nano ,音樂按摩棒,ipod按摩棒,美國 The Screaming O,美國TSO,美國TOPCO,美國Doc Johnson,美國CA Exotic,美國CEN,美國Nasstoy,美國Tonguejoy,英國Je Joue,美國Pipe Dream,美國California Exotic,美國NassToys,美國Vibropod,美國Penthouse,仿真按摩棒,矽膠按摩棒,猛男倒模,真人倒模,仿真倒模,PJUR,Zestra,適趣液,穿戴套具,日本NPG,雙頭龍,FANCARNAL,日本NIPPORI,日本GEL,日本Aqua Style,美國WET,費洛蒙,費洛蒙香水,仿真名器,av女優,打炮,做愛,性愛,口交,吹喇叭,肛交,魔女訓練大師,無線跳蛋,有線跳蛋,震動棒,震動保險套,震動套,TOY-情趣用品,情趣用品網,情趣購物網,成人用品網,情趣用品討論,成人購物網,鎖精套,鎖精環,持久環,持久套,拉珠,逼真按摩棒,名器,超名器,逼真老二,電動自慰,自慰,打手槍,仿真女郎,SM道具,SM,性感內褲,仿真按摩棒,pornograph,hunter系列,h動畫,成人動畫,成人卡通,情色動畫,情色卡通,色情動畫,色情卡通,無修正,禁斷,人妻,極悪調教,姦淫,近親相姦,顏射,盜攝,偷拍,本土自拍,素人自拍,公園露出,街道露出,野外露出,誘姦,迷姦,輪姦,凌辱,痴漢,痴女,素人娘,中出,巨乳,調教,潮吹,av,a片,成人影片,成人影音,線上影片,成人光碟,成人無碼,成人dvd,情色影音,情色影片,情色dvd,情色光碟,航空版,薄碼,色情dvd,色情影音,色情光碟,線上A片,免費A片,A片下載,成人電影,色情電影,TOKYO HOT,SKY ANGEL,一本道,SOD,S1,ALICE JAPAN,皇冠系列,老虎系列,東京熱,亞熱,武士系列,新潮館,情趣用品,情趣,情趣商品,情趣網站,跳蛋,按摩棒,充氣娃娃,自慰套,G點,性感內衣,情趣內衣,角色扮演,生日禮物,生日精品,自慰,打手槍,潮吹,高潮,後庭,情色論譠,影片下載,遊戲下載,手機鈴聲,音樂下載,開獎號碼,統一發票號碼,夜市,統一發票對獎,保險套,做愛,減肥,美容,瘦身,當舖,軟體下載,汽車,機車,手機,來電答鈴,週年慶,美食,徵信社,網頁設計,網站設計,室內設計,靈異照片,同志,聊天室,運動彩券,大樂透,威力彩,搬家公司,除蟲,偷拍,自拍,無名破解,av女優,小說,民宿,大樂透開獎號碼,大樂透中獎號碼,威力彩開獎號碼,討論區,痴漢,懷孕,美女交友,交友,日本av,日本,機票,香水,股市,股市行情, 股市分析,租房子,成人影片,免費影片,醫學美容,免費算命,算命,姓名配對,姓名學,姓名學免費,遊戲,好玩遊戲,好玩遊戲區,線上遊戲,新遊戲,漫畫,線上漫畫,動畫,成人圖片,桌布,桌布下載,電視節目表,線上電視,線上a片,線上掃毒,線上翻譯,購物車,身分證製造機,身分證產生器,手機,二手車,中古車,法拍屋,歌詞,音樂,音樂網,火車,房屋,情趣用品,情趣,情趣商品,情趣網站,跳蛋,按摩棒,充氣娃娃,自慰套, G點,性感內衣,情趣內衣,角色扮演,生日禮物,精品,禮品,自慰,打手槍,潮吹,高潮,後庭,情色論譠,影片下載,遊戲下載,手機鈴聲,音樂下載,開獎號碼,統一發票,夜市,保險套,做愛,減肥,美容,瘦身,當舖,軟體下載,汽車,機車,手機,來電答鈴,週年慶,美食,徵信社,網頁設計,網站設計,室內設計,靈異照片,同志,聊天室,運動彩券,,大樂透,威力彩,搬家公司,除蟲,偷拍,自拍,無名破解, av女優,小說,民宿,大樂透開獎號碼,大樂透中獎號碼,威力彩開獎號碼,討論區,痴漢,懷孕,美女交友,交友,日本av ,日本,機票,香水,股市,股市行情,股市分析,租房子,成人影片,免費影片,醫學美容,免費算命,算命,姓名配對,姓名學,姓名學免費,遊戲,好玩遊戲,好玩遊戲區,線上遊戲,新遊戲,漫畫,線上漫畫,動畫,成人圖片,桌布,桌布下載,電視節目表,線上電視,線上a片,線上a片,線上翻譯,購物車,身分證製造機,身分證產生器,手機,二手車,中古車,法拍屋,歌詞,音樂,音樂網,借錢,房屋,街頭籃球,找工作,旅行社,六合彩,整型,水噹噹,貸款,貸款,信用貸款,宜蘭民宿,花蓮民宿,未婚聯誼,網路購物,珠海,下川島,常平,珠海,澳門機票,香港機票,婚友,婚友社,未婚聯誼,交友,婚友,婚友社,單身聯誼,未婚聯誼,未婚聯誼,婚友社,婚友,婚友社,單身聯誼,婚友,未婚聯誼,婚友社,未婚聯誼,單身聯誼,單身聯誼,婚友,單身聯誼,未婚聯誼,婚友,交友,交友,婚友社,婚友社,婚友社,大陸新娘,大陸新娘,大陸新娘,越南新娘,越南新娘,外籍新娘,外籍新娘,台中坐月子中心,搬家公司,搬家,搬家,搬家公司,線上客服,網頁設計,線上客服,網頁設計,網頁設計,土地貸款,免費資源,電腦教學,wordpress,人工植牙,關鍵字,關鍵字,seo,seo,網路排名,自然排序,網路排名軟體,