نوشتن C# Code Behind در صفحات شیرپوینت – بخش ۲

در بخش اول این مقاله، روش نوشتن کدهای C# در داخل بدنه فایل .aspx صفحات شیرپوینت رو تشریح کردم. امروز تصمیم دارم تا روش دوم اینکار که از لحاظ امنیتی مطمئن تر هست و همچنین منجربه تولید فایل DLL می شود را با یک مثال برای شما توضیح بدم.

در اینجا ما نیاز به محیط Visual Studio 2005,2008 داریم.

۱- ابتدا برنامه VS رو اجرا کنید. یک پروژه از نوع Class Library ایجاد کنید که زبان آن C# باشد. نام آنرا HelloSharePoint انتخاب نمایید.

۲- حال در قسمت Reference پروژه یک فایل DLL به نام Microsoft.SharePoint.dll را باید اضافه کنید و در کد برنامه و در قسمت Using آنرا اضافه نمایید. این فایل رو در آدرس زیر میتونید پیدا کنید :

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\ISAPI

۳- یک Reference هم برای System.Web در پروژه اضافه کنید.

۴- نام Class1 را در Solution Explorer به HelloSharePointCode تغییر دهید. یک Inherit به آدرس زیر برای این کلاس ایجاد کنید :

Microsoft.SharePoint.WebPartPages.WebPartPage

۵- اکنون کد خود را به صورت زیر بنویسید :

using System;

using System.Collections.Generic;

using System.Text;

using System.Web;

using Microsoft.SharePoint;

namespace HelloSharePoint

{

 public class HelloSharePointCode : Microsoft.SharePoint.WebPartPages.WebPartPage

 {

    protected Label label1;

    void Page_Load(object sender, EventArgs e)

    {

       label1.Text = "Hello SharePoint!";

    }

 }

}

۶- قبل از اینکه بخواهید این کد را Build نمایید. باید برای آن Sign Key ایجاد کنیم.زیرا شیرپوینت اجازه استفاده از Unsigned کدها رو نمی دهد. با Sign کردن کد شما اجازه پیدا می کنید تا DLL را در GAC اضافه کنید.

برای اینکار بر روی پروژه کلیک راست نمایید و Properties را انتخاب کنید. از ستون سمت چپ گزینه Signing را کلیک کنید. حال گزینه Sign The Assembly را تیک بگزارید و از لیست گزینه NEW را انتخاب کنید. حال یک نام به صورت HelloSPKey وارد کنید و پروژه را ذخیره نمایید.

 

۷- پروژه را Build کنید تا فایل DLL کد شما ساخته شود.

۸- اکنون این فایل DLL را در GAC کپی کنید. C:\windows\assembly

۹- پس از اضافه شدن فایل به GAC وارد آدرس فوق شوید و بر روی فایل HelloSharePoint کلیک راست کنید و Properties را انتخاب کنید. سپس در قسمت Public Key کد نوشته شده را کپی نمایید.

۱۰- اکنون فایل web.config سایت شیرپوینتی رو که قرار هست از این کد در آن استفاده کنید باز کنید و خط زیر را به آن اضافه کنید :

SafeControl Assembly=”HelloSharePoint, Version=1.0.0.0, Culture=neutral, PublicKeyToken= 71e9bce111e9429c” Namespace=”HelloSharePoint” TypeName=”*” Safe=”True” /><

به جای قسمت قرمز رنگ باید Public Key که در مرحله ۹ کپی کرده بودید را جایگزین کنید.

۱۱- اکنون صفحه ای که قرار هست از این کد در آن استفاده کنید را در SharePoint Designer باز کنید. ابتدا در بدنه کد این صفحه که به صورت .aspx است یک کنترل asp:Label قرار دهید. به صورت زیر :

<asp:Label Runat=”Server” ID=”Label1” />

دقت کنید ID این کنترل باید مانند ID تعریف شده در کد C# شما باشد.

۱۲- حال در بالای صفحه و در قسمت @Page کد زیر را جایگزین کنید تا صفحه از کد کلاس شما و assembly آن Inherit شود.

Inherits=" HelloSharePoint.HelloSharePointCode, HelloSharePoint, Version=1.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c "

۱۳- تغییرات صفحه را ذخیره کنید و صفحه را در IE باز نمایید. مشاهده خواهید کرد که کنترل Label شما مقدار موجود در کد C# شما یعنی “Hello SharePoint!” را نمایش می دهد.

نکته :  پس از نوشتن کدهای C# و ساخت DLL از آنها، ممکن است نیاز به Debug کردن آنها جهت خطایابی داشته باشید، به این مقاله  مراجعه کنید .

موفق باشید.. J

 

پاسخ دهید