سلام
امیدوارم
که تا اینجا از مطالب ارائه شده استفاده لازم را برده باشید ، مخاطبین
امروز ما بیشتر توسعه دهندگان هستند ، در این مقاله در مورد ایجاد صفحات
در شیرپوینت ، 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 ها مطالبی را خدمت شما ارائه خواهم کرد .