Расширения SharePoint для VS - какую версию я получил? - PullRequest
0 голосов
/ 05 февраля 2010

Я использую Visual Studio 2008 и скачал VSeWSS.exe 1.2, чтобы включить разработку веб-частей. Я новичок в разработке SP, и меня уже сбивает с толку количество различных версий SP и дополнений VS. Эта конкретная проблема возникла, что подчеркивает мою путаницу.

Я выбрал Добавить -> Новый проект -> Visual C # -> SharePoint-> Веб-часть, принял значения по умолчанию и VS создал проект с основным файлом WebPart1.cs

using System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;

using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;

namespace WebPart1
{
    [Guid("9bd7e74c-280b-44d4-baa1-9271679657a0")]
    public class WebPart1 : System.Web.UI.WebControls.WebParts.WebPart
    {
        public WebPart1()
        {
        }

        protected override void CreateChildControls() // <-- This line
        {
            base.CreateChildControls();

            // TODO: add custom rendering code here.
            // Label label = new Label();
            // label.Text = "Hello World";
            // this.Controls.Add(label);
        }
    }
}

Книга, которой я следую, Essential SharePoint 2007, написанная Джеффом Уэббом, содержит следующее для проекта по умолчанию:

using System;
<...as previously>

namespace WebPart1
{
    [Guid("9bd7e74c-280b-44d4-baa1-9271679657a0")]
    public class WebPart1 : System.Web.UI.WebControls.WebParts.WebPart
    {
        // ^ this is a new style (ASP.NET) web part! [author's comment]
        protected override void Render(HtmlTextWriter writer) // <-- This line
        {
            // This method draws the web part   
            // TODO: add custom rendering code here.
            // writer.Write("Output HTML");
        }
    }
}

Настоящая причина моей обеспокоенности заключается в том, что в этой главе книги автор часто упоминает различие между веб-частями "старого стиля" и веб-частями "нового стиля", как отмечено в его комментарии к методу рендеринга.

Что случилось? Почему моя веб-часть по умолчанию получила другую подпись авторов?

1 Ответ

0 голосов
/ 31 мая 2010

Различие, которое автор делает с веб-частями «нового стиля», состоит в том, что они являются веб-частями ASP.NET 2.0 (выпущенными в 2005 году), которые могут использоваться как в SharePoint, так и в ASP.NET. Веб-части старого стиля были специфичны для SharePoint

  • Новый стиль System.Web.UI.WebControls.WebParts.WebPart, доступный в ASP.Net 2.0 (2005) и WSS 3.0 (2006)
  • Старый стиль Microsoft.SharePoint.WebPartPages.WebPart (все еще поддерживается)

В примерах кода, о которых идет речь, обе веб-части имеют новый стиль, т.е. это веб-части ASP.NET. Единственное отличие состоит в том, что визуальная студия переоценила другой метод, нежели книга. Однако оба метода, и многие другие, например. OnLoad, OnInit доступны и будут настроены для работы веб-части.

Моя рекомендация после нескольких месяцев разработки веб-части - использовать первую в качестве основы для веб-части "Привет, мир", т.е.

      protected override void CreateChildControls() 
    {
        base.CreateChildControls();
        Label label = new Label();
        label.Text = "Hello World";
        this.Controls.Add(label);
    }

А затем начните добавлять код к этому методу или добавьте другие методы (например, OnLoad, OnPrerender) для добавления функциональности.

Метод Render не будет переопределен в большинстве веб-частей.

...