شیرپوینت از نگاهی دیگر ( بخش سوم )

 

سلام

امیدوارم
که تا اینجا از مطالب ارائه شده استفاده لازم را برده باشید ، مخاطبین
امروز ما بیشتر توسعه دهندگان هستند ، در این مقاله در مورد ایجاد صفحات
در شیرپوینت ،
MasterPage  ها و همچنین Feature  ها صحبت خواهیم کرد .

چگونه صفحات اختصاصی در شیرپوینت ایجاد کنیم ؟

یکی
از سوالاتی که برای خیلی از توسعه دهندگانی که تازه با شیرپوینت آشنا شدند
پیش میاد این است که چطور میتوانیم صفحات اختصاصی در شیرپوینت بسازیم ؟

همانطور
که در مقاله اول توضیح دادم در شیرپوینت ما دو نوع صفحه داریم که در اینجا
میتونیم کمی دقیقتر این موضوع رو بررسی کنیم ، در مقاله اول گفتیم که ما
دونوع صفحه عمومی و صفحه اختصاصی در شیرپوینت داریم ، صفحات عمومی که در
تمام سایتها وجود دارند به ما کمک میکنند تا تنظیمات و مشخصات سایتها را
مشخص کنیم ، مانند صفحه " تنظیمات سایت " . همچنین نکته دیگری که در مورد
این صفحات باید بدانید این است که تمام این صفحات در مسیر زیر قرار دارند :

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS

که با رفتن به این مسیر میتوانید سایر صفحات عمومی را مشاهده نمایید :

 

خوب ، در اینجا ما یک صفحه ASPX  ساده به نام SimplePage.aspx  می سازیم و در این مکان قرار میدهیم ، سپس شما میتوانید به IIS  بروید و آن را مشاهده نمایید :

( برای مشاهده سایز بزرگتر تصویر اینجا را کلیک کنید )

چگونه صفحات اختصاصی خود را به صفحات استاندارد شیرپوینت تبدیل کنیم ؟

همانطور
که در بالا مشاهده میکنید صفحه ای که ساختیم شباهتی به صفحات استاندارد
شیرپوینت ندارد ، سوالی که در اینجا پیش میاد این است که چطور میتونیم این
صفحات را به صورت استاندارد تبدیل کنیم ؟

برای اینکار ما میبایست از صفحات MasterPage  شیرپوینت استفاده کنیم ، در واقع برای اینکه ظاهر صفحات ما به شکل استاندارد شیرپوینت درآیند میبایست این استایل ها را از MasterPage  های شیرپوینت به ارث ببرند :

برای این کار ما میبایست تغییرات زیر را در صفحات خود بدهیم :

          اضافه کردن اسمبلی های مرتبط با شیرپوینت

          انتصاب یکی از MasterPage  های شیرپوینت

          وارد کردن فضای نام شیرپوینت

          همچنین ما سه Place Holder  را نیز وارد میکنیم ، یکی برای عنوان ، یکی برای قسمت مرکزی صفحه و یکی هم برای عنوان صفحه .

 

<!— First refer the assembly using the Assembly directive ->

<%@ Assembly Name="Microsoft.SharePoint,Version=12.0.0.0, Culture=neutral,PublicKeyToken=71e9bce111e9429c" %>

<!— Refer the master page from the _layouts directory ->

<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master"

Inherits="Microsoft.SharePoint.WebControls.LayoutsPageBase" %>

<!—Import the sharepoint namespace ->

<%@ Import Namespace="Microsoft.SharePoint" %>

<!—This is the content holder for page title ->

<asp:Content ID="Content3" ContentPlaceHolderId="PlaceHolderPageTitle" runat="server">

Let's learn SharePoint….

</asp:Content>

<!- This is the place holder for data for main page area ->

<asp:Content ID="Content1" ContentPlaceHolderId="PlaceHolderMain" runat="server">

SharepointSolutions.ir

</asp:Content>

<!- This is the placeholder for page title area ->

<asp:Content ID="Content2" ContentPlaceHolderId="PlaceHolderPageTitleInTitleArea" runat="server">

SharePoint is Simple…..

</asp:Content>

 

حالا صفحه شما چیزی شبیه شکل زیر خواهد شد :

چگونه میتوانیم برای صفحات خود کد بنویسیم ؟

اگر
یک برنامه نویس باشید حتما این سوال برای شما پیش خواهد آمد که پس از
ایجاد صفحات حالا چگونه میتوانیم کدهای خود را به آن اضافه کنیم ؟

یکی از اولین احتیاجات ما برای این کار این است که میبایست کدهای خود را در GAC  رجیستر کنیم در واقع میبایست کدهای خود را کامپایل و به DLL  تبدیل کنیم و سپس آن را در GAC  ( پوشه اسمبلی که در فولدر ویندوز قرار دارد ) رجیستر کنیم .

سپس ما میبایست از این DLL  در صفحات خود استفاده کنیم .

قدم اول :

در این مرحله ما دو Solution  در ویژوال استودیو میسازیم که یکی شامل کلاسی است برای کدهای ما و دیگری یک پروژه وبی میباشد که شامل یک صفحه به نام SimplePageCodeBehind.aspx  میباشد .

قدم دوم :

در
این مرحله ما کلاسی ایجاد خواهیم کرد که شامل ۲ لیبل خواهد بود که به آنها
مقداری اختصاص خواهیم داد ، نکته مهم اینجاست که ما میبایست از فضاهای نام
System.Web.UI  و همچنین Microsoft.Sharepoint  در این کلاس استفاده نماییم  و نکته دیگر اینکه کلاس ما LayoutsPageBase را از فضای نام Microsoft.sharepoint  به ارث خواهد برد .

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;

// need to refer the UI objects of ASP.NET
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

// Need to refer the SharePoint DLL
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
namespace ClassLibrary1
{

// Inherit the behind code from ‘LayoutsPageBase’ class of SharePoint

public partial class _Default : LayoutsPageBase
{

protected Label lblSiteQuestion;
protected Label lblSiteAnswer;

protected override void OnLoad(EventArgs e)
{
lblSiteQuestion.Text = " How can we implement behind code in SharePoint ?";
lblSiteAnswer.Text = " We need to register the behind DLL in GAC";
}
}
}

همچنین ما باید این DLL  را در GAC  رجیستر کنیم که میتوانید این کار را با استفاده از GACUTIL انجام دهید .

قدم سوم :

خوب ، حالا نوبت به طراحی اینترفیس صفحه رسیده ، که در زیر شما میتوانید ملاحظه کنید که ما چطور صفحه ASPX  خود را خواهیم ساخت :

در ابتدا میبایست اسمبلی ها مورد نیاز خود را به صفحه اضافه کنیم ، که یکی شیرپوینت میباشد و دیگری DLL ای که کدهای ما در آن قرار دارد ، سپس  نوبت به انتصاب MasterPage  میرسد :

<!—Refer the sharepoint assembly ->

<%@ Assembly Name="Microsoft.SharePoint,Version=12.0.0.0, Culture=neutral,PublicKeyToken=71e9bce111e9429c" %>

<!—Refer the behind code, Note that the behind code is coded in a different assembly and registered in the GAC ->

<%@ Assembly Name="ClassLibrary1, Version=1.0.0.0, Culture=neutral,PublicKeyToken=af6d081bf267e17e" %>

<!— In order to maintain consistent look and feel we need to inherit from the Application.Master page ->

<%@
Page Language="C#" MasterPageFile="~/_layouts/application.master"
Inherits="ClassLibrary1._Default" EnableViewState="false"
EnableViewStateMac="false" %>

حالا میتوانیم محتویات صفحه ی خود را در داخل Place Holder  ها قرار دهیم :

<asp:Content ID="Main" contentplaceholderid="PlaceHolderMain" runat="server">
<table border="1" cellpadding="4" cellspacing="0" style=’font-size:12′>
<tr>
<td>Question</td>
<td><b><asp:Label ID="lblSiteQuestion" runat="server" /></b></td>
</tr>
<tr>
<td>Answer</td>
<td><asp:Label ID="lblSiteAnswer" runat="server" /></td>
</tr>
</table>
</asp:Content>

<asp:Content ID="PageTitle" runat="server"
contentplaceholderid="PlaceHolderPageTitle" >
SharePoint Behind code implementation
</asp:Content>

<asp:Content ID="PageTitleInTitleArea" runat="server"
contentplaceholderid="PlaceHolderPageTitleInTitleArea" >
When we want to implement behind code we need to register the same in GAC.
</asp:Content>

نکته : پروژه را در داخل ویژوال استودیو کامپایل نکنید ، شما فقط میبایست کلاس خود را کامپایل کنید ، صفحه ASPX  شما میبایست در _Layout  کپی شود .

خوب ، حالا میتوانید صفحه ASPX خود را در Layout کپی کنید ( DLL را هم که از قبل میبایست درGAC رجیستر کرده باشید ) و صفحه خود را در مرورگر باز کنید تا نتیجه کار خود را ببینید :

( برای مشاهده سایز بزرگتر تصویر اینجا را کلیک کنید )

Feature  چیست ؟

یکی از مهمترین قابلیت هایی که Feature  ها برای ما فراهم میکنند امکان فعال یا غیر فعال کردن امکانات موجود در شیرپوینت میباشد ، در واقع وقتی که ما یک Feature  را
در فارم نصب میکنیم میتوانیم از آن در تمام سایت ها استفاده کنیم بدون
اینکه مجبور باشیم فایلهای مرتبط با آن را در هر یک از سایتها کپی کنیم .

با استفاده از Feature  ها
میتوانیم کارهای ساده ای مثل اضافه کردن یک لینک به تنظیمات سایت تا
کارهای پیچیده ای مثل نوشتن توابعی برای مدیریت پروژه ها را در شیرپوینت
پیاده سازی نماییم  .

یکی از نکاتی که در مورد Feature  ها باید بدانید این است که تمام Feature  ها در مسیر زیر قرار میگیرند :

C:\Program Files\Common Files\Microsoft Shared\Web server extensions\12\Template\FEATURES

اگر به این مسیر بروید میتوانید تمام Feature   هایی که در سرور شما نصب شده است را مشاهده نمایید :

( برای مشاهده سایز بزرگتر تصویر اینجا را کلیک کنید )

نکته دیگری که در مورد Feature  ها میتوان گفت این است که هر Feature  شامل دو فایل XML  به نام های Feature.xml  و ElementManifest.xml  میباشد ، شیرپوینت با خواندن فایل Feature.xml  متوجه میشود که این پوشه شامل یک Feature  میباشد که البته هر Feature  شامل یک GUID  مخصوص به خود میباشد که آن را از سایر Feature  ها متمایز میکند ، در واقع فایل Feature.xml  یکسری اطلاعات اولیه در مورد این Feature  در اختیار شیرپوینت قرار میدهد .

نکته دیگر در مورد فایل Feature.xml  این است که اگر Feature  ما شامل کد باشد ، DLL  مربوط به آن میبایست در GAC  کپی شود .

 فایل ElementManifest.xml  نیز نحوه پیاده سازی Feature  را مشخص میکند :

در مقاله بعد بیشتر در مورد Feature  ها صحبت خواهیم کرد .

به
پایان سومین بخش از سری مقالات شیرپوینت از نگاهی دیگر رسیدیم ، امیدوارم
با نظرات خود مرا در نوشتن ادامه این مقالات همراهی نمایید .

در مقاله بعد در مورد نحوه ایجاد یک Feature  صحبت میکنیم و سپس در مورد Template  ها مطالبی را خدمت شما ارائه خواهم کرد .

 

پاسخ دهید