Anasayfa » SharePoint 2013 App Model

Makaleyi Paylaş

Microsoft SharePoint

SharePoint 2013 App Model

App Model, belki de SharePoint 2013 ile birlikte gelen en majör ve ilginç değişikliklerden birisidir. Bu yazı dizisinde SharePoint 2013 App modeli detaylıca anlatmayı planlıyoruz.

SharePoint 2013 App model ile uygulama geliştiriciler bir çok yenilikler ve esneklikler kazanmıştır. Bunlara başlamadan önce  dünden bugüne devam eden uygulama geliştirme yöntemlerini ve bunların avantaj ve dezavantajlarından söz edelim.

SharePoint Farm Solution

 

SharePoint  Farm Solutionlar, uygulama geliştiricilere SharePoint üzerinde  geliştirecekleri uygulama için güçlü bir yöntem sunar. Fakat bununla beraber yapılan geliştirmeler server seviyesinde olduğu için solution paketinin fiziksel server üzerinde ve admin yetkisi ile deploy edilmesi gerekmektedir. Bu deploment esnasında tüm serverlar etkilendiği için kesintilere neden olmaktadır. Yoğun kullanımlı ortamlar için bu bazen kabul edilemez bir durum olabilmektedir.

Bir farm solution’ da yaşanabilecek en kritik sorunlardan biriside hatalı kodlama nedeni ile yaşanabilecek performans sorununun sadece deploy edildiği uygulamayı değil tüm farmı ve üzerindeki site’ları etkilemesidir. Örneğin geliştirmesini yapığımız bir uygulamada oluşabilecek bir memory leak aynı farm’ı kullanan web sitelar da yavaşlık ve erişim problemleri olarak karşımıza çıkacaktır.  Bir çok geliştiricinin ve uygulamanın olduğu kurumlarda bu tür problemlerin kaynağını bulmak ve çözmek zor ve maliyetlidir.

Sponsor

Bir diğer konuda farm solutionların cloud hosting için uygun olmamasıdır.  Bunun içinde sandboxed solutionlar tercih edilmektedir.

 

Sandboxed Solution

 

Sandboxed solutionlar yukarıda değindiğimiz sorunların bir çözümü olarak ortaya çıkmış bir geliştirme yöntemidir.  Sandboxed solutionlar, Farm solution’ların aksine tüm farmı etkilemezler ve oldukça korumacı bir mantığı vardır. İlgili uygulama sadece ilgili Site Collection’ı ilgilendirir ve deployment sırasında bir kesintiye neden olmaz. Fakat korumacı yapısı nedeni ile bir çok limitasyonu vardır ve bu limitlerle güçlü bir uygulama geliştirmek çok güçtür.  Ayrıca Microsoft Sandboxed solutionları da uzun süre desteklemeyeceğini duyurmuştur. (http://tinyurl.com/legufzs)

 

SharePoint 2013 App Model

App model yukarıda anlattığımız Farm Solution ve Sandboxed solutiondan tamamen farklı olarak geliştirilmiş bir kavramdır.  SharePoint 2013 Application Model cloud hosting için dizayn edilmiş bir teknolojidir. App model server site code barındırmaz. Sadece JavaScript, Jquery gibi clinet site scripting kodlar içerir.  App’lar SharePoint üzerinde host edilerek çalıştırılabileceği gibi başka sunucular üzerinde ve/veya cloud üzerinde de host edilebilir.

Microsoft ayrıca App larınızı yayınlayabilmeniz ve satabilmeniz için bir App store oluşturmuştur. Bu sayede uygulamalarınız Android market’de ki gibi dünya çapında müşterilerinizle buluşturabilirsiniz.

Yeni sharePoint App modelinde üç tür App türü vardır;

·        SharePoint-hosted app

·        Provider-Hosted app

·        Autohosted app.

Şimdi bu App türlerini tek tek inceleyelim.

 

SharePoint-Hosted App

 

SharePoint-hosted app ile uygulama dosyaları da dahil olmak üzere her şey SharePoint içerisinde saklanır. Bir uygulama app kataloğundan bir siteye yüklenmek istenildiğinde, uygulama için bir alt site ( alt – web) uygulaması oluşturularak uygulama dosyaları burada saklanır. Bu genellikle Appweb olarak isimlendirilir. Appweb’ler için sharepoint uniq bir uygulama adı ve application domaini ile bir URL oluşturacaktır.

 

clip_image002

 

Uygulama dosyaları App Web üzerinde konumlandırılır.  App Web ve Host Web (SharePoint Web Site) aynı Site Collection üzerindedir. App Web kurulumu tamamlandığında  SharePoint bu uygulama için uniq bir isim ve bir app domain ile URL üretecektir. Örnegin ;

http://Apps-12345678ABCDEF.Contoso-Apps.com/sites/SiteName/App1Name/Pages/Home.aspx

Uniq App Adı :  12345678ABCDEF

App Domain: Contoso-Apps.com

SharePoint Farmınız da nasıl App domain oluşturulacağını ilerleyen konularda detaylıca anlatacağız.

Provider-Hosted App

 

Provided-Hosted App, SharePoint dışında barındırılan bir uygulamadır. Örneğin kurum içerisndek ayrı bir IIS sunucunuz bir uygulamanızı barındırabilir. Buna remote web adı verilir. Bu tür uygulamalar daha hybrid uygulamalardır yanı hem client site kod hem de server site kod barındırabilirler. Bu yapıyı tanımlarken Facebook üzerinde canvas uygulama geliştirirken kullanılan tekniğe benzemektedir. Bu modelin avantajlı yönü her çeşit platform ve hardware üzerinde uygulama barındırabilmektir. Uygulamalarınızı kurum içinde bir IIS serverda, azure da veya herhangi bir uzak web sunucusunda barındırabilirsiniz. Uygulama provizyonu yapıldığında SharePoint ve remote app birbirlerine güvenir ve birlikte çalışırlar.

Auto-Hosted App

 

Auto-Hosted App, windows azure üzerinde hsot edilmek üzere özelleşmiş bir çeşit Provider-Hosted App dir. Auto-Hosted App üzerinde çok uzun durmayacağız çünkü Microsoft Auto-Hosted App leri desteklemeyeceğini duyurmuştur. (16 May 2014 Microsoft Announced: Autohosted apps Preview Program will end on June 30, 2014)

Bu şu anlama geliyor. Daha önceden windows azure üzerinde oluşturulmuş autohosted appler yaşamaya devam edecek ve bir kesinti olmayacak fakat bu tarihten sonra windows azure üzerinde Autohosted app oluşturulamayacak anlamına geliyor.

DNS Üzerinde Domain Name Konfigürasyonu

 

Bu bölümde App Domain için DNS’in nasıl konfigüre edileceğini inceleyeceğiz.

APP URL

 

Bir App, SharePoint Site’a deploy edildiğinde özel ve tekil bir URL üretilir. Bu URL, Farmınızın bağlı olduğu domain adı, uygulamaın deploy edildiği Site ve özel bir prefix den oluşur. Şöyleki ;

http://app-123456abcdef.domainAdiniz.com/sites/sharepoitSite/AppName

Burada app özel bir prefix’dir ve SharePoint Central Admin üzerinden değiştirilebilir. 123456abcdef App in deploy edildiği sırada sharepoint tarafından özel olarak üretilir ve uniq dir. domainAdıniz.com ise SharePoint Farmınzın kurulu olduğu Domain adını göstermektedir. sites/sharepointSite ise hosted web’inizin SiteCollection Path’ini belirtir.

Ana SharePoint site URL’i

clip_image004

 

SharePoint App Model ve DNS ile ilgili bilmemiz gereken ip uçları şunlardır;

·        App’lerin erişilebilir olması için bir wilcard DNS kaydına ihtiyacımız vardır.

·        App’lerin ne olacağına bizim karar veremeyiz veya değiştiremeyiz.

·        Farm üzerinde Subscription Settings Service‘in çalışır durumda olması gereklidir.

o   Appler için Sub Domainleri oluşturur.

o   App ler için uniq App ID üretir.

·        Farm üzerinde App Management Service ‘nin çalışır durumda olması gereklidir.

o   App yetkilerinden sorumlu servistir. (Permissions)

o   Lisans Bilgileri

Yeni Bir Zone Oluşturma

Yeni bir DNZ Zone oluşturmak için öncelikle DNS Manager’ı açalım. Forward Lookup Zone’a sağ tuşla tıklayıp New Zone’u seçelim.

 

clip_image006

Bu aşamada New Zone Wizard ekranı gelecektir. Next tuşuna basarak zone type ekranına geçelim.

clip_image008

Zone Type ekranında default olarak primary zone seçilidir ve Store the zone in active Directory check durumda iken next tuşuna basalım.

clip_image010

Aynı şekilde Active Directory Replication Scope ekranını da default olarak bırakıp Next tuşuna basalım.

clip_image012

Zone Name ekranında app’larımız için oluşturduğumuz domain adını yazalım. Örnekte ben constoso-apps.com ismini verdim.  Next tuşuna basalım.

clip_image014

Dynamic Update ekranında Do not allow Dynamic updates seçerek next tuşuna basalım.

clip_image016

Finish butonuna basarak işlemi tamamlayalım.

clip_image018

Bu şekilde yeni zone oluşturma işlemini tamamlamış olduk. Forward Lookup Zones altında oluşturduğumuz contoso-apps.com’ u görebilirsiniz.

Yeni Alias (CNAME) Oluşturma

DNZ Manager, Forward Lookup zone altında oluşturduğumuz contoso-apps.com ‘ a sağ tuşla basarak Add New Alias (CNAME) ‘i tıklayınız.

clip_image020

App’lerin erişilebilir olması için wilcard tanımlanması gerekir demiştik. Bu nedenle Alias name için “*” kullandık.  Otomatik olarak *.contoso-apps.com Full qualified domain name alanı oluşmuştur.  Full qualifed domain name (FQDN) for target host kısmına Browse butonuna basarak SharePoint server’ımızı seçiyoruz.

 

Şimdi domain name ve wildcard’ın çalıştığını test etmek için command prompt açalım ve test edelim.

clip_image022

1234abcd adında bir DNS kaydı oluşturmadık. Fakat Alias tanımladığımı için  sonunda .contoso-apps.com olan tüm testler için aynı sonucu alacağız.   Bir SharePoint app provisyon edildiğinde SharePoint  Subscription Settings Service tarafından app’a bir ID üretilir demiştik. Alias tanımlayarak üretilecek her ID ve URL için erişilebilir bir ortam sağlamış olduk.

Subscription Settings Service Application Konfigürasyonu

SharePoint 2013 App ‘ların farmınızda çalışabilmesi için Subscription Settings Service Application‘ nın kurulu ve çalışır olması gerekmektedir. Bu servis application app’ler için gerekli olan sub domainlerin oluşturulması ve applicationlar için uniq ID  üretilmesi için gereklidir. Subscription servisin’ in kurulması için aşağıdaki adımları takip ediniz.

1.      SharePoint 2013 Central Administration’ dan System Settings ‘i tıklayın.

2.      System Settings Sayfasında yer alan Manage Services on Server ‘ı tıklayın.

3.      Services on Server sayfasındaMicrosoft SharePoint Foundation Subscription Settings Service ‘i bularak Start‘ a basın.

clip_image024

4.      SharePoint 2013 Central Administration’ dan Application Management ‘i tıklayın.

  1. Application Management sayfasından Manage Service Application’ a tıklayın.
  2. Açılan sayfada Subscription Service Application’nın kurulu olup olmadığını kontrol edelim. Kurulu değil ise bir sonraki adımdan devam ediniz.
  3. Sol üst köşe de new ribbon’una tıklayalım.

 

clip_image026

Subscription Settings Service application kurulumu için Central Admin’de olmadığı için kurulum işlemini PowerShell ile yapacagız.

 

# Create a new Subscription service and proxy

$account = Get-SPManagedAccount contoso\SP_Farm

$appPoolSubSvc = New-SPServiceApplicationPool -Name SettingsServiceAppPool -Account $account

$appSubSvc = New-SPSubscriptionSettingsServiceApplication -ApplicationPool $appPoolSubSvc -Name “Subscripction Settings Service” -DatabaseName SP_SubSettings

$proxySubSvc = New-SPSubscriptionSettingsServiceApplicationProxy -ServiceApplication $appSubSvc

 

8.      SharePoint 2013 Management Shell’I sağ tuşla basarak run as administrator ile açarak aşağıdaki scripti çalıştırın.

9.      SharePoint 2013 Central Administration’ dan Application Management ‘i tıklayın.

  1. Application Management sayfasından Manage Service Application’ a tıklayın.
  2. Açılan sayfada Subscription Service Application’nın kurulduğundan emin olun.

clip_image028

 

App Managemet Service Kurulumu

 

App Management Service, App güveneliği, Lisanslar, Satın alma durumları ve katolog gibi görevleri yürüten servis application’dır.  Bu servis application kurulumunu yapmak için aşağıdaki adımları takip ediniz.

1.      SharePoint 2013 Central Administration’ dan System Settings ‘i tıklayın.

2.      System Settings Sayfasında yer alan Manage Services on Server ‘ı tıklayın.

3.      Services on Server sayfasında App Management Service ‘I bularak Start‘ a basın.

clip_image030

4.      SharePoint 2013 Management Shell’I sağ tuşla basarak run as administrator ile açarak aşağıdaki scripti çalıştırın.

 

# Create a new Application Management Service and Proxy

$account = Get-SPManagedAccount contoso\SP_Farm

$appPoolSubSvc = New-SPServiceApplicationPool -Name AppServiceAppPool-Account $account

$appSubSvc = New-SPAppManagementServiceApplication -ApplicationPool $appPoolSubSvc -Name AppServiceApp -DatabaseName SP_AppService

$proxySubSvc = New-SPAppManagemetServiceApplicationProxy -ServiceApplication $appSubSvc

 

  1. SharePoint 2013 Central Administration’ dan Application Management ‘i tıklayın.
  1. Application Management sayfasından Manage Service Application‘ a tıklayın.

13.   App Management Service’ in ve servis prox’nin kurulmuş olduğundan emin olun.

 

clip_image032

 

App Katalog Web Site’ı Oluşturmak.

 

App kataloglarını ve lisanları yönetebilmek için bir Site ve site collection oluşturmamız gerekiyor. Burada dikkat edilmesi gereken şey web site oluşturulurken header girilmemesidir. Adım Adım yapılması gerekenleri aşağıda çıkarıyoruz.

  1. SharePoint 2013 Central Administration’ dan Application Management‘ ı tıklayın.
  2. Application Management Sayfasında, Manage Web Application’a tıklayın ve açılan ekranada sol üst köşedeki New’ e tıklayın.
  3. Create a new IIS web site Name kısmına Contoso Apps giriniz.
  4. Port Kısmına 443 yazınız.
  5. Host Header kısmını boş bırakın.
  6. Use Secure Sockets Layer (SSL) ‘ı Yes olarak işaretleyin.
  7. Public URL bölümünde URL kısmına, https://ct.contoso-apps.com:443 yazınız.
  8. Create new application pool Application pool name kısmına Contoso App Pool yazınız.
  9. Database Name’ e bir isim veriniz. (SP_Contoso_Apps gibi)
  10. OK’ a basarak Web Application’nın tamamlanasını bekleyin.
  11. Contoso Apps Web Site’ı oluştuktan sonra Contoso apss seçili iken ribbon’ dan Managed Paths’ e tıklayınız.
  12. Add new path bölümüne apps yazınız ve type olarak Wildcard inclusion olarak seçli bırakın.

clip_image033

  1. Add Path’ e tıkladıktan sonra OK ile Managed Path’I kapatınız.

Sertifika Ürettirmek

1.      internet Explorrer’dan http://www.cert-depot.com/ adresine gidiniz.

2.      Common Name kısmına *.contoso-apps.com yazınız ve Get-Certificate butonuna basınız.

clip_image035

  1. Please fill certificate information (optional) alanlarını dilerseniz doldurun ve Subbit’ e basınız.
  2. Download PFX butonuna basarak certifikanızı indirin.

 

NOT: Bu tür certifika üretimini production ortamları için planlamayınız. Bu işlemi daha çok geliştirme ve test ortamları için yapıyoruz.

 

Sertifikanın Kurulması

Download ettiğiniz sertifikanızı bulun ve üzerine çift tıklayın. Bu aşamada Sertifika Import sihirbazı gelecektir.

1.      Açılan Sihirbazda Local Machine’ı tıklayın ve Next Tuşuna basınız.

clip_image036

2.      File Import ekranında Next tuşuna basınız. Çünkü biz certifika file’ına çift tıkladığımız için ayrıca dosya göstermek durumunda değiliz.

3.      Sertifikanızı oluştururken bir password girdiyseniz (opsiyonel ekranında) bunu şimdi girin ve Next’ e tıklayın.

 

clip_image038

4.      Store Certificate bölümünde alttaki kısmı secerek browse butonuna basın ve Trusted Root Certification Authorites seçip OK’a basın.

clip_image039

5.      Next tuşuna basınız.

6.      Finish tuşuna basınız.

7.      Sertifika dosyanıza tekrar çift tıklayınız ve 3. adıma kadar tekrar geliniz.

8.      Automatically select the certificate ‘i seçerek Next’ e basınız.

clip_image041

9.      Finish’e basarak işlemi bitirin.

10.   IIS Manager’ı açın ve Contoso App’ı tıklayın.

11.   Sag taraf da yer alan Bindings’ e tıklayın

clip_image043

12.   Açılan ekranda https, 443 ‘ü tıklayarak Edit’ e basın.

13.   Host Name’ e * girin ve SSL sertificatet’i şekildeki gibi seçerek Ok’a basın.

 

clip_image045

14.   Close’a basarak işlemi tamamlayın.

SSL Bir SharePoint Site Oluşturma

SharePoint’ de SSL bir Site oluşturmak için aşağıdaki adımları takip ediniz.

1.      SharePoint 2013 Central Admin’ den Application Management’I tıklayın.

2.      Application Management sayfasından Manage Web Application’ı tıklayın.

3.      New Ribbon’a tıklayın ve Name kısmına Contoso Portal yazınız.

4.      Port olarak 443 yazınız.

5.      Host Header kısmına portal.contoso.com yazınız.

6.      Use Secure Soce ‘ı yes seçiniz.

clip_image047

7.      Database ismi verin ve OK’ a basın.

 

clip_image049

8.      Web site’ın oluşturulması tamamlandığında. Create Site Collection linkine tıklayın.

clip_image051

 

9.      Team Site türünde bir site collection seçin ve Site collection adminleri belirleyin ve OK’a basın.

clip_image053

10.   IIS Manager dan Portal Contoso’yu seçin ve Sertifikanızı Binding kısmından seçin

clip_image055

11.   Require Server Name’I secerek OK’ a basın.

 

Manage Features

App site’ımızı ve portalimizi oluşturduk. Şimdi Portalimizin internet üzerinden store il işlem yapabilmesi için Apps that require accessible intranet facing entpoint feature’ını aktif etmemiz gerekiyor. Bunun için aşağıdaki adımları takip edelim.

1.      SharePoint 2013 Central Admin’ den Application Management’I tıklayın.

2.      Application Management sayfasından Manage Web Application’ı tıklayın.

3.      Portal Contoso ‘ u seçerek Manage Features ribbon’ına tıklayın.

4.      açılan sayfada  Apps that require accessible intranet facing entpoint feature’ı aktif edin.

clip_image057

5.      IIS reset yapın.

APP URL Konfigürasyonu

APP ULR konfigrasyonu için aşağıdaki adımları takip ediniz.

1.      SharePoint 2013 Central Admin ‘den Apps‘ı tıklayınız.

2.      Apps sayfasından Configure APP URLs linkini tıklayınız.

3.      App domain kısmına contoso-apps.com yazınız.

4.      App Prefix kısmına App yazınız ve OK’ a basınız.

clip_image059

Yüklenen ve aktive edilen her application bundan sonra app prefix’I le başlayıp uniq bir ID ile devam ettikten sonra app domain oalrak belirtiğimiz contoso-apps.com ile devam edecektir.

Manage App Catalog

sharePoint 2013’de bir app catalog oluşturmak için bir kaç bölüm önce oluşturdugumuz ct.contoso-apps.com web site’ı na bir Site collection tanımlamamız gerekmektedir. Bunu yapmak için;

1.      SharePoint 2013 Central Admin ‘den Apps‘ı tıklayınız.

2.      Apps sayfasından Manage App Catalog’ u linkini tıklayınız.

3.      Açılan sayfada sağ üst köşede ct.contoso-apps.com’un seçili olduğundan emin olunuz.

 

clip_image061

  1. Create a new app catalog site’ ı seçerek OK’ basınız.
  2. Title kısmına Contoso Apps Catalogue yazınız.
  3. URL kısmında Sites’ı Apps olarak değiştiriniz ve CTapps yazınız.(Bir kaç bölüm önce oluşturduğumuz Wildcard inclusions path)
  4. Primary Site Collection Administrator ‘u Farm Edmin olarak girin.
  5. End Users kısmına everyone yazarak  check edin.
  6. OK’ a basarak SharePoint’in işlemi tamamlamasını bekleyin.

clip_image063

  1. İşlem tamamlandığında SharePoint hhtps://ct.contoso-apps.com/CTapps şeklinde bir site collection oluşturacaktır. Bu URL tıklandığında Tüm farmınızda kullanacağınız APP Catalog uygulamasını görecektisniz.

 

clip_image065

 

SharePoint Site’a SharePoint Store’dan Apps Nasıl Yüklerim ?

SharePoint Apps konfigürasyonu ile ilgili yapacağımız tüm işlemler tamamlandı. Şimdi SharePoint portalimizi açalım ve bir SharePoint Store Apps ekleyelim.

Bunun için öncelikle portalimizde Site Collection Admin yetisinde bir kullanıcı ile login olalım. (Farm Admin ile login olursanız Apps yüklemede bir hata vermektedir.)

Ben kendi portalimde contoso\kkaradag ile login oldum. Şimdi bir App nasıl eklenir adım adım devam edelim.

1.      Portalinizde Setting bölümünden Add an app’ i tıklayınız.

clip_image067

2.      SharePoint Store Link’ine tıklayınız.

clip_image069

3.      SharePoint store’da bir çok uygulama görebilirsiniz. Sol tarafta kategorilere göre ayrılmış yüzlerce uygulamadan kurumunuz için ihtiyaç olanı bulup sisteminize keleyebilirsiniz. Biz sağ üst köşede yer alan Find kutusundan free bir uygulama bularak portalimize ekleyelim.

4.      Fınd kutusunasurvey yazarak aratalım.  Sonuç sayfasında OneBit Quick Pool uygulamasını tıklayın.

clip_image071

5.      ADD IT butonuna basınız. Microsoft Accountunuzu ve passwordunuzu giriniz.

  1. Confirm that you wish to add the app ekranında Confirmation tıklayın.

clip_image073

  1. App store işlemini tamamladığında portalinize dönmeniz için bir ekran çıkaracaktır.

clip_image075

  1. Return to site butonuna tıkladığınızda aşağıdaki uyarı gelecektir. Bu uyarıda Trust it’ e tıklayınız. Bu sayede uygulamaya Farmınız güvenecektir. Bu kısım çok önemli.

clip_image077

  1. Trut It butonuna bastığınızda uygulama otomatik olarak indirilecek ve install edilecektir.

clip_image079

  1. portal Ana Sayfasına geri döünün ve settings ‘den add a Page’ e tıklayın ve Surey sayfasını oluşturun.
  2. Insert ribbon’dan App Part’a tıklayın ve yeni uygulamanızı seçerek OK’ a basın.

clip_image081

  1. App Partınızın konfigrasyonlarını yapın ve Sayfayı Save’ ederek çıkın.

clip_image083

  1. Portalinizde artık bir Surrvey uygulaması var. Tabiki Cevap Beşiktaş 🙂

clip_image085

 

Bu yazımız da SharePoint 2013 ile birlikte gelen App modeli btün detayları ile incelemeye çalıştık. İşlemler biraz çok ve kopleks olmak ile birlikte sağladığı faydalar bakımından bu işlemlere değer buluyorum. Bir sonraki yazımızda kendimiz SharePoint- hosted app geliştirip SharePoint 2013 FARM’imizda yayınlamayı göreceğiz.

Makaleyi Paylaş

Cevap bırakın