Visual C# .NET
Download
Report
Transcript Visual C# .NET
Visual Studio .NET
Visual C# .NET
.Net Framework คืออะไร
.Net Framework คือ โครงร่ างการพัฒนาโปรแกรมคอมพิวเตอร์ ที่ถกู ออกแบบมา
เพื่อให้อานวยความสะดวกในการพัฒนาโปรแกรมสมัยใหม่ ที่ใช้งานในระบบ
เครื่ อข่าย (Internet, Intranet, Mobile Devices, ฯลฯ) Bill Gates และ Steve Ballmer
ได้บรรยายสรุ ปวิสัยทัศน์ ที่เกี่ยวกับ .Net เอาไว้ 3 ข้อหลัก ๆ ได้แก่
1. การพัฒนาโปรแกรมในรู ปแบบของ Web Service จะเป็ นหัวใจหลักในการขับเคลื่อน
โปรแกรมต่าง ๆ ที่ใช้งานบน Internet. Web Service จะช่วยให้การติดต่อสื่ อสารระหว่าง
application บน Internet นั้นง่ายขึ้น และเป็ นระบบมากยิง่ ขึ้น
2. Web Service ขั้นพื้นฐานเช่น การตรวจสอบ user ที่ log in เข้าสู่ระบบ จะถูกพัฒนาให้เป็ น
มาตรฐาน และสามารถนาไปใช้ได้ทวั่ ไปบน Internet
3. PC (desktop, notebook) และ Mobile Device ที่ต่อเชื่อมกับ Internet ได้ เช่น PDA และ
โทรศัพท์มือถือ จะมีบทบาท และประโยชน์มากขึ้นไปอีก เมื่อสามารถติดต่อใช้งาน
โปรแกรมต่าง ๆ บน Internet ได้
.Net Framework นั้นประกอบไปด้ วยอะไรบ้ าง
ส่ วนประกอบหลัก ๆ ของ .Net Framework แบ่งเป็ นชั้น ๆ ได้ดงั diagram ต่อไปนี้
Common Language Runtime
1. Common Language Runtime (CLR) เป็ นส่ วนพื้นฐานที่
ติดต่อกับระบบปฏิบตั ิการ Windows ทาหน้าที่เป็ น run-time
environment ให้กบั โปรแกรมที่เขียนขึ้นสาหรับใช้บน .Net
CLR มีส่วนของ compiler ทั้งที่เป็ นแบบปกติ (compile ก่อนที่จะ
นาโปรแกรมไปใช้) และแบบ Just-In-Time (compile เมื่อจะใช้โปรแกรม
นั้น ๆ) มีส่วนของ Memory Management ที่เอาไว้สาหรับจัดสรร
หน่วยความจาของเครื่ องให้กบั โปรแกรม รวมไปถึงการทา Garbage
Collection (การเรี ยกคืนหน่วยความจาที่ไม่ได้ใช้อีกต่อไป) ส่ วนของ
Common Type Systems (CTS) ทาให้ภาษาต่าง ๆ ที่เขียนขึ้นบน
.Net สามารถทางานร่ วมกันได้ เพราะขนาด และรู ปแบบของข้อมูลที่เก็บไว้น้ นั
เป็ นรู ปแบบเดียวกัน
Base Classes
2. Base Classes เป็ น class library พื้นฐาน ที่โปรแกรมต่าง
ๆ ไม่วา่ จะเขียนด้วยภาษาใดบน .Net ก็สามารถใช้ร่วมกันได้ เช่น การ
ติดต่อระบบฐานข้อมูล (ADO.Net), การติดต่อกับ file system
ของ server (IO), ฯลฯ
Programming Languages
3. Programming Languages เป็ นเซ็ตของ ภาษาคอมพิวเตอร์ ที่ถกู
ออกแบบมาเพื่อการเขียนโปรแกรมบน .Net Framework ไมโครซอฟท์น้ นั
เน้นไปที่ 3-4 ภาษาหลัก ๆ ได้แก่
VB.Net ซึ่งเป็ นตัวที่พฒั นาต่อมาจาก VB,
C# ซึ่งเป็ นภาษาใหม่ที่มี syntax ใกล้เคียงกับ Java และ C++, Visual C++,
และ JScript.Net
ส่ วนภาษาอื่น ๆ นั้น มีบริ ษทั หรื อหน่วยงานอื่น ๆ เป็ นผูพ้ ฒั นาขึ้น ซึ่ งคาดว่าจะมี
เป็ นสิ บ ๆ ภาษา สาหรับ .Net Framework นั้นไม่วา่ จะเขียนโปรแกรมด้วย
ภาษาใดก็ตาม Compiler ใน CLR ก็จะ compile โปรแกรมนั้นให้อยูใ่ น
รู ปของ Intermediate Language (IL) ซึ่ งจะถูกนาไปแปลเป็ น
ภาษาเครื่ อง (Native Code) อีกทีเมื่อตอนที่นาไปใช้
ASP.Net
4. ASP.Net เป็ นภาษา script ที่พฒั นาต่อมาจาก ASP ตัวเก่า
เพื่อให้โปรแกรมเมอร์สามารถพัฒนา web application ให้ใช้
.Net ได้สะดวกขึ้น ASP.Net นี้ถึงแม้จะอ้างอิงมาจาก ASP ตัว
เก่า แต่กม็ ี syntax หลายส่ วนที่เปลี่ยนแปลงไป อย่างไรก็ดี ผูท้ ี่เคย
เขียน ASP มาก่อนไม่น่าจะมีปัญหาในการอ่าน และเขียน ASP มาก
นัก
หมายเหตุ
สาหรับผูท้ ี่คุน้ เคยกับ Java ของ Sun มาก่อน จะเห็นได้วา่ .Net
Framework กับ Sun's J2EE นั้นคล้ายกันมากทีเดียว สรุ ปโดยคร่ าว ๆ ได้
ดังนี้
Common Language Runtime (CLR) = JVM (Java Virtual Machine)
Intermediate Language (IL) = Java Bytecode
.Net base classes = Java Class Library
.Net Programming Languages = Java Language
ASP.Net = Java Server Page (JSP)
หมายเหตุ
ข้อแตกต่างในด้าน Architecture หลัก ๆ ก็คือ IL ของ .Net นั้นต้อง run
บน Windows เท่านั้น (ไมโครซอฟท์บอกว่า run บน OS ไหนก็ได้ แต่
อย่างที่ทราบกันดี คงยากที่จะได้เห็นในอนาคตอันใกล้ หรื อไม่กค็ งไม่ดี
เท่ากับ run บน Windows) แต่ Java Bytecode นั้นสามารถ run บน OS
ไหนก็ได้ที่มี JVM. ส่ วนในด้าน performance นั้น ไมโครซอฟท์ ได้ทา
การเปรี ยบเทียบโดยพัฒนาโปรแกรม Pet Shop ด้วย .Net โปรแกรม Pet
Shop นี้เป็ น reference application ที่พฒั นาบน J2EE โดย
Sun ไมโครซอฟท์แสดงให้เห็นว่า .Net นั้นทาให้ code สั้นลง
หลายเท่าตัว ทาให้โปรแกรมทางานเร็ วขึ้นหลายเท่า เป็ นต้น ในส่ วนนี้ก็
คงต้องรอดูกนั ต่อไปว่า Sun จะพัฒนา Java อย่างไรเพื่อแก้เกมส์ในจุดนี้
.Net Framework มีดีตรงไหน
1. ทาให้พฒั นาโปรแกรมได้เร็ วขึ้น -- มีโปรแกรมพื้นฐานส่ วนมากไว้ให้ใช้
เรี ยบร้อยแล้ว (base classes) โปรแกรมที่ถกู พัฒนาขึ้นใหม่สามารถนาไป compile
เพื่อให้โปรแกรมอื่น ๆ ได้ใช้อีก (reusable)
2. โปรแกรม reliable ขึ้น -- เนื่องจากการเขียนโปรแกรมบางรู ปแบบ บน .Net นั้น
ไม่สามารถกระทาได้ดว้ ยภาษาที่มีให้บน .Net ยกตัวอย่างเช่น การใช้ Pointer ใน
ภาษา C ทาให้ลดโอกาสที่โปรแกรมจะทาอะไรผิดพลาดจนทาให้ระบบไม่
สามารถทางานต่อไปได้
3. ปลอดภัยมากขึ้น -- เพราะว่า .Net Framework ควบคุมโปรแกรมว่า อะไรทาได้
อะไรทาไม่ได้
4. การนาโปรแกรมที่พฒั นาขึ้นไปใช้บน server จริ งง่ายขึ้น -- .Net Framework
อนุญาตให้โปรแกรมที่พฒั นาขึ้นนั้นระบุขอ้ มูลต่าง ๆ ไว้กบั code เลย ทาให้ไม่ตอ้ ง
นาไป register เหมือนที่ component ต้องทา
คาศัพท์ อนื่ ๆ ที่น่าสนใจ
1. Web Forms เป็ นส่ วนที่ใช้สร้าง interface ต่าง ๆ บน web browser
ของผูเ้ ข้าชมเว็บไซต์ web form จะทาการตรวจสอบ browser ของผูใ้ ช้
และสร้าง HTML ที่ถูกต้องสาหรับ browser นั้น ๆ
2. Server Controls เป็ นส่ วนต่าง ๆ ที่ โปรแกรมเมอร์สามารถนามา
ประกอบกันเพื่อใช้งานบนเว็บไซต์ได้ server control นั้นมีหลาย
ประเภทได้แก่
คาศัพท์ อนื่ ๆ ที่น่าสนใจ
2.1 HTML Server Controls ได้แก่ HTML Tag ทัว่ ๆ ไป เช่น input, table,
ฯลฯ
2.2 Web Server Controls เป็ น control ชนิ ดใหม่ที่ .Net มีให้ใช้ เช่น
CheckBoxList, RadioBoxList, DataGrid, Calendar, ฯลฯ ข้อดีของ Server
Control ก็คือ มันสามารถเก็บค่าต่าง ๆ บน form ไว้ได้โดยอัตโนมัติ ซึ่ งทาให้
โปรแกรมเมอร์ ไม่ตอ้ งเสี ยเวลาสร้าง hidden field หรื อส่ งค่าผ่านทาง URL.
2.3 Validator Controls เป็ น control ชนิ ดใหม่อีกเช่นกัน มีไว้ใช้สาหรับการ
ตรวจสอบข้อมูลที่ผใู ้ ช้กรอกลงในฟอร์ ม ว่าถูกต้องหรื อไม่ก่อนที่จะถูกส่ งไป
ประมวลผลที่ server ยกตัวอย่างเช่น การตรวจสอบว่า e-mail address ที่ผใู้ ช้
กรอกมานั้น อยูใ่ นรู ปแบบที่ถกู ต้องหรื อไม่ ([email protected])
- Server Control มีส่วนอย่างมากในการทาให้เขียนโปรแกรมได้ง่าย และเร็ วขึ้น
คาศัพท์ อนื่ ๆ ที่น่าสนใจ
3. Compiled Code และ Code Behind -- Compiled code นั้นเทียบได้กบั
Component ใน ASP แบบเก่า ใน .Net Framework นั้น compiled code มีชื่อ
เรี ยกว่า Assembly (.dll file) ซึ่ งเราสามารถนาไปไว้ใน directory ที่ชื่อ bin .Net จะ
ตรวจเช็คโดยอัตโนมัติ โดยที่เราไม่ตอ้ งทาการ register assembly เหล่านั้น เหมือน
อย่างที่เคยทากับ component. Code behind คือการแยกส่ วนของเนื้อหา และส่วน
ของโปรแกรม ในหน้าเว็บออกจากกันเป็ นคนละไฟล์ ส่ วนนี้ทาให้การเขียน
โปรแกรม และแก้ไขโปรแกรมทาได้ง่ายมากขึ้นไปอีก ต่างจาก ASP ในแบบเก่า ที่
ทุกอย่างผสมปนเปกันไปในหน้าเดียวกัน สาหรับรู ปแบบใหม่น้ ี web page จะมี
นามสกุลเป็ น .aspx ส่ วน code behind จะมีนามสกุลเป็ น .aspx.cs (ถ้าใช้ C#) หรื อ
.aspx.vb (ถ้าใช้ VB.Net)
บทความจาก http://www.thaisharp.net
เริ่มต้ นกับ Visual C#
ความรู ้พ้นื ฐานเกี่ยวกับ C#
Namespaces
Standard Windows Forms Controls
Namespaces
Namespaces เป็ นการจัดหมวดหมู่ให้กบั คลาสต่าง ๆ อย่าง
เป็ นระบบ โดยคลาสที่มีวตั ถุประสงค์การใช้งานเหมือนกันจะถูก
รวบรวมไว้ในเนมสเปซเดียวกัน เช่น
เนมสเปซ System.Data
จะประกอบไปด้วยคลาสที่ใช้จดั การ
ข้อมูล
เนมสเปซ System.Windows.Forms ประกอบไปด้วย
คลาสที่ใช้จดั การกับ Windows Form เป็ นต้น
Accessing Namespaces
Most C# applications begin with a section of
using directives. This section lists the
namespaces that the application will be using
frequently, and saves the programmer from
specifying a fully qualified name every time a
method contained within is used.
For example, by including the line:
using System;
Accessing Namespaces
At the start of a program, the programmer can
use the code:
Console.WriteLine("Hello, World!");
Instead of:
System.Console.WriteLine("Hello, World!");
Namespace Aliases
The using Directive (C# Reference) [
http://msdn2.microsoft.com/enus/library/sf0df423.aspx ] can also be used to create an
alias for a namespace [
http://msdn2.microsoft.com/enus/library/z2kcy19k.aspx ] . For example, if you are
using a previously written namespace that contains
nested namespaces, you might want to declare an alias
to provide a shorthand way of referencing one in
particular, like this:
using Co = Company.Proj.Nested;
// define an alias to represent a namespace
Using Namespaces to control scope
เราสามารถกาหนดเนมสเปซเพื่อจัดหมวดหมู่ให้กบั คลาสที่เราสร้างขึ้นมาเองได้
เช่นเดียวกัน โดยใช้โครงสร้างดังนี้
namespace <ชื่อเนมสเปซ>
{
class <ชื่อคลาส 1>
{
}
class <ชื่อคลาส n>
{
}
}
Hello World - Your First Program
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
using System;
// A "Hello World!" program in C#
namespace HelloWorld
{
class Hello
{
static void Main()
{
System.Console.WriteLine("Hello World!");
}
}
}
The Main Method
It can return void: static void Main()
It can also return an int: static int Main()
With both of the return types, it can take
arguments: static void Main(string[] args)
Or static int Main(string[] args)
General Structure of a C# Program
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
// A skeleton of a C# program
using System;
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
15.
16.
17.
enum YourEnum
{
}
namespace YourNestedNamespace
{
struct YourStruct
{
}
}
18.
19.
20.
21.
22.
23.
class YourMainClass
{
static void Main(string[] args)
{
//Your program starts here...
}
}
24.
25.
11.
12.
13.
14.
interface IYourInterface
{
}
delegate int YourDelegate();
26.
27.
28.
29.
30.
31.
}