Tải bản đầy đủ (.docx) (41 trang)

Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (703.48 KB, 41 trang )



2.1.1

Phân tích hệ thống..........

1.2
1.3

3


1.4
1.5
1.6

DANH MỤC
CÁC HÌNH •


1.7

Hình 3.1 Giao diện hiển thị danh sách trạng thái
1.8
1.9
1.3

Giảỉ thích

1.2


K
ý hiệu

1.7

E
DGE

1.10
1.13

1.5
1.8

Enhanced Data Rates for GSM
Evolution

API 1.11 Application Programming
Interface

G
PRS

1.14

General Packet Radio Service

1.16

1.17 Global System for Mobile

GSM Communications

1.19

SDK 1.20

Software Development Kit

1.22

GPS 1.23

Global Positioning System

1.25
1.10

1.6

Tieng Anh

Tiếng Việt

1.9

Sự phát triển tăng tốc độ
truyền cho mạng GSM

1.12


Giao diện lập trình ứng

1.15

Gói dịch vụ vô tuyến tổng

dụng
hợp

1.18

Hệ thống thông tin di
động toàn cầu

1.21

Độ công cụ phát triển
phần mềm

1.24

Hệ thống định vị toàn cầu


1.11
1.12

LỜI MỞ ĐÀU

Hiện nay, tắc đường đang là vấn đề chung của các thành phố lớn như


Hà ẩ ội và Thành phố Hồ Chí Minh. Tắc đường không chỉ gây thiệt hại về kinh tế mà
còn kéo theo nhiều hậu quả xã hội nghiêm trọng. Các cơ quan chức năng đã có nhiều
cố gắng đề ra các giải pháp chống tắc đường. Từ các giải pháp kỹ thuật như là phân
làn đường bịt các ngã tư, tăng cường lực lượng giao thông tai các điểm hay ùn tắc
cho tới các biện pháp pháp tận dụng sức mạnh cộng đồng như là thực hiện chương
trình vov giao thông, tăng cường giáo dục, tuyên truyền, kêu gọi ý thức của người
tham gia giao thông. Tuy nhiên, do mật độ tham gia giao thông quá lớn, cơ sở hạng
tàng không đủ đáp ứng được, một phần ý thức của người tham gia giao thông chưa
cao, nên các biện pháp đề ra chưa mang lại hiệu quả như mong muốn.
1.13

Hướng đến một cách tiếp cận khác đó là thông qua môi trường Internet

và các thiết bị di động, em đã chọn đề tài đồ án “Dịch vụ cung cấp thông tin tình
trạng giao thông dựa trên vị trí cho thiết bị cầm tay trên nền Android“. Bài toán được

giải quyết chủ yếu dựa vào dịch vụ Google Map và các thiết bị sử dụng hệ điều hành
Android. Google Maps là dịch vụ đã phổ biến trên thế giới cũng như ở Việt ẩ am. Ở
các thành phố lớn trên thế giới, Google Maps có tích hợp thông tin giao thông vào
bản đồ ở chế độ Traffic View. Tuy nhiên, ở Việt ẩ am, dịch vụ này không hỗ trợ cũng
như chưa có dịch vụ nào tương tự.
1.14

Mục tiêu của đề tài:
1.15 Đe tài nhằm đưa ra một giải pháp bổ sung, khả thi cùng với các

phương tiện khác như vov giao thông đưa thông tin giao thông đến cho người sử
dụng Internet di động trên các điện thoại, cụ thể là Android.
1.16


Hướng tiếp cận của đề tài:
1.17

Giải pháp đưa ra là sử dụng cùng nguồn thông tin như vov Giao thông,

có thể là các cộng tác viên, những người tham gia giao thông để phát hiện ra điểm
tắc đường, chỉ định điểm tắc đường cụ thể trên bản đồ, có mô tả về thời gian tắc, thời
gian dự kiến kết thúc. Phàn mềm thực hiện hai nhiệm vụ chính là xác định điểm tắc


đường trên bản đồ, công việc này được xử lý ở Server, truy cập và hiển thị lại thông
tin trên các thiết bị di động, phần này được thực hiện ở Client.
1.18


Các công việc chính của đề tài bao gồm:
Tìm hiểu và cài đặt Server trên nền ASP.NET MVC.


Tìm hiểu và xây dựng Webservice kết nối Client và Cơ sở dữ liệu SQL
Server.




Tìm hiểu dịch vụ Google Maps và các giao diện lập trình được hỗ trợ để tích

họp với phần Server và Client.
Tìm hiểu và cài đặt Client trên nền điện thoại di động Android.

1.19

Đồ án bao gồm 3 chương với nội dung như sau:

1.20

Chương 1: Cơ sở lý thuyết chương này bao gồm các kiến thức được sử

dụng để xây dựng chương trình
1.21

Chương 2: Phân tích thiết kế hệ thống chương này sẽ đi phân tích thiết

kế hệ thống để đạt được mục tiêu đề ra.
1.22

Chương 3: Cài đặt và thử nghiệm chương này sẽ trình bày một so file

được cài đặt trong hệ thống và kết quả thu được
1.23 Thái Nguyên, tháng 6 năm
2012


1.24

CHƯƠNG 1

Cơ SỞ LÝ THUYẾT
1.1


Giới thiêu về hê điều hành Android
1.25 • •

1.26

Android được phát triển bởi tập đoàn Google, phiên bản đàu tiên ra đời

năm 2008. Được xây dựng trên một nền tảng mở, và một bộ thư viện đa năng, mạnh
mẽ với nguyên lý mở, Android đã nhanh chóng được cộng đồng lập trình viên di
động hưởng ứng mạnh mẽ. Nền tảng Android tích họp nhiều tính năng nổi bật:
- Android là một hệ điều hành nhân Linux, đảm bảo sự tương tác với các phàn
cứng, quản lý bộ nhớ, điều khiển các tiến trình tối ưu cho các thiết bị di động.
- Bộ ứng dụng khung cho phép sử dụng lại và thay thế các thành phần riêng lẻ.
- Máy ảo Dalvik được tối ưu cho các thiết bị di động, chạy các ứng dụng lập
trình trên ngôn ngữ Java.
- Các thư viện cho phát triển ứng dụng mã nguồn mở bao gồm SQLite, WebKit,
OpenGL và trình quản lý đa phương tiện.
- Hỗ trợ các chuẩn đa phương tiện phổ biến, thoại trên nền GSM, Bluetooth
EDGE, 3G và Wifi
- Hỗ trợ Camera, GPS, la bàn, máy đo gia tốc...
- Bộ phát triển ứng dụng SDK đầy đủ gồm thiết bị giả lập, công cụ sửa lỗi, tích
họp với Eclipse SDK
1.1.1 Phát triển ứng dụng trên Android
❖ Cấu trúc của các thành phần Android
1.27

Cấu trúc của Android được chia theo tầng các phần mềm bao gồm tầng

ứng dụng (Application Layer), ứng dụng khung (Application Framework), Các thư
viện (Libraries), Android Runtime và nhân Linux (Linux Kernel).





[Trình
Trinhquển
lý 1
Trinh
qnànme
lý work
quên lý
Trinh
quần
RýtQ chức
Trinh-qwâft
Applications
Applications
Fa
(ứng
(Khung
dụng)
ứng
Trinh Trmti
qụ*nmmi

1
tài1nguyên'
«'ửurũnr
Trinh qwdn \ ỷ
đóng

«fUftilgõí
lÿ Slirifíií»
vị tri
Máy
Phwldttii
thoai Media
Activity
do
SOUt«
Manager
Frarrwiwtsrk
1.28 Linux Kernel (Nhản Linux)
QpehGL
ES trúc hệ điều hành
Tirinb
fliíi]
1.29 Hình
1.1:1Kiến
Android
TrĩrYh
FnraTyfúH!
kkiph
îfceukhàéfi
Webkit
bã nhỏ
IPC
Android Trinh
Runtime: Bao gồm
ảo Dalvỉk và các thưFlash
vỉận Android.

SQLmáy
Trĩnh
Trinh
ÆDUIC
đĨBuỉkhiữn
«ĩĩiTư

1.30

o Các thư viện cơ bản: Các ủng dụng Android được phát triển trên môi

trường Java, nhưng Dalvik lại không phải là một Java VM. Các thư viện cơ bản
của Android cung cấp hầu hết các chức năng có trong thư viên cơ bản của Java
cũng như là thư viện riêng của Android, o Máy ảo Dalvìk: Dalvik là máy ảo để
chạy các ứng dụng trên Android, đã được tối ưu để đảm bảo rằng một thiết bị có
thể chạ được nhiều Instance một cách hiệu quả. Nó dựa vào nhân Linux để thực
hiénda luồng và quản lý bộ nhớ cấp thấp.


Tầng ứng dụng khung: Cung cấp các lớp được sửa dụng để tạo ra các ứng dụng
trong Android. Nó cũng cung cấp các lớp trừu tượng truy cập phần cứng và quản
lý tài nguyên của ứng dụng.


1.31

• Tầng ứng dụng: Tất cả các ứng dụng, bao gồm ứng dụng sẵn có và

ứng dụng từ nhà cung cấp thứ 3 được xếp vào tàng ứng dụng với cùng một
thư viện các giao diện lập trình(API). Tầng ứng dụng chạy trong Android

Runtime (Dalvik) sử dụng các lớp và dịch vụ có sẵn trong lớp ứng dụng
khung.
1.32

♦> Kiến trúc ứng dụng trên Android
1.33

Kiến trúc của Android khuyến khích khái niệm Thành phần sử dụng

lại, cho phép công bố và chia sẻ các Activity, Service, dữ liệu, với các ứng dụng khác
với quyền truy cập được quản lý bởi khai báo. Cơ chế đó cho phép người lập trình
tạo ra một trình quản lý danh bạ hoặc trình quay số điện thoại mà có các thành phần
người khác có thể tạo mới giao diện và mở rộng chức năng thay vì tạo lại chứng.
1.34

Những dịch vụ sau là những dịch vụ kiến trúc cơ bản nhất của tất cả các ứng

dụng, cung cấp một framework cho mọi mọi phần mềm được xây dựng:
- Actitvity Manager: Điều khiển vòng đời của các Activity bao gồm cả quản lý
các tang Activity.
- Views: Được sử dụng để tạo lập cá giao diện người dùng cho các Activity
- Notification Mamager: Cung cấp một cơ chế cố định và quy củ cho việc gửi
các thông báo đến người dùng.
- Content Provider: Cho phép ứng dụng chia sẻ dữ liệu giữa các ứng dụng.
- Resource Manager: Hỗ trợ các thành phàn không thuộc mã nguồn như là
chuỗi ký tự, đồ họa được đặt bên ngoài.
1.35

❖ Các thư viện trên Android


1.36

Android cung cấp một số các APIs cho phát triển ứng dụng. Danh sách

các API cơ bản sau được cung cấp bởi tất cả các thiết bị trên nền Android:
1.37

- android.util: Gói tiện ích cơ bản bao gồm nhiều lớp mức thấp như là

các lớp quản lý (List, Stack...) lóp xử lý chuỗi, lớp xử lý XML


1.38

android.os Gói hệ điều hành cung cấp truy cập đến các dịch vụ cơ bản

như là chuyển tin nhắn, thông tin chéo, đồng hồ và gỡ lỗi.
1.39 android.graphics Cung cấp các lớp đồ họa mức thấp thực hiện các chức
1.40

năng đồ họa, màu, vẽ cơ bản.

1.41

android.text Công cụ hiển thị và xử lý văn bản

1.42

android.database Cung cấp các lớp mức thất bắt buộc cho việc điều


khiển cursor khi làm việc với các cơ sở dữ liệu
1.43

android.content Các giao tiếp lập trình nội dung được dùng để quản lý

truy cập dữ liệu và xuất bản bằng cách cung cấp các dịch vụ thao tác với tài
nguyên, Content Provider, và các gói
1.44

android.view View là lớp giao diện người dùng cơ bản nhất. Tất cả giao

diện người dùng được tạo ra đều phải sử dụng một tập các View để cung cấp
cho các thành phần tương tác người dùng.
1.45

android.widget Xây dựng dựa trên gói View. Những lớp Widget những

thành phàn giao diện được tạo sẵn được sử dụng để tạo nên giao diện người
dùng. Các Widget bao gồm danh sách, nút bấm, hộp nhập, các kiểu trình
bày(layout) com.google.android.maps bộ API mức cao cung cấp truy cập đến
điều khiển bản đồ sẵn trong Android từ ứng dụng được xây dựng. Bao gồm cả
lớp MapView cũng như Overlay và MapController để tương tác với bản đồ
bên trong ứng dụng.
1.46

android.app Một gói thư viện bậc cao, cung cấp truy cập đến dữ liệu

của ứng dụng. Gói ứng dụng cũng bao gồm lớp Activity và Service là thành
phàn cơ bản của mọi ứng dụng Android.
1.47


Androỉd.provỉder Để tạo thuận lợi cho người phát triển truy cập đến

các Content Provider tiêu chuẩn(như là dữ liệu danh bạ), gói Cung cấp
(Provider) bao gồm các lớp cho phép truy cập đến cơ sở dữ liệu chuẩn trong
tất cả các bản phân phối Android.


- Android.telephony Các API điện đàm cung cấp khả năng tương tác trực tiếp
với tầng điện thoại trong các thiết bị, cho phép tạo, nhận, theo dõi các cuộc
gọi, tình trạng các cuộc gọi và tin nhắn SMS.
- android.webkit Gói WebKit cung cấp các API để làm việc với các nội dung
Web-based bao gồm một lop WebView để tạo ra giao diên web, nhúng trong
ứng dụng và một trình quản lý cookie.
- Cùng với các API của Android, còn có một tập các thư viện C/C++ như:
1.48

o OpenGL Thư viện dừng để tạo ra các đồ họa 3D dựa vào

chuẩn OpenGLES 1.0 API
1.49

o FreeType Hỗ trợ xử lý bitmap và font vector o GGL Thư viện

cơ bản, dùng để cung cấp các engine đồ họa 2D o Libe Thư viện c chuẩn,
được tối ưu cho các thiết bị Linux-based o SQLite Engine cơ sở dữ liệu
quan hệ gọn nhẹ, dùng để lưu trữ dữ liệu của ứng dụng
1.50

o SSL Hỗ trợ sử dụng giao thức mã hóa Secure Sockets Layer


trong bảo mật truyền thông Internet
- Ngoài các thư viện chuẩn của Android, để đáp ứng tiêu chí phù họp với nhiều
thiết bị khác nhau, Android còn có thể có các API phụ thuộc thiết bị như
android.location,

androỉd.medỉa,

android.opengl,

android.hardware,

android.bluetooth, android.net.wifi, và android.telephony.

1.51 ❖ Các thành phần của ứng dụng
Android • Activity
1.52

Một Activity là đại diện cho một giao diện người dùng, tiếp nhận

tương tác người dùng với ứng dụng. Ví dụ một Activity có thể là một danh sách các
mục mà người dùng có thể chọn lựa hoặc là một của sổ trình diễn ảnh với các thông
tin khác. Một ứng dụng có thể có một hoặc nhiều Activity. Việc di chuyển giữa các
Activity được thực hiện bằng cách từ Activity hiện tại mở ra Activity mới Giao diện
của Activity được quy định bởi một đối tượng View có trật tự. Một View là một vùng
hình chữ nhật bên trong cửa sổ màn hình. Một View cũng có thể chứa nhiều View


khác. View có thể được tạo mới thông qua việc thừa kế lớp View hoặc khai báo
thông qua file XML.

1.53
-

Một activity có 3 trạng thái chính:

Active hoặc running khi nó ở trên nhất màn hình và nhận tưomg tác người

dùng
-

Paused khi Activity không còn là trọng tâm trên màn hình nhưng vẫn hiện thị

trước người dùng.
-

Stopped Khi một activity hoàn toàn bị che khuất, nó sẽ rơi vào trạng thái

Stopped. Tuy nhiên, nó vẫn còn lưu trữ toàn bộ thông tin trạng thái. Và nó
thường bị hệ thống đóng lại khi có tình trạng thiếu bộ nhớ.
1.54

Khi chuyển giữa các trạng thái, ứng dụng sẽ gọi các hàm callback ứng với các

bước chuyển:
■ void onCreate(Bundle savedlnstanceState)
■ void onStart()
■ void onRestartO
■ void onResume()
■ void onPause()
■ void onStopO

■ void onDestroyO


1.55
1.56
1.57
1.58
1.59
1.60
1.61
1.62
1.63
1.64
1.65
1.66
1.67
1.68
1.69
1.70
1.71
1.72
1.73
1.74
1.75
1.76
1.77
1.78
1.79
1.80
1.81

1.82
1.83
1.84
1.85

Hình 1.2 Sơ đồ chuyển trạng thái của Activity


1.86

• Service

1.87

Một Service không cỏ giao diện và chạy ngầm trong khoảng thời gian không

xác định. Ví dụ, một Service có thể chơi nhạc ở chế độ ngầm khi người dùng chuyển ra
khỏi trình nghe nhạc. Mỗi Service đề được mở rộng từ lớp cơ sở là Service ừong gói
android.app. cỏ thể kết nối tới hoặc kích hoạt một Service thông qua interface mà Service
được tạo ra.
1.88

Cũng giống như Activity và cũng và những thành phần khác, các dịch vụ chạy
*
OrlLldbindfl
trong luồng chính của ứng dụng.
1.89

Vòng đời của một service
1.90


•f

/ Service 19 \
f Service s \ l'
cheated by 1
smarted by
V
tn™iSe.ív*oe()
V siiinServíceO
J
1.91
Hình 1.3 Sơ đồ chuyển trạng thái của
J
_________3
Service •[Broadcast
\
________ receiver
QnO*
1.92 Mộtỉatetì
Broadcast receiver là một thành phần mà không
làm gì khác ngoài việc nhện
onCrt
iateQ
1
các thông báo được broadcast. Một
1 ứng dụng có thể có nhiều

t
OíìSí

Ofi&
arto
ndf)
1
ì
/ Serv
QBfi Sterna» wfm
l_r
onftfttnd
SỠTVICỬ
ee 4
Q ---1----ilr>0 J
77it? service is


1.93

broadcast receiver để đáp lại những thông báo được phát đến. Tất cả các broadcast

receiver được thừa kế từ lớp cơ sở BroadcastReceiver. Một Broadcast receiver không có
giao diện nhưng nó có thể thực hiện gọi một Activity hay là sử dụng NotificationManager
để thông báo cho người dùng.


Content Provider
1.94

Một Content Provider tạo ra một tập các dữ liệu cụ thể nào đó của ứng dụng

cung cấp cho các ứng dụng khác. Các lớp Content Provider thừa kế từ cơ sở

ContentProvider để cài đặt một số hàm tiêu chuẩn cho phép ứng dụng khác nhận và lưu
trữ dữ liệu.


Manifest file
1.95

File AndroidManifest.xml là file có cấu trúc XML được dùng để khai báo

các thành phần trong ứng dụng Android. Nó cũng là nơi để khai báo các quyền truy cập
của ứng dụng cũng như các thư viện cần thiết.


Các thành phần khác
1.96

Ngoài các thành phần chính ở trên, còn có các thành phần khác như

Resource bao gồm các file đồ họa, âm thanh, string,... và các thư viện do nhà cung cấp thứ
1.97

1.2 Giới thiệu về ASP.NET MVC

1.2.1 ASP.NET
1.98

❖ Đặc điểm của ASP.NET


1.99


ASP.NET có tên đầy đủ là Active Server Page .NET. ASP.NET là mô hình

phát triển ứng dụng Web họp nhất bao gồm nhiều dịch vu cho phép xây dựng các ứng
dụng Web tiên tiến với số code nhỏ nhất. ASP.NET là một phần của .NET Framework, khi
lập trình với ASP.NET người lập trình có thể sử dụng các thự viện của .NET Framework.
ASP.NET hỗ trợ lập trình với nhiều ngôn ngữ như là MS Visual Basic, c#, Jscript .NET và
J#, các ngôn ngữ này đều phảitương thích với “Common Language Runtime” (CLR). Các
ngôn ngữ đều được dịch ra mã IL. ASP.NET là ngôn ngữ lập trình hướng đối tượng sử
dụng các ngôn ngữ .NET. Nó cung cấp bộ các đối tượng nhỏ và thực sự là một tầng làm
việc trên nguyên lý của HTTP và HTML. Mã nguồn không được truy cập toàn bộ các đối
tượng trong .NET Framework nhưng có thể khai thác tất cả các quy ước của một môi
trường OOP (Object Oriented Programming). Thiết kế hướng đối tượng giúp tạo các lớp,
giao diện, kế thùa các lớp.
1.100

VB C-*--»- C# J Script

1.101 Common Language Specification
1.102 ASP.NET
1.103 Well Forms Web Services

Windows
Form

Mobile Internet Toolkil

1.104ADO.NET

and


3ÍML Base Class Library
Common I an guaye Runtime

1.105Operating System
1.106

Hình 1.4 Vị trí

của ASP.NET trong .NET Framework Một ứng dụng ASP.NET luôn luôn được biên dịch,
nó không chạy bằng mã của C# hoặc Visual Basic mà không được biên dịch trước. Một
ứng dụng ASP.NET thực sự được biên dịch thông qua 2 giai đoạn:
1.107

- Giai đoạn đầu tiên những các mã (C#, Visual Basic hoặc ngôn ngữ .NET

khác) được dịch bởi Microsoft Intermediate Language (MSIL). Giai đoạn dịch này


được dịch tự động khi trang web đầu tiên yêu cầu. Các file được dịch thành mã IL
(Intermediate Language Code).


-

Giai đoạn tiếp theo được dịch trước khi trang Web được thực thi. Tại giai đoạn này
mã IL được dịch thành bản mã máy (Native Machine Code). Giai đoạn này được
gọi là Just-In-Time (JIT).
1.108 Điều trọng nhất của công cụ ASP.NET là nó chạy trong môi thời gian thực


(Runtime) của CLR (Common Language Runtime). CLR là máy ảo (virtual machine)
trong Microsoft .NET, do có ngôn ngữ trung gian IL nên việc phát triển ứng dụng trên
.NET sẽ không bị phụ thuộc vào thiết bị, có nghĩa là ứng dụng .NET có thể chạy trên bất
kỳ thiết bị nào có .NET Framework. Tất cả các namespace, các ứng dụng, các lớp trong
bộ .NET Framework được gọi tắt là bộ quản lý mã. CLR cũng cung cấp các dịch vụ quan
trọng khác như:
-

Quản lý bộ nhớ

-

Thu nhặt rác trong bộ nhớ

-

Quản lý các luồng

-

Xử lý ngoại lệ

-

Bảo mật

1.109

Mọi sự cài đặt .NET Framework đều cung cấp các lớp như nhau. Để triển


khai ứng dụng ASP.NET chỉ cần sao chép các tập tin vào thư mục ảo trên máy chủ
(server) và máy chỉ chỉ càn có .NET Framework. Việc cấu hình dễ dàng đơn giản không
phụ thuộc vào IIS (Internet Information Services), cấu hình trong ASP.NET được đặt
trong file web.config. File web.config được để cùng với thư mực chứa trang web. File
web.config không bao giờ bị khóa, Nó có thể truy cập bất kỳ lúc nào, việc sửa file này
hoàn toàn dễ dàng vì chúng được lưu dưới dạng XML.
1.110

• LINQ

1.111

LINQ (Language Integrated Query) đưa ra khả năng lập trình mới trong

■NET. Giải pháp lập trình họp nhất, đem đến khả năng truy vấn dữ liệu theo cú pháp SQL
trực tiếp trong C# hay VB.NET, áp dụng cho tất cả các dạng dữ liệu từ đối tượng đến Cơ
sở dữ liệu quan hệ và XML.


1.26------------------------------- f

---------------------------1.30 c# VB.NET
1.33___^_______ __ ____

1.36

1.29
1.28
--1.31
Hiers□ 1.351.32

__¿
1.34

1.112
1.37

1.113
1.114 Hình 1.5 Cấu trúc LINQ
1.115 ❖ Khái niệm MVC
1.116

MVC là một mô hìiứi kiến trúc phần mềm. Khỉ sử dụng đúng cách, mô

hình MVC giúp cho người phát triển phần mềm độc lập các nguyên tắc nghiệp vụ và
giao diện người dùng một cách rõ ràng hơn. Phần mềm phát triển theo mô hình
MVC tạo nhiều thuận lợi cho việc bảo trì nâng cấp và sửa chữa vì các thành phần
riêng biệt ít liên quan với nhau.
1.117

Kiến trúc của MVC bao gồm 3 thành phần cơ bản: Model, View, và

Control trong đó:
1.118

• Model: Được giao nhiệm vụ cung cấp dữ liệu cho cơ sở dữ liệu và

lưu dữ liệu vào các kho chứa dữ liệu. Tất cả các nghiệp vụ logic được thực thi
ở Model. Dữ liệu vào từ người dùng sẽ thông qua View đến Controller và



được kiểm tra ở Model trước khi lưu vào cơ sở dữ liệu. Việc truy xuất, xác
nhận, và lưu dữ liệu là một phần của Model.




View : View là phần giao diện với người dùng, bao gồm việc hiện dữ liệu ra
màn hình, cung cấp các menu, nút bấm, hộp đôi thoại, chọn lựa..., để người
dùng có thể thêm sửa xóa, tìm kiếm và thực hiện các thao tác khác đối với dữ
liệu trong hệ thống... Thông thường các thông tin cần hiển thị lấy từ thành
phần Models.



Controller (Tầng điều khiển): là phần điều khiển củâ ứng dụng, điều hướng
các nhiệm vụ đến đúng phương thức (method) có chức năng xử lí nhiệm vụ
đó. Nó chịu trách nhiệm xử lí các tác động về mặt gỉao diện, các thao tác đối
với models, và cuối cùng là chọn một View thích hợp để hiển thị ra màn hình.

1.119

MVC chia nhỏ quá trình xử lý của một ứng dụng, giúp người lập trình

làm việc trên từng thành phần riêng lẻ, không ảnh hưởng đến các thành phần khác
giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp.
1.120 Usually
1.121 persisted to a relational database perhaps via repositories
1.122 Lợi ích to lớn của phương pháp MVC là giúp chia chương trình ra thành các phần
riêng lẻ, tạo ra sự minh bạch giữa dữ liệu, điều khiển, và hiển thị. Điều này khiến cho việc
kiểm thử, bảo trì một hệ thống MVC dễ dàng và tiết kiệm hơn nhiều.

1.123 ❖ Một số vấn đề về ASP.NET MVC ❖ Cấu trúc một dự án trong visual Studio
1.124 Một project ASP.NET MVC ừong Visual Studio có cấu trúc như sau:


1.125

Solution Eiplorar

1.126 3 -I
1.127

*ụX

5olưtaon TrangMVCmau1

[2 projects] ă ,ặj IraftgMVCmay
> %Properties

1.128>■
^¿i References
1.129 L*u
Âpp_Dits ; □
Content ỉ_j
Ccnteclters
1.130
Ị> □ Models
> L_j Script
1.131
$- Ị_J Views
> Global.asax >■


¡¿i Web.eonfig
1.132
ề3
gMVCmuTetỉ lai
Properties ị* ReĩercriCH
1.133 Q

CữrttíủHẽrỉ


App‘1.134 Hình 1.7 Cấu trúc dự án ASP.NET MVC trong Visual Studio 2008
- /App Data Thường dùng để chứa các file dữ liệu, thường là các file *.mdf hoặc
*.mdb, cũng cỏ thể là cái file dữ liệu dạng xml.
- /bin. Thư mục chứa các file đã được bỉên dịch cũng như các thư viện tham
chiếu của ứng dụng
- /Content Thường được dùng để chứa các file tĩnh như là đồ họa, âm thanh
hoặcCSS.
- /Controllers Lưu trữ các lớp Controller (Các lớp thừa kế từ lớp cơ sơ là Controller hoặc
cài đặt giao diện IController).
- /Models Thư mục chứa các lớp model


1.135 -/Views. Đây là nơi lưu trữ các file View có phần mở rộng là *.aspx,
*.ascx. Mỗi file đều được chứa trong thư mục con tương ứng với tên của
Controller.
- /Views/Shared: Chứa các file template và không thuộc một Controller cụ thể nào
cả, ví dụ như file master page, file 404.html...
- Default.aspx: Không thực hiện một chức năng hiển thị nào cả, chỉ đon giản là file mặc

định để chỉ định vào cấu hình URL của ứng dụng
- Global.asax Lưu trữ các chỉ dẫn map URL, cũng như là cài đặt các quy định khởi động,
tắt ứng dụng khi càn thiết.
- Web.config Là file có cấu trúc XML, lưu trữ toàn bộ các cấu hình của ứng dụng.
❖ Truyền dữ liệu từ Controller sang View
1.136

Việc truyền Model từ Controller sang View có

thể thực hiện theo nhiều cách. Đơn giản là thực hiện gọi hàm: return View ("My View",
modelObject);

1.137 Nếu càn truyền nhiều dữ liệu khác, có thể sử dụng Mảng ViewData trong
Controller để truyền dữ liệu: VỉewData[“dataname”] = modelObject;
1.138 ViewData sẽ được truyền qua View và sử dụng trở lại bằng cách lấy giá trị của
VỉewData[“dataname ”].

❖ Dữ liệu động trong View của MVC
1.139 Các View được khai báo theo định dạng HTML. Vì thế không sẽ
không có được những ứng dụng tốt nếu như chỉ làm việc với các dữ liệu tĩnh. Có
nhiều cách để thêm dữ liệu động trong View của MVC. Có thể sử dụng Inline Code,
HTML helpers, Server controls, Partial views, và phương thức Html.RenderAction().
Trong đó sử dụng Inline code cho những phần nhỏ được khuyến khích trong
ASP.NET MVC. Inline code được đặt khai báo bằng thẻ <% %>. Ví dụ khi viết mã
trong HTML là:
1.140 <h 1 >Information about <%= ModeLName %></hỉ>.
1.3 Giói thiệu về Google Maps


1.141 Hiện tại, có nhiều nhà cung cấp dịch vụ bản đồ trực tuyến miễn phí

như là Google, Yahoo, Microsoft, và Amazon... Google là hãng cung cấp dịch vụ tốt
nhất với sản phẩm Google Maps với nhiều chức năng bản đồ cũng như cung cấp các
APIs mở. Nhiều hạn chế trong các sản phNn bản đồ nền Web-based đã được Google
Maps khắc phục. Để hiểu làm cách nào mà công nghệ này có khả năng thay đổi cách
thức tạo bản đồ số chứng ta sẽ tìm hiểu qua cách tiếp cận cổ điển trong xuất bản bản
đồ môi Web. Bản đồ Web cổ điển dựa vào cơ sở hạ tầng phức tạp của dữ liệu, phần
cứng, phần mềm và nguồn lực con người.
1.142 Dữ liệu trong ứng dụng bản đồ Web cổ điển có thể chia làm 2 danh
mục riêng biệt: dữ liệu cơ sở và dữ liệu của ứng dụng. Dữ liệu cơ sở, hay dữ liệu nền
thường bao gồm dữ liệu địa lý và thường có nhiều lớp như là lớp khí quyển, ảnh,
đường và các đường biên lãnh thổ. Dữ liệu cụ thể của ứng dụng bao gồm các tàng dữ
liệu cụ thể cho ứng dụng được phát triển. Ví dụ, một ứng dụng bản đồ Web cho một
thành phố thì sẽ có các lớp như là các vùng trực thuộc, vị trí các học, các công trình
công cộng, và nhiều lớp khác. Mỗi lớp dữ liệu này phải được định vị và lưu trữ trên
máy chủ bởi chính tổ chức đó và nó càn được cập nhật định kỳ. Với Google Maps,
sẽ không còn phải định vị và quản lý dữ liệu cơ sở nữa. Dữ liệu vùng, đường đã đi
kèm trong Google Maps. Tuy nhiên, người sử dụng cũng càn phải quản lý ứng dụng
của mình bằng dữ liệu XML hoặc là các định dạng khác. Không chỉ có các yêu cầu
dữ liệu phức tạp, các ứng dụng bản đồ cổ điển còn có các vấn đề với phàn cứng phàn
mềm và sức lực con người. Phải mua thêm phàn cứng và phần mềm, cũng như cần
có sự quản lý của con người để cài đặt bảo trì, quản trị phần mềm, lập trình tạo ra
ứng dụng. Tuy không hoàn toàn loại bỏ các yêu càu phàn cứng và phàn mềm, nhưng
chúng đã được giảm thiểu đáng kể với Google Maps, vẫn cần phần cứng để triển
khai ứng dụng nhưng yêu cầu phần mềm thì đã được hạn chế một cách tối đa.
Google Maps là sản phNn miễn phí, không cần cài
1.143 đặt, hay quản lý. Sản phNn hỗ trợ các APIs để tạo ra các chức năng tùy biến
của ứng dụng.



×