BAO GỒM SOURCE CODE 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 , Universal Windows Platform C,
Trang 1TRƯỜ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:
Trang 3MỤC LỤC
I Tìm hiểu về môn Các công nghệ lập trình hiện đại 1
1 Khái niệm LinQ 1
2 LinQ to SQL 1
3 Truy vấn sử dụng LinQ to SQL 2
a) Cấu trúc của câu truy vấn LinQ to SQL 2
b) Cơ chế làm việc với cơ sở dữ liệu của LinQ to SQL 3
c) Các từ khóa để tạo ra các câu truy vấn 3
d) Các đối tượng hay sử dụng trong LinQ to SQL 4
e) Cấu trúc các truy vấn sử dụng LinQ to SQL trong C# 4
4 Điện toán đám mây (Cloud computing) 5
II Lược đồ (Diagram) 7
1 Use case Diagram 7
2 Class Diagram 7
3 Sequence Diagram 8
III Giao diện 9
1 Main Screen 9
2 Edit Screen 10
3 Crop Screen 10
4 Draw Screen 11
5 Screen 5 11
IV Tài liệu tham khảo 12
Trang 4I 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ự đổimớ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ộtngô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ệuSQL, tài liệu XML( Extensible Markup Language), các dịch vụ của LINQ hỗ trợ truyvấ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ệnhtruy 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 toán tử quen thuộc
Trong Visual Studio có thể viết câu lệnh truy vấn LINQ trong Visual Basic hoặcC# 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ệnIenumerable<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 framework3.5
- LinQ có nhiều loại: LinQ to SQL, LinQ to Entities, LinQ to Object TrongProject này sẽ sử dụng LinQ to SQL
- Các Namespace hỗ trợ của LINQ:
Trang 5SQL là một phiên bản hiện thực hoá của O/RM (object relational mapping) có bêntrong NET Framework Nó cho phép người dùng mô hình hoá một cơ sở dữ liệu dùngcác lớp NET Sau đó, có thể truy vấn chúng bằng cách dùng LinQ – tất nhiên nó chophép các thao tác: Insert, Update, Delete, View, Store Procedure, Transaction LinQ toSQL 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 luôn 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:
Trang 6Hì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 đếnphươ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
joinitemName 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
Trang 7 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áchcá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 danhsá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ốicù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);
Trang 8list = 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
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();
Trang 94 Điện toán đám mây (Cloud computing)
Về khái niệm, điện toán đám mây có thể hiểu là nơi tập hợp chung của các tàinguyên 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ể đượccung 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 toá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 toán đám mây, hầu hết ta phải sử dụng CD, Floppy disk hoặcUSB để 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 đilại
Hình 3: Mô hình thuật toá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 đimang 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 luôn an toà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
Trang 10+ 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ácnề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ỗinề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ảngWindows 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 UWPkhô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 ứngdụ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ăngcho giao diện
Trang 11Giới thiệu một số thanh công cụ của UWP:
AppBar
CommandBar
< CommandBar > < AppBarButton Icon = " Back " Label = " Back " Click = " AppBarButton_Click " /> < AppBarButton
Icon = " Stop " Label = " Stop " Click = " AppBarButton_Click " /> < AppBarButton Icon = " Play " Label = " Play "
Click = " AppBarButton_Click " /> </ CommandBar >
Trang 12Đượ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ỗilần một mục
< FlipView x:Name = " flipView1 " SelectionChanged = " FlipView_SelectionChanged " > < Image
Source = " Assets/Logo.png " /> < Image Source = " Assets/SplashScreen.png " /> < Image
Source = " Assets/SmallLogo.png " /> </ FlipView >
Flyout
Trang 13Hiể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
Trang 14RelativePanel cho phép bạn định vị và căn chỉnh các đối tượng con liên quan đến nhauhoặc bảng điều khiển chính.
Trang 15Microsoft cung cấp các mẫu thiết kế dành cho Adobe Illustrator và MicrosoftPowerPoint 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, phatrộ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ậpvào các thuật toán hình ảnh đẳng cấp thế giới và việc sử dụng GPU dễ dàng (sử dụngDirect2D) 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ảntùy chỉnh
Lumia Imaging SDK là một bộ công cụ xử lý khung hình và video phong phú dành chocá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ã toàn bộ hình ảnh Điều đó có nghĩa là bạn có thể áp dụng hiệu ứngcho 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 rahiệu ứng chính xác mà bạn đang tìm kiếm
Một số hiệu ứng:
Trang 17II Lược đồ (Diagram)
1 Use case Diagram
Flip
MainPage
Open, Zoom, Slide, Detect face
Trang 19III 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
16
Trang 202 Slide show
2 Edit Screen
Trang 213 Crop Screen
4 Draw Screen
Trang 23IV LINK Tải về demo
https://rg.link/SoZhh7V
Nếu không tải được, vui lòng liên hệ : phamlehoang.dct1143@gmail.com
V Tài liệu tham khảo
Đồ án kỹ sư II – Nguyễn Văn Thụy, Đoà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 – Đỗ Xuân 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 ,
https://msdn.microsoft.com/en-us/library/windows/apps/mt185406.aspx?f=255&MSPPError=-2147217396