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

Đồ án môn Các công nghệ lập trình hiện đại

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.83 MB, 23 trang )

TRƯỜNG ĐẠI HỌC SÀI GỊN
KHOA CƠNG NGHỆ THƠNG TIN
----------

CÁC CƠNG NGHỆ
LẬP TRÌNH HIỆN ĐẠI
Chương trình trình diễn hình ảnh

Giảng viên hướng dẫn: Trần Đình Nghĩa
Sinh viên thực hiện:
 3114410035 - Nguyễn Vũ Hào
 3114410048 - Phạm Lê Hoàng
 3114410052 - Lê Thạch Nhật Huy
 3114410056 - Phan Văn Huy


MỤC LỤC

I. Tìm hiểu về mơn Các cơng nghệ lập trình hiện đại
1. Khái niệm LinQ
LINQ (Language Integrated Query) ngơn ngữ tích hợp truy vấn là một sự đổi
mới trong visual studio 2008 và .Net Framework 3.5 là cầu nối khoảng cách giữa thế
giới của đối tượng và thế giới dữ liệu.
Theo truyền thống các câu lệnh truy vấn trên dữ liệu được thể hiện một cách dễ
dàng giống như các chuỗi ký tự đơn giản mà không cần đến kiểm tra tại thời điểm diễn
ra biên dịch hoặc sự hỗ trợ của trình hỗ trợ trực quan. Hơn nữa cần phải tìm hiểu một
ngơn ngữ truy vấn khác nhau cho mỗi loại dữ liệu nguồn khác nhau như: Cơ sở dữ liệu
SQL, tài liệu XML( Extensible Markup Language), các dịch vụ của LINQ hỗ trợ truy
vấn một lớp đầu tiên xây dụng trong ngôn ngữ C# và Visual Basic. Sử dụng câu lệnh
truy vấn dựa trên tập hợp của các đối tượng bằng cách sử dụng ngôn ngữ, các từ khóa
và các tốn tử quen thuộc.


Trong Visual Studio có thể viết câu lệnh truy vấn LINQ trong Visual Basic hoặc
C# với cơ sở dữ liệu SQL Server, các tài liệu XML, ADO.NET databasets và bát kỳ đối
tượng nào được hỗ trợ IEnumerable hoặc có đặc điểm giống giao diện
Ienumerable<T>. LINQ hỗ trợ cho các thực thể ADO.NET framework và LINQ đang
được các nhà cung cấp hiện nay viết bởi bên thứ ba cho nhiuef dịch vụ và triển khai dữ
liệu hóa. Có thể sử dụng các truy vấn LINQ trong các dự án mới hoặc các dự án hiện
có. Một yêu cầu duy nhât là các dự án đó phải được xây dựng trên .NET framework
3.5.
- LinQ có nhiều loại: LinQ to SQL, LinQ to Entities, LinQ to Object. Trong
Project này sẽ sử dụng LinQ to SQL.
- Các Namespace hỗ trợ của LINQ:
System.LinQ: Hỗ trợ sử dụng các Objects;
System.Data.LinQ: Hỗ trợ sử dụng các cơ sở dữ liệu quan hệ;
System.Data.Objects: Hỗ trợ sử dụng các Entities;
System.XML.LinQ: Hỗ trợ sử dụng XML;


2. LinQ to SQL
LinQ to SQL cung cấp một cơ sở hạ tầng cho việc quản lý các dữ liệu quan hệ
như các đối tượng. Nó là một thành phần của version 3.5 .NET Framework và LinQ to
SQL là một phiên bản hiện thực hoá của O/RM (object relational mapping) có bên
trong .NET Framework. Nó cho phép người dùng mơ hình hố một cơ sở dữ liệu dùng
các lớp .NET. Sau đó, có thể truy vấn chúng bằng cách dùng LinQ – tất nhiên nó cho
phép các thao tác: Insert, Update, Delete, View, Store Procedure, Transaction. LinQ to
SQL chỉ hỗ trợ cho SQL Server, và người dùng là người mới bắt đầu nghiên cứu thì
LinQ to SQL là sự lựa chọn tuyệt vời nhất.

Hình 1: Mơ hình LinQ to SQL
3. Truy vấn sử dụng LinQ to SQL
a) Cấu trúc của câu truy vấn LinQ to SQL

Một câu lênh truy vấn trong LinQ to sql ln gồm có 3 đối tượng: Nguồn dữ liệu,
tạo câu truy vấn, thực hiện câu truy vấn:


Hình 2: Cấu trúc hoạt động LinQ to SQL
Nguồn dữ liệu ở đây là một danh sách các item.
Câu lệnh truy vấn bao gồm có from là xác định dữ liệu lấy từ bảng nào, where là
thỏa mãn điều kiện gì thì lấy ra, select là lựa chọn các trường nào của đối tượng , hay
là chọn cả đối tượng.
Thực hiện câu truy vấn ở đây có thể là lên thêm, sửa , xóa.Thêm , sửa , xóa ở
đây có thể là một hoặc nhiều đối tượng.
b) Cơ chế làm việc với cơ sở dữ liệu của LinQ to SQL
LinQ thông qua ứng dụng hỗ trợ biên dịch lin để dịch thành các câu lệnh tương
ứng trong Sql để thực hiện thao tác với cơ sở dữ liệu. Các câu lệnh thao tác với cơ sở
dữ liệu thì khi gọi đến các câu lệnh thì nó chưa thực hiện. Nó chỉ thực hiên khi gọi đến
phương thức Submitchange(). Các câu lệnh thao tác này cũng phải thông qua ứng dụng
hỗ trợ biên dịch các câu lệnh LinQ thành các câu lệnh sql tương ứng để thao tác với cơ
sở dữ liệu.
c) Các từ khóa để tạo ra các câu truy vấn
from itemName in srcEX
join itemName in srcEx on keyEx equal keyEX (into ItemName)
where predExpr
group SelExpr by keyEX
into itemName query-body
orderby(keyEX(ascending descending)?)*
select selExpr
Trong đó:


From là chọn đối tượng từ nguồn nào




Join là thực hiện tham gia liên kết với bảng nào để lấy ra các trường dữ liệu
mong muốn




Where để ghi điều kiện các đối tượng trong nguồn phải thỏa mãn điều kiện này
thì mới được lấy ra



Group là thực hiện gom nhóm các đối tượng lấy ra theo một trường nào đó. Ví
dụ có một danh sách các sinh viên thì các bạn sẽ muốn các sinh viên thuộc cùng
1 lớp sẽ đứng gần nhau. Để làm được điều này trong LinQ dùng group



Orderby là thực hiện sắp xếp các đối tượng được lấy ra theo 1 trường nào đó và
theo thứ tự giảm dần hay tăng dần.

d) Các đối tượng hay sử dụng trong LinQ to SQL

- Các hàm Sum/ Min/ Max/ Average là các hàm tính tổng, lấy giá trị nhỏ nhất,
lấy giá trị lớn nhất, lấy giả trị trung bình.
- Hàm take, skip là hàm lấy ra bao nhiêu bản ghi được hiển thị trong danh sách
các bản ghi và lấy ra từ bản ghi thử mấy.
- Hàm First, FirstOrDefault là hàm dùng để lấy ra phần tử đầu tiên trong danh

sách các phần tử:
+ First: Khi dùng mà phần tử lấy ra mà rỗng thì nó sẽ xảy ra lỗi.
+ FirstOrDefault : Có thể cho phép đối tượng lấy ra là null nhưng nhớ khi thực
hiện thì kiểm tra nó khác null thì mới thực hiên câu lênh bên trong if là được.
- Tương tự như FirstOrDefault thì Last, LastOrDefault là lấy ra phần tử cuối
cùng.
e) Cấu trúc các truy vấn sử dụng LinQ to SQL trong C#


Hiển thị dữ liệu lên một GridView


List<Sach> list = new List<Sach>();
var query = (from n in db.Saches
select n);
list = query.ToList<Sach>();
DataGridView1.DataSource = list;


Tìm kiếm dữ liệu từ CSDL
var query1 = (from sach in db.Saches
where sach.MaSach == cbb_masach.Text
select sach);
list = query1.ToList<Sach>();
DataGridView1.DataSource = list;



Thêm một bản ghi vào CSDL
Sach saches = new Sach();

saches.CMT = txt_cmt.Text;
saches s.MaSach = txt_masach.Text;
saches s.TenSach = txt_tensach.Text;
saches s.TacGia = txt_tgia.Text;
saches s.NXB = txt_nxb.Text;
db.Saches.InsertOnSubmit(saches);
db.SubmitChanges();



Sửa một bản ghi trong CSDL
Sach saches = db.Saches.FirstOrDefault(s => s.CMT == txt_cmt.Text);
saches s.MaSach = txt_masach.Text;
saches s.TenSach = txt_tensach.Text;
saches s.TacGia = txt_tgia.Text;
saches s.NXB = txt_nxb.Text;
db.SubmitChanges();



Xóa một bản ghi trong CSDL
Sach dssach = (from Sach in db.Saches
where Sach.CMT == txt_cmt.Text
select Sach).SingleOrDefault();
if (dssach != null)
{
db.Saches.DeleteOnSubmit(dssach);
db.SubmitChanges();
MessageBox.Show("Xóa thành cơng", "Xóa đơn vị sách");
}




Tìm kiếm dữ liệu từ nhiều bảng
var query = (from dg in db.DocGias
join ms in db.MuonSaches on dg.MaSach equals ms.MaSach
where dg.CMT == txt_input.Text
select ms);
sachBindingSource.DataSource = query.ToList();


4. Điện toán đám mây (Cloud computing)
Về khái niệm, điện tốn đám mây có thể hiểu là nơi tập hợp chung của các tài
ngun hệ thống máy tính có thể tùy chỉnh và các dịch vụ cấp cao hơn có thể được
cung cấp nhanh chóng với tài nguyên quản lý tối thiểu, thơng thường là qua Internet.
Điện tốn đám mây dựa vào việc chia sẻ tài nguyên để đạt được sự gắn kết và tiết kiệm
về quy mô, tương tự như một tiện ích cơng cộng.
Trước khi có điện tốn đám mây, hầu hết ta phải sử dụng CD, Floppy disk hoặc
USB để lưu trữ dữ liệu dự phòng nhưng thường chúng khá tốn kém và bất tiện khi đi
lại.

Hình 3: Mơ hình thuật tốn đám mây
Lợi ích:
+ Hình thành các dịch vụ lưu trữ thông tin như OneDrive, Google Drive,
Dropbox,… có chức năng lưu trữ thơng tin trực tuyến, giảm bớt rủi ro khi mang đi
mang lại thông tin quan trọng trên tay cũng như thuê phần mềm lưu trữ bên thứ ba.
+ Đảm bảo hệ thống bảo mật dữ liệu ln an tồn khi mọi người đều có thể đăng
ký tài khoản dịch vụ miễn phí (Chỉ nhất định đối với các tài khoản Free).
Bất lợi:
+ Mọi thứ liên quan đến Cloud hầu như đều cần kết nối Internet



+ Mạng chậm dẫn đến thiệt hại do thời gian vận chuyển thông tin
+ Quyền riêng tư bị ảnh hưởng do thơng tin vẫn chưa đảm bảo bí mật tuyệt đối,
đặc biệt là khi đánh mất tài khoản.
+ Nỗi lo về downtime: KHÔNG một nhà cung cấp dịch vụ đám mây nào có thể
đảm bảo rằng máy chủ của họ sẽ chạy 100% liên tục.

5. Ứng dụng Universal Windows Platform (UWP)

Universal Windows Platform (UWP), là một cấu trúc ứng dụng thống nhất giữa các
nền tảng được tạo bởi Microsoft và được giới thiệu lần đầu trong Windows 10. Mục
đích của nền tảng phần mềm này là giúp phát triển các ứng dụng kiểu Metro chạy trên
cả Windows 10 và Windows 10 Mobile mà không cần phải viết lại ứng dụng cho mỗi
nền tảng. Nó hỗ trợ cho việc phát triển các ứng dụng Windows bằng C++, C#,
VB.NET, hoặc XAML. API được thực hiện bằng C++, và được hỗ trợ trong C++,
VB.NET, C#, và JavaScript. Được thiết kế như một phần mở rộng của nền tảng
Windows Runtime được giới thiệu lần đầu trong Windows Server 2012 và Windows 8,
UWP cho phép nhà phát triển tạo các ứng dụng có thể chạy trên nhiều loại thiết bị.
UWP là một phần của Windows 10 và Windows 10 Mobile. Các ứng dụng UWP không
chạy trên các phiên bản Windows cũ hơn.
Các ứng dụng sử dụng nền tảng này được phát triển bằng Visual Studio 2015. Các ứng
dụng kiểu Metro cũ dành cho Windows 8.1, Windows Phone 8.1 hoặc cho cả hai
(universal 8.1) cần được điều chỉnh để chuyển sang UWP.


Ứng dựng UWP bao gồm giao diện là file .xaml , và file .xaml.cs để xử lý chức năng
cho giao diện.

Giới thiệu một số thanh cơng cụ của UWP:



AppBar



CommandBar

<CommandBar> <AppBarButton Icon="Back" Label="Back" Click="AppBarButton_Click"/> Icon="Stop"

Label="Stop"

Click="AppBarButton_Click"/>

Click="AppBarButton_Click"/> </CommandBar>


Icon="Play"

Label="Play"


Được dùng như một thanh cơng cụ


FlipView

Một điều khiển trình bày một bộ sưu tập các mục mà người dùng có thể lướt qua, mỗi

lần một mục.

x:Name="flipView1"

Source="Assets/Logo.png"

/>

SelectionChanged="FlipView_SelectionChanged">

Source="Assets/SmallLogo.png" /> </FlipView>



Flyout

Source="Assets/SplashScreen.png"

/>



Hiển thị một thông báo yêu cầu tương tác người dùng. (Không giống như hộp thoại,
flyout không tạo một cửa sổ riêng và khơng chặn tương tác người dùng khác.)



InkToolBar

Đi kèm với tool InkCanvas để tự thiết kế lên trên canvas đó.


RelativePanel


RelativePanel cho phép bạn định vị và căn chỉnh các đối tượng con liên quan đến nhau
hoặc bảng điều khiển chính.


SplitView

Tool với hai chế độ xem; một chế độ xem cho nội dung chính và một chế độ xem khác
thường được sử dụng cho menu điều hướng.
<SplitView> <SplitView.Pane> <!-- Menu content --> </SplitView.Pane> <SplitView.Content> </SplitView.Content> </SplitView>



Toggle switch


x:Name="toggleSwitch1"

Toggled="ToggleSwitch_Toggled"/>

Header="ToggleSwitch"


OnContent="On"

OffContent="Off"


Microsoft cung cấp các mẫu thiết kế dành cho Adobe Illustrator và Microsoft
PowerPoint gồm tất cả những gì bạn cần để bắt đầu thiết kế các ứng dụng UWP.
Những mẫu thiết kế này bao gồm các control và giao diện cho từng dịng thiết bị.

6. Cơng nghệ xử lý hình ảnh
Lumia Imaging SDK, hiện là phiên bản 3.0, cung cấp các công nghệ mà Microsoft sử
dụng trong các ứng dụng hình ảnh của riêng mình cho các nhà phát triển bên thứ ba.
Các tính năng cung cấp khả năng giải mã và mã hóa hình ảnh, áp dụng hiệu ứng, pha
trộn, cắt, xoay và thay đổi kích thước. Nó cho phép các nhà phát triển dễ dàng truy cập
vào các thuật tốn hình ảnh đẳng cấp thế giới và việc sử dụng GPU dễ dàng (sử dụng
Direct2D). Nó cũng cho phép các nhà phát triển mở rộng chức năng cho các kịch bản
tùy chỉnh.
Lumia Imaging SDK là một bộ công cụ xử lý khung hình và video phong phú dành cho
các nhà phát triển để cung cấp trải nghiệm hình ảnh tuyệt vời trong ứng dụng của họ.
Nó cung cấp hơn 60 hiệu ứng được tạo sẵn, nhiều trong số đó có thể được áp dụng mà
khơng cần giải mã tồn bộ hình ảnh. Điều đó có nghĩa là bạn có thể áp dụng hiệu ứng
cho hình ảnh có độ phân giải cao mà không phải lo lắng về ngân sách bộ nhớ của mình.
Bạn có thể thêm một hiệu ứng cho dự án hiện tại của bạn chỉ bằng một vài dịng C #.
Thư viện cũng có thể được gọi từ mã C ++. Các hiệu ứng có thể được kết nối để tạo ra
hiệu ứng chính xác mà bạn đang tìm kiếm.
Một số hiệu ứng:


II. Lược đồ (Diagram)

1. Use case Diagram

View
Slide show
Rotate
Draw
Zoom

User

Flip
Filter
Crop
Detect face
Open/Save


2. Class Diagram
Ứng dụng bao gồm 4 lớp giao diện chính: MainPage, DrawPage, DesignPage,
CropRotatePage, và các lớp hỗ trợ xử lý hình ảnh.
DrawPage

MainPage

DesignPage

Vẽ hình ảnh và lưu. Open, Zoom, Slide, Detect face
Lọc màu hình ảnh và lưu ảnh

CropRotatePage


Crop, rotate, flip hình ảnh

III. Giao diện
1. Main Screen


Chọn menu click Open để mở mơt hình ảnh

Click nút SlideShow trên thanh AppBar


2. Slide show

2. Edit Screen


3. Crop Screen

4. Draw Screen



IV. LINK Tải về demo
k/SoZhh7V
Nếu khơng tải được, vui lịng liên hệ :

V. Tài liệu tham khảo













Đồ án kỹ sư II – Nguyễn Văn Thụy, Đồn Mạnh Giỏi
Giáo trình nhập mơn CSDL – Phạm Hùng Phú – 2012
Phân tích thiết kế hệ thống thông tin quản lý – Phạm Hùng Phú – 2012
Phân tích thiết kế hệ thống thơng tin – Nguyễn Văn Ba – 2002
Cấu trúc dữ liệu và giải thuật – Đỗ Xn Lơi – 2009
Giáo trình LinQ to SQL tiếng Việt – Đào Hải Nam (Bản dịch) - 2013
Khóa học trực tuyến Duy Thành – CSE.Wordpress 2014
Giáo trình mơn Các cơng nghệ lập trình hiện đại – Trần Đình Nghĩa - 2018
Giáo trình tổng quan về LinQ – Đại học Đồng Nai – 2008
/>Thư viện , />


×