Silverlight 1.0 and Expression Blend 2.5 March Preview compatibility

Recently, I have involved in a small silverlight project. As the rest of team has no experience with Silverlight but have played with WPF for a while, I suggest them to use shiny new Expression 2.5 with Silverlight 2.0 runtime at first. Unfortunately, using beta software is unbearable by the project owner aka client. Therefore we fall backed to the released Silverlight 1.0 runtime.

The development was progressed smoothly and all bugs we had found was fixed. With the help of Expression 2.5, the development was easier than earlier version. However, when the user acceptance testing had begun, a very serious bug was introduced in some user machines. No one in development team had seen this bug before . The only error message I had at that time was

ParserError- Unknown attribute Ignorable on element Canvas.
File: LoadingPage.xaml, line 8 character 3

This bug is obviously related to XAML parsing. So I fired up notepad and went to the problem line. Then I realized the attribute was added by Expression Blend 2.5. But I didn’t sure enough to conclude this was the cause as we, the development team, could run it perfectly both in development machines and my computer at home.

In order to reproduce the bug, I decided to uninstall my Silverlight runtime from the computer and found out the root of problem. Silverlight 1.0 and 1.1 runtime do not handle XAML file as a normal XML file. They parse XAML file as XAML file. If you introduce any new namespace to the file, parser will struck and you will got parser error. Though you can use Expression Blend to create and design Silverlight 1.0, the XAML code still cannot be utilized by Silverlight 1.0 runtime. Furthermore, if I correct understand, Silverlight 2.0 javascript API has been changed and Rectangle has the actualWidth attribute as TextBlock element. Because my javascript also caused an error after I fixed the XAML namespace bug.

Since this new namespace was introduced by Expression Blend 2.5 Preview, this can be concluded that Expression Blend 2.5 Preview is not fully backward compatible with Silverlight 1.0. Although in the system requirement page states Silverlight 2.0 beta 1 is required, I think it is for development machine and should not require the 2.0 runtime to be installed in the client box. As this version is just preview, I don’t think this bug is Microsoft fault. I blog this for everyone who wanna try the software to be concern.

PS. This issue has been reported to Microsoft.

ASP.NET Futures & Go Live License

ปกติแล้วเวลาที่ไมโครซอฟท์จะพัฒนาผลิตภัณฑ์ใหม่ๆออกมาก็มักจะปล่อย CTP หรือ Community Technology Preview มาให้ลองเล่นดูก่อน แล้วเมื่อถึงจุดๆหนึ่งก็จะปล่อยตัวที่เป็นเบต้าออกมาซักรอบหรือสองรอบ แล้วก็อาจจะออก RC หรือ Release Candidate มาให้ใช้ก่อนที่จะเป็นรุ่น RTM หรือ Release To Manufacturer ซึ่งหมายความว่าเป็นผลิตภัณฑ์ตัวจริง

สำหรับ ASP.NET Futures นั้นจะเป็นชื่อชุดของซอฟท์แวร์ที่ทดลองปล่อยออกมาให้ใช้เหมือนกับเป็น CTP ชุดต่างๆนั่นแหละ แต่จะใช้คอนเซปท์คล้ายๆกับ Debian Sid คือ ASP.NET Futures จะเป็นชุดทดลองตลอดเวลา อะไรก็ตามที่อยู่ใน ASP.NET Futures จะเป็นเพียงการทดลองเท่านั้นและไม่มีการรับประกันว่าอะไรก็ตามที่อยู่ใน ASP.NET Futures จะถูกรวมเข้าไปอยู่ใน ASP.NET เวอร์ชันถัดๆไป ซึ่งจริงๆแล้ว ASP.NET Futures นั้นถึงจะบอกว่ามีคอนเซปท์คล้ายๆกับ Debian Sid แต่จริงๆแล้วไมโครซอฟท์ได้ออก ASP.NET Ajax ในลักษณะนี้คือปล่อยให้ทดลองใช้ตั้งแต่ยังไม่เสร็จสมบูรณ์ แต่ได้รับผลตอบรับจากนักพัฒนาค่อนข้างดีจึงนำโมเดลนี้มาใช้ต่อ จนเกิดเป็น ASP.NET Futures

ส่วนสัญญาอนุญาต Microsoft Go Live นั้นเคยกล่าวถึงแล้วในโพสนี้ ว่านำไปใช้ผลิตซอฟท์แวร์ขายได้แล้วนั้น ทำให้หลายๆคนนึกไปเองว่าถ้ามีสัญญาอนุญาตแบบ Go live แล้วหมายความว่าจะมีการซัพพอร์ทจากไมโครซอฟท์ ซึ่งจริงๆแล้วไม่ใช่ แต่หมายความว่าอนุญาตให้ผู้ที่ยอมรับความเสี่ยงจากการใช้ซอฟท์แวร์ที่ยังไม่ได้เป็นผลิตภัณฑ์ นำผลิตภัณฑ์นั้นๆไปใช้ในงาน Production ได้แล้ว

ตอนนี้เข้าใจว่า ASP.NET Futures จะมีสัญญาอนุญาตแบบ Microsoft Go Live ตลอดเวลาแน่ๆเลย

ลองเล่น Visual Studio 2008 beta 2

ไหนๆก็เคยใช้ตอน Beta 1  มาแล้วค่อนข้างประทับใจ พอ beta 2 ออกมาก็ลองลงเล่นดูเลยดีกว่า

หลังจากนั่งโหลดมาและเอาตัวเก่าออกหมดแล้ว ก็เอา image ที่ดาวน์โหลดมาเมาท์แล้วก็ให้ autorun ทำงานซะ

orcasb2-01

เริ่มต้นมาก็เจอนี่เลย หน้าจอที่ไม่ได้เจอมานาน มีเขียนตัวเล็กๆไว้ด้วยว่าเป็น beta 2 นะจ๊ะ

พอกดติดตั้งแล้วก็จะมาเจอหน้าที่ถามว่าจะลงอะไรบ้าง ตรงนี้ ก็เลือกลงตามปกติ ไม่เอา SQL Server Compact กับ Crystal Report เสร็จแล้วก็กด Install

orcasb2-03

หน้าจอติดตั้งแบบเดียวกับ Visual Studio 2005 ก็โผล่มาอีกครั้ง

orcasb2-04

รอไปประมาณ 45 นาที ก็เจอกับหน้านี้ เป็นอันว่าลงตามปกติเรียบร้อย

orcasb2-05

แต่ช้าก่อน เนื่องจากเครื่องนี้ใช้ ASP.NET Ajax ด้วยก็เลยต้องรันสคริปต์เล็กน้อย จะได้ไม่มีปัญหาเรื่อง Assembly Reference

orcasb2-06

แล้วก็รีเซทตัว ide อีกหนึ่งที เพราะเคยลง beta 1 เอาไว้

orcasb2-07

ตอนแรกนึกว่ารีเซทแล้วก็ค่อยเข้า Visual Studio ไปตั้ง Environment กลายเป็นว่ารีเซทแล้วก็จะเปิด Visual Studio ให้เลย พอปิด Visual Studio แล้วเปิดใหม่อีกทีก็จะมีตัวเลือกให้ตั้ง Environment อีก ตรงนี้เซ็งๆนิดหน่อยเพราะต้องรอไปอีกซักพัก

 

orcasb2-09

 

ตอนนี้ก็ถือว่าติดตั้งเสร็จเรียบร้อยแล้วล่ะ ได้เวลาเล่นกันซักที

 orcasb2-08

เท่าที่ลองเล่นดูก็ดูแปลกตาแต่สวยขึ้นกว่า Visual Studio 2005 เล็กน้อย ส่วนความเร็วก็พอๆกัน แต่ก็มีค้างๆเวลาเปิดหน้า Designer แบบ Split บ้าง แต่ยังไม่เยลองเปิดหน้าที่มีคอนโทรลเยอะๆเหมือนกัน อาจจะช้ากว่า VS 2005 อยู่หลายขุม

ที่ชอบก็คือเรื่อง Multi Target นี่แหละที่มันทำให้ VS 2008 ดูเจ๋งกว่า VS 2005 มากๆ แต่เข้าใจว่าทำไมเวลาเปิด project เก่าๆยังต้องให้แปลงเป็น project ของ VS2008 ก่อนทั้งๆที่มันควรจะเปิดได้เลยโดยไม่ต้องแปลง

orcasb2-10

โดยรวมๆ นับว่าสมชื่อ beta 2 จริงๆ เพราะว่ายังมีบักอยู่บ้าง แต่ก็ไม่ได้เปราะบางเท่ากับ March CTP ที่อันนั้นทั้งเด้งทั้งพัง แล้วเวลาลงก็เรียบร้อยดีไม่มีผิดพลาด ไม่เหมือนตอนที่ลง Beta 1 ที่ลงไป error ไปหาวิธีแก้ไขกันหูตูบเลย แต่ยังข้องใจ ทำไมไอ้เจ้า Intellisense  ของจาวาคริปต์กับ LINQ ก็ติดมั่งไม่ติดมั่ง

PS. ลองแต่บน XP ยังไม่มีเครื่องที่ใช้ Vista

PS2. VS 2008 มาพร้อมสัญญาอนุญาต Microsoft Go-Live หมายความว่าอนุญาตให้เอาเทคโนโลยี .NET 3.5 ไปใช้พัฒนาโปรแกรมขายได้แล้ว