MỤC LỤC
DANH MỤC CÁC HÌNH VẼ............................................................................................4
DANH MỤC BẢNG BIỂU................................................................................................5
LỜI CẢM ƠN..................................................................................................................... 5
LỜI MỞ ĐẦU....................................................................................................................6
CHƯƠNG 1. Tổng qua về đề tài.........................................................................................7
I.1. Giới thiệu chung.......................................................................................................7
I.2. Mơ tả bài tốn...........................................................................................................9
I.3. Phạm vi hệ thống....................................................................................................12
I.4. Đánh giá mức độ khả thi và mức dộ rủi ro..............................................................13
I.5. Giới thiệu ngôn ngữ và sử dụng ngôn ngữ..............................................................14
I.5.1. C#....................................................................................................................14
I.5.2 SQL Sever.........................................................................................................18
I.5.3 Visual Studio 2019............................................................................................22
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG........................................................29
II.1 Kiến trúc hệ thống..................................................................................................29
II.2 Mơ hình triển khai hệ thống...................................................................................30
II.3 Xác định danh sách tác nhân..................................................................................30
II.4 Tác nhân và ca sử dụng..........................................................................................31
II.5 Mơ hình chức năng của hệ thống............................................................................32
II.6 Mơ hình Usecase(UC)...........................................................................................34
II.7 Đặc tả chi tiết các Usecase (UC)............................................................................36
II.8 Biểu đồ hoạt động của hệ thống.............................................................................49
II.8.1 Biểu đồ hoạt động đăng ký tài khoản..................................................................49
1
CHƯƠNG 3: Phân tích và thiết kế cơ sở dữ liệu..............................................................59
III.1 Biểu đồ diagram của nhà hàng..............................................................................59
III.2. Bảng Food............................................................................................................60
III.3. Bảng Account.......................................................................................................60
III.4. Bảng MigrationHistory.......................................................................................61
III.5. Bảng Category.....................................................................................................61
III.6. Bảng Customer.....................................................................................................61
III.7. Bảng Order........................................................................................................... 62
III.8. Bảng OrderInfo....................................................................................................62
III.9. Bảng Payment......................................................................................................63
III.10. Bảng ShopInformation.......................................................................................63
CHƯƠNG 4:Thiết kế hệ thống.........................................................................................64
IV.1 Xây dựng giao diện...............................................................................................64
IV.2 Xây dựng chức năng..............................................................................................72
KẾT LUẬN......................................................................................................................80
Tài liệu tham khảo............................................................................................................81
2
DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Quản lý bán hàng...............................................................................................10
Hình 1.2Ngơn ngữ C#.......................................................................................................16
Hình 1.3: ASP.Net framework..........................................................................................17
Hình 1.4: SQL Server.......................................................................................................18
Hình 2.1Kiến trúc hệ thống...............................................................................................23
Hình 2.2: Mơ hình triển khai hệ thống..............................................................................24
Hình 2.3: Mơ hình chức năng Backend.............................................................................26
Hình 2.4: Mơ hình chức năng Frontend............................................................................28
Hình 2.5: Mơ hình Usecase tác nhân Renter/ Leaser........................................................29
Hình 2.6: Mơ hình Usecase tác nhân Admin.....................................................................30
Hình 2.7: Mơ hình UC đăng ký thành viên.......................................................................30
Hình 2.8: Mơ hình UC đăng nhập.....................................................................................31
Hình 2.9: Mơ hình UC tìm kiếm món ăn..........................................................................32
Hình 2.10: Mơ hình UC Xem món ăn...............................................................................33
Hình 2.11: Mơ hình UC Quản lý tin..................................................................................34
Hình 2.12: Mơ hình UC Cập nhật profile..........................................................................35
Hình 2.13: Mơ hình UC Quản lý tin món ăn.....................................................................37
Hình 2.14: Mơ hình UC Quản lý bài viết..........................................................................39
Hình 2.15: Mơ hình UC Quản lý user...............................................................................41
Hình 2.16: Mơ hình UC Quản lý hệ thống........................................................................42
Hình 2.17: Biểu đồ hoạt động Đăng ký tài khoản.............................................................44
Hình 2.18: Biểu đồ hoạt động Đăng nhập.........................................................................45
Hình 2.19: Biểu đồ hoạt động Tìm kiếm món ăn..............................................................46
Hình 2.20: Biểu đồ hoạt động xem món ăn.......................................................................47
Hình 2.21: Biểu đồ hoạt động Cập nhật profile................................................................48
Hình 2.22: Biểu đồ hoạt động Quản lý danh mục nhà hàng..............................................49
Hình 2.23: Biểu đồ hoạt động Quản lý bài viết.................................................................50
Hình 2.24: Biểu đồ hoạt động Quản lý danh mục bài viết................................................51
3
Hình 2.25: Biểu đồ hoạt động Quản lý người dùng..........................................................52
Hình 2.26:Biểu đồ hoạt động Quản lý hệ thống................................................................53
DANH MỤC BẢNG BIỂU
Bảng 1.1:Mô tả đối tượng và phạm vi sử dụng.................................................................14
Bảng 1.2: Miêu tả mức rủi ro của hệ thống.......................................................................16
Bảng 2.1: Tác nhân và ca sử dụng....................................................................................26
Bảng 3.1: Bảng món ăn.....................................................................................................55
Bảng 3.2:Bảng danh mục..................................................................................................56
Bảng 3.3: Bảng admin......................................................................................................56
Bảng 3.4: Bảng khách hàng..............................................................................................56
Bảng 3.5: Bảng đặt bàn.....................................................................................................57
Bảng 3.6: Bảng chi tiết đặt bàn.........................................................................................57
4
LỜI CẢM ƠN
Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép em được bày tỏ lòng
biết ơn đến tất cả các cá nhân và tổ chức đã tạo điều kiện hỗ trợ, giúp đỡ em trong suốt
quá trình học tập và nghiên cứu đề tài này. Trong suốt thời gian từ khi bắt đầu học tập tại
trường đến nay, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô và bạn
bè.
Với lòng biết ơn sâu sắc nhất, em xin gửi đến q Thầy Cơ ở bộ mơn Khoa Học
Máy Tính đã truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập
tại trường. Nhờ có những lời hướng dẫn, dạy bảo của các thầy cô nên đề tài nghiên cứu
của em mới có thể hồn thiện tốt đẹp.
Một lần nữa, em xin chân thành cảm ơn Thầy Lê Hồng Anh – người đã trực tiếp
giúp đỡ, quan tâm, hướng dẫn em hoàn thành tốt bài báo cáo này trong thời gian qua.
Bài báo cáo đồ án thực hiện trong khoảng thời gian vừa qua. Bước đầu đi vào thực
tế của em còn hạn chế và còn nhiều bỡ ngỡ nên khơng tránh khỏi những thiếu sót, em rất
mong nhận được những ý kiến đóng góp quý báu của quý Thầy Cô để kiến thức của em
trong lĩnh vực này được hồn thiện hơn đồng thời có điều kiện bổ sung, nâng cao ý thức
của mình.
Em xin chân thành cảm ơn!
5
LỜI MỞ ĐẦU
Ngày nay với sự bùng nổ và phát triển mạnh mẽ của lĩnh vực Công nghệ thông tin
đặc biệt với sự ra đời của Internet, nó đang dần trở thành một phần không thể thiếu của
cuộc sống con người. Công nghệ thông tin đang được phát triển và ứng dụng mạnh mẽ
trong các lĩnh vực quản lý sản xuất, quản lý kinh doanh, dịch vụ, quản lý xã hội cũng như
tất cả các lĩnh vực khác. Thực tế đã cho thấy hiệu quả của tin học khi áp dụng vào cơng
tác quản lý, nó đã làm giảm bớt cơng tác bàn giấy đồng thời góp phần đáng kể trong việc
thống kê tránh những sai sót trong kinh doanh. Có thể nói tin học đã trở thành một cơng
cụ hữu hiệu đem lại hiệu quả trong công tác quản lý và kinh doanh.
Quản lý nhà hàng là một trong những nhu cầu thiết thực đó. Việc duy trì và phát
triển nhà hàng khơng chỉ dừng lại ở những món ăn ngon, mà còn cần giải quyết được
những phức tạp, khó khăn trong cơng việc quản lý về tài chính, nhân sự… và những chiến
lược kinh doanh của nhà hàng.
Đáp ứng những nhu cầu đó, em đã chọn đề tài “Xây dựng website quản lý nhà hàng”
để xây dựng và phát triển. Website được thiết kế dựa trên thực tế nghiệp vụ của nhà hàng
để có khả năng đáp ứng và hỗ trợ tốt trong công việc quản lý và kinh doanh của nhà hàng,
tránh nhầm lẫn sai sót, đồng thời hỗ trợ cho việc tìm kiếm thơng tin nhanh chóng, chính
xác.
6
CHƯƠNG 1. Phần mở đầu.
I.1 Lý do lựa chọn đề tài
Ngày nay với sự phát triển mạnh mẽ của lĩnh vực Công nghệ thông tin đặc biệt với
sự ra đời của Internet, nó đang dần trở thành một phần thiết yếu của cuộc sống con người.
Công nghệ thông tin đang được phát triển và ứng dụng mạnh mẽ trong các lĩnh vực quản
lý sản xuất, quản lý kinh doanh, dịch vụ, quản lý xã hội cũng như tất cả các lĩnh vực khác.
Quản lý nhà hàng là một trong những nhu cầu thiết thực đó, một website quản lý nhà hàng
là một giải pháp hoàn toàn hợp lý và đáng được mong đợi. Một website mà chủ nhà hàng
có thể quản lý được nhà hàng một cách nhanh chóng, chính sác cùng với đó là sự tiện lợi
khi khách hàng có thể giao tiếp với nhà hàng một cách nhanh gọn và dễ dàng mà không
cần phải đi đâu xa khi chỉ cần ngồi nhà hay văn phòng làm việc vẫn có thể sử dụng một
cách dễ dàng.
Đi vào thực tiễn để có thể phát triển đề tài, nhận thấy hiện tại xung quanh khu vực
của nhà hàng là các khu công nghiệp và một số công trường đang thi công nên đây phần
lớn là nơi sinh sống và làm việc của đa số các công nhân viên. Công việc ngày càng
nhiều, công nghệ thông tin ngày một phát triển nên nhu cầu cuộc sống của con người
ngày một tăng cao. Mọi người quá bận rộn với công việc hoặc không muốn ra đường nên
nhu cầu gọi đồ ăn ship đến là rất cao và lượng người đến với nhà hàng là ngày một ít.
Trang web được sinh ra nhằm đáp ứng các đặc điểm riêng dựa trên thực tế nghiệp vụ của
nhà hàng, em nhận thấy nhà hàng có rất ít khách ngồi ăn tại quán mà đa phần là mua
mang về hoặc ship tận nơi cùng với đó là tác hại của covid-19 dẫn đến chúng ta phải cách
ly tập trung hoặc không được tụ tập quá 5 người nên ý tưởng của em là xây dựng một
website vừa để quản lý nhà hàng vừa giúp nhà hàng kinh doanh một cách thuận lợi và
phát triển.Nhà hàng sẽ tập trung bán hàng mang về và nhận ship để có thể duy trì kinh
doanh cũng như ngày một phát triển.
Việc duy trì và phát triển nhà hàng khơng chỉ dừng lại ở những món ăn ngon, mà
cịn cần giải quyết được những phức tạp, khó khăn trong cơng việc quản lý về tài chính,
nhân sự… và những chiến lược kinh doanh của nhà hàng.
7
Đáp ứng những nhu cầu nêu trên, đề tài “Xây dựng website quản lý nhà hàng” của
em được lên kế hoạch và bắt đầu đi vào nghiên cứu cũng như phát triển. Website được
thiết kế dựa trên thực tế nghiệp vụ của nhà hàng để có khả năng đáp ứng và hỗ trợ tốt nhất
trong công việc quản lý và kinh doanh của nhà hàng, tránh nhầm lẫn sai sót, đồng thời hỗ
trợ cho việc tìm kiếm thơng tin trở nên nhanh chóng và chính xác.
I.2. Giới thiệu chung
I.2.1 Các khái niệm cơ bản về quản lý bán hàng.
Định nghĩa: Quản lý bán hàng có thể được định nghĩa là hoạt động quản trị của cá
nhân hoặc một nhóm người thuộc lĩnh vực bán hàng hoặc những người hỗ trợ trực tiếp
cho lực lượng bán hàng nhằm triển khai việc cung cấp các sản phẩm hoặc dịch vụ của
doanh nghiệp trên cơ sở chiến lược kinh doanh, nguồn lực của doanh nghiệp và mơi
trường kinh doanh có liên quan.
Quản lý bán hàng có nhiệm vụ phân phối hàng hóa đến những kênh phân phối theo
mục tiêu đã đề ra nhằm tối ưu việc hiện diện của hàng hóa, dịch vụ với chi phí hợp lý, đạt
hiệu quả tối đa và đạt được mục tiêu marketing của nhà hàng về ngắn hạn cũng như dài
hạn.
Chức năng của hệ thống quản lý bán hàng
Trong thời đại bùng nổ công nghệ 4.0 như hiện nay, một hệ thống giúp quản lý
việc bán hàng là không thể thiếu trong hoạt động kinh doanh của doanh nghiệp. Hệ thống
quản lý chính là những phần mềm quản lý bán hàng, giúp cho người dùng đặc biệt là các
doanh nghiệp kiểm sốt quản lý được hàng hóa một cách chặt chẽ hơn. Việc quản lý của
hệ thống sẽ được kiểm soát trong tất cả các khâu: Nhập hàng, quản lý đơn hàng, quản lý
kho hàng, quản lý nhân viên, chăm sóc khách hàng,…
Có một hệ thống giúp quản lý bán hàng sẽ giúp doanh nghiệp tối ưu được hoạt động kinh
doanh của mình, cụ thể thơng qua những chức năng của hệ thống quản lý bán hàng.
8
Chức năng quản lý đơn hàng
Đương nhiên không thể không kể tới chức năng quản lý đơn hàng của các phần mềm
quản lý, đây là chức năng tối quan trọng giúp việc bán hàng và quản lý bán hàng hiệu quả
hơn
Chức năng quản lý kho hàng hóa
Bất kể người kinh doanh nào cũng biết việc quản lý tốt số lượng hàng hóa trong kho góp
phần tăng hiệu quả hoạt động kinh doanh. Do đó chức năng quản lý hàng hóa của phần
mềm quản lý bán hàng là chức năng vô cùng quan trọng, khơng thể thiếu.
Quản lý tài chính
Phần mềm cịn hỗ trợ hữu ích người kinh doanh về vấn đề quản lý tài chính kế tốn, quản
lý tiền mặt, tiền công nợ khách hàng, tiền hàng, tiền đơn vị giao hàng thu hộ, tiền thuế,
tiền thuê mặt bằng,… và các khoản thu chi khác trong kinh doanh.
Quản lý khách hàng
Thông tin khách hàng được phần mềm lưu trữ lại để người bán hàng dễ dàng nhận biết
khách hàng là khách mới hay khách cũ, khách quen để có chương trình bán hàng và tri ân
hợp lý.
9
I.2.2. Giới thiệu hệ thống website
Hệ thống quản lý nhà hàng trực tuyến được xây dựng nhằm đưa thông tin chi tiết
về những sản phẩm cũng như các món ăn mà nhà hàng đang kinh doanh đến khách hàng.
Hệ thống phục vụ cho các đối tượng sau:
ADMIN: Người có tồn quyền trong việc quản trị hệ thống các quyền đó gồm thêm danh
mục , món ăn , quảng cáo.
KHÁCH HÀNG : Khách hàng vào trang web có thể xem thơng tin chi tiết về các món
ăn,đặt mua món ăn, bình luận chất lượng món ăn và thái độ phục vụ , xem tin tức , thông
tin chi tiết của cửa hàng . Khách hàng có thể đăng ký thành viên để được đặt mua món ăn
và thanh tốn.
I.3. Mơ tả bài tốn.
Nhà hàng chun phục vụ các món ăn độc đáo, mang hương vị riêng biệt với
những món ăn hiện đại. Sự sáng tạo trong cách chế biến món ăn và làm hài lòng thực
khách là điều được quan tâm hàng đầu của nhà hàng. Tuy nhiên, với hình thức kinh doanh
hiện tại là phục vụ khách hàng khi khách hàng đến nhà nhà hàng và đặt bàn trực tiếp cũng
có những hạn chế cho việc kinh doanh nhà hàng như:
Chưa phục vụ được một số khách hàng có nhu cầu ở quá xa.
Hạn chế các tiềm năng phát triển của nhà hàng như quảng bá, giới thiệu món ăn
đến với nhiều thực khách…
Hạn chế trong việc quản lý nhà hàng, lưu trữ và thống kê…
Xuất phát từ những nhược điểm của hệ thống quản lý bằng thủ cơng nên việc tin
học hóa cơng tác quản lý nhà hàng là việc làm cần thiết, hợp lý.
Có hai đối tượng tham gia trực tiếp vào quá trình tương tác với website là nhà quản
lý và khách hàng
Đối với nhà quản lý, hệ thống quản lý nhà hàng cần đáp ứng những yêu cầu
sau:
10
-
Tự động hóa các thao tác, cơng việc thủ cơng được thay thế sẽ tiết kiệm
được nhiều thời gian và cơng sức, thực hiện nhanh chóng
-
Tổng hợp đầy đủ chính xác, kịp thời thơng tin về các món ăn
-
Đưa ra danh sách các danh mục món ăn khi cần tìm kiếm theo yêu cầu
-
Có thể thực hiện các chức năng cập nhật (thêm, sửa, xóa) đối với các
món ăn trên trang web
-
Tiếp nhận và xử lý các đơn đặt mua món ăn của khách hàng
-
Thống kê các món ăn, thống kê đặt món trên trang web
Đối với đối tượng là khách hàng: là đối tượng có nhu cầu tìm hiểu các món ăn
và đặt món trực tiếp trên website. Vì vậy trang web cần đáp ứng được các yêu
cầu như:
-
Hiển thị rõ ràng các món ăn của nhà hàng với hình ảnh, giá cả chi tiết để
khách hàng có thể xem và chọn lựa.
-
Xây dựng giao diện hợp lý để khách hàng có thể dễ dàng trong việc tìm
kiếm, lựa chọn các món ăn.
-
Khách hàng có nhu cầu đặt món thì hệ thống thêm vào giỏ hàng rồi tiến
tới việc thanh tốn, có thể thanh tốn qua hình thức online hoặc nhận
hàng thanh tốn.
Ngồi những chức năng trên thì trang web cần phải được thiết kế đẹp mắt, dễ sử
dụng, thu hút được khách hàng dù chỉ lần đầu ghé thăm. Đồng thời trang web cịn phải dễ
bảo trì, nâng cấp khi cần.
Khách hàng là người có nhu cầu ăn uống và tổ chức sự kiện . Họ sẽ tìm kiếm các
nhà hàng có món ăn hấp dẫn với mức chi phí thích hợp để đến thưởng thức và vui
tiệc. Vậy nên trang web phải có các chức năng cho khách hàng là:
11
Hiển thị rõ ràng các món ăn: người truy cập website có thể xem được các hình ảnh
thơng tin về món ăn được đưa lên. Cùng với các thơng tin liên quan tới như bài
viết
Tìm kiếm : Có thể tìm kiếm các món ăn theo các tiêu chí thích hợp tìm kiếm của
hệ thống như tìm kiếm theo tên , theo danh mục.
Đặt món: Để tiện đặt món, hệ thống cung cấp cho khách hàng một giỏ hàng ,
khách hàng có thể chọn món mình thích cho vào giỏ hàng. Giỏ hàng được thiết kế
đơn giản và dễ sử dụng , khách hàng có thể thay đổi số lượng và loại bỏ các mặt
hàng không muốn mua ra khỏi giỏ hàng.
Quản trị là người có quyền quản lý và làm chủ mọi hoạt động của hệ thống trang
web. Quản trị truy cập vào hệ thống nhằm với các mục đích sau đây:
Quản lý trang : cho phép sửa các thông tin về giới thiệu và liên hệ cửa hàng.
Quản lý sản phẩm : cho phép thêm sửa xóa sản phẩm của cửa hàng bán.
Quản lý danh mục : cho phép thêm sửa xóa danh mục của sản phẩm.
Quản lý đơn đặt món : cho phép xóa đơn đặt món khi khách hàng có nhu cầu
khơng đặt món nữa và có thể cập nhật lại thơng tin đặt món cho khách hàng để
được đặt món đúng thời gian mong muốn.
Quản lý chi tiết đơn đặt món : cho phép xóa các món mà khách yêu cầu cho khách
hàng.
I.3. Phạm vi hệ thống.
Báo cáo phạm vị
Tên dự án
Xây dựng website quản lý nhà hàng
Người thiết kế và xây dựng dự án
Nguyễn Trọng Khuê
Phạm vi ứng dụng
Xây dựng hệ thống đặt đồ ăn giúp nhà
hàng có thể bán được nhiều hàng hơn
12
cho các khách hàng không thể đến cửa
hàng ăn được và có thể quản lý nhà
hàng một cách tốt nhất.
Mục tiêu
Giao diện thân thiện, dễ sử dụng.
Hệ thống có tính bảo mật.
Hệ thống phải chính xác về mặt dữ
liệu.
Khơng vượt q thời gian quy định.
Lợi ích mang lại
Khách hàng dễ dàng tìm kiếm
thơng tin.
Khách hàng dễ dàng sử dụng và đặt
món.
Nhà hàng có thể quản lý một cách
tốt nhất cũng như đáp ứng nhu cầu
của người mua một cách thuận tiện
hơn.
Các bước thực hiện
Khởi tạo dự án.
Lập kế hoạch.
Thu thập yêu cầu.
Phân tích yêu cầu và thiết kế hệ
thống.
Hướng dẫn sử dụng.
Bảng 1-1: Mô tả đối tượng và phạm vi sử dụng.
I.4. Đánh giá mức độ khả thi và mức dộ rủi ro.
I.4.1. Mức độ khả thi.
A. Khả thi về kinh tế.
Đối với nhà hàng: Có thêm kênh giao tiếp và quảng bá về đa dạng các món ăn góp phần
tăng doanh thu. Quảng bá được món ăn mới, thu hút nhiều khách hàng. Nâng cao tính
cạnh trang với các đối thủ trong cùng lĩnh vực.
13
Đối với khác hàng: Tiết kiệm thời gian, khách hàng không cần phải trực tiếp đến cửa hàng
mà vẫn nắm bắt được thơng tin chi tiết về các món ăn và dễ dàng đặt mua mọi lúc mọi
nơi. Dễ dàng nhận được sự trợ giúp, tư vấn online từ nhà hàng.
B. Khả thi về hoạt động.
Hệ thống xây dựng giao diện thân thiện, dễ dàng sử dụng, không cần chuyên mơn cũng có
thể quản lý website.
C. Khả thi về kỹ thuật.
Đối với cửa hàng: Không yêu cầu phần cứng cao, khơng cần đường truyền internet có tốc
độ cao nhằm đáp ứng nhu cầu sử dụng mọi lúc mọi nơi cho khách hàng.
Đối với người thực hiện: sử dụng ngôn ngữ lập trình C#, ASP Net framework Cơng cụ
lập trình Visual Studio, công cụ quản trị cơ sở dữ liệu SQL Server.
I.4.2. Mức độ rủi ro.
Dự án: Xây dựng web quản lý nhà hàng và đặt món
Rủi ro
Mơ tả
Hướng khắc phục
Sự thay đổi từ phía cửa Các yêu cầu thay đổi từ Thu thập yêu cầu đầy đủ
hàng
phía cửa hàng như bố cục và chính xác.
trang web, tổ chức dữ liệu.
Thay đổi lớn của dự án
Yêu cầu thêm chức năng Yêu cầu tăng thời gian,
hoặc ràng buộc.
chi phí để đáp ứng.
Trình độ tin học người Người dùng khơng có Thiết kế giao diện thân
dùng thấp
nhiều kinh nghiệm về tin thiện, dễ dàng sử dụng,
học, quản trị website.
viết các tài liệu hướng dẫn
chi tiết.
Bảng 1-2: Miêu tả mức độ rủi ro và hướng khắc phục.
14
I.5. Giới thiệu ngôn ngữ và sử dụng ngôn ngữ.
I.5.1. C#
C# (hay C sharp) là một ngơn ngữ lập trình đơn giản, được phát triển bởi đội ngũ
kỹ sư của Microsoft vào năm 2000, trong đó người dẫn đầu là Anders Hejlsberg và Scott
Wiltamuth.
C# là ngơn ngữ lập trình hiện đại, hướng đối tượng và nó được xây dựng trên nền tảng
của hai ngôn ngữ mạnh nhất là C++ và Java.
C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm Executable Code
và Runtime Environment, cho phép chúng ta sử dụng các ngôn ngữ high-level đa dạng
trên các nền tảng và cấu trúc máy tính khác nhau.
C# với sự hỗ trợ mạnh mẽ của .NET Framework giúp cho việc tạo một ứng dụng
Windows Forms hay WPF (Windows Presentation Foundation), . . . trở nên rất dễ dàng.
Hình 1.1Ngơn ngữ C#
ASP.Net FrameWork
.NET framework có thể được sử dụng để tạo cả những ứng dụng dựa trên biểu mẫu
(Form-based) và dựa trên Web (Web-based). Các web service cũng có thể được phát triển
bằng cách sử dụng .NET framework.
15
Framework cũng hỗ trợ các ngơn ngữ lập trình khác nhau như Visual Basic và C#. Vì
vậy, các nhà phát triển có thể lựa chọn ngơn ngữ để phát triển ứng dụng cần thiết. Trong
bài viết này, các bạn sẽ tìm hiểu một số khái niệm cơ bản về .NET framework.
Hình 1.2: ASP.Net framework
Chức năng
C# là một ngơn ngữ lập trình hướng đối tượng đơn giản, hiện đại. Mục đích của C # là
phát triển ngơn ngữ lập trình khơng chỉ dễ học mà còn hỗ trợ chức năng hiện đại cho mọi
loại hình phát triển phần mềm.
Nếu bạn nhìn vào lịch sử của các ngơn ngữ lập trình và các tính năng của chúng, mỗi
ngơn ngữ lập trình được thiết kế cho một mục đích cụ thể để giải quyết một nhu cầu cụ
thể tại thời điểm đó.
Tuy nhiên ngơn ngữ lập trình C# được thiết kế cho các doanh nghiệp để xây dựng tất cả
các loại phần mềm bằng cách sử dụng một ngơn ngữ lập trình duy nhất.
C# cung cấp chức năng để hỗ trợ phát triển phần mềm hiện đại. C# hỗ trợ các nhu cầu
phát triển ứng dụng Web, Mobile và ứng dụng Desktop. Một số tính năng hiện đại của
ngơn ngữ lập trình C# là generic, kiểu var, collection, biểu thức lambda, lập trình động,
lập trình khơng đồng bộ, gỡ lỗi nâng cao và xử lý ngoại lệ, v.v.
16
Cú pháp ngôn ngữ C# bị ảnh hưởng bởi C++, Java, Pascal và một số ngôn ngữ khác dễ sử
dụng. C# cũng loại bỏ sự phức tạp và các tính năng của ngơn ngữ khơng có cấu trúc.
ASP.Net Framework
.NET Framework là thành quả tối ưu của sự kết hợp công sức và trí tuệ của
Microsoft, nhằm tạo ra một nền tảng cho việc xây dựng và triển khai nhanh chóng các
dịch vụ và ứng dụng Web XML. Tầm nhìn của nền tảng .NET Framework kết hợp một
mơ hình lập trình đơn giản, dễ sử dụng với các giao thức mở và biến đổi được của
Internet. Để đạt được tầm nhìn này, việc thiết kế .NET Framework nhằm một số mục
đích:
Sự hợp nhất thông qua các chuẩn Internet công cộng: Để giao tiếp với
những đối tác kinh doanh, những khách hàng phụ thuộc vào các khu vực theo
vị trí địa lý, thậm trí cả những ứng dụng cho tương lai, những giải pháp phát
triển cần được đề nghị hỗ trợ cho các chuẩn Internet mở và tích hợp chặt chẽ
với các giao thức mà không bắt buộc người phát triển phải thơng hiểu cơ sở hạ
tầng bên dưới nó.
Khả nǎng biến đổi được thông qua một kiến trúc "ghép nối lỏng": Đa số
các hệ thống lớn, biến đổi được trên thế giới được xây dựng trên những kiến
trúc không đồng bộ dựa trên nền thông điệp (message-based). Nhưng công việc
xây dựng các ứng dụng trên một kiến trúc như vậy thường phức tạp và có ít các
cơng cụ hơn so với những môi trường phát triển ứng dụng N lớp (N-tier) "ghép
nối chặt". .NET Framework được xây dựng để đem lại những lợi thế về nǎng
suất của kiến trúc "ghép nối chặt" với khả nǎng biến đổi được và vận hành với
nhau của kiến trúc "ghép nối lỏng".
Hỗ trợ nhiều ngôn ngữ: Các nhà phát triển sử dụng những ngơn ngữ khác
nhau do mỗi ngơn ngữ riêng có những ưu thế đặc thù : một số ngôn ngữ đặc
biệt thích hợp với thao tác tốn học; một số khác lại đa dạng ở các hàm tính
17
tốn tài chính v.v. .NET Framework cho phép các ứng dụng được viết trong
nhiều ngơn ngữ lập trình khác nhau và chúng có khả nǎng tích hợp với nhau
một cách chặt chẽ. Ngồi ra, với .NET Framework, các cơng ty cịn có thể tận
dụng những lợi thế của kỹ nǎng phát triển sẵn có mà khơng cần phải đào tạo lại
và cho phép những người phát triển sử dụng ngôn ngữ mà họ ưa thích.
Nâng cao nǎng suất cho các nhà phát triển: Với số lượng các nhà phát triển
ứng dụng không nhiều nên mỗi giờ làm việc họ phải cho ra kết quả cơng việc
cụ thể. Các nhóm phát triển với .NET Framework có thể loại bỏ những cơng
việc lập trình khơng cần thiết và tập trung vào viết các lơgic doanh nghiệp.
Chẳng hạn như .NET Framework có ưu điểm tiết kiệm thời gian như thực hiện
các giao dịch tự động và dễ sử dụng, quản lý bộ nhớ một cách tự động và có
chứa một tập các đối tượng điều khiển đa dạng bao hàm nhiều tác vụ phát triển
chung.
Bảo vệ những sự đầu tư thông qua việc bảo mật đã được cải tiến: Một trong
những vấn đề liên quan lớn nhất đến Internet hiện nay là bảo mật. Kiến trúc bảo
mật của .NET Framework được thiết kế từ dưới lên để đảm bảo các ứng dụng
và dữ liệu được bảo vệ thông qua một mô hình bảo mật dựa-trên-bằng-chứng
(evidence-based) và tinh vi.
Tận dụng những dịch vụ của hệ điều hành: Windows cung cấp một số lượng
đa dạng các dịch vụ có sẵn với bất kỳ nền tảng nào; như truy cập dữ liệu một
cách tồn diện, bảo mật tích hợp, các giao diện người dùng tương tác, mơ hình
đối tượng thành phần đáng tin cậy và các giám sát quá trình giao dịch. .NET
Framework đã tận dụng lợi thế đa dạng và phong phú này để đưa ra cho mọi
người theo cách dễ sử dụng nhất.
I.5.2 SQL Sever
Tổng quan
18
SQL Server là một hệ thống quản lý cơ sở dữ liệu quan hệ (relational database
management system viết tắt là RDBMS), hỗ trợ một số lượng lớn các quy trình xử lý giao
dịch, ứng dụng doanh nghiệp và ứng dụng phân tích trong các cơng ty IT. SQL Server là
một trong 3 công nghệ dữ liệu dẫn đầu hiện này cùng với Oracle Database và IBM’s DB2.
Hình 1.4: SQL Server
Cũng giống như các phần mềm RDBMS khác, Microsoft SQL Server được xây
dựng bên trên lớp SQL – ngôn ngữ lập trình tiêu chuẩn hóa mà quản trị viên cơ sở dữ liệu
(DBAs) và các chuyên gia CNTT sử dụng để quản lý cơ sở dữ liệu và truy vấn dữ liệu
nằm bên trong. SQL Server thường gắn với Transact-SQL (T-SQL), một cài đặt SQL của
Microsoft bổ sung một bộ chương trình mở rộng ngơn ngữ lập trình chuẩn.
Lịch sử phát triển
SQLServer được phát triển từ ngôn ngữ SEQUEL2 bởi IBM theo mơ hình Codd tại
trung tâm nghiên cứu của IBM ở California ,vào những năm 70 cho hệ thống QTCSDL
lớn.
Đầu tiên SQL Server được sử dụng trong các ngôn ngữ quản lý CSDL và chạy trên
các máy đơn lẻ. Song do sự phát triển nhanh chóng của nhu cầu xây dựng những CSDL
lớn theo mơ hình khách chủ( trong mơ hình này tồn bộ CSDL được tập trung trên máy
chủ (Server)). Mọi thao tác xử lý dữ liệu được thực hiện trên máy chủ bằng các lệnh
19
SQL máy trạm chỉ dùng để cập nhập hoặc lấy thông tin từ máy chủ). Ngày nay trong các
ngôn ngữ lập trình bậc cao đều có sự trợ giúp của SQL. Nhất là trong lĩnh vực phát triển
của Internet ngôn ngữ SQL càng đóng vai trị quan trọng hơn. Nó được sử dụng để nhanh
chóng tạo các trang Web động..
SQL đã được viện tiêu chuẩn quốc gia Mỹ (ANSI)và tổ chức tiêu chuẩn quốc tế (ISO)
chấp nhận như một ngôn ngữ chuẩn cho CSDL quan hệ .Nhưng cho đến nay chuẩn này
chưa đưa ra đủ 100%.Nên các SQL nhúng trong các ngơn ngữ lập trình khác nhau đã
được bổ xung mở rộng cho SQL chuẩn cho phù hợp với các ứng dụng của mình.Do vậy
có sự khác nhau rõ ràng giữa các SQL.
Cấu trúc
SQL Server cơ bản dựa trên một cấu trúc bảng biểu, bao gồm các dòng kết nối các
phần tử dữ liệu có liên quan trong các bảng khác nhau, do đó loại bỏ nhu cầu lưu trữ dữ
liệu ở nhiều vị trí trong cơ sở dữ liệu. Mơ hình quan hệ cũng cung cấp các tham chiếu và
ràng buộc tồn vẹn nhằm duy trì độ chính xác của dữ liệu , các kiểm tra này là một phần
thúc đẩy sự tuân thủ các nguyên tắc về tính nhất quán, tính độc lập và độ tin cậy – được
gọi chung là các thuộc tính ACID và được thiết kế để đảm bảo cho các giao dịch cơ sở dữ
liệu được xử lý ổn thỏa.
Hình 1.5: Cấu trúc SQL Server
20
Đặc điểm và các phiên bản của SQL Sever
Đặc điểm:
Hình 1.6: Đặc điểm
SQL là ngôn ngữ tựa tiếng Anh.
SQL là ngơn ngữ phi thủ tục, nó khơng u cầu ta cách thức truy nhập CSDL như
thế nào. Tất cả các thông báo của SQL đều rất dễ sử dụng và ít khả năng mắc lỗi.
SQL cung cấp tập lệnh phong phú cho các công việc hỏi đáp DL
Chèn, cập nhật, xoá các hàng trong một quan hệ
Tạo, sửa đổi, thêm và xoá các đối tượng trong của CSDL.
Điều khiển việc truy nhập tới cơ sở dữ liệu và các đối tượng của CSDL để
đảm bảo tính bảo mật của cơ sở DL
Đảm bảo tính nhất quán và sự ràng buộc của CSDL.
Yêu cầu duy nhất để sử dụng cho các hỏi đáp là phải nắm vững được các cấu trúc
CSDL của mình.
21
Các phiên bản
Enterprise : chứa tất cả cá đặc điểm nổi bật của SQL Server, bao gồm nhân bộ máy
cơ sở dữ liệu và các dịch vụ đi kèm cùng với các công cụ cho tạo và quản lý phân
cụm SQL Server. Nó có thể quản lý các CSDL lớn tới 524 petabytes và đánh địa
chỉ 12 terabytes bộ nhớ và hỗ trợ tới 640 bộ vi xử lý(các core của cpu)
Standard : Rất thích hợp cho các cơng ty vừa và nhỏ vì giá thành rẻ hơn nhiều so
với Enterprise Edition, nhưng lại bị giới hạn một số chức năng cao cấp (advanced
features) khác, edition này có thể chạy tốt trên hệ thống lên đến 4 CPU và 2 GB
RAM.
Developer : Có đầy đủ các tính năng của Enterprise Edition nhưng được chế tạo
đặc biệt như giới hạn số lượng người kết nối vào Server cùng một lúc…. Ðây là
phiên bản sử dụng cho phát triển và kiểm tra ứng dụng. Phiên bản này phù hợp
cho các cá nhân, tổ chức xây dựng và kiểm tra ứng dụng. MIỄN PHÍ
Workgroup: ấn bản SQLServer Workgroup bao gồm chức năng lõi cơ sở dữ liệu
nhưng khơng có các dịch vụ đi kèm. Chú ý phiên bản này khơng cịn tồn tại ở SQL
Server 2012.
Express : SQL Server Express dễ sử dụng và quản trị cơ sở dữ liệu đơn giản. Được
tích hợp với Microsoft Visual Studio, nên dễ dàng để phát triển các ứng dụng dữ
liệu, an tồn trong lưu trữ, và nhanh chóng triển khai.
I.5.3. Ưu – Nhược điểm của các ứng dụng.
Ưu điểm
C#
-
Là một trong số những ngôn ngữ thuần hướng đối tượng.
-
Chuyên sử dụng để lập trình cho windows.
-
Thiết kế winform cực tốt, đơn giản và dễ hiểu.
22
-
Ngôn ngữ dễ học, dễ tiếp cận với Java
-
Khả năng tương tác với Database dễ dàng hơn rất nhiều.
-
Được window hỗ trợ đầy đủ các control.
-
Thư viện .NET nhẹ, dễ cài đặt và được miễn phí.
-
Ngơn ngữ mã nguồn mở.
-
Code/Build trên Visual Studio, một IDE tiện lợi, mạnh mẽ của Microsoft.
-
Có thể sử dụng để lập trình web thơng qua C# thuần hoặc ASP.NET.
-
IDE Visual Studio hỗ trợ debug, build cực khủng.
ASP.Net Framework
-
Thực thi và phát triển đa nền (Linux, Windows, MacOS)
-
Kiến trúc mô đun để dễ dàng bảo trì
-
Phát triển như phần mềm mã nguồn mở
-
Tương thích với khuynh hướng phát triển web hiện tại như ứng dụng hướng
client hay môi trường đám mây
SQL Server
-
Không cần code
-
Rất dễ dàng để quản lý các hệ thống cơ sở dữ liệu bằng việc sử dụng SQL
chuẩn mà không cần phải viết bất cứ dòng code nào.
-
- Tiêu chuẩn được quy định rõ ràng
23
-
SQL sử dụng hai tiêu chuẩn ISO và ANSI, trong khi với các non-SQL
database khơng có tiêu chuẩn nào được tn thủ.
-
- Tính di động
-
SQL có thể được sử dụng trong chương trình trong PCs, servers, laptops, và
thậm chí cả mobile phones.
-
- Ngơn ngữ tương tác
-
Language này có thể được sử dụng để giao tiếp với cơ sở dữ liệu và nhận
câu trả lời cho các câu hỏi phức tạp trong vài giây.
-
- Multiple data views
-
Với sự trợ giúp của ngơn ngữ SQL, người dùng có thể tạo các hiển thị khác
nhau về cấu trúc cơ sở dữ liệu và cơ sở dữ liệu cho những người dùng khác
nhau.
Nhược điểm
C#
-
Khi muốn xài IDE bạn cần phải trả phí sử dụng.
-
Chỉ đem lại hiệu quả tốt nhất trên Window.
-
Lập trình Mobile cần phải thơng qua trung gian Xamarin (có phí).
-
Sử dụng Database tốt nhất với SQL Server.
ASP.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 nên chỉ sử dụng để dùng trên nền tảng
24
hệ điều hành Windows hạn chế sử dụng trên các nền tảng hệ điều
hành khác.
-
Khơng thể chạy trên Linux
-
Khơng có Visual Studio thì khó có thể viết code cho ASP.NET
SQL Server
-
Microsoft SQL Server chỉ được thiết kế để chạy trên các máy chủ chạy trên
Windows. ... Ngồi việc khơng thể chạy trên các nền tảng khơng phải
Windows, cũng có thể có các vấn đề tương thích liên quan đến tương tác với
các ứng dụng đang chạy trên các nền tảng khác.
-
Khả năng tương thích hạn chế
-
Microsoft SQL Server cần thanh tốn phí license để chạy nhiều database.
-
Giao diện khó dùng
-
SQL có giao diện phức tạp khiến một số người dùng khó truy cập.
-
Khơng được tồn quyền kiểm sốt : Các lập trình viên sử dụng SQL khơng
có tồn quyền kiểm soát cơ sở dữ liệu do các quy tắc nghiệp vụ ẩn.
-
Thực thi : Hầu hết các chương trình cơ sở dữ liệu SQL đều có phần mở rộng
độc quyền riêng của nhà cung cấp bên cạnh các tiêu chuẩn SQL.
-
Giá cả : Chi phí vận hành của một số phiên bản SQL khiến một số lập trình
viên gặp khó khăn khi tiếp cận.
-
Trong những năm qua, SQL đã trở thành một trong những ngôn ngữ cơ sở
dữ liệu được sử dụng rộng rãi nhất trên thế giới. Nó đã trở thành một tiêu
chuẩn cho Tổ chức Tiêu chuẩn hóa Quốc tế và Viện Stands Quốc gia Hoa
Kỳ.
25