Zoeken…


Ontwikkelomgeving instellen

Om te beginnen met App-ontwikkeling hebben we Visual Studio 2013 of een hogere versie nodig. Download hier de nieuwste community- of expressie-editie> https://www.visualstudio.com/products/free-developer-offers-vs

Nadat het is gedownload en geïnstalleerd

Open en klik op nieuw project maken

vouw Office / SharePoint-gedeelte uit. U ziet een optie voor de app, zoals hieronder wordt weergegeven.

voer hier de afbeeldingsbeschrijving in

Als de app-optie niet beschikbaar is Sluit de VS, download en installeer Microsoft Office Developer Tools https://www.visualstudio.com/en-us/features/office-tools-vs.aspx

Voorbereiding op ontwikkelaarssite

Zodra we Visual Studio hebben, hebben we een ontwikkelaarssite nodig om apps op SharePoint te implementeren. De eenvoudigste manier is om te krijgen is> Meld u aan voor een gratis Office 365-ontwikkelaarsaccount https://profile.microsoft.com/RegSysProfileCenter/wizardnp.aspx?wizid=14b845d0-938c-45af-b061-f798fbb4d170&lcid=1033

Zodra het aanmeldingsproces is voltooid, https://www.office.com/ center URL voor al uw app voer hier de afbeeldingsbeschrijving in

Maak een app in Visual Studio

Laten we beginnen met het maken van onze eerste app

  1. Open visuele studio en> maak een nieuw project
  2. Voer naam en locatie in voer hier de afbeeldingsbeschrijving in
  1. Voer de URL van uw ontwikkelaarssite in die u in de vorige stap hebt gemaakt en selecteer Door provider gehost

voer hier de afbeeldingsbeschrijving in

  1. Er zal een pop-up worden geopend die zal inloggen

  2. De volgende stap is voor het type toepassing, selecteer MVC of Webform. Ik selecteer hier MCV voer hier de afbeeldingsbeschrijving in

  3. Kies onder Hoe wilt u dat uw invoegtoepassing wordt geverifieerd? Windows Azure Access Control Service gebruiken. En klik op Voltooien

  4. In oplossingsverkenner kunnen we zien dat er 2 project is gemaakt. Een daarvan is SharePoint app-deel en een andere is asp.net web-app

voer hier de afbeeldingsbeschrijving in

Laten we beginnen met coderen

Hier neem ik het voorbeeld van een eenvoudige nieuws-app

  1. Open de SharePoint-ontwikkelaarssite en maak een lijst om onze nieuwsartikelen op te slaan

  2. Maak een aangepaste lijst en voeg nog 3 kolommen toe Body, Summery, ThumbnailImageUrl voer hier de afbeeldingsbeschrijving in

  3. Ga terug naar onze SharePoint-app, open het bestand AppManifest.xml, klik op het tabblad Machtiging en geef leesrechten voor de siteverzameling en sla deze op. voer hier de afbeeldingsbeschrijving in

  4. Open HomeController vanuit een webapplicatie, in mijn geval is het een MVC-applicatie. Als u een webformulier-app maakt, moet uw code zich op de pagina default.aspx.cs bevinden

  5. Hieronder staat het codefragment voor het laatste nieuws uit de lijst. Zo zou onze indexpagina eruit moeten zien.

    [SharePointContextFilter]
    public ActionResult Index()
    {
        User spUser = null;
    
        var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);
        List<NewsList> newsList = new List<NewsList>();
        using (var clientContext = spContext.CreateUserClientContextForSPHost())
        {
            if (clientContext != null)
            {
                spUser = clientContext.Web.CurrentUser;
    
                clientContext.Load(spUser, user => user.Title);
    
                clientContext.ExecuteQuery();
    
                ViewBag.UserName = spUser.Title;
    
                List lst = clientContext.Web.Lists.GetByTitle("News");
                CamlQuery queryNews = CamlQuery.CreateAllItemsQuery(10);
                ListItemCollection newsItems = lst.GetItems(queryNews);
                clientContext.Load(newsItems, includes => includes.Include(i => i.Id, i => i.DisplayName, i => i["ThumbnailImageUrl"], i => i["Summery"]));
    
                clientContext.ExecuteQuery();
    
                if (newsItems != null)
                {
                    foreach (var lstProductItem in newsItems)
                    {
                        newsList.Add(
                            new NewsList
                            {
                                Id = Convert.ToInt32(lstProductItem.Id.ToString()),
                                Title = lstProductItem.DisplayName.ToString(),
                                Summery = lstProductItem["Summery"].ToString(),
                                Thumbnail = lstProductItem["ThumbnailImageUrl"].ToString()
                            });
                    }
                }
            }
        }
    
        return View(newsList);
    }
    
  6. Klik nu met de rechtermuisknop op Index en klik op Weergave toevoegen. Klik vervolgens op Toevoegen

voer hier de afbeeldingsbeschrijving in

  1. Open nu het bestand Index.cshtml vanuit Views> Home-map

  2. Hieronder staat het codefragment voor het bestand index.cshtml

    @model List<SharePointNewsAppWeb.Models.NewsList>
     @{
     ViewBag.Title = "My News - browse latest news";
    }
     <br />
     @foreach (var item in Model)
     {
     <div class="row panel panel-default">
      <div class="col-xs-3">
        <a href="/home/[email protected]">
            <img class="img-responsive" style="max-height:200px;max-width:100%;" src="@item.Thumbnail" alt="@item.Title" />
        </a>
    </div>
    <div class="col-xs-9 panel-default">
        <div class="panel-heading">
            <h4><a href="/home/[email protected]">@item.Title.ToUpper()</a></h4>
        </div>
        <div class="panel-body">
            <p>@item.Summery</p>
        </div>
    </div>
    
  3. Klik met de rechtermuisknop op Modelmap in uw oplossing en voeg een CS-klassebestand toe. Voeg hieronder Modelklassen toe

     using System;
     using System.Collections.Generic;
     using System.Linq;
     using System.Web;
    
     namespace SharePointNewsAppWeb.Models
    {
      public class NewsApp
       {
    
       }
     public class NewsList
      {
    
    public int Id { get; set; }
    
    public string Title { get; set; }
    
    public string Summery { get; set; }
    
    public string Thumbnail { get; set; }
     }
     public class FullArticle
     {
    
      public int Id { get; set; }
    
      public string Title { get; set; }
    
      public string Body { get; set; }
    
     }
    }
    
  4. Gebruik de F5-sleutel om uw invoegtoepassing te implementeren en uit te voeren. Als u een venster Beveiligingswaarschuwing ziet waarin u wordt gevraagd het zelfondertekende Localhost-certificaat te vertrouwen, kiest u Ja.

En nu is de eerste app klaar

Volledige artikelpagina maken

We hebben al een eerste pagina gemaakt met alle nieuwsartikelen. Deze pagina toont het volledige artikel.

  1. Voeg nog een actiemethode toe aan HomeController

    [SharePointContextFilter]
    public ActionResult Aticle(int ArticleId)
    {
        User spUser = null;
    
        var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);
        FullArticle article = new FullArticle();
        using (var clientContext = spContext.CreateUserClientContextForSPHost())
        {
            if (clientContext != null)
            {
                spUser = clientContext.Web.CurrentUser;
    
                clientContext.Load(spUser, user => user.Title);
    
                clientContext.ExecuteQuery();
    
                ViewBag.UserName = spUser.Title;
    
                List lst = clientContext.Web.Lists.GetByTitle("News");
                CamlQuery queryNews = new CamlQuery();
                queryNews.ViewXml = @"<View><Query><Where><Eq><FieldRef Name='ID'/>" + "<Value Type='Number'>" + ArticleId + "</Value></Eq></Where></Query>" +
                    "<ViewFields><FieldRef Name='ID'/><FieldRef Name='Title'/><FieldRef Name='Body'/></ViewFields></View>";//
                ListItemCollection newsItems = lst.GetItems(queryNews);
                clientContext.Load(newsItems, includes => includes.Include(i => i.Id, i => i.DisplayName, i => i["Body"]));
    
                clientContext.ExecuteQuery();
    
                if (newsItems != null)
                {
                    foreach (var lstProductItem in newsItems)
                    {
                        article.Id = Convert.ToInt32(lstProductItem.Id.ToString());
                        article.Title = lstProductItem.DisplayName.ToString();
                        article.Body = lstProductItem["Body"].ToString();
                    }
                }
            }
        }
        return View(article);
    }
    
  2. Nogmaals Klik met de rechtermuisknop op Actie en maak een weergave met dezelfde naam Naam van de actiemethode. In mijn geval wordt View Aticle genoemd

      @model SharePointNewsAppWeb.Models.FullArticle
    
    @{
     ViewBag.Title = "Aticle";
    }
    
    <br />
    <div class="panel panel-default">
     <div class="panel-heading"><a style="font-size:20px;" href="/"><i   class="glyphicon glyphicon-chevron-left"></i> <i class="glyphicon glyphicon-home"></i>      </a></div>
     <div class="panel-heading"><h1 class="h2">@Model.Title.ToUpper()</h1></div>
     <div class="panel-body">@Html.Raw(@Model.Body)</div>
    </div>
    

Dit is de code voor de volledige artikelpagina die de inhoud van het nieuwsartikel toont



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow