Tải bản đầy đủ (.pdf) (57 trang)

Nghiên cứu công nghệ phát triển ứng dụng nhanh trên nền web trong bộ công an

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 (1.54 MB, 57 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

TRẦN ĐỨC HÙNG

NGHIÊN CỨU CÔNG NGHỆ
PHÁT TRIỂN ỨNG DỤNG NHANH
TRÊN NỀN WEB TRONG BỘ CÔNG AN

LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN

HÀ NỘI - 2013


ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

TRẦN ĐỨC HÙNG

NGHIÊN CỨU CÔNG NGHỆ
PHÁT TRIỂN ỨNG DỤNG NHANH
TRÊN NỀN WEB TRONG BỘ CÔNG AN

Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60 48 05

LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN
NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. TRƢƠNG ANH HOÀNG



HÀ NỘI - 2013
1


MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................................... 2
LỜI CẢM ƠN............................................................................................................................. 2
MỤC LỤC .................................................................................................................................. 2
DANH MỤC CÁC HÌNH VẼ .................................................................................................... 4
DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT .................................................................. 5
DANH MỤC CÁC BẢNG ......................................................................................................... 6
MỞ ĐẦU .................................................................................................................................... 7
CHƢƠNG I: QUY TRÌNH PHÁT TRIỂN ỨNG DỤNG NHANH VÀ CÁC CÔNG NGHỆ
PHÁT TRIỂN ỨNG DỤNG NHANH TRÊN WEB ................................................................ 10
1.1 Quy trình phát triển ứng dụng nhanh ........................................................................ 10
1.2 Một số nền tảng giúp phát triển nhanh ứng dụng ..................................................... 11
1.2.1 NetBeans IDE .......................................................................................................... 11
1.2.2 Delphi ...................................................................................................................... 12
1.2.3 Visual Studio LightSwitch ...................................................................................... 12
1.2.4 Google Form ............................................................................................................ 13
1.2.5 Wufoo ...................................................................................................................... 13
1.2.6 Microsoft Dynamics CRM ...................................................................................... 14
1.2.7 Microsoft SharePoint ............................................................................................... 14
1.2.8 CodeIgniter .............................................................................................................. 15
1.2.9 Yii ............................................................................................................................ 16
1.3 Đề xuất công nghệ phù hợp để phát triển nhanh ứng dụng trong Bộ Công an ...... 17
CHƢƠNG II – VISUAL STUDIO LIGHTSWITCH............................................................... 20
2.1 Visual Stuidio LightSwitch là gì .................................................................................. 20
2.2 Các đặc điểm của LightSwitch .................................................................................... 20

2.2.1 Phƣơng pháp tiếp cận hiện đại................................................................................. 20
2.2.2 Khả năng tùy biến cao ............................................................................................. 21
2.2.3 Khả năng tạo sẵn kịch bản ....................................................................................... 21
2.2.4 Khả năng mô hình hóa ứng dụng............................................................................. 22
2.2.5 Tính khả mở............................................................................................................. 22
2.3 Nền tảng công nghệ trong ứng dụng LightSwitch ..................................................... 23
2.3.1 Kiến trúc ứng dụng 3 lớp ......................................................................................... 23
2.3.2 Lớp Trình diễn ......................................................................................................... 24
2.3.3 Lớp Logic ................................................................................................................ 27
2.3.4 Lớp Dữ liệu.............................................................................................................. 31
CHƢƠNG III: ÁP DỤNG LIGHTSWTICH XÂY DỰNG ỨNG DỤNG QUẢN LÝ TAI
NẠN GIAO THÔNG ............................................................................................................... 35
3.1 Giới thiệu bài toàn Quản lý Tai nạn Giao thông ....................................................... 35
3.2 Yêu cầu ứng dụng Quản lý Tai nạn Giao thông ........................................................ 36
3.3 Phân tích hệ thống ........................................................................................................ 37
3.3.1 Biểu đồ Usecase mức tổng quát .............................................................................. 37
3.3.2 Phân rã các Usecase mức 1...................................................................................... 39
3.3.3 Biểu đồ lớp phân tích của hệ thống ......................................................................... 43
3.3.4 Mô hình liên kết cơ sở dữ liệu mức logic của hệ thống .......................................... 44
3.4 Áp dụng LightSwitch triển khai ứng dụng Quản lý Tai nạn Giao thông................ 44
3.4.1 Thiết kế cơ sở dữ liệu .............................................................................................. 45
3.4.2 Tạo các chức năng thêm, xóa, sửa dữ liệu của ứng dụng ........................................ 46
3.4.3 Tạo các chức năng Tìm kiếm dữ liệu ...................................................................... 47
3.4.4 Tạo báo cáo cho ứng dụng ....................................................................................... 49
2


3.4.5 Quản lý ngƣời dùng và phân quyền sử dụng ........................................................... 49
3.4.6 Xuất bản ứng dụng lên máy chủ Web ..................................................................... 50
3.4.7 Kết quả thử nghiệm ................................................................................................. 50

CHƢƠNG IV: ĐÁNH GIÁ, THẢO LUẬN VÀ KẾT LUẬN ................................................. 52
4.1 Đánh giá và thảo luận................................................................................................... 52
4.2 Kết luận ......................................................................................................................... 54
TÀI LIỆU THAM KHẢO ........................................................................................................ 56

3


DANH MỤC CÁC HÌNH VẼ
Hình 2.1: Mô hình dữ liệu 3 lớp ....................................................................................23
Hình 2.2: Mô hình 3 lớp của ứng dụng LightSwitch ....................................................24
Hình 2.3: Các thành phần của lớp giao diện là ứng dụng Silverlight ...........................25
Hình 2.4: Ví dụ về dịch vụ dữ liệu Northwind ..............................................................28
Hình 3.1: File Excel biểu mẫu thống kê ........................................................................36
Hình 3.2: Biểu đồ Usecase mức tổng quát. ...................................................................39
Hình 3.3: Phân rã Usecase QuanlyVuTaiNanGT ..........................................................40
Hình 3.4: Phân rã Usecase TimkiemVuTainanGT ........................................................41
Hình 3.5: Phân rã Usecase QuanlyDanhmuc ................................................................42
Hình 3.6: Phân rã Usecase QuantriHethong ..................................................................43
Hình 3.7: Biểu đồ phân tích lớp của hệ thống ...............................................................43
Hình 3.8: Mô hình liên kết cơ sở dữ liệu mức logic......................................................44
Hình 3.9: Mối quan hệ giữa bảng TaiNanGiaoThong và bảng Tinhchat. ....................45
Hình 3.10: Sơ đồ quan hệ dữ liệu giữa các bảng dữ liệu của ứng dụng ........................46
Hình 3.11: Màn hình nhập mới vụ Tai nạn Giao thông ................................................47
Hình 3.12: Cách tạo câu truy vấn cho chức năng Tìm kiếm tổng hợp. .........................48

4


DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT

Ký hiệu

Diễn giải

API

Application Programming Interface -Giao diện lập trình ứng
dụng

DOM

Document Object Model – Mô hình Đối tƣợng tài liệu (là một
loại giao diện lập trình ứng dụng)

GUI

Graphic User Interface - Giao diện ngƣời dùng đồ họa

IIS

Internet Information Services

JAD

Joint Application Design – Phƣơng pháp thiết kế phần mềm
liên kết

JSON

JavaScript Object Notation – Ký hiệu đối tƣợng JavaScript


LINQ

Language Integrated Query – Ngôn ngữ tích hợp truy vấn

LSML

LightSwitch-specific XML – Định dạng file XML theo kiểu
LightSwitch

MDI

Multiple Document Interface – Giao diện đa tài liệu

RAD

Rapid Application Development – Phát triển phần mềm nhanh

SDI

Single Document Interface – Giao diện tài liệu đơn

UDFs

User Defined Funtions – Hàm chức năng do ngƣời dùng tự
định nghĩa

WAN

Wide Area Network – Mạng diện rộng


WCF

Windowns Communication Foundation – Nền tảng giao tiếp
Windows

WPF

Windows Presentation Foundation - Nền tảng trình diễn
Windows

WYSIWYG

What You See Is What You Get - Giao diện tƣơng tác tức thời
– «thấy là lấy đƣợc»

5


DANH MỤC CÁC BẢNG
Bảng 1.1: So sánh khả năng đáp ứng của các công nghệ đối với yêu cầu ứng dụng
trong Bộ Công an ...........................................................................................................19
Bảng 3.1: Bảng vai trò tác nhân của hệ thống. ..............................................................38

6


MỞ ĐẦU
Trong những năm qua, Đảng ủy Công an Trung ƣơng và Lãnh đạo Bộ Công an
rất quan tâm đến việc ứng dụng Công nghệ Thông tin vào công tác Công an để nâng

cao hiệu quả công việc. Bộ đã ra nhiều nghị quyết, thông tƣ và văn bản chỉ đạo việc
tăng cƣờng việc ứng dụng công nghệ thông tin vào công tác Công an. Bên cạnh đó, Bộ
đã đầu tƣ và triển khai rất nhiều dự án xây dựng phần mềm dùng chung trong toàn
quốc nhƣ: Phần mềm Quản lý Vụ việc, phần mềm Quản lý Số liệu Điều tra Cơ bản,
phần mềm Quản lý Thông tin Điều tra, phần mềm Quản lý Thông tin Tố giác Tội
phạm .... Tuy nhiên thực tế triển khai các phần mềm này đều không đạt yêu cầu đặt ra,
hiệu quả mang lại không cao, gây lãng phí đầu tƣ rất lớn.
Có rất nhiều nguyên nhân làm cho các dự án xây dựng phần mềm dùng chung
trong Bộ Công an không thành công, trong đó có thể kể đến các nguyên nhân sau:
- Đa phần các dự án xây dựng phần mềm đã và đang triển khai đều thuê các công
ty ngoài Ngành xây dựng và phát triển. Do không có kiến thức đầy đủ về nghiệp vụ
Ngành Công an nên các công ty xây dựng các chức năng hệ thống không đáp ứng đầy
đủ các yêu cầu nghiệp vụ, quy trình công tác, không sát với điều kiện thực tế. Điều này
dẫn đến các hệ thống đƣợc xây dựng không phục vụ hiệu quả công tác nghiệp vụ tại
những nơi triển khai.
- Thời gian thực hiện dự án thƣờng kéo dài so với kế hoạch, cá biệt có dự án kéo
dài tới hơn 10 năm nên các hệ thống phần mềm đều bị lạc hậu về mặt công nghệ khi
triển khai. Cùng với sự phát triển nhanh chóng của kinh tế xã hội, những quy định
hành chính, quy trình nghiệp vụ của Ngành cũng thay đổi theo. Thời gian phát triển dự
án kéo dài dẫn đến việc khi dự án phần mềm đƣợc hoàn thành thì các yêu cầu nghiệp
vụ nguyên thủy, các mục tiêu ban đầu, các chức năng chính của phần mềm có những
sai khác so với thời điểm triển khai, đặc biệt có những sai khác làm cho một số hệ
thống phần mềm không còn khả thi khi triển khai.
- Các dự án công nghệ thông tin do công ty ngoài thuê thƣờng gặp sự phản ứng
tiêu cực, không hợp tác của các cán bộ nghiệp vụ tại nơi định triển khai, ảnh hƣởng
lớn đến giai đoạn xác định yêu cầu nghiệp vụ của hệ thống đang xây dựng.
- Thông thƣờng, các dự án sau khi triển khai chỉ nhận đƣợc sự hỗ trợ, bảo dƣỡng
của đối tác xây dựng trong 1 năm. Sau thời gian này, những thay đổi về quy trình công
tác, quy trình nghiệp vụ không đƣợc hỗ trợ cập nhật trong phần mềm dẫn dến phần
mềm không đáp ứng đƣợc yêu cầu thực tế.

- Trình độ, năng lực của cán bộ làm công nghệ thông tin trong Bộ Công an còn
hạn chế, không tự phát triển các hệ thống thông tin trong Ngành. Tình trạng chảy máu
7


chất xám đã và đang diễn ra trong Ngành Công an do chính sách cán bộ, lƣơng thƣởng
của Ngành đối với các cán bộ làm công nghệ thông tin đang còn nhiều bất cập, không
theo kịp và tƣơng xứng với sự phát triển nhanh chóng của nền kinh tế. Những cán bộ
có năng lực, trình độ sau thời gian công tác trong Ngành có xu hƣớng xin ra ngoài
Ngành để làm việc cho các công ty tƣ nhân có chế độ đãi ngộ tốt hơn. Ngƣợc lại, nhiều
ngƣời có trình độ năng lực hạn chế lại tìm cách để đƣợc tuyển chọn vào Ngành. Thực
trạng này dẫn đến chất lƣợng, trình độ cán bộ làm công nghệ thông tin trong Ngành
không đồng đều, mặt bằng chung còn thấp so với các công ty ngoài Ngành.
Từ những nguyên nhân trên cho thấy, để dự án xây dựng phần mềm trong Ngành
Công an có tỷ lệ thành công cao thì:
- Phải do chính các cán bộ công an làm công nghệ thông tin trong Ngành tự xây
dựng và phát triển, khi đó hệ thống thông tin mới bám sát đƣợc yêu cầu nghiệp vụ, đáp
ứng đƣợc yêu cầu của công tác thực tế. Bộ phận xây dựng phát triển hệ thống có điều
kiện theo sát sự phát triển và thay đổi của hệ thống phần mềm đƣợc triển khai.
- Thời gian phát triển dự án phải rút ngắn, phải có ngay hệ thống chạy thử
nghiệm và việc chạy thử nghiệm phải qua nhiều giai đoạn cho tới khi đạt đƣợc hệ
thống mong muốn.
- Các dự án phải đƣợc xây dựng bằng các công nghệ hiện đại, đáp ứng đƣợc các
thay đổi trong yêu cầu nghiệp vụ, đáp ứng linh hoạt nền tảng cơ sở hạ tầng công nghệ
thông tin tại nơi triển khai.
- Các phần mềm phải đƣợc xây dựng trên nền Web để có thể triển khai dễ dàng
trên mạng nội bộ của Ngành, đặc biệt là các phần mềm dùng chung cho toàn Ngành
khi phạm vi triển khai là trên toàn quốc.
Nhu cầu thực tế trong Bộ Công an đòi hỏi phải có một công nghệ xây dựng phần
mềm nhanh, thích hợp cho việc phát triển các ứng dụng phù hợp với các điều kiện đặc

thù của Ngành, thích hợp với trình độ của cán bộ làm công nghệ thông tin trong Bộ
Công an. Xuất phát từ nhu cầu trên, mục tiêu của Luận văn là nghiên cứu công nghệ
phát triển ứng dụng nhanh trên nền Web phù hợp với các yêu cầu thực tiễn của Bộ
Công an nhƣ đã tóm tắt ở trên.
Phạm vi nghiên cứu: Luận văn sẽ nghiên cứu các công nghệ phát triển ứng dụng
nhanh trên nền Web hiện nay, phân tích, đánh giá ƣu nhƣợc điểm của các công nghệ
để đƣa ra công nghệ phù hợp cho việc phát triển ứng dụng trong Ngành Công an.
Phần còn lại của luận văn sẽ bao gồm các chƣơng sau:

8


Chương 1: Trình bày về quy trình phát triển nhanh phần mềm và các công nghệ
phát triển ứng dụng nhanh trên nền Web. Đề xuất công nghệ phù hợp với việc phát
triển ứng dụng trong Ngành Công an.
Chương 2: Trình bày tổng quan về LightSwitch, các đặc điểm của LightSwitch,
đi sâu vào kiến trúc và nền tảng công nghệ của LightSwitch.
Chương3: Đánh giá khả năng của LightSwitch thông qua việc áp dụng thử
nghiệm công nghệ LightSwitch trong việc xây dựng hệ thống Quản lý Tai nạn giao
thông toàn quốc.
Chương 4: Đƣa ra những đánh giá, thảo luận và kết luận cho toàn bộ quá trình
nghiên cứu đề tài.

9


CHƢƠNG I: QUY TRÌNH PHÁT TRIỂN ỨNG DỤNG NHANH VÀ CÁC
CÔNG NGHỆ PHÁT TRIỂN ỨNG DỤNG NHANH TRÊN WEB
1.1 Quy trình phát triển ứng dụng nhanh
Phát triển ứng dụng nhanh (RAD) là một quy trình phát triển phần mềm sử

dụng các phƣơng án mẫu và các kế hoạch ngắn hạn thay vì thiết kế toàn bộ ứng dụng
nhƣ mô hình thác nƣớc [8] .Trong quy trình RAD, các kế hoạch phát triển phần mềm
nói chung đều liên quan đến việc lập trình hay còn gọi là pha triển khai phần mềm.
Quy trình này rất hữu ích bởi vì nó có thể thúc đẩy việc phát triển phần mềm nhanh
hơn và tạo ra phần mềm dễ dàng thích nghi với sự thay đổi của môi trƣờng hơn là mô
hình thác nƣớc.
Thuật ngữ “phát triển phần mềm nhanh” đƣợc đƣa ra lần đầu vào năm 1991 bởi
James Martin [7] , ngƣời đã sử dụng nó để đặc tả quá trình phát triển phần mềm trong
đó nhấn mạnh đến phƣơng pháp lặp cho tất cả các pha phát triển, sử dụng các phƣơng
án mẫu nhƣ là các bƣớc đầu tiên của quá trình triển khai phần mềm.
RAD không phải là một phƣơng pháp phát triển phần mềm riêng lẻ. Nó đại diện
cho tập các phƣơng pháp dựa chủ yếu vào vòng lặp và phƣơng án mẫu. RAD có rất
nhiều dạng, bao gồm cả các phƣơng pháp phát triển phần mềm Agile nhƣ Scrum, Lập
trình XP, phƣơng pháp phát triển phần mềm tinh gọn, hay phƣơng pháp thiết kế phần
mềm liên kết (JAD) [8].
Sức mạnh chính của phƣơng pháp RAD là ngƣời phát triển có thể tránh một
khối lƣợng lớn việc chỉnh sửa trong các dự án phát triển phần mềm. Việc chỉnh sửa
thông thƣờng xảy ra theo hai trƣờng hợp sau:
 Ngƣời phát triển triển khai một phần của phần mềm bị sai hoặc có chất
lƣợng kém. Trong trƣờng hợp này ngƣời phát triển phải tiêu tốn tài
nguyên để sửa chữa.
 Ngƣời phát triển triển khai một phần của phần mềm nhƣng không đúng
kỳ vọng mà ngƣời dùng mong muốn. Khi đó ngƣời phát triển phải xây
dựng phần sai đó từ đầu.
Tất nhiên, RAD và các phƣơng pháp phát triển phần mềm Agile khác không
đảm bảo rằng ngƣời phát triển sẽ không tạo ra các phần mềm kém chất lƣợng và nhiều
lỗi. Tuy nhiên, chúng có thể giúp ngƣời phát triển giảm thiểu rủi ro trong việc xây
dựng các phần mềm lỗi. Bằng cách xây dựng các phƣơng án mẫu, ngƣời phát triển có
thể xác nhận rằng mình đang xây dựng lên các chức năng theo đúng kỳ vọng của
những ngƣời sử dụng mong muốn. Trong trƣờng hợp việc chỉnh sửa ứng dụng là bắt

10


buộc thì việc chỉnh sửa này cũng sẽ đỡ tốn kém hơn là phải tạo lại từ đầu một module
nào đó.
Trong một số trƣờng hợp, khi mà đặc tả yêu cầu đã đƣợc làm quá chi tiết thì
phƣơng án mẫu không giúp ích nhiều cho ngƣời phát triển trong quá trình phát triển
phần mềm. Nếu nhƣ vậy thì ngƣời phát triển có thể bỏ qua phƣơng án mẫu mà bắt tay
ngay vào pha thực thi để cho sản phẩm cuối cùng.
1.2 Một số nền tảng giúp phát triển nhanh ứng dụng
Ngày nay, có nhiều môi trƣờng và công cụ phát triển phần mềm hỗ trợ RAD.
Chúng đều hƣớng đến mục tiêu cung cấp các chức năng và tiện ích giúp kỹ sƣ phần
mềm phát triển ứng dụng theo cách linh hoạt và hiệu quả hơn. Một số công cụ có các
chức năng thiết kế trực quan (GUI) để sinh mã chƣơng trình tự động. Một số công cụ
sử dụng thƣ viện viết sẵn phong phú và cho phép mở rộng giúp giảm đáng kể công sức
lập trình. Nhiều công cụ sử dụng các hƣớng dẫn từng bƣớc (wizard) để đơn giản hóa
các quá trình phức tạp. Cùng với sự phát triển và ra đời của rất nhiều công nghệ, kỹ
thuật mới, các nhà phát triển phần mềm hy vọng các công cụ phát triển nhanh ngày
càng mạnh mẽ và hỗ trợ hầu hết các công nghệ hiện nay. Một số công cụ phát triển
nhanh ứng dụng Web tôi liệt kê sau đây mang tính đại diện là: NetBeans, Delphi,
Microsoft Dynamics CRM, Microsoft SharePoint và mới đây nhất là Visual Studio
LightSwitch, và một số tiện ích tạo ứng dụng web trực tuyến nhƣ Google Form,
Wufoo.
1.2.1 NetBeans IDE
NetBeans IDE [12] là một môi trƣờng phát triển ứng dụng tích hợp mã nguồn
mở do Sun Microsystems phát triển và đƣợc xem là một bộ công cụ phát triển ứng
dụng đa năng dành cho các nhà phát triển phần mềm. NetBeans IDE cho phép ngƣời
phát triển có thể tạo nhanh chóng các ứng dụng Java trên máy để bàn, trên điện thoại
di động và các ứng dụng Web cũng nhƣ các ứng dụng HTML 5. NetBeans cũng cung
cấp bộ công cụ khổng lồ cho các nhà phát triển ứng dụng bằng ngôn ngữ PHP và

C/C++. Với các trình thiết kế đồ họa GUI cho Java SE, HTML5, Java EE, PHP,
C/C++ trong NetBeans, ngƣời phát triển có thể tạo nhanh các ứng dụng chỉ bằng các
thao tác kéo thả và định nghĩa đối tƣợng. Với các ứng dụng Java SE, trình thiết kế GUI
còn tự động căn chỉnh và sửa lỗi khoảng cách trong quá trình soạn thảo.
NetBeans IDE hỗ trợ nhiều hệ điều hành khác nhau nhƣ Windows, Mac, Linux,
và Solaris. NetBeans IDE cung cấp nhiều tính năng mới nhƣ tìm kiếm trong toàn bộ
môi trƣờng lập trình gọi là QuickSearch, giao diện thận thiện với ngƣời dùng và tính
năng tự động biên dịch khi lƣu. Ngoài việc hỗ trợ Java mọi phiên bản (Java SE,Java
EE, Java ME), NetBeans IDE còn là công cụ lý tƣởng cho việc phát triển phần mềm
11


bằng các ngôn ngữ PHP, C/C++, Groovy and Grails, Ruby and Rails, AJAX và
JavaScript. Từ phiên bản 6.5 NetBeans còn tăng cƣờng hỗ trợ cho web framework
(Hibernate, Spring, JSF, JPA), trình ứng dụng máy chủ GlassFish và cơ sở dữ liệu. Với
tính năng mạnh mẽ, hỗ trợ các ngôn ngữ lập trình phổ dụng hiện nay, đặc biệt là Java,
NetBeans có thể sử dụng để phát triển các ứng dụng cho mọi môi trƣờng, mọi thiết bị.
NetBeans IDE là bộ công cụ mã nguồn mở, miễn phí và có cộng đồng ngƣời sử dụng
đông đảo trên thế giới.
1.2.2 Delphi
Delphi [8] đƣợc hãng Borland giới thiệu lần đầu tiên vào năm 1995. Tƣơng tự
nhƣ Visual Basic 6, Delphi đƣợc thiết kế là một công cụ phát triển nhanh ứng dụng.
Delphi sử dụng ngôn ngữ lập trình hƣớng đối tƣợng Object Pascal và là công cụ phát
triển nhanh ứng dụng đầu tiên có khả năng xây dựng ứng dụng 32 bit cho Windows.
Với thƣ viện thành phần trực quan khổng lồ của Delphi, ngƣời phát triển dễ dàng thiết
kế giao diện của ứng dụng chỉ bằng một vài thao tác nhấp chuột. Ngoài ra Delphi còn
cho phép ngƣời phát triển có thể tạo ra các thành phần mở rộng của riêng mình. Qua
rất nhiều thay đổi, phiên bản hiện tại của Delphi là Delphi XE5. Delphi XE 5 là công
cụ lập trình mạnh mẽ và trực quan, hiện đại. Delphi XE5 hỗ trợ hầu hết các công nghệ
thiết kế giao diện, kết nối và xử lý dữ liệu hiện nay. Với Delphi XE 5, ngƣời phát triển

có thể xây dựng nhanh các ứng dụng 32 lẫn 64 bit bao gồm cả ứng dụng để bàn đến
ứng dụng web và ứng dụng đám mây; các ứng dụng chạy trên rất nhiều nền tảng hệ
điều hành nhƣ Window, Linux, IOS, Android..; các ứng dụng cho các thiết bị khác
nhau từ máy để bàn đến các thiết bị di động. Tuy nhiên Delphi chƣa thật sự phổ biến ở
Việt Nam và rất khó tiếp cận đối với những ngƣời không chuyên về lập trình.
1.2.3 Visual Studio LightSwitch
Năm 2010 MicroSoft đã đƣa ra công cụ Visual Studio LightSwitch [1] dành
riêng cho việc xây dựng nhanh các ứng dụng quản lý dữ liệu. LightSwitch sử dụng nền
tảng công nghệ .NET, gói các thành phần .NET trong một lớp trừu tƣợng đã đƣợc tối
ƣu hóa cho việc quản lý và bảo dƣỡng dữ liệu. Bằng các công cụ trực quan của
LightSwitch, lập trình viên có thể xây dựng các ứng dụng quản lý dữ liệu một cách
nhanh chóng. Các giao diện ngƣời dùng với các tính năng xử lý dữ liệu thông thƣờng
đƣợc LigthSwitch sinh ra một cách tự động. Để tạo ra một ứng dụng ngƣời phát triển
chỉ cần lập trình các chức năng nghiệp vụ của ứng dụng hay thậm chí không cần lập
trình. Không chỉ dành cho các lập trình viên chuyên nghiệp, LightSwitch còn hƣớng
tới ngƣời sử dụng là những nhà phân tích kinh doanh hay các chuyên gia tƣ vấn công
nghệ, những ngƣời mà không phải lập trình hàng ngày.
LightSwitch có các ƣu điểm sau:
12


- LightSwitch xây dựng các ứng dụng chạy trên các môi trƣờng hiện đại nhƣ
Windows 7, Microsoft Server 2012 hay môi trƣờng đám mây Windows Azure.
- Các ứng dụng LightSwitch chạy trên nền tảng .NET nên rất mạnh mẽ.
- Ứng dụng LightSwitch vừa có thể đƣợc xây dựng để chạy trên máy tính để bản
hoặc trên nền Web mà không cần phải xây dựng lại ứng dụng.
- LightSwitch tạo ra các ứng dụng thích nghi với sự thay đổi môi trƣờng chạy,
các thay đổi về yêu cầu chức năng, về cơ sở dữ liệu.
LightSwitch có hạn chế đó là chỉ tƣơng thích với các môi trƣờng và công nghệ
của Microsoft.

1.2.4 Google Form
Google Form là một tiện ích trên Internet của Google cho phép ngƣời dùng có
thể tạo và quản lý thông tin theo form. Ngƣời sử dụng có thể nhanh chóng tạo cho
mình form quản lý thông tin trực tuyến trên Internet, sinh tự động các báo cáo, biểu đồ
theo các tiêu chí trên form. Ƣu điểm của Google Form là dễ dàng sử dụng, trực tuyến
trên Internet và miễn phí. Tuy nhiên Google Form chỉ dùng để quản lý thông tin trên 1
form, giá trị các trƣờng thông tin trên form là cố định. Nếu muốn thay đổi giá trị các
trƣờng thông tin ngƣời sử dụng lại phải thiết lập lại trên form nhập liệu. Cũng cần nói
thêm là có nhiều công cụ tƣơng tự Google Form khác nhƣ FormStack, MarchForm,
Icebrrg... nhƣng ở đây luận văn chỉ trình bày đại diện là Google Form với tính dễ sử
dụng và quen thuộc với phần lớn ngƣời sử dụng Internet.
1.2.5 Wufoo
Wufoo là một công cụ tạo và và quản lý thông tin trên form trực tuyến một cách
nhanh chóng và tiện lợi. Khi ngƣời sử dụng thiết kế một form, Wufoo tự động tạo ra
cơ sở dữ liệu tƣơng ứng. Wufoo cung cấp các kịch bản cần thiết để ngƣời phát triển có
thể nhập, cập nhật thông tin trên form đƣợc tạo ra. Wufoo cung cấp chức năng tạo báo
cáo một cách tự động dựa trên các trƣờng thông tin ngƣời sử dụng định nghĩa trên
form. Với Wufoo ngƣời phát triển có thể tạo ra một ứng dụng quản lý thông tin trực
tuyến sinh động, chuyên nghiệp và nhanh chóng. Tuy nhiên Wufoo chỉ cung cấp dịch
vụ trực tuyến trên Internet và là dịch vụ tính phí. Nếu sử dụng dịch vụ miễn phí ngƣời
phát triển chỉ có thể tạo tối đa 3 form và 3 báo cáo. Tƣơng tự nhƣ Wufoo cũng có một
số dịch vụ khác đã đƣợc chỉ ra ở phần 2.2.4 nhƣng luận văn chỉ trình bày một đại diện
đƣợc coi là mạnh nhất là Wufoo.

13


1.2.6 Microsoft Dynamics CRM
Microsoft Dynamics CRM [10] là một nền tảng phát triển nhanh ứng dụng của
Microsoft dành riêng cho các bài toán quản lý mối quan hệ khách hàng. Chính xác hơn

Dynamics CRM là bộ các giải pháp quản lý doanh nghiệp, hỗ trợ việc quản lý tài
chính, mối quan hệ với khách hàng và chuỗi cung ứng. Thông qua việc ứng dụng
Microsoft Dynamics CRM, doanh nghiệp có thể hợp lý hóa các quy trình nghiệp vụ,
tăng cƣờng hiệu suất phục vụ khách hàng, nâng cao mức độ chắc chắn trong việc đƣa
ra các quyết định trong khi vẫn đảm bảo mức độ bảo mật thông tin tốt nhất. Giải pháp
này đƣợc thiết kế để giải quyết các nhu cầu của doanh nghiệp trong nhiều lĩnh vực:
quản lý tài chính, phân tích quản lý nguồn nhân lực, quản lý dự án, quản lý chuỗi cung
ứng… Tùy từng doanh nghiệp và mục đích sử dụng, ngƣời phát triển sẽ tùy chỉnh và
thiết lập Dynamics CRM cho phù hợp với đặc thù kinh doanh và quy trình của doanh
nghiệp. Ngƣời phát triển có thể mở rộng chức năng của ứng dụng Dynamics CRM
bằng lập trình thông qua việc tạo ra các plug-ins, các mã scripts hay các trang web
Asp.net. Với Dynamics CRM ngƣời phát triển có thể nhanh chóng tạo ra các ứng dụng
quản lý mối quan hệ khách hàng đáp ứng nhu cầu của doanh nghiệp. Tuy nhiên để có
thể phát triển ứng dụng Dynamics CRM ngƣời phát triển cần có kiến thức phát triển
ứng dụng trong Dynamics CRM và phải có tƣ duy “nghĩ về mối quan hệ khách hàng”
[10].
1.2.7 Microsoft SharePoint
Đƣợc giới thiệu từ năm 2001, Microsoft SharePoint [2] là một sản phẩm rất đặc
biệt của Microsoft, SharePoint là một nền tảng của việc trao đổi thông tin và làm việc
cộng tác trong nội bộ doanh nghiệp và trên nền Web. SharePoint là giải pháp kết nối
và hỗ trợ ngƣời dùng chia sẻ thông tin tốt nhất, cho dù những thông tin đó nằm trong
mạng lƣới Intranet, Extranet của doanh nghiệp hay có thể chia sẻ ra bên ngoài Internet
cho cả khách hàng và đối tác.
SharePoint là nền tảng để phát triển những ứng dụng nhanh chóng, đáp ứng mọi
nhu cầu trong hoạt động kinh doanh, có thể là một ứng dụng nhỏ cho một nhóm hay
một phòng ban, hoặc có thể là những giải pháp doanh nghiệp tầm cỡ và phức tạp với
nhiều quy trình xử lý thông tin phức tạp, chỉnh sửa code hoặc tích hợp với các phần
mềm ứng dụng khác. SharePoint cung cấp các công cụ và thành phần cho phép ngƣời
phát triển tạo ra các ứng dụng đáp ứng nhu cầu ngh iê ̣p vu ̣ mô ̣t các nhanh chóng thông
qua viế t code hoă ̣c không cầ n phải viế t code.

SharePoint có các ƣu điểm sau:
- Cung cấ p các chƣ́c năng ta ̣o lâ ̣p các web site phu ̣c vu ̣ th eo các mu ̣c đić h khác
nhau, làm việc nhóm , Intranet, Extranet, Internet. Hỗ trơ ̣ viê ̣c truy câ ̣p bằ ng nhiề u loa ̣i
14


trình duyệt khác nhau. Tích hợp với các ứng dụng Microsoft Office , cho phép làm viê ̣c
với dƣ̃ liê ̣u trƣ̣c tuyế n , gián tuyến. Giao diê ̣n thân thiê ̣n nhƣ sƣ̉ du ̣ng Office 2007/2010
nên không mấ t nhiề u thời gian đào ta ̣o sƣ̉ du ̣ng.
- Cung cấ p các tính năng ma ̣ng xã hô ̣i

(Tagging, Tag Clound, Rating, Social

Bookmaking, Blogs, Wiki, My Sites , Profiles…) nhằ m c ho phép liên kế t thông tin ,
ngƣời dùng trong doanh nghiê ̣p mô ̣t cách dễ d àng, thuâ ̣n tiê ̣n để trao đổ i thông tin và
chia sẻ kiế n thƣ́c.
- Cung cấ p nhiề u tính năng phu ̣c vu ̣ cho tổ chƣ́c , phân loa ̣i, quản lý và khai thác
mọi loại nội dung có trong doanh nghiệ p (Kiể u nô ̣i dung, Siêu dƣ̃ liê ̣u, Tâ ̣p tài liê ̣u, Đa
trạng thái, lƣu trƣ̃, tài liệu đa phƣơng tiê ̣n – phim, âm thanh, ảnh…)
- Cung cấp các chức năng tìm kiếm tƣ̀ nhiề u nguồ n nô ̣i dung, tìm theo ngữ nghĩa,
xem trƣớc…
- Cung cấ p các tiń h năng để cho phép kế t nố i , tích hợp với nhiều nguồ n dƣ̃ liê ̣u
khác nhau có trong doanh nghiệp hoặc từ bên ngoài doanh nghiệp thông qua các dịch
vụ đi kèm nhƣ : Performance Point , Excel Services , Charts, Visio, Services, Web
analytics, SQL Server Integration…để ta ̣o và hình thành các bá o cáo số liê ̣u , thố ng kê
hiê ̣u suấ t…
Bên cạnh những ƣu điểm vƣợt trội, SharePoint có nhƣợc điểm là chi phí bản
quyền rất lớn và tính theo số ngƣời sử dụng nên việc phát triển rộng khắp là khó khăn
về chi phí đầu tƣ.
1.2.8 CodeIgniter

CodeIgniter [11] là một nền tảng ứng dụng web nguồn mở đƣợc dùng để xây
dựng các ứng dụng web bằng ngôn ngữ PHP. Nó cho phép các nhà phát triển xây dựng
một ứng dụng web nhanh hơn bằng cách cung cấp 1 bộ thƣ viện đầy đủ cho các tác vụ
thông thƣờng, cũng nhƣ cung cấp một mô hình tƣơng tác đơn giản và dễ hiểu cho việc
kết nối tới những bộ thƣ viện đó. Phiên bản chính thức đầu tiên của CodeIgniter đƣợc
công bố vào 28 tháng 2 năm 2006. Phiên bản mới nhất cho tới bây giờ là 2.1.4 đƣợc
công bố chính thức vào ngày 8 tháng 7 năm 2013. CodeIgniter có các ƣu điểm sau:
-Các ứng dụng CodeIgniter đƣợc thiết kế theo mô hình Model-View-Controller
(MVC), giúp cho việc thiết kế, xử lý và bảo trì mã nguồn dễ dàng, đồng thời tăng khả
năng mở rộng của phần mềm. CodeIgniter vận dụng mô hình này trong thiết kế,
giúp tách biệt các tập tin giao diện với các tập tin xử lý dữ liệu, nâng cao khả năng
quản lý và dễ bảo trì.

15


- CodeIgniter đƣợc đánh giá là một PHP framework có tốc độ nhanh nhất hiện
nay. Bằng cơ chế lƣu nội dung vào bộ đệm (cache), kiểm tra bộ đệm trƣớc khi tiến
hành thực hiện yêu cầu, CodeIgniter giảm số lần truy cập và xử lý dữ liệu, từ đó tối ƣu
hóa tốc độ tải trang.
- CodeIgniter là miễn phí, đƣợc phát hành dƣới giấy phép Apache/BSD mở
rộng, cho phép ngƣời dùng tự do thay đổi, phát triển và phân phối mã nguồn. Cấu trúc
URL của CodeIgniter rất thân thiện với các robot tìm kiếm.
- CodeIgniter cung cấp các thƣ viện phục vụ cho những tác vụ thƣờng gặp nhất
trong lập trình web, chẳng hạn nhƣ truy cập cơ sở dữ liệu, gửi email, kiểm tra dữ liệu,
quản lý session, xử lý ảnh…đến những chức năng nâng cao nhƣ XML-RPC, mã hóa,
bảo mật…
- Dễ tiếp cận đối với ngƣời bắt đầu lập trình PHP và có cộng đồng ngƣời sử
dụng rất lớn trên thế giới.
So sánh với nền tảng lập trình PHP khác nhƣ Zend hay Yii, CodeIgniter chƣa

hỗ trợ AJAX và các các module thực thi một số tác vụ thƣờng gặp trong quá trình xây
dựng ứng dụng web nhƣ chứng thực ngƣời dùng (User Authorization), trình phân tích
RSS (RSS Parser) hay trình xử lý PDF…
1.2.9 Yii
Cũng giống nhƣ CodeIgniter, Yii [4] là một nền tảng ngôn ngữ PHP nguồn mở
đƣợc dùng phát triển các ứng dụng Web dựa trên nền tảng thƣ viện thành phần. Yii
cho phép tái sử dụng tối đa các thành phần của hệ thống để tăng tốc độ viết ứng dụng.
Yii rất nhẹ và đƣợc trang bị giải pháp cache tối ƣu nên nó đặc biệt hữu dụng cho ứng
dụng Web có dung lƣợng dữ liệu trên đƣờng truyền lớn nhƣ web portal, forum, CMS,
e-commerce, v.v. Để phát triển với Yii, lập trình viên chỉ cần biết PHP và lập trình
hƣớng đối tƣợng. Lập trình viên có thể phát triển nhanh một ứng dụng Web theo 3
bƣớc sau đây:
- Lập trình viên tạo 1 cơ sở dữ liệu.
- Yii tự động sinh ra các mã PHP trên cơ sở dữ liệu lập trình viên vừa tạo.
- Lập trình viên chỉnh sửa mã PHP đƣợc Yii sinh ra để đáp ứng yêu cầu của
mình.
Yii có các tính năng đáp ứng những nhu cầu cao trên ứng dụng web hiện nay là
đó là:
- Tích hợp công nghệ AJAX cho phép ứng dụng Web tích hợp các widgets.

16


- Ứng dụng đƣợc thiết kế theo kiến trúc MVC để dễ dàng phát triển và bảo trì.
- Sử dụng đối tƣợng truy cập dữ liệu DAO để kết nối nhiều hệ quản trị cơ sở dữ
liệu qua một giao diện thống nhất.
- Sử dụng đối tƣợng ActiveRecord nhƣ là một phƣơng thức ORM (ObjectRelational Mapping) để sinh tự động các thao tác tƣơng tác dữ liệu (tạo, xóa, sửa, cập
nhật) từ cơ sở dữ liệu.
- Có module kiểm soát truy cập, chứng thực ngƣời sử dụng.
- Hỗ trợ chuẩn quốc tế (I18N) và nội địa hoá (l10N) giúp các ứng dụng có khả

năng hỗ trợ nhiều ngôn ngữ, định dạng ngày tháng, định dạng số mà không phải lập
trình lại.
Ngoài ra ƣu điểm của Yii là dễ sử dụng, hiệu suất cao, mở rộng tùy ý và miễn phí.
1.3 Đề xuất công nghệ phù hợp để phát triển nhanh ứng dụng trong Bộ
Công an
Do đề cao vấn đề an ninh an toàn thông tin, bảo vệ bí mật nhà nƣớc, tài liệu
thông tin nghiệp vụ của Ngành, các ứng dụng trong Bộ Công an phải đƣợc xây dựng
từ những công cụ có bản quyền và có độ bảo mật cao. Vì vậy các công nghệ và công
cụ phát triển ứng dụng sử dụng trong Bộ Công an phải có bản quyền và đƣợc phát
triển bởi các hãng có uy tín trên thế giới.
Mặt khác các ứng dụng trong Ngành chỉ chạy trên máy cá nhân, trong mạng nội
bộ của đơn vị hay trên mạng WAN nội bộ của Ngành. Chỉ một số ít các ứng dụng
quản lý thông tin công khai và giao tiếp với ngƣời dân mới chạy trên môi trƣờng
Internet. Chính vì vậy các công nghệ trực tuyến nhƣ Google Form hay Wufoo là
không phù hợp. Cũng vì lý do an ninh thông tin nên các công nghệ mã nguồn mở khác
nhƣ CodeIgniter hay Yii không đƣợc đƣa ra nghiên cứu.
Ngoài ra, hầu hết các ứng dụng hiện tại trong Ngành Công an là ứng dụng quản
lý dữ liệu và nhu cầu thực tế về các ứng dụng quản lý vừa và nhỏ đang còn rất lớn. Vì
vậy nghiên cứu về một công nghệ phát triển nhanh ứng dụng chuyên về phát triển
phần mềm quản lý dữ liệu đƣợc ƣu tiên hơn so với các công nghệ không chuyên khác.
Để xây dựng các ứng dụng dùng chung toàn Ngành, phạm vi triển khai rộng
khắp trên toàn quốc, số ngƣời sử dụng là rất lớn nên vấn đề bản quyền cũng phải tính
toán hợp lý, có tính khả thi về chi phí đầu tƣ. Nhƣ đã đề cập ở trên, mặt bằng trình độ
lập trình của các cán bộ trong Ngành còn hạn chế nên công nghệ đƣợc đề xuất phải dễ
sử dụng, không cần nhiều kiến thức, kỹ năng lập trình.

17


Từ những đánh giá trên, chúng tôi xây dựng Bảng 2.1 tổng hợp khả năng đáp

ứng các yêu cầu của Bộ Công an của các công nghệ phát triển ứng dụng nhanh đã
đƣợc liệt kê và tóm tắt ở phần trƣớc.
Yêu cầu

Khả
năng
tạo ứng
dụng
Web

Dễ dàng
sử dụng
đối với
những
ngƣời
không
chuyên
lập trình

Là công
cụ bản
quyền,

nguồn
đóng,
phát
triển bởi
Công ty
có tên
tuổi


Ứng dụng
có khả
năng triển
khai trên
máy trạm
và mạng
LAN,
WAN
không kết
nối Internet

Chi phí
đầu tƣ
cho toàn
Ngành
(càng
thấp
càng tốt)

Khả năng
phát triển
ứng dụng
nhanh



Không

Không




Miễn

Nhanh



Nhanh



Trung

Rất



bình

nhanh

ứng dụng

Công cụ,
công
nghệ

NetBeans


(Càng
nhanh
càng tốt)

Công
nghệ hiện
đại tiên
tiến, tiếp
tục nhận
hỗ trợ từ
nhà phát
triển

phí

Delphi



Không





Trung
bình

Microsoft










Visual Studio
LightSwitch
Google Form







Không
(Trực
tuyến
trên
Internet)

Miễn
phí

Rất
nhanh




Wufoo







Không
(Trực
tuyến
trên
Internet)

Trung
bình

Rất
nhanh



Microsoft
Dynamics




Không





Trung

Rất



18


CRM
Microsoft









bình

nhanh


Cao

Rất
nhanh

SharePoint
CodeIgniter







Không



Miễn

Nhanh



Nhanh



phí
Yii






Không



Miễn
phí

Bảng 1.1: So sánh khả năng đáp ứng của các công nghệ đối với yêu cầu ứng dụng
trong Bộ Công an
So sánh ƣu nhƣợc điểm của các công nghệ và đối chiếu với yêu cầu thực tế, môi
trƣờng phát triển ứng dụng trong Bộ Công an chúng tôi thấy LightSwitch là công cụ
thích hợp nhất để ứng dụng phát triển nhanh các ứng dụng trong Ngành. Tôi quyết
định tìm hiểu và nghiên cứu LightSwitch, đánh giá khả năng của LightSwitch trong
việc phát triển ứng dụng nhanh trên nền Web trong Bộ Công an bằng cách áp dụng
LightSwitch để xây dựng hệ thống Quản lý Tai nạn Giao thông toàn quốc.
Chƣơng tiếp theo của luận văn tập trung nghiên cứu đặc điểm và kiến trúc, công
nghệ của LightSwitch.

19


CHƢƠNG II – VISUAL STUDIO LIGHTSWITCH
2.1 Visual Stuidio LightSwitch là gì
Visual Studio LightSwitch là một công cụ phát triển ứng dụng của Microsoft
dùng để xây dựng nhanh các ứng dụng chuyên về quản lý dữ liệu. LightSwitch giúp

ngƣời phát triển giảm thiểu đến mức tối đa khối lƣợng mã cần phải viết để phát triển
một ứng dụng. LightSwitch cung cấp một giao diện giao tiếp GUI trực quan và thân
thiện để thiết kế cơ sở dữ liệu, giao diện ngƣời dùng và xây dựng các ràng buộc giữa
chúng. Với LightSwitch ta có thể xây dựng các ứng dụng chỉ trong vài ngày hay thậm
chí là trong vài giờ. Nhƣ tên gọi của nó, việc xây dựng ứng dụng với LightSwitch đơn
giản nhƣ việc bật công tắc bóng đèn [8].
LightSwitch cho phép các nhà phát triển thiết kế cơ sở dữ liệu, giao diện và ràng
buộc chúng với nhau bằng các luật. Giao diện ứng dụng đƣợc sinh ra tự động từ các
lƣợc đồ bảng dữ liệu, hoặc từ sự điều chỉnh của ngƣời sử dụng trên các giao diện sinh
ra tự động. Các luật dữ liệu đƣợc xác lập trong các cửa sổ thuộc tính hay thông qua các
đoạn mã lập trình. Việc lập trình có thể đƣợc thực hiện từ đơn giản đến phức tạp. Ngôn
ngữ mà LightSwitch hỗ trợ là VB.NET và C#, dƣới dạng một đoạn mã, phƣơng thức
hoặc lớp đƣợc tích hợp vào trong ứng dụng.
Các ứng dụng LightSwitch là đa lớp, đặc trƣng bởi 1 ứng dụng phía máy khách
và lớp dịch vụ bao gồm các công nghệ LINQ, WCF RIA và nền tảng thực thể phía
máy chủ. Không giống nhƣ các công cụ lập trình khác có sẵn môi trƣờng phát triển
ứng dụng riêng của nó, LightSwitch xây dựng các ứng dụng dựa trên các thành phần
chuẩn của nền tảng .NET. Thực tế, nó cung cấp một lớp trừu tƣợng đã đƣợc tối ƣu hóa
cho việc quản lý và bảo dƣỡng dữ liệu, loại bỏ việc phải lập trình những đoạn mã nặng
nề và lặp lại để xây dựng lên các lớp truy cập dữ liệu, giao diện ngƣời dùng và cơ sở
dữ liệu.
LightSwitch có cấu trúc mở. Các nhà phát triển chuyên nghiệp có thể mở rộng
chức năng của LightSwitch bằng các kỹ năng phát triển .NET. Các nhà cung cấp phần
mềm độc lập có thể xây dựng và bán các thành phần mở rộng dành cho các ứng dụng
LightSwitch.
2.2 Các đặc điểm của LightSwitch
2.2.1 Phƣơng pháp tiếp cận hiện đại
LightSwitch làm việc trên nguyên tắc giúp ngƣời phát triển ứng dụng xác định
mô hình dữ liệu của ứng dụng và tạo ra các giao diện dựa trên mô hình dữ liệu đó.
LightSwitch làm việc trong một phƣơng thức tiên tiến, cho phép ngƣời phát triển phần

20


mềm thể hiện chi tiết các thông tin trong mô hình dữ liệu thông qua giao diện đƣợc
sinh ra một các tự động . Không giống nhƣ các nền tảng và công cụ khác, LightSwitch
còn cho phép các nhà phát triển tùy chỉnh, cá nhân hóa trên các điểm mở rộng và khả
năng tùy biến thông qua lập trình.
Việc thiết kế giao diện LightSwitch theo thứ tự và trực quan thay vì ép buộc và
cứng nhắc. Thay vì làm việc với các thiết kế WYSIWYG nơi mà các điều khiển đƣợc
xác định rõ, những ngƣời phát triển LightSwitch có thể lựa chọn dữ liệu nào đƣợc thể
hiện và chỉnh sửa, tùy chỉnh các điều khiển quản lý dữ liệu, hay quy định cách áp dụng
các lƣợc đồ bố trí các thành phần trên màn hình giao diện. Với LightSwitch, ngƣời
phát triển không cần quan tâm đến các chi tiết vụn vặt trong thiết kế giao diện.
2.2.2 Khả năng tùy biến cao
LightSwitch có khả năng tùy biến cao dựa trên mã lập trình. Các ứng dụng của
LightSwitch có thể đƣợc tạo ra:
- Hoàn toàn không cần lập trình.
- Lập trình trong các mô hình dữ liệu nhƣng không cần lập trình giao diện.
- Lập trình trong tất cả các phần của ứng dụng.
Tùy thuộc vào chức năng, các đoạn mã lập trình có thể đƣợc chèn thêm vào các
thành phần ứng dụng để xử lý các sự kiện cụ thể. Ngƣời phát triển cũng có thể tạo ra
các lớp và phƣơng thức độc lập và chúng đƣợc gọi từ các đoạn mã xử lý sự kiện.
LightSwitch cho phép ngƣời phát triển tham số hóa các truy vấn trong các giao
diện truy vấn tự động sinh ra. Quyền truy nhập, ngƣời dùng và vai trò ngƣời dùng có
thể đƣợc thiết lập mà không cần phải lập trình. Dựa trên định danh ngƣời dùng và vai
trò thành viên, toàn bộ giao diện, các tùy chọn trong các giao diện, các hành vi ngƣời
sử dụng đều có thể kích hoạt hoặc vô hiệu hóa bằng các dòng lệnh đơn giản.
Trong một số trƣờng hợp, việc chèn mã vào các ngữ cảnh của ứng dụng là chƣa
đủ thì ngƣời phát triển có thể sử dụng toàn bộ nền tảng công nghệ .NET để lập trình
nên các tính năng mà mình mong muốn. LightSwitch có các tùy chọn để ngƣời phát

triển thỏa sức khai phá. Dựa vào mô hình phát triển thành phần mở rộng mạnh mẽ, các
ứng dụng LightSwitch có thể sử dụng các điều khiển, các kiểu thƣơng mại, các nguồn
dữ liệu, các mẫu giao diện, themes của các công ty cung cấp dịch vụ khác.
2.2.3 Khả năng tạo sẵn kịch bản
LightSwitch cung cấp sẵn các kịch bản, các phƣơng án xây dựng các ứng dụng
quản lý dữ liệu khác nhau. Đa phần các ứng dụng quản lý dữ liệu đều phải có các chức

21


năng nhƣ tạo, cập nhật, truy vấn và trích xuất dữ liệu. Các ứng dụng này hƣớng đến
những lớp ngƣời sử dụng khác nhau nhƣ:
- Ngƣời sử dụng muốn xem và sửa dữ liệu cho công việc của họ.
- Ngƣời quản lý muốn thiết lập và duy trì dữ liệu chính (thông tin khách hàng,
loại giao dịch, các đối tác..).
- Ngƣời quản trị hệ thống muốn truy cập đến tất cả tính năng và dữ liệu của hệ
thống...
Các kịch bản cơ bản phải đƣợc thiết lập mà không cần quan tâm đến hệ thống,
giao diện ngƣời dùng, nền tảng phát triển, môi trƣờng chạy (trên máy để bàn hay trên
nền web). Cùng với sự phát triển của công nghệ phần mềm, các kịch bản này đã đƣợc
LightSwitch tạo sẵn. Tùy thuộc vào loại ứng dụng phát triển, ngƣời phát triển ứng
dụng chỉ cần áp dụng theo các kịch bản đã có.
2.2.4 Khả năng mô hình hóa ứng dụng
Có 2 vấn đề đặt ra đối với một công cụ phát triển phần mềm. Thứ nhất, ngƣời sử
dụng luôn cần công cụ phát triển ứng dụng thƣơng mại cho nền tảng công nghệ thông
dụng. Thứ hai, ngƣời sử dụng cần công cụ có cách tiếp cận vƣợt nền tảng mà nó đƣợc
thiết kế, làm cho công cụ khả năng tùy biến với nền tảng mới. Trong khi các công cụ
lập trình hiện tại gặp khó khăn để giải quyết vấn đề thứ hai thì đối với LightSwitch lại
rất đơn giản và hết sức thuyết phục. Khi ngƣời phát triển sử dụng LightSwitch để thiết
kế một ứng dụng, LightSwtich sẽ mã hóa thiết kế ứng dụng theo một cách thức có tính

độc lập với công nghệ đó là LightSwitch sẽ đặc tả và mô hình hóa ứng dụng và lƣu trữ
chúng trong file ApplicationDefinition.lmsl. File này lƣu trữ chi tiết các bảng và các
giao diện cũng nhƣ mối quan hệ giữa chúng. Bằng cách này, các ứng dụng
LightSwitch sẽ không phụ thuộc vào công nghệ và dễ dàng thích nghi khi có những
thay đổi công nghệ.
2.2.5 Tính khả mở
LighSwitch có tính khả mở rất cao, chính đặc điểm này là một phần tạo nên sự
đặc biệt của LightSwitch. LightSwitch không chỉ cung cấp các chức năng xử lý dữ liệu
mà còn cung cấp nền tảng công nghệ và tài liệu cho các nhà sản xuất khác mở rộng các
chức năng đó. Điều này cho phép các chuyên gia trong một lĩnh vực chuyên biệt triển
khai các thành phần mở rộng theo lĩnh vực xác định và các chuyên gia khác sử dụng
các thành phần mở rộng này cho các ứng dụng của họ. Các nhà phát triển LightSwitch
chuyên nghiệp sẽ tập trung vào việc tạo ra các phần mở rộng chức năng hơn là tạo ra
các thƣ viện thành phần.
22


2.3 Nền tảng công nghệ trong ứng dụng LightSwitch
Phần này tôi sẽ trình bày các nền tảng công nghệ có trong LightSwitch thông qua
việc tìm hiểu kiến trúc, các công nghệ đƣợc sử dụng trong ứng dụng LightSwitch.
2.3.1 Kiến trúc ứng dụng 3 lớp
Ứng dụng Light Switch đƣợc xây dựng trên kiến trúc 3 lớp bao gồm: Lớp Trình
diễn, lớp Logic và lớp Dữ liệu. Mỗi lớp chạy độc lập với các lớp khác và thực hiện các
chức năng của ứng dụng. Lớp Trình diễn chịu trách nhiệm tƣơng tác với ngƣời dùng.
Nó tập trung vào hiển thị và sửa đổi và cập nhật dữ liệu. Lớp Logic phụ trách xử lý các
yêu cầu từ ứng dụng phía máy khách để cập nhật dữ liệu và thực hiện các thao tác
nghiệp vụ khác. Lớp Dữ liệu chịu trách nhiệm lƣu trữ dữ liệu ứng dụng. Hình 2.1 dƣới
đây mô tả mô hình 3 lớp đặc trƣng của một ứng dụng.

Hình 2.1: Mô hình dữ liệu 3 lớp

Việc thiết kế một ứng dụng 3 lớp đôi khi rất khó và phức tạp. Ở mỗi lớp ngƣời
phát triển phải lựa chọn công nghệ thích hợp để thiết kế hệ thống nội tại. Công nghệ sử
dụng tại mỗi lớp lại liên quan đến khả năng quản lý và phát triển khác nhau. Mỗi lớp
phải xử lý các giao tiếp với các lớp khác và phải đảm bảo truy cập an toàn từ các
nguồn tin cậy. LightSwitch loại bỏ sự phức tạp đó bằng cách xác định các công nghệ
thích hợp tại mỗi lớp cho ngƣời phát triển. Khi thiết kế ứng dụng với LightSwitch
ngƣời phát triển ứng dụng chỉ cần tập trung vào các thao tác nghiệp vụ mà không cần
quan tâm đến việc lập trình cho các tác vụ nhƣ tạo giao diện ngƣời dùng, tạo module
kết nối cơ sở dữ liệu.
Công nghệ đƣợc sử dụng ở tầng Trình diễn của ứng dụng LightSwitch là
Silverlight và HTML 5 (chỉ có ở LightSwitch 2012 bản cập nhật 2 trở về sau). Lớp
Logic của LightSwitch sử dụng công nghệ WCF RIA DomainServices chạy trong môi
trƣờng ASP.NET. Các tiến trình của lớp Logic có thể đƣợc đặt tại máy trạm, trên máy
chủ Web IIS hoặc trong môi trƣờng đám mây Azure của Windows. Các ứng dụng của
LightSwitch sử dụng hệ quản trị cơ sở dữ liệu SQL Server hoặc SQL Azure để lƣu trữ
dữ liệu. Nó cũng có thể sử dụng dữ liệu từ danh sách SharePoint, dữ liệu từ nguồn
OData, truy cập dữ liệu qua trình cung cấp nền tảng thực thể hoặc bằng dịch vụ WCF
23


RIA DomainServices. Hình 2.2 miêu tả tổng thể các công nghệ có thể có trong một
ứng dụng LightSwitch.

Hình 2.2: Mô hình 3 lớp của ứng dụng LightSwitch
2.3.2 Lớp Trình diễn
Lớp Trình diễn của một ứng dụng LightSwitch chính là ứng dụng phía máy
khách và nó có thể là một ứng dụng Silverlight hoặc một ứng dụng HTLM 5 tùy thuộc
vào sự lựa chọn của ngƣời phát triển khi xây dựng ứng dụng. Thông thƣờng, khi phát
triển các ứng dụng chạy trên máy để bàn hoặc các ứng dụng Web trong môi trƣờng
mạng có dây, ngƣời phát triển sẽ chọn lựa giải pháp ứng phía máy khách là ứng dụng

Silverlight. Ngƣợc lại, để phát triển các ứng dụng chạy trên điện thoại thông minh,
máy tính bảng, thiết bị di động, các thiết bị sử dụng giao diện màn hình chạm… trong
môi trƣờng mạng không dây thì ngƣời phát triển sẽ chọn giải pháp ứng dụng máy
khách là ứng dụng HTML 5.
2.3.2.1 Lớp Trình diễn là ứng dụng Silverlight
Ứng dụng phía máy khách chịu trách nhiệm chính trong việc tƣơng tác với
ngƣời sử dụng, nhập và thể hiện dữ liệu. Khi Lớp Trình diễn là ứng dụng Silverlight,
nhờ vào tính năng của Silverlight, ứng dụng phía máy khách có thể chạy độc lập trên
máy để bàn hoặc trên nền Web [5].
Các ứng dụng máy khách chạy trên máy để bàn đƣợc tổ chức bởi các dịch vụ
lƣu trữ ngoài trình duyệt Silverlight. Khi biên dịch ứng dụng, LightSwitch cấu hình
24


×