Trang 1
Chương 1: Tổng quan
1.1. Giới thiệu đề tài
Ngày nay, công nghệ thông tin vô cùng phát triển thì hầu như mọi người điều sử
dụng máy vi tính để làm việc. Và Công Nghệ Tin cũng đã được ứng dụng trong rất nhiều
lĩnh vực mà điển hình là lĩnh vực quản lý. Như chúng ta đã biết, việc quản lý thiết bị của
phòng thiết bị ở các cơ quan, trường học, công ty,… vẫn còn rất thủ công, việc ghi chép
thông qua sổ sách gặp rất nhiều trở ngại, gây khó khăn cho người quản lý khi muốn xem
xét tình trạng các mặt theo ngày, tháng, năm, theo quý, theo chi tiết thiết bị, theo nhóm
thiết bị,…Từ thực tế đó, việc xây dựng được phần mềm quản lý cho các phòng ban quản
lý thiết bị cho cơ quan, trường học, công ty,… là rất cần thiết. Đề tài của chúng em là
“Xây dựng phần mềm quản lý thiết bị ”. Vậy phần mềm là gì? Phần mềm (Software) là
một tập hợp những câu lệnh được viết bằng một hoặc nhiều ngôn ngữ lập trình theo một
trật tự xác định nhằm tự động thực hiện một số chức năng hoặc giải quyết một bài toán
nào đó.
1.2. Đặt vấn đề
Vấn đề được đặt ra với số lượng trang thiết bị của phòng thiết bị quản lý với các chức
năng thủ công như:
Với hệ thống quản lý cũ bằng văn bản giấy tờ
Dùng sổ sách để theo dõi tình trạng thiết bị.
Nhập các thiết bị thủ công, chưa có sự tính toán của máy tính.
Tìm kiếm, tra cứu thủ công trên sổ sách.
Cập nhât thiết bị trên sổ sách….
Ưu điểm của hệ thống quản lý nói trên là:
Hệ thống đã quen thuộc với người dùng
Giá thành quá thấp
Nhược điểm của hệ thống quản lý trên là:
Do quản lý bằng sổ sách giấy tờ nên tốn thời gian và nhân lực.
Dễ xảy ra sai sóat.
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 2
Khó có thể quản lý một cách chính xác thiết bị.
Dữ liệu có thể bị mất mát.
Tìm kiếm, tra cứu mất rất nhiều thời gian.
Cập nhật thiết bị, kiểm tra tình trạng rất khó khăn.
Báo cáo, thống kê thiết bị lại càng khó hơn.
Do vậy, yêu cầu đặt ra phải có một hệ thống mới, ứng dụng tin học vào quá trình
quản lý nhằm loại bỏ tất cả những nhược điểm trên của hệ thống cũ , đồng thời có những
tính năng vượt trội so với hệ thống cũ. Vấn đề cần giải quyết là phải tìm hiểu hệ thống cũ,
tiếp cận và xây dựng một phần mềm ứng dụng tin học với những ưu điểm khắc phục và
hạn chế những nhược điểm của hệ thống cũ.
1.3. Phạm vi đề tài
Yêu cầu xây dựng phần mềm quản lý thiết bị gồm các chức năng: thêm, xóa, sửa,
cập nhật, thống kê, báo cáo,…đây là đề tài cũng đã có nhiều người nghiên cứu qua. Nhưng
ở đây chúng tôi sẽ khảo sát và xây dựng thực tế trên phòng thiết bị của trương tôi đang
học “Trường Đại Học Kinh Tế Công Nghiệp Long An ”.Để xây dụng phần mềm chúng ta
cần cài đặt.
My SQL Server2008
Visual Studio 2010
Hình 1.1 Môi trường thực hiện
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 3
Chương 2: Cơ sở lý thuyết
2.1. Tổng quan
2.1.1. Tìm hiểu về “Phần mềm “
Phần mềm (Software) là một tập hợp những câu lệnh được viết bằng một hoặc
nhiều ngôn ngữ lập trình theo một trật tự xác định nhằm tự động thực hiện một số chức
năng hoặc giải quyết một bài toán nào đó.
2.1.1.1. Phân loại sản phẩm phần mềm
Có 2 cách phân loại phần mềm: Theo phương thức hoạt động và theo khả năng ứng dụng
Theo phương thức hoạt động:
Phần mềm hệ thống dùng để vận hành máy tính và các phần cứng máy tính, ví dụ
như các hệ điều hành máy tính Windows XP, Linux, Unix, các thư viên động (Dynamic
Linked Library – DLL) của hệ điều hành, các trình điều khiển (Driver), phần sụn
(Firmware) và BIOS. Đây là các loại phần mềm mà hệ điều hành liên lạc với chúng để
điều khiển và quản lý các thiết bị phần cứng.
Phần mềm ứng dụng để người sử dụng có thể hoàn thành một hay nhiều công việc
nào đó, ví dụ như các phần mềm văn phòng (Microsoft Ofices, Lotus 1-2-3, FoxPro), phần
mềm doanh nghiệp, phần mềm giáo dục, cơ sở dữ liệu, phần mêm trò chơi, chương trình
tiện ích, hay các loại phần mềm ác tính.
Các phần mềm chuyển dịch mã bao gồm trình biên dịch và trình thông dịch: các
loại chương trình này sẽ đọc các câu lệnh từ các mã nguồn được viết bởi các lập trình viên
bằng một ngôn ngữ lập trình mà dịch nó sang dạng ngôn ngữ máy mà máy tính có thể hiểu
được, hay dịch nó sang một dạng khác như là tập tin đối tượng (Object file) và các tập tin
thư viện (Library file) mà các phần mềm khác (như hệ điều hành chẳng hạn) có thể hiểu
để vận hành máy tính thực thi các lệnh.
Theo khả năng ứng dụng:
Những phần mềm không phụ thuộc, nó có thể được bán cho bất kỳ khách hàng nào
trên thị trường tự do. Ví dụ: Phần mềm về cơ sở dữ liệu như Oracle, đồ họa như
Photoshop, Corel Draw, soạn thảo và xử lý văn bản, bảng tính….Ưu điểm: Thông thường
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 4
đây là những phần mềm phần mềm có khả năng ứng dụng rộng rãi cho nhiều nhóm người
sử dụng. Khuyết điểm: Thiếu tính tùy biến, uyển chuyển.
Những phần mềm được viết theo đơn đặt hàng hay hợp đồng của một khách hàng
cụ thể nào đó (Một công ty, bệnh viên, trường học,…). Ví dụ: phần mềm điều khiển, phần
mềm hỗ trợ bán hàng,….Ưu điểm: có tính tùy biến, uyển chuyển cao để đáp ứng nhu cầu
của một nhóm người sử dụng nào đó. Khuyết điểm: Thông thường đây là những phần
mềm ứng dụng chuyên ngành hẹp.
2.1.1.2. Quá trình tạo nên một phần mềm
Về mặt thiết kế: Tùy theo mức độ phức tạp của phần mềm làm ra, người thiết kế
phần mềm sẽ ít nhiều dùng đến các phương tiện để tạo ra mẫu thiết kế theo ý muốn
(Chẳng hạn như sơ đồ khối, các lưu đồ, các thuật toán và các mã giả), sau đó mẫu này
được mã hóa bằng các ngôn ngữ lập trình và được các trình dịch chuyển thành các khối
lệnh (Module) hay là các tiệp tin khả thi. Tập hợp các tập khả thi và các khối lệnh đó làm
thành một phần mềm. Thường khi một phần mềm được tao thành, để cho hoàn hảo thì
phần mềm đó phải được điều chỉnh hay sửa chữa từ khâu thiết kế cho đến khâu tạo thành
phiên bản phần mềm một số lần. Một phần mềm thường sẽ tương thích với một hay nhiều
hệ điều hành, tùy theo cách thiết kế, cách viết mã nguồn và ngôn ngữ lập trình được dùng.
Về mặt sản xuất và phát triển phần mềm: Việc phát triển và đưa ra thị trường
của một phần mềm là đối tượng nghiên cứu của bộ môn kỹ nghệ phần mềm hay còn gọi là
công nghệ phần mềm (Software Engineering). Bộ môn này nghiên cứu các phương pháp
tổ chức, cách thức sử dụng nguồn tài nguyên, vòng quy trình sản xuất, cùng với các mối
liên hệ với thị trường, cũng như liên hệ giữa các yếu tố này với nhau. Tối ưu hóa quy trình
sản xuất phần mềm cũng là đối tượng nghiên cứu của bộ môn.
2.1.1.3. Các loại phần mềm
Có 3 loại phần mềm: Phần mềm hệ thống, phần mềm lập trình, phần mềm ứng dụng.
Phần mềm hệ thống: Giúp vận hành phần cứng máy tính và hệ thống máy tính.
Nó bao gồm các hệ điều hành, phần mềm điều vận thiết bị (Divce Driver), các công cụ
phân tích (Diagnostic Tool), trình phục vụ, hệ thống cửa sổ, các tiện ích,….Mục đích của
phần mềm hệ thống là để giúp các lập trình viên úng dụng mà không phải quan tâm đến
các chi tiết của hệ thống máy tính phức tạp được sử dụng, đặc biệt là các tính năng bộ nhớ
và các phần cứng khác chẳng hạn như máy in, bàn phím, thiết bị hiện thị,.
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 5
Phần mềm lập trình: Thường cung cấp các công cụ hỗ trợ lập trình viên trong khi
viết chương trình và phần mềm bằng các ngôn ngữ lập trình khác nhau. Các công cụ này
bao gồm các trình soạn thảo, trình biên dịch, trình thông dịch, trình liên kết, trình tìm lỗi,
….Một môi trường phát triển tích hợp (IDE) kết hợp các công cụ này thành một gói phần
mềm và một lập trình viên không cần gõ nhiều dòng lệnh để dịch, tìm lỗi, lần bước,…vì
IDE thường có một giao diện người dùng đồ họa cao cấp (GUI).
Phần mềm ứng dụng: Bao gồm các phần mềm tiện ích và phần mềm quản lý là
những phần mềm ứng dụng với nhiệm vụ thực hiện tin học hóa các quá trình quản truyền
thống, không chỉ đơn thuần là việc lưu trữ hay xử lý thông tin. Việc xây dựng và khai thác
phần mềm quản lý đòi hỏi sự am hiểu về Chuyên môn quản lý tương ứng, ví dụ như: Quản
lý con người, Quản lý kho hàng, Quản lý lương, Quản lý thiết bị,…..Ngày nay, các phần
mềm quản lý có xu hướng “trực tuyến “ nhiều hơn nhờ công nghệ trên nền Internet phát
triển mạnh. Một số chủng loại phần mềm quản lý tiêu biểu như: Quản lý kinh doanh và
hoạt động Siêu thị, Quản lý nhân sự, Quản lý tài sản, Quản lý bán hàng…v.v…
2.1.2. Tìm hiểu về C#
C# là gì? C# là một ngôn ngữ lập trình hướng đối tượng, ngôn ngữ biên dịch, ngôn
ngữ đa năng được phát triển bởi hãng Microsoft, là một phần khởi đầu cho kế hoạch
.NET. Microsoft phát triển C# dựa trên C, C++ và Java. C# được miêu tả là ngôn ngữ có
được sự cân bằng giữa C++, Visual Basic, Delphi và Java.
Đặt điểm của C#: là theo một hướng nào đó, thì ngôn ngữ lập trình phản ánh trực
tiếp nhất đến .NET Framework mà tất cả các chương trình .NET chạy, và nó phụ thuộc
mạnh mẽ vào Framework này. Mọi dữ liệu cơ sở đều là đối tượng, được cấp phát và hủy
bỏ bởi trình dọn rác Garbage-Collector (GC), và nhiều kiểu trừu tượng khác chẳng hạn
như class, delegate, interface, exception,….v.v…, phản ánh rõ ràng những đặc trưng
của .NET runtime.
So sánh C# với C và C++: Ngôn ngữ này bị giới hạn và được nâng cao ở một vài
đặc điểm nào đó, nhưng không bao gồm các giới hạn sau đây:
Các con trỏ chỉ có thể được sử dụng trong chế độ không an toàn. Hầu hết các
đối tượng được tham chiếu an toàn, và các phép tính đều được kiểm tra tràn bộ
đệm.
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 6
Các con trỏ chỉ được sử dụng để gọi các loại kiểu giá trị; còn những đối
tượng thuộc bộ thu rác (garbage-collector) thì chỉ được gọi bằng cách tham chiếu.
Các đối tượng không thể được giải phóng tường minh.
Chỉ có đơn kế thừa, nhưng có thể cài đặt nhiều interface trừu tượng
(abstract interfaces ). Chức năng này làm đơn giản hóa sự thực thi của thời gian
thực thi.
C# thì an-toàn-kiểu (typesafe) hơn C++.
Cú pháp khai báo mảng khác nhau ("int[] a = new int[5]" thay
vì "int a[5]").
Kiểu thứ tự được thay thế bằng tên miền không gian (namespace).
C# không có tiêu bản.
Có thêm Properties, các phương pháp có thể gọi các Properties để truy cập.
Có reflection.
Tại sao bạn nên học C#? Vì nó là ngôn ngữ lập trình cốt yếu nhất của.Net
framework mà tất cả các chương trình.NET chạy, và nó phụ thuộc mạnh mẽ vào
Framework. Cuối cùng đã có rất nhiều ứng dụng phần mềm được thiết kế trên C#.
2.1.3. Tìm hiểu NET FRAMEWORK
2.1.3.1. NET FRAMEWORK là gì?
NET Framework của Microsoft là một nền tảng lập trình tập hợp các thư viện lập
trình có thể được cài thêm hoặc đã có sẵn trong các hệ điều hành Windows. Nó cung cấp
những giải pháp thiết yếu cho những yêu cầu thông thường của các chương trình điện toán
như lập trình giao diện người dùng, truy cập dữ liệu, kết nối cơ sở dữ liệu, ứng dụng web,
các giải thuật số học và giao tiếp mạng. Ngoài ra, .NET Framework quản lý việc thực thi
các chương trình được viết dựa trên .NET Framework do đó người dùng cần phải
cài .NET Framework để có thể chạy các chương trình được viết trên nền .NET.
Chẳng hạn, để thiết kế một trò chơi đua xe, nếu không có bộ Framework chuyên
dụng cho game, người lập trình game phải tự tạo ra: khung xe, bánh xe, người, đường đi,
cây, biển báo... rồi mới tính đến chuyện “lắp ghép” chúng lại với nhau để tạo ra không
gian cho game; trong khi cũng với dạng trò chơi này, nhưng nếu dùng bộ Framework có
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 7
sẵn đã được phát triển thì người lập trình viên chỉ cần viết các lệnh để lấy chúng ra từ
Framework và ghép chúng lại.
Tuy nhiên, không phải mọi ngôn ngữ lập trình đều khai thác được Framework,
muốn sử dụng các “vật liệu” trong bộ Framework, đòi hỏi người lập trình viên phải dùng
các ngôn ngữ lập trình có hỗ trợ công nghệ .NET như VB.NET, C#.NET, ASP.NET.
Hình 2.1 Bô NET Framework 4.0
2.1.3.2. Thành phần cấu trúc và chức năng của NET FRAMEWORK
Thành phần cấu trúc của NET Framework: Gồm có các thành phần cơ bản là:
COMMON INTERMEDIATE LANGUAGE (CIL)
COMMON TYPE SYSTEM (CTS)
COMMON LANGUAGE SPECIFICATION (CLS)
ASSEMBLY (METADATA DEFINITION)
COMMON LANGUAGE RUNTIME (CLR)
BASE CLASS LIBRARY (BCL)
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 8
Hình 2.2 Cấu trúc của NET Framework
COMMON INTERMEDIATE LANGUAGE (CIL) là gì? Là khi một ngôn ngữ
biết .Net được biên dịch. Đầu tiên, nó sẽ được biên dịch thành một định dạng trung gian
được gọi làCommon Intermediate language (CIL) hay còn được gọi là Microsoft
Intermediate Language (MSIL hay IL). Mục đích chính phải chuyển tất cả các ngôn ngữ
về định dạng trung gian CIL (Common Intermediate Language) vì .NET muốn nhất quán
về sau này. Nếu cứ tạo cho các ngôn ngữ biết .NET trình biên dịch riêng ra mã máy thì
chẳng khác gì như trước, mạnh ai nấy chạy. Hay tạo thẳng một trình biên dịch chung trực
tiếp ra mã máy thì khi có một ngôn ngữ tham gia vào .NET, .NET lại phải rồng vai lên cấu
hình cho nó. Mục đích mà .NET nhắm tới là tất cả các ngôn ngữ sẽ có thể dùng chung môi
trường, sẽ sử dụng code lẫn nhau mà người viết code không phải lo lắng hay đòi hỏi phải
phân tán kiến thức vào nhiều ngôn ngữ. Vì thế, cách tốt nhất là nó cho phép các nhà phát
triển ngôn ngữ tự cấu hình trình biên dịch theo .NET, và .NET tạo ra ngôn ngữ trung gian
CIL. Để có được định dạng này, các ngôn ngữ biết .NET phải tuân thủ và tương thích với
CTS (Common Type System) và CLS (Common Language Specification). Kết quả mã
MSIL sẽ được đưa vào trong các component *.dll hay application *.exe khái quát
chung là các Assembly.
COMMON TYPE SYSTEM (CTS) là gì? Là các loại dữ liệu định nghĩa mà nó
sẵn sàng để dùng trong CIL (Common Intermediate language). Nó thiết lập khung sườn
chuẩn cho phép các ngôn ngữ khi tham gia vào .Net phải chuyển kiểu dữ liệu tương thích
với .Net. Có hai loại dữ liệu chính là: Reference type và Value type.
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 9
Reference type: kiểu chuỗi, class, interface, delegate…
Value type: các kiểu số, luận lý, enumerations, người dùng định nghĩa như struct
Hình 2.3 Cơ chế hoạt động của CTS
COMMON LANGUAGE SPECIFICATION (CLS) là gì? Là một tập các quy
tắc mà ngôn ngữ biết .NET phải tuân theo để tạo ra các ứng dụng. Nó hỗ trợ mạnh mẽ để
các ngôn ngữ biết .Net chuyển đổi tương thích với CTS (Common Type System) của .Net
Framework tạo ra các ứng dụng. Ví dụ: một kiểu số nguyên cùa .Net là System.Int32
(Common Type System). Nhưng ngôn ngữ VB.Net có kiểu số nguyên là Integer, còn C#
là int vì thế chúng phải tuân theo các quy tắc CLS (Common Language Specification) để
khi biên dịch vẫn tương thích với System.Int32. Như vậy kiểu int trong ngôn ngữ C# có
thể ánh xạ đúng đắn đến kiểu Integer trong VB.Net. Ngay cả khi một số ngôn ngữ cho quá
tải toán tử một số thì không có, một số ngôn ngữ có số nguyên có dấu và không dấu, một
số thì chỉ có số nguyên có dấu. Vì thế nếu không có các quy tắc tuân thủ thì ngôn ngữ này
khó mà ánh xạ chính xác đến ngôn ngữ khác.
ASSEMBLY (METADATA DEFINITION) là gì? Assembly đơn giản là việc
chia sẻ và dùng lại mã. Ví dụ thực tiển như: Khi xây dựng xong một chương trình, viết
chương trình khác cần lại code, cách đơn giản là sao chép mã từ chương trình cũ và dán
vào chương trình mới đã viết. Nhưng nếu chương trình viết bằng một ngôn ngữ khác? Một
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 10
cách khác năng động hơn là dùng COM (Component Object Model), nó không chỉ cho
phép chương trình này dùng lại các mã của chương trình khác mà còn cho phép ngôn ngữ
khác nhau có thể sử dụng mã của nhau. Tuy nhiên nó yêu cầu những người xây dựng
chương trình sẽ phải biết nhiều khái niệm phức tạp và mới của những ngôn ngữ khác
nhau. Và khó khăn nhất là xung đột phiên bản. Cuối cùng .Net Framework đưa ra khái
niệm Assembly, cho phép những ngôn ngữ khác nhau đều có thề dùng lại code của nhau
mà không cần yêu cầu người xây dựng biết nhiều ngôn ngữ, không xung đột các phiên
bản… và bất chấp mọi hệ điều hành khác nhau. Như vậy Assembly là đơn vị logic căn
bản của .Net, chúng có thể là component *.dll hay các ứng dụng *.exe. Quá trình biên
dịch lần đầu tiên tạo ra chúng có cấu trúc như sau:
Hình 2.4 Cấu trúc của Assembly
Assembly manifest: chứa các thông tin tên Assembly (file *.dll hay *.exe), phiên
bản, thông tin ngôn ngữ mà nó hỗ trợ như (tiếng anh, pháp…), hệ điều hành, mã hóa khóa
công khai (public key).
Type metadata: nó là thông tinh nhị phân, nó dựa vào MSIL Code để mô tả tất cả
thông tin của Assembly. Như tên của tất cả các file có trong Assembly, có bao nhiêu class,
mỗi class có những phương thức nào, bao nhiêu đối số, các kiểu dữ liệu sẽ được xuất ra,
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 11
các assembly khác mà assembly này phụ thuộc vào (nếu có), thực thi các interface nào.
Mô tả tất cả các loại–kiểu và tài nguyên có trong Assembly như các phương thức, biến,
thuộc tính, sự kiện, các tham số.
Resources: các hình ảnh, âm thanh, phim…
Thành phần quan trọng nhất mà tất cả các Assembly phải có và không thể thiếu
là manifest: Nó tránh xung đột phiên bản, nó giúp cấu hình cài đặt với hệ thống, giúp các
nhà quản lý biết chính xác những thay đổi để quản lý khi ứng dụng đã triển khai. Quyền
tác quyền…
COMMON LANGUAGE RUNTIME (CLR) là gì? Nó quản lý code tại thời
điểm thực thi, cung cấp các dịch vụ cốt lõi như tự động quản lý bộ nhớ, quản lý các tiến
trình (threading), kiểm tra mã an toàn, các tác vụ truy cập từ xa. Điều quan trọng là nó
biên dịch Assembly sang mã máy (native code) bằng trình biên dịch được gọi là Just-InTime (JIT) nằm trong nó. Đây là lần biên dịch thứ hai, và nhanh hơn lần đầu vì định dạng
CIL (Common Intermediate Language) gần tương đồng với mã máy. Hơn thế, khi JIT biên
dịch nó, sẽ đưa vào bộ nhớ để lần sau khi chạy không cần biên dịch lại.
Hình 2.5 Cấu trúc hoạt động của CLR
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 12
BASE CLASS LIBRARY (BCL) là gì? Là một tập các thư viện lớp cơ sở cho
phép thực hiện mọi tác vụ liên quan đến cơ sỡ dữ liệu, các giao diện Winform-Webform,
bảo mật, các chức năng IO nhập xuất, gỡ gối… Nó không chỉ làm cho .Net Framework dễ
dùng mà còn làm giảm thời gian viết code. Chú ý: Base Class Library còn có tên gọi khác
là .Net Framework Class Library (FCL). Chúng là các không gian tên như System.IO,
System.Windows.Forms…..Chúng tham gia và hỗ trợ tích cực cho CLR (Common
Language Runtime), khi lần thứ hai các Assembly được biên dịch ra mã máy.
Hình 2.6 Cấu trúc hoạt động của BCL
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 13
Chức năng của NET Framework:
Hình 2.7 Tổng quan các chức năng hoạt động của NET Framework
Cung cấp môi trường lập trình hướng đối tượng, cho phép mã được lưu và chạy tại
máy cục bộ, hoặc triệu gọi từ xa.
Cung cấp môi trường thực thi code để triển khai các ứng dụng nhỏ và những xung
đột phiên bản, thực thi code an toàn bao gồm cả các ngôn ngữ của các hãng thứ ba.
Cung cấp cho người phát triển những ứng dụng mạnh mẽ nhất quán trên nền
Winform và Webform.
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 14
2.1.4. Tìm hiểu Microsoft Visual Studio .NET
2.1.4.1. Giới thiệu Microsoft Visual Studio .NET
Visual Studio .NET là môi trường tích hợp phát triển phần mềm (Integrated
Development Environment (IDE) ) của Microsoft, là công cụ cho phép bạn viết mã, gỡ rối
và biên dịch chương trình trong nhiều ngôn ngữ lập trình .NET khác nhau .
.NET Application: được chia làm 2 loại là ASP.NET dành cho Internet và
Windown Forms dành cho Desktop.
Hình 2.8 .NET Applications
Components of Microsoft .NET Framework: gồm có ASP.NET, Windows
Forms, .NET Framework Base Classes và Common Language Runtime
ASP.NET gồm: Web Services, Web Forms, ASP.NET Application Services.
Windows Forms gồm: Controls, Drawing, Windows Application Services.
.NET Framework Base Classes gồm: ADO.NET, XML, Threading, Net, Security,
Diagnostics, IO, Etc.
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 15
Common Language Runtime gồm: Memory Mangement, Common Type System,
Lifecycle Monitoring.
Hình 2.9 Components of Microsoft .NET Framework
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.
ADO.NET là 1 cache database (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 newest data 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
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 16
2.1.4.2. Lịch sử phát triển của Microsoft Visual Studio
Microsoft Visual Studio 97: Microsoft lần đầu ra mắt Visual Studio vào năm 1997
và tích hợp nhiều công cụ phát triển đi kèm. Visual Studio 97 có 2 phiên bản là
Professional and Enterprise. Lúc này visual studio có chứa các ngôn ngữ lập trình như:
Visual Basic 5.0 và Visual C++ 5.0 dành cho HDH Windows; Visual J++ 1.1 dành cho
Java; Visual FoxPro 5.0 lập trình CSDL; Visual InterDev để thiết kế web động như ASP,
hỗ trợ cả 2 ngôn ngữ là JAVASCRIPT và VBSCRIPT. Visual Studio 97 được Microsoft
thử nghiệm việc sử dụng cùng một môi trường phát triển cho nhiều ngôn ngữ. Visual C++,
Visual J++, InterDev, và MSDN Library… Developer Studio) sử dụng chung một môi
trường phát triển WinAPI. Trong khi Visual Basic và Visual FoxPro lại phát triển theo
một hướng riêng lẻ so với các ngôn ngữ trên.
Microsoft Visual Studio 6.0: Là một phiên bản tiếp theo (version 6.0) ra đời năm
1998 cải thiện thêm cho Visual Studio 97.Visual J++ nâng cấp lên 1.1. Visual InterDev
1.0. Cùng với Windows98, đây là năm mà Microsoft thành công nhất. Phiên bản này như
là một cơ sở, một nền tảng mà Microsoft phải mất tới 4 năm để phát triển lên một môi
trường phát triển mới mà giờ đây người ta gọi là .NET Framework. Visual Studio 6.0 là
phiên bản cuối cùng của các ngôn ngữ Visual Basic, Visual J++, đặc biệt trong phiên bản
J++ đã được cải tiến thêm một số chức năng hướng đối tượng khác và nhanh chóng bán
công cụ lập trình này với mục tiêu là JVM (Java Virtual Machine). Nói về JAVA một
chút, nó được phát triển lên từ C/C++ do đó cú pháp tương đối giống, tuy nhiên nó được
thiết kế độc lập với HDH. Nền tảng ngôn ngữ của Java là các class (.class), nó chính là các
đối tượng. Lập trình Java có thể dựa vào các class có sẵn của hệ thống, đồng thời vẫn có
thể xây dựng thêm các class mới để hoàn chỉnh chương trình. JVM có vai trò rất quan
trọng để các ứng dụng Java hoạt động. Nó hoạt động giống một máy tính ảo, có bộ lệnh,
cấu trúc bộ nhớ... JVM được xây dựng ở tất cả các HDH. Nó dịch các class của Java và đó
là lý do để các ứng dụng Java hoạt động được ở các HDH. Việc MS sử dụng sản phẩm
Java của mình đã làm SUN ghi đơn kiện MS. Và mối quan hệ gay gắt giữa MS và SUN
vẫn kéo tới tại ngày nay. Khác với VC97. Visual J++ Visual InterDev không sử dụng
chung môi trường phát triển WINAPI của Visual C++ nữa, trong khi đó Visual Basic và
Visual FoxPro vẫn tiếp tục đi theo những công cụ lập trình của mình.
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 17
Microsoft Visual Studio 2002: Microsoft phát hành Visual Studio .NET vào
tháng 2 năm 2002 (bản beta được phát hành năm 2001). Đó là một sự thay đổi lớn trong
công nghệ phát triển phần mềm. Microsoft đã giới thiệu một môi trường phát triển “quản
lý code” (managed code) sử dụng .NET Framework. Chương trình được phát triển sử
dụng .NET không được biên dịch giống như C++ trước đây. Nhưng được biên dịch theo
một ngôn ngữ trung gian gọi là MSIL (Microsoft Intermediate Language) hoặc CIL
(Common Intermediate Language). Khi chương trình MSIL(Microsoft Intermediate
Language) chạy thì nó mới được biên dịch bằng ngôn ngữ máy (ASM), và từ đây người ta
có thể lập trình ra được các phần mềm dưới dạng portable nghĩa là chỉ chạy không cần cài
đặt.
Ngoài ra Microsoft cho ra đời 2 ngôn ngữ mới là C# (C-sharp) và J# với mục tiêu là lập
trình trên môi trường .NET. J# là thế hệ tiếp theo của J++. Visual J# dùng cú pháp của
ngôn ngữ Java. Tuy nhiên không giống như Visual J++, Visual J# có thể hoạt động độc
lập trên .NET Framework, Nó không còn phụ thuộc vào JVM và các công cụ của Java.
Microsoft Visual Studio 2003: Vào tháng 4 năm 2003, Microsoft hoàn thành một
bản nâng cấp của Visual Studio.NET. Nâng cấp thêm .NET Framework thành phiên bản
1.1 với sự hỗ trợ cho việc phát triển ứng dụng trên điện thoại di động và ASP.NET.
Trình biên dịch Visual C++ được cải thiện thêm nhiều so với C++ chuẩn trước đây, chủ
yếu là thêm một số từ khóa mới để thích hợp với .NET.
Microsoft Visual Studio 2005: Được phát hành vào tháng 10 năm 2005. Cùng với
NET Framework, được nâng cấp lên thành version 2.0. Đây cũng là phiên bản cuối cùng
thích hợp cho Windows 2000. Microsoft phát hành Service Pack1 cho Visual Studio 2005
vào 14 tháng 12 năm 2006. Bản nâng cấp Service Pack 1 cho Windows Vista được hoàn
thành vào 3/6/2007. Phiên bản này cung cấp các công cụ mới cho việc phát triển mã cơ sở
dữ liệu phía trình chủ của SQL Server 2005. Nó cũng hỗ trợ .NET Framework 2.0, cụ thể
có các công cụ hỗ trợ các tính năng ASP.NET 2.0 (như các mẫu “Master Pages” chung
cho các trang thông thường) và sự triển khai “ClickOnce” của các ứng dụng nhỏ trên máy
khách. Visual Studio 2005 đã giới thiệu các API Visual Basic được đơn giản hóa cho các
nhiệm vụ lập trình chung nhất và khôi phục các tính năng Visual Basic IDE (như việc gỡ
rối “edit-and-continue”), đây là tính năng không có trong Visual Studio .NET 2003 và
Visual Studio .NET. Visual Studio 2005 cũng cung cấp một công nghệ tối ưu hóa hiệu
suất mới cho C++ “profile-driven” đặc biệt dành cho các ISV thương mại. Visual Studio
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 18
2005 giới thiệu một số phiên bản mới của IDE để sử dụng với Team Foundation Server.
Mặc dù vậy, các phiên bản Visual Studio 2005 Express, Standard và Professional của IDE
có thể được sử dụng độc lập cho dịch-gỡ rối trước đây và chúng cũng có thể được sử dụng
với các công cụ dành cho nhóm phát triển từ các hãng khác.
Microsoft Visual Studio 2008: Ngày 19/11/2007, Microsoft chấm dứt tiến trình
thử nghiệm kéo dài tới 18 tháng và tung ra phiên bản chính thức Visual Studio 2008.
Visual Studio 2008 tích hợp những tính năng có thể làm thoả mãn bất kỳ nhà phát triển
ứng dụng nào. Visual Studio 2008 được đánh giá cao qua những điểm nổi trội sau:
Thứ nhất: Visual Studio 2008 tích hợp phiên bản chính thức .NET Framework
3.5 và môi trường đồ hoạ động mới nhất Silverlight. Visual Studio 2008 còn có thêm một
công cụ mới nữa là Popfly Explorer. Đây là công cụ cho phép nhà phát triển xây dựng
các ứng dụng dịch vụ web trên nền tảng Silverlight mới ra mắt của Microsoft.
Thứ hai: Visual Studio 2008 giờ cũng đã tích hợp khả năng hỗ trợ nhiều ngôn ngữ
động như IronRuby và IronPython. Và cuối cùng là Visual Studio 2008 được Microsoft
tích hợp thêm LINQ. Tính năng này cho phép ngôn ngữ lập trình .NET có thể truy vấn dữ
liệu thông qua Lexicon tương tự như SQL nhưng không cần phải thông qua các bộ xử lý
dữ liệu như ADO.
Thứ ba: Công cụ Sync Framework tích hợp sẵn giúp mở rộng khả năng hỗ trợ
đồng bộ hoá của Visual Studio 2008 cho phép tạo ứng dụng phối hợp ngoại tuyến hoặc
ngang hàng. Microsoft tuyên bố Sync Framework là nền tảng để đưa dịch vụ web và cơ sở
dữ liệu từ trên mạng xuống dưới PC, hỗ trợ đồng bộ hoá ngang hàng bất kỳ loại tệp tin nào
theo bất kỳ thủ tục truyền tải, loại dữ liệu hoặc hình thức lưu trữ nào. Những đặc điểm này
ta có thể thấy rõ đã tạo ra một bước tiến lơn.
Microsoft Visual Studio 2010 và NET Framework 4.0: Visual Studio 2010 và
.NET Framework 4.0 tập trung vào những cột trụ cốt lỗi trong trải nghiệm phát triển phần
mềm, cung cấp những nền tản mới nhất, những trải nghiệm nhắm tới các loại ứng dụng
nhất định, cùng nhiều cải thiện về kiến trúc lỗi. Sau đây là những điểm mới trong
Microsoft Visual Studio 2010:
Microsoft Visual Studio 2010 đơn giản hóa quá trình phát triển giải pháp, giảm
thiểu nguy cơ cũng như tăng cường kết quả trả về. Các công cụ cho mọi giai đoạn trong
chu trình phát triển, từ thiết kế, phát triển đến kiểm định và triển khai, cho phép bạn thỏa
sức thể hiện trí tưởng tượng và mang đến những giải pháp có ảnh hưởng lớn.
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 19
Microsoft Visual Studio 2010 cung cấp một môi trường tích hợp các công cụ và
kiến trúc máy chủ nhằm đơn giản hóa toàn bộ tiến trình phát triển ứng dụng. Tạo ra những
kết quả kinh doanh với những tiến trình hiệu quả, tùy biến và có thể dự đoán cũng như
tăng cường khả năng làm việc liên thông cùng khả năng theo dõi trong suốt chu trình phát
triển với các phân tích chi tiết. Bất kể là tạo lập các giải pháp mới hay tăng cường các ứng
dụng hiện có giải phóng sức sáng tạo của bạn với các công cụ dựng mẫu, kiến trúc và phát
triển cho phép bạn hiện thực hóa tầm nhìn nhắm đến số lượng nền tảng và công nghệ luôn
mở rộng, bao gồm điện toán đám mây và song song. Hiện thực hóa hiệu quả làm việc
nhóm bằng cách khai thác các tính năng cộng tác tiên tiến cũng như sử dụng các công cụ
kiểm định và dò lỗi tích hợp nhằm vừa đảm bảo chất lượng giải pháp vừa giảm thiểu phí
tổn phát triển.
Thích hợp với các hệ điều hành hỗ trợ: Windows XP, Windows 7; Windows Server
2003; Windows Server 2008; Windows Vista
2.1.4.3. LinQ trong Microsoft Visual Studio 2010
LINQ là một sự sáng tạo mới trong .NET Framework 4.0 (LangueIntegrate Query)
là một tập hợp mở rộng ngôn ngữ cho phép thực hiện các truy vấn trong ngôn ngữ C#
2010 và Visual Basic 2008. LINQ cho phép select, filter, sort, group và transform data từ
các nguồn data source khác nhau theo một cách chung. LINQ to Objects thực hiện truy
vấn các đối tượng, LINQ to DataSet thực hiện truy vấn DataSet, LINQ to SQL thực hiện
truy vấn đến cơ sở dữ liệu SQL Server mà không phải viết code, LINQ to XML đọc dữ
liệu từ định dạng XML.
Những hỗ trợ của C#3.0 cho LINQ
Để LINQ tích hợp chặt chẽ với C#, những cải tiến quan trọng đã được thêm vào
trong ngôn ngữ. Có thể nói những thay đổi chính trong C# 3.0 là để phục vụ LINQ. Sau
đây là vài tính năng mới được bổ sung:
Lambda expression..Từ khóa var, cách khởi tạo đối tượng và tập hợp mới, các kiểu
nặc danh(anonymous types).
Các phương thức mở rộng (extension methodsa).
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
Trang 20
Lambda expression: Có thể xem như là cách viết gọn của delegate. C# 2.0 có
anonymousmthod cho mục đích này, và bây giờ với C# 3.0 là lambda (=>), và cuối cùng
là một bieetu thức hoặc một khối các cậu lệnh. Một biểu thức lambda trong C# trông như
thế này:
(param1, param2, param3,…,paramN)=>expr
Khi việc tính toán phức tạp hơn, ta có thể sử dụng một khối câu lệnh:
(param1, param2,…, paramN)=>
{
statchung ement1;staterment2;
…s
tatermentN;
return(lambda_expression_return_type);
}
Các bước sử dụng LINQ
Để sử dụng LINQ, tạo một biểu thức LINQ
Giá trị trả về từ một biểu thức LINQ là một đối tượng iterator hiện
thựcIEnumerable
Khi lặp qua đối tượng iterator, LINQ mới thực sự thực hiện công việc. Cơ chế này
được gọi là Deferred Execution.
Linqdatasource
LinqDataSourc là một control có thể thực hiện nhiều tác vụ thêm, sửa, xóa dữ liệu
một cách tự động. Với LinqDataSource không cần viết code cho cả việc cập nhập, sửa đổi
dữ liệu cũng giống như SqlDataSource.
GVHD: TSKH. Lê Đình Tuấn
SVTH: Trần Minh Toàn
- Xem thêm -