วันอังคารที่ 19 มีนาคม พ.ศ. 2556

ความรู้พื้นฐาน ASP.NET ตอน ส่วนประกอบของเว็บแอพพลิเคชั่นใน ASP.NET


ส่วนประกอบของเว็บไซต์ใน ASP.NET
        ส่วนประกอบของเว็บไซต์ใน ASP.NET 2.0 มีด้วยกัน 3 ส่วนใหญ่ๆ ดังนี้
1. แอพพลิเคชั่นโดเมน ในเว็บไซต์แต่ละเว็บไซต์ ไม่ว่าจะเป็นเว็บไซต์ที่รันบน ASP .NET 1.x หรือ 2.0 จะประกอบด้วยไฟล์หลายๆ ไฟล์ ที่ทำงานภายใต้หน่วยความจำกลุ่มเดียวกัน และทำงานภายใต้ค่าคอนฟิก (Configuration Setting) เดียวกันที่เรียกว่า แอพพลิเคชั่นโดเมน
        ในแต่ละเว็บไซต์ จะมีแอพพลิเคชั่นโดเมนเป็นของตัวเอง แต่ละแอพพลิเคชั่นโดเมนจะไม่สามารถมองเห็นข้อมูลของแอพพลิเคชั่นโดเมนอื่นได้ เช่น ค่าของตัวแปรเซสชั่น หรือตัวแปรแอพพลิเคชั่น แม้ว่าจะมีหลายๆ แอพพลิเคชั่นโดเมนทำงานอยู่ในเซิร์ฟเวอร์ตัวเดียวกันก็ตาม ซึ่งตรงนี้ทำให้เว็บไซต์มีความปลอดภัยในตัวเอง แต่ถ้าเกิดมีเว็บไซต์บางตัวเกิดตายไป ก็จะไม่ส่งผลกระทบต่อเว็บไซต์อื่นที่อยู่คนละแอพพลิเคชั่นโดเมน ภาพที่ 4-1 แสดงภาพแอพพลิเคชั่นโดเมนบนเว็บเซิร์ฟเวอร์


เพิ่มเติม ในเว็บไซต์ 1 เว็บไซต์ เราสามารถนำไฟล์ที่สร้างจาก คลาสสิก ASP (*.asp หรือ global.asa) มาบรรจุไว้ในเว็บไซต์ของ ASP .NET เพื่อใช้งานได้ แต่การทำเช่นนี้ จะทำให้เว็บไซต์เราประกอบไปด้วยแอพพลิเคชั่นโดเมน 2 ตัว คือ แอพพลิเคชั่นโดเมนของ คลาสสิก ASP กับ แอพพลิเคชั่นโดเมนของ ASP .NET ซึ่งทั้งสองโดเมนนั้น ไม่สามารถที่จะแลกเปลี่ยนข้อมูลระหว่างกันได้ เนื่องจากอยู่คนละแอพพลิเคชั่นโดเมนนั่นเอง

2. ไฟล์ในเว็บไซต์ ASP .NET 2.0 เว็บไซต์ที่สร้างบน ASP .NET 2.0 สามารถรองรับไฟล์ที่มีอยู่ใน ASP .NET 1.x ได้ทั้งหมด นอกจากนี้ยังได้เพิ่มไฟล์ชนิดใหม่ ที่ทำให้การพัฒนาเว็บไซต์เป็นไปได้อย่างสะดวกมากขึ้นดังนี้
ไฟล์ชนิดเดิมที่มีในเว็บไซต์ ASP .NET 1.x มีดังนี้
ไอคอนชนิดไฟล์นามสกุลรายละเอียด
icon_webform.gifเว็บฟอร์ม*.aspxใช้ออกแบบหน้าเว็บเพจ และติดต่อกับ Code Behind ได้
icon_usercontrol.gifเว็บยูสเซอร์คอนโทรล*.ascxใช้สร้างคอนโทรลที่ใช้สำหรับเว็บฟอร์ม
เว็บเซอร์วิส*.asmxใช้สร้างเว็บเซอร์วิส
icon_html.gifHTML*.htmlหน้า HTML ที่สามารถบรรจุไคเอนสคริปต์ได้
สไตล์ ชีต*.cssใช้กำหนดสไตล์ของหน้า HTML
icon_csharp.gifคลาส*.csคลาสเปล่าที่ให้นำไปเขียนโค้ดต่อ
icon_global.gifไฟล์ Global Application*.asaxไฟล์สำหรับจัดการกับเหตุการณ์ (Event) ต่างๆ ของเว็บไซต์ ทำหน้าที่คล้ายกับไฟล์ global.asa ของคลาสสิค ASP
icon_webconfig.gifไฟล์คอนฟิกกูเรชั่น*.configไฟล์สำหรับกำหนดค่าต่างๆ ในเว็บไซต์
icon_xml.gifXML*.xmlไฟล์ XML เปล่า
icon_xmlschema.gifสกีม่าของ XML*.xsdไฟล์สกีม่า ที่ใช้สำหรับตรวจสอบความถูกต้องของ XML
icon_text.gifเท็กซ์*.txtไฟล์ข้อความเปล่า
icon_resource.gifรีซอร์ส*.resxไฟล์ที่ใช้เก็บข้อมูลของ .NET
icon_dataset.gifเดต้าเซ็ต*.xsdใช้สร้างสกีม่า จากคลาสเดต้าเซ็ต
icon_crystalreport.gifคริสตรัล รีพอร์ต*.rptไฟล์ที่ใช้สร้างรายงานสำหรับแอพพลิเคชั่นเว็บ และวินโดว์
icon_xslt.gifXSLT*.xsltไฟล์ที่ใช้แปลงข้อมูล XML ให้เป็นรูปแบบต่างๆ

ไฟล์ชนิดใหม่ ที่เพิ่มเติมเข้ามาในเว็บไซต์ ASP .NET 2.0 มีดังนี้
ไอคอนชนิดไฟล์นามสกุลรายละเอียด
icon_database.gifฐานข้อมูล SQL*.mdfฐานข้อมูล SQL เปล่า ที่ใช้กับ SQL Server
icon_generichandler.gifGeneric Handler* .ashxไฟล์ที่ใช้จัดการกับร้องขอไฟล์ต่างๆ ภายในเว็บไซต์
icon_sitemap.gifแผนผังเว็บไซต์*.sitemapใช้เก็บแผนที่เว็บไซต์ซึ่งอยู่ในรูปของ XML
icon_microsoft_report.gifรายงาน*.rdlcใช้สร้างรายงาน โดยใช้เทคโนโลยีการสร้างรายงานของไมโครซอฟต์
icon_skin.gifSkin*.skinใช้กำหนดสีสัน (Theme) ภายในเว็บไซต์
icon_browser.gifBrowser*.browserไฟล์ที่ใช้กำหนดความมายของเบราเซอร์
icon_class_diagram.gifคลาสไดอะแกรม*.cdคลาสไดอะแกรม



3. โฟลเดอร์ในเว็บไซต์ ASP .NET 2.0
ภายในเว็บไซต์ที่สร้างบน ASP .NET 2.0 เราสามารถเพิ่มไฟล์ต่างๆ เช่น Code Behind เว็บฟอร์ม หรือ User Control ได้เหมือนกับเว็บไซต์ที่สร้างบน ASP .NET 1.x แต่ส่วนที่เพิ่มเข้ามาคือโฟลเดอร์ 7 โฟลเดอร์ดังภาพ 4-2
4-2.gif
ภาพที่ 4-2 โฟลเดอร์ในเว็บไซต์ ASP .NET 2.0
    
เราสามารถเพิ่มโฟลเดอร์เหล่านี้ โดยคลิกขวาที่โปรเจค แล้วเลือก Add ASP .NET Folder จะมีโฟลเดอร์ 7 โฟลเดอร์มาให้เราเลือก ซึ่งโฟลเดอร์เหล่านี้จะมีหน้าที่ต่างๆ กัน ดังตารางด้านล่าง
ไอคอนชนิดโฟลเดอร์รายละเอียด
icon_bin.gifBinบรรจุแอสเซมบลีที่ได้ถูกคอมไพล์ไว้แล้วเพื่อใช้กับเว็บไซต์
icon_app_browsers.gifApp_Browsersเป็นไฟล์ XML ที่อนุญาตให้เราสามารถเขียนขึ้นมาได้เองเพื่อบอกถึงคุณสมบัติในด้านต่างๆ ทางฝั่งไคลเอนต์ของเบราเซอร์แต่ละชนิด เช่น ไคลเอนต์สคริปต์ การรองรับเฟรม การรองรับคุ๊กกี้ เราสามารถเขียนตรวจสอบเบราเซอร์ขณะติดต่อกับเว็บเซิร์ฟเวอร์ได้ว่าตรงกับ เบราเซอร์ตัวใดที่เรากำหนด เพื่อที่จะได้คืนผลลัพธ์ให้เหมาะสมให้กับไคลเอนต์
icon_app_code.gifApp_Codeบรรจุไฟล์คลาสต่างๆ ที่อยู่ในรูปของ Source Code (*.vb หรือ *.cs) โดยไฟล์คลาสที่ถูกเขียนขึ้น แล้วนำไปวางในโฟลเดอร์นี้ จะถูกคอมไพล์โดยอัตโนมัติ ดังนั้นจึงเหมาะสำหรับการเก็บคอมโพเนนต์ หรือไลบรารี่ต่างๆ ที่สามารถถูกเรียกใช้ได้จากเว็บฟอร์มทุกตัวในเว็บไซต์ หลังจากที่มีการคอมไพล์ไฟล์คลาสในโฟลเดอร์นี้แบบอัตโนมัติแล้ว จะได้แอสเซมบลีชุดหนึ่ง ซึ่งจะถูกเก็บไว้ในโฟลเดอร์ชั่วคราว ที่ไม่ได้เก็บในโฟลเดอร์ Bin
icon_app_data.gifApp_Dataบรรจุไฟล์ข้อมูลต่าง รวมทั้งไฟล์ฐานข้อมูล SQL (*.mdf) หรือไฟล์ข้อมูล XML แต่เราก็ไม่จำเป็นเสมอไปที่จะต้องเก็บไฟล์ข้อมูลไว้ในที่นี้ เป็นเพียงแค่ข้อแนะนำเท่านั้น
icon_app_global_resource.gifApp_GlobalResourcesบรรจุไฟล์รีซอร์สสำหรับ .NET ซึ่งสามารถถูกดึงข้อมูลไปใช้จากทุกเว็บฟอร์มต่างๆ ภายในเว็บไซต์
icon_app_local_resource.gifApp_LocalResourcesคล้ายกับโฟลเดอร์ App_GlobalResources แต่จะสามารถถูกดึงข้อมูลไปใช้กับเฉพาะเว็บฟอร์มเท่านั้น
icon_app_theme.gifApp_Themesบรรจุ Theme ที่ใช้กับเว็บไซต์
icon_theme.gifThemeบรรจุรูปภาพ และสีสันที่ใช้กับเว็บไซต์
icon_web_references.gifApp_WebReferencesบรรจุการอ้างอิงไปถึงเว็บเซอร์วิสอื่นๆ ที่สามารถถูกเรียกใช้ได้ภายในเว็บไซต์ ซึ่งภายในจะบรรจุข้อมูล WSDL และ Discovery ของเว็บเซอร์วิส

Tip: ไฟล์ที่เรานำไปวางไว้ใต้โฟลเดอร์ Bin และโฟลเดอร์ที่ขึ้นต้นด้วย App ยกเว้น App_Themes นี้ จะไม่สามารถถูกเรียกได้จากไคลเอนต์ เนื่องจากเป็นโฟลเดอร์ที่ถูกบล็อกไว้เพื่อความปลอดภัย มีเฉพาะเว็บไซต์ที่ทำงานบน ASP .NET 2.0 ด้วยเหตุนี้ เราสามารถใช้ความสามารถนี้ในการป้องกันไฟล์สำคัญๆ ได้ เช่น ถ้าเรามีไฟล์ข้อมูลที่เป็น XML ที่เก็บข้อมูลสำคัญ แล้วไม่อยากให้ไคลเอนต์สามารถเข้าถึงได้ เราสามารถก๊อปปี้ไปวางไว้ในโฟลเดอร์ App_Data ได้

ที่มา http://www.aspnetthai.com

0 ความคิดเห็น: