249
Học lập trình Chương 1 Giới thiệu kỹ thuật về phát triển Ứng dụng

Họclập trình - i.vietnamdoc.neti.vietnamdoc.net/data/file/2015/Thang08/04/Hoc-lap-trinh-tieng-viet... · Làm chủmọimặttrên ma trận(tiếp) Phương thứclàm việccủamáy?

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Học lập trình

Chương 1

Giới thiệu kỹ thuật về

phát triển Ứng dụng

Máy tính làm việc như thế nào?

• Máy tính là một chiếc máy hoàn thiện hơn những máy móckhác, nhưng máy phụ thuộc vào các câu lệnh bên trong đểbiết phải làm gì. Ví dụ, khi bạn nhấn nút ON trên máy, lô gôcủa máy tính thể hiện, và hệ điều hành Windows sẽ bắt đầutải, kế đó là biểu tượng chuột xuất hiện, và rồi màn hìnhchính desktop của máy tính được tải.

• Máy tính trông có vẻ thông minh, nhưng kỳ thực, máy thựchiện các hành vi theo các câu lệnh tương tự. Máy tính sẽchỉ hoạt động theo các câu lệnh.

• Lập trình là đưa ra các câu lệnh để máy làm gì đó, từ đơngiản tới các hoạt động phức tạp nhất, nhưng kết cục lại, đósẽ chỉ thuần túy là những câu lệnh mà thôi.

Làm thế nào để đưa ra các câu lệnh?

• Thông qua khóa học này, chúng tôi sẽ chia sẻvới các bạn về những câu lệnh, và bạn sẽ điqua các từ lạ mà chúng ta đặt cho những câulệnh này..

• Bạn sẽ nghe về các thuật ngữ như CSS, Javascript, C#, MVC, Java, SQL, Ruby, Python, C, C++, WPF, Android, IOS, Windows Phone, Windows 8, REST, JSON, XML, AJAX, AJAJ Services

Làm chủ mọi mặt trên ma trận

• Hãy bắt đầu. Chúng ta đã đọc về nội dung củakhóa học này trên máy tính. Chúng ta có thểđọc vì có người đã viết hệ điều hành trên máy, và ai đó khác đã viết chương trình Internet Explorer để lướt web và giúp chúng ta gắn kếttại đây. Hơn thế, một vài người đã lập trìnhtrang web này để các bạn có thể tìm được tàiliệu này.

• Bạn có sử dụng điện thoại? .. Để nhắn tin hoặcgọi điện.. Bạn có thể kết nối vì hãng điện thoạiđã có chương trình CNTT để kiểm tra xem bạnlà ai, bạn có tiền trong tài khoản để gọi điệnkhông, và chương trình sẽ dò tìm bạn gọi aitheo số bạn vừa bấm, rồi gửi tín hiệu tới máygọi để máy reo chuông và thiết lập cuộc gọi..

Làm chủ mọi mặt trên ma trận (tiếp)

Phương thức làm việc của máy?

• Chúng ta được chia sẻ rằng máy tính không thôngminh, nó chỉ biết biểu đạt các nhiệm vụ liên tụctheo cách hiệu quả nhất.

• Mỗi lúc chúng ta nhìn thấy nhiệm vụ được thểhiện theo cách tương tự, đó đồng nghĩa là nhiệmvụ đã hoàn toàn phù hợp với chương trình đượclập của chúng ta.

• Đó là lí do chúng ta cần hiểu rằng, việc lập trình lànhằm bảo cho máy tính về các bước thực hiệnnhiệm vụ.

Ví dụ về game

• Chúng ta có một Game và các thuộc tính. Khichúng ta bấm vào nút trên thanh joystick địnhnghĩa nó là nhảy.

• Nếu phím được bấm đi bấm lại, nghĩa là thuộctính sẽ nhảy như bước trước.

• Hãy tập trung vào nhảy, dù có điều gì xảy racho phần còn lại của game, nó sẽ chỉ tập trungvào việc nhảy.

• Đây là nhảy, bởi vì ai đó đã lập trình cho nút này thao tác đó. Sẽ cónhững bước như sau:– Vẽ tính năng này lên màn hình– Chờ người dùng làm gì đó với thanh joystick– Một tín hiệu được nhận từ joystick, người dùng bấm một nút– Anh ta bấm phím nào? Nếu là nút Up, tiếp tục– Đọc vị trí hiện tại của màn hình tính năng– Tính khoảng cách bước nhảy, 20pixels, 30pixels– Tải hình ảnh kết quả theo những khuôn hình của bước nhảy– In những màn hình kết quả của bước nhảy theo sự thay đổi tương ứng– Quay lại bước 2

• Cũng vậy, một game không chỉ có một thuộc tính như nhảy, sẽ cónhiều các sự việc khác diễn ra đồng thời, nhưng chúng cũng sẽ chơituần tự từng bước như vừa kể và được lập trình bởi chuyên gia lậptrình.

Ví dụ về game (tiếp)

Nguyên tắc lập trình đầu tiên

“Bất kể hành vi lặp đi lặp lại nào và có thể tiênđoán, đều có thể được lập trình”

Tay máy robot

• Nếu chúng ta đã mô tả tuần tự các bước để vận hànhtay robot, như trong ví dụ game, chúng ta sẽ thấy đó làđiều tương tự.

• Cả 2 đều hoạt động một cách logic, được điều khiển và theo các bước tuần tự.

• Nếu hành vi là tương đương, thì kết quả cũng tươngđương.

• Có được điều này là nhờ lập trình CNTT, dù đó là ngônngữ gì, thì cũng là sự khác biệt đáng trân trọng.

• Trong khi tay robot tương tác với thế giới vật lý, đi từphần này tới phần kia, thì một phần khác lại tương tácvới thế giới ảo, in hình ảnh kết quả lên màn hình.

Tay máy robotic (tiếp)

• Cả 2 quy trình đều cần chương trình CNTT điều khiển, và người lập trình viết ra các bước hành động.

• Sự khác biệt chỉ là việc tương tác với thế giới bên ngoài.• Trong trường hợp của robot, ngoài việc thực hiện các bước,

kết quả sẽ là các chuyển động vật lý nhờ tay robot.• Bên này, để thể hiện, hệ thống CNTT sẽ tương tác với thế

giới bằng cách in ra các kết quả hiển thị trên màn hình.• Yếu tố quan trọng để thiết kế bất kỳ hện thống nào là nó

sẽ tương tác với thế giới bên ngoài như thế nào.• Trong khóa học này, chúng ta sẽ làm việc với các quy trình

ảo, không phải vật lý để đọc giá trị từ giao diện ngườidùng và thực hiện những tương tác này để có kết quảmong đợi.

Ứng dụng Online hay Offline

• Khi tạo ra một ứng dụng, điều quan trọng cần làmlà quyết định ứng dụng sẽ chạy trên nền tảnginternet hay chạy cả khi không có kết nối internet.

• Điểm khác biệt đầu tiên là bởi ứng dụng sẽ chạyhoàn toàn khi online hay chạy kể cả lúc offline.

• Ứng dụng Online đòi hỏi luôn có kết nối internet, và nó sẽ không chạy khi kết nối không tồn tại.

• Một ví dụ tiêu biểu là mạng lưới game. Không cókết nối Internet, nó sẽ không vận hành.

Websites

• Vậy website có phải là một ứng dụng?• Nếu websie cho phép bạn làm gì đó, như ứng dụng và

tính năng chính của nó là các ứng dụng vận hành khikết nối internet tồn tại.

• Khi một website được sử dụng để làm gì đó đặc thù, nó tương tác với người dùng, và nó làm gì đó vớithông tin và trả về kết quả. Đó sẽ là ứng dụng.

• Khác biệt chính giữa 1 website và một ứng dụng web là sau đó, người dùng có khả năng tương tác và sửadữ liệu của tương tác đó không.

• Websites cho phép bạn làm gì đó gọi là ứng dụng web online.

Ứng dụng Offline

• Một ứng dụng offline phải được cài đặt hoặcchạy trên một thiết bị vật lý, trong khi ứngdụng online thì có thể chạy nhờ truy cậpInternet.

• Ví dụ Microsoft Word, Visual Studio, …

Tôi cần học gì để biết cách lập trình?

• Để học lập trình, bạn cần biết 2 hoặc 3 ngôn ngữlập trình và 2-3 công nghệ khác nhau dựa trên 4 yếu tố chính sau:

• Tôi sẽ tương tác với người dùng như thế nào?– Tôi phải quyết định người dùng tương tác thế nào với

ứng dụng.– Người sử dụng dùng smart phone, nhấn nút, sử dụng

camera.– Người sử dụng truy cập website để dùng ứng dụng

của tôi.– Người dùng sử dụng thiết bị cảm ứng, bàn phím đặc

biệt hoặc màn hình cảm ứng.

• Tôi có cần nhớ thông tin không?– Tôi phải quyết định liệu ứng dụng có lưu trữ dữ

liệu, nếu nó có liên quan đến việc làm khảo sát, chấm điểm, lưu dữ liệu để có thể lấy về vàonhững thời điểm yêu cầu.

– Người dùng không lưu dữ liệu nào cả. Bất kỳ thờiđiểm nào mà anh ta dùng ứng dụng, nó cần bắtđầu từ đầu.

– Người dùng lưu thông tin và có thể lấy lại dữ liệuđó.

Tôi cần học gì để biết cách lập trình(tiếp)?

• Tôi có cần kết nối vĩnh viễn không?

– Tôi phải quyết định liệu ứng dụng của tôi có cần liênhệ với người dùng khác để chạy, hay có cần mộtđường internet ổn định không

– Người dùng tương tác với người dùng khác nhờ xemdữ liệu hoặc kết nối với họ

– Người dùng không cài đặt gì cả khi chạy ứng dụng, anh ta chỉ đơn giản là truy cập website

Tôi cần học gì để biết cách lập trình (tiếp)?

• Nếu ứng dụng đòi hỏi kết nối với ứng dụng khác:

– Ứng dụng sử dụng bản đồ Internet hoặc kết nối vớiứng dụng khác để chia sẻ dữ liệu

– Ứng dụng truy cập máy chủ với các khởi động ngườidùng

– Ứng dụng không đòi hỏi kết nối với bất kỳ ai

Công Nghệ chúng ta sử dụng phụ thuộc vào cáichúng ta dự kiến lập trình.

Tôi cần học gì để biết cách lập trình (tiếp)?

Công Nghệ

• Người dùng có truy cập bằng website?– HTML + CSS + Javascript– Adobe Air + Java

• Người dùng truy cập bằng smartphone?– PhoneGap + HTML + CSS + Javascript– Bằng máy Windows Phone?

• Windows Mobile WPF + Window Phone + C# .NET

– Bằng máy dùng Android?• Android Development Kit + Java

– Bằng máy IPhone?• IOS SDK + Objective C

• Người dùng truy cập qua tablet?– PhoneGap + HTML + CSS + Javascript– Tablet Windows 8?

• Windows WPF + Window 8 + C# .NET

– Tablet Android?• Android Development Kit + Java

– Tablet iPad?– IOS SDK + Objective C

• Người dùng có dùng định vị GPS, Camera, Accelerometer?– IOS SDK, Android Development Kit

Công Nghệ

• Người dùng sử dụng các thành phần ngoài như tay chơigame Joystick, cảm ứng di động, 3D graphics hoặc cácthành phần audio?– Đó là game?

• C# .NET o C++ or Java• Có cần tạo đồ họa phức tạp?

– Unity, Adobe Air

• Tôi không cần đồ họa đặc biệt– LimeJS, CSS

– Đó không phải là game?• C++ o C# .NET hoặc Java• Cho Hệ Điều Hành Windows?

– WPF + C#.NET

• Cho máy Mac?– Java, C++, etc

Công Nghệ

• Tôi phải lưu và lấy dữ liệu về?– SQL, SQL Server Express hoặc My SQL

• Tôi không chắc về việc dữ liệu nào sẽ phải lưu– Document Databases

• Ứng dụng Online hoặc offline– Liệu tôi có phải kết nối với người khác?– Liệu ứng dụng có đòi hỏi kết nối vĩnh viễn để chạy?

• Javascript, C#.NET, Java, WCF, Web Server

– Ứng dụng chạy chỉ thông qua trang?– Ứng dụng đòi hỏi Internet, nhưng được cài đặt

• Rest Services, JSON, WCF

• Ứng dụng không đòi hỏi kết nối và chạy trên desktop?– C#.NET hoặc Java

Công Nghệ

• Ứng dụng có tương tác với ứng dụng kháckhông?

– Java, C#.NET, WCF, REST Services

• Ứng dụng cần quản trị các thành phần điệntử hay robot không?

– Arduino

Công Nghệ

Tôi phải dùng gì?

• Lập trình viên cần chọn lựa gì?– HTML, CSS, JavaScript, Adobe Air, Java, C++, C#.NET, WPF,

WCF, Rest Services, Windows Phone SDK, IOS SDK, Android SDK, Unity, SQL, PHP

• Bạn học được gì từ khóa học?

• HTML, CSS, Javascript, jQuery, C#, SQL, LINQ, Rest Services

Bạn không cần phải học mọi ngôn ngữ lập trình vào mộtthời điểm. Bạn chỉ cần hiểu nó dùng cho mục tiêu gì và sử dụng ngôn ngữ phù hợp nhất với bạn.

Học lập trình

Chương IIỨng dụng Online,

Phương thức làm việc, HelloWorld

Ứng dụng Online

• Hiện nay, rất nhiều ứng dụng cần truy cậpInternet

– Tương tác với người dùng khác

– Lấy dữ liệu được lưu online

Ví dụ - mạng xã hội

• John chụp một tấm hình trên điện thoại hoặc máy ảnh. Khi anh ấy chụp ảnhthì không cần kết nối Internet hoặc sử dụng ứng dụng.

• Khi John về nhà, nơi có kết nối Internet, anh truy cập mạng xã hội và tải ảnhlên.

• Máy chủ là những máy tính hoạt động liên tục 24/7, với ổ cứng với dung lượngđủ lớn sẽ lưu hình của John, Peter hay Joseph.

• Máy chủ sẽ gửi thông báo về John tới bạn bè.

• Khi Peter, bạn John, truy cập mạng xã hội anh ta sẽ thấy bản tin trên tường: “John mới tải album mới về kỳ nghỉ” và sẽ click chuột vào đó.

• Ứng dụng kết nối với máy chủ, và sẽ chỉ ra ảnh cho Peter trên trình duyệt củaanh ta.

Ứng dụng Online

• Từ ví dụ kể trên, chung ta có thể thấy cónhững thành phần cơ bản liên quan đến ứngdụng là:

– Internet

– Ứng dụng

– Máy chủ dữ liệu

• Vận hành của bất kỳ ứng dụng nào có thể tómtắt theo 3 phần sau:

– Tạo ra dữ liệu

– Ra quyết định với dữ liệu

– Nơi lưu dữ liệu

Ứng dụng Online

Hãy thử một thí nghiệm

• Truy cập vào bất kỳ một trang web nào.• Khi bạn nhận được câu trả lời, bấm phải chuột vào màn

hình.• Rồi chọn VIEW PAGE SOURCE.• Các bạn sẽ nhìn thấy các ký tự khác biệt.• Toàn bộ các trang web được viết dưới định dạng HTML.• Các bạn sẽ thấy mã HTML trên bất kỳ trang web nhờ click

phải chuột và chọn VIEW PAGE SOURCE• Mã HTML cho phép chúng ta thiết kết màn hình của ứng

dụng, ở đó người dùng sẽ tương tác với ứng dụng.• Học lập trình HTML là bước đầu tiền để khởi động việc lập

trình ứng dụng.

Bắt đầu lập trình

• Bắt đầu lập trình bằng những công cụ cơ bảntrên máy tính của bạn.

• Hãy theo những bước sau đây một cách cẩntrọng

– Trong Windows, mở ứng dụng Notepad trong

– Viết lại những đoạn mã sau đây

Bắt đầu lập trình

<!DOCTYPE html><html>

<head><title>Hello World</title>

</head><body>

<h1>Hello World</h1></body>

</html>

• Lưu file và đặt tên là hello.html.

• Hãy chắc chắn rằng khi lưu, kiểu của file là *.*

• Điều quan trọng nhất là file có đuôi là HTML.

• click đúp vào file và xem nó mở trong trìnhduyệt Internet.

• Bạn đã lập trình một website đơn giản bằngmã HTML, bạn đã sẵn sàng để phát triển ứngdụng.

Bắt đầu lập trình

Môi trường phát triển ứng dụng

• Mặc dù về lý thuyết chỉ cần Notepad để lậptrình, nhưng chương trình này hoàn toànchưa đủ để giúp chúng ta phát triển ứng dụng.

• Có một vài Chương trình dùng để phát triểnứng dụng dễ dàng hơn.

• Môi trường phát triển ứng dụng là một bộ cáccông cụ và phần mềm mà bạn có thể cài trong máy tính, nhờ vậy ứng dụng có thể được pháttriển dễ dàng hơn.

• Khác biệt duy nhất giữa môi trường mô phỏng và môitrường thực tế là máy tính chúng ta có tốc độ và khảnăng xử lý giới hạn, và không có kết nối internet đểphục vụ nhiều người một thời điểm

• Là lập trình viên, chúng ta không phát triển ứng dụngtrong môi trường thực tế, mà phát triển trong môitrường mô phỏng, đó là môi trường phát triển ứngdụng.

• Điều này cho phép chúng ta kiểm tra ứng dụng theo sốlần mong muốn, và khi ứng dụng không còn lỗi, hay cóđủ những câu lệnh cần thiết, chúng ta sẽ xuất bản chongười dùng trên thiết bị bất kỳ.

Môi trường phát triển ứng dụng là gì?

Chúng ta cần gì cho môi trường pháttriển ứng dụng?

1. Một trình duyệt Internet (lời khuyên thực tếlà nên hoạt động trên mọi trình duyệt).

2. Một máy chủ web trong đó bạn có thể lậptrình ứng dụng.

3. Một máy chủ Cơ sở Dữ liệu để lưu và khôiphục dữ liệu.

Thiết lập môi trường phát triển ứng dụng

• Trình duyệt Internet có thể dùng Internet Explorer hoặc Firefox

• Một lập trình viên phải luôn sẵn sàng cài đặt mọi loại trình duyệt. Mỗimột loại sẽ có một tính năng riêng và chúng ta phải kiểm tra ứng dụngcủa mình trên các trình duyệt khác nhau này.

• Tải bản cập nhật mới nhất của các trình duyệt hiện có trên máy tính

• Sử dụng các thiết lập mặc định, không cài đặt thêm các plug-in và cáccông cụ hỗ trợ trên các trình duyệt

• Sử dụng Developer Mode trên các trình duyệt (mẹo, bấm F12 khi đangsử dụng các trình duyệt)

• Bạn cần thêm 2 công cụ thiết yếu: máy chủ web và máychủ Cơ sở Dữ liệu.

• Bạn có thể cài đặt máy chủ web và máy chủ CSDL bằngtay, chọn chúng từ các nhà sản xuất khác nhau.

• Trong khóa học này, chúng tôi sử dụng công cụ lậptrình của Microsoft. Nhờ đó mà cài đặt dễ dàng hơn, chúng tôi khuyến khách cài các công cụ sau:– Microsoft Visual Studio Web Express Edition

– Microsoft SQL Server Express Edition

• https://www.dreamspark.com/

Thiết lập môi trường phát triển ứng dụng

Vài lưu ý quan trọng

• Thiết lập môi trường phát triển của riêng bạn là vô cùng quan trọng. Nếu bạn cài đặt phần mềm bất hợp pháp hoặc nếu máy tính của bạn bị ảnh hưởng bởi virus, các phần mềm có thể không chạy đúng.

• Không cài đặt thêm phần mềm "chỉ để cho vui". Tránh có 3 chương trình diệt virus chạy cùng một lúc, tránh có phần mềm giám sát. Mặc dù các chương trình này rất hữu ích giúp máy tính của bạn tránh khỏi virus, nhưng lại khá phiền hà cho môi trường phát triển.

• Chúng tôi biết rằng bạn là một người ham hiểu biết, nhưng từ bây giờ, bạn phải rất cẩn thận không cài đặt phần mềm không cần thiết trong máy tính của bạn, trừ khi bạn thực sự cần.

• Tránh cài đặt các phần mềm bất hợp pháp hoặc những sản phẩm có thể gây nhiễm mã độc cho máy tính của bạn.

Hello World trong Visual Studio

• Trong Windows Start Menu, Programs, mở Microsoft Visual Studio.

• Trong menu File, click vào New Web ASP.NET Application MVC

• Cửa sổ mới sẽ mở ra.• Trong Installed Templates, click chuột vào C# và rồi chọn

Web ASP.NET Application MVC.• Trong box tên web Location, chọn File System và chọn

folder bạn muốn lưu trang web. • Bấm vào nút OK.• Visual Studio tạo ra dự án web bao gồm những tính năng có

thể giúp chúng ta thiết kế.

Hello World trong Visual Studio

• Tại khu vực bên phải, các bạn có thể nhìn thấy vị trí của mã HTML được sử dụng để tạo ra các cảm quan khác nhau.

• Hãy chỉnh sửa: home.cshtml• click đúp để mở và viết vào bộ mã sau đây:<html>

<head><title>My first application in visual Studio</title>

</head><body>

<h1>My first application in visual Studio</h1></body>

</html>• Lưu nó và bấm nút play (biểu tượng tam giác màu xanh lá)

Thiết kế cùng Visual Studio

• Chúng ta đã biết, việc phát triển các ứng dụng trong một môi trường phát triển giúp đơn giản hóa và biên độ lỗi ít hơn.

• Dừng ứng dụng (không thể thay đổi khi ứng dụng đang chạy. Hãy dừng ứng dụng nếu cần chỉnh sửa)

• Mở giao diện Default.cshtml và click vào phần Design View.

• Ở phía bên trái của Visual Studio có một hộp công cụ thiết kế trực quan.

• Chọn một thành phần và kéo vào màn hình để xem.

• Bộ thiết kế trực quan cho phép bạn trực tiếp kéo các thành phần bạn muốn vàomàn hình, hỗ trợ người dùng khi quên mã HTML, vẫn dễ dàng thiết kế trang.

• Cuối khóa học này, bạn đã biết cách lập trình và các thành phần HTML, nhưng nếu bạn quên bất kỳ điều gì kể trên, bạn có thể dùng các thiết kế trực quan để hỗ trợ.

• Thực hiện một số thay đổi bằng cách kéo vài thành phần để xem và bấm nút play.

• Những thay đổi này trên màn hình sẽ được hiển thị trong ứng dụng của bạn.

Học lập trình

Chương III

Giao diện người dùng

Giao diện người dùng là gì?

Đây là nơi người dùng giao tiếp với máy, thiết bịvà máy tính. Nó bao gồm mọi điểm kết nối giữangười dùng và thiết bị. Giao diện người dùnghướng đến tính thân thiện và dễ hiểu, như trangweb chúng ta thiết kế trong chương II đã chỉ racụm từ «Hello World» trên màn hình.

Các kiểu Giao diện người dùng

• Giao diện text: Giao tiếp chỉ bằng ký tự. Nếu bạn từng nhìnmột máy tính cũ, bạn có thể nhận ra máy này nói chuyệnthông qua màn hình đen, nơi người dùng viết các câu lệnhđể máy tính làm theo. Hiện nay, mọi máy tính vẫn cung cấpkhả năng tương tác bằng giao diện text.

• Giao diện đồ họa(GUIs): cho phép tương tác nhanh và thânthiện hơn với các thiết bị thông qua điều khiển bằng hìnhảnh trên màn hình. Trang web là một ví dụ tốt về Giao diệnđồ họa GUIs.

• Giao diện cảm ứng: cung cấp một bảng điều khiển cảm ứnđồ họa trên các thiết bị cảm ứng, giúp người dùng tươngtác với thiết bị thông qua ngón tay. Phương thức này đượcsử dụng hầu hết trên các điện thoại và máy tính bảngtablets.

Hiểu về giao diện UIs

• Khi phát triển một ứng dụng đồng nghĩa là sẽ tương tác với người dùng, hoặc với các ứng dụng khác, do đó chúng ta cần phải hiểu chúng ta sẽ phục vụ ai và phục vụ trôi chảy nhất có thể.

• Chúng ta cũng biết rằng tương tác với các trẻ em cùng tuổi sẽkhông giống như tương tác với các bậc cha mẹ, ông bà, hay một người nào đó từ nước ngoài, người không nói được ngôn ngữ của chúng ta.

• Chúng ta cũng biết rằng việc tạo giao diện cho một trò chơi trênXbox sẽ không giống việc phát triển cho một PC. Cách điều khiên cóthể khác nhau và chúng ta có thể thấy các kết quả khác nhau từ một game console, một trò chơi máy tính hoặc một mạng xã hội. Tươngtự thế, giao diện cũng sẽ khác nhau nếu làm ứng dụng để quản lý công ty hay cho cửa hàng.

Hiểu về giao diệnUIs

• Mấu chốt là làm việc từng bước một. Bạn cần hiểu rõ vấn đề kỹthuật mà chúng ta bàn trong khóa học này và cũng làm một vàinghiên cứu thực hành cho các ứng dụng khác nhau mà chúng ta sẽlập trình.

• Ví dụ, chúng ta cần tạo ra một trang web, như trang «Hello World», nhưng chúng ta sẽ thêm một vài màu sắc và thiết kế. Nếu vậy, bạnliệu có chọn màu tươi sáng mà chắc rằng nó sẽ làm mắt bạn mỏisau khi nhìn? Hay bạn sẽ phát triển ứng dụng mà người dùng sẽdùng vài tiếng mà không bị mệt?

• Và cỡ chữ? Bạn có chọn chữ nhỏ và làm cho khó đọc nội dung chúng ta viết? Hay bạn sẽ chọn thứ làm người dùng hiểu rõ điều ta muốn truyền tải?

• Sẽ không khó để phát triển một ứng dụng thân thiện, nhưng chúngta cần học về nên và không nên, và nó sẽ tốn chút thời gian!

HTML, ngôn ngữ Vua

• Bạn có nhớ rằng chúng ta đã nói về ứng dụng offline, ứng dụng không cần internet mà vẫn chạy.

• Bạn cũng có thể cân nhắc bạn có làm một trang web offline, khi tên của trang bảo rằng đó là tài liệu có thểtruy cập thông qua web. Dù sao, như đã chia sẻ, trìnhduyệt của chúng ta chỉ là một chương trình nhận điềukhiển từ một ngôn ngữ và có thể dịch nó và hiển thị nótrên một cửa sổ cho chúng ta.

• Do đó, nếu có, thay vì nhập vào một địa chỉ được lưuđâu đó trên thế giới, chúng ta nhập vào một địa chỉ cóthể tìm thấy trên máy của ta?

• Đó là thứ mà chúng ta sẽ xem kế tiếp…

Vài luyện tập

• Trước tiên, chúng ta tạo ra file đâu đó trên máy tính và đặt tên là index.html. Khi chọn một đuôi HTML, chúngta sẽ bảo cho hệ điều hành là file sẽ bao gồm một kiểudữ liệu đặc thù, tương tự như file TXT chỉ bao gồmtext, hoặc DOC sẽ tượng trưng cho file Word. File HTML bao gồm các câu lệnh mà trình duyệt có thểnhận dạng và thực hiện.

• Khi chúng ta tạo ra file rồi, chúng ta sẽ nháy phải chuộtvào tên, chọn «Open with…» và chọn trình sửa ký tựtext (bất kỳ chương trình nào cũng đều có thể sửatext).

Some practice

• Rồi chúng ta nhập vào bộ mã dưới đây:

<!DOCTYPE html><html>

<head><title>Hello World</title>

</head><body>

<h1>Hello World</h1></body>

</html>

• Sau đó, lưu file của bạn và nháy đúp để xem nó mở ra sao trên trình duyệtngầm định của bạn.

Vài luyện tập

HTML – Những phần cơ bản

• Khi viết <!DOCTYPE html>, chúng ta bảo với trình duyệt rằng toànbộ các câu lệnh từ tài liệu là viết từ ngôn ngữ HTML.

• Thành phần <html> là thành phần chính trong tài liệu HTML, và đâysẽ là điểm đầu tiên. Nó sẽ bao gồm toàn bộ tài liệu. Chỉ DOCTYPE ở bên trái màn hình. Nó được làm bởi 2 thành phần: head và body.

• Thành phần <head> chứa dữ liệu “metadata”. Vậy metadata là gì? Chúng là các dữ liệu chỉ trang webpage và cần thiết để đưa thông tin cho khách hàng. Chúng phục vụ vài mục tiêu, ví dụ như bao gồmtiêu đề (có thể nhìn thấy trong thành phần <title>), hay chủ sở hữu, kiểu và vv...

• Thành phần <body> chứa các câu lệnh trong ngôn ngữ HTML đượcchỉ ra trong cửa sổ, do đó được gọi là “body”.

• Thành phần cuối cùng, <h1>, không thuộc kiến trúc nhưng lại cầncho kiểu tài liệu the document.

HTML – Làm việc như thế nào?

• HTML nghĩa là ngôn ngữ đánh dấu HyperText Markup. Ngôn ngữđánh dấu là hệ thống được phát triển vài năm trước để tạo ra cáctài liệu đưa ra các thuộc tính đánh dấu, hoặc tags, để phân biệt vớicác file text thuần túy. Ý tưởng ngầm là để chúng ta thêm các thẻđánh dấu tags vào tài liệu nhờ đó người đọc có thể sau đó thể hiệnvài hành vi như tìm kiếm các phần cần thiết, hoặc thêm kiểu (kiểuđậm, màu, kiểu chữ.. v..v). HTML sẽ giúp chúng ta thêm định dạngcho text nhờ đó chỉ ra cho người dùng các giao diện đa sắc.

• Bộ đọc của file HTML sẽ là trình duyệt của người dùng. Nó sẽ đưa ragiao diện thể hiện kiểu chúng ta chỉ đạo thông qua tags. Điều này cónghĩa là chúng ta sẽ chỉ đạo trình duyệt đưa ra nền đỏ với fonts chữtrắng và một bảng bao gồm thông tin, chúng ta sẽ làm trong HTML, nhưng người dùng sẽ chỉ nhìn thấy các ký tự đa dạng thôi.

Một vài câu lệnh cơ bản– <html>: Là file tài liệu ngôn ngữ HTML

– <head>: bao gồm các thông tin chủ đạo về trang web, không đưa ra cho người dùng

– <title>: chứa tiêu đề trong phần head của tài liệu

– <body>: Chứa những phần thể hiện của tài liệu

– <a>: links

– <p>: paragraphs

– <h1>: highest level heading

– <i>: italics

– <b>: bold

– <br/>: forced line-break

– <hr/>: horizontal rule

– <ul>: unordered list, shows bullets

– <ol>: ordered list, shows numbers

– <li>: list items

– <!-- -->: comments. Thông tin này sẽ không thể hiện cho người dùng

– <img src=”comunidad.jpg" alt=”Comunidad IT" />, <img src="images/logo.png" />, <a href="http://www.html.net"> <img src="logo.png" /></a>

– <div>: Thành phần cơ bản chứa các thành phần khác và được sử dụng để phân biệt với phần tài liệuHTML. Thành phần <div> được sử dụng để áp dụng kiểu cho một nhóm thành phần cùng lúc.

Thêm kiểu

• HTML sẽ giúp chúng ta tạo ra kiến trúc chotrang web và áp dụng một vài các định dạngcơ bản cho text, nhưng những tính năng cơbản của phát triển giao diện web là phát triểnthông qua một vài thuộc tính. Các định dạngcó thể được thêm vào từ cả HTML (khôngkhuyến khích) và qua công nghệ CSS.

• Có nhiều thuộc tính đa dạng có thể được sửdụng để định nghĩa kiểu/ định dạng.

Một vài kiểu trong HTML

– <body style="background-color:#ff0000;">: Thẻ này định nghĩa màunền cho trang web như #ff0000 (red)

– <p style="color:green;">: thẻ này định nghĩa màu của font chữ cho tấtcả các paragraph được đánh dấu là màu xanh.

– border="1” (in pixels): thuộc tính này thêm viền cho 1 thành phần– width="30%” (theo pixels hoặc phần trăm): định nghĩa độ rộng của 1

thành phần, chiếm 30% màn hình.– Align (left, center o right): Căn lề trái, phải hoặc chính giữa màn hình.– Valign (top, middle, bottom): Căn lề dọc.– Colspan (thuộc tính này được sử dụng cùng thẻ <td> để định dạng số

cột mà ô nên mở, rowspan có cùng số hàng, khi chúng ta tạo bảng)– <div id="subDiv1" name="subDiv1" title="Subdivision Div Element"

style="color: #FF0000; border: 1px dotted black;">: dòng này bao gồmmột vài thuộc tính ví dụ như id, name, hoặc title, và có kiểu được địnhdạng rõ.

CSS

• Dù sao, HTML được tạo khởi điểm gồm cácthành phần giao diện, chứ không phải các kiểuhay định dạng. Để xử lý các vấn đề này, hiệphội W3C (World Wide Web Consortium) đãtạo ra CSS hay Cascade StyleSheet, có thể lưucác định dạng trong file riêng rẽ. Do đó, chúngta có thể áp dụng bảng kiểu dáng trong ngônngữ CSS với mọi dạng file HTML tức thì và quyết định sẽ hiển thị thông tin được sắp xếpchỉ trong một ngôn ngữ.

CSS

• Cơ bản, chúng ta sẽ viết CSS theo cách sau:

h1{

color:blue;font-size:12px;

}

• h1 được gọi là “selector”, là thành phần chúng ta sẽ áp dụng địnhdạng lên đó. Trong trường hợp này, định dạng sẽ được áp dụng chotoàn bộ các thành phần h1 trong tafi lieeuj. Sau đó chúng ta có mộtdanh sách thuộc tính mỗi hàng. Bên trái của dấu (“:”), chúng ta sẽthấy thuộc tính, và bên phải, chúng ta sẽ thấy giá trị. Trong trườnghợp này, là dùng font chữ màu xanh cỡ 12-pixel.

CSS – ID Selectors

• Nếu chúng ta muốn áp dụng màu xanh và cỡ 12px chỉ cho một, chứkhông phải toàn bộ mọi thành phần h1, chúng ta có thể dùng ID selector. Để làm vậy, chúng ta chỉ thêm hàng bên dưới và thẻ html tag:

<h1 id=”miID”>…</h1>

• Và lớp trong CSS sẽ đọc như sau#miID{

color:blue;font-size:12px;

}• Và ID không được lặp lại trong 2 thành phần trong cùng trang.

CSS – Class Selectors

• Nếu chúng ta muốn áp dụng kiểu cho một nhóm các thành phầnkhác nhau thay vì một thành phần hoặc một nhóm tương đương, chúng ta cần sắp xếp con trỏ selector theo lớp. Đề làm như vậy, chúng ta cần sử dụng lớp thuộc tính sau trong mã HTML:

<h1 class=”myClass”>…</h1>

• Và lớp cho “myClass” trong CSS sẽ đọc như sau

.myClass{

color:green;font-size:15px;

}

CSS – Element Class Selectors

• Chúng ta có thể định nghĩa những thành phần đặc thù theo lớp, như ví dụ sau:

p.myClass{

color:green;font-size:15px;

}• Nghĩa là chỉ thành phần trong paragraph p tìm được trong lớp

“myClass” sẽ có màu xanh, font chữ 15px.

• Bạn có thể tìm được danh sách các thuộc tính của CSS trong link sau:

• http://www.w3schools.com/cssref/

Bổ sung bảng CSS trong HTML

• Cuối cùng, chúng ta cần nói cho file HTML sẽsử dụng bảng định sạng ngôn ngữ CSS. Chúngta sẽ làm vậy nhờ thêm link vào CSS trongtaghead:

<head><link rel="stylesheet" type="text/css" href="mystyle.css"></head>

Học lập trình

Chương IV

Giao diện người dùng thông minh

JavaScript là gì?

• Đây là ngôn ngữ lập trình mà các trình duyệtcó thể đọc và dịch trực tiếp khi tải trang web.

• Nó sử dụng ngôn ngữ máy trạm, ví dụ nhưtrên máy tính của chúng ta, khi được tích hợpcùng trình duyệt, sẽ giúp chúng ta có thể cảitiến giao diện và làm các trang web động.

• Hiện nay, Internet Explorer, Firefox, Chrome và các trình duyệt có thể đọc các mãJavaScript tích hợp cùng trang web.

Thư viện Javascript

• Khi nói đến các chương trình mở có thể tái sử dụng, chúng ta hàm ý gì? Có những nhóm lập trình viên toàncầu chuyên phát triển các sản phẩm được gọi là “thưviện”, là bộ sưu tập các tính năng của những ngôn ngữchuyên biệt dùng để thể hiện các nhiệm vụ chuyênbiệt.

• Nhiệm vụ nào? Một vài thư viện này sẽ giúp chúng ta, ví dụ như, để chắc chắn rằng các trường trong 1 form là được điền đầy đủ và không rỗng. Chúng có thể giúpchúng ta tạo ra hình ảnh động, hiển thị lịch cho ngườidùng để chọn ngày tháng. Những nhiệm vụ này đơngiản, nhưng sẽ chỉ đơn giản khi chúng ta có sẵn thưviện lập trình này mà thôi.

Sự kiện

• Trước khi sử dụng thư viện, có một vài thứ chúng ta cầnhiểu. Bất kỳ khi nào làm việc với máy trạm của thư việnJavaScript, chúng ta phải nắm “sự kiện” (hoặc “events”).

• Sự kiện là các hành vi biểu đạt bởi người dùng, như bấmvào một nút, bấm vào những phím trên bàn phím… Bất kỳthời điểm nào khi sự kiện diễn ra, một Object được thiếtlập.

• Mọi ngôn ngữ lập trình đều có mẫu event riêng.• JavaScript có khả năng lưu các events (dù đó là bàn phím,

chuột hay thiết bị khác). Các ứng dụng vẫn có cảnh báo, vàkhi có một event, chúng sẽ sử dụng thông tin nhận được đểtạo ra các phản hồi phù hợp.

Lập trình tại máy trạm

• Hãy bắt đầu từ những bước khởi điểm. Trong việcphát triển web, có 2 thành phần định nghĩa bởi 2 loại công nghệ: máy trạm và máy chủ.

• Công nghệ cho máy chủ lưu trữ các thông tin vàdữ liệu trong máy chủ và chúng gửi các mã trangweb tới trình duyệt của người dùng khi anh ta yêu cầu. Công nghệ máy trạm dịch và thực hiệncác mã này trực tiếp trên trình duyệt người dùng.

• Tựu chung, cả 2 công nghệ đều tương tác để hoạtđộng với website.

Lập trình tại máy trạm

• JavaScript là một công nghệ máy trạm dùng cho cácmục tiêu khác nhau như:– Kiểm tra hợp lệ cho các form– Tạo ra hiệu ứng– Thay đổi động– Biểu đạt các tính toán phức tạp– ...

• JavaScript trở nên quan trọng vì việc xử lý tại trạm hiệuquả hơn xử lý tại máy chủ. Hơn thế, JavaScript là chủchốt cho điều khiển event (sẽ chia sẻ sau), như vậyJavaScript tập trung vào tương tác giao diện ngườidùng.

Ví dụ đầu tiên tại JS

• Để tạo chương trình đầu tiên với JavaScript, bạn sẽ sử dụng file Hello World HTML như chươngtrước.

• Bạn sẽ xóa h1 tag và thay đổi tên thành My First JavaScript Program; rồi thêm tính năng để viếtthông tin vào phần thân chương trình như sau:

<!DOCTYPE html><html>

<head><title>My First Javascript Program</title>

</head><body>

<script language=”javascript” type=”text/javascript”>document.write(“<h1>Hello World from Javascript</h1>”);document.write(“<br/>This is my first Javascript program!”);

</script></body>

</html>

Chạy chương trình của bạn

• Để chạy chương trình, bạn sẽ nháy vào file HTML và xemchương trình chạy. Đuôi file thể hiện rằng chương trình sẽđược chèn trong HTML và định nghĩa ngôn ngữ có chươngtrình (trường hợp này là JavaScript). Rồi trong mã JS, bạnhoàn thiện tài liệu HTML giữa các quotes. Đây là các mãHTML mà trình duyệt sẽ đọc và có phản hồi nội dung.

• JavaScript phổ dụng vì nó có thể vận hành trên các nền tảngdữ kiện event cơ sở (đã chia sẻ trong phần 3), như mọitương tác cơ bản giữa người dùng và giao diện. Do đó, mỗikhi có một sự kiện diễn ra, một thứ mang tên “JS function” có thể tương tác để biểu đạt các quy trình và có phản hồihợp lý.

Các hàm

• Các hàm đánh dấu JavaScript thường được sử dụng trong các Head tag; điều này giúp bạn có thể định nghĩa các hàm sau này với từ khóa function:

<script language=”javascript” type=”text/javascript”>function sayHello()

{document.write(“Hello World”);

}</script>

• Rồi, trong thân chương trình, chúng ta gọi hàm sau:<script language=”javascript” type=”text/javascript”>

sayHello();</script>

Thư viện

• Phương thức khác để đặt các hàm JS trong chương trình của bạn là sử dụng cácmã viết sẵn của thư viện. Bạn có thể sử dụng sau khi dùng bộ mã sau:

<script language=”javascript” type=”text/javascript” src=”attached.js”></script>

• Đây là cách bạn có thể sử dụng JQuery (sẽ giới thiệu sau). Bạn chỉ cần gọi JQuery libraries nhờ chèn bộ mã sau trong Head:

<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.0.min.js"></script>

• Sau đó, bạn chỉ cần chờ một sự kiện diễn ra, và rồi, một hàm JavaScript sẽ đượcgọi để chạy các chương trình chủ chốt.

• Để có thêm chi tiết, vui lòng truy cập: http://www.w3schools.com/js/default.asp

jQuery

• jQuery là phiên bản nhẹ, nhưng giàu tính năngcủa thư viện JavaScript và chạy nhanh. jQuery giúp chúng ta sửa các thư viện động củaHTML, để quản trị các events, hình động hay Ajax (giới thiệu sau) tốt hơn. Nó làm việc vớimọi trình duyệt.

• jQuery có thể được tải về và nằm trong dự áncủa bạn, hoặc được gọi từ các máy chủ từ xa, như chúng ta từng được giới thiệu.

Các lệnh jQuery

• Viết mã cho jQuery đơn giản và tương tự như cho CSS và JavaScript. Cú pháp jQuery được tối ưu hóa cho cácthành phần lựa chọn và biểu đạt hành vi cho nhữngthành phần này.

$(selector).action()

• Sau đây là các câu lệnh jQuery:– $(this).hide() – this hides the selected element– $("p").hide() – this hides all <p> elements.– $(".test").hide() – this hides all class="test“ elements.– $("#test").hide() – this hides the id="test“ element.

Các lệnh jQuery

• Dưới đây là các hình động và hiệu ứng mà jQuery giúp chúng ta trong cácwebpages:– Hide/Show– Fade– Slide– Animate– Stop– Callback– Chaining

• Và dưới đây là các tính năng giúp chúng ta xử lý được chương trình HTML trong trang:– Get– Set– Add– Remove

• Chi tiết vui lòng tham khảo tại: http://jquery.com/

Hiểu sâu thêm về sự kiện

• Những gì chúng ta thấy đều không có giá trị trừ phi chúng ta thực sự hiểu event là gì. Hiện nay, mọi thaotác lập trình từ web hay thiết bị di động, đều dựa vàoevent.

• Tóm tắt thì event là một hoạt động hoặc sự việc đượcdò tìm bởi chương trình và được điều khiển bởichương trình. Tiêu biểu, chương trình có một hoặcmột vài không gian đặc thù mà event được điều khiển. Vài sự kiện tiêu biểu là bấm phím, nháy chuột hoặcchạm vào màn hình. Nguồn event khác là các thiết bịphần cứng như bộ đếm thời gian timer. Bất kỳ chươngtrình nào cũng có thể thực hiện một bộ sự kiện tiêubiểu, ví dụ truyền thông để hoàn thiện các nhiệm vụ.

Trình điều khiển sự kiện

• Một chương trình máy tính có thể thay đổi hànhvi phản hồi tới các sự kiện được gọi là bộ điềukhiển sự kiện, thường gắn với các tương tác kếtquả. Do đó, hệ htoongs có thể được lập trình đểtrở thành Bộ điều khiển sự kiện.

• Trang web và các ứng dụng di động liên quan tớimột loạt các sự kiện. Để phản hồi cho sự kiện, chương trình phải bao gồm các bộ lệnh biểu đạthành vi khi có bất kỳ sự kiện nào diễn ra. Nếukhông có những lệnh này, sự kiện có thể có, nhưng không có phản hồi diễn ra.

Những sự kiện tiêu biểu

• Dưới đây là một vài những sự kiện tiêu biểu trong cácchương trình trên web và thiết bị di động:– onLoad: được gọi khi tải trang web, trước và khi có phản hồi

diễn ra– onFocus: được gọi khi có một trường nhập liệu– onKeyPress: được gọi khi có một phím được nhấn– onKeyUp: được gọi khi người dùng nhả phím– onKeyDown: được gọi khi người dùng bấm vào phím– onClick: được gọi khi chuột được nháy– onDblClick: được gọi khi chuột nháy đúp– onMouseMove: được gọi khi chuột di chuyển– onMouseOver: được gọi khi người dùng di chuyển con trỏ chuột

tới thành phần nào đó

Tài liệu tham khảo

• http://www.w3schools.com/js/default.asp

• http://jquery.com/

• http://www.w3schools.com/jquery/default.asp

• http://www.w3schools.com/jsref/dom_obj_event.asp

• http://jqueryui.com/

Học lập trình

Chương V

Tại sao dùng máy chủ Web và dùng làm gì?

Máy chủ web

• Chúng ta phải tập trung và các dịch vụ chínhcủa máy chủ: chỉ ra các trang web người dùngyêu cầu. Nó được thực hiện theo nhiều cáchkhác nhau. Nếu website là tĩnh, máy chủ sẽ trảvề kết quả để nhìn.

• Trong trường hợp khác, nếu ứng dụng phải chỉra các dữ liệu tùy thuộc vào hành vi ngườidùng trong khi lướt web, bạn phải bắt đầugọi các hàm động.

Web động

• Một trang web động là trang liên kết với các dữliệu thay đổi liên tục. Khi máy chủ web nhận yêucầu từ một trang, trang sẽ được tự động tạo ranhờ phần mềm dựa trên phản hồi trực tiếp từtrang.

• Nói chung, thuật ngữ “trang web động” liên quantới bất kỳ một trang đặc thù nào được tạo ra theocác tiếp cận khác biệt cho mỗi người dùng, vàomọi thời điểm trang được làm mới hoặc bởi cáchành động đặc thù khi người dùng lướt web.

Định hướng có điều kiện

• Trang động là kết quả thực hiện chương trình trong bất

kỳ ngôn ngữ lập trình nào trên máy chủ web, được sinh

ra trên trang trước khi gửi cho máy trạm, hoặc chạy trên

máy PC của bạn tại nơi mà trang kết quả sẽ được hoàn

thiện trước khi hiển thị trên trình duyệt.

• Điều này sẽ đưa ra khái niệm về điều kiện để định

hướng trang, trong đó bao gồm dữ liệu hoặc màn hình

nhất định có thể được hiển thị hoặc không theo giá trị

của một điều kiện, tùy thuộc vào hành động của người

dùng. Trong chương này, chúng ta sẽ thấy những ví dụ

đầu tiên về cách tiến hành điều này trong .NET.

MVC

• Trong ngành CNTT, MVC đơn giản là Model–View–Controller. MVC là phương pháp xử lý các phần vàloại trừ cái gọi là các pattern trong hệ thống.

• Mô hình này chia hệ thống thành các phần, nhờ đótạo điều kiện cho chương việc lập trình. Vậy làm thế nào để mô hình phân chia hệ thống? Phương phápnày chia hệ thống thành ba phần chính: Model (mọi thứ phải liên kết với hệ thống thông minh và dữ liệu), Views (giao diện người dùng) và các bộ điều khiển (có thể là khái niệm khó khăn nhất để hiểu, và nó đề cập đến những gì nhận ra hành động của người dùng và thực hiện các hành động).

MVC

• Hãy đơn giản hóa: nhìn vào 1 trang web mà bạn đanglướt. Điều đầu tiên bạn thấy là màn hình hoặc chỉ mụcIndex. Trên màn hình này, bạn sẽ tìm thấy menu, nhờđó có thể lựa chọn quốc gia. Sau khi lựa chọn quốc gia, bảng điều khiển sẽ gửi dữ liệu này tới mô hình, theođó, sẽ quyết định tỉnh hoặc bang dựa vào chương trìnhđược lập, và câu lệnh sẽ thể hiện menu với dữ liệu phùhợp.

• Theo đó, sẽ có 3 phần trong ứng dụng của bạn, mỗiphần sẽ làm việc với các khu vực khác nhau để việc lậptrình trở nên đơn giản hơn. Điều này cũng sẽ hỗ trợ hệthống kiểm tra và bảo trì, bởi mỗi phần sẽ nhỏ hơntoàn thể chương trình ứng dụng.

Chu trình chung của MVC

• Nói chung, chu trình MVC của một ứng dụng sẽ như sau:– Người dùng tương tác với giao diện theo một vài phương pháp

như nhấn chuột, nhấn bàn phím hoặc nhập 1 số hoặc 1 kí tự.– Bảng điều khiển sẽ nhận thông tin nhập vào qua giao diện và dịc

nó thành hành vi phù hợp để mô hình có thể hiểu.– Bảng điều khiển nhắc mô hình giao diện người dùng và điều này

thường thay đổi theo trạng thái mô hình, vì các dữ liệu mớiđược nhập vào và mô hình cần học và điều chỉnh các dữ liệudựa vào chúng (ví dụ như, nếu người dùng thêm một khoảngmục vào xe mua hàng).

– Bảng nhìn sẽ hỏi mô hình có thay đổi gì và sinh ra một giao diệnngười dùng phù hợp (ví dụ chỉ ra danh mục mua hàng của xehàng)

– Giao diện người dùng chờ thông tin mới và chu trình lại bắt đầutừ đầu.

Ứng dụng web MVC đầu tiên

• Để tạo ra ứng dụng web đầu tiên, bạn phải sửdụng công cụ có tên Visual Web Developer, thuộcphần mềm Visual Studio. Công cụ này xử lý đượcrất nhiều các vấn đề cho bạn và cũng cung cấpnhững hàm để thiết lập chương trình của bạntheo cách hình ảnh và dễ dàng hơn.

• Nếu Visual Web Developer đã được cài đặt sẵntrong môi trường Visual Studio của bạn, chọnNew Project khi mở Visual Studio.

Ứng dụng web MVC đầu tiên

Ứng dụng web MVC đầu tiên

• Cửa sổ sẽ mở, và bạn có thể làm những việcsau:

– Mở Visual C# templates.

– Chọn ASP.NET MVC 3 Web Application.

– Đặt tên dự án là MvcDemo.

– Ghi vào địa chỉ mà bạn thích, ví dụ: c:\Demo.

– Bấm vào OK.

Ứng dụng web MVC đầu tiên

• Khi cửa sổ New Project mở:

– Chọn Web Application template.

– Chọn Motor Razor

– Chọn HTML5 Markup

– Nháy vào OK

• Visual Studio sẽ mở các cửa sổ sau:

Ứng dụng web MVC đầu tiên

Ứng dụng web MVC đầu tiên

• Như đã nhìn thấy bên phải cửa sổ, khi tạo ra một dự ánMVC, Visual Studio tự động tạo ra Models, Controllers hoặcViews folders.

• Trong App_Data folder, bạn sẽ tìm thấy các dữ liệu tươngứng với ứng dụng, như kết nối cơ sở dữ liệu, điều được xửlý trong một chương khác.

• Bất kỳ điều gì liên quan đến thiết kế, hình ảnh, và các tàinguyên khác mà bạn cần cho hệ thống, sẽ được hệ thốnglưu trong Content folder.

• Trong Scripts folder, bạn sẽ lưu tất cả các chương trìnhtrong ngôn ngữ JavaScript cho hệ thống của bạn (nhớ rằngdù có vài ngôn ngữ chính, lập trình luôn luôn liên quan đếnvài ngôn ngữ)

Ứng dụng web MVC đầu tiên

• Để bắt đầu tạo ra các ứng dụng web đầu tiêncủa bạn, đầu tiên bạn phải thêm vài thiết kếvào hệ thống của bạn. Để làm vậy, trongShared folder dưới Views, bạn sẽ sửa file _Layout.cshtml, đại diện cho màn hình giaodiện của bạn. Thay đổi nội dung file như dướiđây:

Ứng dụng web MVC đầu tiên

<!DOCTYPE html><html><head><meta charset="utf-8" /><title>@ViewBag.Title</title><link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /><script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")"></script><script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")"></script></head><body><ul id="menu"><li>@Html.ActionLink("Home", "Index", "Home")</li><li>@Html.ActionLink(“Films", "Index", " Films ")</li><li>@Html.ActionLink("About", "About", "Home")</li></ul><section id="main">@RenderBody()</section></body></html>

Ứng dụng web MVC đầu tiên

• Trong code bạn đã viết, chữ màu đỏ và bắt đầu bởi kýtự @ cho phép bạn sửa những gì sẽ hiển thị trên mànhình:– @Url.Content(): Shows the links to the resources or files

that you will use.– @Html.ActionLink(): Shows the links to other screens.– @ViewBag.Title: Shows the screens’ titles.– @RenderBody(): This instruction will show the necessary

screen content

• Sau đó, bạn sẽ áp dụng thiết kế vào ứng dụng của bạnbằng cách sửa Site.css file trong Content folder. Hãythay thế nội dung như sau:

Ứng dụng web MVC đầu tiên

body{font: "Trebuchet MS", Verdana, sans-serif;background-color: #5c87b2;color: #696969;}h1{border-bottom: 3px solid #cc9900;font: Georgia, serif;color: #996600;}#main{padding: 20px;background-color: #ffffff;border-radius: 0 4px 4px 4px;}a{color: #034af3;}

Ứng dụng web MVC đầu tiên

/* Menu Styles ------------------------------*/ul#menu{padding: 0px;position: relative;margin: 0;}ul#menu li{display: inline;}ul#menu li a{background-color: #e8eef4;padding: 10px 20px;text-decoration: none;line-height: 2.8em;/*CSS3 properties*/border-radius: 4px 4px 0 0;}ul#menu li a:hover{background-color: #ffffff;}

Ứng dụng web MVC đầu tiên

/* Forms Styles ------------------------------*/fieldset{padding-left: 12px;}fieldset label{display: block;padding: 4px;}input[type="text"], input[type="password"]{width: 300px;}input[type="submit"]{padding: 4px;}

Ứng dụng web MVC đầu tiên

/* Data Styles ------------------------------*/table.data{background-color:#ffffff;border:1px solid #c3c3c3;border-collapse:collapse;width:100%;}table.data th{background-color:#e8eef4;border:1px solid #c3c3c3;padding:3px;}table.data td{border:1px solid #c3c3c3;padding:3px;}

Ứng dụng web MVC đầu tiên

• Bạn sẽ tìm thấy 2 files trong Controllers folder: HomeController.cs (cho trang Home và About) vàAccountControllers.cs (cho trang Login).

• Trong ứng dụng web cơ sở, bạn dễ dàng gọi file từ máychủ, ví dụ index.html hoặc index.asp. Trong ứng dụngMVC, khi bạn yêu cầu màn hình Index, Home hoặcAbout, một chương trình tìm được trong Controllers được ra lệnh để chỉ ra màn hình phù hợp với các địachỉ web được nhập vào.

• Sau đó, mở HomeController.cs file và viết lại code nhưsau:

Ứng dụng web MVC đầu tiên

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;

namespace MvcDemo.Controllers{public class HomeController : Controller{public ActionResult Index(){return View();}

public ActionResult About(){return View();}}}

Ứng dụng web MVC đầu tiên

• Như đã nói ở trên, Views folder bao gồm giaodiện có thể mở ra, và có một vài loại đuôi nhưHTML, ASP, ASPX, CSHTML, etc.

• Trong Views, có các subfolder cho mỗi loại điềukhiển định nghĩa bởi chúng ta. Theo đó, một bảngđiều khiển có thể đưa ra một màn hình đượcđịnh nghĩa trong các subfolder. Ví dụ, dướiHomeController, bạn có thể tìm thấy folder Home nơi trang chủ của ứng dụng, index.cshtml, sẽđược lưu cùng trang about.cshtml.

• Viết các mã sau vào file index.cshtml:

Ứng dụng web MVC đầu tiên

@{ViewBag.Title = "Home Page";}

<h1>Hello World!</h1>

<p>This is my first MVC website</p>

• And in about.cshtml, write the following:

@{ViewBag.Title = "About Us";}

<h1>About Us</h1>

<p>We are the greatest ever!</p>

• Trong Visual Studio, nhấn F5 để xem ứng dụng đầu tiên của bạn chạy ra sao trongtrình duyệt. Bạn có thể nháy vào Home hoặc About để nhìn 2 màn hình của bạn.

Hãy tiến lên

• Điều gì khiến bạn muốn tạo ra các ứng dụng tiêntiến để tương tác người dùng theo các phươngthức khác nhau? Làm sao để có thể gửi email khingười dùng đăng nhập vào trang của bạn? Họăckhi ai đó muốn hỏi và bạn muốn nhận trong inbox của bạn? Hoặc làm sao để bạn có thể tạo ứngdụng chat và vui vẻ với bạn bè?

• Mọi điều kể trên là khả thi theo cách đơn giản, vàchúng ta sẽ giải thích sau. Nhưng trước tiên, bạnphải hiểu về vận hành hệ thống bản tin.

Nhắn tin/ Messaging

• Để gửi email hoặc chat, hệ thống phải kết nốitới một chương trình hoặc một máy chủ nắmnhiệm vụ gửi, cùng với vài dữ liệu mà chúng ta có thể nhìn và vài dữ liệu khác không nhìnthấy được. Trong bản tin, bạn không chỉ gửi kýtự hoặc tiêu đề, mà còn có thể bao gồm địachỉ của bản tin đó, định dạng (HTML, plain text, emoticons, pictures, etc) và các thànhphần mà bạn có thể biết hoặc không biết.

Nhắn tin/ Messaging

• Khi kết nối với hệ thống thông qua chương trình củabạn và được cung cấp đủ dữ liệu cần thiết, địa chỉngười nhận sẽ được kiểm tra hợp lệ, và bản tin sẽđược gửi. Khi gửi bản tin, có thể có nhiều vấn đề cảntrở dữ liệu tới đích, dù đó là thư điện tử hay tin chat. Địa chỉ không tồn tại không phải là vấn đề duy nhất, bạn có thể bị blocked bởi người nhận thư hoặc đốitượng chat, hoặc anh ta/ cô ta không có đủ không gianđể tiếp tục nhận thư. Trong những trường hợp này, bản tin gửi tới máy chủ sẽ trả lại mã lỗi và hệ thống củabạn sẽ hiểu và dịch nó thành ngôn ngữ hiểu được chongười dùng.

Nhắn tin/ Messaging

• Khác biệt giữa email và chat là khi chat mở vàbạn lựa người dùng muốn nói chuyện cùng, chương trình sẽ tự động lưu địa chỉ cho nhắntin thoại, không có bất kỳ một lỗi nào. Ngườidùng có thể khóa bạn, hoặc có thể offline vàkhông nhận được messages. Ngoài điểm này, thì 2 tính năng này sẽ tương tự.

Thông điệp

• Gửi một email trong .NET sẽ đơn giản với câu lệnh sau:

try{// Send emailWebMail.Send(to:"[email protected]", subject: "Email example" + customerEmail, body: customerRequest );}catch (Exception ex ){<text>@ex</text>}

• Chúng tôi sẽ giải thích ký hơn, khi bạn tiếp tục các ứng dụng củariêng mình.

Học lập trình

Chương VI

C#, khái niệm tiên tiến

Suy nghĩ một cách hệ thống

• Suy nghĩ một cách hệ thống chiếm vai trò quantrọng trong một hệ thống bao gồm nhiều hệthống con hoặc các thành phần khác biệt, nhằmmục đích giúp hiểu hơn về vận hành hệ thống và xử lý các thuộc tính của chúng. Và đồng thời, giúptổ chức hệ thống bao gồm nhiều thành phần, cóthể tương tác được giữa chúng.

• Dựa vào định nghĩa này, một chương trình CNTT tương quan giống như một hệ thống với nhữngthành phần khác nhau tương tác với nhau để xửlý các vấn đề đặc thù.

Hệ thống – ví dụ

• Một gia đình là một ví dụ tốt về hệ thống. Mặc dùgia đình được tạo thành từ cha mẹ và con cái, nhưng vẫn liên quan đến môi trường xã hội, ví dụhọ hàng. Nếu tồn tại một không khí nặng nềtrong gia đình, sẽ ảnh hưởng đến toàn thể giađình bởi toàn nhóm sẽ thấy lo lắng, và làm ảnhhưởng đến hoạt động thường ngày. Mặt khác, lờikhuyên là nên có hòa thuận và cân bằng trong giađình, nếu điều này xảy ra sẽ có kế quả tốt hơn vềhoạt động trong gia đình.

• Một thực tế khác là công ty. Bất kỳ công ty nàođều có một kiến trúc đặc thù và một hoặc mộtvài bộ phận trong đó sẽ bắt đầu có vấn đề gìđó và gây ra ảnh hưởng cho các bộ phận khác. Chắc chắn là thế vì công ty phải vận hành nhưmột hệ thống, và khi đó nếu một phần bị ảnhhưởng, sẽ gây ra ảnh hưởng cho bộ phậnkhác.

Hệ thống – ví dụ

Khởi đầu – Điều kiện

• Trong chương trước, chúng ta đã nói về địnhhướng có điều kiện và lập trình các trang web động giúp chúng ta có thể tải về các loại dữ liệukhác nhau và đưa ra giao diện tùy thuộc vàotương tác với người dùng.

• Nhưng làm sao để có được những quyết địnhtrong ngôn ngữ lập trình?

• Làm sao để tôi tạo được những quyết định hàngngày? Khi bạn vào cửa hàng mua kẹo, bạn có thểhỏi giá và nếu bạn có đủ tiền để mua (tùy theogiá kẹo và tiền trong ví), và rồi bạn mua.

Điều kiện

• Để dịch cái này thành mã chương trình bạn phải

Ask priceReceive priceIF moneyInWallet >= priceTHEN

buyCandyIF NOT

leaveWithoutCandy

• Như bạn đã thấy, không quá phức tạp. Đây là cách để xử lý vấn đề hàngngày. Hãy xem câu lệnh sau: IF <điều kiện>, THEN xảy ra sự kiện, IF NOT, sự kiện khác xảy ra.

• Đây gọi là câu lệnh điều kiện.

Điều kiện

• Đây là câu lệnh cơ bản bạn sẽ dùng khi tạo ra quyết định trong chươngtrình. Chúng sẽ giúp bạn quyết định bạn thực hiện 1 hoặc vài câu lệnhtrong chương trình, như sau:

Ask priceReceive priceIF price <= 5THEN

buyCandyOR IF price <=10

Borrow money from mombuyCandy

IF NOTleaveWithoutCandy

Điều kiện - IF

• Nếu chúng ta dịch sang ngôn ngữ.NET câu lệnh sẽ như sau:

if (condition){

…}else{

…}

• Trong “điều kiện”, bạn viết vài câu hỏi để nhận về câu trả lời đúng hay sai, và rồi không gian trống sẽ cho bạn viết toàn bộ câu lệnh được thực hiệndựa theo điều kiện.

Vòng lặp

• Điều gì sẽ xảy ra nếu thay vì chúng ta mượn tiền từ mẹ, chúng ta tìmnguồn khác để mua kẹo? Làm sao để tiếp hỏi nếu chúng ta chưa đủ tiền mua?

• Để xử lý những vấn đề này, ngôn ngữ lập trình cung cấp vòng lặp: Chúngđơn giản được gọi là “sự lặp”. Trong đầu chúng ta, chugns ta tiếp tục làmcác hành động lien tiếp giống nhau cho đến khi tìm được kết quả đích:

Ask priceReceive priceAS LONG AS moneyInWallet <= price

Ask newPriceReceive newPrice

price newPriceBuy the item which I have enough money for

Vòng lặp - WHILE

• Trong ngôn ngữ .NET, lệnh đại diện WHILE như sau:

while (condition){

…}

• Do đó, trong chương 1, chúng ta đã nói về nguyên tắcchương trình: “bất kỳ hành vi lặp và có thể tiên đoán đềucó thể được lập trình”. Với những câu lệnh này, chugns ta sẽ thực hiện được đúng đường hướng mà hệ thống yêucầu.

Dữ liệu

• Dữ liệu là đại diện cho các tính năng và thuộctính. Ví dụ, số ID là một dữ liệu thuộc về cá nhân. Nếu bạn không định nghĩa những số này thuộc vềai đó, thì con số bản thân nó không nói lên điềugì.

• Nếu bạn xử lý hoặc dịch dữ liệu, thì bạn đã xâydựng thông tin, và xử lý những thứ gọi là ngữcảnh.

• Trong CNTT, dữ liệu đại diện bởi giá trị. Do đó, quan trọng là dữ liệu là giá trị của một thứ gì đó.

Dữ liệu

• Dữ liệu sử dụng trong chương trình được lưu dướidạng thành phần phụ thuộc vào việc thay đổi hay không được gọi là:– Hằng số: giá trị không đổi trong chương trình.– Biến số: Giá trị có thể thay đổi.

• Những thành phần này có những đặc tính khác nhau:– Nó có thể được định nghĩa bởi các tên đặc thù (x, counter,

i, addition, etc).– Chúng có kiểu được mô tả như số, ký tự v..v.– Chúng có nội dung, ví dụ giá trị hoặc đặc tính dữ liệu lưu

trữ.

Dữ liệu trong .NET

• Như vậy, trong .NET, bạn có thể khai báo biến số và hằng số theo cách đơn giản sau:– int x = 0; (bạn tạo ra các biến số dưới tên x và gán cho giá

trị 0)– const int y = 0; (như trên, nhưng x sẽ là hằng số không

thay đổi được)

• Sau khi có thay đổi, các biến số có thể đổi giá trị theochương trình của bạn. Để làm vậy, bạn chỉ cần giớithiệu và gán theo ví dụ dưới đây:– x = 2 + 6;– x = x + x;– x = x + y;

Dữ liệu – cân nhắc

• Bạn cần cân nhắc khi làm việc với biến số và hằngsố. Một trong những cân nhắc chủ đạo là chươngtrình của bạn không thể có 2 biến số hay hằng sốcùng tên, vì chương trình không biết bạn địnhchạy gì với dữ liệu đó. Điều này có thể gây lên lỗicho mã chương trình.

• Một cân nhắc khác cần nhập tâm là các biến sốhay hằng số chỉ có thể có 1 kiểu dữ liệu đặc thù, không thể vừa là số vừa là thời gian. Ví dụ khôngthể gán số vào biến số có kiểu ký tự Word được.

Lập trình – luyện tập

• Trước tiền, bạn cần tạo ra biến số lúc khởi điểm trong thuật toán, nhờ đó sẽ dễ dàng biết chính xác dữ liệuđược quản lý ra sao và tránh được việc thêm các thông tin khi bạn mới lập trình.

• Một cách khác để luyện tập là luyện với biến số, hằngsố và các phần khác của mã chương trình. Những tênnày sẽ phải là đặc tả và không quá dài.

• Cuối cùng, lỗi quan trọng cần làm là căn lề. Nghĩa là gì? Bất kỳ khi nào bạn có lệnh, ví dụ IF hoặc WHILE với mãđược thực hiện trong lệnh, viết các khối lệnh với cácTab đúng. Dù tin hay không, việc căn lề sẽ giúp chochương trình của bạn dễ đọc hơn hẳn..

Một vài luyện tập

• Bạn sẽ viết chương trình đơn giảnđể cộng 10 số tự nhiên từ 1 đến10

• Mở Visual Studio và tạo ra mànhình dự án trong C#. Rồi tạo raClass mới và đặt tên Exercise1.cs.

Một vài luyện tập

// Exercise1.cs public class Exercise1 {

public static void Main() {

int addition=0;int number=0;const int n = 10;while(number<n){

number=number+1;addition=addition+number;

}System.Console.WriteLine(“The addition is: " + addition);

} }

Bài tập

• Làm bài tập sau đây:

– Lập trình tính số trung bình cộng của 3 số.

– Lập trình để tính xem liệu số được cho có phải làsố nguyên tố hay không.

Học lập trình

Chương VII

Máy chủ Web: khái niệm tiên tiến

Kiểm tra hợp lệ

• Kiểm tra hợp lệ là gì? Hãy tưởng tượng bạn có mộttrang web nơi mà người dùng đăng ký, tức là họ sẽ tạora account người dùng. Bạn từng làm hàng trăm lầnnhư mở một tài khoản mail hoặc tạo ra hồ sơ của bạntrên mạng xã hội.

• Giao diện đăng ký sẽ yêu cầu rất nhiều thông tin ngườidùng, như tên, họ, đệm, ngày sinh, số điện thoại, nơi ở, thành phố, địa chỉ mail… Các trường ngày tháng nhưngày sinh sẽ là số, trong khi tên lại là ký tự và địa chỉaemail sẽ phải bao gồm ký tự “@” hay số điện thoạiphải bao gồm dấu () và “-“.

• Khi có những lỗi lập trình trong giao diện, có thểdẫn đến việc chèn sai dữ liệu, dẫn đến những lỗithông tin và đem lại dữ liệu rác. Ví dụ nếu ngườidùng khai với hệ thống địa chỉ email của anh ta là“johndoe@hello”; hoặc ngày sinh là “900”.

• Đó là lí do mà dữ liệu cần kiểm tra hợp lệ. Kiểmtra dữ liệu hợp lệ, cơ bản liên quan đến việc, chắcchắn rằng dữ liệu đi đúng kiểu và lớp. Nó khôngcó nghĩa là người dùng không khai đúng, mà là đểchắc chắn người dùng đã nhập liệu theo nguyêntắc.

Kiểm tra hợp lệ

Kiểm tra hợp lệ tại máy chủ

• Vận hành việc kiểm tra hợp lệ dữ liệu có thể chạy tại máychủ khi dữ liệu phù hợp đã được gửi tới đó. Ứng dụng củabạn liền quyết định những dữ liệu này được biểu đạt trong định dạng đúng sẽ chấp nhận hoặc phản hồi lỗi tới giaodiện người dùng.

• Và một lần nữa, sẽ yêu cầu MVC pattern để thành phầnview gọi người dùng nhập dữ liệu, rồi gửi dữ liệu tới bộđiều khiển controller thông qua thành phần model đểquyết định sẽ thay đổi hiển thị phụ thuộc vào dữ liệu nhậpvào chính xác hay không.

• Thông tin sau đây là một ví dụ của MVC pattern cho thông tin cá nhân và một giao diện để kiểm tra những dữ liệu này.

Kiểm tra hợp lệ tại máy chủ- Model

using System;using System.Collections.Generic;using System.Linq;using System.Web;

namespace MvcSimpleModelBinding.Models{

public class Person{

public int Id { get; set; }public string Name { get; set; }public int Age { get; set; }public string Street { get; set; }public string City { get; set; }public string State { get; set; }public int Zipcode { get; set; }

}}

Kiểm tra hợp lệ tại máy chủ- Controller

public class PersonController : Controller

{

static List<Person> people = new List<Person>();

public ActionResult Index()

{

return View(people);

}

public ActionResult Details(Person person)

{

return View(person);

}

public ActionResult Create()

{

return View();

}

[AcceptVerbs(HttpVerbs.Post)]

public ActionResult Create(Person person)

{

if (!ModelState.IsValid)

{

return View("Create", person);

}

people.Add(person);

return RedirectToAction("Index");

}

}

Kiểm tra hợp lệ tại máy chủ – Index View

<h2>Index</h2><table>

<tr><th></th><th>

Id</th><th>

Name</th>

</tr><% foreach (var person in Model) { %>

<tr><td><%= Html.ActionLink("Details", "Details", person )%></td><td><%= Html.Encode(person.Id) %></td><td><%= Html.Encode(person.Name) %></td>

</tr><% } %></table><p>

<%= Html.ActionLink("Create New", "Create") %></p>

Kiểm tra hợp lệ tại máy chủ–Create View

<h2>Create</h2><%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %><% using (Html.BeginForm()) {%>

<fieldset><legend>Fields</legend><p>

<label for="Id">Id:</label><%= Html.TextBox("Id") %><%= Html.ValidationMessage("Id", "*") %></p><p>

<label for="Name">Name:</label><%= Html.TextBox("Name") %><%= Html.ValidationMessage("Name", "*") %></p><p>

<label for="Age">Age:</label><%= Html.TextBox("Age") %><%= Html.ValidationMessage("Age", "*") %></p><p>

<label for="Street">Street:</label><%= Html.TextBox("Street") %><%= Html.ValidationMessage("Street", "*") %></p><p>

<label for="City">City:</label><%= Html.TextBox("City") %><%= Html.ValidationMessage("City", "*") %></p><p>

<label for="State">State:</label><%= Html.TextBox("State") %><%= Html.ValidationMessage("State", "*") %></p><p>

<label for="Zipcode">Zipcode:</label><%= Html.TextBox("Zipcode") %><%= Html.ValidationMessage("Zipcode", "*") %></p><p><input type="submit" value="Create" /> </p>

</fieldset><% } %><div><%=Html.ActionLink("Back to List", "Index") %></div>

Kiểm tra hợp lệ tại máy chủ–Details View

<h2>Details</h2><fieldset>

<legend>Fields</legend><p>

Id:<%= Html.Encode(Model.Id) %></p><p>

Name:<%= Html.Encode(Model.Name) %></p><p>

Age:<%= Html.Encode(Model.Age) %></p><p>

Street:<%= Html.Encode(Model.Street) %></p><p>

City:<%= Html.Encode(Model.City) %></p><p>

State:<%= Html.Encode(Model.State) %></p><p>

Zipcode:<%= Html.Encode(Model.Zipcode) %></p>

</fieldset><p><%=Html.ActionLink("Back to List", "Index") %></p>

For more information and tutorials, see: http://www.asp.net/mvc/tutorials/mvc-5/introduction/getting-started

Hệ quả của Kiểm tra hợp lệ tại máy chủ

• Vấn đề của tiếp cận này là gì? Thực tế, vậnhành việc kiểm tra hợp lệ tại máy người dùngsẽ đơn giản hơn là biểu đạt trên máy chủ, và làm ứng dụng của bạn trở nên nặng gánh vìnhững nhiệm vụ không cần thiết. Bản này liênquan đến các công nghệ khác, ví dụ JavaScript và jQuery, có thể giúp chúng ta đưa kiểm tra vận hành này về trình duyệt người dùng và giảm đi gánh nặng cho máy chủ.

Kiểm tra hợp lệ tại máy trạm-JavaScript

<!DOCTYPE html><html><head><script>function validateForm(){var x=document.forms["myForm"]["fname"].value;if (x==null || x=="")

{alert("First name must be filled out");return false;}

}</script></head>

<body><form name="myForm" action="demo_form.asp" onsubmit="return validateForm()" method="post">First name: <input type="text" name="fname"><input type="submit" value="Submit"></form></body>

</html>

• Slide trước đã chỉ cho bạn thấy form kiểm tra hợp lệ nhờ gọi hàm JavaScript, tên là validateForm, giúp kiểm tra nội dung trong các trường được cho là trống hay rỗng. Trong trường hợp này, hàm sẽgọi ra một bản tin popup, báo cho người dùng về lỗi. Hàm này cũng có thể giúp kiểm tra hợp lệ địachỉ email người dùng, theo ví dụ sau:

<script>

function validateForm()

{

var x=document.forms["myForm"]["email"].value;

var atpos=x.indexOf("@");

var dotpos=x.lastIndexOf(".");

if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)

{

alert("Not a valid e-mail address");

return false;

}

}

</script>

Kiểm tra hợp lệ tại máy trạm-JavaScript

Kiểm tra hợp lệ tại máy trạm

• Cũng có kiểu kiểm tra dữ liệu hợp lệ trong công nghệ jQuery. Để tham khảo ví dụ, vuilòng truy cập: http://jqueryvalidation.org/

• Hàm kiểm tra hợp lệ của cả JavaScript và jQuery đều tại máy trạm, liên quan đến việcgiảm tải cho máy chủ và giúp ứng dụng củabạn tập trung vào vận hành xử lý dữ liệu khác.

Gửi Email

• Có vài cách gửi email thông qua một ứng dụng; vài cách khác đơn giản và vài cách lại phức tạp. Chúng tôi sẽ chỉ cho bạn cách gửi mail chỉ trong vài bước sử dụng những thư viện miễn phéptrong framework MVC của bạn.

• Bạn sẽ đầu tiên là tạo dự án trong Visual Studio nhờ chọn một MVC web project.

• Giờ thì bạn có thể tạo các class mới trong Model folder và đặt tên là mailModel.cs, bao gồm cácmã sau:

Gửi Email- Model

public class MailModel

{

public string From { get; set; }

public string To { get; set; }

public string Subject { get; set; }

public string Body { get; set; }

}

Trong Controller folder, bạn sẽ tạo ra một controller mới với tên SendMailController

Gửi Email - Controller

using System;

using System.Collections.Generic;using System.Linq;using System.Net.Mail;using System.Web;using System.Web.Mvc;

namespace SendMail.Controllers

{public class SendMailController : Controller{

//// GET: /SendMail/public ActionResult Index()

{

return View();

}

[HttpPost]

public ViewResult Index(SendMail.Models.MailModel _objModelMail)

{

if (ModelState.IsValid)

{

MailMessage mail = new MailMessage();

mail.To.Add(_objModelMail.To);

mail.From = new MailAddress(_objModelMail.From);

mail.Subject = _objModelMail.Subject;

string Body = _objModelMail.Body;

Gửi Email- Controller

mail.Body = Body;mail.IsBodyHtml = true;SmtpClient smtp = new SmtpClient();smtp.Host = "smtp.outlook.com";smtp.Port = 587;smtp.UseDefaultCredentials = false;smtp.Credentials = new System.Net.NetworkCredential("username", "password");// Enter senders User name and password smtp.EnableSsl = true;smtp.Send(mail);return View("Index", _objModelMail);

}else{

return View();}

}}

}

• Last, in the Views folder, you will have Index.cshtml

Gửi Email- Views

@model SendMail.Models.MailModel@{ViewBag.Title = "Index";}<h2>Index</h2><fieldset><legend>Send Email</legend>@using (Html.BeginForm()){@Html.ValidationSummary()<p>From: </p><p>@Html.TextBoxFor(m=>m.From)</p><p>To: </p>

<p>@Html.TextBoxFor(m=>m.To)</p><p>Subject: </p><p>@Html.TextBoxFor(m=>m.Subject)</p><p>Body: </p>

<p>@Html.TextAreaFor(m=>m.Body)</p><input type ="submit" value ="Send" />} </fieldset>

Giải thích

• Trong controller, Bạn phải viết mã sau:– ViewResult Index (SendMail.Models.MailModel

_objModelMail)

• Giờ thì bạn sẽ có dữ liệu với định dạng của MailModel. Rồi bạn tạo ra MailMessage và đổ vào các thông tin cầnthiết:– To– From– Cc– Bcc– Subject– Body

Giải thích

• Kế đó, bạn cấu hình máy chủ mail có thể gửiemail của bạn, và điền vào các thông tin sau:– Host: tên host

– Port: cổng thông qua đó mail sẽ được gửi

– UseDefaultCredential: default user

– Credentials: user và password

– EnableSsl: giúp mã hóa dữ liệu thông qua hệ thống an ninh SSL

• Cuối cùng, bạn cần ra lệnh cho máy chủ gửi email sử dụng nút Send.

Giao diện tiên tiến

• Hàm kiểm tra hợp lệ và MVC patterns sẽ giúpbạn tạo ra những giao diện tiên tiến và phứchợp cho nhiều tương tác với người dùng màlại giảm tải cho máy chủ. Nếu chúng ta thêmnhững công nghệ khác, như AJAX hoặc jQuery, thêm vào HTML và CSS, chúng ta sẽ có vô cùngnhiều các năng lực để cải tiến trải nghiệmngười dùng và trình diễn các mô hình giaodịch tốt hơn.

Giao diện tiên tiến

• Phát triển giao diện người dùng tiên tiến baogồm nhiều công nghệ giúp hoàn thiện lẫnnhau để chúng ta có thể tiếp đích. Một vài cáchàm tiên tiến trong thư viện để tạo giao diệnđồ họa như jQuery UI có tại:

https://jqueryui.com/

Giao diện tiên tiến

• Chúng ta cũng có thể thêm những tiềm năng của .NET MVC Framework đểxử lý dữ liệu và quản trị mô hình doanh nghiệp, thêm sự linh hoạt cungcấp bởi JavaScript và AJAX để tránh quá tải và có thể kiểm tra dữ liệu trêntrình duyệt, nhờ đó có thể duy trì được giao diện tiên tiến như các trangsau:– http://www.microsoft.com/en-us/default.aspx– http://www.microsoft.com/surface/en-us– http://windows.microsoft.com/en-us/windows/home– http://whois.wildlife.la/– http://www.fk-agency.com/– http://www.sweez.com.br/– http://www.l2systems.com– http://www.tridentpp.com/– http://shibui.me/web/scroll/index.html– http://flashvhtml.com/– http://nasaprospect.com/

Tính ổn định - Persistence

• Đến nay, chúng ta có thể lưu dữ liệu như các giá trịthay đổi trong ứng dụng hoặc gửi chúng qua mail, nhưng vẫn còn nhiều các phương pháp tối ưu nữa đểlưu dữ liệu. Khi chúng ta lưu dữ liệu như một giá trịthay đổi, chúng được lưu trong bộ nhớ động của máytính. Do đó, mỗi khi chúng ta tắt máy, những dữ liệunày bị mất và chúng ta phải bắt đầu từ đầu khi bật lạimáy tính.

• Cũng thế, lưu dữ liệu trong bản tin email cũng khôngthực tế, ngoại trừ chúng ta lưu bản viết. Thêm vào đó, truy cập những dữ liệu này sau này cũng khó khăn, vìchỉ có một file cho mỗi giao dịch.

Tính ổn định - Persistence

• Đó là lí do chúng ta cần dữ liệu ổn địch, có thểđịnh dạng đặc tính của dữ liệu và tồn tại ngoàiquy trình mà chúng ta tạo ra chúng..

• Một ứng dụng ổn định là ứng dụng có khảnăng lưu dữ liệu và dữ liệu đó tồn tại cảngoài chương trình tạo ra nó.

• Khả năng ổn định này bao gồm các không gianlưu dữ liệu nhằm mục tiêu sử dụng sau này, do đó nó không mất khi máy tính tắt.

Tính ổn định - Persistence

• Bạn có thể, ví dụ lưu dữ liệu lên file và save trong ổ cứng máy tính. Có rất nhiều ứng dụng có thểlưu bản copy các thiết lập ngầm định trong ổ cứng máy tính khi người dùng thay đổi, nhờ đóngười dùng có thể không phải định nghĩa lại cácthiết lập mỗi lần chạy ứng dụng.

• Máy chủ dữ liệu cung cấp một tùy chọn khác choviệc lưu thông tin, nhưng chúng ta sẽ bàn trong chương kế tiếp.

Học lập trình

Chương VIII

Dữ liệu ổn định – Data Persistence

Giới thiệu về tính ổn định – Persistent(lưu quang)

• Bạn có thể trăn trở về cách thức chương trìnhcủa bạn chạy hoặc điều gì xảy ra với dữ liệukhi bạn đóng máy tính. Hoặc bạn có thể nghĩngợi về việc tiếp tục sử dụng hệ thống khi bạnkhởi động lại máy tính hoặc thiết bị. Chắcchắn rồi, bạn không muốn phải giới thiệu lạitoàn bộ thông tin mà bạn đã khai báo.

Giới thiệu về tính ổn định – Persistent

• Có một vài phương thức để trả lời những câu hỏi này. Trong chương trình đơn giản, đòi hỏi ít dữ liệu, lậptrình viên có thể lưu dữ liệu trong file

• Nếu nó quá đơn giản, tại sao lại làm phức tạp lên bằngcách cố đi tìm giải pháp khác? Bởi vì sử dụng files cóthể gây ra những vấn đề sau:– Dữ liệu dư thừa hoặc thiếu ổn định– Khó truy cập dữ liệu– Cô lập dữ liệu– Nhiều người dùng– Vấn đề bảo mật– Vấn đề tích hợp dữ liệu

Các vấn đề với Files

• Dư thừa dữ liệu sẽ tồn tại nếu bạn lưu các dữ liệu lặp lại trong cácfile khác nhau, nếu các bạn không có điều khiển hợp lý khi viếtchương trình. Phương pháp này cơ bản làm việc như việc viết láchkhi bạn viết bất kỳ thứ gì bạn thích, do đó có thể làm cho tư liệukhông thống nhất hoặc tạo ra những thứ ngược nhau.

• Cũng có một sự thật là file lại có rất nhiều các chuỗi ký tự. Nếu bạnmuốn tìm gì đó, bạn cần đi xuyên suốt các chuỗi này cho đến khitìm ra thứ mong muốn.

• Thêm vào đó, file chiếm chỗ trong bộ nhớ máy tính và được truycập bởi rất nhiều người, do đó có người có thể muốn viết lên đó, trong khi có người lại đang đọc file, hoặc bạn có thể muốn lưu cácdữ liệu bí mật, nhưng bảo vệ dữ liệu này khỏi những truy cập củangười khác sẽ gặp khó khăn nếu lưu thông tin vào file.

• Vậy làm sao để xử lý? Dùng máy chủ dữ liệu.

Cơ sở dữ liệu là gì?

• Trong thuật ngữ chính tắc, một cơ sở dữ liệu là bộ sưutập các dữ liệu có tổ chức, và được lưu trữ ở khônggian cho trước. Trong ngữ cảnh này, một hộp giấy baogồm các dữ liệu liên quan, như các tờ hóa đơn dịch vụtiện ích nhà bạn, cũng được định nghĩa là Cơ sở dữliệu..

• Khi nghĩ về cơ sở dữ liệu, bạn sẽ nghĩ về CNTT, nhưngthuật ngữ này có nghĩa rộng hơn và bao phủ tất cả cácdữ liệu được lưu trữ cùng nhau. Trong thực tế, chúngta sẽ nói về lập trình công cụ cung cấp cho chúng ta dịch vụ lưu trữ dữ liệu hiệu quả, an toàn, và xử lý cácvấn đề thường nhật (ví dụ khi nhiều người cùng truycập dữ liệu cùng một thời điểm)

Dữ liệu ổn định

• Trong chương trình của bạn, sẽ có 2 loại dữliệu: 1 loại bạn muốn truy cập khi khởi độngứng dụng (ví dụ persistent data), và một loạiliên quan đến những chương trình vận hànhtức thì (ví dụ dữ liệu bị mất khi máy tính bấtngờ bị mất điện).

Kiến trúc giải pháp

• Do đó, ứng dụng của bạn được phân tách với máy chủ CơSở Dữ liệu, nơi bạn lưu thông tin. Kiến trúc sẽ như sau:

Aplicación2

SGBD

DB1

DB2

DBNAplicaciónn

Aplicación1Application1

Application2

Applicationn

DBMS

Kiến trúc ứng dụng

• Hầu hết các ứng dụng tương tác với các chươngtrình được gọi là Hệ thống quản trị CSDL (Database Management System), cung cấp truycập cho mọi dữ liệu cần thiết.

• Trong các trường hợp đặc thù, chúng ta sẽ làmviệc với cơ sở dữ liệu quan hệ, liên kết với các môhình quan hệ trong bản thân dữ liệu. Điều này cónghĩa là một cá nhân, nếu được lưu trữ, thì cácthành phần sẽ dựng lên mô hình dữ liệu liênquan đến cá nhân, ví như CMND, tên, họ, đệm, giới tính, ngày sinh… sẽ đại diện cho cá nhân đó..

Mô hình quan hệ

• Mọi thành phần trong hệ thống sẽ được mô hìnhhóa trong bảng CSDL như một dữ liệu quan hệ.

• CSDL này sẽ giúp bạn lưu trữ các mối quan hệgiữa các thành phần khác nhau trong hệ thống. Vídụ, bạn có thể có vài bảng liên quan đến 1 cánhân với 1 ô tô hoặc nhiều hơn, dưới quan hệ“Có” (để mô tả rằng người đó có thể không có, có1 hoặc nhiều hơn 1 ô tô).

• Bảng sẽ có kiến trúc sau:

Mô hình quan hệ

AN...A2A1

valor

Nombre Relación

(Nombre Tabla) Atributos (Columnas)

Encabezado

RelaciónCuerpo

R

Tupla (Fila)

Tên quan hệ(Tên bảng) Thuộc tính (cột)

Tiêu đề

Tuples (cáchàng)

Value

thânQuan hệ

Mô hình quan hệ

• Hình minh họa trong slide trước chỉ ra rằng, mỗicột sẽ có 1 kiểu dữ liệu (cho 1 cá nhân, sẽ cóCMND, ngày sinh và..) và mỗi hàng đại diện chomột quan hệ mô hình hóa cho mỗi cá nhân. Bảngnày sẽ bao gồm các quan hệ để chắc rằng 2 ngườisẽ có 2 CMND không thể trùng lắp.

• Bảng này có thể được quản trị thông qua cácchương trình khác nhau. Trong dự án của chúngta, chúng ta sẽ chọn Microsoft’s SQL Express, Sẵncó trên mạng và tải về miễn phí.

SQL

• Nếu bạn muốn biểu đạt nhiệm vụ trong cơ sở dữliệu, bạn cần biết ngôn ngữ giúp bạn có thể liênhệ với chương trình, và trường hợp này là SQL.

• SQL là một kiểu ngôn ngữ giúp bạn biểu đạt 2 kiểu hành vi có tên là: định nghĩa (như tạo raCSDL, xóa CSDL và bảng…) và tính toán (nhưthêm, xóa, cập nhật và liệt kê dữ liệu).

• Khi CSDL được tạo ra, bạn cần biết cách tạo rabảng mà chúng ta đã nói đến. Bạn có thể làm nhờlệnh CREATE.

TẠO

CREATE TABLE <NAME>(

A1 TYPE1 [NULL | NOT NULL] [DEFAULT V1],AN TYPEN [NULL | NOT NULL] [DEFAULT Vn],PRIMARY KEY (Ai,..,Aj),FOREIGN KEY (Ai,..,Aj) REFERENCES <NAME_FOREIGN> (Ai,..,Aj)

)

Some CREATE statements:[ New plate]

CREATE TABLE PROVIDERS(

COD INT NOT NULL,NAME CHAR(50) NOT NULL,TEL INT,PRIMARY KEY (COD)

);

TẠO

• In the previous slide, we have created a table named PROVIDERS, which will feature three types of data in three columns. The first one will be named COD, it will not be empty, and it will hold an integer. The second one will be named NAME, it will not be empty, and it will hold 50 characters at the most. The third one will be named TEL, and it will hold an integer. We have defined COD as the primary key.

Keys

• PRIMARY KEY và FOREIGN KEY trong SQL là gì? Một primary key là một nhóm nhỏ dữ liệu trong bảng, dùng để địnhnghĩa mỗi hàng trong bảng là duy nhất. Vẫn khó hiểu? Làmthế nào để bạn có thể nói với người nhập liệu về cách sửdụng dữ liệu trong bảng của bạn? Nếu bạn biết chắc rằngbạn đã bảo với nhà cung cấp về các điều cơ bản về số mãcủa họ, thì primary key sẽ là cột COD. Cột NAME sẽ khôngphải là primary key bởi vì bạn có thể có 2 người cùng tên.

• Với foreign key, điều này hơi phức tạp và sẽ giúp bạn chạycác điều khiển trong CSDL. Hãy tưởng tượng bạn có chiếc ô tô và liên kết nó với số CMND của chủ xe. Khi bạn địnhnghĩa CAR là foreign key, CMND sẽ chỉ ra CAR làNECESSARILY để gắn liền và phù hợp với số CMND củangười dùng. Đây là cách mà CSDL sẽ điều khiển tự động.

DROP

• Nếu bạn muốn xóa một bảng, cần viết mã sau:

DROP TABLE <NAME>

E.g.: DROP TABLE PROVIDERS

INSERT

• Khi bạn tạo ra bảng, bạn sẽ bổ sung dữ liệu vào đó. Điềunày làm thông qua lệnh INSERT:

INSERT INTO TABLE <NAME> (A1,..,AK)VALUES (V1,..,VK);

Ví dụ: INSERT INTO ITEMS (COD,NAME,TEL)VALUES (5, “JOHN DOE”,666)

• Lệnh này được lập để CSDL chèn giá trị 5, “JOHN DOE” và 666 vào các trường COD, NAME và TEL vào bảng ITEMS theo thứ tự phù hợp.

CẬP NHẬT

• Nếu bạn muốn sửa dữ liệu bạn đã chèn, bạn sẽ dùng lệnh UPDATE như sau:

UPDATE <NAME>SET (A1 = V1,...,AN = VN)WHERE <CONDITION> ;

Ví dụ: UPDATE PROVIDERS PSET (P.TEL = 0000)

Ví dụ: UPDATE PROVIDERS PSET (P.TEL = 0000)WHERE P.COD = 5• Lệnh UPDATE sẽ giúp bạn mô tả bản ghi nào cần sửa. Trong ví dụ đầu tiên, toàn bộ

các bản ghi được cập nhật: giá trị 000 sẽ được cài cho toàn bộ số phone trong bảng. Trong ví dụ 2, chỉ các cột provider có code 5 sẽ được cập nhật.

DELETE

• Bạn cần xóa bản ghi, bạn chỉ đơn giản là lập lệnh DELETE như sau:

DELETE FROM <NAME>WHERE <CONDITION> ;

Ví dụ: DELETE FROM PROVIDERS PWHERE P.COD = 5;

• Trong ví dụ này, bản ghi bị xóa là các cột provider có giá trị 5. Nếubạn muốn xóa toàn bộ thông tin được cho trong bảng, bạn chỉ đơngiản là sử dụng câu lệnh DELETE FROM PROVIDERS. Nhưng lờikhuyên là không nên dùng lệnh này.

SELECT

• Nếu bạn muốn lấy danh sách các thông tin mà bạn lưu, bạn sử dụng lệnh SELECT như sau:

SELECT A1,A2,..,ANFROM T1,T2,..,TNWHERE p

• Ví dụ, nếu bạn muốn lấy cột Code và Name từ bảng PROVIDERS, bạn sẽ dùng câulệnh sau:

SELECT COD, NAMEFROM PROVIDERS

• Lệnh này sẽ giúp lấy chỉ cột Name và Code được lưu trong bảng. Nếu bạn muốnCSDL lấy mọi thông tin của các provider, bạn sẽ dùng ký tự (*) thay cho danh sách của các thuộc tính.

SELECT

• Lệnh này cũng có thể tạo điều kiện lọc khi sửdụng mệnh đều WHERE như ví dụ sau:

SELECT *

FROM PROVIDERS

WHERE COD=5

SELECT

• Nếu bạn muốn tạo quan hệ giữa các dữ liệu trong các bảng• Hãy hình dung ngoài bảng PROVIDERS bạn có bảng ITEMS theo ví dụ sau:

[ Insert plate ]

CREATE TABLE ITEMS(

COD INT NOT NULL,NAME CHAR(50) NOT NULL,QUANTITY INT NOT NULL,COD_PROV INT NOT NULL,PRIMARY KEY (COD),FOREIGN KEY (COD_PROV) REFERENCES PROVIDERS (COD)

);

SELECT

• Và tưởng tượng giá trị của 2 bảng ITEMS và PROVIDERS theo thứ tự sau:

Chọn từ các bảng khác nhau

• Khi bạn viết SELECT * FROM ITEMS, PROVIDERS kếtquả sẽ được tổng hợp từ cả 2 bảng như sau:

Chọn từ các bảng khác nhau

• Thực tế, bạn sẽ muốn nhìn các hàng bao gồm chỉ cóthông tin bạn quan tâm. Để làm vậy, hãy sử dụng mệnhđề WHERE như sau:

SELECT * FROM ITEMS A, PROVIDERS P

WHERE A.COD_PROV = P.COD

Tổng quan

• Khi bạn sử dụng CSDL, bạn sẽ lưu thông tin tại máy chủ và dữ nósẵn sàng và dễ dàng truy cập với bạn, kể cả khi khởi động lại máytính..

• Máy chủ CSDL sẽ cung cấp cho bạn các lợi ích sau đây:– Bạn sẽ phải truy cập các công cụ giúp tránh việc lặp và dư thừa dữ liệu– Nếu bạn có dữ liệu liên quan, khi bạn xóa giá trị, máy chủ sẽ xóa mọi

giá trị phụ thuộc này.– Bạn sẽ có mô hình dữ liệu chaẩn hóa, truy cập được và dễ hiểu.

• Một vài các nhiệm vụ bạn có thể biểu đạt khi bạn khởi động dự ánvới các máy chủ CSDL liên quan như sau:– Tạo bảng tables– Chèn và cập nhật dữ liệu– Chọn và xem các dữ liệu

Học lập trình

Chương IX

Kết nối dữ liệu với các ứng dụng

Giới thiệu

• Hãy xem cách lưu các dữ liệu quan trọng của bạn mộtcách ổn định kể cả khi hệ thống của bạn bị đóng và làmthế nào để sử dụng khi bạn khởi động lại hệ thống.

• Để làm điều này, có 2 công cụ được sử dụng là: ODBC và LINQ.

• Cả 2 đều được phát triển bởi Microsoft, nhưng chúngkhác nhau, và có những ứng đối khác nhau. ODBC làchuẩn mở và là cách cơ sở để kết nối cơ sở dữ liệu, trong lúc LINQ là công cụ thế hệ mới giúp dễ dàng hơnđể sử dụng máy chủ CSDL theo ngôn ngữ gần với tựnhiên hơn.

ODBC

• Cách đầu tiền để kết nối với máy chủ DB của chúng ta và quản trị dữliệu, có tên là ODBC. Mục đích chính của ODBC là để truy cập dữliệu từ bất kỳ hệ thống nào, không cần biết đâu là hệ thống quảntrị dữ liệu và nơi lưu dữ liệu (trong trường hợp của chúng ta là MS SQL Server Express).

• Mục đích của ODBC là để dịch các yêu cầu của ứng dụng thànhlệnh mà Hệ Quản Trị dữ liệu DB Manager có thể hiểu. Để đạtđược điều này, cả ứng dụng và hệ Quản trị phải tương thích vớiODBC. Có nghĩa là hệ thống của bạn phải nhận những lệnh đặc thù, và ODBC và Manager phải có khả năng đáp ứng được những câulệnh này.

• Điều này có thể làm được thông qua bộ điều khiển tại máy chủ và driver manager, những thứ kết nối với hệ truyền thông cùng cơ sởdữ liệu. Bộ điều khiển dịch các kết nối và SQL sẽ yêu cầu và dịchchúng.

ODBC

• Bộ ODBC .NET Data Provider là một thành phần bổ sung add-on cho.NET Development Kit (SDK) nhằm cung cấp các truy cập vào bộđiều khiển ODBC gốc. Mặc dù công nghệ chuẩn được coi là chophép bộ điều khiển của người dùng điều khiển kiểu dữ liệu bất kỳ, nhưng Microsoft Download Center có khẳng định bộ này mới đượctest với Microsoft SQL ODBC, Microsoft Oracle ODBC và Microsoft Jet ODBC drivers.

• ODBC được tạo ra cho driver và driver manager. Bộ điều khiểndriver la fđặc thù cho các sản phẩm của các nhà cung cấp CSDL. Vídụ Oracle cung cấp bộ điều khiển (driver) để làm việc với hệ thốngOracle. Bộ quản trị điều khiển driver manager được sử dụng để càibất kỳ file cần thiết nào và thiết lập các nguồn dữ liệu để sử dụngtrong những ứng dụng khác nhau. Trong hệ thống dựa trênWindows, bộ ODBC Data Source Administrator được sử dụng để tạovà duy trì kết nối ODBC.

Cách cài đặt ODBC

• Để cài đặt ODBC, trước tiền bạn phải tải nó về từlink sau:

http://www.microsoft.com/downloads/details.aspx?familyid=6ccd8427-1017-4f33-a062-d165078e32b1

• Thành phần Microsoft Data Access Components cũng cần thiết, và có thể tải về từ đây: http://msdn2.microsoft.com/en-us/data/aa937695.aspx

Cách cài đặt ODBC

• Sau khi đã cài xong cả 2 thành phần, cần theo các bước sau:1. Bắt đầu chạy Microsoft Visual Studio NET. 2. Tạo project mới trong Visual C# Windows Application. Form1

được thêm vào dự án project một cách ngầm định. 3. Trên Project menu, nháy Add Reference. 4. Trong .NET tab, nháy lên Microsoft.Data.ODBC.dll.

Microsoft.Data.ODBC.dll sẽ hiện lên một danh sách các thànhphần được lựa chọn, nháy OK.

5. Chuyển thành Code view và thêm các mã sau đây ngay dướicác mã lệnh đang dùng:• using System.Data;• using Microsoft.Data.Odbc;

6. Thêm một Button điều khiển vào Form1 và tag nút điều khiểnnày như SQL Server.

Cách cài đặt ODBC

7. Và bây giờ, thêm các mã sau vào nút điều khiển SQL Server button:{

OdbcConnection cn;OdbcCommand cmd;string MyString;

MyString="Select * from Customers";

cn= new OdbcConnection("Driver={SQL Server};Server=mySQLServer;UID=sa;PWD=myPassword;Database=Northwind;");

cmd=new OdbcCommand(MyString,cn);cn.Open();

MessageBox.Show("Connected");

cn.Close();

}

8. Thay chuỗi OdbcConnection strings tùy thuộc theo môi trường.

Các thành phần ODBC

• Một vài thành phần chúng ta có thể sử dụng ODBC driver đã được cài sẵn như sau:– OdbcConnection: Được sử dụng để kết nối với nguồn dữ liệu

ODBC trong quá trình được cấu hình và được sử dụng để truycập dữ liệu.

– OdbcCommand: Được sử dụng để thực hiện lệnh SQL trong kếtnối

– OdbcDataReader: Giúp chúng ta cuộn kết quả yêu cầu. – OdbcParameter: Được sử dụng để kết nối các tham số với lệnh.– OdbcDataAdapter: Được sử dụng để đổ các đối tượng DataSet

object từ một nguồn dữ liệu ODBC.– OdbcCommandBuilder: Chúng tạo ra các tính năng Insert,

Update và Delete cho một bộ đáp ứng dữ liệu ODBC data adapter.

Một ví dụ về ODBC

• Và bây giờ chúng ta sẽ có một ví dụ khác, tạo mộtdự án rỗng trong C#. Ví dụ này sẽ sử dụng vàithành phần được nhắc ở trên, cũng như địnhnghĩa về nguồn dữ liệu ODBC data source đượcđịnh nghĩa trước đó (gọi là Test). Tên DNS (têncủa dữ liệu gốc) được sử dụng trong kết nối cácchuỗi cùng với CMND người dùng và mãpassword để truy cập CSDL. Lệnh SQL cơ sở đượcsử dụng để khôi phục các hàng từ bảng kháchhàng Customers với giá trị của cột hiển thị. Cuốicùng, kết nối và mọi thành phần được đóng lại. Mã C# như sau:

Một ví dụ về ODBC

using System;using Microsoft.Data.Odbc;namespace BuilderODBC {class TestClass {static void Main(string[] args) {string connectionString = "DSN=Test;UID=Chester;Pwd=Tester;";string sql = "SELECT CustomerID, ContactName, ContactTitle FROM Customers";OdbcConnection conn= new OdbcConnection(connectionString);conn.Open();OdbcCommand comm = new OdbcCommand(sql, conn);OdbcDataReader dr = comm.ExecuteReader();while (dr.Read()) {Console.WriteLine(dr.GetValue(0).ToString());Console.WriteLine(dr.GetValue(1).ToString());Console.WriteLine(dr.GetValue(2).ToString());}conn.Close();dr.Close();comm.Dispose();conn.Dispose();} } }

LINQ

• Năm 2008, Microsoft giới thiệu LINQ trong Visual Studio, nhằm phát triển ngôn ngữ lập trình bằng cáchthêm các biểu thức yêu cầu tương tự như câu lệnh SQL và có thể được sử dụng để dễ dàng lấy dữ liệu từ cácmảng, các lớp số đếm được, tài liệu XML, CSDL quanhệ, các nguồn dữ liệu của đơn vị khác.

• Mọi yêu cầu vận hành LINQ bao gồm 3 hành động khácbiệt như sau: – Bảo trì nguồn dữ liệu.

– Tạo query.

– Thực hiện query.

Một ví dụ về LINQ

• In this code we can see an example of LINQ to query an array, but this can also be done in a database server:

class IntroToLINQ{

static void Main(){

// 1. Data source. int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };

// Create query:// numQuery is an IEnumerable<int> var numQuery =

from num in numberswhere (num % 2) == 0select num;

// 3.Execute queryforeach (int num in numQuery){

Console.Write("{0,1} ", num);}

}}

LINQ to SQL

• Chúng ta sẽ dùng CSDL như nguồn dữ liệu và để làmviệc này, chúng ta phải sử dụng thành phần gọi là LINQ to SQL.

• Trong LINQ to SQL, mô hình dữ liệu của CSDL quan hệđược ánh xạ vào mô hình đối tượng và thể hiện trong ngôn ngữ lập trình của nhà phát triển ứng dụng. Khiứng dụng chạy, LINQ to SQL dịch vào SQL các truy vấntích hợp ngôn ngữ trong mô hình đối tượng và gửichúng tới CSDL để chạy. Khi CSDL trả về kết quả, LINQ to SQL dịch chúng ngược lại cho các đối tượng objects và bạn có thể làm việc cùng với ngôn ngữ lập trình củabạn.

LINQ to SQL

• Với LINQ to SQL, bạn đầu tiên cần tạo một bản ánh xạ object-relational khithiết kế (điều này có nghĩa, cái này sẽ nói về liên hệ giữa các thành phầnhệ thống và dữ liệu của CSDL) dù là làm bằng tay hay thông qua sửdụng Object Relational Designer (O/R Designer). Bạn viết yêu cầu của bạntheo đối tượng, và rồi tại thời điểm chạy LINQ to SQL sẽ quản lý các kếtnối với CSDL. Trong ví dụ sau đây, Customers đại diện cho bảng đặc thùtrong CSDL và kiểu của kết quả trong query, IQueryable<T>, derives from IEnumerable<T>.

Northwnd db = new Northwnd(@"c:\northwnd.mdf");

// Query for customers in London.IQueryable<Customer> custQuery =

from cust in db.Customerswhere cust.City == "London"select cust;

Định nghĩa xa hơn: stress

• Kiểm tra Stress là kiểm tra căng thẳng được tiến hànhđể đánh giá độ ổn định của hệ thống. Việc này nhằmđể kiểm tra ứng dụng của bạn ngoài điều kiện thông thường, thường là khi hệ thống bị treo, nhằm để giámsát kết quả. Mục tiêu như sau:

– Tính đến khả năng hạn chế treo hoặc khả năng an toàn;– Kiểm tra các tham số yêu cầu bởi người dùng liệu có tốt

không (ví dụ hỗ trợ 10 triệu người dùng);– Định nghĩa các mô hình bị lỗi (chính xác là cái gì gây lỗi hệ

thống?);– Để kiểm tra vận hành ổn định của một trong những phần

hệ thống vượt quá điều kiện sử dụng tiêu chuẩn.

Stress

• Thông thường, kiểm tra stress cho phần cứng thường đặt mức kiểmtra vượt xa điều kiện thường để chắc chắn rằng tính ổn định sẽ luôntồn tại khi ở điều kiện thường. Những điều kiện này có thể bao gồmtải nặng, sử dụng bộ nhớ, nhiệt, tốc độ đồng hồ… Bộ nhớ và CPU là2 thành phần quan trọng luôn luôn bị kiểm tra kiểu này.

• Kiểm tra stress cho phần mềm nhằm mục tiêu kiểm tra khả năng ổnđịnh khi ép hệ thống bị lỗi; Mục tiêu là để đo lường và đánh giánăng lực biểu đạt có thể của các tác vụ hoặc hàm được yêu cầu.

• Đặc thù hơn, mục tiêu của kiểm tra này là để tránh việc phần mềmbị treo khi gặp các điều kiện không đầy đủ của tài nguyên máy tính, ví dụ như thiếu đĩa cứng hoặc bộ nhớ… những việc không bìnhthường hoặc bị tấn công dịch vụ.

Khái niệm xa hơn: an ninh

• Chúng ta phải hiểu rằng an ninh máy tính là mộtlĩnh vực được CNTT tập trung nhằm bảo vệ các hạtầng máy tính và toàn bộ các vấn đề liên quan, đặc biệt là dữ liệu trên máy tính. Hỗ trợ mục tiêunày, có rất nhiều chuẩn, phương pháp, luật lệ, công cụ và luật pháp nhằm giảm đi các nguy cơtiềm năng mó có thể gây ảnh hưởng tới hạ tầnghoặc dữ liệu An ninh trong môi trường web là xácđịnh và loại trừ các lỗ hổng, nghĩa là các điểm màtừ đó, có thể truy cập hệ thống và hạ tầng củabạn..

Những nguyên nhân làm tổn hại an ninh

• Người dùng: Trong một vài trường hợp, hành vi người dùng có thể tạo ra các lỗi an

ninh, nhưng trong hầu hết trường hợp, là bởi không hạn chế người dùng hoặc các

hành vi không cần thiết không bị hạn chế.

• Mã độc: Những chương trình này nhằm mục tiêu phá hoại hoặc bất hợp pháp sử

dụng tài nguyên hệ thống. Chúng được cài đặt (do bất cẩn hoặc cố ý) trên máy của

bạn, từ đó mở các cửa để xâm nhập hoặc chỉnh sửa dữ liệu. Những chương trình

này có thể là virus, sâu, trojan, hoặc các quả bom logic hoặc chương trình gián điệp,

được mang tên mã độc “malware”.

• Lỗi chương trình: Hầu hết các lỗi lập trình có thể để lộ ra các nguy cơ có thể để các

cracker khai thác, cũng vậy, có nhiều trường hợp do môi trường phát triển nghèo

nàn, cũng tự gây ra hiểm họa.

• Kẻ xâm phạm: Những người tự truy cập trái phép vào dữ liệu hoặc các chương trình

(cracker, defacers, tin tặc, các script boys hoặc kiddies, viruxers, vv).

• Nhân viên kỹ thuật nội bộ: Các lý do phổ biến nhất là những tranh chấp nội bộ, xung

đột liên quan đến lao động, miễn nhiệm, cách lấy lợi nhuận, hoạt động gián điệp, vv.

Thực tập an ninh an toàn

• Bạn có thể dùng các đo lường dưới đây, như:– Thực hiện phát triển hệ thống sử dụng các chuẩn lập trình để

tránh lỗi.– Dùng passwords khó dò như nhiều hơn 8 ký tự, bao gồm chữ

cái, số và kí tự đặc biệt.– Quản trị quyền người sử dụng hợp lý.– Lưu các bản back-up định kì cho toàn bộ dữ liệu và chương

trình.– Có cập nhật an ninh cho máy chủ của bạn thường xuyên– Cài đặt phần mềm antivirus.

• Nếu theo toàn bộ những thực tập an toàn an ninh này, bạnsẽ có hệ thống ổn định và an ninh, giúp vận hành hợp lýthời gian dài.

Học lập trình

Chương X

Trang web thông minh hơn

Truyền thông không đồng bộ

• Hãy nghĩ về việc 1s có 2 người đứng cạnh nhau, nói chung một ngônngữ và trả lời sau khi một người đưa ra câu hỏi, theo thời gian thực. Mặt khác, tưởng tượng trong 1 thế kỷ trước, khi một người gửi mộtlá thư tới người khác cách nhau khoảng hàng trăm hay hàng ngàndặm.

• Trong trường hợp đầu tiền, cả 2 người đều duy trì đối thoại đồngbộ, họ được kết nối truyền thông vào một thời điểm, và trong trường hợp thứ 2, người thứ nhất viết một bức thư, gửi nó và tiếptục cuộc đời của anh ấy. Và một khoảng thời gian sau, người thứ 2 sẽ nhận thư và dừng các nhiệm vụ của người đó lại, đọc thư và trảlời thư, tiếp tục kết nối truyền thông

• Ví dụ thứ 2 của chúng ta phản ánh hiện tượng truyền thông khôngđồng bộ, nơi mà 2 thành phần kết nối không đồng thời điểm, cónghĩa là họ không được kết nối cùng một thời gian. Điều này xảy ravới các emails hoặc forums, nơi một vài người đăng vài bản tin và rồi một vài người khác trả lời các bản tin đó.

Truyền thông không đồng bộ

• Trong thuật ngữ tin học, asynchronous hoặc non-blocking communication là mô hình xử lý cho phép cácchương trình tiếp tục chạy trước khi việc truyền và nhận các phản hồi được kết thục.

• Gửi đi các thông tin giữa 2 hệ thống con sẽ chậm hơnso với việc xử lý dữ liệu trong nội bộ hệ thống. Do đó, nếu bạn cố chờ một kết nối tức thì để kết thúc trướckhi làm các việc khác thì bạn sẽ phải lãng phí rất nhiềucác tài nguyên máy tính. Đó là lý do chúng ta sư rdungjtruyền thông không đồng bộ, giúp khóa các quy trìnhđòi hỏi hoàn tất truyền thông, trong đóng phần còn lạivẫn được tiếp tục xử lý.

Cải tiến không đồng bộ của giao diện

• Một trong những hành động lý thú nhất khi bạn lập trìnhkhông đồng bộ là phân chia giao diện thành các phần nhỏ, và nhờ vào các chương trình mà bạn đã học ở đây, có thểcập nhất mà không cần phải làm mới toàn bộ trang.

• Ví dụ, khi bạn truy cập Outlook.com để kiểm tra email và lựa chọn một vài emails cột bên trái, bạn có thể thấy toànbộ trang không được làm mới để chỉ ra nội dung của cácemail này. Một vài năm trước, khi công nghệ chưa đượcphát triển toàn diện, giao diện người dùng sẽ làm mới toàndiện, và người dùng phải mệt mỏi với việc kết nối và tốc độinternet. Ngày nay, tốc độ tốt hơn và chỉ một vài phần củamàn hình được làm mới (giảm việc tải về), nhờ đó giaodiện sẽ trở nên thân thiện hơn.

AJAX (hoặc AJAJ)

• Hiện nay, ứng dụng web có thể gửi dữ liệu và lấy về từ các máy chủ khôngđồng bộ (tại background) mà không cần can thiệp vào hiển thị và hành vi của phần còn lại trong trang. Dữ liệu có thể được lấy về nhờ sử dụng kiểudữ liệu XMLHttpRequest, và chúng ta sẽ thảo luận sau. Mặc dù tên, cáchsử dụng XML, ngôn ngữ sẽ chỉ được sử dụng để vận chuyển dữ liệu, nhưng JSON (một kiểu khác của ngôn ngữ truyền thông) lại thường đượcsử dụng để thay thế, và yêu cầu không cần đến 100% không đồng bộ.

• Để cải thiện những truyền thông web, nơi chỉ có một vài phần giao diệnđược làm mới, Ajax (hoặc AJAJ nếu JSON được dùng) thường được sửdụng. Ajax không phải là công nghệ đơn lẻ, mà là một nhóm công nghệ. HTML và CSS có thể được sử dụng tổng hợp để đánh dấu và tạo kiểu cáchtrong giao diện. DOM (ví dụ dữ liệu chỉ ra cách giao diện HTML được kiếntạo) được truy cập với JavaScript để hiển thị trang động – và cho phépngười dùng tương tác – và hiển thị thông tin. JavaScript và đối tượngXMLHttpRequest cung cấp phương pháp để trao đổi dữ liệu không đồngbộ giữa trình duyệt và máy chủ để tránh đòi hỏi toàn trang được tải nộidung mới

DOM

• Giải thích không đầy đủ? DOM là một chuyển đổi chuẩn tắc để đạidiện và tương tác với các đối tác trong HTML, XML hoặc các ngônngữ khác. Nếu bạn có một tiêu đề với H1 tag trong HTML, bạn cóthể truy cập nó thông qua DOM trong khi chạy hệ thống và có thểchỉnh sửa nếu được yêu cầu. Phương thức này, khi giao diện nhậnmột tương tác người dùng thông qua AJAX hoặc AJAJ, thông tin được gửi tới máy chủ và giao diện tiếp tục hiển thị không thay đổi. Khi hồi đáp được hệ thống của bạn nhận về, bạn truy cập DOM và yêu cầu nó sửa một phần HTML và nó sửa. Ví dụ, trong trường hợpcủa thư điện tử, bạn yêu cầu máy chủ gửi dữ liệu hồi đáp tới cácbản tin được lựa ở cột trái, và giao diện của bạn vẫn không thay đổi cho đến khi nội dung của các bản tin lựa chọn được phản hồi, và chỉcác phần bên phải nơi bản tin được hiển thị là được làm mới..

Ví dụ cơ bản

<!DOCTYPE html><html><head><script>function showHint(str)var xmlhttp;if (str.length==0){ document.getElementById("txtHint").innerHTML="";return;}

xmlhttp=new XMLHttpRequest();xmlhttp.onreadystatechange=function(){if (xmlhttp.readyState==4 && xmlhttp.status==200)

{document.getElementById("txtHint").innerHTML=xmlhttp.responseText;}

}xmlhttp.open("GET","gethint.asp?q="+str,true);xmlhttp.send();}</script></head><body><h3>Start typing a name</h3><form action=""> Name: <input type="text" id="txt1" onkeyup="showHint(this.value)" /></form><p>Suggestion: <span id="txtHint"></span></p> </body></html>

Ví dụ cơ bản

• Mỗi khi người dùng nhấn một phím, thì hàmJavaScript showHint sẽ được gọi, bao gồmkiểu giá trị, nhờ đó có thể được gửi tới tranggethint.asp page để duy trì tên gợi ý, nếu có. Khi độ dài của chuỗi ký tự lớn hơn 0, thì dữliệu sẽ được gửi để thẩm định.

• Hàm gethint.asp có nội dung như sau:

getHint.asp

<%response.expires=-1dim a(30)a(1)="Ana"a(2)="Bernarda"a(3)="Clara"a(4)="Diana"a(5)="Eva"a(6)="Fiona"a(7)="Gabriela"a(8)="Helena"a(9)="Ingrid"a(10)="Johana"a(11)="Karen"a(12)="Lisa"a(13)="Nina"a(14)="Oriana"a(15)="Paula"a(16)="Amanda"a(17)="Raquel"a(18)="Cinthia"a(19)="Doris"a(20)="Inti"a(21)="Elisa"a(22)="Dora"a(23)="Solange"a(24)="Yanina"a(25)="Violeta"a(26)="Sabrina"a(27)="Elizabeth"a(28)="Hilda"a(29)="Marta"a(30)="Eugenia"

getHint.asp

'receive the parameter sent from HTMLq=ucase(request.querystring("q"))

'search for suggestions provided that the length of q>0if len(q)>0 then

hint=""for i=1 to 30

if q=ucase(mid(a(i),1,len(q))) thenif hint="" then

hint=a(i)else

hint=hint & " , " & a(i)end if

end ifnext

end if

Return “without suggestion" if no matches are found'or return value foundif hint="" then

response.write(“without suggestions")else

response.write(hint)end if%>

AJAX với các file từ xa

• Trong ví dụ trên đây, bạn vừa gọi không đồng bộ mộtfile ASP và được trả về dữ liệu để hiển thị. Thay vào đó, bạn có thể yêu cầu một file XML hoặc JSON với nhiềudữ liệu khác nhau từ ứng dụng từ xa, và rồi dịch và hiển thị chúng trong chương trình của bạn. Đây là cáchứng dụng trong máy tính thực hiện. Chúng kết nối cáctrang như accuweather.com và trả về file XML hoặcJSON. Đơn giản thay thế hàm showHint function trong bản HTML gốc của bạn bằng bản khác có thể gọi và trảvề kết quả. Ví dụ: by another one that can be called and that returns data. For example:

AJAX với các file từ xa

function loadXMLDoc(url){var xmlhttp;var txt,xx,x,i;xmlhttp=new XMLHttpRequest();xmlhttp.onreadystatechange=function()

{if (xmlhttp.readyState==4 && xmlhttp.status==200)

{txt="<table border='1'><tr><th>Title</th><th>Artist</th></tr>";x=xmlhttp.responseXML.documentElement.getElementsByTagName("CD");for (i=0;i<x.length;i++)

{txt=txt + "<tr>";xx=x[i].getElementsByTagName("TITLE");

{try

{txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";}

catch (er){txt=txt + "<td>&nbsp;</td>";}

}

AJAX với các file từ xa

xx=x[i].getElementsByTagName("ARTIST");{try{txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";}

catch (er){txt=txt + "<td>&nbsp;</td>";}

}txt=txt + "</tr>";}

txt=txt + "</table>";document.getElementById('txtCDInfo').innerHTML=txt;}

}xmlhttp.open("GET",url,true);xmlhttp.send();} • Hàm này sẽ nhận, như tham số, địa chỉ nơi file XML được tìm thấy và rồi cuộn file XML và tạo ra

bảng trong giao diện đồ họa với mọi dữ liệu lấy về..

XML

• Chúng ta được xem các phần của giao diện có thểđược cập nhật nhờ AJAX (nghĩa là Asynchronous JavaScript and XML), không cần khóa các quytrình khác. Điều này được làm nhờ XML, dùchúng ta đã nói là có các ngôn ngữ kết nối có tênJSON. Những, 2 ngôn ngữ này là gì?

• XML, như HTML, là ngôn ngữ đánh dấu địnhnghĩa 1 tập nguyên tắc để mã hóa tài liệu theođịnh dạng được cả người và máy đọc được. Mụctiêu thiết kế của XML nhấn mạnh vào khả năng sửdụng được, đơn giản và phổ cập trên Internet.

XML

• Một file XML có tiêu đề như sau:<?xml version="1.0" encoding="UTF-8"?>

• Và rồi, nó được tạo nên bởi kiến trúc cho phép lặp, giống như sau:<person>

<name>John</name><lastname>Doe</lastname><id>23456789</id><car>

<make>Ford</make><model>Escort</model><manufactured>2006</manufactured>

</car></person>

• XML chỉ là phương pháp đơn giản, kết nối thông qua các hệ thống con, các định dạng file được lưuthành tài liệu. Trong ứng dụng của bạn, bạn phải chắc chắn rằng dữ liệu bạn định đọc là được cungcấp bởi hệ thống khác.

JSON

• Trên phương diện khác, JSON, nghĩa làJavaScript Object Notation, là một định dạngmở, giúp truyền các đối tượng dữ liệu ổn địnhtheo giá trị thuộc tính.

• Để truyền các dữ liệu cá nhân thông qua.jsonfile, bạn cần viết câu lệnh sau:

JSON

{"name": "John",“lastname": "Doe",“age": 25,“height_cm": 167.64,“address": {

“street": "21 2nd Street","city": "New York",“state": "NY",“zipCode": "10021-3100"

},“phone": [

{ "type": “home", "number": "212 555-1234" },{ "type": "fax", "number": "646 555-4567" }

]} • Và rồi, để đọc dữ liệu bạn cần đơn giản là sử dụng hàm cung cấp bởi thư viện JavaScript như sau:

var p = JSON.parse(contact);

AJAJ

• Mã JavaScript sau chỉ là một ví dụ của máy trạm sử dụng XMLHttpRequest nhằm yêu cầu dữ liệu từmáy chủ dưới dạng JSON. Chúng ta đảm bảo chương trình ở trên máy chủ, nhưng chúng ta cũngphải nghĩ về việc cấu hình cho yêu cầu dịch vụ tới URL bao gồm các ký tự trong định dạng JSON).

var my_JSON_object;var http_request = new XMLHttpRequest();http_request.open("GET", url, true);http_request.onreadystatechange = function () {

var done = 4, ok = 200;if (http_request.readyState === done && http_request.status === ok) {

my_JSON_object = JSON.parse('''http_request.responseText''');}

};http_request.send(null);

• Đối tượng XMLHTTPRequest là kiểu dữ liệu để tạo các yêu cầu tới máy chủ thông qua Internet (và nhận phản hồi) cho các đối tượng truyền thông và có thể là các loại file phong phú như XML, JSON, HTML, text files

Xử lý theo lô

• Xử lý theo lô là thực hiện một chuỗi các chươngtrình (việc) trên máy tính mà không phải thao tácbằng tay.

• Các việc được thiết lập do đó chúng có thể chạyvà hoàn thiện mà không cần tương tác ngườidùng. Các tham số được nhập vào được địnhnghĩa sẵn thông qua các câu lệnh hoặc chươngtrình được phát triển bởi chúng ta, thông qua cácdữ liệu được gửi khi bắt đầu thực hiện, thông qua files, hoặc thông qua ngôn ngữ điều khiểncông việc.

Xử lý theo lô

• Phương thức này, các bạn phải có chương trình trên máy chủ, thường tính toánnhư thời tiết, lắng nghe, và tại cổng máy chủ, để yêu cầu máy tính người dùng vềcác thông tin đòi hỏi, và gửi nó qua định dạng XML hoặc JSON có thể sử dụng hợplý. Những chương tình này không điều khiển trực tiếp bởi người dùng nào thông qua giao diện, nhưng khi chạy, chúng sẽ đơn giản là tiến hành nhiệm vụ cho đếnkhi được hoàn thiện hoặc bị gián đoạn.

• Có một vài cách khác nhau để xử lý theo lô. Trong một vài trường hợp, chúng chỉliên quan đến việc tạo ra chương trình và bảo hệ điều hành rằng đây là nhiệm vụcần thực hiện tại thời điểm hoặc điều kiện rõ ràng.

• Trong trường hợp khác, bạn có thể làm vậy nhờ chương trình của bạn, như mộtphần của quy trình, giúp giữ việc chạy trong lúc bạn làm việc khác. Để làm vậy, bạnphải theo các bước trong ASP.NET sau:– Thêm một thành phần vào HttpRuntime.Cache với các kỳ vọng không đổi, vào trước mã của

bạn. – Khi bộ nhớ đệm bị hết kỳ hạn, làm nhiệm vụ, như WebRequest hoặc gì đó khác. – Thêm lại thành phần vào bộ nhớ đệm cache với các kỳ vọng không đổi.

Ví dụ về xử lý theo lô

private static CacheItemRemovedCallback OnCacheRemove = null;protected void Application_Start(object sender, EventArgs e){

AddTask(“DoSomething", 60);}

private void AddTask(string name, int seconds){

OnCacheRemove = new CacheItemRemovedCallback(CacheItemRemoved);HttpRuntime.Cache.Insert(name, seconds, null,

DateTime.Now.AddSeconds(seconds), Cache.NoSlidingExpiration,CacheItemPriority.NotRemovable, OnCacheRemove);

}

public void CacheItemRemoved(string k, object v, CacheItemRemovedReason r){

AddTask(k, Convert.ToInt32(v));}

Ví dụ về xử lý theo lô

• Mã này sẽ chạy mỗi 60 giây trong nhiệm vụcủa bạn. Dù sao, nó cũng không phải là lựachọn tốt nhất, vì không tối ưu hóa các nguồnlực, đặc biệt là bộ nhớ đệm (một trong nhữngdạng bộ nhớ máy tính của bạn).

• Có một vài giải pháp ngoài khóa học này, nhưng chúng ta có thể tham khảo tại:

• http://msdn.microsoft.com/en-us/magazine/cc163854.aspx

Học lập trình

Chương XI

Ứng dụng tương lai

Điện toán phổ cập

• Mục đích chính trong điện toán hiện đại là gì? Chúc ta tìm cách phát triển các ứng dụng giúp dễ dàng sử dụngvà truy cập.

• Vậy làm sao để chúng ta cải thiện việc này? Thông qua thứ được gọi là điện toán phổ cập, khi mà điện toánxuất hiện mọi nơi, mọi chỗ.

• Hãy lấy một ví dụ, tài khoản email. Nếu chúng ta cómột tài khoản outlook.com, chúng ta có thể truy cậptài khoản mail, lấy các danh bạ, điện thoại và lưu trữthông tin ở bất kỳ đâu chúng ta tới, bởi cuộc sống hiệnđại yêu cầu chúng ta luôn được kết nối.

Điện toán phổ cập

• Hãy lấy ví dụ về điện thoại di động của chúng ta, khi chúng mang theo nó tới hơn 20 giờ mỗi ngày. Bạn có thể đã đồng bộ tài khoản mail, danh sách liên hệ bạn bè và gia đình, mạng xã hội và cácthành phần khác trong điện thoại của bạn.

• Nhưng bạn cũng có thể truy cập những dữ liệu và công cụ này qua máy tablet, hoặc máy tính hoặcbất kỳ thiết bị nào có thể kết nối Internet thông qua một vài giao diện người dùng.

Điện toán phổ cập

• Điện toán phổ cập liên quan đến việc nhúng điện toánvào môi trường sống, nhờ đó các thiết bị có thể truycập ứng dụng và dữ liệu không giống như các đốitượng riêng rẽ.. Nó nhằm nhung các thiết bị này vàomôi trường xung quanh người dùng, nhờ đó bạn có thểtương tác tự nhiên với chúng và thực hiện các hoạtđộng thường ngày thông qua môi trường điện toántrong suốt. Chúng ta có thể sử dụng điện toán phổ cậpthông qua một vài thiết bị và hệ thống như điện thoạidi động, tablets, hoặc các bộ quần áo thông minh, màkhông cần thông báo với chúng mọi thời điểm. Vớinhững loại này, chúng ta chỉ cần truy cập Internet.

Vài ví dụ về độ phổ cập

• Có vài ứng dụng cung cấp sự phổ cập, như ứng dụnglịch, liên hệ, Outlook.com cho email, OneDrive để lưutrữ file, đồng bộ và chia sẻ, Office365, và nhiều hơnnữa. Bạn chỉ cần cài những ứng dụng này lên thiết bị và có thể có thông tin được đồng bộ mọi nơi, mọi lúc..

• Độ phổ cập tùy thuộc và việc tương thích ứng dụng củabạn với người dùng, theo năng lực thiết bị và theo điềukiện môi trường. Bạn cần luôn nhớ rằng người sử dụnglà thiết bị di động khi phát triển chương trình, ngườidùng sẽ luôn cài chúng trên các thiết bị khác nhau đểtruy cập thông tin. Họ cũng có thể tương tác với ứngdụng của bạn để yêu cầu các thông tin cần cho cácthiết bị lựa chọn..

Nghĩ về sự phổ cập

• Chúng ta cần dựng lên một hệ thống màkhông cần có mô hình hay dữ liệu, sẽ đưa racác giao diện khác nhau thông qua các côngnghệ khác nhau phù hợp với nhu cầu ngườidùng..

• Đây là vấn đề mà các khoa học máy tính đangđối diện ngày nay, và họ sẽ phát triển như vậytrong tương lai.

Ứng dụng Online Applications 2.0

• Ngày nay, các ứng dụng không chỉ tập trung hoàntoàn là online hay offline, và sẽ là như thế trong tương lai. Thực tế, có một vài ứng dụng tổ hợp cả2 tính năng.

• Chúng ta đã nói về ứng dụng phổ cập, có thể truycập từ các thiết bị khác nhau để lấy dữ liệu tươngtự. Nếu chúng ta dành ra vài phút để phân tíchcác ứng dụng chúng ta dùng hàng ngày, chung ta nhận ra rằng chúng sẽ có hành xử khác nhau khicó hay không có kết nối Internet.

Ứng dụng Applications 2.0

• Về ứng dụng online, chúng ta sẽ muốn sử dụngBing Maps từ di động khi ở giữa núi, khi không cóInternet, và chúng ta sẽ gặp rắc rối. Nhưng có rấtnhiều các ứng dụng khác cho thiết bị của bạn, vídụ HERE maps, giúp chúng ta tải trước các bản đồvà vài tính năng cơ sở có thể dùng khi offline, bởitoàn bộ thông tin đã được lưu trong bộ nhớ thiếtbị. Dù sao, có rất nhiều tính năng trong các ứngdụng này, như thực tế tăng cường (sẽ được nóitới sau), và vẫn đòi hỏi internet để vận hành..

Ứng dụng Online Applications 2.0

• Có các ứng dụng khác để lưu thông tin khi thiết bịoffline để ngay lập tức đồng bộ thông qua ứng dụngtrên máy chủ bất kỳ khi nào ứng dụng online, nhưngchúng vẫn có thể sử dụng khi không có Internet . Điềunày sẽ đưa ra các thách thức mới, bắt chúng ta kiếnthiết ứng dụng như các hệ thống con tương tác, và cónhững hành xử khác nhau và cần có cách xử lý riêng.

• Trong khóa này, chúng ta tập trung vào ứng dụng web, thường xuyên online, và đây sẽ là điểm bắt đầu đểphát triển quy trình đồng bộ sau này cho các ứng dụngonline/offline đồng thời, khi có kết nối Internet.

Thực tế tăng cường

• Thực tế tăng cường là tầm nhìn thực trực tiếp hay giántiếp thông qua các thiết bị vật lý điện tử (như điệnthoại di động), môi trường thực bao gồm các thànhphần được bổ sung bởi các thành phần ảo để tạo ra cácthực tế hỗn hợp trong thời gian thực.

• Ví dụ, sẽ có các thực tế tăng cường, nơi đó được đưabởi camera của máy di động, các bạn sẽ xem thành phốhoặc đường phố trên màn hình trong khi chương trìnhsẽ thêm một vài loại thông tin mà các bạn có thể xem, ví dụ có thể thêm các thành phần ảo vào thế giới thực.

Các trường cho thực tế ảo

• Giáo dục. Các thông tin lịch sử hoặc giáo dục có thể được tăngcường vào môi trường thực cho sinh viên.

• Tiếp thị Mobile. Stores có tính năng chương trình khuyến mãi hoặc tham gia vào các chiến dịch tiếp thị có thể được hiển thị cho người sử dụng; người dùng cũng có thể được cho biết nơi để tìm thấy những hàng hóa mà họ đang tìm kiếm.

• Tourism. Có vài ứng dụng thực tế ảo AR apps cung cấp các chỉ dẫnvề du lịch và các thông tin hữu ích cho khách du lịch.

• Văn hóa số. Các viện bảo tàng và trung tâm triển lãm nghệ thuật cóthể cung cấp các giải thích và những thông tin hữu ích về các hiểnthị nghệ thuật cho người dùng thực tế tăng cường.

• Giải trí: Rất nhiều các games thực tế tăng cường đã được pháttriển để tổ hợp với cuộc sống thực với các đối tượng ảo, và sẽ còncó nhiều nữa..

Vài ví dụ cho thực tế ảo

• Sau đây là các ứng dụng AR cho Windows Phone:• Blippar: http://www.windowsphone.com/en-

us/store/app/blippar/53817679-395c-435f-bd58-00984ffbebdd

• Cập nhật Foursquare: http://www.windowsphone.com/en-us/store/app/foursquare-upgrade/b9a0a975-f6e5-4531-8a27-98ab75d1e78f

• Đây là City Lens: http://www.windowsphone.com/en-us/store/app/here-city-lens/b0a0ac22-cf9e-45ba-8120-815450e2fd71

• Thời tiết: http://www.windowsphone.com/en-us/store/app/weather/2676904a-3c87-4647-a7c0-5d0c0886c7a1

Tương lai

• Bất cứ điều gì khẳng định về tương lai của công nghệ sẽ chỉ là phỏng đoán. Công nghệ đang tiến triển với tốc độ đáng kể, và ít được biết về những gì sẽ ưu tiên áp dụng trong tương lai.

• Máy tính phổ biến, ứng dụng trực tuyến, và thực tế tăng cường là một phần của hiện tại, nhưng họ có thể sẽ là quá khứ trong tương lai. Tuy nhiên, khi chúng ta tiếp tục tạo ra các thiết bị mới và tìm kiếm những cách thức mới để cải thiện cuộc sống hàng ngày của chúng ta, công nghệ mới sẽ tiếp tục được phát triển. Từ năm 2011 hoặc 2012, các chuyên gia đã phát triển quần áo, phụ kiện và giày thông minh rất nhanh nhằm làm cho cuộc sống của chúng ta thông minh hơn, và các bước tiến cũng liên tục phát triển trong các lĩnh vực khác

Tương lai

• Mọi người ngày càng thường xuyên tìm các thiết bị thông minh giúp cách nấu ăn, mua gì trong siêu thị, hoặc làm thế nào để tiết kiệm năng lượng ở nhà. Điều này có được nhờ sử dụng các cảm biến trong các thiết bị gia dụng, và thậm chí cả trong các tòa nhà.

• Thiết bị mới cũng đang được phát triển để có thể phát hiện những cử chỉ của người dùng, trong khi quần áo thông minh và kính sẽ sớm cho phép chúng ta trải nghiệm thực tế tăng cường. Loại kỹ thuật này cũng sẽ dẫn đến các ứng dụng mới có thể cải thiện sức khỏe con người, đo một số chỉ tiêu trong thời gian thực. Ngoài ra, khi ngày càng nhiều dữ liệu trở nên có sẵn, cái gọi là "phân tích dữ liệu lớn" sẽ cho phép chúng ta phát hiện tốt hơn mô hình hành vi của con người và cải thiện cuộc sống con người

• .

Các lĩnh vực phát triển

• Các hệ thống mới sẽ tiếp tục để phát triển cho các lĩnh vực sau:

1. Nông nghiệp (các tính năng robots sẽ thực hiện một vài nhiệm vụ)

2. Di truyền học

3. Y sinh

4. Khoa học Vật liệu

5. Điện tử

6. Trí tuệ nhân tạo

7. Âm thanh và Nhận dạng giọng nói

8. Thực tế ảo và thực tế tăng cường

9. in ấn 3D

10. Kiến trúc

11. Quân đội và Quốc phòng

12. Khoa học tâm lý

13. Robot

14. Giao thông

15. Etc.

• Khoa học máy tính sẽ hiện diện trong mỗi và toàn bộ những lĩnh vực này, cung cấp thông tin và

cống hiện cho phát triển nhân loại. Nhờ đó sẽ rất quan trọng để hiểu biết công nghệ hiện thời, vì

chúng có thể xây dựng công tác nghiên cứu và giúp chúng ta sau này.

Học lập trình

Chương XII

Cách tiếp cận dự án CNTT

Mẫu - Prototypes

• Trong một vài lĩnh vực kỹ thuật hoặc trong kiến trúc, mẫu của vật cần xây dựng sẽ được làm trước. Đôi lúcnó chỉ là một phần của vật cần xây hoặc nó là phiênbản đơn giản được tạo ra để xem hoạt động của thiếtkế trong thực tế.

• Trong ngành CNTT, chúng ta cũng có thể xây dựng cácmẫu cho dự án, để cho khách hàng xem hoặc để biểuđạt ý tưởng muốn xây dựng của chúng ta.

• Nó đơn giản như chương trình hoặc vài màn hình cóthể liên kết giữa chúng, chỉ ra các dữ liệu có thể khôngcó trong thực tế, và từ đó có khái niệm về việc chúng ta có thể thay đổi hoặc thực hiện.

Mẫu và các phát triển tiến hóa

• Mô hình của mẫu cũng được phát triển dần. Điều này cónghĩa là hệ thống sẽ được xây dựng từng chút một, thêmcác nguyên liệu trên chương trình đã có.

• Mẫu sẽ phải được xây dựng trong thời gian ngắn, sử dụngcác phần mềm phù hợp và không tốn quá nhiều tài nguyên.

• Ý tưởng của mẫu là tập trung vào các tính năng hệ thống, có thể được chỉ ra cho các khách hàng hoặc người dùng để họ có thể đưa ra các phản hồi, từ đó chúng ta có thể điềuchỉnh các yêu cầu của phần mềm để phát triển.

• Mẫu được điều chỉnh để đáp ứng các như cầu khách hàngvà người dùng. Cùng thời điểm, chúng ta có thể hiểu hơnchúng ta phải làm gì, và khách hàng sẽ có thể nhìn thấy kếtquả trong thời gian ngắn.

Ước lượng

• Trong quá trình thực hiện dự án bất kỳ, phải tâmniệm rằng các vấn đề thường phát sinh liên quanđến dự toán và phạm vi dự án. Việc dự toán baogồm thời gian phải làm cho dự án. Các hạng mụclà những việc bao gồm trong dự án.

• Để tính đến hiệu quả, chúng ta phải hiểu rõ vềphạm vi công việc, bởi nếu chúng ta không hiểuvề việc có những gì trong dự án, chúng ta sẽkhông biết phải dành bao nhiêu giờ để làm trong dự án.

Định nghĩa phạm vi

• Trong CNTT, cái gọi là yêu cầu kỹ thuật đề cập đến quá trình tìm hiểu các nhu cầu hoặc điều kiện cần đáp ứng để phát triển một hệ thống mới hoặc sửa đổi, có tính đến các yêu cầu khác nhau của khách hàng hoặc người sử dụng.

• Mục đích chính là để hiểu càng nhiều càng tốt những gì chúng ta phải làm trước khi bắt đầu thiết kế một dự án. Yêu cầu tốt phải đo lường được, chứng minh, rõ ràng hoặc không tự mâu thuẫn. vv.

Yêu cầu kỹ thuật

• Các nhiệm vụ liên quan đến yêu cầu kỹ thuật được chia làm 5 kiểu

sau:

– Yêu cầu gợi mở: phỏng vấn hoặc giao tiếp với khách hàng

hoặc người sử dụng trong tương lai để biết mong đợi của họ.

– Phân tích yêu cầu: phát hiện và sửa các vấn đề của việc thiếu

thông tin liên lạc bằng cách chuyển đổi các yêu cầu thu được từ

các cuộc phỏng vấn trong điều kiện thiết kế đầy đủ.

– Yêu cầu kỹ thuật: trong tất cả các giai đoạn, yêu cầu phải được

ghi đúng cách để biết chính xác phải làm gì và tránh bất kỳ sự

hiểu lầm.

– Yêu cầu xác minh: thử nghiệm trong các ứng dụng hoạt động

đúng đắn của những gì chúng ta được lập trình dựa trên các yêu

cầu.

– Yêu cầu xác nhận: đảm bảo rằng các yêu cầu thực hiện là phù

hợp với mong đợi ban đầu.

Yêu cầu kỹ thuật

• Yêu cầu kỹ thuật có thể là quá trình dài và phức tạp mà cần cónhững kỹ năng tâm lý.

• Các nhà phân tích cần phân loại các kỹ thuật khác nhau để đáp ứngcác yêu cầu khách hàng. Về mặt lịch sử, danh sách yêu cầu được tạora thông qua các kỹ năng như phỏng vấn hoặc họp nhóm. Hiện nay, những kỹ thuật này có thể được bao gồm phát triển mẫu thửnghiệm và sử dụng cụ thể (không xử lý bây giờ).

• Những yêu cầu của người dùng được cân nhắc theo mục tiêu chungdài hạn và được phân tích nhiều lần cho đến khi bạn có thể địnhnghĩa các mục tiêu quan trọng cho vận hành hệ thống.

• Cuối cùng, tiến trình sẽ được đo lường trong quá trình xây dựngquy trình để đánh giá tiến trình được thực hiện như thế nào trong bất kỳ giai đoạn nào của dự án.

Đánh giá hiệu quả

• Nếu khách hàng của bạn là ai không quan trọng, màquan trọng nhất bạn phải nhớ rằng, cần phải dùng baonhiêu thời gian và nỗ lực để hoàn thiện dự án của bạn. Nếu không, bạn sẽ bị rối loạn khi không biết lúc nào cóthể kết thúc dự án, và khách hàng của bạn, có thể sẽnổi cáu vì dự án có thể kéo dài quá mức.

• Mặc dù việc dự toán có thể mang tính nghệ thuật hơnlà khoa học, nhưng không ai được khuyến khích bỏ qua khi bắt đầu dự án. Trong CNTT, rất nhiều dự án đã bịhỏng vì không có dự toán đầy đủ. Trước khi bất kỳ mộtdự án phần mềm nào, chúng ta phải biết cần dành baonhiêu thời gian và nỗ lực để hoàn thiện dự án.

Tầm quan trọng của dự toán và quản trị

• Hãy xem số phần trăm dưới đây để có một dự toán và quản trị tốt:– Số trung bình các dự án vượt quá ngân sách dự toán là 90% và thời

gian ước tính là 120%.– 52.7% số dự án sẽ tiêu tốn 189% giá dự kiến ban đầu.– Trung bình thời gian phát sinh là 222% dự toán ban đầu.– Chỉ 16.2% (9% cho các công ty lớn) các dự án được hoàn thiện trong

thời gian và ngân sách dự toán.– 75% các hệ thống lớn không làm việc hợp lý.– 15% các nỗ lực phát triển đang bị lãng phí do bị hủy bỏ dự án.– 50% các dự án lớn vượt quá ngân sách hoặc kế hoạch (nhiều hơn 50%)– Các dự án trung bình vượt quá tiến độ dự kiến khoảng 50%.– Các dự án nhỏ (hầu hết) vượt quá các ngân sách và bị trễ khoảng 20%.

Phương pháp Delphi

• Như chúng ta đã thấy, rất cần phải có công tác phân tích tốtcho dự án trước khi lập trình.

• Trong rất nhiều công tác thực địa, dù không biết đến tênthật của phương pháp, Delphi vẫn là phương pháp dự toánđược sử dụng.

• Phương pháp này sẽ thu thập một nhóm người dùng để tạora một checklist và rồi phân tách theo thời gian phụ thuộckinh nghiệm của họ. Rồi, mọi thành phần sẽ chia sẻ tầmnhìn của họ và trưởng nhóm sẽ tổng hợp mọi checklists. Hơn thế, lý do ẩn sau dự toán là để các lập trình viên sẽ thểhiện việc đồng ý trong nhóm về những thảo luận cơ sở. Dựtoán hiệu quả cuối cùng đòi hỏi phát triển hệ thống với cácthảo luận trước đó cùng khách hàng và người dùng trong cuộc họp nhóm này.

Và rồi?

• Chúng ta đã biết điều khách hàng muốn (thậm chí nếu chúng ta làkhách hàng) và chúng ta có ý tưởng về thời gian đòi hỏi để pháttriển hệ thống và từ đó sẽ biết chi phí.

• Và bây giờ, chúng ta phải phát triển mẫu để trưng bày, từng bướcmột.

• Theo phương pháp này, chúng ta có thể chỉ ra được cách phát triểnvà đo lường tiến độ ,thông qua các chỉ số được định nghĩa khichúng ta phân tích các yêu cầu hệ thống.

• Mục tiêu của nguyên mẫu là tập trung vào các tính năng hệ thống, có thể được quan sát bởi khách hàng hoặc người dùng, cho chúngta có được phản hồi nhờ đó chúng ta có thể điều chỉnh việc pháttriển phần mềm.

• Nó sẽ tiếp tục cho đến khi toàn bộ hệ thống sẽ được vận hành nhưmong muốn ban đầu.

Cuối cùng, cài đặt

• Cài đặt là từ không hẳn quen thuộc với tất cả mọingười. Nhưng thực tế, nó là khái niệm đơn giản. Cài đặt dự án bao gồm việc cài chương trình lêncác máy tính và thiết bị khi nó được sử dụng, hoặc trên máy chủ khi trang web cần được host, tùy thuộc vào kiểu dự án.

• Nếu chúng ta phát triển hệ thống chạy trên máytính hoặc thiết bị mobile, chúng ta chỉ cần cài file chạy.

• Nếu bạn phải cài đặt website trên máy chủ, càiđặt sẽ phức tạp hơn.

Cài Web

• Như chúng ta đã nói, một máy chủ web không phải chỉ là máy tínhnơi toàn bộ các quy trình được chạy, nhưng các chương trình bảnthân nó cung cấp dịch vụ cho bất kỳ ai muốn truy cập trang của bạn. Trong Windows, chương trình này được gọi là Internet Information Server or IIS.

• Nếu bạn muốn xuất bản nội dung có thể được truy cập bởi các kếtnối Internet hoặc Intranet, bạn có thể thêm trang web vào IIS đểthêm vào các nội dung.

• Trong Windows 2008 Server hoặc trong bản Professional hoặcUltimate desktop versions of Windows, IIS được cài đặt và một cấuhình web ngầm định được tìm thấy tại thư mục \Inetpub\Wwwroottrên máy tính. Các bạn có thể sử dụng các thư mục ngầm định đểxuất bản nội dung web hoặc tạo ra các thư mục đặc thù trên địa chỉhệ thống theo lựa chọn của bạn.

Tạo một website trong IIS

1. Khởi động IIS Manager. Để làm, nháy vào Start trong máy tính, nơi hệ thống sẽ được cài đặt và tìm IIS hoặc Internet Information Server.

2. Trong bảng Connections pane, nháy phải vào nút Sites node trên cây, và rồi nháy vào Add Web Site.

3. Trong hộp thoại Add Web Site, gõ tên Web site vào Web site name box.

4. Chọn Select nếu bạn muốn chọn các ứng dụng khác nhau hơn một danh mục trong hộp Application Pool box. Trong hộp thoại Select Application Pool dialog box, chọn một ứng dụng từ danhmục Application Pool và nháy OK (tùy chọn).

5. Trong hộp đường dẫn vật lý Physical, gõ đường dẫn vật lý của thư mục hoặc nháy vào browse button (...) để đãn đến file hệ thống hoặc tìm folder.

6. Chọn giao thức cho Web site từ danh mục Type.

7. Giá trị ngầm định trong IP address box là All Unassigned. Hãy để vậy.

8. Gõ vào số cổng trong Port text box, ví dụ, 80.

9. Một cách tùy chọn, gõ tiêu đề host cho Website trong Host Header box. Ví dụ: www.mywebsite.com.

10. Nếu bạn không có bất kỳ thay đổi nào trên trang, và bạn muốn Web site ngay lập tức được xuất bản, chọn vào check box: Start Web site immediately.

11. Nháy OK.

Đã hoàn thiện?

• Khi bạn hoàn thiện mọi bước kể trên, trangweb có thể làm việc. Bạn có thể kiểm tra bằngcách truy cập vào địa chỉ được định nghĩa tạitiêu đề: www.mywebsite.com, nếu tên máychủ domain được cấu hình đúng, nó sẽ đưabạn đến địa chỉ mà hệ thống được hosted.

• Và vậy là chương trình đã được cài đặt sẵnsàng để chạy!!!

Tổng quan

• Trong chương này, chúng ta đã xử lý các vấn đề quan trọng sau:– Thực hiện một phân tích yêu cầu hợp lý và tại sao chúng ta phải nắm

được vấn đề này.– Thực hiện dự toán cho dự án của bạn và hiểu về việc tổ hợp giữa chi

phí và thời gian.– Phát triển mẫu phù hợp với các yêu cầu thông tin khách hàng và nhu

cầu của chính bạn để hiểu mong muốn khách hàng.– Cài đặt phát triển của bạn vào môi trường phù hợp tùy theo công nghệ

được sử dụng

• Nếu bạn muốn cài đặt dự án của bạn an toàn, hay lưu tâm tới tất cảcác thực hành kể trên: hệ thống của bạn sẽ được hoàn thiện dễdàng hơn, và bạn cũng như người dùng đều cảm thấy hài lòng tuyệtđối.