|
Tự Học
|
Bài 06ASP.NET và VB.NET
Ta đã biết ASP.NET nằm trong cấu trúc nền của .NET framework và dùng .NET programming language tỷ như VB.NET (một trong 25 ngôn ngữ lập trình .NET hiện nay) để phát triển trang Web, do đó ta cũng cần biết sơ lượt về .NET framework cùng ngôn ngữ lập trình VB.NET dùng cho các trang ASP.NET. Chi tiết phương pháp lập trình theo khuynh hướng đối tượng (Object Oriented Programming) và VB.NET, xin tham khảo các bài viết về OOP và Visual Basic.NET do thầy Lê Ðức Hồng soạn và trình bày. Trong bài 'ASP.NET và VB.NET', ta sẽ lần lượt tìm hiểu:
.NET FrameworkMột cách tổng quát, .NET Framework là kiểu mẫu lập trình cách mạng cho tất cả những gì liên quan đến nền Windows. Nhìn lại hơn 10 năm, Microsoft đã từng bước một cải tiến nền Windows (Windows platform) hết sức nghiêm túc, đạt nhiều thành công rực rỡ với những API (Application Programming Interface) cho mọi ứng dụng, với hàng loạt công cụ phát triển và lập trình (developer tools) hết sức thuận lợi cho các Kỹ Sư Tin Học cũng như cho những ai yêu thích các sản phẩm của Microsoft. Ngoài ra, ta còn chứng kiến sự xuất hiện của COM, rồi DCOM, COM+ với mục tiêu tái sử dụng các nguồn mã hay nhu liệu tương ứng. Thêm nữa, nào là ODBC (Open Database Connection), DAO, OLEDB tới ADO (Active Data Object) với rất nhiều phiên bản (versions) cho việc nối kết các cơ sở dữ liệu (Database) gồm đủ loại đủ cỡ. Về phương diện mạng năng động (dynamic web sites), ta có nhiều phiên bản ASP cổ điển hay về ngôn ngữ lập trình với C++, J++, Visual Basic cùng các ngôn ngữ lập trình scripting như VBScript, ... Nhưng ... Mặc dù, các công cụ cũng như các ngôn ngữ lập trình với nhiều phiên bản khác nhau như vừa nêu trên, yểm trợ những gì công nghệ thông tin đang đòi hỏi - chúng càng lúc càng trở nên phức tạp và rắc rối cho các Chuyên Gia hay Kỹ Sư Tin Học, không những không theo kịp đà tiến triển hiện nay mà còn không tạo được một nền tảng hùng mạnh cho việc phát triển hay đáp ứng sự thay đổi nhanh chóng cuả công nghệ thông tin cho kỹ nghệ, thương mại, đời sống trong tương lai. Chẳng hạn một Kỹ Sư Tin Học giàu kinh nghiệm muốn học về COM - 1 phương pháp hết sức hùng mạnh để gói ghém các nguồn mã cho việc tái sử dụng - cần tối thiểu 6 tháng hay cả năm để làm quen hay nắm vững. Còn nếu muốn học về DCOM hay COM+, ta phải biết COM trước. Ðó cũng là lý do tại sao nhiều Kỹ Sư Tin Học chán nãn vì quá nhiều vá víu hoặc nhiều thêm thắt cho các ứng dụng mà ngay từ thữa ... 'hồng hoang' đã phác thảo một cách nghèo nàn ảnh hưởng từ hoàn cảnh xã hội và công nghệ lúc bấy giờ. Microsoft biết điều đó nên xoá ... 'cờ làm lại từ đầu'. Việc đầu tư vào .NET Framework với mọi tài nguyên mà Microsoft (hay ... trên trái đất này) có được, cho thấy sự xuất hiện của .NET Framework không phải là chuyện tầm ... 'cở' đâu, ủa quên, ... 'tầm thường' đâu. .NET Framework phác thảo bắt đầu từ con số 0 với tham vọng bao trùm đủ mọi thứ và cũng không quên ... nâng đỡ 'bạn xưa' nên các nguồn mã ... 'cũ kỷ' của ta vẫn được yểm trợ. Không những thế mà Microsoft đã và còn lắng nghe mọi nguyện vọng của .. các Kỹ Sư Tin Học hay của ta trong việc kế hoạch và phác thảo cấu trúc nền .NET qua đó đem lại nhiều lợi ích thiết thực cho người lập trình hay phát triển và tạo vận hội mới phát triển nền Công Nghệ Tin Học. Việc tường trình về .NET Framework làm ta nhớ lại sự xuất hiện của Linux trước đây. Nhìn lại 10 năm vừa qua, Linus Torvalds (cha đẻ Linux) cũng đã quá chán nãn với sự giới hạn và khuyết điểm của Unix mà viết lại Operating System này từ con số 0 thay vì cố gắng sửa đổi hay vá víu. Việc làm lại từ đầy đó chỉ với mục đích là theo kịp các đòi hỏi, nếu không muốn nói là vạch hướng đi cho tương lai Tin Học. Nếu ta ví sự phổ thông và nổi tiếng của nền Windows với Microsoft (Bill Gates) như là phái Thiếu Lâm thì Linux sẽ là 'Thái Cực Quyền' của phái Võ Ðang với Trương Tam Phong (Linus Torvalds) và mặc dù chỉ chiếm 0.25% thị trường desktop trên thế giới (trích Next Handbooks - Operating in Linux by Paul Robinson and Dan Corkery - 2002) nhưng cũng đã góp phần làm cho Công Nghệ Thông Tin thêm phần đặc sắc và muôn màu muôn vẻ. Mỗi system đều có cái hay và dỡ khác nhau khó lòng so sánh tỷ như tuy Linux 'free OS' (và Open Source) ràng buộc bởi GPL (GNU Public Licence by Richard Stallman) nhưng gần đây lại chia thành nhiều phe nhóm - Nam Tông (United Linux) gồm có SuSe, Caldera, Connectiva and Turbo Linux, ... và Bắc Tông (Unbreakable Linux) với Red Hat, Oracle, ... nên đủ thứ phiên bản Linux khác nhau có thể làm ta ... 'ngất ngư' chẳng biết theo ai, còn Windows (Close Source) với .NET Framework rất hùng mạnh nhưng ... lại 'tốn tiền', nếu có nhiều ứng dụng 'free' tỷ như Web Matrix ... 'cho không biếu không' thì tốt cho cộng đồng .NET biết bao nhiêu. Tuy nhiên, ở đây không phải diễn đàn để ... 'Hoa Sơn Luận Kiếm' giữa Windows, Linux hoặc MAC OS nên ta gác lại để chỉ bàn về .NET Framework và các lợi ích của nó. Thật sự, mỗi nền đều có cái hay của nó và là những bông hoa đẹp, hiếm quý trong vườn Tin Học mà ta luôn luôn trân trọng - tất cả đều là sản phẩm trí óc tuyệt vời của con người, nếu bạn có khã năng và thời giờ thì ... học càng nhiều càng tốt. Lợi ích của .NET FrameworkỞ đây, ta không kể xiết hay đào sâu chi tiết lợi ích của .NET Framework mà chỉ tóm lược vài điểm chính yếu sau:
Phương pháp làm việc của .NET FrameworkÐiều kỳ thú nhất trong cấu trúc .NET Framework là các nguồn mã của VB.NET hay C# không biên dịch thành mã thi hành gốc (native executable code) mà lại qua trung gian một ngôn ngữ khác gọi là IL (Intermediate Language) trước khi chạy thật sự. Nguồn mã có thể biên dịch thành IL đó còn được gọi là managed code, điều này khiến cho các ngôn ngữ lập trình của .NET hoạt động (hay tác động) qua lại (hổ tương - interoperation) với nhau, cho phép ta vận dụng mọi đặc trưng của .NET mà không cần phải viết lại các nguồn mã dùng ngôn ngữ lập trình khác. Nguyên tắc của IL cũng tương tự như Java, nhưng khác ở chổ Java là cross-platform independence còn .NET là cross-language independence. Cũng cần phải nhắc ở đây, Microsoft vẫn mở rộng vòng tay cho việc phát triển .NET trên các nền (platform) khác trong tương lai. Sơ Lược về VB.NETVB.NET được dùng để tạo ra các trang Web đầy năng động với tất cả khả năng của ASP.NET (hay của .NET Framework). Ở đây, ta tìm hiểu tổng quát về cú pháp, cấu trúc và phương pháp lập trình với VB.NET có liên hệ ít nhiều đến các trang ASP.NET và hy vọng gặt hái được vài khái niệm cơ bản để việc lập trình xuông sẽ hơn. Phần này, ta sẽ sơ lược qua các vần đề sau:
Ðại khái về VB.NETVB.NET là một trong 25 ngôn ngữ lập trình của .NET được yểm trợ bởi .NET Framework và CLR. VB.NET khác hẳn VB6 và thật sự chuyển mình thành 1 ngôn ngữ lập trình OOL chính yếu không khác gì với mọi ngôn ngữ lập trình khác tỷ như C#, C++, J++, ... trong môi trường xây dựng đủ mọi ứng dụng cho nền Windows và quan trọng hơn cả là việc học VB.NET dễ dàng hơn nhiều (its learning curve is not very steep). Do đó, VB.NET được chọn là ngôn ngữ lập trình cho các trang ASP.NET của khóa tự học này. Nếu bạn thích, bạn có thể dùng C# hay C++ thay vì VB.NET cho mọi bài tập trong khóa, chuyện đổi qua đổi lại giữa các ngôn ngữ lập trình chỉ là chuyện ... nhỏ, vì sự khác biệt phần lớn là về cú pháp (syntax) chứ nguyên tắc và cấu trúc lập trình thì giống y chang. Nhớ là dù ta dùng bất cứ ngôn ngữ lập trình nào, khi biên dịch vẫn phải qua ngôn ngữ trung gian Intermediate Language (IL) và quản lý bởi CLR. Variables và ArraysVariablesVariables là từ tổng quát gọi là biến số dùng lưu trữ dữ kiện (data) trong bộ nhớ (memory) của máy vi tính. Ta phải tuyên bố (declare) biến số trước khi dùng với keyword Dim tỷ như declare myVariable với loại (Data Type) String:
Data Types chia ra làm 5 categories gồm 10 loại cơ bản gọi là primitive types:
ArraysArrays là 1 tập hợp các biến số được liên hệ riêng biệt qua chỉ số (index) của Arrays. Nhớ là Arrays dùng trong VB.NET bắt đầu với index bằng số 0 - nghĩa là món hàng (item) đầu tiên được lưu trữ ở index 0, từ đó, suy ra chỉ số (index) món hàng sau cùng sẽ là tổng số các món hàng trừ đi một. Mọi biến số trong Array phải cùng loại dữ kiện (same data type), không thể trộn lẫn nhiều loại khác nhau. Array được tuyên bố (declare) như thí dụ sau đây:
Operators (Ký hiệu Toán)Operators là các ký hiệu dùng để thi hành 1 công việc thuộc phạm vi Toán Học, tỷ như dấu = dùng để ấn định (assign) 1 giá trị chẳng hạn như: strSkills = "Thái Cực Quyền" Ðể dễ dàng trong việc vận dụng các dấu Toán Học này, say đây là bảng liệt kê:
Ðiều kiện (conditional), looping và branching logicTa sẽ tham khảo cú pháp 3 logic sau:
Conditional LogicConditional Logic cho phép ta chỉ định nguồn mã nào được thi hành tùy theo điều kiện đặt ra có phù hợp hay không. Có nhiều phương pháp (method) để quản lý conditional logic như sau:
If statementsTổng cộng 3 kiểu cú pháp như sau:
Như vậy, nếu điều kiện được thoả mản (condition = True), nguồn mã giữa If và End If sẽ được thi hành hoặc:
để thi hành nguồn mã khi condition = True hoặc False và
để thi hành nguồn mã khi condition 1 = True hoặc condition 2 = True hoặc khi cả hai condition 1 và condition 2 = False. Case statementsCase statement thường gọi là Select statement giống như trường hợp If với nhiều ElseIf nhưng Case chỉ kiểm tra một biến số và tùy theo giá trị của biến số mà đáp ứng sao cho thích hợp. Cú pháp như sau:
Looping LogicLooping logic cho phép ta tái thi hành (hay lập đi lập lại) 1 công việc nào đó cho tới khi thoả mản điều kiện đã định trước. Kiểu này gồm có 3 loại:
While LoopsRất tiện lợi trong trường hợp ta không biết trước phải lập đi lập lại công việc bao nhiêu lần. Như vậy, kiểu loop này cơ bản dựa trên biểu thức có điều kiện (conditional expressions) và loop tái thi hành cho đến khi điều kiện định trước trở thành False. Cú pháp của 1 While loop như sau:
Thí dụ ta muốn bố trí 1 máy đếm (counter) từ 1 đến 9 và hiển thị (display) kết quả bằng số ở browser:
Ta nhận thấy khi giá trị của intCounter bằng 9, loop sẽ hiển thị (display) số 9 và sau đó cộng 1 vào intCounter thành ra 10 sẽ khiến cho điều kiện intCounter < 10 sẽ trở thành False, mã sẽ nhảy ra (exit) khỏi loop (loop exit), do đó ta chỉ thấy browser hiển thị (display) các số từ 1 đến 9 mà thôi. Do LoopsDo loop cũng tương tự như while loop, chỉ khác ở chổ Do loop thi hành công việc trước rồi mới kiểm tra điều kiện xem có phù hợp không? Kiểu này có thể gọi là kiểu ... 'tiền trảm hậu tấu' khác với While loop là ... 'tiền tấu hậu trảm' (?). Cú pháp như sau:
Lần này có sự khác biệt so với While loop vì Do loop hiển thị (display) giá trị của intCounter trước, cộng thêm 1 rồi mới kiểm tra điều kiện. Ta phải lưu ý thứ tự thi hành trong trường hợp này, tỷ như ta bố trí giá trị của intCounter = 10 chẳng hạn, ta thấy browser sẽ hiển thị (display) 10 trước khi loop kiểm tra điều kiện là intCounter phải nhỏ hơn (<) 10 và mã nhảy ra khỏi loop sau đó. For LoopsTa dùng For loop khi biết trước sẽ lập đi lập lại việc thi hành nguồn mã bao nhiêu lần. Máy đếm trong trường hợp này (tự động tăng hay giảm tùy theo cách bố trí) sẽ thông báo chính loop của nó khi nào chấm dứt. Cú pháp như sau:
hoặc là:
For loop còn có 1 dạng khác là For each ... loop, thường dùng để vận dụng các thành phần (hay yếu tố - elements) trong 1 bộ sưu tập (collection) tỷ như Array chẳng hạn:
Thay vì dùng số như trường hợp máy đếm intCounter trong 2 dạng For loop trên, ở đây For each ... in dùng 'strDay' để ấn định từng elements một theo thứ tự 'Mon', 'Tue', .... cho tới 'Fri' trong bộ sưu tập array mang tên 'arrayWeekDays'. Do đó, ta thấy browser sẽ hiển thị (display) 5 hàng chữ, mỗi hàng là ngày trong tuần. Infinite LoopÐể ý coi chừng trong khi dùng các loop mà ta phải tự quản lý việc tăng hay giảm máy đếm cho loop, nếu không khéo, ta sẽ rơi vào ... 'mê hồn trận' không có lối thoát gọi là infinite loop. Ðây cũng là 1 trường hợp ngẫu nhiên mà lần đầu tiên bà con khám phá ra virus vì infinite loop nhanh chóng tiêu hao hay làm kiệt quệ các tài nguyên trong mạng và đôi khi có thể kéo cả mạng té bất ngờ (cause the site to crash). Nếu ta muốn nhảy ra khỏi loop trước loop chấm dứt, ta có thể dùng keyword Exit Do (trong Do loop) hay Exit For (trong For loop), tỷ như:
hay
Branching LogicBranching logic cho phép nguồn mã thi hành ở những hướng khác nhau, tỷ như ta muốn nguồn mã tái thi hành ở một vị thế khác và có thể được dùng đi dùng lại nhiều lần trong các tình huống khác nhau. Tổng quát có 2 loại barnching logic:
Ðể phân biệt, ta để ý Functions tính toán các giá trị còn Subroutines thi hành các công việc (Functions compute values and Subroutines perform actions), như vậy Functions sẽ trả lại thông tin đã tính toán về nơi gọi Functions, ngược lại Subroutines thi hành công tác nào đó nhưng không trả lại gì hết (return nothing). FunctionsCú pháp như sau:
Vài VB.NET Function tiện dụng: Sau đây là vài VB.NET Functions đã soạn sẳn trong .NET Framework ta có thể dùng trong trang Web của khóa: Các functions về Date và Time
Các Functions về Toán Học
Các Functions về hành chữ (Strings)
SubroutinesCú pháp như sau:
Thí dụ subroutine Page_Load rất phổ thông mà ta thường dùng trong các trang ASP.NET :
Các biến số (variables) trong ( ) gọi là thông số (parameters hay arguments), nếu họp thành 1 nhóm, ta gọi parameter list. Subroutine chuyển và vận dụng các giá trị của thông số vào bên trong subroutine để thi hành 1 công tác nào đó. Bài tập 1: Mục đích: Làm quen cách viết và sử dụng parameters cho Subroutine toán nhân với 2 số chẳng hạn. 1. Chạy ứng dụng Notepad và gõ hàng mã sau:
2. Lưu trữ tập tin với tên multiply.aspx ở folder 'D:\Net\Vovisoft ASPNET\Bai06\Multiply' và chạy IE với URL như sau: http://cantho/VovisoftASPNET/Bai06/Multiply/Multiply.aspx
Phần ChúThích: Ta nhận thấy khi gọi (call) 1 subroutine, ta chỉ cần dùng tên của subroutine kèm với các thông số (parameters) ta muốn gởi vào và vận dụng trong subroutine. Trong mã trên, ta gọi subroutine 'MultiplyNUmber' 3 lần, trong đó ta sẽ vận dụng các thông số vào bài toán nhân và hiển thị (display) kết quả trong browsers với đối tượng (Object) Response và phương pháp (method) Write. Lưu ý: Trong VB.NET và ASP.NET , ta bắt buộc dùng parentheses ( ) khi gọi các subroutines, khác với VBSCript hay VB6 không cần dùng parentheses. Nếu ta gọi subroutine MultiplyNumber theo cú pháp sau, sẽ tạo lỗi: MultiplyNumber 2, 2 Event HandlerNếy để ý, ta thấy 1 trong những thông số (parameters) sử dụng ở bài tập trên là thông số về sự cố (EventArgs). Trong các trang Web của ASP.NET , sự cố có thể xảy ra bất cứ lúc nào, tỷ như user nhấp mũi chuột vào 1 nút nào đó trên Form hoặc nhấp vào 1 hình ảnh, do đó ta cần chuẩn bị và tạo ra cái gọi là event handler để có thể đáp ứng lại các sự cố đó. Cú pháp của event handler giống y chang như cú pháp của subroutine, sự khác biệt là nằm ở parameters list với thông số chỉ riêng cho loại EventArgs. Khi 1 sự cố khởi động, sự cố đó sẽ tạo ra các biến số nhằm diển tả việc gì đã xảy ra và event handler sẽ dựa trên các biến số đó để phản ứng sao cho thích hợp. Bài tập 2: Mục đích: Tạo 1 trang ASP.NET với nút bấm Submit và event OnClick liên hệ với Subroutine Button_Click để ... 'bắt quả tang' user vừa mới nhấp mũi chuột vào nút bấm đó. 1. Chạy ứng dụng Notepad và gõ hàng mã sau:
2. Lưu trữ tập tin với tên events.aspx ở folder 'D:\Net\Vovisoft ASPNET\Bai06\Events' và chạy IE với URL như sau: http://cantho/VovisoftASPNET/Bai06/Events/Events.aspx
Phần Chú Thích: 1. Thông số đầu tiên ở subroutine Button_Click là loại Object data type, obj As Object đại diện cho đối tượng (Object) gây ra sự cố, ở đây chính là nút bấm (button) mang tên 'btSubmit'. 2. Thông số thứ 2 là sự cố 'e' loại EventArgs, thông số này chứa mọi thông tin đặc trưng cho biến cố đang, sẽ hay đã xảy ra. 3. Trước khi user nhấp mũi chuột vào nút bấm này (lý lịch của nút bấm - ID là 'btSubmit') thì thông số 'e' trống rỗng, sau khi user nhấp vào nút bấm, 'e' chứa đủ thứ trong đó có sự cố 'Click'. Trong Form, ta đã xắp xếp nguồn mã để báo cho nút bấm 'btSubmit' hay rằng bất cứ khi nào sự cố Click khởi động, lập tức thi hành subroutine 'Button_Click', và như vậy, ta đã định nghĩa và xây dựng 1 event handler thành công. ClassesClasses là phần ta xác định hay định nghĩa các đối tượng (Object) tỷ như để định nghĩa 1 cái đồng hồ, ta diễn tả kim giờ, kim phút, kim giây cùng các con số chỉ giờ, cách bố trí giờ giấc hay ngày tháng năm, ... Tương tự như thế, class định nghĩa đối tượng (Object) qua các đặc tính (properties) và các phương pháp (method) biểu thị đặc trưng cho class. Ta nên nhớ rõ 1 điều: 'Mọi thứ trong .NET Framework hay VB.NET đều đại biểu cho classes'. Cú pháp như sau:
Trước khi dùng, nhớ instantiate class ra 1 đối tượng (Object). Có hằng hà sa số Base Classes trong .NET Framework ta không thể nào kể ra xiết ở đây, tổng quát có thể gom vào những loại (catogories) sau:
InheritanceInheritance nắm vai trò quan trọng trong classes và OOP (Object-Oriented Programming) vì tính chất kế thừa của nó. Ta không cần phải tạo ra 1 class mới hoàn toàn khi đã có 1 class tương tự như cái ta muốn (who wants to re-invent the wheel?) mà chỉ cần tạo ra nhánh (giống như nhánh cây) dựa vào gốc (base class). Trở lại trường hợp cái đồng hồ, tỷ như ta đã tạo ra 1 class gọi là Clock, rồi sau đó mới sực nhớ ra có 2 loại đồng hồ: analog và digital. Thay vì quẳng cái Clock class đi và tạo ra 2 cái mới Analog class và Digital class, ta có thể xây dựng class mới lấy Clock class làm cơ bản (base class) và thêm vào đó những gì đặc trưng đến hay liên hệ đến loại của Clock là Analog hay Digital. Tính chất kế thừa này đem lại vận hội mới cho các Kỹ Sư Tin Học khi xây dựng các ứng dụng vì làm cho việc phát triển, triển khai và bảo trì trở nên dễ dàng hơn, đỡ bị ... nhứt 'đầu' hay bạc ... 'râu'. Cú pháp như sau với thí dụ về AnalogClock:
Phương pháp (method) lập trình tổng quátNgoài việc nắm vững kỹ thuật và cú pháp lập trình, thiết tưởng, ta cũng nên bàn 1 cách tổng quát về phương pháp (method) xây dựng tiêu chuẩn cho việc lập trình các ứng dụng (nói chung) và ASP.NET (nói riêng). Nhớ đây chỉ là một số khái niệm cơ bản khi ta muốn phát triển các dự án ứng dụng lập trình VB.NET cho các trang ASP.NET trong khoá học này. Các tiến trình được nhắc đến ở đây nhằm mục đích hiểu rõ các bước cần thiết trong việc lập trình khi áp dụng cho một dự án thực tế trong công ty của mình. 1. Requirement Specifications (Ðặc điểm kỹ
thuật cần thiết) 5. Commissioning, Roll-Out (Áp dụng) Tóm tắtỞ bài này, ta đã bàn sơ lược về .NET Framework và tham khảo vài chi tiết về cú pháp của ngôn ngữ lập trình VB.NET cùng phương pháp (method) lập trình để giúp ta xây dựng và phát triển các trang Web một cách hiệu quả. Tổng quát, ta có 5 loại biến số (variables) và 3 loại logic. Các logic Conditional, Looping và Branching này rất cần thiết trong việc giúp ta tái thi hành các nguồn mã một khi thoả mản điều kiện đã định trước. Ta cũng phân biệt được sự khác nhau giữa Functions và Subroutines và lướt sơ qua khái niệm cùng cách vận dụng các event cũng như classes và khái niệm Inheritance trong OOP. Trong bài kế 'Web Form - Part I', ta sẽ tham khảo về Web Form và vai trò của nó trong ASP.NET . Web Form là 1 khái niệm mới và hấp dẫn trong môi trường mạng vì Web Form cho phép ta kiểm soát ... 'động tịnh' của user qua các objects hiển thị (display) trong User Interface nhưng lại xử lý ở phiá Server. Thật là ... 'kỳ bí'. Download Source CodeNguồn mã bài tập 1 Bài làm ở nhàCâu hỏi 1: Is VB.NET case sensitive? Câu hỏi 2: Trong VB6 ta có biến số variant, chuyện gì đã xảy ra cho variant ở VB.NET? Cây Hỏi 3: Khi nào ta dùng For loop và khi nào dùng While loop? Bài làm 1: Tạo 1 trang ASP.NET dùng class PERSON để biểu thị về người và object dại diện cho chính bạn với đặc tính (properties) giới tính (Nam/Nữ), màu tóc (xanh, đen, muối tiêu, bạc, ...), màu mắt (đen, đỏ, ...), màu da (ngâm, bánh mật, đen, ...) và ngày tháng năm sinh. Dùng đặc tính (properties) dayofweek của datetime để xác định ngày bạn sinh là ngày nào trong tuần và dùng 1 nút bấm Submit để gọi phương pháp (method) này cũn gnhư hiển thị (display) kết quả ở browser.
|
| Vovisoft Home Page | Bài số 5 | Bài số 7 | ASP.NET Course Index |
Trang được viếng thăm
Server object
Server.CreateObject Failed
/aspnet/baihoc/Bai06/bai06.asp, line 1172
800401f3