Tags:
Node Thumbnail

ก่อนที่ไมโครซอฟท์จะเปิดโครงการ .NET Core ที่ทำให้นำ .NET ไปรันบนลินุกซ์ได้นั้น ไมโครซอฟท์ได้ก่อตั้ง .NET Foundation มาตั้งแต่ปี 2014 เพื่อดูแลโค้ด .NET จำนวนมากที่ปล่อยออกมา วันนี้ไมโครซอฟท์ก็ประกาศเปิดรับสมาชิกทั่วไป และเปิดให้คนภายนอกเป็นกรรมการมูลนิธิได้ง่ายขึ้น

Tags:
Node Thumbnail

ไมโครซอฟท์เปิดตัว .NET Core 3 Preview 1 ให้คนทั่วไปดาวน์โหลดความเปลี่ยนแปลงสำคัญคือมีไลบรารีเดสก์ทอปแล้ว หลังจาก .NET Core 2 ตัดส่วนนี้ออกไป

ตัว .NET Core เป็นโอเพนซอร์สในเวอร์ชั่นนี้ก็ยังเป็นเช่นเดิม โดยไมโครซอฟท์เปิดซอร์ส WPF, Windows Form, และ WinUI ออกมาพร้อมกัน โดยเฉพาะตัว WPF และ Windows Form นั้นอยู่ภายใต้ .NET Foundation และมีผู้ทั้งกูเกิล, เรดแฮต, ซัมซุง, Unity เข้ามาสนับสนุน

ความเปลี่ยนแปลงในตัวไลบรารีหลักมีอีกหลายอย่าง เช่น การรองรับ IoT ด้วยการรองรับพอร์ต UART บนลินุกซ์, รองรับ GPIO, PWM, SPI, และ I2C ส่วนในแง่ความปลอดภัยรองรับ TLS 1.3

Tags:
Node Thumbnail

โลกของ .NET ตอนนี้แยกเป็น .NET Standard (ตัวสเปก) กับ implementation อีกสามสายคือ .NET Core (โอเพนซอร์ส), .NET Framework (ไม่โอเพนซอร์ส), Xamarin (สำหรับเขียนแอพมือถือ)

ล่าสุดไมโครซอฟท์ประกาศออก .NET Standard เวอร์ชัน 2.1 ที่จะกลายเป็นเป้าหมายให้ .NET เวอร์ชันต่างๆ พัฒนาฟีเจอร์ตามในระยะถัดไป

สิ่งใหม่ใน .NET Standard 2.1 มีทั้งการเพิ่ม API เก่าจาก .NET Framework ของเดิม (มีอยู่แล้วแค่ปรับให้เป็นมาตรฐานกลาง) และเพิ่ม API ใหม่ โดยฟีเจอร์ใหม่ที่น่าสนใจคือการรองรับตัวแปรแบบ Span<T> เป็นตัวแปรลักษณะเดียวกับอาร์เรย์ ที่จะช่วยปรับปรุงเรื่องประสิทธิภาพของ .NET ในภาพรวม

Tags:
Node Thumbnail

ทิศทางของไมโครซอฟท์เรื่อง .NET ชัดเจนว่าต้องการย้ายจาก .NET Framework ไปสู่ .NET Core แต่การเปลี่ยนผ่านก็ยังไม่ง่ายนัก เพราะ .NET Core ยังขาดฟีเจอร์หลายอย่างที่เคยมีใน .NET Framework (เช่น การซัพพอร์ต WPF/WinForms ที่จะมาใน .NET Core 3.0)

อย่างไรก็ตาม สถานะของ .NET Core 2.x ในปัจจุบัน ถือว่าพร้อมแล้วสำหรับงานฝั่งเซิร์ฟเวอร์ ทำให้ทีมงาน Bing.com เวอร์ชันเว็บ ที่สร้างขึ้นตั้งแต่สมัย .NET Framework ตัดสินใจย้ายงานมารันบน .NET Core 2.1 ได้สำเร็จด้วยดีในเดือนมิถุยายนที่ผ่านมา

Tags:
Node Thumbnail

ก่อนหน้านี้ ไมโครซอฟท์ประกาศฟีเจอร์สำคัญของ .NET Core 3.0 คือรองรับ Windows Forms และ Windows Presentation Framework (WPF) ช่วยให้แอพเดสก์ท็อปที่เขียนด้วย .NET Framework สามารถนำมารันบน .NET Core ได้ (โดยปรับแก้เพียงเล็กน้อย)

เพื่อให้การเปลี่ยนผ่านครั้งนี้ราบรื่น ไมโครซอฟท์จึงออก Portability Analyzer เครื่องมือช่วยวิเคราะห์แอพเก่าที่เป็น WinForms/WPF ว่าทำงานบน NET Core 3.0 ได้ดีแค่ไหน และมีการเรียกใช้ API ตัวใดบ้างที่ .NET Core 3.0 ยังไม่รองรับ

Portability Analyzer ทำงานได้ทั้งในโหมด GUI และคอมมานด์ไลน์ หลังวิเคราะห์แล้วจะสร้างรายงานออกมาเป็นไฟล์ Excel ให้นักพัฒนาตรวจสอบได้ว่า ทำงานเข้ากันได้กับ .NET ตัวไหนบ้าง

Tags:
Node Thumbnail

ไมโครซอฟท์ประกาศหยุดซัพพอร์ต .NET Core 2.0 ที่เพิ่งออกเมื่อเดือนสิงหาคม 2017 โดยจะหมดอายุ (End of Life) ในวันที่ 1 กันยายน 2018

เหตุที่ .NET Core 2.0 หมดอายุเร็วว่าปกติ เป็นเพราะไมโครซอฟท์เพิ่งออก .NET Core 2.1 มาทดแทน และ .NET Core 2.1 เป็นรุ่น LTS ที่จะซัพพอร์ตยาวนาน 3 ปี ในขณะที่เวอร์ชัน 2.0 เป็นรุ่น Current ที่ซัพพอร์ตระยะสั้นเท่านั้น

Tags:
Node Thumbnail

ไมโครซอฟท์ออก .NET Core 2.1 เป็นรุ่นอัพเดตย่อยของ .NET Core 2.0 ที่ออกเมื่อเดือนสิงหาคม 2017

ความพิเศษของ .NET Core 2.1 คือมันจะเป็นรุ่นซัพพอร์ตระยะยาว (LTS) ของสาย 2.x มีระยะเวลาซัพพอร์ตนาน 3 ปี ไมโครซอฟท์อธิบายว่าแผนเดิมคือจะใช้ .NET Core 2.0 เป็นรุ่น LTS แต่สุดท้ายเปลี่ยนใจ เพราะอยากรอฟีเจอร์ใหม่ของ .NET Core 2.1 เรื่องจัดการเวอร์ชันของไฟล์ในโปรเจคต์ (platform dependencies) เพื่อให้รุ่น LTS เป็นรุ่นที่แก้ปัญหานี้เรียบร้อยแล้ว

.NET Core 2.1 เข้ากันได้กับ .NET Core 2.0 ซึ่งไมโครซอฟท์แนะนำให้คนที่ใช้ 2.0 อยู่แล้วอัพเกรดมาเป็น 2.1 ได้เลย

Tags:
Node Thumbnail

ในงาน Build 2018 เมื่อสัปดาห์ที่ผ่านมาไมโครซอฟท์ได้ประกาศแผนการออก .NET Core 3.0 และ .NET Framework 4.8 ซึ่งได้ให้ความสำคัญกับการปรับปรุงการพัฒนาแอพเดสก์ท็อปเดิมให้ทันสมัย โดยนอกเหนือจากการทำให้ .NET Core 3 รองรับการรันแอพเดสก์ท็อปแบบเก่าอย่าง WPF และ Windows Forms ได้ในข่าวก่อนหน้านี้

ไมโครซอฟท์ยังได้ประกาศเพิ่มของใหม่อีกอย่างให้กับการพัฒนาแอพเดสก์ท็อปในชื่อ UWP XAML Islands ซึ่งเป็นการปรับปรุงให้แอพพลิชั่นที่พัฒนาด้วยชั้น UI แบบเก่าทั้ง WPF, Windows Forms และ Win32 สามารถเรียกใช้ชุด UI Control ใหม่ๆ ที่ UWP มีให้ได้ ไม่ว่าจะเป็นตัวเล่นมีเดีย, แผนที่, Ink Canvas ไปจนถึง Edge WebView

Tags:
Node Thumbnail

ไมโครซอฟท์ประกาศแผนการออก .NET Core 3.0 ที่มาพร้อมฟีเจอร์สำคัญคือรองรับแอพแบบเดสก์ท็อป และการออก .NET Framework 4.8 ที่ทำงานคู่ขนานกันไป

สำหรับคนที่ไม่ได้ตาม .NET Core คือ .NET เวอร์ชันโอเพนซอร์สที่รองรับฟีเจอร์บางส่วนของ .NET Framework เดิม แต่สามารถทำงานได้ข้ามแพลตฟอร์ม (รองรับแมคและลินุกซ์ด้วย) ที่ผ่านมา .NET Core เน้นการใช้งานแอพพลิเคชันประเภท ASP.NET, คอมมานด์ไลน์ และแอพเดสก์ท็อปแบบ UWP เท่านั้น

ส่วนใน .NET Core 3 ไมโครซอฟท์ประกาศว่าจะรองรับแอพเดสก์ท็อปแบบเก่าอย่าง Windows Forms และ Windows Presentation Framework (WPF) ด้วย ทำให้ .NET Core จะสามารถรันแอพเดสก์ท็อป .NET รุ่นเก่าๆ ได้อย่างสมบูรณ์ (WPF และ WinForms ใช้ได้เฉพาะบนวินโดวส์)

Tags:
Node Thumbnail

ไมโครซอฟท์ออก .NET Framework 4.7.2 อัพเดตย่อยของ .NET Framework (ไม่พัฒนาฟีเจอร์ใหม่แล้ว ย้ายไปอยู่ใน .NET Core) โดยเวอร์ชัน 4.7.2 เป็นเวอร์ชันที่ถูกผนวกมาพร้อมกับ Windows 10 April 2018 Update ด้วย

ของใหม่ (บางส่วน) ในเวอร์ชันนี้ได้แก่

Tags:
Node Thumbnail

ไมโครซอฟท์ออก .NET Framework 4.7.1 ซึ่งเป็นการอัพเดตต่อจาก .NET Framework 4.7 ที่ออกในเดือนเมษายน

การอัพเดตครั้งนี้มาพร้อม Windows 10 Fall Creators Update โดยตัว .NET Runtime ที่มาพร้อมกับ Fall Creators Update ก็เป็นเวอร์ชัน 4.7.1 เช่นกัน (สำหรับคนที่ใช้ Windows รุ่นต่ำกว่านี้ก็สามารถดาวน์โหลดแยกเองได้)

การเปลี่ยนแปลงสำคัญคือ รองรับสเปก .NET Standard 2.0 ที่ออกในเดือนสิงหาคม ส่งผลให้ตอนนี้ .NET Framework (ไม่โอเพนซอร์ส) และ .NET Core (โอเพนซอร์ส) รองรับ API ตามมาตรฐาน .NET Standard เท่ากันแล้ว

Tags:
Node Thumbnail

ไมโครซอฟท์ปล่อยแพตช์ตามรอบปกติในเดือนกันยายน โดยเดือนนี้มีช่องโหว่ระดับวิกฤติทั้งหมด 25 รายการ และช่องโหว่ระดับสำคัญ 54 รายการ โดยช่องโหว่ CVE-2017-8759 ตัวอ่าน SOAP WSDL ที่รองรับข้อมูลผิดพลาดส่งผลให้ไฟล์ที่มุ่งร้ายรันโค้ดขึ้นมาได้

ทาง FireEye ระบุว่าพบไฟล์ "Проект.doc" (MD5: fe5c4d6bb78e170abf5cf3741868ea4c) อาศัยช่องโหว่นี้มีการโหลดมัลแวร์ FINSPY เข้าไปยังเครื่องของเหยื่อ

มัลแวร์ FINSPY เคยถูกตรวจพบมาแล้วก่อนหน้านี้โดยอาศัยช่องโหว่ CVE-2017-0199 แสดงให้เห็นว่ากลุ่มที่เผยแพร่มัลแวร์ตัวนี้มีศักยภาพสูงในการจัดหาช่องโหว่ใหม่ๆ ทำให้มีความเป็นไปได้ว่าเป็นหน่วยงานระดับรัฐที่มุ่งเป้าคอมพิวเตอร์ของผู้ใช้ภาษารัสเซีย

Tags:
Node Thumbnail

หลังทดสอบ .NET Core 2.0 มาได้สักระยะหนึ่ง ไมโครซอฟท์ก็ได้ฤกษ์ออก .NET Core 2.0 ตัวจริง

อธิบายแบบง่ายๆ .NET Core 2.0 สามารถเทียบเคียงได้เท่ากับ .NET Framework 6.0 เพียงแต่หลังจากไมโครซอฟท์เปิดซอร์ส .NET ก็เปลี่ยนวิธีเรียกชื่อเป็น .NET Core และเริ่มต้นเวอร์ชันใหม่ที่ 1.0 ในปี 2016 โดยมีสถานะเป็น implementation คู่ขนานไปกับ .NET Framework และ Xamarin (ตามภาพประกอบ)

Tags:
Node Thumbnail

ซัมซุงเริ่มเดินหน้าพัฒนาระบบปฏิบัติการ Tizen เวอร์ชัน 4.0 โดยออกรุ่นทดสอบแรก M1 (Milestone 1)

ฟีเจอร์เด่นของ Tizen 4.0 คือรองรับ .NET ของไมโครซอฟท์ นักพัฒนาสาย .NET สามารถใช้ภาษา C# และคอมไพล์แบบ CLI (Common Language Infrastructure) ได้ทันที (รองรับตามสเปก .NET Standard 2.0)

ซัมซุงยังจับมือกับไมโครซอฟท์ออก Visual Studio Tools for Tizen เพื่อให้พัฒนาแอพบน Tizen ด้วย Visual Studio ได้ง่าย ตัวปลั๊กอินจะออกเวอร์ชัน 1.0 ช่วงปลายปีนี้

ฟีเจอร์ใหม่อีกอย่างของ Tizen 4.0 คือจะเป็นระบบปฏิบัติการสำหรับอุปกรณ์ทุกประเภท เป็น unified build ไม่แยกรุ่นตามประเภทของอุปกรณ์ดังที่เคยทำมาใน Tizen เวอร์ชันก่อนๆ

Tags:
Node Thumbnail

ในโลกของไมโครซอฟท์มีภาษา XAML (อ่านว่า "ซาเมล") สำหรับบรรยาย UI แยกจากส่วนของโค้ดโปรแกรม ภาษา XAML ถูกสร้างขึ้นมาตั้งแต่สมัย .NET 3.0 และถูกใช้งานอย่างแพร่หลาย

ในยุคถัดมา XAML ถูกนำมาใช้กับการพัฒนาโปรแกรมบนแพลตฟอร์มอื่นที่ไม่ใช่ .NET เช่น Windows Phone (ปัจจุบันคือ UWP) หรือ Xamarin.Forms ของค่าย Xamarin (สมัยยังไม่ถูกไมโครซอฟท์ซื้อ) ปัญหาที่เกิดขึ้นคือแต่ละแพลตฟอร์มก็สร้างแท็ก XAML เฉพาะของตัวเองที่ใช้งานร่วมกันไม่ได้ สร้างความยุ่งยากให้กับนักพัฒนา

Tags:
Node Thumbnail

หลังจากไมโครซอฟท์ปรับทิศทางของ .NET เป็นโอเพนซอร์ส และออก .NET Core 1.0 เมื่อช่วงกลางปีที่แล้ว หนึ่งปีผ่านไปก็ได้เวลาของ .NET Core 2.0

.NET Core 2.0 ยังมีสถานะเป็นรุ่น Preview 1 โดยออกมาพร้อมกับ ASP.NET Core 2.0 Preview 1 และ Visual Studio 2017 Preview 15.3

Tags:
Node Thumbnail

ไมโครซอฟท์ประกาศรวมศูนย์เอกสารอ้างอิงสำหรับการพัฒนาโปรแกรมด้วย .NET บนเว็บไซต์ docs.microsoft.com เพื่ออำนวยความสะดวกให้นักพัฒนาสามารถค้นหาวิธีการใช้ .NET API ได้อย่างมีประสิทธิภาพมากขึ้น

โดยได้เริ่มนำเอกสารอ้างอิงของชุดเครื่องมือพัฒนา (SDK) ที่เข้ากันได้กับ .NET ทั้งหมด ตั้งแต่ .NET Framework, .NET Core, .NET Standard และ Xamarin ไปจนถึง Azure SDK มารวบรวมไว้บนเว็บเดียวกันและเปิดหน้า API Browser ให้สามารถใช้ค้นหา API ที่อยู่ภายใต้ SDK ข้างต้นได้อีกด้วย

ในส่วนของ API Browser ไมโครซอฟท์ก็พยายามทำให้นักพัฒนาใช้งานได้สะดวก ด้วยการเสนอผลการค้นหาในรูปแบบเดียวกับ IntelliSense กล่าวคือเมื่อผู้ใช้พิมพ์ชื่อของ เนมสเปซ, คลาส, เมธอด หรือ อินเตอร์เฟซ เพียงแค่บางส่วนหน้า API Browser ก็จะแสดงผลการค้นหาที่เกี่ยวข้องให้โดยอัตโนมัติ และยังสามารถกรอง API ตามเวอร์ชันของ SDK ที่ต้องการได้อีกด้วย

Tags:
Node Thumbnail

ถึงแม้แนวทางการพัฒนา .NET ของไมโครซอฟท์จะมุ่งไปยัง .NET Core ฝั่งโอเพนซอร์ส (ที่นับเวอร์ชันใหม่เป็น 1.0) และเราคงไม่ได้เห็น .NET Framework 5.0 อีกต่อไป แต่ไมโครซอฟท์ก็ยังตามอัพเดตความสามารถให้ .NET Framework 4.x กันต่อ

สัปดาห์ที่ผ่านมา ไมโครซอฟท์ออก .NET Framework 4.7 มาพร้อมกับ Windows 10 Creators Update ของใหม่ในรุ่นนี้ได้แก่

Tags:
Node Thumbnail

ไมโครซอฟท์ฉลองครบ 15 ปีของแพลตฟอร์ม .NET ที่เปิดตัวครั้งแรกเมื่อ 13 กุมภาพันธ์ 2002 โดยตอนนั้นถือเป็นส่วนหนึ่งของ Visual Studio.NET (เทียบเป็นเวอร์ชันคือ Visual Studio 7.0)

หลังจากนั้น .NET ก็เติบโต ทั้งในแง่การสร้างแอพพลิเคชันบนวินโดวส์ และเว็บแอพพลิเคชัน (ASP.NET) รวมถึงภาษาใหม่อย่าง C# อีกด้วย ปัจจุบัน .NET พัฒนาขึ้นอีกมาก สามารถสร้างได้ทั้งแอพบนคลาวด์ แอพมือถือ และเกม รวมถึงประกาศบางส่วนเป็นโอเพนซอร์ส ภายใต้โครงการ .NET Foundation

ที่มา - Microsoft

Tags:
Node Thumbnail

ไมโครซอฟท์อธิบายยุทธศาสตร์การพัฒนาภาษาโปรแกรม .NET ทั้งสามตัว ได้แก่ C#, Visual Basic และ F#

ที่ผ่านมา ไมโครซอฟท์ใช้นโยบายให้ความสำคัญกับ C# และ Visual Basic เท่ากัน มีฟีเจอร์ใหม่ทัดเทียมกัน แต่รอบนี้ ไมโครซอฟท์บอกว่า C# ถือเป็นภาษาโปรแกรมกระแสหลัก จับตลาดกว้างกว่า ในขณะที่ Visual Basic เน้นการใช้งานสำหรับภาคธุรกิจ การสร้างแอพพลิเคชันบนวินโดวส์ และเป็นภาษาฝึกหัดสำหรับคนเริ่มเขียนโปรแกรม ส่งผลให้ต่อจากนี้ไป C# จะถูกให้ความสำคัญมากเป็นอันดับหนึ่ง ในขณะที่ VB 15 จะได้ฟีเจอร์ใหม่บางอย่าง แต่ไม่ใช่ทั้งหมดเท่ากับ C# 7.0 ได้

ส่วน F# เป็นภาษาใหม่ที่ยังมีความสามารถหรือประสบการณ์ใช้งานไม่ทัดเทียม C# กับ VB แต่ก็มีจุดเด่นที่ชุมชนเข้มแข็ง ใช้งานได้หลากหลาย เป้าหมายของไมโครซอฟท์ใน F# 4.1 จะพัฒนาเครื่องมือสำหรับ F# ให้ดีขึ้น ทำงานร่วมกับ Visual Studio และ .NET Core/Standard ได้ดีขึ้น

Tags:
Node Thumbnail

Maoni Stephens นักพัฒนาของไมโครซอฟท์ ออกมากระตุ้นให้นักพัฒนาสาย .NET ย้ายมาใช้ .NET Framework 4.6.2 เพื่อชีวิตที่ดีขึ้น โดยเฉพาะฟีเจอร์ด้าน garbage collector

.NET 4.6.2 ถือเป็นเวอร์ชันล่าสุดของ .NET Framework ในตอนนี้ แต่มันออกมาตั้งแต่เดือนสิงหาคม 2016 และไมโครซอฟท์เพิ่งแนะนำให้นักพัฒนาอัพเกรด ของใหม่ที่สำคัญคือปรับปรุง garbage collector ให้มีประสิทธิภาพมากขึ้น ก่อนหน้านี้ .NET มีข้อกำหนดว่าถ้าวัตถุในหน่วยความจำมีสถานะเป็น pinned survived วัตถุนั้นและวัตถุข้างเคียงจะไม่ถูกกำจัดทิ้ง แต่นโยบายนี้เปลี่ยนใน .NET 4.6.2 ช่วยให้การจัดการหน่วยความจำดีขึ้น

ที่มา - Infoworld

Tags:
Node Thumbnail

ไมโครซอฟท์เปิดซอร์สของแพลตฟอร์ม .NET มาตั้งแต่สองปีที่แล้ว แต่การพอร์ตไปใช้งานบนแพลตฟอร์มใหม่ๆ ก็ยังทำได้ยาก ตอนนี้ทีมงาน .NET ก็ออกมาระบุว่ากำลังทดลองแนวทางใหม่คือการแปลงโค้ด .NET ให้เป็น C++

แนวทางนี้ทำให้กระบวนการคอมไพล์ได้ไฟล์ executatable ของระบบปฎิบัติการโดยตรง ไม่ใช่ไฟล์ที่ต้องรันบนรันไทม์ของ .NET อีกที แม้ว่าจะต้องใช้รันไทม์ในรูปแบบไลบรารีอยู่ก็ตาม

การทดลองนี้ยังอยู่ในขั้นต้น ปัญหาหลายอย่างยังไม่มีทางออกอย่างตกผลึก การแปลงโค้ดยังไม่สมบูรณ์ อย่างไรก็ดีหากการแปลงโค้ดทำได้สำเร็จ โค้ดที่ได้จะสามารถไปรันบนทุกแพลตฟอร์มที่คอมไพล์เลอร์ C++ ไปถึง

Tags:
Node Thumbnail

ทิศทางการพัฒนา .NET ของไมโครซอฟท์ในรอบปีที่ผ่านมาคือ โอเพนซอร์ส .NET บางส่วน แล้วพัฒนาให้ทำงานแบบข้ามแพลตฟอร์มได้ ภายใต้ชื่อว่า .NET Core (หรือพูดง่ายๆ คือมองว่า .NET Core ยังมีสถานะเป็นซับเซ็ตของ .NET Framework)

.NET Core 1.0 (เดิมทีจะเรียก 5.0) ยังมีความสามารถไม่สมบูรณ์เท่ากับ .NET Framework 4.6 ในปัจจุบัน ซึ่งไมโครซอฟท์ก็เผยแผนการพัฒนา .NET Core ในอนาคตไว้ดังนี้

Tags:
Node Thumbnail

เมื่อปลายปี 2015 ไมโครซอฟท์ประกาศความร่วมมือกับ Red Hat หลายอย่าง หนึ่งในนั้นคือการซัพพอร์ต .NET บนลินุกซ์

ตอนนี้โอกาสที่ว่ามาถึงแล้ว หลังจาก ไมโครซอฟท์ออก .NET Core 1.0 ที่ทำงานบนลินุกซ์ ฝั่งของ Red Hat ก็ประกาศรองรับ .NET Core บน Red Hat Enterprise Linux (RHEL) และ OpenShift ทันที ถือเป็นดิสโทรเชิงพาณิชย์รายเดียวที่ซัพพอร์ต .NET อย่างเป็นทางการ ลูกค้าสามารถใช้บริการซัพพอร์ตจาก Red Hat และไมโครซอฟท์ได้ด้วย

Pages