WPF

vkado

New member
WPF คืออะไร?

อันนี้ขอแปลตามเว็บของ Wikipedia.org นะครับ เค้าบอกว่าเป็นเทคโนโลยีที่ใช้แสดงผลทางด้านกราฟิกของไมโครซอฟท์ เมื่อก่อนบางท่านอาจจะรู้จักมันในชื่อเดิมคือ Avalon เทคโนโลยี WPF ได้ถูกบรรจุเข้าไปเป็นส่วนหนึ่งของ .NET 3.0 (เมื่อก่อนชื่อ WinFX และมีเว็บไซต์ www.netfx3.com ที่เผยแพร่ข้อมูล) WPF สามารถใช้งานได้กับ Windows XP SP2, Windows 2003 แต่ต้องติดตั้ง .NET 3.0 เพิ่มเติม แต่ถ้าเป็น Windows Vista จะมี .NET 3.0 ติดตั้งมาให้ตั้งแต่แรกแล้ว

ด้วย WPF เราสามารถแยกส่วนที่เป็น User Interface ออกจาก Business Logic ได้ โดยเก็บส่วนที่เป็น Business Logic ไว้ให้โปรแกรมเมอร์เขียน สำหรับส่วนที่เป็น User Interface เราสามารถนำไฟล์ภาพ ไฟล์วีดีโอ มาแสดงแบบสองมิติ หรือสามมิติได้ และสามารถใส่เสียงลงไปได้เช่นกัน สำหรับโครงสร้างของ .NET Framework 3.0 ดังภาพด้านล่าง

300px-DotNet3.0.svg.png

ภาพที่ 1 โครงสร้างของ .NET Framework 3.0
ขอบคุณภาพจาก Wikipedia.org ด้วยครับ


เครื่องมือที่ใช้พัฒนา WPF

เครื่องมือที่ไมโครซอฟท์หมายมั่นปั้นมือมากก็คือ Microsoft Expression Blend ซึ่งสามารถตอนนี้สามารถสร้างงาน WPF สำหรับ Windows Application ได้ สำหรับ WPF สำหรับเวอร์ชั่นเว็บที่รันบนเบราเซอร์ได้จะมีชื่อว่า Silverlight (ชื่อเดิมคือ WPF/E) โดยเราสามารถเขียนภาษา XAML (แซม-เมล ฝรั่งอเมริกันมักเน้นพยางค์แรก และออกเสียงเป็น แซ้ม-เมิ้ล)

ในตอนนี้ เราสามารถดาวน์โหลดเวอร์ชั่นทดลอง Blend2 ที่สามารถสร้างโปรเจคที่เป็นทั้ง WPF และ Silverlight ได้ที่ http://www.microsoft.com/Expression/products/download.aspx?key=blend2maypreview

สำหรับชุดเครื่องมือที่ไมโครซอฟต์ออกมาพร้อมๆ กับ Blend มีอีกสามตัวครับ รวมทั้งหมดเป็นสี่ตัวที่เรียกว่าชุด Expression Studio ซึ่งมีรายละเอียดดังตารางด้านล่าง

1. Expression Studio

Expression Web

โปรแกรมสำหรับจัดการสร้างเว็บไซต์ สามารถจัดการกับข้อมูล XML เขียนไฟล์สไตล์ชีตของ XML ที่ชื่อว่า XSLT จัดการสไตล์ชีต (*.css) นำข้อมูลจากฐานข้อมูลมาแสดงในเว็บฟอร์มด้วยไม่ต้องเขียนโค้ด จัดการกับข้อมูล RSS feeds ได้ และรองรับ Master Page โดยส่วนตัวแล้ว ผมมองว่ามันมาแทนโปรแกรม FrontPage เดิมครับ

Expression Blend

โปรแกรมสำหรับนักออกแบบ ที่สามารถสร้างภาพแบบ Vector Graphic ที่ไม่สูญเสียความละเอียดไปเมื่อมีการขยาย ทำงานอยู่บน engine ของ WPF นักออกแบบสามารถสร้างงานกราฟิกที่เป็นสองมิติ และสามมิติได้ เบื้องหลังของงานที่นักออกแบบสร้างจะถูกเก็บไว้เป็นภาษา XAML (Extensible Application Markup Language) ซึ่งมีนามสกุลของไฟล์นี้เป็น xaml ซึ่งสามารถนำไปทำงานร่วมกับโค้ดภาษา VB หรือ C# ที่โปรแกรมเมอร์เขียนด้วย Visual Studio 2005 ได้ โดยส่วนตัวแล้ว ผมมองว่ามัน มันคล้ายกับ Adobe Flash มาก แต่จะมีลูกเล่นทางด้านการสร้างภาพที่ดีกว่าด้วย engine ของ WCF นอกจากนี้ตัว Editor ของ Flash ก็ยังสู้กับ Visual Studio 2005 ไม่ได้เลย เหมือนกับมวยคนละรุ่นกัน

Expression Design

โปรแกรมที่ใช้สร้างภาพแบบ Vector Graphic ที่มีลูกเล่น และ Effect ต่างๆ ที่สูงกว่า Blend ใช้กับงานที่ต้องการความละเอียดของงานสูง สามารถ Export ออกมาเป็นไฟล์นามสกุล xaml ที่นำมาใช้ใน Expression Blend ได้ หรืออาจจะก๊อบปี้งานมาใช้ใน Power Point ได้ ตัวนี้ผมมองว่ามันคล้ายกับ Adobe Illustrator ครับ เพราะมันใช้ในการสร้างงานที่เป็น Vector Graphic ที่มีรายละเอียดซับซ้อนได้ดี

Expression Media

ใช้จัดการกับไฟล์ภาพ หรือไฟล์วีดีโอชนิดต่างๆ ได้มากกว่า 120 ชนิด ทำการตกแต่งเพิ่มเติม แปลงความละเอียด ทำการแปลงไฟล์เป็นชนิดต่างๆ ด้วยการ Encoding หลายๆ แบบ และสร้างงาน Presentation ระดับมืออาชีพ โดยส่วนตัวแล้ว ผมมองว่ามันคล้ายกับ Adobe Premier ครับ


2. Visual Studio 2005 WPF & WCF Extension SDK

ปกติแล้วในการทำงานจริง เราจะใช้ Blend สำหรับสร้างงานกราฟิก และใช้ Visual Studio 2005 สำหรับการเขียนโค้ด แต่จริงๆ แล้วเราก็สามารถใช้ Visual Studio 2005 เพื่อสร้างงานกราฟิกได้เช่นกัน แต่เครื่องไม้เครื่องมือต่างๆ จะไม่เหมาะสมนัก เพราะ Visual Studio 2005 ได้ถูกออกแบบมาสำหรับเขียนโค้ด ตรงนี้ผมมองว่าไมโครซอฟท์ได้มองเห็นจุดเด่นใน Product แต่ละตัวที่มี แล้วนำมาประกอบกันเพื่อช่วยกันสร้างงานร่วมกัน



คู่ (เกือบจะ) เหมือนของ Blend และ Visual Studio 2005

จากที่ไมโครซอฟท์มีความพยายามจะนำ WPF มารันบนเบราเซอร์ผ่านตัว Plug-in ที่ชื่อ Silverlight เพื่อให้นักพัฒนาสามารถสร้างงาน WPF บนเบราเซอร์ได้ และทำให้เกิด Rich Internet Application (RIA) ขึ้นมา ขอย้อนเวลาไปเมื่อหลายปีโข (คงจะประมาณเกือบสิบปีแล้วมังครับ) ที่เรานิยม Plug-in ตัวหนึ่งที่ชื่อ Flash Player ซึ่งสามารถรันไฟล์ที่มีนามสกุล swf ซึ่งถูกสร้างด้วย Editor เฉพาะที่ชื่อว่า Macromedia Flash (ตอนนี้ Adobe มา Takeover ไปแล้ว กลายเป็น Adobe Flash) เจ้าตัวนี้เป็นที่นิยมมากเพราะสามารถสร้าง Animation และ User Interface ที่ค่อยข้างหรูหรามาก ช่วงนั้นใครๆ ก็มักนำ Flash ไปสร้างเป็น Splash Screen กันเป็นแถวๆ หรือบ้างก็นำเอาไปทำเป็นการ์ตูนภาพเคลื่อนไหว หลายปีต่อมาเจ้า Flash (ทั้ง Flash Player และ Macromedia Flash) นี้ก็เติบโตอย่างรวดเร็วมาก มีการเพิ่มเติมความสามารถ และตัว Editor ของมันอย่างรวดเร็ว และไม่มีคู่แข่งเลย ช่วงนั้นผมก็สงสัยว่าทำมันไมโครซอฟท์ไม่เข้ามา Takeover เจ้า Macromedia Flash ซะเลย เพราะมันเด่นซะอยู่คนเดียว ผลเฉลยก็น่าจะเป็นเทคโนโลยี WPF ที่สร้างได้ทั้ง Windows Application หรือ Web Application ที่รันผ่าน Plug-in Silverlight ที่ไมโครซอฟต์แอบซุ่มทำอยู่นานนี่หละมังครับ

นอกจาก Adobe Flash แล้วที่ใช้สร้างไฟล์ swf แล้ว ทาง Adobe ยังมี Adobe Flex ที่สามารถสร้างไฟล์ swf ได้เช่นกัน แต่ตัวนี้ใช้สำหรับการเขียนโปรแกรมแบบ Hard core หรือสำหรับโปรแกรมเมอร์ใช้เขียนโปรแกรมที่ซับซ้อน แต่ Adobe Flex จะสร้างงานกราฟิกได้ไม่ดีเท่า Adobe Flash หากเราใช้ Adobe Flex เราจะต้องสร้างงานกราฟิกที่เขียนด้วยภาษา MXML (Macromedia FleX Markup Language) ขึ้นมาก่อน จากนั้นจึงทำการคอมไพล์ให้เป็นไฟล์ swf เพื่อใช้งานรันในเบราเซอร์ ในเรื่องของภาษาที่ใช้สร้างงานกราฟิก จะเห็นว่าทั้งสองค่ายเลือกใช้ภาษาที่อยู่บนพื้นฐานของภาษา XML เพราะทำให้นักพัฒนาสามารถปรับแต่งงานในมุมมองของ Source ได้โดยตรง เพราะเป็นภาษาที่อ่านเข้าใจได้ง่าย

จากที่กล่าวมาทั้งหมดจะเห็นว่าในการสร้างงานกราฟิก ทาง Adobe จะมี Adobe Flash ส่วนทางไมโครซอฟท์จะมี Blend ในส่วนของการเขียนโปรแกรมที่ซับซ้อน Adobe มี Adobe Flex 2 ส่วนทางไมโครซอฟต์มี Visual Studio 2005 สำหรับภาษาที่ใช้สร้างงานกราฟิกทาง Adobe Flex มี MXML ในขณะที่ไมโครซอฟท์มี XAML อืมใครลอกใครนี่ แต่จากที่ผมลองเล่น Blend มา ก็พบว่าหลายๆ อย่างเหมือนจะลอก Adobe Flash กะ Adobe Photoshop มา (ไมโครซอฟท์เก่งในเรื่องนี้อีกแล้วครับท่าน หุหุ) ไม่ว่าจะเป็นการทำ Gradient ระบบ Timeline หรือระบบ Layer

สุดท้าย เพื่อให้เราสามารถสร้างโปรเจค WPF ด้วย Visual Studio 2005 ได้ เราต้องติดตั้ง Visual Studio 2005 extensions for .NET Framework 3.0 (WCF & WPF) ที่ http://www.microsoft.com/downloads/details.aspx?familyid=F54F5537-CC86-4BF5-AE44-F5A1E805680D&displaylang=en ก่อน หลังจากนั้นเราจึงสามารถสร้างโปรเจค WPF ได้

ที่มา www.aspnetthai.com

ก็คือในอนาคต เวป หรือแอพพลิเคชั่น ที่สร้างจาก asp ของเราก็จะสวยและทำง่ายขึ้น ด้วยเทคโนโลยีที่ชื่อว่า WPF คับ
 

vkado

New member
นี้คือเวปที่มีการใช้ความสามารถของ WPF โดยใช้ ZoomDeep ในการพัฒนา
http://memorabilia.hardrock.com/
สามารถคลิกเลือกตามศิลปินทางด้านซ้ายแล้วก็ซูมเข้าซูมออกได้ อย่างสวยงาม (เน็ตช้าต้องรอหน่อยนะ)
 

vkado

New member
ถูกต้องแล้วคับท่านนัท เพราะ การที่ติดตั้งโปรแกรมจำพวก WPFแล้ว
ทำไมถึงต้องลง silver light ก็เพราะเพื่อถ้าพูดกันตรงๆก็คือ flash player ดีๆนั้นเอง
ถ้าตามหลักการเป็นเทคโนโลยีแบบ Rich Internet application (RIA)
คือเป็น Web Application ที่มีความสามารถของ Desktop Application
แต่จะเก็บข้อมูลต่างๆ ในการทำงาน ไว้บน Application Server อาจจะเข้าใจยาก เพราะว่า
โปรแกรมจำพวก WPF นั้นเน้นความสวยงามอะคับ เลยต้องใช้ silver light ในการช่วย
แสดงความสวยงามนั้นออกมาอะคับ ไม่รู้ยิ่งพูดยิ่ง งง อะป่าว
ในโอกาสหน้าไว้จะเอาเรื่องเกี่ยวกับ silver light ให้ดูนะคับ
 
Top