1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng phần mềm quản lý bán hàng điện tử, đồ gia dụng

78 448 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 78
Dung lượng 3,55 MB

Nội dung

.NET framework bao gồm tập các thư viện lập trình lớn, và những thư viện này hỗ trợ việc xây dựng các chương trình phần mềm như lập trình giao diện, truy cập, kết nối cơ sở dữ liệu, ứng

Trang 1

VIỆN ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ ĐIỆN TỬ - THÔNG TIN

Hệ : ĐẠI HỌC CHÍNH QUY

Hà nội, tháng 05 năm 2017

Trang 2

VIỆN ĐẠI HỌC MỞ HÀ NỘI CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập - Tự do – Hạnh phúc KHOA CN ĐIỆN TỬ - THÔNG TIN

- Giới thiệu đề tài

- Tổng quan về ngôn ngữ lập trình c# và hệ thống quản trị cơ sở dữ liệu SQL

- Thiết kế cơ sở dữ liệu bằng SQL Server 2014 Management Studio

- Xây dựng phầm mềm bằng phần mềm Visual Studio 2015

- Đánh giá kết quả và hướng phát triển đề tài

3 Ngày giao :19 /12/2016

4 Ngày nộp: 19/05/2017

Trang 3

MỞ ĐẦU

Công nghệ hiện đại luôn có những cách riêng để tác động đến cuộc sống, nó mang đến một cách sống mới, một tầm nhìn mới và một tương lai mới cho đời sống chúng ta hằng ngày Nó có thể làm hết tất cả mọi công việc mà chúng ta vẫn làm thường ngày, và đó chính là những thiết bị gia dụng đa năng, nhiều chức năng cao cấp

và chưa bao giờ ngừng cải tiến, hy vọng những thiết bị gia dụng sẽ thay thế con người trong những hoạt động thường ngày Có rất nhiều sản phẩm với những tính năng đặc biệt với thiết kế tiện lợi, tiết kiệm năng lượng, tiết kiệm không gian và vô cùng tinh tế Chúng đến với đời sống của chúng ta bằng rất nhiều con đường Mặc dù chúng ta có thể thấy chúng trong những khu vực như phòng giặt ủi, phòng ngủ, phòng khách và đặc biệt nhà bếp là nơi tập trung của những thiết bị gia dụng, đó là lý do tại sao có rất nhiều sản phẩm công nghệ hiện đại và cải tiến luôn xuất hiện ở khu vực nhà bếp của bạn Công nghệ luôn không ngừng tác động đến những thiết bị gia dụng để chúng trở nên hoàn thiện hơn, những thiết bị này đang làm cho mọi thứ công việc nhà của bạn trở nên đơn giản hơn như lau dọn, giặt là, nấu ăn và nhiều công việc khác Thêm nữa, chúng còn khiến cho căn nhà của bạn trở nên hiện đại hơn, sáng sủa hơn, và đẹp đẽ hơn Đó là một sự kết hợp hoàn hảo giữa hiệu quả sử dụng và tính thẩm mỹ cao Điều duy nhất mà người tiêu dùng cần làm đó chính là việc cân nhắc đến một thiết bị phù hợp nhất với nhu cầu của bạn, và chuyện đưa ra quyết định mua hàng thực sự đơn giản hơn rất nhiều

Chắc chắn rằng có rất nhiều thiết bị giúp chúng ta trong những công việc hằng ngày nhờ vào những thành tựu khoa học của con người Sự nhảy vọt trong việc ứng dụng công nghệ và sự tìm tòi những kiến thức mới đã đưa chúng ta đến những phát minh ưu việt Nhưng với sự dày đặc của những thiết bị gia dụng như hiện nay, liệu chúng ta có lựa chọn được những thứ phù hợp, bạn có thể phân loại chúng từ những thiết bị hiện đại cao cấp nhất cho đến những thiết bị cơ bản nhất, nhưng đừng vội đánh giá thấp chúng, vì biết đâu chính những điều đơn giản nhất trong đồ dùng lại

chính là điều bạn cần Đồ gia dụng như tủ lạnh, máy sấy tóc, máy giặt, máy lạnh là

những thiết bị phổ biến nhất mà nhiều người vẫnhay sử dụng Những tiện ích mà chúng mang đến cho đời sống của chúng ta luôn không bao giờ thay đổi kể từ khi

Trang 4

chúng đượctung ra thịtrường Những ưu điểm mà chúng mang lại khiến những thiết bị

ấy không bao giờ tách khỏi được cuộc sống của con người Hãy tưởng tượng nếu như chúng ta không có tủ lạnh, bao nhiêu thức ăn sẽ thối rữa dần dần trong không gian nhà của chúng ta? Làm sao bạn có thể xoay xở giặt giũ hàng tá quần áo vào cuối tuần nếu không có máy giặt? Liệu những trung tâm thương mại có còn thu hút được mọi người không nếu như không trang bị máy điều hòa? Những thiết bị gia dụng cao cấp ấy mang đến những ưu điểm cho bên trong lẫn bên ngoài không gian sống của bạn Bạn có thể xem chúng như là một trong những điều may mắn mà cuộc sống đã ban tặng

Trang 5

án này trong đúng thời gian cho phép

Em xin cảm ơn gia đình em đã giúp đỡ em cả về vật chất và tình thần.Cảm ơn gia đình đã có những lời động viện những lúc em khó khắn trong quá trình hoàn thành đồ

án này

Em xin cảm ơn bạn bè em đã động viện em cũng như những góp ý bổ ích để em hoàn thành những chỗ em còn thiếu xót trong quá trình làm đồ án

Cuối cùng em kính chúc quý thầy cô dồi dào sức khỏe và thành công sự nghiệp

Em xin chân thành cảm ơn !!!

Trang 6

NHẬN XÉT

CỦA GIẢNG VIÊN HƯỚNG DẪN

………

………

………

………

………

………

………

……… .

……….

………

………

………

………

………

………

………

………

………

Điểm: ……… ( Bằng chữ: ……… )

Hà Nội, ngày … tháng … năm 2017 Giảng viên hướng dẫn

(kí và ghi rõ họ tên)

Trang 7

NHẬN XÉT

CỦA GIẢNG VIÊN PHẢN BIỆN

………

………

………

………

………

………

………

……… .

……….

………

………

………

………

………

………

………

………

………

Điểm: ……… ( Bằng chữ: ……… )

Hà Nội, ngày … tháng … năm 2017 Giảng viên hướng dẫn

(kí và ghi rõ họ tên)

GV1 GV2 GV3 GV4

Trang 8

MỤC LỤC

MỞ ĐẦU

LỜI CẢM ƠN

DANH MỤC HÌNH ẢNH

DANH MỤC CÁC BẢNG

DANH MỤC CÁC TỪ VIẾT TẮT

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1

1.1 Giới thiệu 1

1.2 Mục đích của đề tài 1

1.3 Hướng giải quyết 1

CHƯƠNG 2: TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH C# VÀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL Server 2

I TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH C# 2

1.1 Giới thiệu Microsoft NetFramework và Microsoft Visual studio 2

1.2 Giới thiệu tổng quan về C# và Windowns Form 14

II Tổng quan về DBMS và SQL Server 24

1 Tổng quan về DBMS 24

2 Tổng quan về cơ sở dữ liệu 26

3 Giới thiệu về SQL Server 29

4 Sơ lược về SQL Server Management Studio 34

CHƯƠNG 3: THIẾT KẾ CƠ SỞ DỮ LIỆU 36

3.1 Các thành phần dữ liệu logic: 36

3.2 Xây dựng các bảng cở sở dữ liệu 36

CHƯƠNG 4: XÂY DỰNG PHẦN MỀM 46

CHƯƠNG 5: ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN 64

1 Hướng dẫn sử dụng: 64

2 Đánh giá 64

3 Hướng phát triển 64

TÀI LIỆU KHẢM KHẢO 65

Trang 9

DANH MỤC HÌNH ẢNH Chương 1

Chương 2

Hình 2 1: Quá trình dịch chương trình C# 20

Hình 2 2: Giao diện Windows Form 22

Hình 2 3: Thực đơn Projector 22

Hình 2 4: Hộp công cụ 23

Hình 2 5: Cửa sổ Option- Tùy chọn Tool/Options 23

Hình 2 6: Cửa sổ Option-Tùy chọn fonts chữ và màu 24

Hình 2 7: Cửa sổ Option-Định dạng mã C# 24

Hình 2 8: Các bảng trong một cơ sở dữ liệu 27

Hình 2 9: Bảng tb_nhanvien có khóa là manv 28

Hình 2 10: Mối quan hệ giữa bảng LOP và KHOA trong CSDL 29

Chương 3 Hình 3 1: Giao diện khởi động SQL Server 2014 37

Hình 3 2: Tạo Database bằng Server 2014 Manggemnet Studio 37

Chương 4: Hình 4 1: Tạo dự án mới bằng phần mềm visual studio 2015 46

Hình 4 2: Form đăng nhâp 47

Hình 4 3: Thiết kế form ca làm 47

Hình 4 4: Thiết kế form công việc 48

Hình 4 5: Thiết kế form nhân viên 49

Hình 4 6: Thiết kế form nhà cung cấp 50

Hình 4 7: Thiết kế form khách hàng 51

Hình 4 8: Thiết kế form nhóm hàng 53

Hình 4 9: Thiết kế form loại hàng 54

Hình 4 10: Thiết kế form nước sản xuất 55

Hình 4 11: Thiết kế form chất liệu 56

Hình 4 12: Thiết kế form đơn vị tính 57

Hình 4 13: Thiết kế form hàng hóa 57

Hình 4 14: Thiết kế form hóa đơn nhập 58

Trang 10

Hình 4 15: Thiết kế form hóa đơn bán 59

Hình 4 16: Thiết kế form chi tiết khóa đơn bán 60

Hình 4 17: Thiết kế form chi tiết hóa đơn bán 62

Hình 4 18: Thiết kế form form báo cáo nhân viên 62

Hình 4 19: Thiết kế form báo cáo ncc 62

Hình 4 20: Thiết kế form báo cáo quý 62

Hình 4 21: Thiết kế form tìm kiếm hóa đơn nhập 63

Hình 4 22: Thiết kế form tìm kiếm sản phẩm 63

Hình 4 23: Thiết kế form main 63

Trang 11

DANH MỤC CÁC BẢNG

Bảng 3 1: Bảng tb_User 38

Bảng 3 2: Bảng tb_Calam 38

Bảng 3 3: Bảng tb_Congviec 39

Bảng 3 4: Bảng tb_Nhanvien 39

Bảng 3 5: Bảng tb_NCC 40

Bảng 3 6: Bảng tb_Khachhang 40

Bảng 3 7: Bảng tb_Chatlieu 40

Bảng 3 8: Bảng tb_Donvitinh 41

Bảng 3 9: Bảng tb_Nhomhang 41

Bảng 3 10: Bảng tb_Loaihang 41

Bảng 3 11: Bảng tb_Nuocsx 42

Bảng 3 12: Bảng tb_Hanghoa 42

Bảng 3 13: Bảng tb_HDN 43

Bảng 3 14: Bảng tb_CTHDN 43

Bảng 3 15: Bảng tb_HDB 44

Bảng 3 16: Bảng tb_CTHDB 44

Bảng 3 17: Mô hình quan hệ 44

Bảng 4 1: Bảng thuộc tính form đăng nhập 47

Bảng 4 2: Bảng thuộc tính ca làm 48

Bảng 4 3: Bảng thuộc tính công việc 49

Bảng 4 4: Bảng thuộc tính form nhân viên 50

Bảng 4 5: Bảng thuộc tính form nhà cung cấp 51

Bảng 4 6: Bảng thuộc tính form khách hàng 52

Bảng 4 7: Bảng thuộc tính nhóm hàng 52

Bảng 4 8: Bảng thuộc tính loại hàng 53

Bảng 4 9: Bảng thuộc tính form nước sản xuất 54

Bảng 4 10: Bảng thuộc tính chất lệu 55

Bảng 4 11: Bảng thuộc tính đơn vị tính 56

Bảng 4 12: Bảng thuộc tính hàng hóa 58

Bảng 4 13: Bảng thuộc tính hóa đơn nhập 59

Trang 12

Bảng 4 14: Bảng thuộc tính form hóa đơn bán 60

Bảng 4 15: Bảng thuộc tính form chi tiết hóa đơn nhập 61

Bảng 4 16: Bảng thuộc tính bảng chi tiết hóa đơn bán 61

Bảng 5 1: Bảng tài khoản mật khẩu 64

Trang 13

- HQTCSDL: Hệ quản trị cơ sở dữ liệu

- MSSCCI Microsoft Source Code Control Interface

- WPF: Windows Presentation Foundation

- WCF: Windows Communication Foundation

- WF: Windows Workflow Foundation

- Database: Cơ sở dữ liệu

Trang 14

GVHD: ThS ĐẶNG HOÀNG ANH 1 SVTN:PHẠM NGOC TUÂN

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1.1 Giới thiệu

Các sản phẩm gia dụng rất đang dạng Vì vậy, việc quản lý bán hàng gia dụng trong các cửa hàng, doanh nghiệp kinh doanh mặt hàng gia dụng là công việc quan trọng, đòi hỏi bộ phận quản lý phải tiến hành nhiều nghiệp vụ phức tạp đòi hỏi độ chính xác cao

Việc ứng dụng công nghệ thông tin đã mang lại bước đột phá mới cho công tác quản lý bán hàng nói chung và quản lý bán hàng gia dụng nói riêng đã giúp cửa hàng, doanh nghiệp nắm bán thông tin về hàng hóa, vật tư, thông tin khách hàng…một cách chính xác và kịp thời Từ đó người quản lý có thể đưa ra các kế hoạch đễ phát triển tối

đa hóa lợi nhuận cho cửa hàng hay doanh nghiệp

Quản lý bán hàng gia dụng sẽ hỗ trợ người quản lý về các thông tin của các sản phẩm, các dòng gia dụng Không chỉ như vậy nó còn cung cấp lưu trữ thông tin nhân viên trong cửa hàng, doanh nghiệp Lưu trữ, thông tin khách hàng đã mua sản phẩm của cửa hàng, doanh nghiệp để có những chính sách CSKH hợp lý Ngoài ra nó còn lưu trữ hóa đơn nhập, bán và in nó ra nếu cần thiết Bạn có thể tìm kiếm lại chúng một cách thuận tiện mà không cần lật từng hóa đơn nhập, bán

1.2 Mục đích của đề tài

Mục đính của đề tài là xây dựng một phần mềm quản lý bán hàng gia dụng đơn giản, có đầy đủ các chức năng cần thiết hỗ trợ người quản lý như: thêm, lưu, xóa, sửa, tìm kiếm thông tin nhân viên, hàng hóa, nhà cung cấp, hóa đơn…

1.3 Hướng giải quyết

- Xây dựng CSDL

- Xây dựng phần mềm

- Kiểm tra và sửa lỗi

Trang 15

GVHD: ThS ĐẶNG HOÀNG ANH 2 SVTN:PHẠM NGOC TUÂN

CHƯƠNG 2: TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH C# VÀ HỆ

QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL Server

I TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH C#

1.1 Giới thiệu Microsoft NetFramework và MicrosoftVisual studio

a Net Framework

.NET Framework là một nền tảng lập trình và cũng là một nền tảng thực thi ứng

dụng chủ yếu trên hệ điều hành Microsoft Windows được phát triển bởi Microsoft Các chương trình được viết trên nền.NET Framework sẽ được triển khai trong môi trường phần mềm (ngược lại với môi trường phần cứng) được biết đến với

tên Common Language Runtime Môi trường phần mềm này là một máy ảo trong

đó cung cấp các dịch vụ như an ninh phần mềm (security), quản lý bộ

nhớ (memory management), và các xử lý lỗi ngoại lệ (exception handling)

.NET framework bao gồm tập các thư viện lập trình lớn, và những thư viện này

hỗ trợ việc xây dựng các chương trình phần mềm như lập trình giao diện, truy cập, kết nối cơ sở dữ liệu, ứng dụng web, các giải thuật, cấu trúc dữ liệu, giao tiếp mạng CLR cùng với bộ thư viện này là 2 thành phần chính của.NET framework .NET framework đơn giản hóa việcviết ứng dụng bằng cách cung cấp nhiều thành phần được thiết kế sẵn, người lập trình chỉ cần học cách sử dụng và tùy theo

sự sáng tạo mà gắn kết các thành phần đó lại với nhau Nhiều công cụ được tạo ra

để hỗ trợ xây dựng ứng dụng.NET, và IDE (Integrated Developement

Environment) được phát triển và hỗ trợ bởi chính Microsoft là Visual Studio

bản

Ngày phát

Được phát hành kèm theo

năm 2002

Visual Studio.NET

Windows XP Tablet and Media Center Editions

năm 2003

Visual Studio.NET

2003

Windows Server

2003

Trang 16

GVHD: ThS ĐẶNG HOÀNG ANH 3 SVTN:PHẠM NGOC TUÂN

Đây là phiên bản đầu tiên của NET framework, nó được phát hành vào năm

2002 cho các hệ điều hành Windows 98, NT 4.0, 2000 và XP Việc hỗ trợ chính thức

từ Microsoft cho phiên bản này kết thúc vào 10/7/2007, tuy nhiên thời gian hỗ trợ mở rộng được kéo dài đến 14/7/2009

• NET framework 1.1

Phiên bản nâng cấp đầu tiên được phát hành vào 4/2003 Sự hỗ trợ của Microsoft kết thúc vào 14/10/2008, và hỗ trợ mở rộng được định đến 8/10/2013

Những thay đổi so với phiên bản 1.0:

- Tích hợp hỗ trợ mobile ASP.NET (trước đây chỉ là phần mở rộng tùy chọn)

- Thay đổi về kiến trúc an ninh - sử dụng sandbox khi thực thi các ứng dụng từ Internet

- Tích hợp hỗ trợ ODBC và cơ sở dữ liệu Oracle

- NET Compact Framework

- Hỗ trợ IPv6 (Internet Protocol version 6)

Trang 17

GVHD: ThS ĐẶNG HOÀNG ANH 4 SVTN:PHẠM NGOC TUÂN

- Vài thay đổi khác trong API

• NET framework 2.0

Kể từ phiên bản này,.NET framework hỗ trợ đầy đủ nền tảng 64-bit Ngoài ra, cũng có một số thay đổi trong API, hỗ trợ các kiểu "generic", bổ sung sự hỗ trợ cho ASP.NET, NET Micro Framework - một phiên bản.NET framwork có quan hệ

với Smart Personal Objects Technology

Bốn thành phần chính trong phiên bản 3.0:

- Windows Presentation Foundation (WPF - tên mã là Avalon): Đây là một công nghệ mới, và là một nỗ lực của Microsoft nhằm thay đổi phương pháp hay cách tiếp cận việc lập trình một ứng dụng sử dụng giao diện đồ họa trên Windows với sự

hỗ trợ của ngôn ngữ XAML

- Windows Communication Foundation (WCF - tên mã là Indigo): Một nền tảng mới cho phép xây dựng các ứng dụng hướng dịch vụ (service-oriented)

- Windows Workflow Foundation (WF): Một kiến trúc hỗ trợ xây dựng các ứng dụng workflow (luồng công việc) một cách dễ dàng hơn WF cho phép định nghĩa, thực thi và quản lý các workflow từ cả cách nhìn theo hướng kĩ thuật và hướng thương mại

- Windows CardSpace (tên mã là InfoCard): một kiến trúc để quản lý định

danh (identity management) cho các ứng dụng được phân phối

Ngoài ra Silverlight (hay WPF / E), một phiên bản nhánh NET Framework hỗ trợ các ứng dụng trên nền web, được Microsoft tạo ra để cạnh tranh với Flash

Có thể minh học.NET 3.0 bằng một công thức đơn giản:

.NET 3.0 =.NET 2.0 + WPF + WCF + WF + WCS

• NET Framework 3.5

Trang 18

GVHD: ThS ĐẶNG HOÀNG ANH 5 SVTN:PHẠM NGOC TUÂN

Được phát hành vào 11/2007, phiên bản này sử dụng CLR 2.0 Đây có thể được xem là tương đương với phiên bản NET Framework 2.0 SP1 và NET Framework 3.0 SP1 cộng lại .NET Compact Framework 3.5 được ra đời cùng với phiên bản.NET framework này

Các thay đổi kể từ phiên bản 3.0:

- Các tính năng mới cho ngôn ngữ C# 3.0 và VB.NET 9.0

- Hỗ trợ Expression Tree và Lambda

- Các phương thức mở rộng (Extension methods)

- Các kiểu ẩn danh (Anonymous types)

- LINQ

- Phân trang (paging) cho ADO.NET

- API cho nhập xuất mạng không đồng bộ (asynchronous network I/O)

- Peer Name Resolution Protocol resolver

- Cải thiện WCF và WF

- Tích hợp ASP.NET AJAX

- Namespace mới System.CodeDom

- Microsoft ADO.NET Entity Framework 1.0

Cũng như phiên bản 3.0, có thể minh họa sự thay đổi của.NET 3.5 bằng công thức:

.NET 3.5 =.NET 3.0 + LINQ + ASP.NET 3.5 + REST

• NET Framework 4.0

Phiên bản beta đầu tiên của.NET 4 xuất hiện vào 5/2009 và phiên bản RC (Release Candidate) được ra mắt vào 2/2010 Bản chính thức của.NET 4 được công bố và phát hành cùng với Visual Studio 2010 vào 12/4/2010

Các tính năng mới được Microsoft bổ sung trong.NET 4:

- Dynamic Language Runtime

- Code Contracts

- Managed Extensibility Framework

- Hỗ trợ các tập tin ánh xạ bộ nhớ (memory-mapped files)

- Mô hình lập trình mới cho các ứng dụng đa luồng (multithreaded) và bất đồng bộ (asynchronous)

Trang 19

GVHD: ThS ĐẶNG HOÀNG ANH 6 SVTN:PHẠM NGOC TUÂN

- Cải thiện hiệu năng, các mô hình workflow

• NET Framework 4.5

- Những thông tin đầu tiên của.NET 4.5 được Microsoft công bố vào 14/9/2011 tại BUILD Windows Conference, và nó chính thức được ra mắt vào 15/8/2012

- Kể từ phiên bản này, Microsoft bắt đầu cung cấp 2 gói cài đặt riêng biệt, gói đầy đủ

và gói giản chức năng client profiles

b Microsoft Visual Studio

Microsoft Visual Studio là một môi trường phát triển tích hợp (IDE)

từ Microsoft Nó được sử dụng để phát triển chương trình máy tính cho Microsoft Windows, cũng như các trang web, các ứng dụng web và các dịch vụ web Visual Studio sử dụng nền tảng phát triển phần mềm của Microsoft như Windows

Store và Microsoft Silverlight Nó có thể sản xuất cả hai ngôn ngữ máy và mã số quản

Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép trình biên tập mã và gỡ lỗi để hỗ trợ (mức độ khác nhau) hầu như mọi ngôn ngữ lập trình Các

C++), VB.NET (thông qua Visual Basic.NET), C# (thông qua Visual C#) và F# (như

như J++/J#, Python và Ruby thông qua dịch vụ cài đặt riêng rẽ Nó cũng hỗ trợ XML/XSLT, HTML/XHTML, JavaScript và CSS

Trang 20

GVHD: ThS ĐẶNG HOÀNG ANH 7 SVTN:PHẠM NGOC TUÂN

Microsoft cung cấp phiên bản "Express" (đối với phiên bản Visual Studio 2013 trở về trước) và "Comunity" (đối với bản Visual Studio 2015) là phiên bản miễn phí của Visual Studio

• Cấu trúc MicrosoftVisual Studio

Visual Studio không hỗ trợ cho bất kỳ ngôn ngữ lập trình nào về giải pháp hoặc công cụ thực chất, thay vào đó nó cho phép cắm chức năng được mã hóa như là một VSPackage Khi cài đặt, các chức năng có sẵn như là một dịch vụ IDE cung cấp

ba dịch vụ: SVsSolution cung cấp khả năng liệt kê các dự án và các giải pháp; SVsUIShell cung cấp cửa sổ và giao diện người dùng và SVsShell Ngoài

ra, IDE cũng có trách nhiệm điều phối và cho phép truyền thông giữa các dịch vụ Tất

cả các biên tập viên, nhà thiết kế, các loại dự án và các công cụ khác được thực hiện theo VSPackages Visual Studio sử dụng COM để truy cập VSPackages Visual Studio SDK cũng bao gồm Managed Package Framework (MPF) là một tập hợp quản

lý bao bọc quanh các COM-interfaces cho phép các gói được viết bằng bất kỳ ngôn ngữ nào.Tuy nhiên, MPF không cung cấp tất cả các chức năng bộc lộ trong Visual Studio COM-interfaces Các dịch vụ có thể được tiêu thụ để tạo ra các gói khác, để thêm chức năng cho Visual Studio IDE

Hỗ trợ cho các ngôn ngữ lập trình được thêm vào bằng cách sử dụng

một VSPackage đặc biệt được gọi là một dịch vụ ngôn ngữ Một dịch vụ ngôn ngữ

định nghĩa giao tiếp khác nhau mà việc thực hiện VSPackage có thể thực hiện để hỗ trợ thêm cho các chức năng khác nhau Các chức năng có thể được thêm vào theo cách này bao gồm cú pháp màu, hoàn thành báo cáo kết quả, kết hợp đôi, công cụ chú giải tham số thông tin, danh sách thành viên và đánh dấu lỗi trên nền biên dịch Nếu giao diện được thực hiện, các tính năng sẽ có sẵn ngôn ngữ Dịch vụ ngôn ngữ sẽ được thực hiện trên cơ sở mỗi ngôn ngữ Việc triển khai có thể tái sử dụng mã từ phân tích cú pháp hoặc trình biên dịch cho ngôn ngữ Dịch vụ ngôn ngữ có thể được triển khai hoặc trong mã nguồn gốc hoặc mã số quản lý Đối với mã nguồn gốc, thì cả COM-interfaces gốc hoặc Babel Framework (một phần của Visual Studio SDK) đều có thể được sử dụng Đối với mã số quản lý thì các MPF sẽ bao hàm các dịch vu quản lý văn bản

Trang 21

GVHD: ThS ĐẶNG HOÀNG ANH 8 SVTN:PHẠM NGOC TUÂN

Visual Studio không bao gồm bất kỳ Hệ thống quản lý phiên bản hỗ trợ kiểm soát mã nguồn nhưng nó xác định hai cách thay thế cho các hệ thống kiểm soát mã nguồn để tích hợp với IDE Một VSPackage kiểm soát mã nguồn có thể cung cấp giao diện người dùng tùy chỉnh của riêng mình Ngược lại, một plugin kiểm soát mã nguồn bằng cách sử dụng MSSCCI (Microsoft Source Code Control Interface) cung cấp một tập các chức năng được sử dụng để thực hiện chức năng kiểm soát mã nguồn khác nhau, với một giao diện người dùng Visual Studio tiêu chuẩn MSSCCI lần đầu tiên được sử dụng để tích hợp Visual SourceSafe với Visual Studio 6.0 nhưng sau đó được

mở ra thông qua Visual Studio SDK Visual Studio.NET 2002 dùng MSSCCI 1.1, và Visual Studio.NET 2003 dùng MSSCCI 1.2 Visual Studio 2005, 2008 và 2010 dùng MSSCCI 1.3

Visual Studio hỗ trợ chạy nhiều cá thể của môi trường (tất cả đều có VSPackages riêng của mình) Những trường hợp sử dụng các registry hives khác nhau

để lưu trữ trạng thái cấu hình và được phân biệt bởi AppID (Application ID) Các trường hợp được đưa ra bởi một AppId-specific.exe cụ thể mà lựa chọn AppID, thiết lập các hive gốc và khởi chạy IDE VSPackages đăng ký một AppID được tích hợp với VSPackages khác cho AppID đó Các phiên bản sản phẩm khác nhau của Visual Studio được tạo ra bằng cách sử dụng AppIds khác nhau Các sản phẩm phiên bản Visual Studio Express được cài đặt với AppIds riêng nhưng với các sản phẩm Standard, Professional và Team Suite chia sẻ cùng AppID Do đó, người ta có thể cài đặt các phiên bản Express song song với các phiên bản khác, không giống như các phiên bản khác cập nhật các cài đặt tương tự Phiên bản Professional bao gồm các VSPackages khổng lồ trong phiên bản Standard và Team Hệ thống AppID được thừa hưởng bởi Visual Studio Shell trong Visual Studio 2008

• Tính năng:

- Biên tập mã:

Giống như bất kỳ IDE khác, nó bao gồm một trình soạn thảo mã hỗ trợ tô sáng

cú pháp và hoàn thiện mã bằng cách sử dụng IntelliSense không chỉ cho các biến, hàm và các phương pháp mà còn các cấu trúc ngôn ngữ như vòng điều khiển hoặc truy vấn IntelliSense được hỗ trợ kèm theo cho các ngôn ngữ như XML, Cascading Style Sheets và JavaScript khi phát triển các trang web và

Trang 22

GVHD: ThS ĐẶNG HOÀNG ANH 9 SVTN:PHẠM NGOC TUÂN

các ứng dụng web Các đề xuất tự động hoàn chỉnh được xuất hiện trong mộthộp danh sách phủ lên trên đỉnh của trình biên tập mã Trong Visual Studio 2008 trở đi, nócó thể được tạm thời bán trong suốt để xem mã che khuất bởi nó Các trình biên tập mã được

sử dụng cho tất cả các ngôn ngữ được hỗ trợ

Các trình biên tập mã Visual Studio cũng hỗ trợ cài đặt dấu trang trong mã để điều hướng nhanh chóng Hỗ trợ điều hướng khác bao gồm thu hẹp các khối mã lệnh và tìm kiếm gia tăng, ngoài việc tìm kiếm văn bản thông thường và tìm kiếm Biểu thức chính quy Các trình biên tập mã cũng bao gồm một bìa kẹp đa mục và một danh sách công việc Các trình biên tập mã hỗ trợ lưu lại các đoạn mã được lặp đi lặp lại nhằm để chèn vào mã nguồn sử dụng về sau Một công cụ quản lý cho đoạn mã được xây dựng là tốt Những công cụ này nổi lên như các cửa sổ trôi nổi có thể được thiết lập để tự động ẩn khi không sử dụng hoặc neo đậu đến các cạnh của màn hình Các trình biên tập mã Visual Studio cũng hỗ trợ cải tiến mã nguồn bao gồm tham số sắp xếp lại, biến và phương pháp đổi tên, khai thác và đóng gói giao diện các lớp thành viên bên trong những trạng thái giữa những thứ khác

Visual Studio có tính năng biên dịch nền (còn gọi là biên dịch gia tăng) Như mã đang được viết, Visual Studio biên dịch nó trong nền để cung cấp thông tin phản hồi về cú pháp và biên dịch lỗi, được đánh dấu bằng một gạch dưới gợn sóng màu đỏ Biên dịch nền không tạo ra mã thực thi, vì nó đòi hỏi một trình biên dịch khác hơn là để sử dụng tạo ra mã thực thi Biên dịch nền ban đầu được giới thiệu với Microsoft Visual Basic nhưng bây giờ đã được mở rộng cho tất cả các ngôn ngữ

Visual Studio có một trình gỡ lỗi hoạt động vừa là một trình gỡ lỗi cấp mã nguồn và là một trình gỡ lỗi cấp máy Nó hoạt động với cả hai mã quản lý cũng như ngôn ngữ máy và có thể được sử dụng để gỡ lỗi các ứng dụng được viết bằng các ngôn ngữ được hỗ trợ bởi Visual Studio Ngoài ra, nó cũng có thể đính kèm theo quy trình hoạt động và theo dõi và gỡ lỗi những quy trình Nếu mã nguồn cho quá trình hoạt động có sẵn, nó sẽ hiển thị các mã như nó đang được chạy Nếu mã nguồn không

có sẵn, nó có thể hiển thị các tháo gỡ Các Visual Studio debugger cũng có thể tạo bãi

bộ nhớ cũng như tải chúng sau để gỡ lỗi Các chương trình đa luồng cao cấp cũng

Trang 23

GVHD: ThS ĐẶNG HOÀNG ANH 10 SVTN:PHẠM NGOC TUÂN

được hỗ trợ Trình gỡ lỗi có thể được cấu hình sẽ được đưa ra khi một ứng dụng đang chạy ngoài Visual Studio bị treo môi trường

Trình gỡ lỗi cho phép thiết lập các breakpoint (mà cho phép thực thi được tạm thời dừng lại tại một vị trí nhất định) và watch (trong đó giám sát các giá trị của biến là việc thực hiện tiến bộ) Breakpoint có thể có điều kiện, nghĩa là chúng được kích hoạt khi điều kiện được đáp ứng Mã có thể được biểu diễn, tức là chạy một dòng (của mã nguồn) tại một thời điểm Nó có hoặc là bước sang các chức năng để gỡ lỗi bên trong

nó, hoặc là nhảy qua nó, tức là, việc thực hiện các chức năng không có sẵn để kiểm tra thủ công Trình gỡ lỗi hỗ trợ Edit and Continue, nghĩa là, nó cho phép mã được chỉnh sửa khi nó đang được sửa lỗi (chỉ có 32 bit, không được hỗ trợ trong 64 bit) Khi gỡ lỗi, nếu con trỏ chuột di chuyển lên bất kỳ biến, giá trị hiện tại của nó được hiển thị trong phần chú giải ("chú thích dữ liệu"), nơi mà nó cũng có thể được thay đổi nếu muốn Trong quátrình viết mã, các trình gỡ lỗi của Visual Studio cho phép một số chức năng được gọi ra bằng tay từ cửa sổ công cụ Immediate Các thông số cho phương thức được cung cấp tại các cửa sổ Immediate

- Thiết kế:

Forms; bố trí có thể được xây dựng bằng các nút điều khiển bên trong hoặc khóa chúng vào bên cạnh mẫu Điều khiển trình bày dữ liệu (như hộp văn bản, hộp danh sách, vv) có thể được liên kết với các nguồn dữ liệu như cơ sở dữ liệu hoặc truy vấn Các điều khiển dữ liệu ràng buộc có thể được tạo ra bằng cách rê các mục từ cửa sổ nguồn dữ liệu lên bề mặt thiết kế Các giao diện người dùng được liên kết với mã sử dụng một mô hình lập trình hướng sự kiện Nhà thiết kế tạo ra bằng C thăng hay VB.NET cho ứng dụng

Giống như Windows Forms Designer, hỗ trợ kéo và thả ẩn dụ Sử dụng tương tác người-máy nhắm mục tiêu theo Windows Presentation Foundation Nó hỗ trợ các chức năng WPF bao gồm kết nối dữ liệu và tự động hóa bố trí quản lý Nó tạo ra

mã XAML cho giao diện người dùng Các tập tin XAML được tạo ra là tương

Trang 24

GVHD: ThS ĐẶNG HOÀNG ANH 11 SVTN:PHẠM NGOC TUÂN

thích với Microsoft Expression Design, sản phẩm thiết kế theo định hướng Các

mã XAML được liên kết với mã đang sử dụng một mô hình code-behind

thiết kế trang web cho phép các trang web được thiết kế bằng cách kéo và thả các đối tượng Nó được sử dụng để phát triển các ứng dụng ASP.NET và hỗ trợ HTML, CSS và JavaScript Nó sử dụng mô hình code-behind để liên kết với mã ASP.NET Từ Visual Studio 2008 trở đi, công cụ bố trí được sử dụng bởi các nhà thiết kế web được chia sẻ với Microsoft Expression Web Ngoài ra ASP.NET

án ASP.NET Dynamic Data có sẵn từ Microsoft

(bao gồm cả các thành viên và truy cập của chúng) sử dụng mô hình UML Các lớp thiết kế có thể tạo ra mã phác thảo C thăng và VB.NET cho các lớp và cá phương thức Nó cũng có thể tạo ra sơ đồ lớp từ các lớp viết tay

đồ cơ sở dữ liệu bao gồm các bảng, khóa chính, khóa ngoại và các rằng buộc Nó cũng có thể được sử dụng để thiết kế các truy vấn từ các giao diện đồ họa

bởi Language Integrated Query để thiết kế các ánh xạ giữa các giản đồ cơ sở dữ liệu và các lớp để đóng gói dữ liệu Các giải pháp mới từ cách tiếp cận ORM, ADO.NET Entity Framework sẽ thay thế và cải thiện các công nghệ cũ

- Các công cụ khác:

giữa chúng Được viện dẫn bằng cách sử dụng CTRL+TAB

giao diện bên trong Visual Studio Nó liệt kê tất cả các thuộc tính có sẵn (gồm chỉ đọc và những thuộc tính có thể được thiết lập) cho tất cả các đối tượng bao gồm các lớp, biểu mẫu, trang web và các hạng mục khác

viện cho Microsoft NET Nó có thể được sử dụng để duyệt các không gian tên

Trang 25

GVHD: ThS ĐẶNG HOÀNG ANH 12 SVTN:PHẠM NGOC TUÂN

(được sắp xếp theo thứ bậc) trong Assembly (CLI) Các hệ thống phân cấp có thể hoặc không có thể phản ánh các tổ chức trong hệ thống tập tin

hợp các tập tin mã và các nguồn khác được sử dụng để xây dựng một ứng dụng Các tập tin trong một giải pháp được sắp xếp theo thứ bậc, mà có thể có hoặc không thể phản ánh các tổ chức trong hệ thống tập tin Solution Explorer được sử dụng để quản lý và duyệt các tập tin trong một giải pháp

Server, Revision Control System và là cơ sở cho môi trường CodePlex đối với dự

án mã nguồn mở Ngoài việc kiểm soát nguồn nó cung cấp khả năng xem và quản

lý các công việc riêng lẻ (bao gồm cả lỗi, nhiệm vụ và các tài liệu khác) và để duyệt thống kê TFS Nó được bao gồm như là một phần của một cài đặt TFS và cũng có sẵn để tải xuống cho Visual Studio Team Explorer cũng có sẵn như là một môi trường độc lập duy nhất để truy cập các dịch vụ TFS

Server Nó cho phép tạo ra và sửa đổi các bảng cơ sở dữ liệu (hoặc bằng cách ban hành các lệnh T-SQL hoặc bằng cách sử dụng các thiết kế dữ liệu) Nó cũng có thể được sử dụng để tạo các truy vấn và các thủ tục lưu trữ trong T-SQL hoặc trong Managed code thông qua SQL CLR Có sẵn gỡ lỗi và hỗ trợ IntelliSense

một máy tính truy cập được Nó cũng được sử dụng để duyệt chạy Windows Services, quầy thực hiện, Windows Event Log và hàng đợi tin nhắn và sử dụng chúng như một nguồn dữ liệu

phiên bản light của sản phẩm PreEmptive Solutions' Dotfuscator cho mã gây rối và giảm kích thước ứng dụng Khởi đầu với Visual Studio 2010, phiên bản này của Dotfuscator sẽ bao gồm khả năng Runtime Intelligence cho phép tác giả thu thập cách sử dụng của người dùng cuối, hiệu suất, tính ổn định và các thông tin từ các ứng dụng của họ chạy trong sản xuất

Trang 26

GVHD: ThS ĐẶNG HOÀNG ANH 13 SVTN:PHẠM NGOC TUÂN

đầy đủ được gọi là Text Template Transformation Toolkit T4 cho phép Visual Studio tạo ra tập tin văn bản từ các mẫu hoặc trong IDE hoặc thông qua mã

ASP.NET cho phép cấu hình các trang web ASP.NET

một SDK và một add-in cho Visual Studio bao gồm các công cụ để phát triển cho các bộ Microsoft Office Trước đây (với Visual Studio.NET 2003 và Visual Studio 2005) đó là một SKU riêng biệt mà chỉ hỗ trợ Visual C# Visual Basic.NET hoặc đã được đưa vào Team Suite Với Visual Studio 2008, nó không còn là một SKU riêng biệt nhưng lại kèm trong các phiên bản chuyên nghiệp và cao hơn Một thời gian chạy riêng biệt được yêu cầu khi triển khai các giải pháp VSTO

- Khả năng mở rộng:

Studio để mở rộng tính năng của nó Những phần mở rộng "cắm vào" Visual Studio và mở rộng tính năng của nó Các phần mở rộng đến ở dạng macro, add-

in và các gói Các macro đại diện cho các nhiệm vụ lặp đi lặp lại và hành động mà các nhà phát triển có thể ghi lại theo chương trình để tiết kiệm, phát lại, và phân phối Tuy nhiên, không thể thực hiện các lệnh mới hoặc tạo ra các cửa sổ công cụ Chúng được viết bằng Visual Basic và không được biên dịch Các trình bổ sung cung cấp quyền truy cập vào mô hình đối tượng Visual Studio và có thể tương tác với các công cụ IDE Các trình bổ sung có thể được sử dụng để thực hiện các chức năng mới và có thể thêm các cửa sổ công cụ mới Các trình bổ sung được cắm vào IDE thông qua COM và có thể được tạo ra trong bất kỳ ngôn ngữ COM-tuân thủ Gói được tạo ra bằng cách sử dụng Visual Studio SDK và cung cấp mức cao nhất của khả năng mở rộng Chúng có thể tạo ra các thiết kế và các công cụ khác, cũng như tích hợp các ngôn ngữ lập trình khác Visual Studio SDK cung cấp các API không được quản lý cũng như một API quản lý để thực hiện các nhiệm vụ này Tuy nhiên, các API quản lý không phải là toàn diện như một không được quản

lý Các phần mở rộng được hỗ trợ trong phiên bản Standard và cao hơn của phiên bản Visual Studio 2005 Phiên bản Express không hỗ trợ phần mở rộng

Trang 27

GVHD: ThS ĐẶNG HOÀNG ANH 14 SVTN:PHẠM NGOC TUÂN

bản tùy biến của IDE Visual Studio Shell định nghĩa một tập hợp các VSPackages cung cấp các chức năng cần thiết trong bất kỳ IDE Trên hết, các gói khác có thể được thêm vào tùy chỉnh các cài đặt Các chế độ biệt lập của vỏ tạo

ra một AppID mới, nơi các gói được cài đặt Những thứ này được bắt đầu với một thực thi khác nhau Nó nhằm mục đích cho sự phát triển của môi trường phát triển tùy chỉnh, hoặc cho một ngôn ngữ cụ thể hoặc một kịch bản cụ thể Các chế độ tích hợp cài đặt các gói vào AppID của các phiên bản Professional / Standard / Team System, do đó các công cụ tích hợp vào các phiên bản Visual Studio Shell là miễn phí tải về

Gallery Nó phục vụ như vị trí trung tâm cho đăng tải thông tin về phần mở rộng cho Visual Studio Phát triển cộng đồng cũng như phát triển thương mại có thể tải lên thông tin về các phần mở rộng của họ đến Visual Studio.NET 2002 thông qua Visual Studio 2010 Người sử dụng trang web có thể đánh giá và xem lại các phần

mở rộng để giúp đánh giá chất lượng các phần mở rộng được đăng RSS feed thông báo cho người dùng trên bản cập nhật tới trang web và các tính năng gắn thẻ cũng được lên kế hoạch

1.2 Giới thiệu tổng quan về C# và Windowns Form

a Giới thiệu tổng quản về C#

C# (đọc là "C thăng" hay "C sharp" ("xi-sáp")) là một ngôn ngữ lập trình hướng đối

tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch NET của họ Tên của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng theo ECMA là C#, chỉ bao gồm dấu số thường Microsoft phát triển C# dựa trên 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

C# được thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc sư phần mềm nổi tiếng với các sản phẩm Turbo Pascal, Delphi, J++, WFC

• Đặc điểm ngôn ngữ:

C#, theo một hướng nào đó, là 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

Trang 28

GVHD: ThS ĐẶNG HOÀNG ANH 15 SVTN:PHẠM NGOC TUÂN

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 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 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 dữ liệu

- Có reflection

• Vì sao nên sử dụng ngôn ngữ C#

Nhiều người cho rằng không cần thiết có một ngôn ngữ lập trình mới Java, C++, Perl, Visual Basic, và những ngôn ngữ lập trình khác được nghĩ rằng đã cung cấp đủ chức năng cần thiết

Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được tạo từ nền tảng phát triển hơn Microsoft bắt đầu với công việc C và C++ và thêm vào đó những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn Nhiều trong số đó có những đặc tính có trong ngôn ngữ Java Không dừng lại ở đó, Microsoft đưa ra một số mục đích khi sử xây dựng ngôn ngữ này như sau:

- C# là ngôn ngữ đơn giản:

Trang 29

GVHD: ThS ĐẶNG HOÀNG ANH 16 SVTN:PHẠM NGOC TUÂN

C# loại bỏ một vài sự phức tạp và rối rắm của những ngôn ngữ như Java và c++, bao gồm việc loại bỏ những macro, những template, đa kế thừa, và lớp cơ sởảo (virtualbase class) Chúng là những nguyên nhân gây ra sự nhầm lẫn hay dẫn đến những vấn đề cho các người phát triển C++ Nếu chúng ta là người học ngôn ngữ này đầu tiên thì chắc chắn là ta sẽ không trải qua những thời gian để học nó! Nhưng khi đó

ta sẽ không biết được hiệu quả của ngôn ngữ C# khi loại bỏ những vấn đề trên

Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++ Nếu chúng ta thân thiện với C và C++ hoậc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diện mạo,

cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngôn ngữ C

và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn Một vài trong các sự cải tiến là loại bỏ các dư thừa, hay là thêm vào những cú pháp thay đổi Ví dụ như, trong C++ có ba toán tử làm việc với các thành viên là ::, , và -> Để biết khi nào dùng ba toán tử này cũng phức tạp và dễ nhầm lẫn Trong C#, chúng được thay thế với một toán tử duy nhất gọi là (dot) Đối với người mới học thì điều này và những việc cải tiến khác làm bớt nhầm lẫn và đơn giản hơn

Nếu chúng ta đã sử dụng Java và tin rằng nó đơn giản, thì chúng ta cũng sẽ tìm thấy rằng C# cũng đơn giản Hầu hết mọi người đều không tin rằng Java là ngôn ngữ đơn giản Tuy nhiên, C# thì dễ hơn là Java và C++

- C# là ngôn ngữ hiện đại :

Điều gì làm cho một ngôn ngữ hiện đại? Những đặc tính như là xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật mã nguồn là những đặc tính được mong đợi trong một ngôn ngữ hiện đại C# chứa tất cả những đặc tính trên Nếu là người mới học lập trình có thể chúng ta sẽ cảm thấy những đặc tính trên phức tạp và khó hiểu Tuy nhiên, cũng đừng lo lắng chúng ta sẽ dần dần được tìm hiểu những đặc tính qua các chương trong cuốn sách này

Con trỏ được tích hợp vào ngôn ngữ C++ Chúng cũng là nguyên nhân gây ra những rắc rối của ngôn ngữ này C# loại bỏ những phức tạp và rắc rối phát sinh bởi con trỏ Trong C#, bộ thu gom bộ nhớ tự động và kiểu dữ liệu an toàn được tích hợp vào ngôn ngữ,sẽ loại bỏ những vấn đề rắc rối của C++

Trang 30

GVHD: ThS ĐẶNG HOÀNG ANH 17 SVTN:PHẠM NGOC TUÂN

- C# là ngôn ngữ hướng đối tượng :

Những đặc điểm chính của ngôn ngữ hướng đối tượng (Object-oriented language) là

sự đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình

(polymorphism) C# hỗ trợ tất cả những đặc tính trên Phần hướng đối tượng của C# sẽ được trình bày chi tiết trong một chương riêng ở phần sau

- C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo :

Như đã đề cập trước, với ngôn ngữ C# chúng ta chỉ bị giới hạn ở chính bởi bản thân hay là trí tưởng tượng của chúng ta Ngôn ngữ này không đặt những ràng buộc lên những việc có thể làm C# được sử dụng cho nhiều các dự án khác nhaunhư là tạo raứng dụng xử lý văn bản, ứng dụng đồ họa, bản tính, hay thậm chí những trình biên dịch cho các ngôn ngữ khác

- C# là ngôn ngữ ít từ khóa :

C# là ngôn ngữ sử dụng giới hạn những từ khóa Phần lớn các từ khóa được sử dụng

để mô tả thông tin Chúng ta có thể nghĩ rằng một ngôn ngữ có nhiều từ khóa thì sẽ mạnh hơn Điều này không phải sự thật, ít nhất là trong trường hợp ngôn ngữ C#, chúng ta có thể tìm thấy rằng ngôn ngữ này có thể được sử dụng để làm bất cứ nhiệm

vụ nào Bảng sau liệt kê các từ khóa của ngôn ngữ C#

- C# là ngôn ngữ hướng module :

Mã nguồn C# có thể được viết trong những phần được gọi là những lớp, những lớp này chứa các phương thức thành viên của nó Những lớp và những phương thức có thể được sử dụng lại trong ứng dụng hay các chương trình khác Bằng cách truyền các mẫu thông tin đến những lớp hay phương thức chúng ta có thể tạo ra những mã nguồn dùng lại có hiệu quả

- C# sẽ là một ngôn ngữ phổ biến

C# là một trong những ngôn ngữ lập trình mới nhất Vào thời điểm cuốn sách này được viết, nó không được biết như là một ngôn ngữ phổ biến Nhưng ngôn ngữ này có một số lý do để trở thành một ngôn ngữ phổ biến Một trong những lý do chính là Microsoft và sự cam kết của NET

Trang 31

GVHD: ThS ĐẶNG HOÀNG ANH 18 SVTN:PHẠM NGOC TUÂN

Microsoft muốn ngôn ngữ C# trở nên phổ biến Mặc dù một công ty không thể làm một sản phẩm trở nên phổ biến, nhưng nó có thể hỗ trợ Cách đây không lâu, Microsoft đã gặp sự thất bại về hệ điều hành Microsoft Bob Mặc dù Microsoft muốn Bob trở nên phổ biến nhưng thất bại C# thay thế tốt hơn để đem đến thành công sơ với Bob Thật sự là không biết khi nào mọi người trong công ty Microsoft sử dụng Bob trong công việc hằng ngày của họ Tuy nhên,với C# thì khác, nó được sử dụng bởi Microsoft Nhiều sản phẩm của công ty này đã chuyển đổi và viết lại bằng C# Bằng cách sử dụng ngôn ngữ này Microsoft đã xác nhận khả năng của C# cần thiết cho những người lập trình

Micorosoft NET là một lý do khác để đem đến sự thành công của C# .NET là một

sự thay đổi trong cách tạo và thực thi những ứng dụng

Ngoài hai lý do trên ngôn ngữ C# cũng sẽ trở nên phổ biến do những đặc tính của ngôn ngữ này được đề cập trong mục trước như: đơn giản, hướng đối tượng, mạnh mẽ

- Ngôn ngữ C# và những ngôn ngữ khác

Chúng ta đã từng nghe đến những ngôn ngữ khác như Visual Basic, C++ và Java

Có lẽ chúng ta cũng tự hỏi sự khác nhau giữa ngôn ngữ C# và nhưng ngôn ngữ đó Và cũng tự hỏi tại sao lại chọn ngôn ngữ này để học mà không chọn mộttrong nhữngngôn ngữ kia Có rất nhiều lý do và chúng ta hãy xem một số sự so sánh giữa ngôn ngữ C# với những ngôn ngữ khác giúp chúng ta phần nào trả lời được những thắc mắc

Microsoft nói rằng C# mang đến sức mạnh của ngôn ngữ C++ với sự dễ dàng của ngôn ngữ Visual Basic Có thể nó không dễ như Visual Basic, nhưng với phiên bản Visual Basic.NET (Version 7) thì ngang nhau Bởi vì chúng được viết lại từ một nền tảng Chúng ta có thể viết nhiều chương trình với ít mã nguồn hơn nếu dùng C#

Mặc dù C# loại bỏ một vài các đặc tính của C++, nhưng bù lại nó tránh được những lỗi

mà thường gặp trong ngôn ngữ C++ Điều này có thể tiết kiệm được hàng giờ hay thậm chí hàng ngày trong việc hoàn tất một chương trình Chúng ta sẽ hiểu nhiều về điều này trong các chương của giáo trình

Một điều quan trọng khác với C++ là mã nguồn C# không đòi hỏi phải có tập tin header Tất cả mã nguồn được viết trong khai báo một lớp

Trang 32

GVHD: ThS ĐẶNG HOÀNG ANH 19 SVTN:PHẠM NGOC TUÂN

Như đã nói ở bên trên .NET runtime trong C# thực hiện việc thu gom bộ nhớ

tự động Do điều này nên việc sử dụng con trỏ trong C# ít quan trọng hơn trong C++ Những con trỏ cũng có thể được sử dụng trong C#, khi đó những đoạn mã nguồn này

sẽ được đánh dấu là không an toàn (unsafe code)

C# cũng từ bỏ ý tưởng đa kế thừa như trong C++ Và sự khác nhau khác là C# đưa thêm thuộc tính vào trong một lớp giống như trong Visual Basic Và những thành viên của lớp được gọi duy nhất bằng toán tử “.” khác với C++ có nhiều cách gọi trong các tình huống khác nhau

Một ngôn ngữ khác rất mạnh và phổ biến là Java, giống như C++ và C# được phát triển dựa trên C Nếu chúng ta quyết định sẽ học Java sau này, chúng ta sẽ tìm được nhiều cái mà học từ C# có thể được áp dụng

Điểm giống nhau C# và Java là cả hai cùng biên dịch ra mã trung gian: C# biên dịch ra MSIL còn Java biên dịch ra bytecode Sau đó chúng được thực hiện bằng cách thông dịch hoặc biên dịch just-in-time trong từng máy ảo tương ứng Tuy nhiên, trong ngôn ngữ C# nhiều hỗ trợ được đưa ra để biên dịch mã ngôn ngữ trung gian sang mã máy C# chứa nhiều kiểu dữ liệu cơ bản hơn Java và cũng cho phép nhiều sự mở rộng với kiểu dữ liệu giá trị

• Vai trò của C# trong Net Framework

- NET runtime sẽ phổ biến và được cài trong máy client

- C# tạo cơ hội cho tổ chức xây dựng các App Client/Server n-tier

- Kết nối ADO.NET cho phép truy cập nhanh chóng & dễ dàng với SQL Server, Oracle…

- Cách tổ chức NET cho phép hạn chế những vấn đề phiên bản

- ASP.NET viết bằng C#

Trang 33

GVHD: ThS ĐẶNG HOÀNG ANH 20 SVTN:PHẠM NGOC TUÂN

• Quá trình dịch CT C#:

- Mã nguồn C# (tập tin *.cs) được biên dịch qua MSIL

- MSIL được CLR thông dịch qua mã máy

Hình 2 1: Quá trình dịch chương trình C#

• Ứng dụng của C#:

- Ứng dụng Console

Ứng dụng Console là ứng dụng có giao diện text, chỉ xử lý nhập xuất trên màn hình Console, tương tự với các ứng dụng DOS trước đây

Ứng dụng Console thường đơn giản, ta có thể nhanh chóng tạo chương trình hiển thị kết xuất trên màn hình

• Ứng dụng Windows Form

Là ứng dụng được hiển thị với giao diện cửa sổ đồ họa Chúng ta chỉ cần kéo và thả các điều khiển (control) lên cửa sổ Form Visual Studio sẽ sinh mã trong chương trình để tạo ra, hiển thị các thành phần trên cửa sổ

• Ứng dụng Web

Trang 34

GVHD: ThS ĐẶNG HOÀNG ANH 21 SVTN:PHẠM NGOC TUÂN

Môi trường NET cung cấp công nghệ ASP.NET giúp xây dựng những trang Web động Để tạo ra một trang ASP.NET, người lập trình sử dụng ngôn ngữ biên dịch như C# hoặc C# để viết mã Để đơn giản hóa quá trình xây dựng giao diện người dùng cho trang Web, NET giới thiệu công nghệ Webform Cách thức tạo ra các Web control tương tự như khi ta xây dựng ứng dụng trên Window Form

b Giới thiệu về Windows Form

• Giới thiệu:

- Windows Form là gia diện đồ họa chạy trên hệ điều hành windows

- Windows Form là ứng dụng chạy trên máy tính người dùng

- Windows Form là một phần của kiến trúc Net

• Ứng dụng của Windows Form:

Windows Form lập trình xây dựng các chương trình quản lý tài chính, nhân sự, sản xuất, quản lý doanh nghiệp…

• Không gian tên:

- Khi tạo Project loại Windows Application có không gian tên mặc định:

- Là không gian chính cung cấp các lớp dùng để xây dựng các ứng dụng Desktop

- Các Lớp System.Windows.Forms chia thành các nhóm sau:

- Layout: Giúp định dạng và tổ chức các điều khiển trình bày trên form

- Data và Data Binding: Định nghĩa kiến trúc đa dạng cho việc liên kết dữ liệu nguồn hay tệp tin XML vào các điều khiển

Trang 35

GVHD: ThS ĐẶNG HOÀNG ANH 22 SVTN:PHẠM NGOC TUÂN

VD: DataGridView

- Componets: ToolTop, ErrorProvider, HelpProvider

- Command Dialog Boxes: Làm việc với File, Font, Color, Print

VD : OpenFileDiaglog, SaveFileDiaglog ColorFileDiaglog…

Hình 2 2: Giao diện Windows Form

• Thực đơn Projector

Hình 2 3: Thực đơn Projector

Trang 36

GVHD: ThS ĐẶNG HOÀNG ANH 23 SVTN:PHẠM NGOC TUÂN

- Cung cấp các tùy chọn: Tool/Options

Hình 2 5: Cửa sổ Option- Tùy chọn Tool/Options

Trang 37

GVHD: ThS ĐẶNG HOÀNG ANH 24 SVTN:PHẠM NGOC TUÂN

- Tùy chọn font chữ và màu

Hình 2 6: Cửa sổ Option-Tùy chọn fonts chữ và màu

Trang 38

GVHD: ThS ĐẶNG HOÀNG ANH 25 SVTN:PHẠM NGOC TUÂN

CSDL lưu giữ thông tin của một trường đại học như : khoa, giảng viên, sinh viên, khóa học,…

Thông thường, một cơ sở dữ liệu sẽ bao trùm tất cả các thông tin của một ứng dụng, không nên đặt hai cơ sở dữ liệu vào một ứng dụng

Hệ quản trị cơ sở dữ liệu DBMS(DataBaseManagement System): là một hệ thống gồm một CSDL và các thao tác trên CSDL Đó là hệ thống chương trình, công

cụ cho phép quản lý và tương tác với CSDL Trên đó người dùng có thể định nghĩa, thao tác, và xử lí dữ liệu trong một CSDL để xuất ra những thông tin có nghĩa

Ví dụ 1-5 : một DBMS có thể quản trị cơ sở dữ liệu của một trường đại học cũng như những cơ sở dữ liệu có ý nghĩa khác như : cơ sở dữ liệu phục vụ tổng thu nhập quốc gia, một cơ sở dữ liệu liên hợp quốc về dữ liệu địa lý thế giới,v v…

- Một hệ cơ sở dữ liệu (HCSDL/ DBS: DataBase System) là một phần mềm cho phép xây dựng một HQTCSDL

b Các vấn đề cần xử lý của hệ cơ sở dữ liệu

Một số điểm bất lợi chính của việc lưu giữ thông tin có tổ chức trong hệ thống xử

lý file thông thường mà hệ HCSDL cần lưu ý:

các file và các trình ứng dụng được tạo ra bởi các người lập trình khác nhau, nên các file có định dạng khác nhau, các chương trình được viết trong các ngôn ngữ lập trình khác nhau, cùng một thông tin có thể được lưu giữ trong các file khác nhau Tính

không thống nhất và dư thừa này sẽ làm tăng chi phí truy xuất và lưu trữ, hơn nũa, nó

sẽ dẫn đến tính không nhất quán của dữ liệu: các bản sao của cùng một dữ liệu có thể

không nhất quán

• Khó khăn trong việc truy xuất dữ liệu: Môi trường của hệ thống xử lý file thông

thường không cung cấp các công cụ cho phép truy xuất thông tin một cách hiệu quả và thuận lợi

• Sự cô lập dữ liệu(Data isolation) : Các giá trị dữ liệu được lưu trữ trong cơ sở dữ liệu phải thoả mãn một số các ràng buộc về tính nhất quán của dữ liệu ( ràng buộc nhất quán / consistency contraints )

Trang 39

GVHD: ThS ĐẶNG HOÀNG ANH 26 SVTN:PHẠM NGOC TUÂN

Trong hệ thống xử lý file thông thường, rất khó khăn trong việc thay đổi các chương trình để thoả mãn các yêu cầu thay đổi ràng buộc Vấn đề trở nên khó khăn hơn khi các ràng buộc liên quan đến các hạng mục dữ liệu nằm trong các file khác nhau

• Các vấn đề về tính nguyên tử (Atomicity problems):

Tính nguyên tử của một hoạt động (giao dịch) là: hoặc nó được hoàn tất trọn vẹn hoặc

không có gì cả Điều này có nghĩa là một hoạt động (giao dịch) chỉ làm thay đổi các

dữ liệu bền vững khi nó đã hoàn tất (kết thúc thành công) nếu không, giao dịch không

để lại một dấu vết nào trên CSDL Trong hệ thống xử lý file thông thường khó đảm bảo được tính chất này

• Tính bất thường trong truy xuất cạnh tranh : Một hệ thống cho phép nhiều người sử dụng cập nhật dữ liệu đồng thời, có thể dẫn đến kết quả là dữ liệu không nhất quán Điều này đòi hỏi một sự giám sát Hệ thống xử lý file thông thường không cung cấp chức năng này

• Vấn đề an toàn (Security problems): một người sử dụng hệ cơ sở dữ liệu không cần thiết và cũng không có quyền truy xuất tất cả các dữ liệu Vấn đề này đòi hỏi hệ thống phải đảm bảo được tính phân quyền, chống truy xuất trái phép Các bất lợi nêu

trênđã gợi mở sự phát triển các DBMS để phát triển một hệ cơ sở dữ liệu nhằm giải

quyết các vấn đề nêu trên

c Chức năng của hệ quản trị CSDL:

- Lưu trữ dữ liệu

- Tạo ra và duy trìCSDL

- Cho phép nhiềungười dùngtruy xuất đồngthời

- Hỗ trợ tính bảo mật và riêng tư

- Cho phép xem và xử lý dữ liệu lưu trữ

- Cho phép cập nhật và lưu trữ dữ liệu sau khi cập nhật

- Cung cấp một cơ chế chỉ mục (index) hiệu quả để truy cập nhanh các dữ liệu lựa chọn

- Cung cấp tính nhất quán giữa các bản ghi khác nhau

- Bảo vệ dữ liệu khỏi mất mát bằng các quá trình sao lưu (backup) và phục hồi (recovery)

2 Tổng quan về cơ sở dữ liệu

Ngày đăng: 22/03/2018, 19:48

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w