Thứ Bảy, 30 tháng 4, 2016

03. [Microsoft Sync Framework] Tạo Scope và Provisioning

03. [Microsoft Sync Framework] Tạo Scope và Provisioning

- Ở bài trước ta đã tạo được database ở bài này ta sẽ tiếp tục làm các bước tạo Scope và Provisioning vậy Scope là gì dưới đây là định nghĩa tiếng anh của nó, các bạn cứ hiểu đại khái Scope là phạm vi động bộ chẳng hạn trong database của các bạn có 10 bảng và bạn chỉ muốn đồng bộ 3 bảng thì bạn cần tạo scope cho 3 bảng này. và trong 3 bảng này bạn có thể chỉ ra cột nào cần đồng bộ cột nào không.
Synchronization scopes describe what you want to synchronize between two databases. Only items that fit within the scope description are synchronized; all other items outside the scope are not synchronized. A scope contains a description of the tables that are synchronized. For each table in the scope, you can specify that only a subset of the columns is included in the scope, and you can define a filter that limits the rows that are included in the scope
 - Provisioning: Khi tạo Scope Microsoft Sync Framework sẽ tự động tạo thêm trong database nhiều Trigger và Store Procedure mục đích là để change-tracking (theo dõi các hành động insert/update/delete trong table) và metadata management (quản lý siêu dữ liệu). Metadata là phần dữ liệu chưa các thông tin về dữ liệu như dữ liệu nào đã bi thay đổi , dữ liệu nào đã được đồng bộ...
- Bước tiếp theo tôi sẽ tạo Project C#. Mở Visual Studio tạo Console Application đăt tên project ProvisionServer và tên Solution là SyncSQLServerAndSQLCompact


- Sau khi tạo project tiến hành add các thư viện của Microsoft Sync bao gồm: Microsoft.Synchronization.Data, Microsoft.Synchronization.Data.SqlServer 




- Bước kế tiếp là Code như trong bài tạo database ta đã tạo database với 2 bảng là Products và Orders ở bước này ta sẽ tạo scope cho bảng products đặt tên là ProductsScope dưới đây là mô tả của 1 các class sử dụng trong code:
  • DbSyncScopeDescription dùng để chỉ ra tên cùa scope và danh sách các table sẽ được đồng bộ.
  • DbSyncTableDescription là class chỉ ra tên tên của table, tên cột , tên kiểu dữ liệu và 1 số thông tin khác để thưc hiện đồng bộ.
  • SqlSyncScopeProvisioning đại diện cho provisioning của SQL Server Database.
  • Phương thức SetCreateTableDefault(DbSyncCreationOption) chỉ ra có hay không tạo table khi cấu hình scope.

- Copy đoạn code dưới đây vào phương thức Main sau đó run để tạo Scope.

02. [Microsoft Sync Framework] Tạo Server Database

02. [Microsoft Sync Framework] Tạo Server Database 

Mở SQL Server Studio, chọn New Query và run Script phía dưới. Sau khi chạy xong script bạn sẽ có một database tên là SyncDB với 2 bảng là Products và Orders.



USE [master]
GO

IF EXISTS(SELECT name FROM sys.databases WHERE name = 'SyncDB')
    DROP DATABASE SyncDB

CREATE DATABASE [SyncDB]
GO

USE [SyncDB]
GO

CREATE TABLE [dbo].[Products](
    [ID] [int] NOT NULL,
    [Name] [nvarchar](50) NOT NULL,
    [ListPrice] [money] NOT NULL

    CONSTRAINT [PK_Products] PRIMARY KEY CLUSTERED ([ID] ASC)
)
GO

CREATE TABLE [dbo].[Orders](
    [OrderID] [int] NOT NULL,
    [ProductID] [int] NOT NULL,
    [Quantity] [int] NOT NULL,
    [OriginState] [nvarchar](2) NOT NULL,
    CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED ([OrderID] ASC,[ProductID] ASC)
)
GO

ALTER TABLE [dbo].[Orders]  WITH CHECK ADD  CONSTRAINT [FK_Orders_Products] FOREIGN KEY([ProductID])
REFERENCES [dbo].[Products] ([ID])
GO

ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Products]
GO

INSERT INTO Products VALUES (1, 'PC', 400)
INSERT INTO Products VALUES (2, 'Laptop', 600)
INSERT INTO Products VALUES (3, 'NetBook', 300)

INSERT INTO Orders VALUES (1, 1, 2, 'NC')
INSERT INTO Orders VALUES (2, 2, 1, 'NC')
INSERT INTO Orders VALUES (3, 1, 5, 'WA')
INSERT INTO Orders VALUES (3, 3, 10, 'WA')
INSERT INTO Orders VALUES (4, 2, 4, 'WA')



Bài tiếp theo tội sẽ hướng dẫn tao Project bằng C#, Tạo Scope và Provisioning

01. [Microsoft Sync Framework] Giới Thiệu và Cài Đặt


01. [Microsoft Sync Framework] Giới thiệu và Cài đặt 


Bạn làm phần mềm quản lý sử dung offline cho một trung tâm thể dục thể thao. Trung tâm này có 3 cơ sở đặt ở 3 nơi khác nhau và bạn muốn đồng bộ dữ liệu của 3 cơ sở lên 1 server trung tâm phục vụ cho việc xem báo cáo tổng hợp và backup dữ liệu, Trên thực tế có nhiều cách để thực hiện dưới đây tôi sẽ sử dụng Microsoft Sync để thực hiện đồng bộ.

Giới thiệu

Microsoft Sync Framework là một nền tảng đồng bộ hóa toàn diện tạo điều kiện cho sự hợp tác và offline cho các ứng dụng, dịch vụ và các thiết bị. Phát triển có thể xây dựng các hệ sinh thái đồng bộ hóa tích hợp bất kỳ ứng dụng nào, bất kỳ dữ liệu từ bất kỳ cửa hàng sử dụng bất kỳ giao thức qua mạng bất kỳ. Sync Framework tính năng công nghệ và các công cụ cho phép chuyển vùng, chia sẻ, và lấy dữ liệu offline.

Cài đặt

- Bạn download file Microsoft Sync Framework 2.1 Software Development Kit (SDK) về và tiến hành cài đặt. click vào đây để download 
- Các bước cài đặt dưới đây hoặc xem video ở dưới.









- Các bước cài đặt đã hoàn tất ở bài kế tiếp tôi sẽ xây dựng ví dụ đồng bộ sử dung SQL Compact 3.5 và SQL Server Express bao gồm 1 Server và 2 Client.

Thứ Hai, 25 tháng 4, 2016

01. [KT-Shop] Giới Thiệu - Yêu Cầu Tính Năng Phần Mềm


TỰ HỌC LẬP TRÌNH

[KT-Shop] Giới thiệu - Yêu Cầu Tính Năng Phần Mềm

  1. Giới thiệu
    • Tôi tên là Thảo (man not woman) là một người rất đam mê lập trình, đã đi làm được hơn 3 năm và vì nhiều lý do hiện tại đang ở nhà làm nông dân chăn bò, trồng tiêu :). Mục đích chính của việc tôi tạo blog này nhằm chia sẻ những kiến thức về lập trình phần mềm tôi tự học trong những năm qua. Có nhiều bạn liên hệ với tôi có ý muốn học lập trình và câu hỏi các bạn hay đặt cho tôi là "Em muốn học lập trình em phải học ngôn ngữ nào anh ?" hay là "Java hay C# em học cái nào tốt hơn ?" ... Theo tôi thì cái gì cũng cần có căn bản trước cứ chọn một ngôn ngữ nào bạn thấy thích,  nắm vững căn bản của ngôn ngữ đó thì thích chuyển qua ngôn ngữ nào cũng được. Ví dụ như tôi học căn bản ở trường thì dùng Pascal,C,C++ sau này thì học VB.NET rồi ra trường tự học thêm C#, Java tất cả đều từ căn bản C mà ra.
    • để làm được một phần mềm hoàn chỉnh thì kiến thức lập trình căn bản chưa đủ còn cần nhiều thứ khác nữa như: kiến thức về Database, phân tích thiết kế hệ thống, Sắp xếp lên kế hoạch thực hiện ... có nhiều bạn kiến thức lập trình rất vững nhưng mà viết một ứng dung nho nhỏ cứ luẩn quẩn mãi mà không xong. Bản thân tôi cũng từng bị như vậy khi có ý tưởng thì tôi không biết bắt đầu từ đâu vì kiến thức toàn là tự học nó không theo một hệ thống nào. Và cứ làm cứ viết như vậy dù không ra được một sản phẩm nào hoàn chỉnh nhưng qua mỗi lần tôi hệ thống lại được những gì mình cần làm dần dần nó tự hình thành một phong cách làm phần mềm của riêng tôi.
    • Hiện tôi vừa hoàn thành 1 ứng dung nhỏ trên di động dung để quản lý bán hang trên điện thoại di động. Tôi viết ứng dụng này mất khoảng 8 ngày.  download ở đây. Tôi muốn chia sẻ cách làm phần mềm này cho những bạn có kiến thức căn bản và muốn học làm phần mềm.
    • Trước tiên để làm được bất cứ 1 ứng dụng nào cũng cần có 1 ý tưởng, ý tưởng có thể tự bạn nghĩ ra hoặc theo yêu cầu của 1 khách hàng nào đó. ý tưởng của tôi như sau: Thời nay rất nhiều người sử dụng smartphone, trong đó có nhiều người chủ của những cửa hàng nhỏ. Họ muốn quản lý công việc bán hàng sao cho đơn giản nhất, dùng phần mềm trên máy tính thì rất nhiều nhưng nó đòi hỏi phải lắp đặt máy tính khá cồng kềnh, chưa kể nhiều người ko biết dùng máy tính. do vậy việ làm một ứng dụng bán hàng chạy offline trên di động là rất hữu ích. Qua tìm hiểu trên mạng thì tôi đưa ra các yêu cầu cho phần mềm của tôi như sau:
    2. Yêu cầu phần mềm quản lý bán hàng
  •  Một cửa hàng nhỏ có nhu cầu sử dụng phần mềm để quản lý công việc bán hàng với các yêu cầu như sau:
    • Quản lý danh sách nhóm sản phẩm : Mã, Tên, Mô tả 
    • Quản lý danh sách sản phẩm: Mã, Tên, Giá bán, Đơn vị tính, Hình ảnh, Hạn sử dụng, Ngày sản xuất, Mô tả
    • Quản lý danh sách nhà cung cấp: Mã, Tên, Điện thoại, Email, Địa chỉ
    • Quản lý danh sách khách hàng: Mã, Tên, Điện thoại, Email, Địa chỉ
    • Quản lý xuất nhập tồn của từng sản phẩm theo từng lô hàng
    • Quản lý công nợ nhà cung cấp, công nợ khách hàng đơn giản
    • Quản lý danh sách đơn vị tính theo nhiều cấp độ: 1 Thùng = 24 Lon, 1 Thùng =  20 Chai… để nhập hàng được nhanh chóng và thuận tiện
    • Xuất hàng theo nguyên lý nhập xuất chỉ định, Tự động trừ tồn kho khi xuất hàng, Tự động cộng về kho khi xóa hóa đơn, không cho xuất hàng khi số lượng tồn kho không đủ.
    •   Xem báo cáo doanh thu, lợi nhuận theo ngày, tháng, năm. So sánh với ít nhất 3 năm trước
    •  Xem báo cáo nhập xuất tồn theo ngày, tháng, năm
    • Xem báo cáo các sản phẩm bán chạy theo tháng, năm. So sánh với ít nhất 3 năm trước
    • Các yêu cầu khác: Phần mềm dễ sử dụng, không cần internet, 2 ngôn ngữ Việt – Anh, Sao lưu, phục hồi dữ liệu

  3. Kế hoạch thực hiện

  • Thời gian: 1 tháng từ 17-04-2016 đến 17-05-2016
STT
Thời gian
Công việc
Tiến độ
Yêu cầu
1
2 ngày
Phân tích thiết kế hệ thống
0%
Database hoàn chỉnh
2
3 ngày
Phác thảo giao diện
0%
Tất cả các giao diện phần mềm cần.
3
7 ngày
Code
0%
Hoàn tất ứng dụng với đầy đủ tính năng cài đặt trên điện thoại

4
2 ngày
Test tính năng
0%
Test tất cả các tính năng nếu có lỗi thì ghi chú và sửa.
5
1 ngày
Release
0%
Upload ứng dụng lên Store

Kỹ thuật:
STT
Vấn đề
Giải quyết
Ghi chú
1
Tên ứng dụng
KTShop – Quản lý bán hàng

3
Version
1.0

3
Thiết bị
Điện thoại di động chạy Android

4
Database
SQLite

  • Trong bài tiếp theo mình sẽ đi tiếp phân tích hệ thống và thiết kế database cho ứng dụng