Chắc hẳn các bạn thấy nhiều phần mềm có tính năng update rất hay, chà ước gì ... ;[IMG]images/smilies/wink.png[/IMG]
Vậy mình sẽ hướng dẫn các bạn cách làm tính năng này theo cách cực kỳ là dễ dàng .
Đầu tiên cần 1 host cho phép download direct link (chả lẽ down tự động bằng rapid [IMG]images/smilies/wink.png[/IMG]) , chưa kể mỗi lần up lên link lại thay đổi ) , bản thân là dân lập trình offline (nói là dân lập trình cho oai tí [IMG]images/smilies/biggrin.png[/IMG] ) , nên mấy vấn đề host hiếc gì đó không biết gì hết .
không sao , hiện có 2 loại host free và cho direct link mà không cần kiến thức gì hết đó là google và opera , nhưng khyến cáo nên dùng google vì opera hay die lắm .
google thì cũng có 2 loại là code.google.com (dành cho các dự án mã nguồn mở) và googlepages (tạo trang web cá nhân very easy).
Chọn loại nào cũng được . Nó cho directlink cả mà.
Để bắt đầu cho tính năng cập nhật , chúng ta up lên host 2 loại tập tin , 1 là 1 file dạng text hay gì đó tuỳ , dung lượng chỉ vài byte thôi [IMG]images/smilies/smile.png[/IMG] , lưu thông tin của phiên bản mới nhất, và vài thông tin khác như bản từ bao nhiêu đến bao nhiêu phải down file gì , bản cũ hơn thì down thêm gì , đường link down bản mới nhất ...
down file update đó về , check thôi , nếu thấy mình dùng bản cũ thì thông báo , không thì thôi . Nói chung là chỉ có thế , các bạn có thể phát triển cho nó chuyên nghiệp hơn
Dễ quá phải không [IMG]images/smilies/biggrin.png[/IMG]
Dưới đây là 1 ví dụ của bác anhtuyenbk về down file trong dotnet có hiện thanh tiến trình

Mã:
    private void btnDownload_Click(object sender, EventArgs e)    {        if (this.saveFileDialog1.ShowDialog() == DialogResult.OK)        {            this.web = new WebClient();            this.web.DownloadProgressChanged += new DownloadProgressChangedEventHandler(this.web_DownloadProgressChanged);            this.web.DownloadFileAsync(new Uri(this.textBox1.Text), this.saveFileDialog1.FileName);        }    }    private void web_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)    {        this.progressBar1.Value = e.ProgressPercentage;        this.label2.Text = e.ProgressPercentage.ToString() + " %";    }