블로그 이미지
정홍주
Azure에 대한 내용뿐만 아니라 새로운 트렌드로 빅데이터, BI, SharePoint, 앱 등의 내용을 다룹니다.

calendar

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

Notice

2013.02.14 03:15 SharePoint/SharePoint 2013

 

SharePoint 2013 App – 공급자 (Provider-hosted App) (3)

 

공급자 앱으로 Windows Azure 사이트에 SharePointChrome CSOM을 적용해보겠습니다 

먼저 Chrome 을 적용해 보면 앞에서 살펴본 자동 호스트 앱에서의 script, div 에 대한 내용은 동일합니다. IE의 호환성 보기에 따라 화면이 달라지니 화면이 깨진다면 호환성 보기를 확인하면 됩니다.

http://redju.tistory.com/254 

위 주소에 적용한 head 태그의 script 태그는 동일합니다. Body 태그에서는 aspx 이므로 CSOM 결과를 나타낼 컨트롤을 추가했습니다.

<body style="display: none">

       

    <!-- Chrome control  -->

    <div id="chrome_placeholder"></div>

    <div>

    <asp:literal ID="lists" runat="server"></asp:literal>

    </div>

</body>

 

Visual Studio 2012 SharePoint 응용 프로그램에서 자동으로 생성해준 CSOM 코드를 이용해서 리스트의 제목을 화면에 출력할 수 있습니다.

간략히 아래와 같이 코드를 작성했습니다.

using (var clientContext = TokenHelper.GetClientContextWithContextToken(hostWeb, contextToken, Request.Url.Authority))

            {

                Web web = clientContext.Web;

                clientContext.Load(web, w => w.Lists.Include(l => l.Title)
.Where(l => !l.Hidden));

                clientContext.ExecuteQuery();

               

 

                string str = "<ul>";

                foreach (var item in web.Lists)

                {

                    str += "<li>" + item.Title + "</li>";

                }

                str += "</ul>";

                lists.Text = str;

 

                clientContext.Dispose();

            }

 

최종적으로 결과를 확인합니다. 공급자 앱에서도 Token 을 얻어오면 CSOM 으로 SharePoint 개체에 접근할 수 있다는 것을 확인할 수 있습니다.

신고
posted by 정홍주
2013.02.11 16:26 SharePoint/SharePoint 2013

 

SharePoint 2013 App – 공급자 (Provider-hosted App) (2)

 

앞에서 SharePoint 2013의 공급자(Provider-hosted) 앱을 알아보았는데 localhost가 아닌 실제 사이트로 구성해보도록 하겠습니다. Localhost로 하면 간단히 테스트가 가능하지만 실제 사이트로 테스트를 해보고 실제 앱으로 게시하게 될 것이며 여기서 Windows Azure에 사이트를 하나 만들어서 공급자 앱으로 구성해봅니다. 미리 Windows Azure에 웹 사이트를 생성해둡니다.

Visual Studio 2012를 통해 앱의 형식을 공급자 호스트로 선택하고 기본 값을 선택합니다
 

SharePoint 사이트로 가서 아래 주소를 입력해봅니다.

사이트모음 주소/_layouts/15/appregnew.aspx
 

ID와 암호의 경우 생성 버튼을 클릭합니다.

제목과 공급자 도메인과 리다이렉션 URI(https://공급자 도메인/Pages/Default.aspx) 을 입력합니다. https로 입력해야 합니다. Windows Azure의 웹 사이트 주소가 됩니다.

 

위 정보를 메모장이나 그림판에 저장하던지 아니면 만들기를 누르지 말고 VS 2012에서 구성 후 만들기를 클릭하도록 하겠습니다.

SharePoint 프로젝트의 AppManifest.xml 를 오른쪽 클릭하고 코드 보기를 하고 아래처럼 앱 등록에서의 정보를 이용해서 수정합니다.

<Properties>

    <Title>SharePointProviderAppDemo</Title>

    <StartPage>https://Azure웹사이트주소/Pages/Default.aspx?{StandardTokens}</StartPage>

  </Properties>

 

  <AppPrincipal>

    <RemoteWebApplication ClientId="ID" />

  </AppPrincipal>

</App>

 

웹 프로젝트의 web.config 로 이동합니다. apSettings 태그로 이동하여 앱 등록에서의 정보를 이용해서 수정합니다.

<appSettings>

    <add key="ClientId" value="ID" />

    <add key="ClientSecret" value="앱 암호" />

  </appSettings>

 

앱 등록만들기를 클릭하지 않았으면 만들기를 클릭합니다.

AppManifest.xml 의 디자인 보기로 이동하여 권한 에서 웹에 읽기 권한을 지정합니다.

 

또한 Windows Azure의 웹 사이트를 클릭하여 Configure 메뉴에서 ClientID 와 ClientSecret 에 대한 구성값을 지정합니다. Web.Config 에 구성한 내용과 동일합니다.

웹 프로젝트를 오른쪽 클릭하여 [게시] 메뉴를 클릭하여 Windows Azure 로 게시합니다. Publishing Profile을 통해 게시하는 방법은 아래 링크를 참고하십시오.

http://redju.tistory.com/185 

 

솔루션 폴더를 오른쪽 클릭하여 솔루션 배포를 클릭합니다.프로젝트가 다 배포되었다면 SharePoint 에서 배포한 앱을 클릭합니다. 그러면 공급자 앱으로 다른 사이트로 이동되는 것을 볼 수 있으며 CSOM으로 Web의 Title을 출력하는 것을 확인할 수 있습니다.
 

 

다음에서 Chrome 과 CSOM 을 위 사이트에 적용해보겠습니다.

신고
posted by 정홍주
2013.01.30 09:00 SharePoint/SharePoint 2013

 

SharePoint 2013 Social Feature – 좋아요, 싫어요, Like, Unlike

 

SharePoint 2013Social 관련 내용을 살펴보다 제 생각을 정리해보았습니다.

 

내 사이트, 뉴스 피드, 팔로우, 좋아요, 멘션, Community 등에 대한 내용을 살펴보면 Twitter, Facebook, Yammer 등과 관련 SNS의 기능이 포함되어 있는 것을 알 수 있습니다. 아래는 Social 내용이 많이 포함된 내 사이트에 대한 내용입니다.
 

여기서는 Social Feature를 살펴보겠다는 것이 아니고 그 중 좋아요”, “싫어요에 대한 내용을 알아보겠습니다. 한글 언어 설정의 라이브러리에 좋아요가 나오게 한 화면입니다.


언어설정이 영문에서의 화면입니다.

 

한글의 경우는 "싫어요" 보다는 "좋아요취소" 또는 "취소"가 나을 것 같습니다. 이유는 해당 문서를 싫어하는 것은 아니고 "좋아요" 했던 내용을 취소하는 것이며 "싫어요" 라면 해당 문서를 싫어한다고 의식될 것 같기 때문입니다. 아니면 아이콘으로 대체해도 될 것 같습니다.

또는 "좋아요" 보다는 "추천"으로 표시되게 하는 것이 더 나을 것 같은데…, 제 생각입니다.

여러 의견들이 모여 더 나은 방향을 제시한다면 다음 업데이트때는 반영될수 있습니다~

 

문서 라이브러리에 대한 내용이며 "Star(별)" 로 표시해도 됩니다, 아니면 평가를 사용하지 않고 팔로우에 대한 내용을 사용할 수도 있습니다. 위 내용은 평가 항목을 사용했을 경우에 대한 내용입니다.

 

 

신고
posted by 정홍주
2013.01.18 09:30 SharePoint/SharePoint 2013

 

Office 365 Preview

 

SHAREPOINT 2013 을 구현하기 위해서는 시스템 요구사항이 좀 많기는 합니다. 실제 통합 개발 환경은 별도로 구성해보아야 하겠습니다.

Office 365 PreviewJulie 도 아직 모르고 있어 포스팅합니다. SharePoint 2013의 사용자 경험을 미리 확인할 수 있고 또한 SharePoint 2013 Apps를 배포하여 테스트도 가능합니다.

Office 365 Preview를 통해 제 블로그도 Apps 를 계속 포스팅하고 있으며 실제 Apps 를 개발하고 있는 중입니다.

 

먼저 http://dev.office.com 으로 이동합니다. 그럼 주소가 바뀌고 아래와 같은 화면을 볼 수 있습니다. (http://msdn.microsoft.com/en-US/office/apps)
 

빨강색 Start 를 클릭합니다~

Sign up for an Office 365 Developer Site 라는 메뉴를 볼 수 있으며 파란색 Sign Up 을 클릭하여 진행하면 됩니다. 아래에 캡쳐 화면이 있으니 진행하시면 됩니다.(저는 캡처 안 하겠습니다.) 원하시는 도메인명을 고민하시면 됩니다. (https://도메인명.sharepoint.com)
 

생성 후 좀 기다리면 Admin Center 페이지가 나타나게 되고 개발자 사이트(Developer Site)를 만들어서 Apps를 배포해서 테스트 할 수 있습니다.
 

 

신고
posted by 정홍주
2013.01.17 08:00 SharePoint/SharePoint 2013

SkyDrive Pro 2013?

Office 2013 에서는 SharePoint Workspace 라는 제품은 포함되어 있지 않습니다.  SkyDrive Pro 2013을 통해 SharePoint 사이트의 문서 라이브러리와 동기화된 로컬 복사본을 제공해 오프라인 동기화 기능과 편리한 문서 관리 기능을 사용할 수 있습니다.

 

Office 365 또는 SharePoint 사이트를 액세스 하면 사이트 상단에 SkyDrive 메뉴를 볼 수 있습니다.

 

Office 365 또는 SharePoint 사이트에서 문서 라이브러리를 선택하면 오른쪽 상단에서 동기화 메뉴를 볼 수 있습니다.

 

SkyDrive SkyDrive Pro 2013은 이름이 비슷하여 간략히 비교해보겠습니다. (제 생각입니다.)

 

 

1.     SkyDrive는 개인에 초점을 맞춘 서비스이며 SkyDrive Pro 2013은 조직 차원(SharePoint 사이트)에 초점을 맞추고 있습니다.

 

2.     SkyDrive는 개인 클라우드이며 SkyDrive Pro 2013은 문서 라이브러리의 로컬 복사본을 동기화합니다.

 

3.     SkyDrive는 모바일 앱, 데스크톱 앱 등을 지원하며 사진 공유 등의 여러 기능을 제공하며 SkyDrive Pro 2013Office Professional Plus 2013을 설치하면 포함되어 있으며 원하는 라이브러리를 동기화 메뉴를 통해서 복사본을 생성, 관리합니다.

 

4.     오피스 웹 앱(Office Web App)SkyDrive SharePoint Online에서는 기본적으로 제공되지만 기업의 SharePoint 사이트의 경우 직접 구성해서 제공합니다.

 

5.     SkyDrive는 기본 제공 용량이 7GB 이며, 업로드는 300MB로 제한되지만 기업의 SharePoint 사이트에서는 용량과 업로드 등에 대한 구성은 IT 관리자가 구성합니다.

 

6.     SkyDriveOutlook.com 과 연계하여 Live.com 에 문서, 사진이 저장되며 SkyDrive Pro 2013은 기업의 SharePoint 사이트에서는 콘텐트 데이터베이스에 저장됩니다.

 

7.     SkyDrive는 주소록이나 외부 사람에게 문서, 사진을 공유하지만 SkyDrive Pro 2013은 임직원과 공유가 일반적이라 볼 수 있습니다.

 

신고
posted by 정홍주
2012.12.18 15:00 SharePoint/SharePoint 2013

 

SharePoint 2013 App – 공급자 (Provider-hosted App) (1)

 

SharePoint 2013App 중에서 클라우드 측면의 자동 호스트를 살펴보았으며 이번에는 공급자(Provider-hosted) 앱을 알아보도록 하겠습니다.

여기서 공급자는 웹 사이트를 호스팅하는 별도의 웹을 말하며 로컬의 서버나 클라우드의 웹 서버 등이 해당됩니다. localhost 로만 테스트할 수도 있습니다.

공급자 앱을 이용하여 별도의 서비스를 적용할 수 도 있으며 CSOM이나 Chrome Control 을 적용할 수 도 있습니다.

그럼 프로젝트를 만들어보도록 하겠습니다. 프로젝트 전 준비사항은 자동 호스트 앱과 거의 동일합니다. 배포해서 구성할 웹 서버나 호스팅 서버가 있으면 됩니다. 별도 서버가 없다면 localhost 로 배포하거나 Windows Azure 계정을 활성화하면 됩니다. (http://www.windowsazure.com/ko-kr/)

VS 2012 를 열어 프로젝트를 생성합니다. 프로젝트 이름은 SharePointProviderAppDemo 으로 지정합니다
 

테스트하기 위한 Office 365 사이트 이름을 입력하고 호스트할 방법은 공급자 호스트로 선택합니다.
 

인증 설정 구성은 기본값을 선택합니다.
 

SharePoint 2013 응용프로그램 프로젝트와 TokenHelper.cs 파일과 CSOM 코드를 살펴보실 수 있습니다.
 

본 글에서는 바로 시작해서 결과를 확인해 보겠습니다. 아래 그림처럼 사이트의 제목이 CSOM 코드를 통해 나타납니다.
 

주소는 sharepoint.com 에서 localhost 로 이동된 것을 확인 가능합니다.

자동으로 클라우드의 웹 사이트로 구성되지 않고 지정한 웹 서버로 된다는 거 외에는 공급자 호스트는 자동 호스트와 크게 다른 점이 없습니다.

다음 글에서 localhost가 아닌 다른 웹 사이트로 배포하고 CSOMChrome Control 에 대한 내용을 확인해보도록 하겠습니다.

 

 

신고
posted by 정홍주
2012.12.13 12:00 SharePoint/SharePoint 2013

 

 SharePoint 2013 App – 자동 호스트 (Autohosted App) (4)

 

여기 글에서는 SharePoint 2013의 자동 호스트 앱의 클라우드 앱 페이지의 모양을 SharePoint 2013Chrome Control 형태로 변경해보도록 하겠습니다. 화면에 출력되는 마스터나 레이아웃 페이지에 작업을 하면 전체적인 모양이 적용됩니다.

아래는 Chrome Control 관련한 링크니 참고하시면 도움이 됩니다.

http://msdn.microsoft.com/en-us/library/fp179916.aspx

http://blogs.msdn.com/b/richard_dizeregas_blog/archive/2012/08/02/optimizing-user-experience-for-sharepoint-2013-apps.aspx

http://www.ilovesharepoint.com/2012/07/building-aspnet-mvc-based-sharepoint.html

 

아래에서 한번 적용해보겠습니다. MVC4 웹 응용 프로그램으로 이동하여 Views 폴더의 Shared_Layout.cshtml 로 이동합니다.

<body> 부분을 아래 내용으로 수정합니다.

<body style="display: none">

<!-- Chrome control  -->

    <div id="chrome_placeholder"></div>

 

jQuery를 위해 <head> 부분에 CDN을 추가합니다.

@Scripts.Render("~/bundles/modernizr")

      <script src="//ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js"  type="text/javascript">

    </script>

    <script  src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js"  type="text/javascript">

    </script>

 

위 부분에 맨 아래에 다음 스크립트를 추가합니다.

<script type="text/javascript">

 

        var hostweburl;

 

        $(document).ready(function () {

            //SPHostURL 매개변수의 값.

            hostweburl =

                decodeURIComponent(

                    getQueryStringParameter("SPHostUrl")

            );

 

            // SharePoint 2013의 주소를 통해 스크립트 경로 생성

            // web_url/_layouts/15/resource

            var scriptbase = hostweburl + "/_layouts/15/";

 

            // SP.UI.Control.js 스크립트 파일 액세스

            $.getScript(scriptbase + "SP.UI.Controls.js", renderChrome)

        });

 

 

</script>

 

getQueryStringParameterrenderChrome 메서드를 추가로 생성합니다.

</script> 위에 getQueryStringParameter 내용을 추가합니다.

function getQueryStringParameter(paramToRetrieve) {

            var params =

                document.URL.split("?")[1].split("&");

            var strParams = "";

            for (var i = 0; i < params.length; i = i + 1) {

                var singleParam = params[i].split("=");

                if (singleParam[0] == paramToRetrieve)

                    return singleParam[1];

            }

        }

 

위 함수는 SPHostURL에서 값을 잘라내서(?, &,=) 호스트 주소만 반환해주는 내용입니다.

 

renderChrome에 대한 내용으로 아래를 </Script> 위에 추가합니다.

function renderChrome() {

            // 도움말 계정 등의 페이지 표시

            var options = {

                "appIconUrl": hostweburl +"/_layouts/15/images/siteIcon.png?rev=23",

                "appTitle": "Chrome Control MVC",

                "appHelpPageUrl": hostweburl+"Help.html?"

                    + document.URL.split("?")[1],

                //  chrome resource 가 로드된후 호출되는 메서드

                "onCssLoaded": "chromeLoaded()",

                "settingsLinks": [

                    {

                        "linkUrl": hostweburl+"Account.html?"

                            + document.URL.split("?")[1],

                        "displayName": "Account settings"

                    },

                    {

                        "linkUrl": hostweburl+"Contact.html?"

                            + document.URL.split("?")[1],

                        "displayName": "Contact us"

                    }

                ]

            };

 

            var nav = new SP.UI.Controls.Navigation(

                                    "chrome_placeholder",

                                    options

                                );

            nav.setVisible(true);

        }

 

        function chromeLoaded() {

            $("body").show();

        }

 

위 내용은 Chrome Control을 화면에 표시해주며 추가로 도움말, 설정, 사이트 이미지 등을 chrome_placeholder 라는 div 에 표시해주게 됩니다. 

솔루션을 배포하고 결과를 확인합니다.
 

자바스크립트이므로 필요하시다면 브라우저의 F12 개발자 도구를 통해 디버깅도 가능합니다.
 
 

Custom Action, 목록, 리스트 등의 여러 SharePoint 2013 개체와 Client 웹 파트 등에 대한 내용은 다른 SharePoint 2013 Apps 를 다루고 나서 알아보도록 하겠습니다.

 

신고
posted by 정홍주
2012.12.06 11:00 SharePoint/SharePoint 2013

 

SharePoint 2013 App – 자동 호스트 (Autohosted App) (3)

 

이번 글에서는 이전에서 작업한 SharePoint 2013 에 대한 프로젝트에 SharePoint의 개체를 액세스해보는 코드를 작성해보겠습니다. 이전 버전에서도 제공된 CSOM-클라이언트 개체 모델(Client Side Object Model) 을 자동 호스트 웹 프로젝트에서 액세스 하게 되며 인증에 대한 부분은 TokenHelper.cs 파일을 통해서 처리되게 구성할 수 있습니다.

 

TokenHelper.cs CSOM 코드에 대한 내용은 SharePoint 2013 응용 프로그램을 생성하면 웹 프로젝트에 있는 것을 알 수 있습니다.

 

여기서는 앞에서 작업했던 프로젝트에 CSOM 을 적용해보도록 하겠습니다. 먼저 프로젝트에서 TokenHelper.cs 파일이 있는지 확인하고 소스를 열어 네임스페이스가 프로젝트 이름과 동일한 이름으로 구성되어 있는지 확인합니다. 다르다면 변경해주면 됩니다.

 

namespace AutohostMVC4Web

{

 

    public class TokenHelper

    {

 

MVC 4 프로젝트에 빈 컨트롤러를 추가합니다. 이름은 Home으로 지정하겠습니다.

 

생성된 컨트롤러에 아래와 같은 using 구문을 추가합니다.

using Microsoft.SharePoint.Client;

 

Index 액션 메서드를 아래와 같이 수정합니다.

 

public ActionResult Index()

        {

            var contextToken =               
TokenHelper.GetContextTokenFromRequest(System.Web.HttpContext.Current.Request);

            var hostWeb = System.Web.HttpContext.Current.Request["SPHostUrl"];

 

            using (var clientContext =

                TokenHelper.GetClientContextWithContextToken(hostWeb, contextToken

, Request.Url.Authority))

            {

                Web web = clientContext.Web;

 

                clientContext.Load(web, w => w.Lists.Include(l => l.Title).Where(l => !l.Hidden));

                clientContext.ExecuteQuery();

                clientContext.Dispose();

 

                return View(web.Lists);

            }

        }

 

 

SharePoint URL 을 받아 TokenHelper.GetClientContextWithContextToken 를 통해 CSOMContext 개체를 얻어 옵니다. 그리고는 clientContext를 통해 SharePoint 개체들을 액세스 하게 됩니다.

 

자 그럼 View 에서 화면에 출력해보도록 하겠습니다. Index 메서드에서 오른쪽 클릭하고 뷰를 생성합니다.

뷰에서는 아래와 같은 코드로 변경합니다.

 

@{

    ViewBag.Title = "Index";

}

 

<div>

 

    <ul>

        @foreach (var list in Model)

        {

            <li>@list.Title</li>

        }

    </ul>

</div>

 

 

AppManifest.xml 파일을 더블 클릭하여 시작 주소를 Home 으로 지정하고 솔루션을 배포하여 자동 호스트 웹에서 CSOM 결과를 확인합니다. {StandardTokens} 에는 SPHostUrl SPAppWebUrl 이 포함되어 있습니다.

 

 

필요하다면 아래와 같이 디버깅도 가능합니다.

 

 

자동 호스트 웹 응용 프로그램에서 SharePoint 에 있는 개체를 액세스해서 화면에 출력하고 있습니다.

 

 

모양이 너무 간단한데 다음 글에서는 Chrome Style을 적용해보겠습니다.

 

신고
posted by 정홍주
2012.12.04 11:00 SharePoint/SharePoint 2013

 

SharePoint 2013 App – 자동 호스트 (Autohosted App) (2)

 

이번 글에서는 이전에서 작업한 SharePoint 2013 에 대한 앱을 ASP.NET MVC 4를 통해 SQL Azure 에 데이터를 구성해서 처리해보도록 하겠습니다.

 

새로 SharePoint 2013 응용 프로그램 프로젝트를 시작해도 되고 바로 이전에 생성해두었던 프로젝트에 MVC 4 프로젝트를 추가해도 됩니다.

저는 기존 프로젝트의 솔루션 탐색기에서 MVC 4 프로젝트를 추가 해서 작업하도록 하겠습니다. 새로 프로젝트를 생성해도 어차피 MVC 4 프로젝트를 추가해야 하기 때문에 동일한 작업에 해당됩니다.

 

MVC 4 웹 프로젝트의 이름은 AutohostMVC4Web 으로 지정하고 기존 솔루션에 추가합니다. 프로젝트 템플릿은 기본(레이아웃이 없는)으로 지정합니다.

 

솔루션에 추가된 모습은 아래와 같습니다. SharePoint 2013 응용 프로그램과 다른 2 개의 웹 프로젝트입니다. AutohostMVC4Web 프로젝트의 .NET Framework4.5라면 4로 변경합니다. 아니면 아래에서 변경하라는 메시지를 보게 됩니다.

 

나중에 CSOM 코드를 작성하기 위해 기존 웹 프로젝트에 있는 TokenHelper.cs 파일을 새로 추가한 MVC 4 프로젝트로 복사합니다. 네임스페이스를 프로젝트에 맞게 변경해줍니다.

namespace AutohostMVC4Web

{

 

    public class TokenHelper

    {

 

두 개의 웹 프로젝트 중에서 SharePoint 2013 응용 프로그램 프로젝트의 메니페스트에 연결된 웹 프로젝트를 지정해야 합니다. 솔루션 탐색기에서 SharePoint 2013 응용 프로그램 프로젝트를 클릭하고 속성에서 웹 프로젝트를 AutohostMVC4Web 으로 지정합니다. SharePoint 2013 어셈블리 등이 포함된다고 하고 프로젝트를 빌드하면 오류 없이 빌드됩니다.

 

이제 MVC 4 Model, Controller, View 작업을 진행해보도록 하겠습니다. SharePoint 2013 앱에 손쉽게 외부 데이터를 붙이는 내용을 알아보도록 하겠습니다. Windows Azure SQL Database 에 미리 테이블과 데이터를 생성해두었습니다.

 

ADO.NET 엔티티 모델을 추가하고 테이블은 Department 로 지정합니다.

 

프로젝트를 빌드하고 나서 Dept 컨트롤러를 추가하면서 모델과 데이터 컨텍스트를 지정합니다.

 

SharePoint 2013 응용 프로그램 프로젝트의 AppManifest 파일을 더블 클릭하고 시작 페이지를 Dept로 변경해줍니다.

 

자 그럼 프로젝트를 빌드하고 문제가 없으면 프로젝트를 배포하고 테스트 합니다.

 

아래처럼 기존 데이터를 표시해주고 추가, 수정, 삭제 작업을 하는 MVC 4 웹을 SharePoint 2013 App 으로 구성되었습니다.

 

모양이 너무 간단하기도 하고 그렇습니다. 바로 다음 글에서 MVC 4 프로젝트에서 SharePoint 2013 의 사이트의 개체를 액세스하는 것과 전체적인 모양을 지정하는 것을 바로 알아보도록 하겠습니다.

 

 

신고
posted by 정홍주
2012.11.30 11:00 SharePoint/SharePoint 2013

 

SharePoint 2013 – 자동 호스트 (Autohosted App) (1)

 

앞에서 SharePoint 2013 에 대한 앱을 살펴보았는데 그 중에서 자동 호스트 앱을 구성해보도록 하겠습니다. 그리고 ASP.NET MVC 4를 통해 SQL Azure 에 데이터를 구성해서 처리해보려고 합니다. 또한 SharePoint Client Object Model 을 이용해서 개체를 구체적으로 접근해보고 앱 스타일을 SharePoint 2013 스타일을 적용해보겠습니다.

 

먼저 앱을 개발하기 전 준비사항입니다. 로컬에 설치하지 않고도 Office 365를 통해 가능합니다.

l  Office 365 Developer Site (http://dev.office.com)

l  Visual Studio 2012

l  SharePoint development tools in Visual Studio 2012

l  옵션) Windows Azure Account – SQL Azure, Provider App 구성할 경우

 

위 환경이 다 구성되었다면 진행해보도록 하겠습니다.

1.     Visual Studio 2012를 관리자 계정으로 실행을 통해 열어 새 프로젝트 메뉴를 클릭합니다. Office/SharePoint의 응용 프로그램을 클릭합니다.

2.     SharePoint 2013 응용 프로그램을 선택하고 적절한 이름을 입력합니다.
 

3.     새 응용 프로그램 창에서는 Office 365 개발자 사이트 주소와 호스트 방법을 선택하면 됩니다. 호스트 방법은 자동 호스트를 선택하고 마침을 클릭합니다. 
    

4.     ASP.NET 웹 프로젝트와 SharePoint 2013 응용 프로그램 프로젝트가 생성되게 됩니다. SharePoint 2013 응용 프로그램 프로젝트는 Manifest 를 가지고 있으며 실제 ASP.NET 소스는 클라우드로 호스팅되게 됩니다. MVC 4 프로젝트는 별도로 추가하고 설정을 변경해야 합니다. 이는 다음 글에서 다루어 보겠습니다. 

5.     Default.aspx.cs의 경우 Client Side Object Model 에 대한 소스가 구성되어 있습니다. 해당 소스와 TokenHelper.cs 파일을 이용해서 MVC 4 프로젝트에서 이용할 수 있습니다. 

var contextToken = TokenHelper.GetContextTokenFromRequest(Page.Request);

var hostWeb = Page.Request["SPHostUrl"];

 

using (var clientContext = TokenHelper.GetClientContextWithContextToken(hostWeb, contextToken, Request.Url.Authority))

            {

                clientContext.Load(clientContext.Web, web => web.Title);

                clientContext.ExecuteQuery();

 

위 소스는 사이트의 제목을 출력해주는 내용입니다.

6.     SharePoint 2013 응용 프로그램 프로젝트의 속성을 보면 아래와 같은 정보를 알 수 있습니다. (해당 사이트 URL, 연결할 웹 프로젝트)

 

7.     SharePoint 2013 응용 프로그램 프로젝트에서 AppManifest.xml 을 더블 클릭합니다
 

오른쪽 클릭해서 코드보기를 보면 XML 내용을 확인하거나 직접 수정할 수 도 있습니다.

<?xml version="1.0" encoding="utf-8" ?>

<!--Created:cb85b80c-f585-40ff-8bfc-12ff4d0e34a9-->

<App xmlns="http://schemas.microsoft.com/sharepoint/2012/app/manifest"

     Name="SharePointAutohostMVC4"

     ProductID="{61bb6727-7a7a-49eb-a1cb-6758b3b10bf9}"

     Version="1.0.0.0"

     SharePointMinVersion="15.0.0.0"

>

  <Properties>

    <Title>SharePointAutohostMVC4</Title>

    <StartPage>~remoteAppUrl/Pages/Default.aspx?{StandardTokens}</StartPage>

  </Properties>

 

  <AppPrincipal>

    <AutoDeployedWebApplication/>

  </AppPrincipal>

 

  <AppPrerequisites>

    <AppPrerequisite Type="AutoProvisioning" ID="RemoteWebHost" />

  </AppPrerequisites>

</App>

 

간단히 프로젝트를 살펴보았고 솔루션을 배포해서 결과를 확인해보겠습니다. 솔루션을 오른쪽 클릭하고 솔루션 배포를 선택합니다. ASP.NET 소스는 클라우드(O365.aspp.net) 로 프로젝트의 ManifestSharePoint Online로 배포되게 됩니다.

Office 365 인증 창이 나오면 로그온합니다. 아래 그림처럼 신뢰하겠냐는 창이 나오면 신뢰를 클릭합니다.
 

8.     결과를 확인이 가능하며 웹 페이지 주소를 확인해보면 클라우드 주소인 것을 확인할 수 있습니다. 글자만 나오지만 해당 소스에서 CSOM(Client Side Object Model)을 통해 액세스되었으며 앱의 카탈로그에 나오는 것을 확인할 수 있습니다.
 
 

 

다음 글에서 ASP.NET MVC 4SQL Azure 를 통해 자동 호스트 앱을 구성해보도록 하겠습니다.

 

 

신고
posted by 정홍주
prev 1 2 3 next