อ่าน 5 นาที
ภาษา Markup แอปพลิเคชันที่ขยายได้
ภาษามาร์กอัปแอปพลิเคชันที่ขยายได้ ( XAML / ˈ z æ m əl /) ⓘ ) เป็น XML ประกาศ ที่พัฒนาโดย Microsoft สำหรับการเริ่มต้นค่าและวัตถุที่มีโครงสร้าง มีให้ใช้งานภายใต้ สัญญา Open...
ภาษา Markup แอปพลิเคชันที่ขยายได้
| ภาษามาร์กอัปแอปพลิเคชันที่ขยายได้ (XAML) | |
|---|---|
| นามสกุลไฟล์ | .xaml |
| สื่อประเภทอินเทอร์เน็ต | แอปพลิเคชัน/XAML+XML |
| พัฒนาโดย | ไมโครซอฟต์ |
| การเผยแพร่ครั้งแรก | พฤศจิกายน พ.ศ. 2549 [ 1 ] |
| รุ่นล่าสุด | |
| ประเภทของรูปแบบ | ภาษามาร์กอัปส่วนติดต่อผู้ใช้ |
| ขยายจาก | อีเอ็มแอลอี |
ภาษามาร์กอัปแอปพลิเคชันที่ขยายได้ ( XAML / ˈ z æ m əl /)ⓘ ) เป็นXMLประกาศ ที่พัฒนาโดยMicrosoftสำหรับการเริ่มต้นค่าและวัตถุที่มีโครงสร้าง มีให้ใช้งานภายใต้สัญญา Open Specificationของ Microsoft [ 3 ]
XAML ถูกนำไปใช้อย่างกว้างขวางในWindows Presentation Foundation (WPF), Silverlight , Workflow Foundation (WF), Windows UI Library (WinUI), Universal Windows Platform (UWP) และ . NET Multi-platform App UI (.NET MAUI) ใน WPF และ UWP นั้น XAML เป็นภาษามาร์กอัปส่วนติดต่อผู้ใช้เพื่อกำหนดองค์ประกอบ UI การผูกข้อมูล และเหตุการณ์ต่างๆ ในขณะที่ใน WF นั้น XAML ใช้สำหรับกำหนด เวิร์กโฟลว์
องค์ประกอบ XAML จะแมปโดยตรงกับ อินสแตนซ์ของอ็อบเจ็กต์ Common Language Runtime (CLR) ในขณะที่แอตทริบิวต์ XAML จะแมปกับคุณสมบัติและเหตุการณ์ CLR บนอ็อบเจ็กต์เหล่านั้น
สิ่งใดก็ตามที่สร้างหรือใช้งานใน XAML สามารถแสดงได้โดยใช้ภาษา .NET แบบดั้งเดิม เช่นC#หรือVisual Basic .NETอย่างไรก็ตาม แง่มุมสำคัญของเทคโนโลยีนี้คือความซับซ้อนที่ลดลงซึ่งจำเป็นสำหรับเครื่องมือในการประมวลผล XAML เนื่องจากมีพื้นฐานมาจาก XML [ 4 ]
เทคโนโลยี
XAML เดิมทีหมายถึง Extensible Avalon Markup Language โดยAvalonเป็นชื่อรหัสของWindows Presentation Foundation (WPF) [ 5 ]อย่างไรก็ตาม ก่อนสิ้นสุดการพัฒนา .NET Framework 3.0 ไมโครซอฟต์ได้นำ XAML มาใช้สำหรับWorkflow Foundation (WF) [ 5 ]
ใน WPF นั้น XAML อธิบายถึงอินเทอร์เฟซผู้ใช้ แบบภาพ WPF อนุญาตให้กำหนดวัตถุทั้งแบบ 2 มิติและ 3 มิติ การหมุน แอนิเมชัน และเอฟเฟกต์และคุณสมบัติอื่นๆ อีกมากมาย ไฟล์ XAML สามารถคอมไพล์เป็น ไฟล์ Binary Application Markup Language (BAML) ได้[ 5 ] [ 6 ]ซึ่งอาจถูกแทรกเป็นทรัพยากรลงในแอสเซมบลีของ .NET Framework ในขณะรันไทม์ เอ็นจิ้นเฟรมเวิร์กจะแยกไฟล์ BAML ออกจากทรัพยากรแอสเซมบลี วิเคราะห์ และสร้างโครงสร้างภาพหรือเวิร์กโฟลว์ WPF ที่สอดคล้องกัน
ในบริบทของเวิร์กโฟลว์ XAML อธิบายตรรกะเชิงประกาศที่อาจใช้เวลานาน เช่น ตรรกะที่สร้างโดยเครื่องมือสร้างแบบจำลองกระบวนการและระบบกฎ รูปแบบการเรียงลำดับสำหรับเวิร์กโฟลว์ก่อนหน้านี้เรียกว่า XOML เพื่อแยกความแตกต่างจากการใช้ XAML ในการมาร์กอัป UI แต่ปัจจุบันไม่มีการแยกความแตกต่างอีกต่อไป อย่างไรก็ตาม นามสกุลไฟล์สำหรับไฟล์ที่มีการมาร์กอัปเวิร์กโฟลว์ยังคงเป็น ".xoml" [ 7 ]
XAML ใช้รูปแบบเฉพาะในการกำหนดลักษณะและรูป แบบ ที่เรียกว่าเทมเพลตซึ่งแตกต่างจาก ไวยากรณ์ Cascading Style Sheetและมีความใกล้เคียงกับXBLมากกว่า[ 8 ]
ในการสร้างไฟล์ XAML สามารถใช้Microsoft Expression Blend , Microsoft Visual Studio , โปรแกรมออกแบบภาพ WF ที่สามารถโฮสต์ได้ หรือ XAMLPad [ 9 ]
ตัวอย่าง
ตัวอย่าง Windows Presentation Foundation นี้แสดงข้อความ "Hello, world!" ในคอนเทนเนอร์ XAML ระดับบนสุดที่ชื่อว่า Canvas
<Canvas xmlns= "http://schemas.microsoft.com/client/2010" xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml" > <TextBlock>สวัสดีโลก! </TextBlock> </Canvas>xmlns="http://schemas.microsoft.com/..."อาจต้องเปลี่ยนสคีมา ( ส่วนนั้น) เพื่อให้ใช้งานได้กับคอมพิวเตอร์บางเครื่อง การใช้สคีมาที่ Microsoft แนะนำ ตัวอย่างนี้ยังสามารถเป็น [ 10 ] ได้อีกด้วย
<Canvas xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" > <TextBlock>สวัสดีโลก! </TextBlock> </Canvas>ส่วนสำคัญของการใช้ XAML ให้เกิดประโยชน์สูงสุดคือการใช้การผูกข้อมูลอย่างเหมาะสม รวมถึงการสร้างองค์ประกอบผู้ใช้แบบกำหนดเองตามที่ต้องการ การผูกข้อมูลสามารถทำได้ดังนี้:
<TextBox x:Name= "txtInput" /> <TextBlock Text= "{Binding ElementName=txtInput,Path=Text}" />ความแตกต่างระหว่าง XAML เวอร์ชันต่างๆ
ไมโครซอฟต์มีวิธีการใช้งาน XAML หลักๆ อยู่ 3 วิธี ได้แก่:
- Windows Presentation Foundation (WPF) เปิดตัวครั้งแรกพร้อมกับ.NET Framework 3.0
- Silverlight 3 และ 4 ซึ่งเปิดให้ใช้งานครั้งแรกสำหรับInternet Explorer 6และปัจจุบันเลิกใช้งานแล้ว
- ไลบรารี UI ของ Windows (เดิมคือ UWP XAML และ WinRT XAML) เปิดตัวครั้งแรกพร้อมกับWindows 8และWindows Server 2012แต่ปัจจุบันมีให้ใช้งานเป็นส่วนหนึ่งของWindows App SDK แล้ว
เวอร์ชันเหล่านี้มีความแตกต่างกันในพฤติกรรมการแยกวิเคราะห์[ 11 ]นอกจากนี้ ตัวแยกวิเคราะห์ XAML ของ Silverlight 4 ยังไม่เข้ากันได้กับไฟล์ Silverlight 3 อย่างสมบูรณ์ ไฟล์ XAML ของ Silverlight 3 อาจถูกปฏิเสธหรือแยกวิเคราะห์แตกต่างกันโดยตัวแยกวิเคราะห์ Silverlight 4 [ 12 ]
นอกจากเวอร์ชันที่พัฒนาโดย Microsoft แล้ว ยังมีOpenSilver (เดิมชื่อ CSHTML5) ซึ่งเป็นเทคโนโลยีเว็บที่ทันสมัย อีกด้วย
แอปพลิเคชัน XAML ในเว็บเบราว์เซอร์
ในอดีต แอปพลิเคชันที่ใช้ XAML สามารถทำงานในเว็บเบราว์เซอร์ บางตัวได้ เช่นInternet ExplorerและFirefoxซึ่งสามารถทำได้ผ่าน ไฟล์ XBAPที่สร้างจาก แอปพลิเคชัน WPFหรือผ่าน ปลั๊กอินเบราว์เซอร์ Silverlightอย่างไรก็ตาม ปัจจุบันทั้งสองวิธีนี้ไม่ได้รับการสนับสนุนในเบราว์เซอร์หลักทั้งหมด เนื่องจากต้องพึ่งพาอินเทอร์เฟซปลั๊กอินเบราว์เซอร์NPAPI ที่เลิกใช้งานแล้ว [ 13 ] [ 14 ]
ข้อกังวลเกี่ยวกับการผูกมัด
ในปี 2550 คณะกรรมการยุโรปเพื่อระบบที่ทำงานร่วมกันได้ (ECIS) ซึ่งเป็นกลุ่มพันธมิตรของบริษัทซอฟต์แวร์ส่วนใหญ่ในอเมริกา กล่าวหาว่า Microsoft พยายามยึดครอง HTML และแทนที่ด้วย XAML ซึ่งทำให้เกิดการผูกขาดผู้ขาย[ 15 ] [ 16 ] Jeremy Reimer เขียนในArs Technicaอธิบายความคิดเห็นนี้ว่าเป็น "ข้อผิดพลาดที่ร้ายแรงที่สุด" และเสริมว่า XAML ไม่น่าจะเข้ามาแทนที่ HTML ได้[ 16 ]
ดูเพิ่มเติม
ลิงก์ภายนอก
- เอกสารอ้างอิงภาษา XAML
- XAML สำหรับ UWP: ภาพรวม
- XAML สำหรับ WPF: ภาพรวม
- เนมสเปซ System.Windows.Markup
- เนมสเปซ System.XAML
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ภาษา Markup แอปพลิเคชันที่ขยายได้
ภาษามาร์กอัปแอปพลิเคชันที่ขยายได้ ( XAML / ˈ z æ m əl /) ⓘ ) เป็น XML ประกาศ ที่พัฒนาโดย Microsoft สำหรับการเริ่มต้นค่าและวัตถุที่มีโครงสร้าง มีให้ใช้งานภายใต้ สัญญา Open...
เทคโนโลยี
XAML เดิมทีหมายถึง Extensible Avalon Markup Language โดย Avalon เป็นชื่อรหัสของ Windows Presentation Foundation (WPF) [ 5 ] อย่างไรก็ตาม ก่อนสิ้นสุดการพัฒนา .NET Framework 3.0 ไมโครซอฟต์ได้นำ XAML มาใช้สำหรับ Workflow Foundation (WF) [ 5 ]
ตัวอย่าง
ตัวอย่าง Windows Presentation Foundation นี้แสดงข้อความ "Hello, world!" ในคอนเทนเนอร์ XAML ระดับบนสุดที่ชื่อว่า Canvas
ความแตกต่างระหว่าง XAML เวอร์ชันต่างๆ
ไมโครซอฟต์มีวิธีการใช้งาน XAML หลักๆ อยู่ 3 วิธี ได้แก่: