[TFS] Thêm thành viên, tài khoản vào nhóm
thuvienwinform - Để thêm tài khoản vào nhóm ta có 2 cách. Cách 1 là tạo tài khoản trên máy cài TFS. Cách 2 là thêm các máy vào cùng work group hoặc domain rồi thêm vào TFS.
Trong bài này mình sẽ hướng dẫn cách 1. Còn cách 2 nếu bạn nào có nhu cầu mình sẽ hướng dẫn sau (p/s: mình cũng chưa thử :3)!
Cách 1 gồm 2 bước là tạo tài khoản sau đó thêm tài khoản vào TFS!
Bước 1: Tạo tài khoản trên máy cài TFS
Trong bước này này có 2 phương án để thêm tài khoản, 2 phương án này là tương tự nhau
Phương án 1: Thêm bằng lệnh net user trong cmd (nhanh hơn)
- Mở cmd với quyền admin
- Gõ vào net user TàiKhoản MậtKhẩu /add
- Chú ý là mật khẩu phải đủ mạnh thì mới được chấp nhận
+ Ví dụ: net user TaiKhoan1 TaiKhoanSo1 /add
+ Ảnh minh họa:
Phương án 2: Thêm bằng Computer Management (compmgmt.msc)
- Chuyển vào Users trong Local User and Group
- Sau đó chuột phải vào chọn New User (chú ý là tích vào Password nerver experes)
Khi khởi động những tài khoản này sẽ hiện thị lên rất nhiều, để ẩn đi làm như sau: click kép vào user trong ComputerManagerment -> chuyển qua tab Member of -> remove
Bước 2: Thêm những tài khoản này vào TFS
- Khi chưa được thêm thì sẽ không đăng nhập được
- Đăng nhập TFS trên web bằng tài khoản Admin -> ấn vào nút cài đặt ở góc trên phải
Nhập tài khoàn vào và ấn check name
cuối cùng ấn save change để lưu
Ok thử đăng nhập coi nào
[TFS] Đổi, thêm cổng cho Team Foundation Server. Change Port default 8080
thuvienwinform - Đây là vấn đế được rất nhiều bạ sau khi cài TFS quan tâm. Việc đổi cổng cho server TFS rất đơn giản, bạn chỉ cẩn chỉnh lại cổng của của TFS trong IIS là xong! Sau đây mình xin hướng dẫn việc đổi cổng này!
B1: Mở IIS lên
B2: Chọn Team Foundation Server trong Sites và ấn Bidings...
B3: Nếu muốn thêm ấn nút Add, còn muốn sửa thì ẩn nút Edit (chỉ sửa mục phần port còn các mục khác để nguyên)
Ok.
[TFS] Notifiocation URL, Server URL. Đưa TFS thành online
thuvienwinform - 2 URL có mục đích khác nhau. Mình sẽ giới thiệu đến các bạn các để 2 URL này cho đúng và các đưa TFS thành online!
Yêu cầu: có 1 IP tĩnh, đã được cấu hình vào được mạng
- Notification URL: để dạng [IP tĩnh]:[cổng]/tfs
+ Ví dụ IP tĩnh là 192.168.233.10; cổng 8080: 192.168.233.10:8080/tfs
+ Tác dụng của nó là chèn đường dẫn vào Email thông báo (sẽ nói ở bài sau) -> với url này chỉ cẩn ấn vào sẽ đến đúng địa chỉ luôn
- Server URL: để localhost:[cổng]/tfs hoặc ip tĩnh:[cổng]
+ Ví dụ: 192.168.233.10:8080/tfs hoặc localhost:8080.
+ Vì ta đã có IP tĩnh nên khi truy cập vào địa chỉ của IP tĩnh chính là localhost trên máy này -> ở đâu cũng truy cập được TFS -> thành online :D
+ Sau khi chỉnh xong ấn test để đăng nhập- Ngoài cách này, nếu bạn không có IP tĩnh thì có thể sử dụng Visual Stdio online http://go.microsoft.com/fwlink/?LinkId=307137&clcid=0x409 để tạo project online
[TFS] Cài đặt Team Foundation Server (Step by Step)
Team Foundation Server Administration Console
Giao diện web của Team Foundation Server
thuvienwinform - Hôm nay minh xin được hướng dẫn các bước cài đặt TFS để tạo môi trường làm việc nhóm cho các team phát triến ứng dụng.
Trong quá trình cài đặt, nếu gặp vường mắc gì có thể liên hệ mình hoặc để lại cmt. Có thể mình sẽ giúp được
- Skype: ngochoaitn
- Gmail: ngochoaitn
- Facebook: ngochoaitn
A. Chuẩn bị:
1. Cấu hình máy cài TFS
- Cấu hình tối thiểu: Win7 trở lên, hoặc winServer 2008 (64bit) SP1 trở lên, RAM 1GB, 2.2GHz, Có SQL Server
- Cấu hình đề nghị : WinServer 2012 64bit, RAM > 4GB, i3 trở lên, IP tĩnh, SQL Server
- Với WinServer 2008 R2 chưa nâng cấp lên sp1 tải thêm: http://www.microsoft.com/en-us/download/details.aspx?id=5842 (chọn file windows6.1-KB976932-X64.exe - 903.3MB)
- Tải về TFS 2012 (update 4): http://www.microsoft.com/en-us/download/details.aspx?id=38185 (1.14GB)
- Key MSDN (vĩnh viễn): BVGTF-T7MVR-TP46H-9Q97G-XBXRB
- SQL Server (nên cài).
OK. Sau khi đã đủ nguyên vật liệu ra bắt đầu tiến hành cài đặt!
(Dưới đây mình sẽ ví dụ cài trên máy chạy WinServer 2008 R2 Sp1 với tất cả cài đặt là mặc định. Nếu bạn muốn chút tùy chọn như chọn CSDL,.. có thể tham khảo tại link này)
B. Cài đặt
Chú ý:
- Nên cài SQL Server trước (hạn chế lỗi của SQL Express). Nhưng trong những bước dưới đây mình hướng dẫn trên máy chưa cài SQL Server
- Trong quá trình cài mà nó yêu cầu tài khoản, mật khẩu thì đó chính là tài khoản, mật khẩu Admin trên máy
- Trong quá trình cài mà gặp lỗi thì xem trong phần C để khắc phục
Bắt đầu nào!
Mở file cài đặt
Install Now
Tiến trình cài đặt
Cơ bản cài đặt xong
Nhập key
Thiết lập server
Next
Chọn cái đầu tiên (nếu chưa cài SQL Server)
Configure
(p/s: vì mình chạy máy ảo Ram 1GB nên nó hiện cái thông báo TF255456)
ok
Đến đây đã cài xong. Bạn có thể vào địa chỉ hiển thị trên trang cài để kiểm tra. Nếu nó yêu cầu tài khoản mật khẩu thì đó chính là tài khoản, mật khẩu admin trên máy
* Cài Build (nên cài luôn)
Gõ xong ấn Test xem có nhập đúng không
ok Xong
C. Những lỗi có thể gặp trong khi cài TFS:
1. "TF400157: Service Pack 1 or higher os required for this version of windows."
- Lý do: Chưa cài bản SP1 (với winserver2008R2)
- Khắc phục: cài bản SP1 (mình đã đưa link ở trên)
3. Lỗi database (do SQL Express rất hay găp lỗi này)
- Khắc phục: cài sqlServer sau đó mở Team Foundation Adminstration Console để tiếp tục cài
Chú ý:
- Nên cài SQL Server trước (hạn chế lỗi của SQL Express). Nhưng trong những bước dưới đây mình hướng dẫn trên máy chưa cài SQL Server
- Trong quá trình cài mà nó yêu cầu tài khoản, mật khẩu thì đó chính là tài khoản, mật khẩu Admin trên máy
- Trong quá trình cài mà gặp lỗi thì xem trong phần C để khắc phục
Bắt đầu nào!
Mở file cài đặt
Install Now
Tiến trình cài đặt
Cơ bản cài đặt xong
Nhập key
Thiết lập server
Next
Chọn cái đầu tiên (nếu chưa cài SQL Server)
(p/s: vì mình chạy máy ảo Ram 1GB nên nó hiện cái thông báo TF255456)
ok
Đến đây đã cài xong. Bạn có thể vào địa chỉ hiển thị trên trang cài để kiểm tra. Nếu nó yêu cầu tài khoản mật khẩu thì đó chính là tài khoản, mật khẩu admin trên máy
* Cài Build (nên cài luôn)
Gõ xong ấn Test xem có nhập đúng không
ok Xong
C. Những lỗi có thể gặp trong khi cài TFS:
1. "TF400157: Service Pack 1 or higher os required for this version of windows."
- Lý do: Chưa cài bản SP1 (với winserver2008R2)
- Khắc phục: cài bản SP1 (mình đã đưa link ở trên)
2. TF255466....System Verifications error
- Khắc phục: khởi động lại máy -> mở Team Foundation Administration Consolue lên và cài tiếp
3. Lỗi database (do SQL Express rất hay găp lỗi này)
- Khắc phục: cài sqlServer sau đó mở Team Foundation Adminstration Console để tiếp tục cài
[TFS] Giới thiệu về Team Foudation Server
Các thành phần trong giải pháp ALM của Microsoft
thuvienwinform - Với các nhóm lập trình, dù ít hay nhiều thành viên thì công cụ để làm việc nhóm là hết sức quan trọng, với nhóm code đơn thuần thì có thể sử dụng SVN Server là đủ rùi nhưng với nhóm đầy đủ gồm đội phân tích thiết kế, code, test,...thì SVN sẽ không đáp ứng được yêu cầu mà cần cộng cụ nhiều chức năng hơn! Và Team Foundation Server (TFS) là lựa chọn tối ưu trong trường hợp này. Chức năng chính của nó là quản lí, tạo môi trường làm việc phát triển phần mềm theo nhóm dựa trên khung làm việc Scrum. Trong thời gian tới thuvienwinform xin được giới thiệu đến bạn đọc việc cấu hình, cài đặt cũng như sử dụng TFS. Triển khai nó lên máy server để các thành viên trong nhóm đều có thể làm việc cùng nhau online luôn.
Dù mới chỉ 2 tuần sử dụng nhưng mình rất nóng lòng muốn gửi đến các bạn công nghệ TFS này. Các bài viết chắc chắn không tránh khỏi thiếu sót, rất mong nhận được sự đóng ghóp, chia sẻ!
- Một số bài viết yêu cầu tìm hiểu:
+ Scrum là gì? http://hanoiscrum.net/hnscrum/gioi-thieu/scrum-lagi
+ Giới thiệu về Scrum với TFS: http://www.slideshare.net/duongtrongtan/scrumday-vietnam-2012-scrum-with-team-foundation-server-quang
Các công cụ của Scrum bao gồm các Product Backlog chứa các Sprint Backlock. Mỗi Sprint đều có các công việc và thời gian cụ thể. Các cuộc họp cho sprint được thực hiện thường xuyên (4 cuộc họp) lặp đi lặp lại giúp cho công việc luôn được kiểm soát, đưa ra giải pháp tối ưu nhất!
Code kiểm tra dữ liệu vừa thay đôi trong CSDL
thuvienwinform - Để xem dữ liệu vừa thay đổi (thêm, sửa, xóa) trong CSDL ta sử dụng code sau:
(sử dụng LINQ)
public static bool ChangeData(QLDTDataContext db) { int insert = db.GetChangeSet().Inserts.Count; int update = db.GetChangeSet().Updates.Count; int delete = db.GetChangeSet().Deletes.Count; if (insert + update + delete == 0) { return false; } return true; }Với QLDTDataContext là lớp tạo bởi item LinqToSql: http://thuvienwinform.blogspot.com/2014/03/code-kiem-tra-du-lieu-vua-thay-oi-trong-csdl.html
Kết quả trả vể true nếu có thay đổi và ngược lại
Hàm set và get trong C#
thuvienwinform - Chắc hẳn trong quá trình học cũng như tìm kiếm trên mạng thì hai hàm này không còn xa lạ đối với các bạn nữa. Nhưng chắc hẳn câu hỏi đầu tiên đặt ra là tại sao lại phải xây dựng các biến theo set và get mà không gán bình thường? Hãy xem nó có những nổi trội gì nhé!
Ví dụ 2 code sử dụng set get:
Code 1:
int _tuoi = 0; public int Tuoi { set { _tuoi = value; if (_tuoi < 0) _tuoi = 0;//Không có tuổi nhỏ hơn 0 } get { return _tuoi; } } this.Tuoi = -8;//Thực hiện set => _tuoi = 0; int layTuoi = this.Tuoi;//thực hiện get => trả về giá trị _tuoi (0)
Code 2:
private string _hoTen; public string HoTen { set { _hoTen = value; } get { return _hoTen; } } //Tương đương với code sau: public string HoTen { set; get; }
- Như ở đoạn code 1: khi bạn nhập vào Tuoi = -1 thì nó sẽ trả về 0, chứ bình thường ra phải code một đoạn nữa để xử lí trường hợp nhập sai tuổi! Rất hữu ích đúng không nào
- Còn với đoạn code 2 thì ở đây chỉ nhập vào và xuất ra luôn (chưa có ràng buộc) thì có thể thu gọn về chỉ còn set; get; thôi (vẫn nên sử dụng vì sau này có thêm ràng buôc gì cho biến này thì sẽ thêm vào một cách dễ dàng hơn!).
Có set get mới là thuộc tính, mỗi thuộc tính có các tính chất của nó, ví dụ 0 < Cân nặng < 1000, năm sinh < năm hiện tại, ... set, get để thực hiện các ràng buộc đó.
Có set get mới là thuộc tính, mỗi thuộc tính có các tính chất của nó, ví dụ 0 < Cân nặng < 1000, năm sinh < năm hiện tại, ... set, get để thực hiện các ràng buộc đó.
_tuoi là biến bình thường, còn Tuoi là thuộc tính (có cái cờ lê :v)
Breakpoint giúp kiểm soát code, giá trị của các biến trong khi chạy thử
Di chuột để xem các giá trị của mảng hAdress
thuvienwinform - Trong quá trình code và chạy thử thì việc kiểm soát giá trị của các biến là hết sức khó khăn. Thường thì dùng các MessageBox hoặc một textBox, label để hiển thị...Công việc này mất nhiều thời gian. Tại sao không dùng chức năng breakpoint có sẵn trong visual để xem giá trị của chúng! Hôm nay mình xin giới thiệu với các bạn cách sử dụng Breakpoint này (chỉ với 1 click chuột)!
- Tạo Breakpoint
+ Tại đoạn code mà bạn muốn chương trình dừng lại để xem giá trị các biến bạn chuột phải -> Breakpoint -> Insert Breakpoint xong luôn.
+ Mình thường làm như này: tạo 1 button xong Insert Breakpoint vào sự kiện ấn cái button đó. Khi nào muốn dùng lại xem thì ấn button đó là xong! :D
Sau khi Insert Breakpoint xong sẽ có cái hình tròn có mũi tên ở trong xuất hiện tại chỗ mà chương trình sẽ dừng lại
- Xem giá trị các biến như nào?
+ Sau khi chương trình chạy đến đoán có Breakpoint thì chương trình sẽ dừng lại, bây giờ bạn hiển thị Visual Studio lên và di chuột vào biến nào cần xem giá trị là nó sẽ hiện ra cho bạn (Ví dụ như ảnh ở đầu bài này).
Cách để thêm nhanh: chuột phải vào biến -> Refactor -> Encapsulate Field... -> ok
Code up ảnh lên CSDL (Sử dụng kiểu image trong SQL server)
thuvienwinform - Để đưa anh lên CSDL ta phải tạo 1 trường trong bảng với kiểu dữ liệu là image (khi up ảnh lên sẽ chứa trong trường này). Ý tưởng là sẽ convert ảnh cần up lên CSDL thành kiểu memorystream rồi mới up lên. Khi lấy về sẽ dịch ngược lại, từ memorystream thành image!
1. Tạo CSDL
2. Code up ảnh lên CSDL
//ảnh -> byte[] public byte[] imageToByteArray(System.Drawing.Image imageIn) { MemoryStream ms = new MemoryStream(); imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); return ms.ToArray(); } //byte[] -> ảnh public Image byteArrayToImage(byte[] byteArrayIn) { MemoryStream ms = new MemoryStream(byteArrayIn); Image returnImage = Image.FromStream(ms); return returnImage; }
OK! Như vậy là bạn đã có thể up ảnh lên CSDL đc rồi!
Ví dụ sử dụng 2 hàm trên cho 2 nút btChuyenMa và btDichMa (sủ dụng LINQ):
- DB.tbImage: bảng csdl để up ảnh lên, gồm 2 trường là ID và Data
private void btChuyenMa_Click(object sender, EventArgs e) { DB.tbImage img = new DB.tbImage(); img.Data = imageToByteArray(ptbAnh.Image); db.tbImages.InsertOnSubmit(img); db.SubmitChanges(); } private void btDichMa_Click(object sender, EventArgs e) { var data = (from t in db.tbImages where t.ID == 0 select t.Data.ToArray() ).SingleOrDefault(); b = data; ptbLayDL.Image = byteArrayToImage(b); }