1. พื้นฐาน .NET Framework 4

Download Report

Transcript 1. พื้นฐาน .NET Framework 4

Visual C# 2010 Express
1. พืน้ ฐาน .NET Framework 4
กรอบงานใหม่ เพือ่ การใช้งานทีง่ า่ ยขึน้ และได้งานทีม่ ากขึน้
C# Programming with Visual C# 2010 Express
1
เป้าหมายการเรียนรู้









ส่วนประกอบของดอตเน็ตเฟรมเวิร์ค 4.0
พัฒนาการของดอตเน็ตเฟรมเวิร์ค
การสร้างแอสแซมบลี
กลไกการทางานของ Common Language Runtime
เครื่องมือต่างๆ ของดอตเน็ตเฟรมเวิร์ค
การใช้ C# ในดอตเน็ตเฟรมเวิร์ค
แนะนาการดาวน์โหลด Visual C# 2010 Express
รุ่นต่างๆ ของ Visual Studio
สภาพแวดล้อมที่ดก
ี ว่าเดิมใน Visual C# 2010 Express
C# Programming with Visual C# 2010 Express
2
Write Any (Language) Run One (OS)




แนวคิดการใช้เฟรมเวิรค
์ เดียว ที่เขียนด้วยภาษาอะไรก็ได้ที่
สนับสนุน .NET
ในขณะปัจจุบัน .NET เป็นเฟรมเวิร์คที่ทางานบน
ระบบปฏิบัติการวินโดว์ นี้จึงหมายถึงเขียนด้วยภาษาอะไร
แต่ทางานบนระบบปฏิบัติการวินโดว์เป็นหลัก
ภาษาปัจจุบัน ที่สนับสนุน .NET มีหลายตัวเช่น C#, VB,
C++, Pascal รวมทั้งใช้ สภาพแวดล้อมเดียวกับ Visual
Studio เดียวกันด้วย
แอปพลิเคชั่นระบบหลายตัวทีท
่ างาน โดยใช้ .NET
อย่างเช่น Microsoft SQL Server, Microsoft BizTalk
Server, Microsoft Exchange Server, Microsoft
SharePoint Server , ฯลฯ
C# Programming with Visual C# 2010 Express
3
โครงสร้าง .NET Framework 4.0
.NET Framework 4.0
Development Framework
User Interface
ASP.NET
WPF
WinForms
Services
Data Service
WCF
WF
Data Access
ADO.NET
EF
LINQ
Class Library
Common Language Runtime (CLR)
C# Programming with Visual C# 2010 Express
4
พัฒนาการของ .NET Framework





NET 1.0 มาพร้อมกับ Visual Studio .NET 2002 และ VS
.NET 2003 ได้ปรับปรุงเป็น .NET 1.1
เริ่มต้นแห่งการใช้ ADO.NET, ASP.NET
NET 2.0 มาพร้อมกับ Visual Studio .NET 2005
ปรับปรุง ADO.NET, ASP.NET, เพิ่ม Web Services
Enhancement 3.0 (WSE)
NET 3.0 เพิ่ม WCF, WPF, WF
NET 3.5 มาพร้อมกับ Visual Studio .NET 2008
เพิ่ม Entity Framework, LINQ, ASP.NET AJAX, MVC
NET 4.0 มาพร้อมกับ Visual Studio .NET 2010
สนับสนุนการทางานแบบ 64 บิท, Cloud Compting
C# Programming with Visual C# 2010 Express
5
การสร้าง แอสแซมบลี



แอสแซมบลี คือไฟล์ที่ผ่านการคอมไพล์ ได้ผลเป็น MSLI ที่
CLR นาไปใช้งานต่อไปได้ เช่น ไฟล์ .exe, .dll
การสร้างจะได้ผลของเลขที่รน
ุ่ ที่สร้าง ซึ่งจาเป็นสาหรับดอท
เน็ต ที่เรียกใช้งาน แอสแซมบลีแม้มีชื่อไฟล์ด้วยแต่ต่างรุน
่
โดยเฉพาะเมื่ออยู่ใน Global Assembly Cache ซึ่งเป็น
เหมือนที่เก็บส่วนกลาง
MyApp.dll / MyApp.exe
เลขที่รุ่นของแอสแซมบลี




Class A
เลขหลัก (Major version number)
เลขรอง Minor version number)
เลขสร้าง (Build number)
เลขสร้างใหม่ (Revision number)
Class B
C# Programming with Visual C# 2010 Express
Resource
v 1.1.2.2
6
กลไกการทางานของ CLR
ไฟล์ที่ที่ผ่านการคอมไพล์แล้ว หรือที่เรียกว่า แอส
แซมบลี จะถูก CLR (Common Language Runtime) แปลง
อีกครังเพื่อใช้งานจริง มีลาดับการทางานคือ
1.
2.
3.
4.
5.
Class Loader
MSIL
Code Manager
Garbage Collector
Exception Manager
C# Programming with Visual C# 2010 Express
7
ส่วนประกอบของ CLR
Base Class Library Support
Thread Support
COM Marshaler
Thread Support
Exception Manager
MSIL to Native
Compilers
Code
Manager
Garbage
Collector
Class Loader
C# Programming with Visual C# 2010 Express
8
เครื่องมือของ .NET Framework
เครืองมือ
การใช้งาน
Global Assembly
Cache (Gacutil.exe)
เป็นปรับเปลี่ยนแอสแซมบลีใน Global
Assemble Cache (GAC) ที่เป็นที่อยู่กลางที่
หลายโปรแกรมใช้งานร่วมกัน
อ่านเท็กไฟล์ทม
ี่ ีข้อความเกี่ยวกับการอนุญาต
ใช้งานโปรแกรม และสร้าง ไฟล์การอนุญาต
License Compiler
(Lc.exe)
Native Image
Generator (Ngen.exe)
เป็นการสร้างแอสแซมบลีให้ทางานได้โดยไม่
ต้องทาคอมไพล์แบบ Just In Time( JIT) เพื่อ
เพิ่มประสิทธิภาพในการทางานได้รวดขึ้น
MSIL Assembler
(ilasm.exe)
เป็นสร้างไฟล์ PE (Portable Execute) ที่
สามารถทางานได้ทันที จากจากไฟล์ MSIL
MSIL Disassembler
(ildasm.exe)
เป็นการถอโค้ดจากแอสแซมบลีเพื่ออ่าน
รายละเอียดคาสั่งในแอสแซมบลี สามารถ
dumได้ไฟล์ MSIL
C# Programming with Visual C# 2010 Express
9
ข้อดีของการใช้ .NET Framework





รองรับมาตรฐานทางเว็บ เช่น XHTML, XML, SOAP,
XSLT, AJAX, MVC
ลดการเรียนรู้การใช้งาน เมื่อเปลี่ยนไปภาษาอื่นๆ เช่นภาษา
C#, VB, C++
ง่านต่อการพัฒนาระบบ ภายใต้โครงสร้างดอทเน็ต ที่อ้างอิง
เป็นระบบเดียวกันหมด
ใช้เครื่องมือที่ IDE ที่มีสภาพแวดล้อมเดียวกันหมด ที่มีอยู่
ใน VS Studio
มีการจัดการการจองหน่วยความจา ที่เป็นอัตโนมัติ โดยการ
แทนที่พื้นที่ไม่ได้ถูกใช้งาน
C# Programming with Visual C# 2010 Express
10
โดว์โหลด Visual C# 2010 Express

C# สามารถเลือกโหลดได้ ทั่งในรุ่น VS Studio 2010
Express หรือ เลือกเฉพาะ Visual C# 2010 Express
http://www.microsoft.com/express/download
C# Programming with Visual C# 2010 Express
11
อินเทลลิเซน (Intellisence)

อินเทลลิเซนส์ เป็น คุณสมบัติที่ช่วยนักเขียนโปรแกรม ช่วย
ค้นหาคาที่ใกล้เคียงกับที่ต้องการ จากคาบางส่วนที่เราพิมพ์
เช่น เราอยากจะพิมพ์คาว่า String เราพิมพ์เพียงแค่ St
C# Programming with Visual C# 2010 Express
12
การเลือกทั้งแถบ

คุณสมบัติใหม่นี้ เหมาะสาหรับการเลือกทั้งแถบ หรือทัง้
คอลัมน์ และแก้ใขให้เหมือนกันทั้งแถบ ทาได้ง่ายคือ กด
Shift + Alt พร้อมกับลากเม้าท์
C# Programming with Visual C# 2010 Express
13
โค้ดลัด (Code Snippet)

พอ เมื่อในบางครั้ง มีชุดของโครงร่างของโค้ดอยู่แล้ว เราไม่
จาเป็นต้องพิมพ์ทั้งหมด เราพิมพ์โค้ดลัดบางส่วนพอ เช่น
พิมพ์พร็อบเพอร์ตี้ ก็ใช้เพียงพิมพ์ prop หรือ ต้องการสร้าง
คอนสตรักเตอร์ หรือฟังชั่นสร้างอ๊อปเจ็คของตนเอง เราทา
เพียงพิมพ์คาว่า ctor แล้วกดแป้นพิมพ์เครื่องหมาย Tab 2
ครั้งติดกัน
C# Programming with Visual C# 2010 Express
14
สร้างโค้ดอัตโนมัติ

การสร้างโค้ดอัตโมมัติ ที่ยังไม่ได้นิยามมาก่อน การสร้าง
โค้ดอัตโนมัตินี้ ใช้ได้กับ คลาส อีนัม สตรัก อินเทอร์เฟส
ยกตัวอย่างเช่น ต้องการสร้างอ๊อปเจ็ค c1 จากคลาส
Customer แต่คลาสนี้ยังไม่ได้นิยามมาก่อน เรานิยาม
ตามหลังได้ โดยการสร้างโค้ดอัตโนมัติ ทาได้โดยการเม้าท์
ไปยัง อักษรแรกของชื่อคลาส ดังรูปต่อไปนี้ แล้วเลือกสร้าง
โค้ด
C# Programming with Visual C# 2010 Express
15
ไฮไลต์ที่เหมือนกัน

ในการพิมพ์โค้ดบางครั้งต้องการหา ฟังก์ชั่น หรืออะไรที่
เหมือนกัน แต่หาเจอยากกว่าจะอ่านทีละบรรทัด เราสามารถ
หาฟังก์ชั่นนั้นที่ใดก็ได้ที่หนึ่ง ทาโดยการคลิกชื่อนั้น เช่น
ต้องการหาฟังก์ชั่น (ต่อไปจะเรียกเมทธอด) TelMeMore
ให้คลิกที่ชื่อนี้ และกดแป้นคีย์ Ctrl + Shift เราจะพบไฮไลท์
C# Programming with Visual C# 2010 Express
16
ขยายโค้ด

การเขียนโค้ดบางครั้งต้องการเห็นโค้ดโดยรวมทั้งหมด แต่
บางครั้งต้องการเพ่งเฉพาะจุดที่สนใจ มีคีย์ลัดที่อานวยความ
สะดวกในความต้องการเหล่านี้ ทาได้โดยการกดแป้นพิมพ์
Ctrl + เลื่อนสกอร์เม้าท์ขึ้นลง เลื่อนขึ้นหมายถึงขยายจอ
เลื่อนลงหมายถึงย่อหน้าจอ
C# Programming with Visual C# 2010 Express
17
ทาถามทบทวน
1.
2.
3.
4.
5.
6.
7.
8.
9.
เป้าหมายหลักในของ .NET Framework 4
ส่วนประกอบหลักของ .NET Framework 4
ให้หาคาสั่งของ C# กับ ภาษา JAVA เพื่อเปรียบเทียบส่วนที่
คล้ายกัน
ทาไม โปรแกรมที่ได้สร้างแล้ว เราควรเลือกที่ทาเป็น แอสแซมบลี
มากกว่าที่จะให้เป็น ซอสโค้ด เพื่อการแจกจ่าย
หากเราต้องการให้ใช้สองโปรแกรมทางานใช้แอสแซมบลีเดียวกัน
ร่วมกัน ทั้งสองโปรแกรมทางานบนคอมพิวเตอร์เดียวกัน จะมีวิธีการ
อะไรที่เหมาะสม และใช้เครื่องอะไร
มีข้อดีอะไรบ้างที่เราเลือกพัฒนาโปรแกรมบนเทคโนโลยีดอนเน็ต
ผลิตภัฑณ์ต่างๆ ในรุ่น Express มีอะไรบ้าง
การขยาดหน้าจอใช้โค้ดลัดอะไร
เมื่อทาการทาไฮไลท์ ตัวแปรอ้างอิงได้แล้ว จะต้องการเลื่อนไปยังตัว
แปรอ้างอิงเดียวกัน ที่ตาแหน่งอื่นต้องทาอย่างไร
C# Programming with Visual C# 2010 Express
18
ปฏิบัติการที่ 1 สร้างโปรแกรมอย่างง่าย
การสร้าง Console Application แสดงข้อความ “Hello World.”
1.
2.
3.
เปิดโปรแกรม Visual C# Express จากเมนูเลือกสร้าง <File><New
Project>
ภายใน Installed Templates เลือก Console Application ใช้ชื่อตามค่า
ปริยาย “ConsoleApplication1” คลิก <OK>
ภายในเมทธอด Main พิมพ์ คาสั่งให้แสดงผลที่หน้าจอว่า “Hello World.”
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World.");
Console.ReadLine();
}
}
4.
5.
จากเมนู คลิก <Debug><Start Debugging> หรือ กด F5
จากเมนู คลิก <File><Save all> เพื่อบันทึกในที่ต้องการ
C# Programming with Visual C# 2010 Express
19
ปฏิบัติการที่ 2 อ่านข้อมูลในรูปแบบ MSIL
การใช้งานเครื่องมือ MSIL Disassembler (ildasm.exe)
1.
2.
3.
4.
5.
เปิดไฟล์ Ildasm.exe จากไดเร็คทอรี่ C:\Program
Files\Microsoft SDKs\Windows\v7.0A\bin (หรือใช้การค้นหา
โดยการคลิกคาสั่ง Search จากหน้าต่าง Windows Explorer)
ดับเบิ้ลคลิก ไฟล์ ildasm.exe
จากโปรแกรม ildasm.exe คลิกเลือก <File><Open> เปิดไฟล์ที่
คอมไฟล์จากข้อ 1 ซึ่งได้บันทึกไว้แล้ว (Save) ไปยังไดเร็กทอรี่
bin/degug/ConsoleApplication1.exe
ดับเบิ้ลคลิก MANIFEST และสังเกตเลขรุ่นของ Metadata,
mscorlib และ ConsoleApplication1
ดับเบิ้ลคลิก เมทธอด Main และสังเกตคาสั่งที่เขียนโดย C# เทียบ
กับโค้ดของ MSIL
C# Programming with Visual C# 2010 Express
20