Phận làm trai gõ phím bình thiên hạ
Chí anh hùng click chuột định giang sơn
  • 3 quyển sách Community Server

    Dạo một vòng trên NET. Kiếm các quuyển sách về chỉ tìm được có 3 quyển sách nói về Community Server, mà các quyển này chủ yếu nói về phiên bản Community Server 2007. Do đó, đối với phiên bản 2008 và đặt biệt là phiên bản Community Server 2008 SP2 thì các bạn phải vào trang chủ để tìm hiểu thôi.

    Nhưng dù sau thì nếu bạn đọc xong 3 quyển này rồi thì mình nghĩ rằng bạn cũng nắm rõ về Community Server mà thôi.

    Đây là link download cho 3 quyển sách này

    1. Wrox.Professional.Community.Server.Themes.pdf

    2. Wrox.Professional.Community.Server.pdf

    3. Manning.Community.Server.Quickly.pdf

    Hy vọng 3 quyển sách này giúp ít được cho các bạn.

  • Community Server 2008.5 SP2 vừa xuất hiện

    Nếu bạn quan tâm đến Community Server, thì hôm qua Community Server vừa release phiên bản 2008.5 SP2.

    Bạn có thể download ở đây: http://get.communityserver.com/download/moredownloads.aspx và có thể xem những gì mới ở đây: SP2 for CS 2008.5 and Evolution 1.0 now available!

  • Các loại ứng dụng trong Community Server

    Tính đến phiên bản Community Server 2008.5 SP1 thì Community Server có các loại ứng dụng sau:

     

        /// <summary>

        /// Communinty Server Applications

        /// </summary>

        public enum ApplicationType

        {

            Forum = 0,

            Weblog = 1,

            Gallery = 2,

            GuestBook = 3,

            Calendar = 4,

            ContentManagement = 5,

            FileGallery = 6,

            FeedReader = 7,

            BlogRoller = 8,

            Ads = 9,

            Spam = 10,

            Hub = 11,

            Reporting = 12,

            MediaGallery = 13,

            Rest = 14,

            Messaging = 15,

            MyKB = 52,

            Wiki = 53,

            Newsletter = 1000,

            Games = 1001,

            Store = 4120,

            Installer = 9997,

            Admin = 9998,

            Unknown = 9999,

            All = 99999

        };

    Xem ra cũng nhiều vậy, và luôn nhớ rằng khi làm việc các loại ứng dụng thì đừng quên check cái enum: ApplicationType

  • Chống SPAM cho Community Server bằng CAPTCHA

    Một diễn đàn, một bài viết blog, ... khi tác giả viết ra thì đều mong muốn có người bình luận (comment) để làm cho bài viết đó thêm sôi động. Tuy nhiên một vài người không biết vô tình hay cố ý hoặc thường SPAM các lời bình (mà thường là nội dung có những link liên kế đến những trang không tốt chút nào).

    Để giải quyết triệt để vấn đề SPAM các lời bình đối với Community Server, mình hướng dẫn các bạn bài sau và khi đó bạn sẽ chống lại các SPAMER bằng cách dùng CAPTCHA

    1. Trước tiên download addon từ blog của mình về

    2. Giải nén ra, bạn được 2 thư mục là: InstallSource

    3. Thư mục Source dùng để bạn tham khảo hoặc phát triển thêm. Mình qua bước tiếp nhe.

    4. Thư mục Install gồm có thư mục Web và file Install.txt. Sau đây là từng bước để install cho site của bạn

    • Copy file CommunityServer.Hack.Captcha.dll ở thư mục bin vào thư mục bin trên host mà Community Server đang chạy.
    • Copy file prototype.js ở thư mục Utility vào thư mục Utility trên  đang chạy Community Server. (Lưu ý: thư mục Utility là thư mục con của thư mục root mà mình đang host Community Server)
    • Copy file CommunityServer.Hack.Captcha.xml ở thư mục Languages\vi-VN vào thư mục Languages mà site của bạn đang dùng. (Chú ý file: CommunityServer.Hack.Captcha.xml phải nằm cùng cấp với file Resource.xml)
    • Copy file: communityserver_override.config vào thư mục root mà Community Server của bạn đang chạy. Chú ý: nếu site của bạn đã có file: communityserver_override.config rồi thì tuyệt đối không copy và ghi chồng vào file cấu hình của bạn nhe. Mà hãy mở file: communityserver_override.config bằng Notepad sau đó copy đoạn sau và paste lại vào cuối file communityserver_override.config của bạn. (Về file: communityserver_override.config ở các bài viết sau mình sẽ hướng dẫn cụ thể hơn vấn đề này.). Sau đây là đoạn code override nếu dùng:

    <Override xpath="/CommunityServer" mode="add" where="end">
        <Captcha CaptchaLength="4" Chars="a;b;c;d;e;f;g;h;j;k;m;n;q;r;s;t;2;3;4;5;6;7;8;9" Fonts="Georgia;Verdana;Tahoma;Arial;Times New Roman;Garamond;Agency FB" IsAuthenticated="true" SubmitButtonID="btnSubmit;PostButton"/>
    </Override>

    5. Từng bước cài đặt CAPTCHA cho các form của Community Server

    • Xác định page nào cần cài đặt CAPTCHA bằng cách view page đó và dùng kỹ thuật CS Tip: Làm sao biết đường dẫn file gốc đang xem. Ví dụ ở đây mình muốn cài đặt CAPTCHA cho form bình luận của 1 blog. Khi đó mình xác định được filename là: /themes/blogs/hack/post.aspx
    • Giờ tìm đúng đường dẫn file name này (/themes/blogs/hack/post.aspx) và mở bằng Notepad lên. Sau đó tìm đến control có name là: <CSBlog:WeblogPostCommentForm />, bạn để ý kỹ các form control của: Community Server luôn kết thúc với suffix: Form
    • Tại đây bạn ghi nhớ các đều sau đây
      • Bạn sẽ thấy 1 thuộc tính là: SubmitButtonId="btnSubmit", nhớ cái: "btnSubmit" lại, và vào file: communityserver_override.config phần xem thuộc tính: SubmitButtonIDbtnSubmit chưa ? Nếu chưa thì thêm vào cuối thuộc tính đó giá trị sau: ";btnSubmit" (chú ý: có dấu ; ở phía trước btnSubmit). Chú ý thuộc tính SubmitButtonId luôn luôn phải có đối với các form của: Community Server
      • Tiếp tục tìm đến thuộc tính thứ 2 là: ValidationGroup, nếu bạn thấy có rồi thì bỏ qua, còn chưa thấy thì phải thêm vào thuộc tính ValidationGroup này với giá trị là giá trị của 1 ValidationGroup của 1 textbox nào đó trong form của Community Server. Ví dụ bạn sẽ thấy 1 asp control textbox như sau: <asp:TextBox id="tbName" runat="server" Columns="60" ValidationGroup="CreateCommentForm" /> thì khi đó giá trị của ValidationGroupCreateCommentForm. Khi đó bạn phải thêm vào cho control WeblogPostCommentForm này giá trị như sau: ValidationGroup="CreateCommentForm" (giống với ValidationGroup của cái texbox này)
      • Tiếp theo tìm đến đường dẫn cụ thể của form control này. Cụ thể ở đây là: WeblogPostCommentForm, mở Community Server mà bạn có thể run bằng source (xem bài hướng dẫn). Sau đó dùng chức năng: Find All files... của Visual Studio, tìm chữ: WeblogPostCommentForm nó sẽ trả về cho bạn rất nhiều kết quả, tuy nhiên bạn chỉ cần tìm đến kết quả có chữ: public class WeblogPostCommentForm, double vào chữ này sẽ mở ra class mà mình cần xem. Khi đó bạn sẽ thấy được cái gọi là namespace, lúc này là: CommunityServer.Blogs.Controls, giờ kết hợp lại với  WeblogPostCommentForm  bạn sẽ có là: CommunityServer.Blogs.Controls.WeblogPostCommentForm. Nhớ cái này lại.
      • Mở file:App_Browsers\default.browser bằng Notepad, tại phần <controlAdapters> thêm vào 1 hàng như sau. (Đương nhiên khi thêm xong thì phải lưu lại rồi nhỉ)
        <adapter controlType="CommunityServer.Blogs.Controls.WeblogPostCommentForm" adapterType="CommunityServer.Hack.Captcha.CaptchaControlAdapter, CommunityServer.Hack.Captcha" /> 
        chú ý: cái controlType="CommunityServer.Blogs.Controls.WeblogPostCommentForm" đó chính là cái mà mình đã xác định ở bước trên.

    6. Đã hoàn thành, giờ mở page này lại và test thử xem thế nào ! Khi đó bạn sẽ thấy như hình dưới đây.

    Các thông số trong file communityserver_override.config và file CommunityServer.Hack.Captcha.xml 

    • communityserver_override.config
      • CaptchaLength: Chiều dài của các ký tự khi random ngẫu nhiên ra.
      • Chars: Chỉ random trong những ký tự này, cách nhau bằng dấu chấm phẩy
      • Fonts: font sử dụng là gì
      • IsAuthenticated: nếu true thì tất cả các user đều phải nhập CAPTCHA code mới submit form về server. false chỉ cho những user chưa login vào hệ thống (các user nặc danh). (Khuyến khích: true)
      • SubmitButtonID: đó là các ID của button trên các form của Community Server (mình không hiểu sao Community Server nó dùng nhiều cái ID name như vậy ? không thống nhất gì hết --> chỗ này họ coding hơi bị "chuối")
    • CommunityServer.Hack.Captcha.xml
      • Captcha_Prompt: text hiện thị trên form yêu cầu user nhập vào textbox
      • Captcha_Error: Khi user nhập sai chữ CAPTCHA, thì chuỗi này sẽ hiện thị thông báo.

    Hy vọng bài viết này giúp ích cho bạn, và nhớ rằng mình vừa phát hiện ra Community Server version 2008.5 SP1 có đến 194 form lận đó nhe. (Quá nhiều thứ để bạo vệ).

    Nếu có gì thắc mắc thì liên hệ với mình nhe.

    Ghi chú: bạn hãy tập làm cho form ở đường dẫn sau: /themes/blogs/hack/contact.aspx xem có được không ?

  • CS Tip: Làm sao biết đường dẫn file gốc đang xem.

    Ở bài trước, mình đã hướng dẫn tạo theme hack. Hôm nay,  mình viết bài đầu tiên về chỉnh sửa theme hack này. Đó là: làm sao biết đường dẫn vật lý file mình đang xem ?

    Như các bạn biết, Community Server dùng URL là các url theo dạng viết lại (dùng để tối ưu hoá các search engine, tham khảo bài: Community Server với URL thân thiện với SEO để biết thêm chi tiết). Do đó, khi bạn đang xem 1 page một câu hỏi đặt ra là làm sao tôi biết được đường dẫn file gốc này nằm ở đâu trong thư mục themes ?

    Vâng, đối với nhiều bạn khi bắt đầu với Community Server để biết được điều này theo tôi nghĩ không phải là chuyện dễ (vì tôi đã từng trải qua rồi, lúc mới bắt đầu làm quen với Community Server để xác định được đường dẫn một page nào đó tôi đang xem trên web browser tôi cũng mất chừng ..... ấy thời gian).

    Tại sao mình cần phải biết đường dẫn file gốc ? đương nhiên bạn phải biết đường dẫn của nó để bạn mở nó lên và chỉnh sửa theme của nó chứ ! :)

    Bài viết này, tôi hướng dẫn bạn chỉ cần chỉnh sửa code một chút ở theme hack và từ đó trở về sau khi bạn xem bất kỳ page nào trên web browser thì bạn sẽ biết liền ngay tức khắc mình đang: sử dụng theme tên là gì, và đường dẫn file này nằm ở đâu.

    Sau đây là các bước thực hiện

    1. Mở file: \Web\Themes\hack\common\master.Master bằng trình text editor hoặc dùng Visual Studio 2008 (xem bài: Cài đặt Community Server 2008 SP1 SDK và Run code bằng Visual Studio 2008)

    2. Tìm đến tag: <div id="CommonFooter">, sau đó bạn sẽ thấy tag <asp:ContentPlaceHolder id="BodyFooterRegion" runat="server" >........</asp:ContentPlaceHolder>

    3. Tiếp đến bạn thêm đoạn code sau vào dòng bên dưới tag: </asp:ContentPlaceHolder> khi đó sẽ là 

    ....
    </asp:ContentPlaceHolder>

    <%-- Begin HACK --%>
    <% if(CSContext.Current.User.IsAdministrator)
    {
            Response.Write("<br/>" + Page.Request.Url.LocalPath);
    }    
    %>
    <%-- End HACK --%>
    .....

    4. Giờ lưu file này lại (và nhớ upload lên host nếu site mình đã hoạt động thật).

    5. Wowo, giờ ở cuối màn hình bạn có thể thấy được đường dẫn file gốc mình đang xem page trên web browser rồi đó, tham khảo hình sau

    Hy vọng Tip này giúp ích được cho các bạn khi mới bắt đầu làm quen và HACK Community Server

    Ghi chú: đường dẫn tên file name này chỉ hiện ra khi bạn có quyền là: Administrator của Community Server

  • Tạo một theme mới cho Community Server

    Bài viết sau mình hướng dẫn các bạn tạo 1 theme với tên là hack để dùng cho sau này chỉnh sửa, cũng như dễ dàng cho việc nâng cấp Community Server sao này. (Nếu chúng ta chỉnh sửa theme gốc hawaii thì sau này khi muốn nâng cấp Community Server lên phiên bản mới hơn sẽ rất khó khăn).

    Sau đây là các bước hướng dẫn chi tiết 

    A. Chuẩn bị theme mới từ theme chuẩn hawaii, lần lượt làm như sau: 

    • Vào đường dẫn \Web\themes\ copy theme hawaii vào 1 thư mục tạm khác (ở đây tôi copy sang: E:\tmp\themes) và đặt tên là hack (cái tên theme mới của tôi)
    • Vào đường dẫn \Web\themes\Hubs copy thư mục hawaii vào 1 thư mục tạm khác, (ở đây tôi copy sang: E:\tmp\themes\Hubs) và đặt lại tên là hack
    • Vào đường dẩn: \Web\themes\Blogs copy thư mục hawaii vào 1 thư mục tạm khác nữa (ở đây tôi copy sang: E:\tmp\themes\Hubs) và đặt lại tên là hack

    Đến đây ta sẽ có các thư mục như sau: E:\tmp\themes\hack, E:\tmp\themse\Hubs\hack, E:\tmp\themes\Blogs\hack.

    B. Tạo theme mới: hack

    1.    Dùng một chương trình text editor có chức năng: Find and Replace in files. (ở đây tôi dùng EmEditor, các bạn có thể dùng phiên bản Notepad++ free cũng được).
    2.    Sau đó dùng chức năng tìm: Find in files. Tìm từ: hawaii ở tất cả các file (*.*) và ở thư mục gốc (E:\tmp\themes\hawaii). Khi đó bạn sẽ thấy như hình sau:


    4.    Sau khi tìm ta sẽ thấy rất nhiều kết quả trả về như hình sau (ở đây tôi cắt bỏ bớt cái hình)


    5.     OK. Mình đã xác định được  dữ liệu, bây giờ chúng ta dùng chứ năng: Find and Replace in files. Tương tự ở trên nhưng trường Replace to:  ta enter cái tên theme mới là: hack. Khi đó các bạn sẽ thấy như hình sau.

    Đến đây quá trình tìm và thay thế các từ: hawaii thành hack sẽ tác động lên cả 3 thư mục: E:\tmp\themes\hack, E:\tmp\themse\Hubs\hack, E:\tmp\themes\Blogs\hack


    6.    Tiếp theo sửa cái hình: preview.png (E:\tmp\themese\hack\preview.png) một ít bằng cách thêm vào 1 text là: hack để phân biệt với theme hawaii. Các bạn có thể thấy như sau:

    Nếu muốn bạn có thể sửa thêm 1 cái hình preview của Blogs nữa ở đường dẫn: E:\tmp\themes\blogs\hack\preview.png


    7.    Giờ thì copy lại các thư mục hack vừa tạo ở trên lần lượt đúng vào các thư mục: Web\themes, Web\themes\Hubs, Web\themes\Blogs (đương nhiên là phải upload lại lên host nếu site bạn đang chạy thật rồi)
    8.    Sau đó vào Control panel và cập nhật site của mình với theme mới: hack này bằng cách cách truy cập:

    • Đối với stie: Dashboard  »  Administration  »  Site Administration »  Site Theme. Tại phần, Select Site Theme: ta chọn theme hack vừa thêm vào, các bạn sẽ thấy như hình dưới đây.

    • Đối với Groups: Dashboard  »  Administration  »  Group Administration  »  Default Group Presentation.  Tại phần, Default Theme, ta chọn theme hack vừa thêm vào ở trên.
    • Đối với Blogs: (tuỳ theo administrator có setup cho chọn theme không, ở đây tôi ví dụ là administrator cho ta chọn theme khác). Dashboard  »  My Blogs  » Lê Văn Phước  »  Personalize your Blog, tại phần: Available themes, ta chọn theme hack mới vừa add vào ở trên.


    Chú ý: do đây là theme clone (nhân bản) từ theme hawaii do đó hiện tại bạn sẽ không thấy có bất cứ sự khác biệt gì so với theme hawaii. Tuy nhiên ở các bài viết tiếp theo, khi tôi hướng dẫn các bạn tôi sẽ dùng theme hack để chỉnh sửa, thêm mới, ....

  • Community Server với URL thân thiện với SEO

    Khi bạn viết một bài viết trên blog của mình, bạn (cũng như tôi) đều muốn có nhiều người vào xem bài viết của mình. Tuy nhiên không phải ai cũng có thể biết được địa chỉ của trang web của mình phải không ? 90% khách viếng thăm trang web của mình là nhờ vào Search Engine. Do đó, nếu bạn là developer và bạn có blog, có viết ứng dụng Web thì khi đó bạn có quan tâm đến SEO không ? Và khi bạn tìm hiểu Search Engine thì chắc chắn bạn phải hiểu đến lúc này URL của trang web của bạn quan trọng như thế nào phải không ?

    Ví dụ với bài viết này có đường dẫn URL: ..../community-server/community-server-voi-url-than-thien-voi-seo/

    Và khi được một Search Engine nào đó index vào thì URL chứa các keywords như: Community Server, URL, SEO, than thien, voi (và thường thì Tiếng Việt khi được tìm sẽ tìm theo dạng Tiếng việt không dấu nhiều hơn có dấu!)

    Quay trở lại với Community Server. Bài viết này tôi hướng dẫn bạn fixed một bug nhỏ nhưng là một bước tiến rất lớn đối với Community Server. Vì sao tôi nói như vậy ? Nếu bạn để ý thì khi bạn post 1 bài viết trong blog của mình trong Community Server với tiêu đề là Tiếng Việt thì lúc đó bạn có nhìn kỹ vào URL của bài viết của mình không ? Và nếu nhìn kỹ thì bạn cố gắng lắm còn đọc không được nữa à! Bạn đã không đọc nỗi thì làm sao Search Engine đọc được hả.

    Bây giờ thì bắt tay vào làm như sau:

    Login vào Community Server với user mà bạn có thể post được bài trên blog của mình. Khi đó post bài test với tiêu đề (Title) như sau: Bí mật trong máy tính một trăm năm trước công nguyên. (nội dung không quan trọng, post TEST chẳng hạn). Lúc đó bạn sẽ thấy giống như hình sau:
     

    Sau đó lưu lại, và view lại bài post mới test, nhìn vào URL trên trình duyệt của bạn sẽ thấy như hình sau



    Wowo, bạn thử copy đoạn tôi gạch đích, gửi cho bạn thân của bạn qua yahoo messenger và hỏi họ đọc được đó là gì ? A a a a.... họ đọc được không ? nếu họ đọc không được thì làm sao SEO đọc được nữa đây. Đúng vậy, vấn đề tôi muốn URL của tôi lúc này phải là

    Vì sao có sự khác biệt như thế. Thật ra đó là do Community Server khi thiết kế là họ thiết kế cho ngôn ngữ Tiếng Anh. Do đó họ chỉ cần dùng các ký tự ASCII là đủ. Còn mình khi post bài lại dùng Tiếng Việt Unicode nên mới có sự xảy ra như thế. Và khi bài viết của bạn được published lên blog thì đều đó có nghĩa là nó đã được lưu xuống database và không có khả năng fixed lại (nếu có thì phải can thiệp trực tiếp xuống database, và điều này chỉ làm khi bạn thật sự có kinh nghiệm nhiều về Community Server).

    Vậy có cách nào khác phục không ? và tôi muốn URL của tôi phải đọc được giống như là: Tiếng Việt không dấu ? OK, Tiếng Việt không dấu đọc cũng hiểu mà (nhiều khi bạn chat cũng dùng Tiếng Việt không dấu nhiều mà).

    Cách khác phục thì đương nhiên là có và cách này yêu cầu bạn phải sửa Core code của Community Server và khi đó phải phải build lại DLL và upload nó vào lại thư mục bin trong host của mình.

    Sau đây mình hướng dẫn bạn cách khắc phục (fixed) lỗi này nhe.

    + Mở solution Community Server 2008 SP1 SDK bằng Visual Studio 2008
    + Click vào project CommunityServerComponents20, sau đó chọn file  \Components\Globals.cs  và thêm vào method sau. (Nên thêm ở đầu class này).

       27         public static string RemoveDiacritics(string input)

       28         {

       29             input = input.Replace('đ', 'd');

       30             input = input.Replace('Đ', 'D');

       31             string stFormD = input.Normalize(NormalizationForm.FormD);

       32             int len = stFormD.Length;

       33             System.Text.StringBuilder sb = new StringBuilder();

       34             for (int i = 0; i < len; i++)

       35             {

       36                 UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(stFormD[i]);

       37                 if (uc != UnicodeCategory.NonSpacingMark) { sb.Append(stFormD[i]); }

       38             }

       39             return (sb.ToString().Normalize(NormalizationForm.FormC));

       40         }

    + Tiếp tục, click chọn project: CommunityServerBlogs20, sau đó chọn file: WeblogPosts.cs.
    + Sau đó đi đến dòng 212. Lúc đó là method sau

      212 internal static void PostFormatting(WeblogPost post)

    + Cẩn thận sửa lại trong method này như sau: (comment dòng code gốc, sau đó edit lại thành dòng mới)

      223  //string name = spacer.Replace(postNameInvalidChars.Replace(post.Subject, " "), " ").Trim().ToLower();

      224  string name = spacer.Replace(postNameInvalidChars.Replace(Globals.RemoveDiacritics(Globals.HtmlDecode(post.Subject)), " "), " ").Trim().ToLower();

    + Cuối cùng chọn Release_Obfuscate để build solution.
    + Sau đó, vào thư mục bin của project  CommunityServerWeb20 (Internal) để copy 2 file:  CommunityServer.Blogs.dll, CommunityServer.Components.dll lên thư mục bin của host (nếu đã published lên host)
    + Test thử post một bài và các bạn có thể xem kết quả như hình dưới đây
     

    Bạn có ý kiến gì không ?

  • Cài đặt Community Server 2008 SP1 SDK và Run code bằng Visual Studio 2008

    Bài viết này tôi hướng dẫn bạn cài đặt Community Server 2008 SP1 SDK và run code bằng Visual Studio.

    A. Các yêu cầu để có thể chạy được Community Server 2008 SP1 SDK

    1. Visual Studio 2008
    2. .NET Framework 2
    2. IIS
    3. SQL Server 2005 hoặc SQL Server 2005 Express

    B. Cài đặt

    1. Trước tiên bạn phải download Community Server 2008 SP1 SDK về máy local của mình. Khi mở ra page download, bạn click vào button Download như hình dưới đây.

    Quá trình download kết thúc, bạn có được file: CS2008_SP1_4.0.30619.63.sdk.zip. (Lưu ý, tùy vào thời điểm download có thể file này sẽ khác. Tuy nhiên bạn có thể download file này ở blog của mình.)

     2. Chuẩn bị database. Ở đây mình sử dụng database SQL Server 2005 Express

    • Login vào Microsoft SQL Server Management Studio Express. Nếu bạn chưa cài ứng dụng này thì hãy nhờ Google giúp nhe.
    • Sau đó tạo 1 Database blank. Ví dụ tên là: CS2008
    • Và bạn phải nhớ các thông số này truy cập cho database này: Server, UserName, Password, DatabaseName

    3. Cài đặt và run SDK bằng VS2008

    • Unzip file CS2008_SP1_4.0.30619.63.sdk.zip vào 1 thư mục nào đó. Ở đây tôi Unzip vào thư mục: D:\Sources\CS
    • Sau khi Unzip xong, Bạn mở Visual Studio 2008 lên, và open solution ở thư mục D:\Sources\CS\CS2008_SP1_4.0.30619.63.sdk\source\Community Server 20.sln. Vì Community Server 2008 được viết trên Visual Studio 2005 nhưng bạn mở solution này trong Visual Studio 2008 nên lần đầu tiên Visual Studio 2008 sẽ hỏi bạn là convert projects qua Visual Studio 2008, bạn làm theo wizard và quá trình convert sẽ thành công. Sau đó save solution lại cho tương thích với version của Visual Studio 2008 này.
    • Default sau khi mở solution, Community Server 2008 dùng CommunityServerForums20 làm Start up project. Bạn sửa lại project CommunityServerWeb20 (Internal) làm Start-up project. Click phải vào node này và chọn Set as StartUp project.
    • Tiếp theo bạn mở file CommunityServerWeb20 (Internal)\Installer\default.aspx tìm và sửa giống như hình sau



      Bạn để ý là sửa biến bool từ false thành true thôi.
    • Bây giờ click phải lên page: CommunityServerWeb20 (Internal)\Installer\default.aspx  và chọn View in Browser. Quá trình build solution diễn ra và page sau đó được mở ra bằng FireFox hay IE hay browser nào tùy thuộc setup Visual Studio 2008 của bạn. Màn hình setup sẽ hiện ra.
      • Wizard 1



        Wizard này hiện thị các yêu cầu cần thiết ở máy tính cài Community Server 2008 SP1. Click next để qua Wizard tiếp theo nếu máy mình đã đủ yêu cầu cài đặt này.
         
      • Wizard2



        Wizad này yêu cầu bạn đọc kỹ licensed, bạn kéo cuộn xuống đến cuối page và check vào checkbox I Agree sau đó click next để qua wizard tiếp theo.
         
      • Wizard 3



        Bước này yêu cầu bạn khai báo thông số server, cũng như user và pass để login vào SQL Server. Bạn khai báo chính xác thông số và click Next để qua bước tiếp theo.
         
      • Wizard 4



        Bước này bạn chọn Database name: CS2008 như đã tạo Database blank ở trên. Sau đó click Next để qua bước tiếp theo
         
      • Wizard 5


         
        Bước này yêu cầu bạn chọn các tùy chọn khi Install. Để mặc định 3 checkbox được check. Mình sẽ diễn giải cách checkbox này ở bài viết sau. Sau đó click Next để qua bước tiếp theo.
         
      • Wizard 6



        Bước này yêu cầu bạn khai báo thông số cho user Admin khi login vào Community Server. Điền các thông số chính xác và click vào checkbox Create Sample Data nếu bạn muốn Community Server tạo cho bạn trước một vài dữ liệu mẫu. Nếu không thì uncheck đi. Sau cùng click Next.

        Lúc này quá trình install sẽ diễn ra. Chờ chút và nếu mọi việc OK hết thì bạn sẽ qua bước cuối cùng.
         
      • Wizard 7



        Quá trình cài đặt Community Server 2008 SP1 dùng SDK đã hoàn tất. Và quá trình cài đặt này tự động cập nhật connection string của SQLServer vào file web.config

         
    • Chúc mừng bạn, bạn đã cài đặt thành công Communtiy Server 2008 SP1 dùng SDK. Tuy nhiên đến đây tôi khuyến cáo bạn nên OFF chức năng install lại bằng cách vào file: CommunityServerWeb20 (Internal)\Installer\default.aspx và sửa lại giá trị cho biến là false. Lúc đó bạn sẽ thấy như hình sau:


      Đương nhiên là phải save lại rồi.
       
    • Và cuối cùng là run solution bằng cách click phải vào page default.aspx và chọn View in Browser như hình dưới đây


       
    • Cửa sổ Browser sẽ mở và Community Server 2008 SP1 SDK đã được cài đặt thành công

    Chúc mừng bạn, chỉ vài thao tác đơn giản bạn đã cài đặt thành công Community Server 2008 SP1 SDK và chạy được code trong môi trường Visual Studio 2008. Ờ những bài tiếp theo tôi sẽ viết tiếp những kinh nghiệm thực tế đã làm việc với Community Server 2008. Đón đọc nhe.

    Mọi ý kiến đóng góp rất hoan nghênh.