본문 바로가기

개발자정보

Visual force 지원하는 에디션

반응형

Visualforce is available in Contact Manager, Group, Professional, Enterprise, Unlimited, Performance, and Developer Editions.

 

Visual force 개발에 필요한 권한

 

Visual force의 개발에는 특정 활동에 따라 다양한 권한이 필요합니다.

User Permissions Needed

To enable Visualforce development mode: “Customize Application”
To create, edit, or delete Visualforce pages: “Customize Application”
To create and edit custom Visualforce components: “Customize Application”
To edit custom Visualforce controllers or Apex “Author Apex”
To set Visualforce page security: “Manage Profiles and Permission Sets”
To set version settings for Visualforce pages: “Customize Application”
To create, edit, or delete static resources: “Customize Application”
To create Visualforce Tabs: “Customize Application”

 

 

Visual force의 아키텍처 설계.
다음 아키텍처의 그림에서 보듯이 모든 Visual force 페이지 전체는 개발자가 페이지를 작성하는 경우에도 최종사용자가 페이지를 요구하는 경우에도 양쪽 모두 Lightning 플랫폼 상에서 실행됩니다.

Visual force 시스템 아키텍처 - 개발 모드

 

 

 

 

개발자가 Visual force 페이지 기술을 완료하고 플랫폼에 저장하면 플랫폼 애플리케이션 서버는 그 마크업을 Visual force 렌다라에 의해 해석 가능한 추상적인 명령 세트로 컴파일하는 것을 시도합니다.컴파일로 오류가 생성되면 저장이 중지되고 개발자에게 오류가 반환됩니다.그 이외의 경우는, 명령이 메타데이터 저장소에 보존되어 Visual force 렌다라에 송신됩니다.렌다라는 그 명령을 HTML로 변환하고 개발자의 뷰를 갱신합니다.따라서 마크업에 변경이 있을 때마다 개발자에게 즉시 피드백이 제공됩니다.

아래 아키텍처 그림에서는 개발자가 아닌 사용자가 Visual force 페이지를 요구할 때의 프로세스 플로우를 보여 줍니다.이 페이지는 벌써 명령에 컴파일이 끝난 상태이기 때문에, 애플리케이션 서버는 메타데이터 저장소로부터 페이지를 취득하고, HTML 로 변환하기 위해서 그것을 Visual force 렌다라에 송신합니다.

 

Visual force 시스템 아키텍처 - 표준 사용자 모드

Visual force 페이지는 salesforce.com 서버가 아닌 force.com 서버에서 하나로 실행할 수 있습니다.

 

 

Visual force의  장점
Visual force 에는 마크업 언어로서 다음과 같은 이점이 있습니다.

사용자 친화적인 개발
개발자는 결과 페이지를 표시하는 창과 같은 창에서 Visual force 마크업을 편집할 수 있습니다.개발자는 코드만 저장하면 편집 결과를 바로 확인할 수 있습니다.Visual force 에디터 페인에는 자동 컴플리트와 구문의 강조 표시 기능도 있습니다.
또한 Visual force에서는 개발자가 즉시 지원 컴포넌트를 작성할 수 있는 '퀵 수정'도 지원합니다.예를 들어 개발자는 Salesforce에 로그인하여 URL에 새로운 페이지의 이름을 입력하는 것만으로 새로운 Visualforce 페이지를 정의할 수 있습니다.wiki 와 거의 동일하게 페이지가 아직 존재하지 않는 경우에는 플랫폼에 의해 자동으로 생성됩니다.
다른 웹 기반 사용자 인터페이스 기술과의 통합
Visual force 마크업은 최종적으로 HTML로 표시되므로 설계자는 Visual force 태그와 표준 HTML, JavaScript, Flash 또는 플랫폼상의 HTML 페이지 내에서 실행할 수 있는 기타 임의의 코드(Lightning 플랫폼의 삽입 항목 및 식 등)
Model-View-Controller (MVC) 스타일 개발
Visual force 는, 애플리케이션의 뷰(Visual force 마크 업으로 정의되는 유저 인터페이스)와 애플리케이션의 구조를 특정하는 컨트롤러(Apex 로 기술된 Visual force 컨트롤러로 정의되는 비즈니스 로직) 사이를 명확하게 나누는 것으로, Model-View-Controler (MVControler)의 사이를 명확하게 나누는 것으로, MView-Controler이 아키텍처에서 설계자 및 개발자는 신규 애플리케이션 작성으로 수행하는 작업을 쉽게 분할할 수 있습니다.설계자는 사용자 인터페이스의 디자인에 집중하고 개발자는 애플리케이션을 기능시키는 비즈니스 로직을 수행할 수 있습니다.
간결한 구문
Visual force 페이지는 약 90% 적은 줄수의 코드로 S 컨트롤과 같은 기능을 구현할 수 있습니다.
데이터 주도의 디폴트
Visual force 컴포넌트는 플랫폼에 의해 인텔리전트로 표시됩니다.예를 들어 페이지 설계자는 다양한 종류의 편집 가능한 항목(이메일 주소, 달력 날짜 등)에 대해 다른 컴포넌트 태그를 사용할 필요가 없습니다.모든 항목에 범용 <apex: inputField> 태그를 사용할 수 있습니다.Visual force 렌다라는 각 항목의 적절한 편집 인터페이스를 표시합니다.
호스트되어 있는 플랫폼
Visual force 페이지는 Lightning 플랫폼에 의해 그 전체가 컴파일 및 표시됩니다.이러한 페이지는 매우 긴밀하게 통합되어 있기 때문에 표시 또는 편집되는 데이터 양에 관계없이 표준 Salesforce 페이지와 동일한 성능을 보여 줍니다.
자동 업그레이드 가능
Visual force 페이지는 Lightning 플랫폼의 다른 부분이 업그레이드된 경우에도 바꿔 쓸 필요는 없습니다.페이지는 메타데이터로서 보존되고 있기 때문에, 시스템의 나머지 부분과 함께 자동적으로 업그레이드됩니다.

 

 

 

Visual force를 사용할 필요가 있는 상황은?
Salesforce에는 강력한 CRM 기능을 제공하는 애플리케이션이 포함되어 있습니다.또한 Sales force 에서는 조직에 따라 임베디드 어플리케이션을 커스터마이즈하는 기능도 준비되어 있습니다.단, 조직에는 기존 기능에서는 지원되지 않는 복잡한 비즈니스 프로세스가 있는 경우가 있습니다.Lightning 플랫폼에는 이런 경우에 고급 관리자나 개발자가 커스텀 기능을 구축할 수 있는 다양한 방법이 탑재되어 있습니다.조직의 프론트엔드의 UI 및 기능을 맞춤화하려면 Visual force나 Lightning Web 컴포넌트를 사용합니다.Sales force는 가능하면 Visual force보다 Lightning Web 컴포넌트를 사용하는 것이 좋습니다.Lightning Web 컴포넌트가 최신이고 성능도 높고 응답성이 뛰어난 기능을 가지고 있기 때문입니다.

Visualforce
Visual force 에서는 태그 기반의 마크업 언어를 사용하여 개발자는 보다 효과적으로 애플리케이션을 개발하거나 Sales force의 사용자 인터페이스를 커스터마이즈 할 수 있습니다.Visual force를 사용하여 다음을 할 수 있습니다.
마법사나 기타 멀티 스텝 프로세스의 구축.
애플리케이션을 통한 독자적인 커스텀 플로우 컨트롤의 작성.
최적이며 효과적인 애플리케이션 상호작용을 목적으로 한 네비게이션 패턴이나 데이터 고유 규칙의 정의.
Lightning Web 컴포넌트
Lightning Web컴포넌트는 HTML과 최신 JavaScript를 사용해서 작성된 커스텀 HTML 요소입니다.코어 웹 컴포넌트 표준을 사용하여 Sales force에서 지원 대상 브라우저에서 적절하게 동작하는 데 필요한 기능만 제공합니다.Lightning Web 컴포넌트는 브라우저에서 네이티브로 실행되는 코드 상에 구축되기 때문에 가볍고 탁월한 성능을 발휘합니다.

표준탑재컴포넌트
컴포넌트셋이표준장비되어있어어플리케이션구축에바로착수할수있습니다.어플리케이션 디바이스별 최적화는 컴포넌트가 수행하기 때문에 최적화에 시간이 많이 걸리지 않습니다.
리치 커스텀 컴포넌트 생태계
업무를 지원하는 컴포넌트를 생성하여 Salesforce 모바일 어플리케이션, Lightning Experience 및 익스피리언스 빌더 사이트에서 이를 사용할 수 있게 합니다.Salesforce 모바일 응용 프로그램 사용자는 내비게이션 메뉴에서 컴포넌트에 액세스합니다.Lightning 어플리케이션 빌더에서 드래그 앤 드롭 컴포넌트를 사용하여 Lightning Experience 커스터마이즈 및 자체 Lightning 페이지 생성을 합니다.익스피리언스 빌더를 사용하여 익스피리언스 빌더 사이트를 생성 및 맞춤 제작합니다.AppExchange에는 조직에서 사용할 수 있는 추가 컴포넌트가 있습니다.마찬가지로 독자적인 컴포넌트를 공개하여 다른 사용자와 공유할 수 있습니다.
단시간에 개발
데스크탑이나 모바일 디바이스와 심리스에 연동하는 표준 컴퍼넌트에 의해, 팀의 대처가 신속화됩니다.어플리케이션을 컴포넌트 기반으로 구축하므로 병렬 설계가 가능하여 개발 전반의 효율성을 향상시킵니다.
컴포넌트는 캡슐화되어 내부는 비공개로 유지되지만 공개 형상은 컴포넌트의 컨슈머에서 참조할 수 있습니다.이러한 견고한 분리를 통해 컴포넌트 작성자는 자유롭게 내부 구현에 대한 상세 내용을 변경할 수 있으며, 컴포넌트 작성자는 이러한 변경으로부터 격리됩니다.
디바이스 지원 및 브라우저 간 호환성
응용 프로그램은 반응형 설계를 사용하여 HTML5, CSS3, 터치 이벤트 등 최신 브라우저 테크놀로지를 지원합니다.

 

 

 

어떤 경우에 Visual force가 아닌 Lightning Web 컴포넌트를 사용해야 합니까?
Lightning Web 컴포넌트는 최신 Web 표준을 따릅니다.또한 플랫폼 안팎에서 쉽게 재사용할 수 있고 성능도 높아 다양한 폼 요소에 잘 적합합니다.Visual force 컴포넌트에서 Lightning Web 컴포넌트로의 변환은 단순한 교환작업이 아닙니다.그러나 이 작업을 통해 애플리케이션을 개량하고 개선할 수 있는 기회를 얻을 수 있습니다.그래서 조금 시간을 내서 각 컴포넌트와 그에 대응하는 컴포넌트의 디자인이나 사용하기 쉬운지 전체적으로 평가를 합니다.디자이너에게 연락하여 컴포넌트를 Lightning Experience 사용자 인터페이스의 최신 디자인에 맞추는 최선의 방법을 결정합니다.힌트나 샘플 코드에 대해서는, 「Lightning Design System」에 나타나 있는 컴포넌트 블루 프린트를 참조해 주세요.

Lightning Web 컴포넌트 개발을 시작하면 Lightning Experience 내에서 Visual force 페이지를 재사용하는 타이밍과 이 페이지를 Lightning Web 컴포넌트로 재구축하는 타이밍을 결정해야 합니다.다음 사항이 필요할 때는 재구축을 본격적으로 검토해 주십시오.

보다 매력적이고 응답성이 높은 사용자 경험.
다양한 디바이스의 폼 요소에 맞추어 간단하게 최적화할 수 있는 경험.
어플리케이션의 퍼포먼스 향상.
신규개발의 경우에는 Lightning Experience 로우 코드 툴과 Lightning Web 컴포넌트를 사용을 항상 권장하고 있습니다.이것들에는, 여러가지 메리트가 있어, 개발도 용이하게 실시할 수 있게 됩니다.

관련 항목:
Sales force 개발자 블로그: New Resources for Moving from Visual force to Lightning Web Components (Visual force에서 Lightning Web 컴포넌트로 이행하기 위한 새로운 리소스)

 

 

표준 Visual force 컴포넌트와 기본 Lightning Web 컴포넌트의 대응관계
특정 표준 Visual force 컴포넌트를 지원하는 기본 Lightning Web 컴포넌트를 확인하려면 다음 표를 참조하십시오.

 

Visualforce componentLightning web component

apex:pageBlock lightning-card
apex:pageBlockButtons Set actions slot on lightning-card
apex:pageBlockSection

lightning-accordion and

lightning-accordion-section

apex:pageBlockSectionItem

lightning-layout and

lightning-layout-item

apex:toolbarGroup

lightning-layout and

lightning-layout-item

apex:panelGrid

lightning-layout and

lightning-layout-item

apex:panelGroup

lightning-layout and

lightning-layout-item

apex:tabPanel lightning-tabset
apex:tab lightning-tab
apex:repeat template for:each or iterator
apex:pageBlockTable lightning-datatable
apex:dataTable lightning-datatable
apex:inlineEditSupport lightning-datatable with inline editing in editable columns
apex:image lightning-platform-resource-loader
apex:stylesheet lightning-platform-resource-loader
apex:includeScript lightning-platform-resource-loader
apex:map lightning-map
apex:form

lightning-record-form

lightning-record-view-form

lightning-record-edit-form

apex:input

lightning-input

lightning-slider

apex:inputCheckbox

lightning-input type="checkbox"

lightning-input type="checkbox-button"

apex:inputFile

lightning-input type="file"

lightning-file-upload

apex:inputHidden lightning-input class="slds-hide"
apex:inputSecret lightning-input type="password"
apex:inputText lightning-input type="text"
apex:inputTextArea lightning-textarea
apex:inputField lightning-input-field
apex:selectCheckboxes lightning-checkbox-group
apex:selectList lightning-combobox or lightning-dual-listbox
apex:selectRadio lightning-radio-group
apex:outputLabel Set label attribute on lightning-input
apex:outputField lightning-output-field
apex:outputLink lightning-formatted-url
apex:outputText

lightning-formatted-datetime

lightning-formatted-number

lightning-formatted-rich-text

lightning-formatted-text

lightning-formatted-time

apex:commandButton

lightning-button

lightning-button-stateful

lightning-button-icon

lightning-button-icon-stateful

apex:commandLink lightning-button with bare variant
apex:pageMessage lightning-platform-show-toast-event

apex:messages

apex:message

Custom validity on lightning-input
apex:pageMessages

Automatic for lightning-record-form

Use lightning-messages in lightning-record-view-form or lightning-record-edit-form

See Al

 

 

 

Visual force 페이지와 S 컨트롤의 비교

 

 

 

Visualforce pages are considered the next-generation of s-controls and should be used instead of s-controls whenever possible, both for their increased performance and the ease with which they can be written. The following table outlines the differences between Visualforce pages and s-controls.

Visualforce PagesS-Controls

Required technical skills HTML, XML HTML, JavaScript, Ajax Toolkit
Language style Tag markup Procedural code
Page override model Assemble standard and custom components using tags Write HTML and JavaScript for entire page
Standard Salesforce component library Yes No
Access to built-in platform behavior Yes, through the standard controller No
Data binding Yes

Developers can bind an input component (such as a text box) with a particular field (such as Account Name). If a user saves a value in that input component, it is also saved in the database.

No

Developers can't bind an input component with a particular field. Instead, they must write JavaScript code that uses the API to update the database with user-specified field values.

Stylesheet inheritance Yes No, must bring in Salesforce stylesheets manually
Respect for field metadata, such as uniqueness Yes, by default

If a user attempts to save a record that violates uniqueness or requiredness field attributes, an error message is automatically displayed and the user can try again.

Yes, if coded in JavaScript using a describe API call

If a user attempts to save a record that violates uniqueness or requiredness field attributes, an error message is only displayed if the s-control developer wrote code that checked those attributes.

Interaction with Apex Direct, by binding to a custom controller Indirect, by using Apex webService methods through the API
Performance More responsive because markup is generated on the Lightning Platform Less responsive because every call to the API requires a round trip to the server—the burden rests with the developer to tune performance
Page container Native In an iFrame

See 

 

salesforce-walker.blogspot.com/2021/01/how-to-provide-navigation-in-vf-page.html

 

How to provide navigation in VF Page for lightning and classic

 Hi , We are going to discuss that how we can provide navigation when we have to navigate to another VF page from a VF page in lightning and...

salesforce-walker.blogspot.com

 

 

developer.salesforce.com/docs/atlas.en-us.230.0.pages.meta/pages/pages_intro_vs_scontrols.htm

 

How Do Visualforce Pages Compare to S-Controls? | Visualforce Developer Guide | Salesforce Developers

Learn how to develop custom user interfaces and apps with Visualforce, a framework that allows developers to build and deploy custom functionality hosted natively on the Lightning Platform.

developer.salesforce.com

 

반응형