﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Diễn đàn lập trình viên .NET / Visual Studio .Net và các vấn đề liên quan / Visual Studio 2008 </title><generator /><description>Diễn đàn lập trình viên .NET</description><link>http://forum.vi-vn.com/</link><webMaster>admin@vi-vn.com</webMaster><lastBuildDate>Thu, 11 Mar 2010 16:10:43 GMT</lastBuildDate><ttl>20</ttl><item><title>Gửi Email động trong ASP.NET</title><link>http://forum.vi-vn.com/Topic188-20-1.aspx</link><description>Gửi Email động trong ASP.NET&lt;br&gt;&lt;br&gt;Giới thiệu.&lt;br&gt;Với 1 ứng dụng web hiện nay thì việc hổ trợ liên hệ giửa khách hàng và nhà cung cấp dịch vụ là không thể tránh khỏi, với cách làm củ thì các bạn phải dùng cách cấu hình Microsoft CDO trong Net 1.1, cách này rất vất vả và bất tiện, nhưng với asp.net 2.0 thì mọi việc trở nên hết sức dể dàng. &lt;br&gt;&lt;br&gt;Nội dung:&lt;br&gt;Trong bài giới thiệu này mình sẻ cố gắng giải thích cô động và xúc tích, đọc xong bài này các bạn sẻ có thể làm được:&lt;br&gt;&lt;br&gt;1. Tạo 1 email template mẫu có sẳn.&lt;br&gt;2. Cấu hình smtp.&lt;br&gt;3. Lấy địa chỉ email từ file web.config.&lt;br&gt;4. Bật chức năng bảo mật cho email gửi đi. (enable SSL)&lt;br&gt;&lt;br&gt;Nếu các bạn muốn thì hiểu rỏ hơn về Mail cũng như các lớp cung cấp phục vụ cho việc gửi mail, xin vui lòng tham khảo thêm MCTS Self-Paced Training Kit (Exam 70-536): Microsoft .NET Framework 2.0 Application Development Foundation, chương 15 (cơ bản về .NET 2.0).&lt;br&gt;&lt;br&gt;Cách làm:&lt;br&gt;&lt;br&gt;Bước 1:&lt;br&gt;Dùng Visual Studio 2005/2008 tạo 1 ứng dụng Web, chọn ngôn ngữ mà bạn thích, ở đây mình code trên 2 ngôn ngữ VB và C#, đầu tiên mình sẻ tạo 1 template mẫu phục vụ cho việc gửi mail.&lt;br&gt;&lt;br&gt;&lt;IMG src="http://forum.vi-vn.com/Uploads/Images/88c0c250-3e1b-44aa-92ec-98dd.png"&gt;&lt;br&gt;&lt;br&gt;Bước 2:&lt;br&gt;Và mail template có dạng sau:&lt;br&gt;&lt;br&gt;&lt;IMG src="http://forum.vi-vn.com/Uploads/Images/1afecbcc-bf1d-4037-bcc3-76ba.png"&gt;&lt;br&gt;&lt;br&gt;Và đây là code html của mail mẫu&lt;br&gt;&lt;br&gt;&lt;IMG src="http://forum.vi-vn.com/Uploads/Images/2c66cfd4-00fe-49f7-9a97-b075.png"&gt;&lt;br&gt;&lt;br&gt;Giờ khoang hả quan tâm đến các từ trong dấu [], chẳng hạn [Sender], nó chính là các tham số mà ta sẻ thay thế.&lt;br&gt;&lt;br&gt;Bước 3:&lt;br&gt;Tiếp đến tạo 1 trang để cho người dùng gửi yêu cầu, nơi mà chúng ta sẻ áp dụng chức năng send mail:&lt;br&gt;&lt;br&gt;&lt;IMG src="http://forum.vi-vn.com/Uploads/Images/048e5a5c-53ea-43d9-8d28-21f5.png"&gt;&lt;br&gt;&lt;br&gt;Các này dể thiết kế nên mình không có đi sâu vào vấn đề làm thế nào để layout nó, ở đây mình dùng table.&lt;br&gt;&lt;br&gt;Bước 4:&lt;br&gt;Giờ đến phần cấu hình smtp trong web.config, mục đích cho phép người dùng dể dàng chỉnh sửa email gửi đi 1 cách dể dàng mà không cần đụng đến mã nguồn.&lt;br&gt;&lt;br&gt;&lt;IMG src="http://forum.vi-vn.com/Uploads/Images/afae991e-68c3-4f88-aded-198b.png"&gt;&lt;br&gt;&lt;br&gt;Ở đây do mình dùng host của godaddy nên cấu hình smtp yêu cầu là như hình trên, nếu smtp của các bạn là gmail hoặc yahoo thì phải cấu hình cho đúng, ví dụ: của gmail là stmp.gmail.com, port là 587. Ở đây mình cấu hình smtp trên domain của mình đang sử dụng (http://www.vi-vn.com).&lt;br&gt;&lt;br&gt;Chú ý: tag smtp phải đặt trong tag configuration và được bộc lại bởi tag system.net&lt;br&gt;&lt;br&gt;Típ: Các bạn nên bỏ nó phía dưới cùng trong tag configuration&lt;br&gt;&lt;br&gt;Bước 5: tạo 1 thuộc tính để lấy giá trị email trong web.config&lt;br&gt;&lt;br&gt;C#&lt;br&gt;&lt;IMG src="http://forum.vi-vn.com/Uploads/Images/e4d684bc-82e4-429b-96e6-5513.png"&gt;&lt;br&gt;VB.NET&lt;br&gt;&lt;IMG src="http://forum.vi-vn.com/Uploads/Images/31bd7389-210e-4f70-81f0-82b9.png"&gt;&lt;br&gt;&lt;br&gt;Chú ý: thuộc tính này chỉ đọc thôi, không cho phép ghi xuống cho nên chỉ có get C#, và ReaOnly trong VB.&lt;br&gt;&lt;br&gt;Chú ý: các bạn phải using hoặc import 2 namespace vào là:&lt;br&gt;&lt;br&gt;C#&lt;br&gt;using System.Net.Configuration;&lt;br&gt;using System.Configuration;&lt;br&gt;&lt;br&gt;VB&lt;br&gt;Imports System.Configuration&lt;br&gt;Imports System.Net.Configuration&lt;br&gt;&lt;br&gt;Với thuộc tính này chúng ta sẻ lấy được địa chi email: admin@vi-vn.com&lt;br&gt;&lt;br&gt;Bước 6: Viết hàm send mail&lt;br&gt;&lt;br&gt;Hàm này sẻ trả về kiểu String, dùng để nhận biết kết quả của việc send mail (thành công hay thất bại), bạn cũng có thể trả về kiểu bool nếu bạn thích.&lt;br&gt;&lt;br&gt;C#&lt;br&gt;public string SendMail(string subject, string body,&lt;br&gt;string to, bool isHtml, bool isSSL)&lt;br&gt;&lt;br&gt;VB &lt;br&gt;Public Function SendMail(ByVal subject As String, ByVal body As String, _&lt;br&gt;ByVal toAddress As String, ByVal isHtml As Boolean, ByVal isSSL As Boolean) _&lt;br&gt;As String&lt;br&gt;C#&lt;br&gt;&lt;IMG src="http://forum.vi-vn.com/Uploads/Images/310055a3-87d0-43ac-b635-1793.png"&gt;&lt;br&gt;&lt;br&gt;VB.NET&lt;br&gt;&lt;IMG src="http://forum.vi-vn.com/Uploads/Images/64ce0b89-20e6-450f-8975-8db5.png"&gt;&lt;br&gt;&lt;br&gt;Phương thức send mail này sẻ nhận vào các tham số như: chủ đề, nội dụng, người nhận, gửi mail dạng html, mã hoá SSL (Secure Socket Layer).&lt;br&gt;&lt;br&gt;Đầu tiên hàm này sẻ tạo 1 đối tượng MailMessage, và được bộc lại bởi block using, để đảm bảo rằng đối tượng này sẻ được Dispose khi ra khỏi hàm và trước khi Collect Garbage thực hiện việc này. Như những dòng lệnh của đả nói lên rằng là 1 mail bao gồm người gửi (From), người nhận (To), chủ đề (Subject), nội dụng (Body)...&lt;br&gt;&lt;br&gt;Bước 7: Gọi hàm SendMail.&lt;br&gt;&lt;br&gt;C#&lt;br&gt;&lt;IMG src="http://forum.vi-vn.com/Uploads/Images/3feeabdc-a8e5-445d-afbb-4328.png"&gt;&lt;br&gt;VB.NET&lt;br&gt;&lt;br&gt;&lt;IMG src="http://forum.vi-vn.com/Uploads/Images/446d0872-db08-44f0-bbe0-dd23.png"&gt;&lt;br&gt;&lt;br&gt;Đầu tiên chúng ta tạo 1 đối tượng StreamReader và đọc nội dụng của file html tempate, sau đó đọc tất cả nội dụng của file template vào biến content. Sau đó thay thế các tag [Sender], [Content].... bằng những gì mà người dùng nhập vào.&lt;br&gt;&lt;br&gt;&lt;IMG src="http://forum.vi-vn.com/Uploads/Images/34968973-ce95-41dc-b4e3-bb35.png"&gt;&lt;br&gt;&lt;br&gt;Kết quả:&lt;br&gt;&lt;IMG src="http://forum.vi-vn.com/Uploads/Images/0f7f10a5-f48e-44e0-aba4-9ef7.png"&gt;&lt;br&gt;&lt;br&gt;Kết luân: &lt;br&gt;&lt;br&gt;Đây là cách làm thông thường khi lằm việc với mail, ngoài ra khi send mail, chúng ta cần phải nhúng vào đó hình hoặc tập tin đính kèm chắng hạn. Điều này cũng rất dể dàng vì ASP.NET 2.0 đả hổ trợ chúng ta. Tương tự với cách làm này thì khi người dùng đăng ký thành viên thì rất dể dàng cho việc send mail active tài khoản, cũng dùng cách này trong các bài viết sau mình sẻ hướng dẩn send mail active tài khoản khi user đăng ký thành viên.&lt;br&gt;&lt;br&gt;Mã nguồn:&lt;br&gt;http://www.vi-vn.com/pubs/Articles/DynamicEmail.rar&lt;br&gt;&lt;br&gt;Hope this help,&lt;br&gt;QuachNguyen</description><pubDate>Tue, 23 Sep 2008 03:24:26 GMT</pubDate><dc:creator>Bill_Gates</dc:creator></item><item><title>Nhân viết ứng dụng .NET, PHP, C# giá rẻ bất ngờ.</title><link>http://forum.vi-vn.com/Topic1824-20-1.aspx</link><description>Nhận viet web application, web thuong mai dien tu, phan mem ung dung, desktop application, nhân viết đồ án môn học các loại C#, PHP, .NET, day kem lam trinh C#, .NET, PHP,...&lt;br&gt;&lt;br&gt;Đặt biệt ưu đãi giá rẻ phải chăng cho sinh viên, học sinh.&lt;br&gt;Đảm bảo bạn sẽ hài lòng về kể quả.&lt;br&gt;&lt;br&gt;Thông tin liên hê: huy_hoang67229@yahoo.com.vn, phuongxuanvo@yahoo.com&lt;br&gt;Hoặc Điện thoại: 0938476459  Gặp Hoàng,&lt;br&gt;                 01264683567 Gặp Phương.</description><pubDate>Sat, 12 Dec 2009 08:48:22 GMT</pubDate><dc:creator>phuongxuanvo</dc:creator></item><item><title>Cho mình hỏi hàm Activator.CreateInstance()</title><link>http://forum.vi-vn.com/Topic1590-20-1.aspx</link><description>public abstract class ArticlesProvider : DataAccess&lt;br&gt;    {&lt;br&gt;        static private ArticlesProvider _instance = null;&lt;br&gt;   &lt;br&gt;        /// Trả về một instance của provider type được chỉ ra trong file web.config.&lt;br&gt; &lt;br&gt;        static public ArticlesProvider Instance&lt;br&gt;        {&lt;br&gt;            get&lt;br&gt;            {&lt;br&gt;                if (_instance == null)&lt;br&gt;                    _instance = (ArticlesProvider)Activator.CreateInstance(&lt;br&gt;                       Type.GetType(Globals.Settings.Articles.ProviderType));&lt;br&gt;                return _instance;&lt;br&gt;            }&lt;br&gt;        }&lt;br&gt;}&lt;br&gt;Globals.Settings.Articles.ProviderType: chỉ là 1 dạng chuỗi được cấu hình trong web.config&lt;br&gt;Mình không hiểu là Activator.CreateInstance() này sẽ làm gì?.&lt;br&gt;Mong các bạn chỉ dẫn. Cám ơn</description><pubDate>Wed, 30 Sep 2009 02:45:06 GMT</pubDate><dc:creator>hailuavitinh</dc:creator></item><item><title>Cài VS 2008 trên WIndows 7 bị lôĩ</title><link>http://forum.vi-vn.com/Topic1677-20-1.aspx</link><description>Mình cài VS 2008 trên Windows 7 bị lôĩ. Bạn nào cài VS2008 thành công trên WIndows 7 thì xin hương dân mình vơí.&lt;br&gt;Thanks you</description><pubDate>Mon, 26 Oct 2009 02:46:04 GMT</pubDate><dc:creator>hailuavitinh</dc:creator></item><item><title>Xây dựng ứng dụng BING Translator sử dụng C# and VB.NET</title><link>http://forum.vi-vn.com/Topic1443-20-1.aspx</link><description>Sau sự ra đời của Bing là Bing API, cung cấp 1 thư viện cho các lập trình viên muốn tận dụng API Framework, trong bài viết này mình sử dụng Bing API 2.0, xây dựng ứng dụng BING Translator sử dụng C# and VB.NET.&lt;br&gt;&lt;br&gt;Đầu tiên tạo 1 project C# hay VB.NET, design 2 textboxes, 1 cái dùng để nhập ngôn ngữ cần dịch và cái khác để hiển thị ngôn ngữ sau khi dịch, và 1 nút để thực thi lệnh.&lt;br&gt;&lt;br&gt;[code]Tạo 1 application ID: http://www.bing.com/developers/createapp.aspx[/code]&lt;br&gt;&lt;br&gt;[url=http://forum.vi-vn.com/Uploads/Images/Bing.Developer.Center_1248787244149.png][img]http://forum.vi-vn.com/Uploads/Images/3764978609_d12a81e63d.jpg[/img][/url]&lt;br&gt;&lt;br&gt;Từ Project chọn add web reference... &lt;br&gt;&lt;br&gt;[code]http://api.microsofttranslator.com/V1/Soap.svc (default namespace)[/code]&lt;br&gt;&lt;br&gt;Thực thi sự kiện click cho button: C#&lt;br&gt;&lt;br&gt;        private void buttonTranslate_Click(object sender, EventArgs e)&lt;br&gt;        {&lt;br&gt;            com.microsofttranslator.api.Soap s = new CS.com.microsofttranslator.api.Soap();&lt;br&gt;            try&lt;br&gt;            {&lt;br&gt;                string textTranslated = s.Translate("app id", textBoxTranslateFrom.Text, "", "en");&lt;br&gt;                textBoxTranslatedText.Text = textTranslated;&lt;br&gt;            }&lt;br&gt;            catch (Exception ex)&lt;br&gt;            {&lt;br&gt;                MessageBox.Show(ex.Message);&lt;br&gt;            }&lt;br&gt;    &lt;br&gt;        }&lt;br&gt;&lt;br&gt;VB.NET&lt;br&gt;&lt;br&gt;    Private Sub buttonTranslate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonTranslate.Click&lt;br&gt;&lt;br&gt;        Dim s As com.microsofttranslator.api.Soap = New com.microsofttranslator.api.Soap()&lt;br&gt;        Try&lt;br&gt;            Dim strTextTranslated As String = s.Translate("app id", textBoxTranslateFrom.Text, "", "en")&lt;br&gt;            textBoxTranslatedText.Text = strTextTranslated&lt;br&gt;        Catch ex As Exception&lt;br&gt;            MessageBox.Show(ex.Message)&lt;br&gt;        End Try&lt;br&gt;&lt;br&gt;    End Sub&lt;br&gt;&lt;br&gt;Hàm Translate nhận vào 1 chuổi application ID mà bạn tạo ở trước bài viết, tham số thứ 2 là chuổi cần được dịch, tham số 3 ở đây là rổng vì để application id tự động phát hiện ngôn ngữ, "en" tham số 4 là ngôn ngữ dịch.&lt;br&gt;&lt;br&gt;[img]http://forum.vi-vn.com/Uploads/Images/app.png[/img]&lt;br&gt;&lt;br&gt;source code includes&lt;br&gt;</description><pubDate>Tue, 28 Jul 2009 06:37:25 GMT</pubDate><dc:creator>Neon</dc:creator></item><item><title>Nhúng FCK editor vào ứng dụng ASP.NET</title><link>http://forum.vi-vn.com/Topic263-20-1.aspx</link><description>Nhúng FCK editor vào ứng dụng ASP.NET&lt;br&gt;&lt;br&gt;Giới thiệu:&lt;br&gt;FCK Editor là 1 công cụ soạn thảo văn bản mã nguồn mở (giống như Microsoft Word) mà có thể tích hợp vào ứng dụng web như (asp/asp.net, php, coldFusion,Java,Python...)&lt;br&gt;&lt;br&gt;FCK là từ viết tắt của Frederico Caldeira Knabben, nó hổ trợ hầu hết các trình duyệt bao gồm: internet Explorer 5.5+(Window), Firefox 1.0+, Safari 3.0+, Opera 9.5+, Mozilla 1.3+ và Netscape.&lt;br&gt;&lt;br&gt;Cách dùng:&lt;br&gt;FCK editor phát hành bao gồm 1 gói javascript và 1 thành phần (component) dành cho .NET, để có thể nhúng (embed) FCK vào 1 ứng dụng web asp.net, chúng ta cần phải tải đủ 2 gói này tại đây&lt;br&gt;&lt;br&gt;http://www.fckeditor.net/download&lt;br&gt;&lt;br&gt;Phiên bản hiện tại của FCK Editor là : FCKeditor v2.6.3.Và component dành cho asp.net có thể tãi tại đây&lt;br&gt;&lt;br&gt;http://sourceforge.net/project/showfiles.php?group_id=75348&amp;package_id=137125&lt;br&gt;&lt;br&gt;Ở đây mình sẻ sử dụng FCK phiên bản mới nhất và hổ trợ 2 ngôn ngữ VB.NET và C#.&lt;br&gt;&lt;br&gt;Bước 1: Tạo 1 solution bằng Visual Studio 2008 tên FCK.Editor (tuỳ), sau đó thêm 1 website mới ngôn ngữ mà bạn đang sài.&lt;br&gt;&lt;br&gt;[img]http://vi-vn.com/pubs/Articles/FCKEditor/solution.png[/img]&lt;br&gt;&lt;br&gt;Bước 2: Giải nén mã nguồn FCK editor và thêm component FCK editor vào Toolbox.&lt;br&gt;&lt;br&gt;Giải nén mã nguồn FCK editor chúng ta có 1 thư mục đặt tên là fckeditor và 1 .NET component FredCK.FCKeditorV2.dll, chúng ta đặt component và thư mục fckeditor như hình bên dưới.&lt;br&gt;&lt;br&gt;[img]http://vi-vn.com/pubs/Articles/FCKEditor/solutionAdded.png[/img]&lt;br&gt;&lt;br&gt;Bước 4: thêm FredCK.FCKeditorV2.dll vào toolbox&lt;br&gt;&lt;br&gt;Để sử dụng control FCK bạn phải add toolbox bằng cách click toolbox và chọn choose items... và chọn file FredCK.FCKeditorV2.dll, hoặc kéo FredCK.FCKeditorV2.dll vào toolbox.&lt;br&gt;&lt;br&gt;[img]http://vi-vn.com/pubs/Articles/FCKEditor/addComponent.png[/img]&lt;br&gt;&lt;br&gt;Bước 5: thêm control vào page&lt;br&gt;&lt;br&gt;Chúng ta kéo FCK editor từ toolbox vào page, thì control sẻ được thêm vào và đăng ký assembly và namespace cần thiết.&lt;br&gt;&lt;br&gt;[img]http://vi-vn.com/pubs/Articles/FCKEditor/EmbedCS.png[/img]&lt;br&gt;&lt;br&gt;[img]http://vi-vn.com/pubs/Articles/FCKEditor/EmbedVB.png[/img]&lt;br&gt;&lt;br&gt;Click chuột phải chọn View Browser hoặc nhấn F5 để xem kết quả.&lt;br&gt;&lt;br&gt;Bước 6: cấu hình để upload hình ảnh.&lt;br&gt;&lt;br&gt;Nếu bạn cố gắng upload hình qua control image thì sẻ gặp lổi như phía dưới.&lt;br&gt;&lt;br&gt;XML request error: OK (200)&lt;br&gt;&lt;br&gt;Requested URL:&lt;br&gt;http://localhost:2677/CS/fckeditor/editor/filemanager/connectors/php/connector.php?Command=GetFoldersAndFiles&amp;Type=Image&amp;CurrentFolder=%2F&amp;uuid=1223039353048&lt;br&gt;&lt;br&gt;Để khắc phục vấn đề này chúng ta phải cấu hình lại FCK editor, để cho phép người dùng có thể upload hình thông qua control image.&lt;br&gt;&lt;br&gt;6.1 - Tạo 1 thư mục img để lưu hình người dùng tải lên.&lt;br&gt;&lt;br&gt;[img]http://vi-vn.com/pubs/Articles/FCKEditor/solutionGlobal.png[/img]&lt;br&gt;&lt;br&gt;6.2 - Tạo 1 file Global.asax và thiết lập đường dẩn hình upload.&lt;br&gt;&lt;br&gt;Thêm đoạn code trong sự kiện Application_Start&lt;br&gt;&lt;br&gt;CS:&lt;br&gt;&lt;br&gt;    void Application_Start(object sender, EventArgs e) &lt;br&gt;    {&lt;br&gt;        // Code that runs on application startup&lt;br&gt;        Application["FCKeditor:UserFilesPath"] = "../../../../../img/";&lt;br&gt;    }&lt;br&gt;&lt;br&gt;VB.NET&lt;br&gt;    Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)&lt;br&gt;        ' Code that runs on application startup&lt;br&gt;        Application("FCKeditor:UserFilesPath") = "../../../../../img/"&lt;br&gt;    End Sub&lt;br&gt;&lt;br&gt;6.3 - chỉnh sửa FileBrowserLanguage và QuickUploadLanguage -&gt;&gt; aspx của file fckconfig.js trong thư mục fckeditor.&lt;br&gt;&lt;br&gt;Thử upload 1 hình thông qua control image thì sẻ gặp lổi như hinh sau:&lt;br&gt;&lt;br&gt;[img]http://vi-vn.com/pubs/Articles/FCKEditor/errorconnector.png[/img]&lt;br&gt;&lt;br&gt;Bởi vì khi upload hình FCK editor buộc bạn phải chứng thực, bạn có thể tìm thấy trong fckeditor\editor\filemanager\connectors\aspx\config.ascx, bạn có thể viết code để chứng thực người chắc chắn phải có quyền để upload hình trong sự kiện CheckAuthentication&lt;br&gt;&lt;br&gt;[img]http://vi-vn.com/pubs/Articles/FCKEditor/checkauthentication.png[/img]&lt;br&gt;&lt;br&gt;Ở đây mặc định luôn trả về false, mình sửa thành true, tức là đả chứng thực.&lt;br&gt;&lt;br&gt;Xong giờ thử lại 1 lần nửa upload hình lên.&lt;br&gt;&lt;br&gt;[img]http://vi-vn.com/pubs/Articles/FCKEditor/uploaded.png[/img]&lt;br&gt;&lt;br&gt;Kết luận:&lt;br&gt;Nếu bạn cần 1 công cụ soạn thảo văn bản mà tích hợp với nhiều trình duyệt thì FCK editor là 1 những lựa chọn hàng đầu, linh động, dể dàng cấu hình tuỳ thích, hơn hẳn với các control khác (Freetext).&lt;br&gt;&lt;br&gt;Mã nguồn: VS2008&lt;br&gt;http://vi-vn.com/pubs/Articles/FCKEditor/FCK.Editor.rar&lt;br&gt;&lt;br&gt;Happy programming!</description><pubDate>Fri, 03 Oct 2008 06:51:11 GMT</pubDate><dc:creator>Bill_Gates</dc:creator></item><item><title>Convert ASP.NET Page to User Control</title><link>http://forum.vi-vn.com/Topic1373-20-1.aspx</link><description>Nếu bạn muốn reuse lại các asp.net page bằng cách chuyển đổi chúng thành các user control, sau đó add chúng vào page để sử dụng thì các bước sau đây sẻ giúp bạn hòan thành việc đó.&lt;P&gt;Giả sử bạn có 1 asp.net page like this:&lt;/P&gt;&lt;P&gt;&lt;IMG src="http://forum.vi-vn.com/Uploads/Images/2b7a7143-a978-4d99-8c25-33f9.png"&gt;&lt;BR&gt;&lt;BR&gt;Đầu tiên chúng ta rename chúng lại thành ví dụ: default.aspx -&amp;gt; default.ascx, remove các thẻ: html, head, body, form, DOCTYPE. Sau đó đổi directive Page -&amp;gt; Control, remove tất cả các thuộc tính trên @Control directive trừ: Language, AutoEventWireup, CodeFile, Inherits.&lt;BR&gt;&lt;BR&gt;&lt;IMG src="http://forum.vi-vn.com/Uploads/Images/05cda7a3-f183-4b39-8dbc-b46f.png"&gt;&lt;/P&gt;&lt;P&gt;Chuyển sang code behine chuyển thành kế thừa từ UserControl thay vì Page như hình sau:&lt;/P&gt;&lt;P&gt;&lt;IMG src="http://forum.vi-vn.com/Uploads/Images/511ef86f-4b4a-4def-b964-b4b4.png"&gt;&lt;P&gt;Xong giờ có thể add user control này vào web form.&lt;P&gt;&lt;A href="http://blogs.msdn.com/webdevelopertips/archive/2009/07/09/tip-87-did-you-know-how-to-reuse-a-web-page-by-converting-into-an-asp-net-user-control.aspx"&gt;Reference&lt;/A&gt;</description><pubDate>Mon, 13 Jul 2009 01:47:49 GMT</pubDate><dc:creator>Bill_Gates</dc:creator></item><item><title>Power Command 1 add in không thể thiếu cho Visual Studio.</title><link>http://forum.vi-vn.com/Topic1198-20-1.aspx</link><description>Power Command 1 add in không thể thiếu cho Visual Studio.&lt;br&gt;&lt;br&gt;Hãy tưởng tượng bạn có 1 solution, mà nó có hơn 10 projects, các file trong projects đả được bạn expand ra hết, nay bạn muốn thu gọn lại (collapse) trong 1 cái nhấn chuột, Power Command làm được điều đó.&lt;br&gt;&lt;br&gt;[url=http://forum.vi-vn.com/Topic1198-20-1.aspx][img]http://www.vi-vn.com/pubs/Articles/PowerCommand/CollapseProject.png[/img][/url]&lt;br&gt;&lt;br&gt;Nếu bạn đả sử dụng qua Visual Studio 2008, bạn đả từng thử qua tiện ích remove unuse namespace (and sort), thế nhưng bạn có hơn 10 projects trong solution của bạn, mà bạn không muốn phải open từng file và thực hiện 1 cái manual, Power command giúp bạn công việc này qua tiện ích Remove and Sort Usings.&lt;br&gt;&lt;br&gt;[url=http://forum.vi-vn.com/Topic1198-20-1.aspx][img]http://www.vi-vn.com/pubs/Articles/PowerCommand/RemoveAndSortUsing.png[/img][/url]&lt;br&gt;&lt;br&gt;Mở lại những file đả đóng.&lt;br&gt;&lt;br&gt;[url=http://forum.vi-vn.com/Topic1198-20-1.aspx][img]http://www.vi-vn.com/pubs/Articles/PowerCommand/undoClose.png[/img][/url]&lt;br&gt;&lt;br&gt;Copy Reference từ project này và paste sang project khác.&lt;br&gt;&lt;br&gt;[url=http://forum.vi-vn.com/Topic1198-20-1.aspx][img]http://www.vi-vn.com/pubs/Articles/PowerCommand/Copy-Paste-Reference.png[/img][/url]&lt;br&gt;&lt;br&gt;Copy toàn bộ Reference của project&lt;br&gt;&lt;br&gt;[url=http://forum.vi-vn.com/Topic1198-20-1.aspx][img]http://www.vi-vn.com/pubs/Articles/PowerCommand/CopyAsProjectReference.png[/img][/url]&lt;br&gt;&lt;br&gt;Mở folder chứa file source.&lt;br&gt;&lt;br&gt;[url=http://forum.vi-vn.com/Topic1198-20-1.aspx][img]http://www.vi-vn.com/pubs/Articles/PowerCommand/OpenContainer.jpg[/img][/url]&lt;br&gt;&lt;br&gt;Và còn còn rất nhiều tiện ích khi sử dụng Power command&lt;br&gt;&lt;br&gt;Điều mà chúng ta cần làm đó là tải nó về và cài đặt.&lt;br&gt;&lt;br&gt;http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=PowerCommands&amp;ReleaseId=559</description><pubDate>Mon, 25 May 2009 06:46:35 GMT</pubDate><dc:creator>Bill_Gates</dc:creator></item><item><title>Microsoft Chart Controls for Microsoft .NET Framework 3.5</title><link>http://forum.vi-vn.com/Topic561-20-1.aspx</link><description>Great news! Microsoft has released a collection of free charting controls for both ASP.NET and Windows Forms! The only inconvenience is that they only work with .NET 3.5 (is it really an inconvenience? :-)), but they look great and offer the most commonly required functionality, at no cost.&lt;br&gt;&lt;br&gt;Related links are:&lt;br&gt;&lt;br&gt;Microsoft Chart Controls for Microsoft .NET Framework 3.5 download: &lt;br&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&amp;displaylang=en&lt;br&gt;&lt;br&gt;Microsoft Chart Controls for .NET Framework Documentation download: &lt;br&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=EE8F6F35-B087-4324-9DBA-6DD5E844FD9F&amp;displaylang=en&lt;br&gt;&lt;br&gt;Microsoft Chart Controls Add-on for Microsoft Visual Studio 2008 download: http://www.microsoft.com/downloads/details.aspx?FamilyId=1D69CE13-E1E5-4315-825C-F14D33A303E9&amp;displaylang=en&lt;br&gt;&lt;br&gt;Samples Environment for Microsoft Chart Controls download and documentation: http://code.msdn.microsoft.com/mschart&lt;br&gt;&lt;br&gt;Windows Forms/ASP.NET Chart Control forum: &lt;br&gt;http://social.msdn.microsoft.com/Forums/en-US/MSWinWebChart/threads/</description><pubDate>Thu, 06 Nov 2008 04:26:28 GMT</pubDate><dc:creator>Bill_Gates</dc:creator></item><item><title>Microsoft Enterprise Library 4.1 Released</title><link>http://forum.vi-vn.com/Topic573-20-1.aspx</link><description>Microsoft Enterprise Library 4.1 has been released with some improvements and fixes.&lt;br&gt;&lt;br&gt;What's new&lt;br&gt;&lt;br&gt;    * Unity interception mechanism and integration of the Policy Injection Application Block with the Unity Application Block&lt;br&gt;    * Added support for generics in the Unity Application Block&lt;br&gt;    * Added support for arrays in the Unity Application Block&lt;br&gt;    * Performance improvements&lt;br&gt;    * Usability improvements to the configuration tool&lt;br&gt;    * Visual Studio 2008 Service Pack 1 support&lt;br&gt;    * Bug fixes&lt;br&gt;&lt;br&gt;[url=http://msdn.microsoft.com/en-us/library/dd203099.aspx]Enterprise Library homepage[/url]&lt;br&gt;&lt;br&gt;[url=http://msdn.microsoft.com/en-us/library/dd203099.aspx#EntLib4p1lpGettingStarted]Quick Starts[/url]</description><pubDate>Fri, 07 Nov 2008 09:02:40 GMT</pubDate><dc:creator>Bill_Gates</dc:creator></item><item><title>Partial method new feature Net 3.0</title><link>http://forum.vi-vn.com/Topic299-20-1.aspx</link><description>Nếu bạn đả từng làm việc trên dự án Window Form , trên nền NET FRAMEWORK 2.0 chắc hẳn các bạn từng nghe qua partial Classe, partial Classes cho phép chúng ta 1 phần của class ở 1 nơi và phần khác ở 1 nơi đâu đó, thường là 1 file khác, chẳng hạn như Form1.Designer.cs và Form1.cs.&lt;br&gt;&lt;br&gt;Trong đó Form1.Designer.cs quản lý các khai báo, trong khi đó Form1.cs cho phép bạn viết code trên đó. Rỏ ràng ta thấy Form1.Designer.cs chứa sự khai báo partial method, và trong Form1.cs chứa phần còn lại của phương thức đó.&lt;br&gt;&lt;br&gt;Partial method được định nghỉ trong partial class, nó cho phép bạn trình bày, và phần còn lại sẻ được thực thi ở 1 nơi khác.&lt;br&gt;&lt;br&gt;Một số ràng buộc khi bạn sử dụng partial method :&lt;br&gt;1. Bạn phải dùng bổ từ truy cập là partial cho class và cho phương thức gốc.&lt;br&gt;(Phương thức gốc chỉ được định nghỉa)&lt;br&gt;2. Partial method có thể là Shared (VB) hoặc Static (C#).&lt;br&gt;3. Partial method cũng có thể có đối số là các từ khóa như : Ref hay params&lt;br&gt;4. Partial method phải là private.&lt;br&gt;5. Partial method phải chứa thủ tục con.&lt;br&gt;6. Partial method phải trả về kiểu void.&lt;br&gt;&lt;br&gt;Đoạn mã mẩu sau đây sẻ giúp bạn hiểu hơn về partial method :&lt;br&gt;&lt;br&gt;[img]http://forum.infoworldschool.com/uploads/quachnguyen/PartialMethodClassProgram.gif[/img]&lt;br&gt;&lt;br&gt;[img]http://forum.infoworldschool.com/uploads/quachnguyen/PartialClass.gif[/img]&lt;br&gt;&lt;br&gt;[img]http://forum.infoworldschool.com/uploads/quachnguyen/CallPartialMethod.gif[/img]&lt;br&gt;&lt;br&gt;VB&lt;br&gt;[img]http://forum.infoworldschool.com/uploads/quachnguyen/PartialMethodModule.gif[/img]&lt;br&gt;&lt;br&gt;[img]http://forum.infoworldschool.com/uploads/quachnguyen/PartialClassVB.gif[/img]&lt;br&gt;&lt;br&gt;[img]http://forum.infoworldschool.com/uploads/quachnguyen/CallPartialMethodVB.gif[/img]&lt;br&gt;&lt;br&gt;Happy programming!</description><pubDate>Mon, 06 Oct 2008 10:00:25 GMT</pubDate><dc:creator>Bill_Gates</dc:creator></item><item><title>Extension Method - Phương thức mở rộng</title><link>http://forum.vi-vn.com/Topic290-20-1.aspx</link><description>Extension Method - Phương thức mở rộng&lt;br&gt;&lt;br&gt;Như cái tên của nó cũng đả nêu lên ý nghỉa của nó, Extension method gọi là phương thức mở rộng, là phương thức được mở rộng các kiểu dử liệu .NET đả tồn tại. Chẳng hạn như string (kiểu dử liệu chuổi).&lt;br&gt;&lt;br&gt;Giờ chúng ta xây dựng 1 thí dụ để dể dàng hiểu về phương thức mở rộng hơn.&lt;br&gt;&lt;br&gt;Thí dụ: ứng dụng của chúng ta cho phép người dùng nhập vào 1 chuổi các ký tự (có thể chứa 2 khoảng trắng trở lên) và mình sẻ viết 1 phương thức mở rộng mà sẻ cắt 2 khoảng trắng trở lên thành 1 khoảng trắng.&lt;br&gt;&lt;br&gt;string str = "Have    you    ever visit http://vi-vn.com page    ";&lt;br&gt;&lt;br&gt;CS&lt;br&gt;[img]http://www.vi-vn.com/pubs/Articles/3.0/ExtensionMethod/CS.png[/img]&lt;br&gt;&lt;br&gt;VB&lt;br&gt;[img]http://www.vi-vn.com/pubs/Articles/3.0/ExtensionMethod/VB.png[/img]&lt;br&gt;&lt;br&gt;Chú ý: &lt;br&gt;Nếu bạn có 1 phương thức mở rộng và 1 phương thức thể hiện thì quyền ưu tiên sẻ dành cho phương thức thể hiện.&lt;br&gt;Thuộc tính, sự kiện, toán tử (operator) không có khà năng mở rộng.&lt;br&gt;&lt;br&gt;Happy Programming!&lt;br&gt;</description><pubDate>Mon, 06 Oct 2008 04:55:48 GMT</pubDate><dc:creator>Bill_Gates</dc:creator></item><item><title>Bộ thủ thuật dành cho Visual studio 2008</title><link>http://forum.vi-vn.com/Topic59-20-1.aspx</link><description>[img]http://www.vi-vn.com/pubs/images/vs2005editorhtmlformat.gif[/img]&lt;BR&gt;&lt;BR&gt;# 01: Tự động chèn dấu ngoặc kép khi gõ thuộc tính cho control trên asp.net.&lt;BR&gt;&lt;BR&gt;Vấn đề: Có rất nhiều cách để thêm các controls vào web form, mình lại thích gõ bằng code trực tiếp, và khi làm bằng cách này thì gặp phải vấn đề là mình phải gõ bằng tay hết các thuộc tính của control. Kể cả dấu ngoặc kép chẳng hạn như runat="server".&lt;BR&gt;&lt;BR&gt;Bây mình muốn là sau khi gõ thuộc tính của control và dấu bằng là Visual Studio sẻ tự động chèn 2 dấu ngoặc kép cho mình.&lt;BR&gt;&lt;BR&gt;Cách làm: Tools &amp;gt;&amp;gt; Option..&amp;gt;&amp;gt; Text Editor &amp;gt;&amp;gt; HTML &amp;gt;&amp;gt; Format &amp;gt;&amp;gt; check vào checkbox insert attribute value quotes when typing &amp;gt;&amp;gt; Ok.&lt;BR&gt;&lt;BR&gt;Giờ thì khi gõ thuộc tính xong và dấu bằng thì nó sẻ chèn vào 2 dấu ngoặc kép cho bạn.&lt;BR&gt;&lt;BR&gt;Tip: Click chuột phải mặt trước file source code html chọn Formatting and Validation..và làm tương tự các bước trên.&lt;BR&gt;&lt;BR&gt;best,</description><pubDate>Sat, 06 Sep 2008 01:14:44 GMT</pubDate><dc:creator>Bill_Gates</dc:creator></item></channel></rss>