Tự học VisualBasic.NEt toàn tập

Thảo luận trong 'Ngôn ngữ lập trình' bắt đầu bởi KHPT, 31/7/05.

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. KHPT
    Offline

    KHPT PR Admin

    1,707
    113
    552
    Bài 1

    Sơ lược về Visual Basic.NET

    1.1 Sơ lược về lịch sử của VB.NET

    Ngôn ngữ BASIC (Beginner's All Purpose Symbolic Instruction Code) đã có từ năm 1964. BASIC rất dễ học và dễ dùng. Trong vòng 15 năm đầu, có rất nhiều chuyên gia Tin Học và công ty tạo các chương trình thông dịch (Interpreters) và biên dịch (Compilers) cho ngôn ngữ làm BASIC trở nên rất phổ thông.

    Năm 1975, Microsft tung ra thị trường sản phẩm đầu tay Microsoft BASIC và tiếp đó Quick BASIC (còn gọi là QBASIC) thành công rực rỡ.

    Quick BASIC phát triển trong nền Windows nhưng vẫn khó khăn khi tạo giao diện kiểu Windows. Sau đó nhiều năm, Microsoft bắt đầu tung ra 1 sản phẩm mới cho phép ta kết hợp ngôn ngữ dễ học BASIC và môi trường phát triển lập trình với giao diện bằng hình ảnh (Graphic User Interface - GUI) trong Windows. Đó là Visual Basic Version 1.0

    Sự chào đời của Visual Basic Version 1.0 vào năm 1991 thật sự thay đổi bộ mặt lập trình trong Công Nghệ Tin Học.

    Trước đó, ta không có 1 giao diện bằng hình ảnh (GUI) với một IDE (Integrated Development Environment) giúp các chuyên gia lập trình tập trung công sức và thì gìờ vào các khó khăn liên hệ đến doanh nghiệp của mình. Mỗi người phải tự thiết kế giao diện qua thư viện có sẵn Windows API (Application Programming Interface) trong nền Windows. Điều này tạo ra những trở ngại không cần thiết làm phức tạp việc lập trình.

    Visual Basic giúp ta bỏ qua những hệ lụy đó, chuyên gia lập trình có thể tự vẽ cho mình giao diện cần thiết trong ứng dụng (application) 1 cách dễ dàng và như vậy, tập trung nổ lực giải đáp các vần đề cần giải quyết trong doanh nghiệp hay kỹ thuật.

    Ngoài ra, còn nhiều công ty phụ phát triển thêm các khuôn mẫu (modules), công cụ (tools, controls) hay ứng dụng (application) phụ giúp dưới hình thức VBX cộng thêm vào giao diện chính càng lúc càng thêm phong phú.

    Khi Visual Basic phiên bản 3.0 được giới thiệu, thế giới lập trình lại thay đổi lần nữa. Kỳ này, ta có thể thiết kế các ứng dụng (application) liên hệ đến Cơ Sở Dữ Liệu (Database) trực tiếp tác động (interact) đến người dùng qua DAO (Data Access Object). Ứng dụng này thưòng gọi là ứng dụng tiền diện (front-end application) hay trực diện.

    Phiên bản 4.0 và 5.0 mở rộng khả năng VB nhắm đến Hệ Điều Hành Windows 95.

    Phiên bản 6.0 cung ứng 1 phương pháp mới nối với Cơ Sở Dữ Liệu (Database) qua sự kết hợp của ADO (Active Data Object). ADO còn giúp các chuyên gia phát triển mạng nối với Cơ Sở Dữ Liệu (Database) khi dùng Active Server Pages (ASP).

    Lưu ý ở đây, tất cả các khái niệm và công dụng của Modules, Tools, Controls, DAO, ADO hay ASP sẽ được từ từ trình bày trong các bài học kế.

    Tuy nhiên, VB phiên bản 6.0 (VB6) không cung ứng tất cả các đặc trưng của kiểu mẫu ngôn ngữ lập trình khuynh hướng đối tượng (Object Oriented Language - OOL) như các ngôn ngữ C++, Java.

    Thay vì cải thiện hay vá víu thêm thắc vào VB phiên bản 6.0, Microsoft đã xoá bỏ tất cả làm lại từ đầu các ngôn ngữ lập trình mới theo kiểu OOL rất hùng mạnh cho khuôn nền .NET Framework. Đó là các ngôn ngữ lập trình Visual Basic.NET và C# (gọi là C Sharp). Sau đó, nhiều ngôn ngữ lập trình khác cũng thay đổi theo tỷ như smalltalk.NET, COBOL.NET, ... làm Công Nghệ Tin Học trở nên phong phú hơn, đa dạng hơn.

    Tất cả những thay đổi này nhằm đáp ứng kịp thời sự đòi hỏi và nhu cầu phát triển cấp bách trong kỹ nghệ hiện nay.

    1.2 Sơ lược về Visual Basic.NET


    Visual Basic.NET (VB.NET) là ngôn ngữ lập trình khuynh hướng đối tượng (Object Oriented Programming Language) do Microsoft thiết kế lại từ con số không. Visual Basic.NET (VB.NET) không kế thừa VB6 hay bổ sung, phát triển từ VB6 mà là một ngôn ngữ lập trình hoàn toàn mới trên nền Microsoft 's .NET Framework. Do đó, nó cũng không phải là VB phiên bản 7. Thật sự, đây là ngôn ngữ lập trình mới và rất lợi hại, không những lập nền tảng vững chắc theo kiểu mẫu đối tượng như các ngôn ngữ lập trình hùng mạnh khác đã vang danh C++, Java mà còn dễ học, dễ phát triển và còn tạo mọi cơ hội hoàn hảo để giúp ta giải đáp những vấn đề khúc mắc khi lập trình. Hơn nữa, dù không khó khăn gì khi cần tham khảo, học hỏi hay đào sâu những gì xảy ra bên trong ... hậu trường OS, Visual Basic.NET (VB.NET) giúp ta đối phó với các phức tạp khi lập trình trên nền Windows và do đó, ta chỉ tập trung công sức vào các vấn đề liên quan đến dự án, công việc hay doanh nghiệp mà thôi.

    Trong khóa học này, các bạn sẽ bắt đầu làm quen với kiểu lập trình dùng Visual Basic.NET (VB.NET) và dĩ nhiên, các khái niệm và thành phần cơ bản của .NET Framework.

    Nếu ta để ý tên của Visual Basic.NET (VB.NET), ta thấy ngay ngôn ngữ lập trình này chuyên trị tạo ứng dụng (application) dùng trong mạng, liên mạng hay trong Internet. Tuy nhiên, khi học bất cứ một ngôn ngữ lập trình mới nào, ta cũng cần ... 'tập đi trước khi tập chạy'. Do đó, ta sẽ tập trung vào việc lập trình các ứng dụng (applications) trên nền Windows và đó cũng là mục tiêu chính yếu của khóa học cơ bản Visual Basic.NET

    1.3 Sơ lược về .NET

    .NET là tầng trung gian giữa các ứng dụng (applications) và hệ điều hành (OS). Tầng .NET cung cấp mọi dịch vụ cơ bản giúp ta tạo các công dụng mà ứng dụng (application) đòi hỏi, giống như hệ điều hành cung cấp các dịch vụ cơ bản cho ứng dụng (application), tỷ như: đọc hay viết các tập tin (files) vào dĩa cứng (hard drive), ... Tầng này bao gồm 1 bộ các ứng dụng (application) và hệ điều hành gọi là .NET Servers. Như vậy, .NET gần như là một bộ sưu tập (collection) các nhu liệu và khái niệm kết hợp trộn lẫn nhau làm việc nhằm tạo giải đáp các vấn đề liên quan đến thương nghiệp của ta. Trong đó:

    Tập hợp các đối tượng (objects) được gọi là .NET Framework và

    Tập hợp các dịch vụ yểm trợ mọi ngôn ngữ lập trình .NET gọi là Common Laguage Runtime (CLR).

    Hãy quan sát thành phần cơ bản của .NET:

    User Applications
    .NET Framework
    .NET Servers
    .NET Devices
    Hardware Components

    1.3.1 .NET Servers


    Mục tiêu chính của .NET là giúp ta giảm thiểu tối đa công việc thiết kế hệ thống tin học phân tán (distributed system). Đa số công việc lập trình phức tạp đòi hỏi đều được thực hiện ở hậu phương (back end) trong các máy cung cấp dịch vụ (servers). Microsoft đã đáp ứng với bộ sưu tập '.NET Enterprise Servers', bộ này chuyên trị và yểm trợ mọi đặc tính (features) hậu phương cần có cho một hệ thống tin học phân tán (distributed system).

    Bộ sưu tập '.NET Enterprise Servers' bao gồm:

    Server Operationg Systems: MS Windows Server, Advanced Server và Data Center Server

    Clustering và Load Balancing Systems: MS Application Center, MS Cluster Server

    Database System: MS SQL Server (SQL đọc là sư cô, ... à không, 'si cồ')

    E-Mail System: MS Exchange Server

    Data-transformation engine trên cơ sở XML: MS Biz Talk Server

    Accessing Legacy Systems: Host Integration Server

    Tất cả các máy server này cung cấp mọi dịch vụ cần thiết cho các ứng dụng (application) về .NET và là nền tảng xây dựng hệ thống Tin Học cho mọi dự án lập trình.

    1.3.2 .NET Framework

    Đối với Visual Basic.NET (VB.NET), tất cả mọi thứ đều thay đổi tận gốc rễ. Một trong những thành phần quan trọng của .NET là .NET Framework. Đây là nền tảng cho mọi công cụ phát triển các ứng dụng (application) .NET

    .NET Framework bao gồm:

    Môi trường vận hành nền (Base Runtime Environment)

    Bộ sưu tập nền các loại đối tượng (a set of foundation classes)

    Môi trường vận hành nền (Base Runtime Environment) hoạt động giống như hệ điều hành cung cấp các dịch vụ trung gian giữa ứng dụng (application) và các thành phần phức tạp của hệ thống. Bộ sưu tập nền các loại đối tượng (a set of foundation classes) bao gồm 1 số lớn các công dụng đã soạn và kiểm tra trước, tỷ như: giao lưu với hệ thống tập tin (file system access) hay ngay cả các quy ước về mạng (Internet protocols), ... nhằm giảm thiểu gánh nặng lập trình cho các chuyên gia Tin Học. Do đó, việc tìm hiểu .NET Framework giúp ta lập trình dễ dàng hơn vì hầu như mọi công dụng đều đã được yểm trợ.

    Ta xem .NET Framework như là một tầng công dụng trừu tượng cung cấp dịch vụ trên hệ điều hành (nhìn dưới khía cạnh cung cấp dịch vụ):

    User Applications
    .NET Framework
    Hệ điều hành (OS)
    Device Drivers
    Harware Components (Cương liệu)

    Để mọi ngôn ngữ lập trình sử dụng được các dịch vụ cung cấp bởi .NET Framework, Microsoft tạo ra 1 tiêu chuẩn chung cho ngôn ngữ lập trình gọi là Common Language Specifications (CLS). Tiêu chuẩn này giúp các chương trình biên dịch (compilers) làm việc hữu hiệu. Microsoft sáng chế ra Visual Basic.NET (VB.NET), Visual C++.NET và C# (đọc là C Sharp) cho nền .NET Framework và cũng không quên phổ biến rộng rãi CLS trong Công Nghệ Tin Học giúp các ngôn ngữ lập trình khác làm việc trong nền .NET, tỷ như: COBOL.NET, Smalltalk.NET, ...

    Lưu ý ở đây, mặc dù Visual Basic.NET (VB.NET), Visual C++.NET hay C# khác nhau về syntax và các công dụng phụ thuộc nhưng tất cả đều biên dịch ra cùng 1 ngôn ngữ trung gian gọi là MSIL (Microsoft Intermediate Language) và do đó, không có ngôn ngữ lập trình .NET nào hùng mạnh hơn ngôn ngữ lập trình .NET nào. Tất cả đều bình đẳng, 'không ai ... bảnh hơn ai', việc chọn ngôn ngữ lập trình nào cũng là ... chuyện nhỏ, tùy ý thích lập trình viên.
     
  2. thanhhuy001
    Offline

    thanhhuy001 Thành Viên Mới

    1
    0
    0
    Hết rồi hả!

    Sao Admin trình bày có bài 1 rồi ngưng đến bây giờ không thấy bài nào được viết nữa vậy? Đề nghị post tiếp cho mọi người xem với. Hoặc cũng có thể gộp lại thành 1 file pdf hoặc doc cũng được. Thanks!
     
  3. KHPT
    Offline

    KHPT PR Admin

    1,707
    113
    552
    Cài đặt Visual Studio.NET Beta 2


    Visual Studio.NET nằm trong 3 CDs, gồm có 4 files:

    EN_VS_NET_BETA2_WINCUP.exe
    EN_VS_NET_BETA2_CD1.exe
    EN_VS_NET_BETA2_CD2.exe
    EN_VS_NET_BETA2_CD3.exe
    Chạy EN_VS_NET_BETA2_WINCUP.exe để Unzip nó vào một folder trong một harddisk (eg: E:\CD\WINCUP) .
    Lần lượt chạy EN_VS_NET_BETA2_CD1.exe, EN_VS_NET_BETA2_CD2.exe và EN_VS_NET_BETA2_CD3.exe để Unzip chúng vào chung một folder trong một harddisk (eg: E:\CD ).
    Việc Unzip files có thể rất lâu, bạn phải kiên nhẫn chờ cho đến khi nó kết thúc. Nếu không, khi cài đặt có thể bị than phiền là thiếu files.
    Kế đó, trước hết chạy Setup.exe của Windows Component Update như dưới đây, click No khi Warning dialog hiện ra:

    [​IMG]
    [​IMG]

    Tiếp theo, chạy Setup.exe của Visual Studio.NET:
    [​IMG]
    [​IMG]
    [​IMG]

    Bạn nên có CPU Pentium III, 500MHz trở lên, với 256 MB RAM và ít nhất 10GB Harddisk. Về OS bạn nên dùng Windows 2000 (Professional hay Server) hay Windows XP. Lý do chính là các versions Windows nầy hổ trợ Unicode và có Internet Information Server (IIS) hổ trợ ASPX để ta dùng cho ASP.NET.

    Mở các Samples của QuickStart

    Trước khi expand Samples của Quickstart bạn cần phải cài đặt IIS. Nếu chưa làm việc ấy bạn bỏ CD của Windows2000 hay WindowsXP vào để install IIS component.
    QuickStart Samples của .NET Framework chứa các giải thích căn bản và nhiều thí dụ. Để expand các Samples doubleclick Webpage Starthere.htm như trong hình dưới đây:
    [​IMG]
    Khi trang Web của QuickStart hiện ra, click QuickStart, tutorials and samples rồi sau đó theo chỉ dẫn từng bước.
    [​IMG]

    Trang Framework SDK QuickStart Tutorials cho ta các bài tập của ASP.NET, Windows Forms và How Do I...

    [​IMG]

    Nhớ để nguyên các folders của Unzipped files (E:\CD, E:\CD\WINCUP), đừng delete chúng, vì .NET sẽ còn dùng chúng. Ngoài ra, nếu sau nầy .NET bị corrupted vì conflict với các application software khác, bạn có thể cài đặt .NET lại.

     
  4. KHPT
    Offline

    KHPT PR Admin

    1,707
    113
    552


    Giới hạn của Software Tools hiện giờ

    Architect của application software hiện giờ có nói chung ba tầng (three tiers): tầng giao diện (Presentation Tier), tầng giữa (Middle Tier) và tầng dữ kiện (Data Tier):

    Presentation Tier: Trong desktop Client ta dùng VB6 và nối với middle tier qua DCOM. Trong browser based Client ta dùng Javascript hay Java applet. Từ browser based Client ta dùng http để nối với middle tier qua IIS/ASP (có thể dùng COM ở đây).

    Middle Tier: Chứa các rules để validate data trên client và các business rules khác. Ta dùng VB6 ở đây, nhưng cách triển khai COM với những Object Oriented Programming concepts rắc rối hơn bình thường. Ta phải thiết kế sao cho các components scale well (dùng cho mọi cở). Có khi dùng Microsoft Transaction Server trên Windows NT hay COM+ Services trên Windows 2000. Lấp ráp các versions của components là một thách thức lớn.
    Nhiều khi middle tier còn nói chuyện với các database qua HTTP, ADO và CDO (Collaborative Data Objects), .v.v..

    Data Tier: Thường là relational database như Microsoft SQL Server hay Oracle. Ngoài ra còn có Exchange hay các database xưa của mainframe.

    Do đó ta thấy:

    Desktop tools không thích hợp cho Distributed System hay Internet
    Phải dùng nhiều thứ codes như VB6 Code, VBScript, JavaScript, Dynamic HTML, Cascading Style Sheet, VC++, Stored Procedures (Transact-SQL trong SQLServer hay PL-SQL trong Oracle).
    Tùy thuộc quá nhiều vào central database: Ngay cả ADO dù là tiện dụng cũng đòi hỏi Client luôn luôn connect với Server. Điều nầy không thích hợp cho Internet applications, vì bản chất của Internet là stateless (không giữ trạng thái), mỗi lần cần làm việc mới connect lại một chút thôi.
    DLL "Hell": Các ActiveX cần phải được registered với Windows Registry, chỉ có một version được chấp nhận. Nếu version mới nhất của một DLL không compatible với các versions trước đó mà applications trên máy đang cần thì có rắc rối.
    Giới hạn của VB6
    [​IMG]

    Thiếu khả năng inheritance (thừa kế) và một số Object Oriented features khác.
    Khả năng Error handling giới hạn: On Error Goto ..., On Error Resume Next
    Nhiều khi cần phải gọi Windows API để làm những việc VB6 không hổ trợ: việc nầy không tự nhiên và đôi khi nguy hiểm.
    Không có multi-threading: không thể đoán trước response của code chạy trong các windows của cùng một VB6 application. Ngay cả giải quyết vấn đề multitasking bằng Timers cũng không đáng tin cậy.
    Không dễ dùng chung với các ngôn ngữ khác như VC++.
    Không tiện cho Web development: WebClass không thành công lắm. Ít ai chịu cho ta cài ActiveX trên máy của họ.
    .NET Framework
    .NET được developed từ đầu năm 1998, lúc đầu có tên là Next Generation Windows Services (NGWS). Nó được thiết kế hoàn toàn từ con số không để dùng cho Internet. Viển tượng của Microsoft là xây dựng một globally distributed system, dùng XML (chứa những databases tí hon) làm chất keo để kết hợp chức năng của những computers khác nhau trong cùng một tổ chức hay trên khắp thế giới.
    Những computers nầy có thể là Servers, Desktop, Notebook hay Pocket Computers, đều có thể chạy cùng một software dựa trên một platform duy nhất, độc lập với hardware và ngôn ngữ lập trình. Đó là .NET Framework. Nó sẽ trở thành một phần của MS Windows và sẽ được port qua các platform khác, có thể ngay cả Unix.

    Mặc dầu hãy còn là Beta, .NET Framework rất stable và Visual Studio.NET rất ít bugs, có thể dùng cho software development ngay từ bây giờ. Hiện nay đã có một số sách về lập trình .NET do Wrox và Oreilly xuất bản.

    [​IMG]

    Các phần chính của Microsoft.NET Framework:

    [​IMG]

    .NET application được chia ra làm hai loại: cho Internet gọi là ASP.NET, gồm có Web Forms và Web Services và cho desktop gọi là Windows Forms.
    Windows Forms giống như Forms của VB6. Nó hổ trợ Unicode hoàn toàn, rất tiện cho chữ Việt và thật sự Object Oriented.
    Web Forms có những Server Controls làm việc giống như các Controls trong Windows Forms, nhất là có thể dùng codes để xử lý Events y hệt như của Windows Forms.
    Điểm khác biệt chánh giữa ASP (Active Server Pages) và ASP.NET là trong ASP.NET, phần đại diện visual components và code nằm riêng nhau, không lộn xộn như trong ASP. Ngoài ra ASP.NET code hoàn toàn Object Oriented.

    Web Services giống như những Functions mà ta có thể gọi dùng từ các URL trên Internet, thí dụ như Credit Card authorisation.

    ADO.NET là một loại cache database nho nhỏ (gọi là disconnected database) để thay thế ADO. Thay vì application connects vĩnh viễn với database mẹ qua ADO, application trong .NET làm việc với portable database chỉ chứa một hai tables, là copy từ database mẹ. Khi nào cần, portable database nầy (ADO.NET) sẽ được reconciled với database mẹ để update các thay đổi. Hai tables trong ADO.NET có thể được related nhau trong Master/Details relationship. Vì ADO.NET có chứa original data lẫn data mới nhất nên Rollback trong ADO.NET rất dễ dàng và nhẹ ký.

    XML được yểm trợ tối đa. Nằm phía sau ADO.NET là XML. XML có thể là Table of records trong ADO.NET hay Tree of nodes trong DOM (Document Object Model).

    IO được hổ trợ bằng toàn bộ Stream kể cả Memory Stream và StreamReader/StreamWriter. Thêm vào là DataFormatting cho Serialisation để chứa Object xuống binary file hay text file.

    TCP/IP và http là hai protocols thông dụng nhất trong .NET, nhưng chúng làm việc phía sau sân khấu giúp ta gọi một remote procedure (nằm trên computer khác) dễ dàng như một local procedure. Kỹ thuật ấy gọi là Remoting.

    Security hổ trợ Cryptography, Permissions và Policy.

    Diagnostics cho ta Debug và Trace.

    Threading rất tiện và đơn giản để implement Lightweight Process. Vấn đề Timing trong .NET program rất linh động, hiệu quả và chính xác.

    Việc thiết kế Common Language Runtime nhắm vào các mục tiêu chính sau đây:

    Việc triển khai đơn giản và nhanh hơn: developers sẽ dành thì giờ quyết định ráp những software components nào lại với nhau nhiều hơn là lập trình thật sự.
    Các công tác thiết yếu ("plumbing") như memory management, process communication .v.v. được lo liệu tự động.
    Các công cụ hổ trợ rất đầy đủ (no more API): .NET Framework Base classes rất phong phú cho file, network, serialisation, mã hóa, XML, database, v.v..
    Cài đặt đơn giản và an toàn (no more DLL "hell"): chỉ cần xcopy files, giống như thời vàng son của DOS. Lý do là .NET application chạy trên .NET framework, một khi ta đã cài .NET framework vào máy rồi thì có đầy đủ mọi .DLL cần thiết. Có lẽ trong tương lai Microsoft cài .NET framework chung với Windows.
    Dùng cho từ WindowsCE đến Desktop, đến Web (scalability).

    [​IMG]
    Metadata
    Metadata là các dữ kiện cắt nghĩa cho ta biết về dữ kiện. Thí dụ XML Schema của một XML file là metadata cắt nghĩa về data structure của data trong XML file. Chính cái XML Schema cũng là một XML file. Các .NET application components, gọi là Assembly, chứa rất nhiều metadata để cắt nghĩa về chính nó (self describing). Tìm biết về một .NET application để có thể làm việc với nó thì gọi là Reflection.

    Hổ trợ và phối hợp mọi ngôn ngữ lập trình
    Common Language Runtime (CLR) là trung tâm điểm của .NET Famework, nó là hầm máy để chạy các năng tính của .NET. Trong .NET, mọi ngôn ngữ lập trình đều được compiled ra Microsoft Intermediate Language (IL) giống giống như byte code của Java. Nhờ bắt buộc mọi ngôn ngữ đều phải dùng cùng các loại data types (gọi là Common Type System) nên Common Language Runtime có thể kiểm soát mọi interface, gọi giữa các components và cho phép các ngôn ngữ có thể hợp tác nhau một cách thông suốt. Tức là trong .NET, VB.NET program có thể inherit C# program và ngược lại một cách hoàn toàn tự nhiên.
    Điều nầy chẳng những giúp các VC++ hay Java programmers bắt đầu dùng C# một cách dễ dàng mà còn làm cùng một dự án với VB.NET programmers nữa.

    Nếu VC++ linh động và hiệu năng hơn VB6, thì C# chẳng khác gì VB.NET. Bạn có thể port C# code qua VB.NET code rất dễ dàng. Vì source code VC++ và Java gần gũi C# hơn VB6 với VB.NET nên ngoài đời có nhiều C# code hơn VB.NET. Do đó, mặc dầu hai ngôn ngữ VB.NET và C# đều ngang cơ nhau, nếu dùng C# bạn được lợi điểm có nhiều source code sẵn và nhất là lâu nay người ta vẫn mang ấn tượng rằng VC++ hay Java programmers mới thật sự là các cao thủ lập trình, và có khuynh hướng trả lương các guru VC++/Java cao hơn VB programmers.

    Khi chạy .NET application, nó sẽ được compiled bằng một JIT (Just-In-Time) compiler rất hiệu năng ra machine code để chạy. Điểm nầy giúp .NET application chạy nhanh hơn Java interpreted code trong Java Virtual Machine. Just-In-Time cũng có nghĩa là chỉ phần code nào cần xử lý trong lúc ấy mới được compiled. IL code chạy trong CLR đuợc nói là managed code.

    .NET code có thể chạy chung với ActiveX, nhưng code trong ActiveX được gọi là unmanaged code, tức là CLR không chịu trách nhiệm.

    Ngoài việc allocation và management of memory, CLR còn giữ các refrerence đến objects và đỗ rác (handle garbage collection), tức là thâu lại các mảnh vụn memory khi chúng không cần dùng nữa. Trước đây, mỗi khi một DLL đuợc loaded vào memory, system sẽ ghi nhận có bao nhiêu task dùng nó để khi task cuối cùng chấm dứt thì system unload DLL và trả lại phần memory nó dùng trước đây để system dùng cho chuyện khác. Chớ nếu allocate memory để dùng mà không nhớ dispose nó thì sẽ bị memory leak (rỉ ), lần lần ta dùng hết memory, bị bắt buộc phải reboot OS. Nhưng bây giờ .NET dùng một process độc lập để làm việc garbage collection. Cái phản ứng phụ của việc nầy là khi ta đã Dispose một Object rồi, ta vẫn không biết chắc chắn chừng nào nó mới thật sự biến mất. Vì garbage collector là một low priority process làm việc trong background, chỉ khi nào system memory gần cạn nó mới nâng cao priority lên. Dĩ nhiên, nếu muốn, ta có thể đòi hỏi system Dispose một Object ngay lập tức.

    Assembly

    [​IMG]

    .NET application xây dựng từ các assemblies. Mỗi assembly phải có một manifest. Có thể nó nằm riêng trong một file hay nằm bên trong một module. Manifest chứa những metadata sau đây:

    Tên và Version number của assembly
    Những assembly khác (kể cả version number của assembly) mà assembly nầy tùy thuộc vào để chạy
    Types (classes và members) mà assembly nầy cho xuất khẩu
    Assembly nầy đòi hỏi điều kiện an ninh nào (security permissions)
    Manifest cho phép ta dùng hơn một version của assembly (tương đương với DLL trước đây) cùng một lúc. Từ đây không còn register DLL nữa. Thay vào đó, ta chỉ cần copy các assembly vào một subfolder /bin của chương trình chính.

    Quyết định của bạn
    Sau khi biết qua về .NET, câu hỏi bạn sẽ đặt ra là bạn có nên học lập trình trên .NET hay không. Nói chung, về lập trình có nhiều tôn giáo như VC++/Java, VB6, Delphi ..v.v.. Bạn có thể chọn giữa C# và VB.NET. Đối với VB6 programmers, học lập trình VB.NET sẽ mất một thời gian, nhưng không khó. Nên nhớ rằng .NET không phải chỉ cho ta các ngôn ngữ lập trình, mà cả một hệ thống triển khai phần mềm chú trọng vào mục tiêu hơn là cách thức. Các lợi ích .NET cống hiến cho bạn cách thực tiển là:

    Kỹ thuật .NET sẽ hoành hành trên giang hồ trong từ 5 đến 10 năm tới.
    Tính trung bình, lập trình trong .NET sẽ tiết kiệm thì giờ cho bạn từ 25% đến 50% so với trước đây. Lý do là trong .NET bạn sẽ nghiên cứu để dùng component nào nhiều hơn là thật sự viết code. Hơn nữa, hầu như code nào bạn cần phải viết, bạn sẽ dùng nó lại trong tương lai. Và bảo trì .NET code thì lại càng khỏe hơn trước đây, vì chính bạn có viết bao nhiêu code (có thể bị bugs) đâu mà bảo trì.
    Do đó, có lẽ trong tương lai .NET programmers chúng ta sẽ ngủ đến 10 giờ sáng mới thức, một ngày chỉ cần làm việc vài tiếng, rảnh rang để làm vườn, câu cá.

    Trong bài tới ta sẽ học về Visual Studio.NET interface và bắt đầu viết thử một program Demo
     
  5. laoaidaide
    Offline

    laoaidaide Thành Viên Mới

    1
    0
    0
    Ðề: Tự học VisualBasic.NEt toàn tập

    cho em hoi anh co trang web nao co the download " Chuong trinh tu hoc Turbo C++" khong a?
    Cam on anh nhieu !!!!!!!!!!!!111
     
  6. ongmattroidapxexuongnui
    Offline

    ongmattroidapxexuongnui Thành Viên Mới

    1
    0
    0
    Ðề: Tự học VisualBasic.NEt toàn tập

    anh oi, anh co the, up len cai e-book của bài này luôn được kg anh :)
     
  7. nick2412
    Offline

    nick2412 Thành Viên Mới

    3
    0
    1
    Ðề: Tự học VisualBasic.NEt toàn tập

    Nhân tiện admin nói về VisualStudio.Net cũng cho mình hỏi thêm, hiện giờ có ai biết tài liệu tiếng việt nào hoàn chỉnh và đầy đủ nhất để có thể tự học không?
    Thx
     
  8. nminhkha
    Offline

    nminhkha Khách

    Ðề: Tự học VisualBasic.NEt toàn tập

    Theo mình biết thì ko có tiếng việt đâu, muốn hoàn chỉnh thì dùng ebook tiếng anh + MSDN
     
  9. tvhien
    Offline

    tvhien Khách

    Ðề: Tự học VisualBasic.NEt toàn tập

    Bài viết rất chi tiết....Em nghĩ lên mở 1 subbox riêng về lập trình .NET Framework.
    rất nhiêu member quan tâm đến ngôn ngữ lập trinh .NET mà.
    Sẽ có rất nhiều source code, demo, tài liệu ... để mọi người tham khảo.
     
  10. bethanhngoc
    Offline

    bethanhngoc Thành Viên Mới

    9
    0
    0
    Ðề: Tự học VisualBasic.NEt toàn tập

    đề tài này đc nhắc tới lâu rồi mà chưa ai thưc hiện 1 cái Demo nào vậy kà !!!
    để em làm cái Demo trc nha ..
    ---đây là code của phần Login đơn giản
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;

    namespace Form2
    {
    public partial class frmLogin : Form
    {
    SqlCommand layta;
    SqlConnection medicCon;
    public frmLogin()
    {
    InitializeComponent();
    }

    private void btnDangnhap_Click(object sender, EventArgs e)
    {
    loadMain();
    }

    private void connecDatabase_lay(string TSql, string[] dieukien, string[] giatri)
    {
    string source = "server = Hoangthang\\local;" +
    "Integrated Security = SSPI;" +
    "database = DaMedic";
    //Tao doi tuong ket noi
    medicCon = new SqlConnection(source);
    //Ten Stored procedure
    string laytable = TSql;
    //Tao Command
    layta = new SqlCommand(laytable, medicCon);
    //Chuyen command qua su dung stored procedure
    layta.CommandType = CommandType.StoredProcedure;
    for (int i = 0; i < dieukien.Length; i++)
    {
    if (giatri.Length <= 0)
    {
    layta.Parameters.Add(new SqlParameter(dieukien, " "));
    }
    else
    {
    layta.Parameters.Add(new SqlParameter(dieukien, giatri));
    }
    }
    layta.Connection.Open();

    }

    //Kiem tra usename va pass de dang nhap chuong trinh
    public void loadMain()
    {
    string[] dieukien = { "@name","@pass" };
    string[] giatri = new string[2];
    giatri[0] = this.txtLogin.Text;
    giatri[1] = this.txtpass.Text;
    if (this.txtLogin.Text.Length <= 0)
    {
    MessageBox.Show("Tên ngu?i s? d?ng không du?c tr?ng!!!","Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
    this.txtLogin.Focus();
    }
    else if (this.txtpass.Text.Length <= 0)
    {
    MessageBox.Show("M?t mã dang nh?p không du?c tr?ng!!!","Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
    this.txtpass.Focus();
    }
    else
    {
    connecDatabase_lay("lay_User_Pass", dieukien, giatri);
    SqlDataReader userAndPass = layta.ExecuteReader();

    string truser="";
    string trpass="";
    while (userAndPass.Read())
    {
    truser = userAndPass.GetString(0) ;
    trpass = userAndPass.GetString(1);
    }
    if (truser.Trim().Equals(giatri[0]))
    {
    if (trpass.Trim().Equals(giatri[1]))
    {
    Main.Mainbenhnhan frmMain = new Main.Mainbenhnhan();
    frmMain.Activate();
    frmMain.Show();
    this.Close();
    }
    else
    {
    MessageBox.Show("M?t mã dang nh?p không chính xác", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
    this.txtpass.Focus();
    this.txtpass.SelectAll();
    }
    }
    else
    {
    MessageBox.Show("Tên ngu?i s? d?ng không tìm th?y", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
    this.txtLogin.Focus();
    this.txtLogin.SelectAll();
    }
    }
    }
    private void btnThoat_Click(object sender, EventArgs e)
    {
    Application.Exit();
    }

    private void frmLogin_Load(object sender, EventArgs e)
    {
    this.txtpass.KeyPress += new KeyPressEventHandler(keypressed);
    this.txtLogin.KeyPress += new KeyPressEventHandler(keypressed);
    }

    private void keypressed(object sender, KeyPressEventArgs e)
    {
    if (e.KeyChar == (char)Keys.Return)
    {
    e.Handled = true;
    loadMain();
    }
    if (e.Handled == true)
    {
    e.Handled = false;
    }
    }
    }
    }
     
  11. timgaidepnhat
    Offline

    timgaidepnhat User Was Banned

    48
    0
    12
    Ðề: Tự học VisualBasic.NEt toàn tập

    tui có toàn bộ e books này
    AE nào muốn thì liên hệ trực típ với tui
    bachocdao@yahoo.com
     
  12. tvhien
    Offline

    tvhien Khách

    Ðề: Tự học VisualBasic.NEt toàn tập

    Sao không thấy bé thanh ngọc bảo vệ source code trước đám đông nhỉ.
    Viết xong thì phải phân tích chứ.
    Theo tui source trên có thể viết đơn giản và tối ưu hơn khi viết class cho login.
    Trên "Presentation Tier" chỉ cần đưa tham số vào các func trong class sẽ trả về true/false --> showmessage ra màn hình.
    Nhanh gọn, dễ chỉnh sửa và nâng cấp.
     
  13. traitim_it
    Offline

    traitim_it Thành Viên Mới

    1
    0
    0
    Ðề: Tự học VisualBasic.NEt toàn tập

    chào <bachocdao@yahoo.com> mình cũng rất thích tự học bạn có thể cho minh được chứ! cấm ơn nhiều <htcitvn@yahoo.com.vn> có gì thì trao đổi lại nhé!
     
  14. cuongmaster
    Offline

    cuongmaster Thành Viên Mới

    26
    0
    1
    Ðề: Tự học VisualBasic.NEt toàn tập

    ây...bác bethanhngoc ui em chua thấy code cua bác có đoạn kết nối CSDL và trang sử lý cho nó..bác up nốt lên đi bác
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này