320 likes | 567 Views
Mục tiêu môn học. Hiểu được các kiến thức về nền tảng Microsoft .NET. Có kiến thức và kỹ năng về lập trình hướng đối tượng trên C#. Có kiến thức và kỹ năng về giao diện trong C#. Có kiến thức và kỹ năng xử lý mảng, chuỗi. Có kiến thức và kỹ năng về cơ chế ủy quyền.
E N D
Mục tiêu môn học • Hiểu được các kiến thức về nền tảng Microsoft .NET. • Có kiến thức và kỹ năng về lập trình hướng đối tượng trên C#. • Có kiến thức và kỹ năng về giao diện trong C#. • Có kiến thức và kỹ năng xử lý mảng, chuỗi. • Có kiến thức và kỹ năng về cơ chế ủy quyền. • Có kiến thức và kỹ năng sử dụng các lớp cơ sở của .NET. LT Windows 1 _ C#
LẬP TRÌNH WINDOWS 1 BÀI 1 Microsoft .NET(02 tiết) GVHD: NguyễnThị Thu Dự Email:thudunt@gmail.com nttdu@vast-hcm.ac.vn LT Windows 1 _ C#
Bài 1. Microsoft .NET • Mục tiêu của bài: • Nhằm trang bị cho người học các kiến thức về: • Nền tảng Microsoft .NET • Trình biên dịch và MSIL. • Lý do và lịch sử về sự ra đời của ngôn ngữ C#. • Nội dung của bài: • 1. Microsoft .NET Thời gian: 1h • 2. Biên dịch và MSIL Thời gian: 0,5h • 3. Ngôn ngữ C# Thời gian: 0,5h LT Windows 1 _ C#
.NET là gì? • .NET là đại diện cho một thế hệ phần mềm tiến bộ mới đó là Next Generation Internet. Mục đích của nó là lấy thông tin sẵn có bất kỳ lúc nào, bất kỳ ở đâu và trên bất kỳ thiết bị nào. • .NET là một sáng kiến để tích hợp tất cả các sản phẩm của Microsoft với “Next Generation” web.
MegaService Backend App Web site Backend App Web site Loosely-coupled, services connected by XML-based messages and contracts, written in many languages Service Service MegaService XML-msgs Service Web site Device Service Next Generation Internet
Microsoft .NET là gì? • Các thành phần cốt lõi trong .NET là: • .NET Infrastructure and Tools • .NET Services • Một tập hợp kết hợp từ các dịch vụ khối kiến trúc cho thế hệ Internet mới bao gồm: Passport.NET (dùng để xác thực người dùng), và các dịch vụ cho việc lưu trữ tập tin, quản lý độ ưu tiên người dùng, quản lý lập lịch, … • .NET User Experience • Rộng rãi hơn, có khả năng thích nghi hơn. • Thông tin được phân phát theo các hướng khác nhau trên các thiết bị khác nhau. • .NET Device Software • Có khả năng tạo ra các thiết bị Internet thông minh mới có tác dụng làm đòn bẩy cho các dịch vụ Web.
.NET Infrastructure and Tools • .NET Enterprise Servers • SQL 2000 • Exchange 2000 • ISA 2000 • Host Integration Server 2000 • Application Center 2000 • BizTalk Server 2000 • Commerce Server 2000 • Visual Studio.NET • .NET Framework • Windows.NET • “Whistler” (Windows XP)
.NET Framework • .NET Framework bao gồm 3 thành phần chính sau: • Common Language Runtime – CLR: Quản lý việc thi hành chương trình - khởi động chương trình, cấp phép hoạt động, cấp phát nhật ký lưu trữ dữ liệu làm việc, hỗ trợ việc thu hồi tài nguyên (resource).... • Framework Classes/Libraries: cho phép thực hiện vô số tác vụ trên Windows, chứa tập hợp các kiểu của CLR. • ASP.NET • Nói tóm lại .NET giữ hai vai trò: quản lý việc thi hành chương trình và cung cấp những dịch vụ mà chương trình cần đến. Là một môi trường an toàn cho việc quản lý, thực thi và phát triển ứng dụng.
The .NET Framework VB C++ C# JScript … Visual Studio.NET Common Language Specification WindowsForms ASP.NET: Web Services and Web Forms WindowsForms ADO.NET: Data and XML Base Class Library Common Language Runtime
Common Language Runtime (CLR) • Là bộ phận quản lý việc thi hành đoạn mã: nạp chương trình, cho chạy đoạn mã trên các luồng (thread) nhất định, cũng như quản lý các luồng này và cung cấp tất cả các dịch vụ hỗ trợ. • CLR bao gồm một "cỗ máy ảo" (virtual machine) tương tự như Java virtual machine (JVM). Ở cấp cao, CLR cho biên dịch các đối tượng, tiến hành những kiểm tra an toàn đối với các đối tượng này, cấp phát tài nguyên và thực thi chúng; thu hồi tài nguyên mà chúng chiếm dụng trong thời gian "tại chức". Nói tóm lại CLR được xem như là linh hồn của kiến trúc .NET.
Common Language Runtime (CLR) • Một “runtime” chung cho tất cả các ngôn ngữ .NET • Common type system • Common metadata • Intermediate Language (IL) - Ngôn ngữ trung gian. • Common Language Specification • Thực thi và bảo mật code. • Hơn 15 ngôn ngữ đã được hỗ trợ như: • C#, VB, Jscript, Visual C++ from Microsoft • Perl, Python, Smalltalk, Cobol, Haskell, Mercury, Eiffel, Oberon, Oz, Pascal, APL, CAML, Scheme, etc.
Common Type System (CTS) • Common Type System - Đặc tả kiểu dữ liệu chung: • Để có thể thực hiện việc liên thông giữa ngôn ngữ (language interoperability), nghĩa là các ngôn ngữ khác nhau có thể hiểu nhau, để từ đó có thể chuẩn hóa tất cả các ngôn ngữ. • CTS còn cung cấp những quy tắc định nghĩa những lớp tùy biến (custom class). Ví dụ, trên .NET mọi thứ đều là một đối tượng của một lớp đặc trưng nào đó và lớp này được dẫn xuất từ lớp gốc mang tên System.Object. • CTS hỗ trợ khái niệm chung về các lớp, giao diện (interface), ủy quyền (delegate), kiểu tham chiếu (reference type) và kiểu tham trị (value type).
Intermediate Language (IL) • Intermediate Language - Ngônngữtrunggian: • Cácchươngtrình .NET khôngđượcbiêndịchthànhtập tin thựcthi (executable, .EXE), màlạiđượcbiêndịchthànhtập tin IL. Khibiêndịchthìtrìnhbiêndịchsẽchora IL, rồi CLR sẽbiêndịchthànhtập tin thựcthi. IL đượcthiếtkếcókhảnăngbiêndịchnhanhrangônngữmáynguyênsinh (native machine code), trongkhivẫnhỗtrợnhữngchứcnăngcủa .NET. • Tập tin IL đượctạorađốivới C# cũngtươngtựnhưcáctập tin IL đượctạoravớicácngônngữkhác J# hoặc VB.NET bởi CLR. Điểmchủyếu ở đâylà CLR hỗtrợ C# cũngnhư VB.NET giốngnhưnhau, không "phânbiệtđốixử".
Common Language Specification (CLS) • CLS - Đặc tả ngôn ngữ chung: • Đây là một tập hợp các quy tắc để bảo đảm đoạn mã này có thể được truy xuất bất cứ ngôn ngữ nào, cho phép liên thông giữa các ngôn ngữ. Từ ngữ .NET-aware dùng để chỉ loại ngôn ngữ chung này. • Nhìn chung, các trình biên dịch nào tuân theo quy tắc CLS (.NET-aware) sẽ tạo ra các đối tượng có thể hoạt động liên thông với các trình biên dịch khác nhau.
Common Language Runtime (CLR) • Enables cross-language interoperability • Language/Hardware/OS Independent • Compact framework for small devices • Industrial strength Garbage collector • Designed for multi-processor servers
CLR: Execution Model Source code VB C# C++ Unmanaged Component Compiler Compiler Compiler Managed code Assembly IL Code Assembly IL Code Assembly IL Code Common Language Runtime JITCompiler Native Code Operating System Services
Managed Code • Managed Code (đoạnmãđượcquảnlý): bấtcứđoạnmãnàođượcthiếtkếđểchạytrênmôitrường .NET đượcgọilàđoạnmãđượcquảnlý. Nhữngđoạnmãkhác, đơngiảnchạytrên Windows, ngoàimôitrường .NET, thìđượcgọilàunmanaged code (đoạnmãvôquản). CLR chỉlàmộtlớpphầnmềmnằmgiữahệđiềuhành Windows vàcácứngdụng. Dĩnhiênnhữngứngdụng unmanaged vẫntiếptụclàmviệcvới Windows, cũngnhưtrựctiếpvới Windows APIs giốngnhưtrướckia.
Assembly • Một assembly là một đơn vị, theo đó đoạn managed code sẽ được trữ trong đó. Assembly có chứa một loại dữ liệu được gọi là metadata, cho biết thông tin chi tiết của assembly cũng như tất cả các kiểu dữ liệu, phương thức (method), ... được định nghĩa trong assembly. • Một assembly có thể là private (riêng tư, chỉ được truy xuất bởi ứng dụng mà thôi) hoặc shared (được chia sẻ sử dụng, được truy xuất bới bất cứ ứng dụng nào trên Windows).
Just-in-Time (JIT) compilation • Đây là trình biên dịch (thường được gọi là JITing) thực hiện giai đoạn cuối cùng, biên dịch từ IL qua mã máy nguyên sinh (native machine code). Kết quả của JITing là một mã máy có thể được thi hành bởi bộ xử lý (processor) của máy. • Trình biên dịch JIT chuẩn sẽ chạy theo yêu cầu. Khi một phương thức (method) được triệu gọi, JIT compiler sẽ phân tích IL và cho ra một đoạn mã máy có hiệu quả để thực thi. • JIT complier khá thông minh để có thể biết là đoạn mã nào đã được biên dịch, nên việc biên dịch chỉ xãy ra khi nào cần thiết. Do đó, khi các ứng dụng .NET chạy thì chúng chạy ngày càng nhanh khi có những đoạn mã đã biên dịch sẵn được dùng đi dùng lại.
.NET Framework Libraries • Tập hợp các thư viện lớp hướng đối tượng thích hợp để có thể xây dựng các ứng dụng web (Unified Classed). • Các thư viện được xây dựng bằng cách sử dụng các lớp đã được cải biên thông qua kiến trúc không gian tên hợp lý. • Ví dụ: System.Data.SQL • Làm việc với tất cả các ngôn ngữ CLR.
ASP.NET • ASP.NET là một ngôn ngữ lập trình framework mới được thiết kế để tạo ra các ứng dụng web dễ dàng hơn khi: • Build, Deploy, Run • Các tiến triển cơ bản của ASP • Hỗ trợ nhiều ngôn ngữ lập trình hơn: • Visual Basic.NET, Jscript.NET, C#, … • Mô hình lập trình theo trang dễ dàng hơn • Namespaces • Các đặc tính XML, việc triển khai Xcopy/FTP, • XCopy/FTP deployment • Đáng tin cậy hơn và dễ khôi phục hơn. • …
Visual Studio.NET • Integrated Development Environment • Visual Basic.NET • Many language enhancements • Inheritance, Overloading, Free Threading • Visual C++ • Integration with .NET Framework with managed extensions (classes) • C# • New development language • Based on C/C++ with Garbage Collection/Memory Management • JUMP (Java User Migration Path) to .NET (1/25/01) Visual J++ has been removed from the Visual Studio suite.
Các đặc điểm của VS.NET • Single IDE for all Languages • Server Explorer • Event Viewer, Message Queues, Services • SQL Databases, Data Connection, Etc. • Integrated IE Browser • HTML/XML Editors • Macros/Macro Explorer • Solution Explorer • Tabbed Documents • Dynamic Help • Common Forms Editor • VB.NET, C++, and C#
Giới thiệu C# • Được phát triển bởi đội ngũ kỹ sư của Microsoft. Dẫn đầu là : Anders Hejlsberg và Scott Wiltamuth • C# là một ngôn ngữ : • Đơn giản • Hiện đại • Hướng đối tượng • Mạnh mẽ & Mềm dẻo • Ít từ khoá
Giới thiệu C# • C# là một ngôn ngữ đơn giản : • Loại bỏ những phức tạp có trong Java hay C++ như macro , template , đa kế thừa , virtual base class • Giống về diện mạo cú pháp C và C++ nhưng được cải tiến đơn giản hơn (Ví dụ : “:: , . , ” chỉ còn “.” • C# là một ngôn ngữ hiện đại : • Có đầy đủ các tính năng : Xử lý ngoại lệ , thu gom bộ nhớ tự động , kiểu dữ liệu an toàn, bảo mật mã nguồn…
Giới thiệu C# • C# là ngôn ngữ hướng đối tượng : • Đóng gói (encapsulation) • Kế thừa (inheritance) • Đa hình (polymorphism) • C# là một ngôn ngữ mạnh mẽ và mềm dẻo : • Tuỳ thuộc vào bản thân người dùng. Không có giới hạn ở bản chất ngôn ngữ. • Tạo các ứng dụng đồ hoạ, bàn tính, xử lý văn bản, trình biên dịch cho các ngôn ngữ khác v.v…
Giới thiệu C# • C# có ít từ khoá :
Thank You ! LT Windows 1 _ C#