[TFS] Chuyển Team Foundation Server giữa các server, các máy (video + ảnh)


thuvienwinform - Rất nhiều trường hợp, có thể là SQL Server gặp lỗi và phải cài lại, hay chỉ vì muốn đổi lại tên Server mà có thể xẩy ra những lỗi đối với Team Foundaiton Server (cụ thể là lỗi TF246017). Khi đó TFS sẽ mất kết nối với CSDL (cụ thể là database Tfs_Configuration). Cách khắc phục rất đơn giản. Chỉ cần vài dòng lệnh là xong!

- Chuẩn bị:
+ File TfsRestore.bat: https://www.dropbox.com/s/gclsrza6kjshtqz/TfsRestore.bat (2KB)
+ Máy có cái  Team Foundation Server, SQL Server

- Giải thich một số lệnh trong file .bat:
+ TfsConfig TfsServiceControl quiesce: dừng Team Foundation lại
+ TfsConfig TfsServiceControl unquiesce: khởi động lại Team Foundation
+ TfsConfig Accounts /ResetOwner: thiết lập tài khoản Owner cho file Database (cần thiết khi chuyển từ máy này sang máy khác)
+ TfsConfig Accounts /add /AccountType:ApplicationTier: thêm tài khoản ApplicationTier
+ TfsConfig RegisterDB: Thiết lập database cho Tfs. Đối với việc chuyển từ server này sang server khác cùng máy chỉ cẩn chuyển database và chạy lệnh này là OK

- Tình huống:
+ Thêm mới 1 server và muốn chuyển TFS sang đó
+ Hoặc chuyển TFS từ máy này sang máy khác
+ Cài lại SQL Server, cài lại win

- Cách làm này có thể khắc phục được lỗi TF246017
+ TF246017:

+ TF246017: Team Foundation Server could not connect to the database. Verify that the server that is hosting the database is operational, and that network problems are not blocking communication with the server

- Một số chú ý khi thực hiện:
+ File TfsRestore.bat phải được chạy bằng quyền Admin
+ Khi chuyển database phải stop (dừng) server đó lại. Nếu không sẽ không cho copy

- Thực hiện


Gồm có 2 bước cơ bản là:
B1: Chuyển Database
- Đầu tiên stop server đang được dùng để cài Tfs lại

- Copy các file database của Tfs (.mdf, .log) ra
+ Tìm đường dẫn
+ Thực hiện copy và paste ra đâu đó như bình thường

- Atach database sang server mới

- Tạo tài khoản mới cho database của Tfs trên server mới này
+ Chú ý với winserver thì phải yêu cầu mật khẩu bảo mật cao (hoặc bỏ tích Enfoce Password Policy)


B2: Thiết lập lại Team Foundation
Chạy file TfsRestore.bat và làm theo hướng dẫn

+ Thu Muc Tfs = Thư mục cài Team Foundation Server. Mặc định là: C:\Program Files\Microsoft Team Foundation Server 11.0\Tools
+ Server name = Tên Server mới muốn chuyển Tfs đến
+ Database name = tên database gắn kết với Tfs (mặc định là Tfs_Configuration)
+ Tai Khoan = tài khoản tạo đề quản lí Tfs_Confition ở B1

Done


Có gì vướng mắc khi chuyển Tfs các bạn có thể comment hoặc liên hệ với mình. Chúc thành công! ^^

Code một số thao tác đơn giản với xử lí hình ảnh: tăng độ sáng, độ tương phản, đổ màu,...



thuvienwinform - C# hỗ trợ chúng ta thư viện System.Drawing. Dựa vào đó chúng ta có thể thực hiện một số thao tác cơ bản với hình ảnh như thiết lập độ sáng, độ tương phản, xoay hình ảnh, hay tạo ảnh đen trắng,...Hôm nay mình xin được giới thiệu một số thao tác xử lí hình ảnh đơn giản thông qua lớp Bitmap trong System.Drawing


1. RGB
- Có thể hiểu nó là một bộ 3 số (R, G, B) nằm trong đoạn từ 0 -> 255. Mỗi số đại diện cho màu đỏ (Red - R), Xanh là cây (Green - G), Xanh lam (Blue). Bất kì màu nào cũng có thể được biểu diễn bằng bộ ba số này!
VD:
\
Màu đen: (0, 0, 0)
Màu đỏ: (255, 0, 0)
...
- Với hình ảnh (Image) nó được chia ra thành các pixel (điểm ảnh), mỗi pixel là một bộ ba số theo mô hình RGB này. Số pixcel = (chiều rộng)x(chiều cao).
- Trong C# để xử lí với các pixel này ta sử dụng lớp Bitmap trong System.Drawing (using System.Drawing)
- Cách làm chính là duyệt từng pixel và thực hiện các thao tác mong muốn trên các pixel đó để thu được bức ảnh mong muốn

2. Một số hàm, biến cơ bản
- Khai báo 1 Bitmap:
Bitmap bitmap = new Bitmap(anh);//anh là kiểu Image
Bitmap bitmap = new Bitmap(chieurong, chieucao);//chieucao, chieurong là kích thước của bitmap này
VD
Bitmap bitmap = new Bitmap(200, 200);//ảnh có kích thước 200x200

- Color:
Color c;//Bản ghi color. Khi đó bộ ba số RGB sẽ là: c.R, c.G, c.B
Color.FromArgb(r, g, b);//Lấy màu từ bộ ba số RBG
VD: màu đen
Color.FromArgb(0, 0, 0);//Màu đen
Color.Black;//Màu đen
Color.FromName("Black");//Màu đen

- Lấy màu của 1 pixel:
Color c;
c = bitmap.GetPixel(cot, hang);//cot, hang là tọa độ của pixel cần lấy màu

- Tô màu cho 1 pixel:
 bitmap.SetPixel(cot, hang, Color.FromArgb(r, g, b));//r, g, b là chỉ số RGB

câcsc
3. Thao tác cơ bản:
3.1. Chuyển ảnh về đen trắng (GrayScale):

GrayScale

- Để chuyển một ảnh về đen trắng ta chuyển  chỉ số từng pixel theo công thức: .299 * c.R + .587 * c.G + .114 * c.B

public Bitmap DenTrang(Image anh)
{
    Bitmap kq = new Bitmap(anh.Width, anh.Height);
    Bitmap anhtam = new Bitmap(anh);
    Color c;
    Byte rgb;
    for (int cot = 0; cot < anhtam.Width; cot++)
        for (int hang = 0; hang < anhtam.Height; hang++)
        {
            c = anhtam.GetPixel(cot, hang);
            rgb = (byte)(.299 * c.R + .587 * c.G + .114 * c.B);
            kq.SetPixel(cot, hang, Color.FromArgb(rgb, rgb, rgb));
        }
    return kq;
}


3.2. Chuyển ảnh về âm bản (Invert):

Invert

- Để chuyển ảnh về âm bản ta lấy 255 trừ đi từng chỉ số (làm màu từng pixel ngược lại)



public Bitmap AmBan(Image anh)
{
    Bitmap kq = new Bitmap(anh.Width, anh.Height);
    Bitmap anhtam = new Bitmap(anh);
    Color c;
    for (int cot = 0; cot < anhtam.Width; cot++)
        for (int hang = 0; hang < anhtam.Height; hang++)
        {
            c = anhtam.GetPixel(cot, hang);
            kq.SetPixel(cot, hang, Color.FromArgb(255 - c.R, 255 -  c.G, 255 -  c.B));
        }

    return kq;
}


3.4. Lọc màu (Filter):
Green Filter


- Đề lọc màu (cụ thể là theo 3 màu chính đỏ, xanh lá cây, xanh lam)
+ Màu đỏ: ta giữ nguyên màu đỏ và đảo ngược 2 màu kia (lấy 255 trù đi chỉ số G và B)
+ Tương tự với xanh và xanh lam

public Bitmap ChenMau(Image anh, int mau)
{
    //1 = do; 2 = xanh Green); 3 = xanh (blue)
    Bitmap kq = new Bitmap(anh.Width, anh.Height);
    Bitmap anhtam = new Bitmap(anh);
    Color c;
    int g = 0, r = 0 , b = 0;
    for (int cot = 0; cot < anhtam.Width; cot++)
        for (int hang = 0; hang < anhtam.Height; hang++)
        {
            c = anhtam.GetPixel(cot, hang);
            switch (mau)
            {
                case 1: r = c.R; g = c.G - 255; b = c.B - 255; break;
                case 2: r = c.R - 255; g = c.G; b = c.B - 255; break;
                case 3: r = c.R - 255; g = c.G - 255; b = c.B; break;
            }
            r = Math.Max(r, 0);
            b = Math.Max(b, 0);
            g = Math.Max(g, 0);
            kq.SetPixel(cot, hang, Color.FromArgb(r,g,b));
        }

    return kq;
}



3.5. Ghép 2 hình:
- Đề ghép 2 hình thì ta khai báo một Bitmap có chiều rộng bằng chiều rộng 1 ảnh và chiều cao bằng tổng chiều cao 2 ảnh.
- Sau đó setpixel từng pixel cho bitmap này.
Ngoài ra còn có chỉnh độ sáng (Brightness), chỉnh độ tương phản (Contrast),...các bạn có thể xem thêm
trong code.



4/06/2014
Đăng bởi :
Nhãn :

[TFS] Khi đã vào guồng


thuvienwinform - 1 tuần là không đủ giới thiệu được hết các chức năng của TFS cũng như nổi trội của nó! Đó mới chỉ là những bước đầu tiên trong việc sử dụng TFS đề phát triển phần mềm. Nhưng mình nghĩ rằng nó đã đủ cho một nhóm mới làm quen với TFS. Giải quyết những câu hỏi ban đầu khi mới tiếp xúc với TFS cũng như scrum. Và đó cũng chỉ là những hiểu biết của mình về nó (2 tuần sử dụng), có thể mình chưa hiểu hết về nó, vì vậy rất mong các bạn đóng ghóp, chia sẻ kinh nghiệm trong sử dụng, quản lí TFS để các nhóm phát triển chúng ta làm việc hiệu quả hơn, có những sản phẩm tốt, nhanh hơn! Đó là mong muốn lớn nhất của mình. Vì hiện nay các nhóm thường không public các công nghệ cũng như quy trình làm việc của mình! Nhưng mình nghĩ là cái đó nên chia sẻ để các nhóm cùng học hỏi lẫn nhau, cùng nhau phát triển.

Lúc đầu mình không hề biết đến TFS là cái gì? Rất ít bài viết tiếng việt nói về nó (có thể là có quá dễ hoặc là các nhóm không muốn chia sẻ). Và mọi công việc trong nhóm đều thực hiện trên doc, excel, mail. Vì vậy, dù mới chỉ dùng được 2 tuần nhưng mình rất nóng lòng muốn chia sẻ nó đến các nhóm phát triển phần mềm để chúng ta cùng sử dụng những công nghệ phát triển nhất, với mục đích cuối cùng là hiệu suất công việc!

Những bài viết mình ít tham khảo (Vì toàn là nguồn tiếng anh) nên có nhiều sai sót mong các bạn đọc đóng ghóp cho nó hoàn thiện hơn nữa. Những phần như giao công việc, tạo các product log, back log...mình sẽ không hướng dẫn vì khi đã thao tác với TFS thì nó sẽ tự đến với bạn một cách tự nhiên, không nên áp đặt theo cách của mình!

Mình rất mong là có một cộng đồng TFS việt để cùng nhau chia sẻ cách làm việc của nó cũng như là nguồn tài liệu cho những người mới, là nơi giao lưu cũng như chia sẻ kinh nghiệm về TFS.

[TFS] Phân quyền. Nhiệm vụ quan trọng

thuvienwinform - Có thành viên chỉ được xem mục work Item, có thành viên được xem hết các mục. Hoặc có thành viên được phép tạo build, project,...Đó là công việc phân quyền

- Việc phân quyền trong TFS rất tỉ mỉ, có thể chỉnh cho cả nhóm, hoặc từng cá nhân!
- Phân quyền là do Admin (master hoặc product owner) thực hiện
Phân quyền chung:



Phân quyên từng project


v..v phần này rất nhiều nhưng rất dễ hiểu, các bạn có thể tự vọc nha :)

[TFS] Backup, công việc không thể thiếu

thuvienwinform - Những sự cố là không thế tránh khỏi như virus, hỏng mạng, cài lại hệ điều hành, đổi máy server khác,...đều làm chúng ta mất dữ liệu. Để khắc phục vấn để này ta phải backup TFS thường xuyên. Thật may là nó đã có sẵn, chúng ta chỉ việc cài và quyên nó đi :D

Mở TFS Administration Console lên


Chú ý: Network Backup path phải là folder share (Full quyền cho EveryOne)


Sau đó chỉ việc next và configure là xong

[TFS] Thiết lập email thông báo (Alert) cho TFS bằng Gmail hoặc Live mail. Giúp cập nhật công việc kịp thời

Email được gửi đến khi có check-in

thuvienwinform - Chẳng nhẽ bật máy lên là phải vào visual luôn thì mới thấy công việc được giao? Không cần, chỉ cẩn vào mail là có thể biết được những lần check-in, sửa code,...Trong bài này mình xin được hướng dẫn tạo email cảnh báo đến các tài khoản khi ai đó check-in, tạo build,...

Chú ý:
- Với nhóm nhỏ khoảng 5, 6 thành viên thì có thể dùng Gmail
- Với nhóm nhiều thành viên thì Gmail sẽ chặn thư (lí do là spam). Còn đối với live mail thì mình thấy vẫn ổn
- Việc gửi thông báo này sử dụng smtp server vì vậy những máy cài winserver có thể tự tạo cho mình 1 smtp server riêng được (nếu có máy server riêng mình sẽ hướng dẫn chi tiết phần này :) )

Để gửi được thư, trước hết phải thiết lập thông báo (Alert) trên máy cài TFS sau đó thiết lập trên từng tài khoản (do từng cá nhân thực hiện)

A. Cài đặt trong máy cài TFS
I. Sử dụng Gmail: https://mail.google.com/
1. Tạo tài khoản Gmail (có rùi thì đổi lại mật khẩu cho mạnh)
Yêu cầu: mật khẩu phải đủ mạnh (chữ hoa, thường, số, kí tự đặc biệt) thì mới được chấp nhận

2. Bật POP (POP là gì thì có thể Google nha)
- Vào hòm thư -> cài đặt

- Chọn tab "chuyển tiếp và POP/MAP


3. Cài đặt trong Team Foundation Adminstration Console




II. Sử dụng live mail
1. Tạo tài khoản: https://mail.live.com/ (có rồi thì đổi lại mật khẩu cho mạnh)
Yêu cầu: Yêu cầu: mật khẩu phải đủ mạnh (chữ hoa, thường, số, kí tự đặc biệt) thì mới được chấp nhận

2. Cài đặt trong Team Foundation Adminstration Console


B. Cài đặt hòm thư của từng tài khoản

- Chọn project -> ấn vào tên của mình -> My Alerts:

- Thêm email và khi nào gửi email

- Ngoài ra có thể chọn Advance Alets Managerment Page để chỉnh nội dung mail (phần này tự vọc nhé)

Ok vậy là đã hoàn thành Alert cho TFS!


[TFS] Source Control Explorer và việc quản lí code

thuvienwinform - Source Control Explorer trong VS chính là công cụ để quản lí code khi đã được up lên TFS. Thông qua nó ta có thể thực hiên việc check-in sau khi chỉnh sửa, check-out  lấy code về, xem các version, thành viên nào up lên, so sánh các file, nội dung được chỉnh sửa bởi ai....

A. Source Control Explorer



B. Đưa code lên server
Sau khi tạo project xong ta có thể upcode lên như sau

b1: map
map là để đưa code trên server về một thư mục tên máy của mình




b2: Nếu đã code code rùi thì chỉ việc Get Last Version về là được. Còn chưa có thì sẽ đưa code lên
- Get Last version


- Up code lên.
Để thực hiện việc này ta có nhiều cách.
Cách 1: kéo thả folder chứa code vào Source Explorer

Cách 2: chuột phải vào solution đang mở -> Add solution to...



Sau đó check-in
hoặc


Các version


[TFS] Kết nối TFS với Visual Studio và tạo project mới

thuvienwinform - Hôm nay mình xin hướng dẫn cách kết nối Visual Studio (VS) vào một Team Foundation Server đã được tạo ra

Địa chỉ server: Ohia-Pc:8080/tfs

A. Kết nối đến TFS

OK, bật VS lên

Chọn Team -> Connect to a... -> connect

Ấn nút server -> Add -> điền địa chỉ server vào -> OK




Ấn Close



Chọn server -> ấn connect



B. Tạo project

Sau khi đang connet thành công ta có tạo 1 project trong tfs như sau:

Team -> Connect a team... -> new team project...



và thực hiện theo các bước



Hiển thị project trên web:




[TFS] Team Explorer và trang Web TFS

thuvienwinform - Team Explorer là nơi quản lí các kết nối, công việc được giao...Để hiển thị nó ta làm như sau:


Trong này có sẵn nhiều video hướng dẫn các bạn có thể xem trước, nó rất bổ ích đấy

Còn về phần web, nó quản lí tất cả của TFS trên này: các project, các work item, code, test,...
Để có cái nhìn trực quan các bạn truy cập vào địa chỉ TFS để xem


[TFS] Thêm tài khoản làm quản trị (Admin)

thuvienwinform - Để phân biệt một tài khoản có quyền quản trị (Admin) hay không thì bạn ấn vào nút cài đặt ở góc trên phải (nếu tài khoản nào là limited thì sẽ không nhìn thấy). Trong cài đặt này mà thấy xuất hiện tab Acess Level 
Tài khoản Admin
Để thêm một tài khoản làm admin, ta mở TFS Administration Console lên, tại Application Tiers chọn group  Membership




Chọn Team Foundation Administrators -> properties...

Tích vào windows user or group -> add

Điền tài khoản cần thêm vào
 Sau đó ok và ok
Xong rùi đấy, thử đăng nhập xem đã có Acess Level chưa



Nhận ngay 100$ cho VPS

Mua hàng ủng hộ page

Ủng hộ page

Nhãn

Code (45) Team Foundation Server (17) Database (14) News (14) product (13) toolbox (10) Linq (9) SoftDesign (8) XNA (6) API (5) Project (5) item (4)

- Bản quyền thuộc về Thư Viện WinForm - Giao diện: Metrominimalist - Thiết kế: Johanes Djogan -