하루 하루

[ SharePoint Framework ] 1. Overview 본문

IT/Web

[ SharePoint Framework ] 1. Overview

san_deul 2020. 5. 31. 16:08

SPFx (SharePoint Framework)는 클라이언트 측 SharePoint 개발, SharePoint 데이터와의 쉬운 통합 및 오픈 소스 툴링을 완벽하게 지원하는 페이지 및 웹 파트 모델입니다.

SharePoint 프레임 워크를 통해서 원하는 개발환경에서 최신 웹 기술 및 도구를 사용해 생산적인 경험을 만들고 반응형 (responsive) 모바일에 적합한 app을 빠르게 만들 수 있습니다 

SharePoint Framework는 SharePoint Online 및 on-premises (SharePoint 2016 기능 팩 2 및 SharePoint 2019)에서도 작동합니다.


[ 주요 기능 ]

1. 현재 사용자의 컨텍스트에서 실행되고 브라우저에서 연결됩니다.

    용자화(customization)를위한 iFrame이 없습니다 (자바 스크립트는 페이지에 직접 임베드 됨)

2. 컨트롤은 일반 페이지 DOM에서 렌더링됩니다.

3. 컨트롤은 기본적으로 반응형이며 액세스 가능합니다.

4. 이를 통해 개발자는 렌더링,로드, 직렬화 및 역 직렬화, 구성 변경 등을 비롯하여 수명주기에 액세스 할 수 있습니다. 5. 5. 프레임 워크에 구애받지 않습니다. (framework-agnostic.)

   React, Handlebars, Knockout, Angular 등 원하는 JavaScript 프레임 워크를 사용할 수 있습니다.

6. 툴체인(toolchain)은 npm, TypeScript, Yeoman, webpack 및 gulp와 같은

   일반적인 오픈 소스 클라이언트 개발 도구를 기반으로합니다.

7. 성능이 안정적입니다.

8. 최종 사용자는 셀프 서비스 팀, 그룹 또는 개인 사이트를 포함한 모든 사이트에서

   테넌트 관리자 (또는 대리인)가 승인 한 SPFx 클라이언트 쪽 솔루션을 사용할 수 있습니다.

9. SPFx 웹 파트는 클래식 페이지와 최신 페이지에 모두 추가 할 수 있습니다.


스크립트 편집기 웹 파트에서 런타임 모델이 향상되었습니다. 강력한 클라이언트 API(robust client API), SharePoint 및 Office 365 인증, 컨텍스트 정보(contextual information), 손쉬운 속성 정의 및 구성 등을 처리하는 HttpClient 개체가 포함되어 있습니다.


[ Why the SharePoint Framework? ]

 

SharePoint는 2001 년 온-프레미스 제품으로 시작되었습니다. 시간이 지남에 따라 대규모 개발자 커뮤니티는 다양한 방식으로 확장하고 형성했습니다. 대부분의 경우 개발자 커뮤니티는 웹 파트, SharePoint 기능 XML 등 SharePoint 제품 개발 팀이 사용한 것과 동일한 패턴과 방식을 따랐습니다. 많은 기능이 C #으로 작성되어 DLL로 컴파일되어 온-프레미스 팜에 배포되었습니다. 이 아키텍처는 기업이 하나 뿐인 환경에서 잘 작동했지만 여러 테넌트가 나란히 실행되는 클라우드로 확장되지 않았습니다. 결과적으로 클라이언트 측 JavaScript 주입과 SharePoint 추가 기능이라는 두 가지 대체 모델이 도입되었습니다. 이 두 가지 솔루션 모두 장단점이 있습니다.

 

JavaScript injection

One of the most popular web parts in SharePoint Online is the Script Editor. You can paste JavaScript into the Script Editor web part and have that JavaScript execute when the page renders. It’s simple and rudimentary, but effective. It runs in the same browser context as the page, and is in the same DOM, so it can interact with other controls on the page. It is also relatively performant, and simple to use.

 

SharePoint Online에서 가장 인기있는 웹 파트 중 하나는 스크립트 편집기입니다. JavaScript를 스크립트 편집기 웹 파트에 붙여넣고 페이지가 렌더링 될 때 해당 JavaScript가 실행되도록 할 수 있습니다. 간단하고 기초적이지만 효과적입니다. 페이지와 동일한 브라우저 컨텍스트에서 실행되며 동일한 DOM에 있으므로 페이지의 다른 컨트롤과 상호 작용할 수 있습니다. 또한 비교적 성능이 뛰어나고 사용하기 쉽습니다.

 

SharePoint Online에서 가장 인기있는 웹 파트 중 하나는 스크립트 편집기로, JavaScript를 스크립트 편집기 웹 파트에 붙여넣고 페이지가 렌더링 될 때 해당 JavaScript가 실행되도록 할 수 있습니다. 페이지와 동일한 브라우저 컨텍스트에서 실행되며 동일한 DOM에 있으므로 페이지의 다른 컨트롤과 상호 작용할 수 있습니다. 

따라서, 이 방법은 간단하면서 효과적입니다. 

 

반면에 몇 가지 단점도 존재합니다.

1. 최종 사용자가 컨트롤을 페이지에 놓을 수 있도록 솔루션을 패키지화 할 수는 있지만

   구성 옵션을 쉽게 제공 할 수는 없습니다.

2. 최종 사용자는 페이지를 편집하고 스크립트를 수정하여 웹 파트를 손상시킬 수 있습니다.

3. 스크립트 편집기 웹 파트가 "스크립트 사용에 안전"으로 표시되어 있지 않다는 것입니다.

 

대부분의 셀프 서비스 사이트 모음 (내 사이트, 팀 사이트, 그룹 사이트)에는 "NoScript"로 알려진 기능이 있습니다. 기술적으로는 SharePoint에서 페이지 추가 / 사용자 지정 (ACP) 권한이 제거되었습니다. 즉, 이러한 사이트에서 스크립트 편집기 웹 파트가 실행되지 않습니다.

SharePoint Add-in model

NoScript 사이트에서 실행되는 솔루션의 현재 옵션은 추가 기능 / 앱 부분 모델입니다. 이 구현은 실무를 바탕으로 iFrame을 만듭니다. 장점은 시스템 외부에 있고 현재 DOM / 연결에 액세스 할 수 없기 때문에 정보 근로자가 신뢰하고 배포하기가 더 쉽다는 것입니다.

 

최종 사용자는 NoScript 사이트에 애드 인을 설치할 수 있습니다. 이 접근 방식에는 몇 가지 단점이 있습니다. 먼저 iFrame에서 실행됩니다. iFrame은 다른 페이지에 대한 새로운 요청이 필요하기 때문에 스크립트 편집기 웹 파트보다 느립니다. 이 페이지는 인증 및 권한 부여를 거쳐 SharePoint 데이터를 얻기 위해 자체 호출을 수행하고 다양한 JavaScript 라이브러리를로드하는 등의 작업을 수행해야합니다. 스크립트 편집기 웹 파트는 일반적으로로드 및 렌더링에 100 밀리 초가 걸리지 만 앱 파트는 2 초 이상이 걸릴 수 있습니다. 또한 iFrame 경계로 인해 반응 형 디자인을 만들고 CSS 및 테마 정보를 상속하기가 더 어려워집니다. iFrame은보다 강력한 보안 기능을 제공하므로 사용자 (페이지의 다른 컨트롤에서 페이지에 액세스 할 수 없음)와 최종 사용자 (컨트롤에서 Office 365에 대한 액세스 권한이 없음)에 유용합니다.

 

SharePoint Framework

 

과거에는 클라우드 서버에 설치된 완전 신뢰 C # 어셈블리로 웹 파트를 만들었습니다. 그러나 현재 개발 모델에는 대부분 SharePoint 및 Office 365 백엔드 워크로드에 대한 REST API 호출을 수행하는 브라우저에서 실행되는 JavaScript가 포함됩니다. 이 세상에서는 C # 어셈블리가 작동하지 않습니다. 새로운 개발 모델이 필요했습니다. SharePoint 프레임 워크는 SharePoint 개발의 차세대 기술입니다.

 

https://docs.microsoft.com/ko-kr/sharepoint/dev/spfx/sharepoint-framework-overview

 

Overview of the SharePoint Framework (SPFx)

SPFx is a page and web part model that provides full support for client-side SharePoint development, easy integration with SharePoint data, and support for open source tooling.

docs.microsoft.com

 

 

Comments