Thursday, March 12, 2009

Basic for beginner with ASP.NET

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

# รู้สึกว่าจะต้องหาความรู้พื้นฐานเกี่ยวกับการเขียนเว็บ asp.net ให้มากกว่านี้อ่ะ

# ดีจังไปเจอเว็บนี้ เนื้อหาตรงกับที่ต้องการรู้อยู่พอดี เลยเอาแปะไว้ที่นี้

# ขอบคุณเว็บ http://www.aspnetthai.com/ สำหรับเนื้อหาที่ดีมากๆ เลย ^^'

ส่วนประกอบของเว็บไซต์ใน ASP.NET

ส่วนประกอบของเว็บไซต์ใน ASP.NET 2.0 มีด้วยกัน 3 ส่วนใหญ่ๆ ดังนี้

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

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

IIS.gif

ภาพที่ 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.gif

HTML

*.html

หน้า HTML ที่สามารถบรรจุไคเอนสคริปต์ได้


สไตล์ ชีต

*.css

ใช้กำหนดสไตล์ของหน้า HTML

icon_csharp.gif

คลาส

*.cs

คลาสเปล่าที่ให้นำไปเขียนโค้ดต่อ

icon_global.gif

ไฟล์ Global Application

*.asax

ไฟล์สำหรับจัดการกับเหตุการณ์ (Event) ต่างๆ ของเว็บไซต์ ทำหน้าที่คล้ายกับไฟล์ global.asa ของคลาสสิค ASP

icon_webconfig.gif

ไฟล์คอนฟิกกูเรชั่น

*.config

ไฟล์สำหรับกำหนดค่าต่างๆ ในเว็บไซต์

icon_xml.gif

XML

*.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.gif

XSLT

*.xslt

ไฟล์ที่ใช้แปลงข้อมูล XML ให้เป็นรูปแบบต่างๆ

ไฟล์ชนิดใหม่ ที่เพิ่มเติมเข้ามาในเว็บไซต์ ASP .NET 2.0 มีดังนี้

ไอคอน

ชนิดไฟล์

นามสกุล

รายละเอียด

icon_database.gif

ฐานข้อมูล SQL

*.mdf

ฐานข้อมูล SQL เปล่า ที่ใช้กับ SQL Server

icon_generichandler.gif

Generic Handler

* .ashx

ไฟล์ที่ใช้จัดการกับร้องขอไฟล์ต่างๆ ภายในเว็บไซต์

icon_sitemap.gif

แผนผังเว็บไซต์

*.sitemap

ใช้เก็บแผนที่เว็บไซต์ซึ่งอยู่ในรูปของ XML

icon_microsoft_report.gif

รายงาน

*.rdlc

ใช้สร้างรายงาน โดยใช้เทคโนโลยีการสร้างรายงานของไมโครซอฟต์

icon_skin.gif

Skin

*.skin

ใช้กำหนดสีสัน (Theme) ภายในเว็บไซต์

icon_browser.gif

Browser

*.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.gif

Bin

บรรจุแอสเซมบลีที่ได้ถูกคอมไพล์ไว้แล้วเพื่อใช้กับเว็บไซต์

icon_app_browsers.gif

App_Browsers

เป็นไฟล์ XML ที่อนุญาตให้เราสามารถเขียนขึ้นมาได้เองเพื่อบอกถึงคุณสมบัติในด้านต่างๆ ทางฝั่งไคลเอนต์ของเบราเซอร์แต่ละชนิด เช่น ไคลเอนต์สคริปต์ การรองรับเฟรม การรองรับคุ๊กกี้ เราสามารถเขียนตรวจสอบเบราเซอร์ขณะติดต่อกับเว็บเซิร์ฟเวอร์ได้ว่าตรงกับ เบราเซอร์ตัวใดที่เรากำหนด เพื่อที่จะได้คืนผลลัพธ์ให้เหมาะสมให้กับไคลเอนต์

icon_app_code.gif

App_Code

บรรจุไฟล์คลาสต่างๆ ที่อยู่ในรูปของ Source Code (*.vb หรือ *.cs) โดยไฟล์คลาสที่ถูกเขียนขึ้น แล้วนำไปวางในโฟลเดอร์นี้ จะถูกคอมไพล์โดยอัตโนมัติ ดังนั้นจึงเหมาะสำหรับการเก็บคอมโพเนนต์ หรือไลบรารี่ต่างๆ ที่สามารถถูกเรียกใช้ได้จากเว็บฟอร์มทุกตัวในเว็บไซต์ หลังจากที่มีการคอมไพล์ไฟล์คลาสในโฟลเดอร์นี้แบบอัตโนมัติแล้ว จะได้แอสเซมบลีชุดหนึ่ง ซึ่งจะถูกเก็บไว้ในโฟลเดอร์ชั่วคราว ที่ไม่ได้เก็บในโฟลเดอร์ Bin

icon_app_data.gif

App_Data

บรรจุไฟล์ข้อมูลต่าง รวมทั้งไฟล์ฐานข้อมูล SQL (*.mdf) หรือไฟล์ข้อมูล XML แต่เราก็ไม่จำเป็นเสมอไปที่จะต้องเก็บไฟล์ข้อมูลไว้ในที่นี้ เป็นเพียงแค่ข้อแนะนำเท่านั้น

icon_app_global_resource.gif

App_GlobalResources

บรรจุไฟล์รีซอร์สสำหรับ .NET ซึ่งสามารถถูกดึงข้อมูลไปใช้จากทุกเว็บฟอร์มต่างๆ ภายในเว็บไซต์

icon_app_local_resource.gif

App_LocalResources

คล้ายกับโฟลเดอร์ App_GlobalResources แต่จะสามารถถูกดึงข้อมูลไปใช้กับเฉพาะเว็บฟอร์มเท่านั้น

icon_app_theme.gif

App_Themes

บรรจุ Theme ที่ใช้กับเว็บไซต์

icon_theme.gif

Theme

บรรจุรูปภาพ และสีสันที่ใช้กับเว็บไซต์

icon_web_references.gif

App_WebReferences

บรรจุการอ้างอิงไปถึงเว็บเซอร์วิสอื่นๆ ที่สามารถถูกเรียกใช้ได้ภายในเว็บไซต์ ซึ่งภายในจะบรรจุข้อมูล WSDL และ Discovery ของเว็บเซอร์วิส


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

No comments:

Post a Comment

Popular Posts