CHƯƠNG 1: TỔNG QUAN VỀ WEB 1.1. Lịch sử hình thành và phát triển của công nghệ web 1.1.1. Khái niệm về website Khái niệm về website được hình thành từ thập niên 90 khi mà các trình duyệt đi vào giai đoạn hoàn thiện và phát triển mạnh mẽ như ngày nay. Không có lí do nào khiến chúng ta còn hoài nghi về lợi ích mà công nghệ web mang lại cho chúng ta cũng như cho sự phát triển của thế giới giai đoạn hiện tại và trong tương lai. Liệu đã sắp đến lúc công nghệ web có thể hoàn toàn thay thế cho các ứng dụng desktop hiện tại. Mới đây cộng đồng mã nguồn mở đã và đang hi vọng sẽ đưa ứng dụng web đến gần với ứng dụng desktop hơn.
Trang 1MỤC LỤC
Trang 2DANH MỤC BẢNG BIỂU
CHƯƠNG 1: TỔNG QUAN VỀ WEB
1.1 Lịch sử hình thành và phát triển của công nghệ web
1.1.1 Khái niệm về website
Khái niệm về website được hình thành từ thập niên 90 khi mà các trình duyệt đivào giai đoạn hoàn thiện và phát triển mạnh mẽ như ngày nay Không có lí do nàokhiến chúng ta còn hoài nghi về lợi ích mà công nghệ web mang lại cho chúng tacũng như cho sự phát triển của thế giới giai đoạn hiện tại và trong tương lai
Liệu đã sắp đến lúc công nghệ web có thể hoàn toàn thay thế cho các ứng dụngdesktop hiện tại Mới đây cộng đồng mã nguồn mở đã và đang hi vọng sẽ đưa ứngdụng web đến gần với ứng dụng desktop hơn Giả sử mọi mong muốn của họ đềutrở thành sự thực khi mà ứng dụng web đã có đủ sức mạnh để thay thế cho ứngdụng Desktop khi đó công việc của chúng ta sẽ trở nên đơn giản hơn rất nhiều.Bạn thử tưởng tượng nhé thay vì một công ty có hàng trăm máy tính và phải càihàng trăm ứng dụng Desktop giống nhau thay vào đó chúng ta có thể cài duy nhấtmột ứng dụng web để mọi người cùng dùng không những tại công ty mà họ còn cókhả năng làm việc tại nhà Mọi trao đổi sẽ được diễn ra trên môi trường web,những công việc đó ngày nay đã thực hiện được dựa trên nền tảng công nghệ web
và các phần mềm kết nối trên môi trường internet xong điều này là chưa phổ biến.Chúng ta hoàn toàn có thể tin tưởng vào một tương lai phát triển mạnh mẽ củacông nghệ web Mới đây một số ý tưởng cho rằng tại sao chúng ta phải cài đặt hệđiều hành trong khi nếu chúng ta khởi động từ máy tính và một trình duyệt webtương đương với một hệ điều hành sẽ được chúng ta sử dụng để thay thế cho các
hệ điều hành hiện nay Mặc dù ý tưởng đó chưa được thành sự thực xong nó chothấy khả năng ứng dụng rộng rãi của công nghệ web trong tương lai mà con ngườimuốn hướng tới
Chính vì những lợi ích đó trong module này chúng ta sẽ đi vào tìm hiểu chi tiếtnhững nguyên lý cơ bản để xây dựng các ứng dụng trên nền tảng công nghệ web.Qua đó chúng ta có thể xây dựng các website căn bản cho riêng mình và phát triển
nó để sau khi ra trường chúng ta có những kiến thức nhất định trong lĩnh vực xâydựng website cho các doanh nghiệp trong tương lai
Module này cung cấp các kiến thức căn bản về HTML (Ngôn ngữ được sử dụngphổ biến trên các trình duyệt web như một thành phần không thể thiếu), CSS(Cascading style sheet công cụ xây dựng giao diện cho các website), Javascript(Công cụ hỗ trợ trong việc tạo hiệu ứng và các bài toán phía trình duyệt),ASP.NET (Ngôn ngữ xây dựng website động tiên tiến vào bậc nhất hiện nay….),ngoài ra chúng ta còn được bắt tay xây dựng từng khâu trong việc xây dựng mộtwebsite hoàn chỉnh
1.1.2 Lịch sử ra đời của công nghệ web
Lịch sử ra đời của công nghệ web 6/8/1991 là một ngày đáng nhớ bởi đó là thờiđiểm mã máy tính "non nớt" cho www được đăng trên alt.hypertext để mọi người
có thể tải và tìm hiểu nó Cũng bắt đầu từ hôm ấy công nghệ web được thế giớibiết đến Jeff Groff, người cùng tham gia viết mã với Berners-Lee, cho biết ý
Trang 3rằng người sử dụng không cần phải xoay sở với những vấn đề kỹ thuật phức tạp".Web giống như một tấm khăn trải giường với nhiệm vụ cố che phủ sự rắc rối củanhững dữ liệu được lưu hành trên Internet Paul Kunz, nhà khoa học đã thiết lậpmáy chủ web đầu tiên ở châu Âu vào tháng 12/1991, cho biết đầu thập niên 90,máy tính giống như những "ốc đảo" thông tin Một lần đăng nhập chỉ có thể truycập tài nguyên của một hệ thống Chuyển sang máy tính khác đồng nghĩa với việc
họ phải đăng nhập thêm lần nữa và phải sử dụng những bộ lệnh khác nhau để truyxuất dữ liệu Web đã lôi kéo sự chú ý của Kunz khi ông chứng kiến Berners-Leetrình diễn khả năng hoạt động của web trên hệ thống IBM Sau đó, Kunz đã thiếtlập máy chủ web, cho phép các chuyên gia vật lý rà soát hơn 200.000 dữ liệu dễdàng hơn bao giờ hết Tuy nhiên, dù các nhà vật lý đã bị web quyến rũ, đa số mọingười lại không nhận biết được khả năng tiềm ẩm của nó Kunz cho rằng điều này
là do nhiều tổ chức cũng đang thực hiện ý tưởng tương tự Công nghệ nổi tiếngnhất khi đó là Gopher của Đại học Minnesota (Mỹ), cũng với tham vọng hóa giải
sự phức tạp của những máy tính kết nối Internet Gopher được ra mắt vào mùaxuân năm 1991 và lưu thông Gopher cao hơn hẳn so với lưu thông web trong vàinăm tiếp theo Trong thời gian đó, Berners-Lee, Jeff Groff và đồng nghiệp cũngtích cực giới thiệu phát minh của họ tại các hội thảo, cuộc gặp gỡ Dự án wwwchỉ thực sự thăng hoa khi chuyên gia Marc Andreessen thuộc Đại học Illinois (Mỹ)giới thiệu trình duyệt web máy tính đầu tiên vào tháng 4/1993 Trình duyệt Mosaic
đã quá thành công và một số tính năng vẫn được coi là quy ước trong công nghệweb Cũng vào năm 1993, Đại học Minnesota thu phí Gopher khiến người ta bắtđầu phải tìm đến các giải pháp thay thế Ngoài ra, theo Ed Vielmetti, nhà nghiêncứu thuộc Đại học Sự phát triển của công Michigan, ngay từ những năm đầu, web
đã chứng minh được tính nghệ web so với Gopher hữu ích với người sử dụngthông thường Mọi người có thể sử dụng Nguồn: MIT các trang web để tự bộc lộmình, điều mà những công nghệ khác không cho phép (hình thức mới hiện naycủa nó chính là blog) Cuối năm 1994, lưu thông web rốt cuộc cũng vượt quaGopher và từ đó chưa bao giờ bị tụt lại Hiện nay, gần 100 triệu website đã xuấthiện và người ta gần như đồng nhất công nghệ web với Net Kunz cho biết ýtưởng hình thành www là để tạo điều kiện cho mọi người vừa đọc vừa đóng gópnội dung Những công cụ mới như site chia sẻ ảnh, mạng xã hội, blog, các trangwiki đang dần hoàn thành lời hứa ban đầu của nhóm chuyên gia phát triển web
Và như thế, theo Kunz, web bây giờ mới chỉ bắt đầu những bước đi đầu tiên
1.1.3 Các giai đoạn phát triển của công nghệ web
Ban đầu, các trang Web là tĩnh; người dùng gửi yêu cầu một tài nguyên nào đó, vàserver sẽ trả về tài nguyên đó Các trang Web không có gì hơn là một văn bảnđược định dạng và phân tán Đối với các trình duyệt, thì các trang Web tĩnh khôngphải là các vấn đề khó khăn, và trang Web lúc đầu chỉ để thông tin về các sự kiện,địa chỉ, hay lịch làm việc qua Internet mà thôi, chưa có sự tương tác qua các trangWeb Năm 1990, Tim Berners-Lee, tại CERN, đã sáng chế ra HTML (Hyper TextMarkup Language), ngôn ngữ đánh dấu siêu văn bản HTML rất đơn giản và dễdùng, và nó trở thành một ngôn ngữ rất phổ biến và cơ bản Tuy nhiên, không lâusau đó, nhu cầu về các trang Web động, có sự tương tác ngày một tăng, chính vì
Trang 4thế sự ra đời các công nghệ Web động là một điều tất yếu Một số công nghệ Webđộng cơ bản phổ biến hiện nay như: CGI (Common Gateway Interface), Applet,JavaScript, JSP/Servlet (JavaServer Page), ASP(Active Server Pages),PHP(Hypertext Preprocessor)…
1.2 Khái quát về công nghệ web
1.2.1 Khái niệm về website
Bạn có thể hiểu website tương tự như quảng cáo trên các trang vàng, nhưng cóđiểm khác ở chỗ nó cho phép người truy cập có thể trực tiếp thực hiện nhiều việc trênwebsite như giao tiếp, trao đổi thông tin với người chủ website và với những ngườitruy cập khác, tìm kiếm, mua bán vv chứ không phải chỉ xem như quảng cáo thôngthường Hàng triệu người trên khắp thế giới có thể truy cập website- nhìn thấy nó chứkhông giới hạn trong phạm vi lãnh thổ nào cả Đối với một doanh nghiệp, Website làmột cửa hàng ảo với hàng hoá và dịch vụ có thể được giới thiệu và rao bán trên thịtrường toàn cầu Cửa hàng đó mở cửa 24 giờ một ngày, 7 ngày một tuần, quanh năm,cho phép khách hàng của bạn tìm kiếm thông tin, xem, mua sản phẩm và dịch vụ củabạn bất cứ lúc nào họ muốn
Khi bạn xem thông tin trên một trang Web thì trang Web đó đến từ một Website,
có thể là một Website đến từ Mỹ, từ Việt Nam, hay bất cứ nơi nào khác trên thế giới.Website sẽ tên và chính là địa chỉ mà bạn đã gọi nó ra tên đó người ta gọi là tên miềnhay domain name Thường các Website được sở hữu bởi một cá nhân hoặc tổ chứcnào đó
Website là một văn phòng ảo của doanh nghiệp trên mạng Internet Website baogồm toàn bộ thông tin, dữ liệu, hình ảnh về các sản phẩm, dịch vụ và hoạt động sảnxuất kinh doanh mà doanh nghiệp muốn truyền đạt tới người truy cập Internet Vớivai trò quan trọng như vậy, có thể coi Website chính là bộ mặt của Công ty, là nơi đểđón tiếp và giao dịch với các khách hàng trên mạng Website không chỉ đơn thuần lànơi cung cấp thông tin cho người xem, cho các khách hàng và đối tác kinh doanh củadoanh nghiệp, nó còn phải phản ánh được những nét đặc trưng của doanh nghiệp, đảmbảo tính thẩm mỹ cao, tiện lợi, dễ sử dụng và đặc biệt phải có sức lôi cuốn người sửdụng để thuyết phục họ trở thành khách hàng của doanh nghiệp
1.2.2 Các yêu cầu tối thiểu của một Webiste
Đối với một doanh nghiệp trong đời thường, để thành lập và hoạt động, doanhnghiệp đó phải đáp ứng được tối thiểu 3 yếu tố căn bản sau:
• Tên doanh nghiệp
• Trụ sở hoạt động của doanh nghiệp
• Các yếu tố vật chất kỹ thuật,máy móc và con người
Nếu ta tạm coi Website như 1 doanh nghiệp trong đời thường, thì để thiết lập vàđưa vào hoạt động 1 Website cũng phải đáp ứng được tối thiểu 3 yếu tố cơ bản nhưdoanh nghiệp là:
• Tên Website (hay còn gọi là Tên miền ảo hoặc Domain name) tương ứngvới Tên doanh nghiệp trong đời thường
• Web Hosting (hay còn gọi là nơi lưu giữ trên máy chủ Internet) tươngứng với Trụ sở doanh nghiệp trong đời thường
Trang 5• Các trang Web tương ứng với yếu tố vật chất kỹ thuật, máy móc củadoanh nghiệp trong đời thường và con người để quản lý và vận hànhWebsite đó.
1.2.3 Những thành phần cấu tạo nên một website
- Ngôn ngữ siêu văn bản HTML (HyperText Markup Language) là ngôn ngữ đánhdấu siêu văn bản được thiết kế ra để tạo nên các trang web Tập tin (File) HTML làmột văn bản có chứa các thẻ đánh dấu (markup tags), các thẻ đánh dấu này giúpcác trình duyệt Web hiểu được cách trình bày và hiển thị trang Web File HTML
có phần mở rộng (Extension) là htm hay html và có thể được tạo ra bằng bất cứchương trình xử lý văn bản đơn giản nào
Trong File HTML các phần tử (Element) được đánh dấu bằng các thẻ HTML Cácthẻ này được bao bởi dấu < và dấu > Thông thường các thẻ HTML được dùngtheo một cặp <tên thẻ> (thẻ bắt đầu) và </tên thẻ> (thẻ kết thúc), văn bản nằmgiữa cặp thẻ này là nội dung của phần tử Các thẻ HTML không phân biệt chữ hoa
và chữ thường, có nghĩa là các kiểu chữ đều được xem như nhau
- Ngôn ngữ kịch bản Ngôn ngữ kịch bản (script): Là loại ngôn ngữ dùng để nângcao hiệu quả và tính năng của trang web Có hai loại:
• Chạy trên máy server gọi là server script
• Chạy trên máy client (máy duyệt web) còn gọi là client script
- Các thành phần stypesheet: Sử dụng style sheet giúp cho người sọan thảo trangweb dễ dàng hơn trong việc thiết kế và hiệu chỉnh các trang web đồng thời đảmbảo tính nhất quán trong trình bày của website Một style là một mẫu định dạng(template) của các HTML tag Khái niệm style sheet trong trang web rất tương tựvới các khái niệm templates trong MSWORD bạn có thể thay đổi sự trình bày củamột văn bản Word thông qua việc thay đổi các style trong văn bản này Một cáchtương tự , bạn có thể thay đổi sự trình bày của trang web bằng cách hay đổi cácstyle sheet được gán cho các tag HTML
- Ngôn ngữ xử lý dữ liệu phía server
• Perl
Perl (Practical Extraction and Report Language) là ngôn ngữ kịch bản mãnguồn mở có cú pháp tương tự như C Perl chạy ở chế độ nền phía servertạo nội dung web theo cách thức ẩn đối với người xem Năm 1987, lrryWall xây dựng và phát triển Perl như là phiên bản cải tiến của awk với mụcđích thực hiện tự động một số tác vụ quản trị hệ thống Unix (awk là mộtchương trình xử lý văn bản của Unix) Sau đó Perl được phát triền dần vàphổ biến với nhiều dạng ửng dụng Perl có tính đối tượng, nhờ vậy việc bổsung thư viện mới rất dễ dàng Nó thích hợp cho cả ứng dụng web phức tạplẫn các tác vụ xử lý dữ liệu đơn giản
Đã có thời tất cả những việc tạo trang web động có lập trình đều dùng Perl,trước khi có những công nghệ khác như ASP, JSP, PHP và hiện Perl vẫn làmột trong những ngôn ngữ được dùng phổ biến nhất để viết các ứng dụngweb
Trang 6Hầu hết các máy chủ web hiện nay đều hỗ trợ Perl Apache có hỗ trợ miễnphí tích hợp trình dịch Perl mod-perl Điều này không chỉ giúp tăng tốc mãlệnh Perl mà còn cải thiện hiệu suất nhờ mod-perl lưu lại các mã lệnh biêndịch trong bộ nhớ Mod_perl kết hợp với một số công nghệ khác cho phépxây dựng các website cao cấp, nổi bật nhất là hai công nghệHTML::Embperl và HTML::Mason
Các giải pháp thương mại của Activestate và Binary Evolution cũng giúptăng tốc Perl theo cách thức tương tự như mod-perl PerlEx của ActiveStatetăng tốc chương trình CGI/PERL cho IIS trong khi sản phẩm của BinaryEvolution dùng cho Netscape, Apache, và IIS trên cả nền Windows vàUnix Có rất nhiều tài liệu trên Net về Perl cũng như nhiều thư viện chươngtrình tiện ích miễn phí Bạn có thể tìm thấy những mô đun viết sẵn ởwebsite CPAN (Comprehensive Perl Archive Network - www.cpan.org).Ngôn ngữ Perl hiện đang phát triển đi xa hơn thiết kế ban đầu của nó
• ASP
Công nghệ Microsoft Active Server pages (ASP) đi cùng với MicrosoftIntemet Information Server (IIS) ASP hỗ trợ nhiều ngôn ngữ kịch bản nhưPerlScript, JScript và VBScript PerlScript dựa trên ngôn ngữ Perl, JScriptdựa trên ngôn ngữ JavaScript, nhưng ngôn ngữ mặc định của ASP làVBScript, một ngôn ngữ kịch bản dễ học, là tập con của ngôn ngữ VisualBasic - một trong những ngôn ngữ lập trình phổ biến nhất hiện nay Côngnghệ ASP cho phép trộn nội dung HTML tĩnh với mã lệnh kịch bản thực thi
ở môi trường server để tạo ra kết quả động
Ưu điểm nổi bật nhất của ASP là khả năng dùng thành phần COM và ADO(Activex Data Object), nhưng cũng chính khả năng này làm cho chươngtrình ASP phức tạp và khó viết hơn Khi cần phát triển, bạn có thể tạo thànhphần COM riêng Microsoft khuyến cáo xây dựng thành phần COM để xử
lý mức luận lý Thành phần COM có thể phát triển bằng Visual Basic,Visual C++ hay Java
Tuy nhiên, với môi trường máy chủ dùng chung, thường các công ty cungcấp dịch vụ máy chủ giới hạn chỉ cho phép bạn dùng VBScript
Trở ngại lớn nhất của ASP là chỉ dùng trên IIS chạy trên máy chủ Win32
Có một số sản phẩm của các hãng thứ ba cho phép ASP chạy trên môitrường và máy chủ web khác như các sản phẩm thương mại InstantASP củaHalcyon, Chili!Soft của Chili!Soft và sản phẩm miễn phí OpenASP củaActiveScripting.org Có hai phiên bản Perl cho ASP: phiên bản Unix(Apache::ASP) dùng với Apache và phiên bản Windows PerlScript củahãng ActiveState
Việc cài đặt môi trường máy chủ hỗ trợ ASP rất đơn giản, IIS mặc định hỗtrợ sẵn ASP Personal Web Server cung cấp môi trường chạy ASP choWindows 95, 98 Công cụ Visual Interdev rất mạnh, giúp tạo trang ASP đơngiản và nhanh chóng Có rất nhiều website, sách và mã nguồn miễn phí choASP Đây là một lợi thế
• JSP
Trang 7Java Server Pages (JSP) là sự mở rộng của công nghệ JavaServlet, mộtthành phần trong chuẩn J2EE của Sun Với JavaServlet, bạn phải xử lý đầuvào HTTP và đầu ra HTML trong lớp Java, bạn cần có kiến thức lập trình
để xây dựng các ứng dụng phức tạp Với JSP bạn có thể tách riêng lớp hiểnthị HTML ra khỏi lớp Java xử lý nghiệp vụ phức tạp Điều này có nghĩa làngười phát triển có kinh nghiệm ngôn ngữ kịch bản, hay thậm chí ngườithiết kế web có thể viết mã lệnh hiển thị đơn giản, trong khi người pháttriển có kiến thức về Java tập trung viết JavaServlet hay JavaBean đề giảiquyết nghiệp vụ phức tạp
Tương tự ASP, JSP cũng thực hiện phép trộn nội dung HTML tĩnh với mãlệnh kịch bản thực thi ở môi trường server để tạo ra kết quả động JSP dùngngôn ngữ kịch bản mặc định là Java; tuy nhiên theo đặc tả kỹ thuật thì cũng
có thể dùng các ngôn ngữ khác JSP có ưu điểm so với ASP là sau lần thựcthi đầu tiên thì mã biên dịch (Servlet) của trang JSP được lưu lại trong bộnhớ của máy chủ web và sẵn sàng đáp ứng cho các yêu cầu truy cập sau đó(trang ASP/VBSCRIPT hay Asp/jscript phải được dịch lại với mỗi yêucầu) Lợi thế của JSP là sử dụng được toàn bộ sức mạnh của ngôn ngữ Javavới các tính năng khả chuyển, chạy được trên nhiều nền tảng hệ thống vàmáy chủ web, mã lệnh hướng đối tượng, bảo mật an toàn
Hiện chưa có nhiều dịch vụ đặt web hỗ trợ JSP Tuy Java miễn phí nhưngcác công cụ phát triển Java và phần mềm máy chủ Java khá đắt Các công
cụ phát triển trang JSP tốt là Borland Jbuilder, IBM WebSphere Studio Một
số phần mềm máy chủ Java hỗ trợ JSP miễn phí như Tomcat, JONAS Server-side JavaScript (SSJS) là sự mở rộng của JavaScript, ngôn ngữ kịchbản phổ biến chạy ở trình duyệt máy khách có cú pháp giống như C, mặc
dù có tên gọi tương tự nhưng nó không phải là Java SSJS có các tính năngtích hợp hỗ trợ cơ sở dữ liệu và email, quản lý phiên làm việc và khả năngliên tác với các lớp Java dùng công nghệ Livewire của Netscape SSJS chỉchạy trên máy chủ web Netscape
• PHP
Năm 1995 , Rasmus Lerdorf tạo ra PHP nhằm giải quyết việc viết lặp đi lặplại cùng đoạn mã khi tạo các trang home (vì vậy PHP được viết tắt từPersonal Home Page) Ban đầu, tác giả chỉ có ý định tạo bộ phân giải đơngiản để thay thế các thẻ lệnh trong file HTML bằng các đoạn mã lệnh viếtbằng C Dự án này đã được phát triển thành ngôn ngữ kịch bản mã nguồn
mở PHP - Hypertext Preprocessor được cài đặt cho khoảng 20% máy chủweb trên Internet, theo số liệu khảo sát của công ty Netcraft
PHP tương tự JSP và ASP với tập thẻ lệnh dùng cho trang HTML Điểmđặc biệt là PHP được phát triển hoàn toàn cho nền tảng web, chính vì vậy
mà các ứng dụng viết bằng PHP rất ngắn gọn so với VBScript hay JSP Đâycũng chính là điểm mạnh của PHP so với Perl
Cú pháp PHP mượn từ nhiều ngôn ngữ khác như C, Java, Perl PHP có thểgiao tiếp với nhiều hệ CSDL như Sybase, Oracle, Informix, Postgres và cảMicrosoft SQL Không chỉ có khả năng thao tác CSDL, PHP còn có nhiều
Trang 8khả năng khác như IMAP, SNMP, LDAP, XML PHP chạy trên hầu hếtcác nền tảng hệ thống Trình máy chủ phân giải mã lệnh PHP có thể tải vềmiễn phí từ trang web chính thức của PHP Có lẽ yếu tố hấp dẫn nhất củaPHP là nó hoàn toàn miễn phí Với máy tính cấu hình vừa phải chạy Linux,cài đặt Apache, PHP và MYSQL, bạn sẽ có máy chủ có thể phục vụ đượcnhiều ứng dụng web tương đối Toàn bộ chi phí hầu như chỉ là thời gianbạn bỏ ra để cài đặt các phần mềm PHP được xem là một thay thế cho Perl.PHP không thể làm được nhiều như Perl, thế nhưng chính sự hạn chế nàylàm cho PHP dễ học và dễ dùng Nhiều nhà phát triển dùng kết hợp cả hai:Perl dùng cho những tác vụ chạy bên dưới còn PHP dùng cho việc xử lý bềmặt Komodo của Active State Corp là công cụ miễn phí dùng để phát triểntrang PHP.
Mặc dù ra đời muộn cùng với sự ra đời của Net framework nhưngASP.NET đã chứng tỏ mình là công cụ mạnh mẽ và hỗ trợ lập trình hết sứclinh hoạt và là sự lựa chọn hàng đầu của các lập trình viên Ngoài khả năngthao tác dễ dàng trong thiết kế giao diện ASP.NET còn là công nghệ hỗ trợnhiều ngôn ngữ lập trình như JScript.NET, Smalltalk.NET, Cobol.NET,Perl.NET Là những ngôn ngữ đang rất được ưa chuộng bởi các lập trìnhviên hiện nay
Việc kết nối CSDL dễ dàng cũng là một trong những ưu điểm nổi bật củaASP.NET với sự hỗ trợ của ADO.NET và mới đây nữa là sự ra đời củaLinQ với khả năng kết nối CSDL dễ dàng ASP.NET đang dần hoàn thiện đểtrở thành công nghệ thống trị trong thế giới website
1.3 Thống kê
Thống kê lượng truy cập web qua 3 năm 2015,2016,2017
Trang 91.4 D
1.5.
Trang 10CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ SỬ DỤNG
2.1 Tìm hiểu về phân tích và thiêt kế hướng đối tượng
2.1.1 Giới thiệu phương pháp phân tích và thiết kế hướng đối tượng
Đối tượng (object): Các dữ liệu và chỉ thị được kết hợp vào một đơn vị đầy đủ tạo
nên một đối tượng Đơn vị này tương đương với một chương trình con và vì thế các đối
tượng sẽ được chia thành hai bộ phận chính: phần các phương thức (method) và phần các thuộc tính (attribute / Properties).
Trong thực tế, các phương thức của đối tượng là các hàm và các thuộc tính của nó
là các biến, các tham số hay hằng nội tại của một đối tượng (hay nói cách khác tập hợpcác dữ liệu nội tại tạo thành thuộc tính của đối tượng) Các phương thức là phương tiện
để sử dụng một đối tượng trong khi các thuộc tính sẽ mô tả đối tượng có những tínhchất gì
Các phương thức và các thuộc tính thường gắn chặt với thực tế các đặc tính và sửdụng của một đối tượng
Phân tích và thiết kế hướng đối tượng là việc cố gắng ánh xạ các đối tượng trong
thế giới thực thành các đối tượng trong hệ thống, lấy đối tượng làm trung tâm, thiết kế
và xây dựng vòng đời của đối tượng, và hệ thống hình thành chính là tập hợp các đốitượng và quan hệ giữa các đối tượng
Ưu điểm:
- Gần gũi với thế giới thực
- Tái sử dụng dễ dàng
- Đóng gói, che dấu thông tin làm cho hệ thống tin cậy hơn
- Thừa kế giảm chi phí, hệ thống có tính mở cao
- Với hệ thống lớn và phức tạp, hoặc có nhiều luồng dữ liệu khác nhau, sử dụngphương pháp hướng đối tượng giúp tận dụng khả năng bảo vệ giữ liệu ngoài racòn tiết kiệm công sức và tài nguyên
Nhược điểm: Phương pháp này khá phức tạp, khó theo dõi được luồng dữ liệu do
có nhiều luồng dữ liệu ở đầu vào
Các giai đoạn phân tích thiết kế hướng đối tượng:
- Phân tích hướng đối tượng (Object Oriented Analysis)
- Thiết kế hướng đối tượng (Object Oriented Design)
- Lập trình hướng đối tượng (Object Oriented Programming)
2.1.2 Giới thiệu ngôn ngữ UML
UML (Unified Modeling Language) là một ngôn ngữ mô hình hóa tổng quát, trực quan bằng hình ảnh, dùng để đặc tả (Specifying), mô hình hóa trực quan (Visualizing), hình dung xây dựng (Constructing) và tài liệu hóa (Documenting), các nhân tố của hệ thống phần mềm
UML giúp giải quyết các vấn đề phân tích, thiết kế, cài đặt, được rõ ràng, thông suốt
trong quá trình phát triển phần mềm, giúp người phát triển thấy rõ “cái nhìn tổng thể” về đối tượng từ đó ra quyết định liên quan đến phần mềm cần xây dựng
Trang 11UML hỗ trợ xây dựng hệ thống hướng đối tượng dựa trên việc nắm bắt khía cạnh cấu trúc
ST
T Biểu đô Chức năng
1 Use Case - Mô tả yêu cầu chức năng của hệ thống
- Mô tả tương tác giữa người sử dụng với hệ thống
2 Lớp Mô tả cấu trúc của lớp và mối quan hệ giữa các lớp
3 Thành phần - Bao gồm các thành phần và mối quan hệ giữa chúng trong hệ thống
- Một thành phần đại diện cho một yếu tố cài đặt vật lý của môi trường: Mã nguồn, tập tin, cơ sở dữ liệu …
4 Triển khai Thể hiện mối quan hệ vật lý giữa các thành phần phần cứngvà phần mềm trong hệ thống.
5 Tương tác
Bao gồm:
- Biểu đồ tuần tự: Mô tả tương tác giữa các đối tượng theo
trình tự thời gian và thông điệp được truyền đi giữa các lớp
- Biểu đồ cộng tác: Không theo thứ tự nhưng biểu diễn tổng
quát giao tiếp giữa các đối tượng
6 Hoạt động Mô tả các hoạt động, luồng xử lý bên trong hệ thống Nó cóthể được sử dụng để mô tả các qui trình nghiệp vụ trong hệ
thống, các luồng của một chức năng hoặc các hoạt động củamột đối tượng
7 Trạng thái - Mô tả vòng đời của đối tượng từ khi nó được tạo ra tới khi kết thúc
- Mô tả cách chuyển biến trạng thái của đối tượng tương ứng với tác động bên ngoài
Trang 12Xampp là một mã nguồn mở máy chủ web đa nền được phát triển bởi ApacheFriends, bao gồm chủ yếu là Apache HTTP Server, MariaDB database, vàinterpreters dành cho những đối tượng sử dụng ngôn ngữ PHP và Perl Xampp làviết tắt của Cross-Platform (đa nền tảng-X), Apache (A), MariaDB (M), PHP (P)
và Perl (P) Nó phân bố Apache nhẹ và đơn giản, khiến các lập trình viên có thể dễdàng tạo ra máy chủ web local để kiểm tra và triển khai trang web của mình Tất
cả mọi thứ cần cho phát triển một trang web - Apache ( ứng dụng máy chủ), Cơ sở
dữ liệu (MariaDB) và ngôn ngữ lập trình (PHP) được gói gọn trong 1 tệp Xamppcũng là 1 đa nền tảng vì nó có thể chạy tốt trên cả Linux, Windows và Mac Hầuhết việc triển khai máy chủ web thực tế đều sử dụng cùng thành phần như XAMPPnên rất dễ dàng để chuyển từ máy chủ local sang máy chủ online
Trang 132.3 Tìm hiểu về HTML
2.3.1 Giới thiệu về HTML
Ngày nay Internet đã phát triển đến mức nó trở thành một phần không thể thiếu đượccủa cuộc sống hiện đại Các nguồn thông tin được cung cấp một cách nhanh chóng vàchính xác trên những Website Trên Internet, quả thực có rất nhiều Website chú trọngđến ngôn ngữ HTML, cũng có rất nhiều Web site dành cho mục đích thương mại, nghệthuật Thế nhưng lại có ít nguồn thông tin đề cập đến việc thiết kế một trang Web, mộtWebsite, thiết kế đồ hoạ, giao diện người sử dụng hay những kiến thức về cách thức tổchức thông tin
2.3.2 Khái niệm
HTML (HyperText Markup Language) – Ngôn ngữ đánh dấu siêu văn bản được sửdụng để tạo các tài liệu có thể truy cập trên mạng Tài liệu HTML được tạo nhờ dùngcác thẻ và các phần tử của HTML File được lưu trên máy chủ dịch vụ web với phần
mở rộng “.htm” hoặc “.html” Ngày nay với sự phát triển của công nghệ web việc ứngdụng các công cụ HTML càng trở nên quan trọng trong sự phát triển của ngành côngnghệ web hiện đại
2.3.3 Ví dụ
Ví dụ về tạo file HTML Nếu bạn sử dụng Window hãy mở Notepad, nếu bạn sử dụngMac mở ứng dụng Simple Text Với OSX bạn mở TextEdit và thay đổi lựa chọn sau:Select (trong cửa sổ preference) > Plain Text thay vì Rich Text và chọn "Ignore richtext commands in HTML files" Việc này rất quan trọng bởi vì nếu bạn không làm vậythì code HTML có thể không đúng
Sau đó bạn gõ vào những dòng sau:
<html>
<head>
<title>Trường đại học Công nghệ Giao thông vận tải </title>
Trang 14Khi bạn lưu một văn bản dưới dạng HTML, bạn có thể sử dụng cả hai dạng là htm
và html Chúng ta đã sử dụng dạng htm trong ví dụ trên Lý do này bắt nguồn từnguyên nhân ngày trước là có những phần mềm chỉ cho phép phần mở rộng có tối đa
là 3 chữ cái Với những phần mềm mới hiện nay chúng ta nghĩ sẽ tốt hơn nếu bạn lưulại với phần mở rộng là html
Một chú ý khi sử dụng trình soạn thảo HTML:
Bạn có thể dễ dàng chỉnh sửa một tài liệu HTML bằng cách sử dụng WYSIWYG(what you see is what you get = thấy gì có đó) như là Frontpage, Claris Homepage,Dream weaver hoặc Adobe PageMill thay vì bạn phải tự viết những cặp thẻ từ đầu đếncuối Nhưng nếu bạn muốn trở thành một web master đầy kỹ thuật, tôi khuyên bạn nên
sử dụng những trình soạn thảo text đơn giản để học và làm quen với cấu trúc câu lệnhcủa HTML
Thực chất PHP là ngôn ngữ kịch bản nhúng trong HTML, nói một cách đơn giản đó làmột trang HTML có nhúng mã PHP, PHP có thể được đặt rải rác trong HTML
Trang 15PHP là một ngôn ngữ lập trình được kết nối chặt chẽ với máy chủ, là một công nghệ phíamáy chủ (Server-Side) và không phụ thuộc vào môi trường (cross-platform) Đây là haiyếu tố rất quan trọng, thứ nhất khi nói công nghệ phía máy chủ tức là nói đến mọi thứtrong PHP đều xảy ra trên máy chủ, thứ hai, chính vì tính chất không phụ thuộc môitrường cho phép PHP chạy trên hầu hết trên các hệ điều hành như Windows, Unix vànhiều biến thể của nó Đặc biệt các mã kịch bản PHP viết trên máy chủ này sẽ làm việcbình thường trên máy chủ khác mà không cần phải chỉnh sửa hoặc chỉnh sửa rất ít
Khi một trang Web muốn được dùng ngôn ngữ PHP thì phải đáp ứng được tất cả các quátrình xử lý thông tin trong trang Web đó, sau đó đưa ra kết quả ngôn ngữ HTML
Khác với ngôn ngữ lập trình, PHP được thiết kế để chỉ thực hiện điều gì đó sau khi một
sự kiện xảy ra (ví dụ, khi người dùng gửi một biểu mẫu hoặc chuyển tới một URL).2.4.2 ƯU điểm khi dùng PHP
Để thiết kế Web động có rất nhiều ngôn ngữ lập trình khác nhau để lựa chọn, mặc dù cấuhình và tính năng khác nhau nhưng chúng vẵn đưa ra những kết quả giống nhau Chúng
ta có thể lựa chọn cho mình một ngôn ngữ: ASP, PHP, Java, Perl và một số loại khácnữa Vậy tại sao chúng ta lại nên chọn PHP Rất đơn giản, có những lí do sau mà khi lậptrình Web chúng ta không nên bỏ qua sự lựa chọn tuyệt vời này
PHP được sử dụng làm Web động vì nó nhanh, dễ dàng, tốt hơn so với các giải phápkhác
PHP có khả năng thực hiện và tích hợp chặt chẽ với hầu hết các cơ sở dữ liệu có sẵn, tínhlinh động, bền vững và khả năng phát triển không giới hạn
Đặc biệt PHP là mã nguồn mở do đó tất cả các đặc tính trên đều miễn phí, và chính vì mãnguồn mở sẵn có nên cộng đồng các nhà phát triển Web luôn có ý thức cải tiến nó, nângcao để khắc phục các lỗi trong các chương trình này
PHP vừa dễ với người mới sử dụng vừa có thể đáp ứng mọi yêu cầu của các lập trình viênchuyên nghiệp, mọi ý tuởng của các bạn PHP có thể đáp ứng một cách xuất sắc
Cách đây không lâu ASP vốn được xem là ngôn ngữ kịch bản phổ biến nhất, vậy mà bâygiờ PHP đã bắt kịp ASP, bằng chứng là nó đã có mặt trên 12 triệu Website
2.5 Tìm hiểu ngôn ngữ SQL
2.5.1 Khái niệm
SQL (Structured Query Language) là ngôn ngữ truy vấn mang tính cấu trúc được
sử dụng để tạo, tổ chức, quản lý và truy xuất dữ liệu trên các bản ghi được lưu trữ trong Database (Cơ sở dữ liệu), chẳng hạn như cập nhật các bản ghi, xóa các bản ghi, tạo và sửa đổi các bảng, …
SQL là một hệ thống ngôn ngữ bao gồm tập các câu lệnh sử dụng để tương tác với
cơ sở dữ liệu quan hệ Được thiết kế bởi Donald D.Chamberlin và Raymond F.Boyce tại IBM và là một tiêu chuẩn của ANSI / ISO
2.5.2 Vai trò
Trang 16SQL được sử dụng để điều khiển tất cả các chức năng mà một hệ quản trị cơ sở dữliệu cung cấp cho người dùng bao gồm:
- Định nghĩa dữ liệu: SQL cung cấp khả năng định nghĩa các cơ sở dữ liệu, các
cấu trúc lưu trữ và tổ chức dữ liệu cũng như mối quan hệ giữa các thành phần dữliệu
- Truy xuất và thao tác dữ liệu: Với SQL, người dùng có thể dễ dàng thực hiện các
thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu trong các cơ sở dữ liệu
- Điều khiển truy cập: SQL có thể được sử dụng để cấp phát và kiểm soát các thao
tác của người sử dụng trên dữ liệu, đảm bảo sự an toàn cho cơ sở dữ liệu
- Đảm bảo toàn vẹn dữ liệu: SQL định nghĩa các ràng buộc toàn vẹn trong cơ sở
dữ liệu nhờ đó đảm bảo tính hợp lệ và chính xác của dữ liệu trước các thao táccập nhật cũng như các lỗi của hệ thống
2.5.3 Đặ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 yê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 dữ liệu như:
• 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 CSDL
• Đảm bảo tính nhất quán và sự ràng buộc của CSDL
2.5.4 K
2.6 Tìm hiểu hệ quản trị MySQL
MySQL là một trong những hệ thống quản lý cơ sở dữ liệu (CSDL) mã nguồn mở quan hệ SQL sử dụng trên web phổ biến nhất hiện nay
Ưu điểm:
- Dễ dàng sử dụng: MySQL có thể dễ dàng cài đặt Với các công cụ bên thứ 3 làm
cho nó càng dễ đơn giản hơn để có thể sử dụng
- Giàu tính năng: MySQL hỗ trợ rất nhiều chức năng SQL được mong chờ từ một
hệ quản trị cơ sở dữ liệu quan hệ-cả trực tiếp lẫn gián tiếp
- Bảo mật: Có rất nhiều tính năng bảo mật, một số ở cấp cao đều được xây dựng
trong MySQL
- Khả năng mở rộng và mạnh mẽ: MySQL có thể xử lý rất nhiều dữ liệu và hơn
thế nữa nó có thể được mở rộng nếu cần thiết
- Nhanh: Việc đưa ra một số tiêu chuẩn cho phép MySQL để làm việc rất hiệu
quả và tiết kiệm chi phí, do đó nó làm tăng tốc độ thực thi
2.7 T ìm hiểu Codeigniter frameword
Trang 17• Giới thiệu tổng quan
- CodeIgniter là một nền tảng ứng dụng web nguồn mở được viết bằng ngônngữ PHP
- Ý tưởng xây dựng CodeIgniter được dựa trên Ruby on Rails, một nền tảngứng dụng web được viết bằng ngôn ngữ Ruby
• Những điểm nổi bật
- Được thiết kế theo mô hình MVC, nó giúp cho việc thiết kế, xử lý và bảo trì
mã nguồn dễ dàng, đồng thời tăng khả năng mở rộng của phần mềm.CodeIgniter vận dụng mô hình này trong thiết kế, giúp tách biệt các tập tingiao diện với các tập tin xử lý dữ liệu, nâng cao khả năng quản lý và dễ bảotrì
- Nhỏ gọn, tốc độ nhanh, miễn phí
- Hệ thống thư viện phong phú, hỗ trợ search engine optimization
- Bảo mật tốt
Trang 18CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ
3.1 Khảo sát một số trang web hiên nay
Em đã khảo sát một số trang web đang thịnh hành hiện nay như: dantri, 24h, vietnamnet chủ yếu về mặt giao diện, và các chuyên mục bài viết:
Trang web dantri.com.vn
Trang web 24h.com.vn
Trang 19Trang web kenh14.vn
Trang web vietnamnet.vn
Trang 20Trang web yan.vn
Trang web news.zing.vn
Trang 213.2 Phân tich thiết kế
3.2.1 Xác định tác nhân (Actor) và chức năng (UseCase)
1 Người quản trị
(admin)
Quản lý trang web Quản ký tài khoản
Quản lý tin tức Quản lý chuyên mục Quản lý bình luận Báo cáo thống kê Đăng nhập
2 Độc giả Người truy cập vào
web
Xem tin tức Bình luận Tìm kiếm tin tức
3.2.2 Biểu đô UserCase
1.Biểu đồ UserCase tổng quát
Trang 222 Biểu đồ UserCase quản lý chuyên mục
3 Biểu đồ UserCase quản lý tài khoản
4 Biểu đồ UserCase quản lý bình luận
Trang 235 Biểu đồ UserCase quản lý tin tức
6 Biểu đồ UserCase báo cáo thống kê
Trang 247.Biểu đồ UserCase dành riêng cho tác nhân độc giả
8 Biểu đồ UserCase đăng nhập
Người dùng đã có tài khoản
Luồng sự kiện 1. Actor: Người dùng đưa ra yêu cầu đăng nhập tại
View: DangNhap.
2 Yêu cầu nhập UserName và PassWord.
3 Người dùng nhập UserName và PassWord và bấm nút đăng nhập.
4 Gửi dữ liệu người dùng nhập tới Controller.
5 Kiểm tra thông tin người dùng nhập.
6 Lấy dữ liệu tới Model.
7 Trả dữ liệu tới Controller.
Trả lại kết quả kiểm tra tới View : DangNhap.