KR101149993B1 - 통합 개발 환경에서 디자이너로서 호스트된 애플리케이션 - Google Patents

통합 개발 환경에서 디자이너로서 호스트된 애플리케이션 Download PDF

Info

Publication number
KR101149993B1
KR101149993B1 KR1020050011645A KR20050011645A KR101149993B1 KR 101149993 B1 KR101149993 B1 KR 101149993B1 KR 1020050011645 A KR1020050011645 A KR 1020050011645A KR 20050011645 A KR20050011645 A KR 20050011645A KR 101149993 B1 KR101149993 B1 KR 101149993B1
Authority
KR
South Korea
Prior art keywords
document
ide
application
unmanaged
development environment
Prior art date
Application number
KR1020050011645A
Other languages
English (en)
Other versions
KR20060041873A (ko
Inventor
레자 치크사즈
스베틀라나 로크쉬
토마스 이. 퀴닌
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20060041873A publication Critical patent/KR20060041873A/ko
Application granted granted Critical
Publication of KR101149993B1 publication Critical patent/KR101149993B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Document Processing Apparatus (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

호스트된 애플리케이션으로서 비관리 애플리케이션을 코히런트하며 사용 가능한 방법으로 디자인 환경으로 통합하여, 개발자가 호스트된 애플리케이션의 고유한 기능을 사용할 수 있고, IDE에 의해 제공되는 풍부한 생산 특징들에 영향을 주는 아키텍처이다. IDE는 비관리 애플리케이션으로부터 IDE로의 인터페이스를 제공하기위한 애플리케이션 어댑터를 포함하는 호스팅 컴포넌트를 포함한다. 또한 IDE는 자신의 디자이너 기능을 사용자에 제공하는 디자이너 프레임워크(designer framework)를 포함한다. 호스트 어댑터(host adaptor)는 직접적으로, 또는 통합 인터페이스(integration interface)를 통해 디자이너 프레임워크에 인터페이스 된다. 따라서, 개발자 및 사용자가 IDE의 기능뿐만 아니라 비관리 응용프로그램의 기능까지 사용할 수 있다. 이는 개발 환경과 호스트된 애플리케이션 간의 다양한 통합을 가능케하며, 그 결과로서 디자이너는 IDE와 상호작용 하게 된다.
개발 환경, 디자이너, 호스트 어댑터, 호스팅 컴포넌트, 비관리 애플리케이션

Description

통합 개발 환경에서 디자이너로서 호스트된 애플리케이션{HOSTED APPLICATION AS A DESIGNER IN AN INTEGRATED DEVELOPMENT ENVIRONMENT}
도 1은 본 발명의 시스템의 도면.
도 2는 IDE에서 애플리케이션 고유의 기능 통합을 위한 절차를 나타내는 흐름도.
도 3은 본 발명에 따른 OLE 문서 개발을 위한 절차를 나타내는 흐름도.
도 4는 본 발명에 따른 통합 기능을 보여주는 예시 창을 도시하는 도면.
도 5는 본 발명의 통합적이고 층계적인 메뉴 특성을 도시하는 도면.
도 6은 개시된 구조를 실행할 수 있는 컴퓨터의 블록 다이어그램을 도시한 도면.
도 7은 본 발명에 따른 예시적인 컴퓨팅 환경을 나타내는 도식적인 블록 다이어그램을 도시하는 도면.
< 도면의 주요 부분에 대한 부호 설명 >
100 : 시스템
102 : 통합 설계 환경
104 : 비관리 애플리케이션
106 : 호스팅 컴포넌트
108 : 호스트 어댑터
110 : 디자이너 프레임워크
112 : 통합 인터페이스
114 : 문서 호스팅 서브컴포넌트
본 발명은 소프트웨어 개발 환경에 관한 것으로서, 더욱 구체적으로는 비관리 애플리케이션(unmanaged application)을 디자이너(designer)로서 상기 소프트웨어 개발 환경으로 가져오는 아키텍처에 관한 것이다.
종래의 소프트웨어 통합 개발 환경(Integrated Development Environment; IDE)은 비관리 호스트된 애플리케이션(unmanaged hosted application)의 기능을 개발 작업 공간에 통합할 수 없었다. 따라서, 많은 디자이너를 쓰는 것은 통상적으로 호스트된 애플리케이션들과의 견고한 통합(tight integration)을 고려해야만 하는 매우 복잡하고 많은 시간을 소모하는 작업이었다.
지금 필요한 것은, 비관리 애플리케이션을 코히런트(coherent)하며 사용 가능한 방법으로 디자인 환경에 통합하여, 개발자가 호스트된 애플리케이션의 고유한 기능을 사용할 수 있게 하고, IDE에 의해 제공된 풍부한 생산성 특징들에 대해 영향을 줄 수 있는 아키텍처이다.
본 발명의 여러 실시 형태에 대한 기본적인 이해를 제공하기 위해 간략한 요약을 이하에 제시한다. 본 요약은 본 발명의 광범위한 개관이 아니며, 본 발명의 중요/결정적인 요소를 밝히거나 발명의 범위를 나타내기 위한 것이 아니다. 본 요약의 단 하나의 목적은, 차후에 제시될 보다 자세한 기술에 대한 서두로서, 간략화된 형태로 본 발명의 여러 개념을 제시하고자 하는 것이다.
본 명세서에서 개시되고 청구되고 있는 발명은, 일 형태에 있어서 비관리 애플리케이션을 코히런트하며 사용가능한 디자인 환경에 통합하여, 개발자가 호스트된 애플리케이션의 고유기능을 사용할 수 있게 하고 , IDE에 의해 제공된 풍부한 생산성 특징들에 대해 영향을 줄 수 있는 아키텍처를 포함한다. 이를 위해, 비관리 애플리케이션으로부터 IDE로의 인터페이스를 제공하는 애플리케이션 어댑터(application adapter)를 포함하는 호스팅 컴포넌트(hosting component)를 갖는 IDE가 제공된다. 이 IDE는 IDE의 디자이너 기능에 대한 사용자의 액세스를 제공하는 디자이너 프레임워크(designer framework)를 포함한다. 상기 호스트 어댑터는 디자이너 프레임워크에 직접 인터페이스되거나, 또는 통합 인터페이스를 통하여 디자이너 프레임워크에 인터페이스된다. 따라서, 개발자/사용자는 IDE의 기능뿐만 아니라 비관리 애플리케이션의 고유한 기능도 사용할 수 있으며, 이는 개발 환경과 호스트된 애플리케이션 간의 통합을 가능하게 하고, 그 결과 디자이너는 IDE와 상호 작용하게 된다.
상기 목적 및 그와 관련된 목적을 성취하기 위하여, 본 발명의 여러 실시 형태들이 이어지는 설명 및 첨부된 도면들과 함께 본 문서에서 기술된다. 그러나, 이들 실시 형태들은 본 발명의 원리가 적용될 수 있는 다양한 방법들의 일부만을 나타내는 것일 뿐이며, 본 발명은 이러한 실시 형태들과 이들의 등가물을 모두 포함할 의도로 이루어진 것이다. 본 발명의 다른 이점들과 새로운 특징들은 도면과 함께 고려되는 아래의 상세한 설명으로부터 명백해 진다.
본 발명은 도면들을 참조하여 기술되며, 전체적으로 동일한 참조번호는 동일한 요소를 참조하기 위해 사용된다. 아래의 기술에서는, 본 발명에 대한 신속한 이해를 제공하기 위해, 설명의 목적으로 다수의 구체적인 상세설명들이 보여진다. 그러나, 이러한 구체적인 상세설명들 없이도 본 발명이 실시될 수 있음은 명백하다. 다른 예에서, 본 발명의 기술을 원활히 하기 위한 잘 알려진 구조들과 장치들이 블록도의 형태로 나타내어진다.
본 출원에서 사용된 용어인 "컴포넌트(component)"와 "시스템(system)"은 하드웨어, 하드웨어와 소프트웨어의 결합, 소프트웨어 또는 실행중인 소프트웨어와 같은 컴퓨터 관련 엔티티(computer-related entity)를 나타내기 위한 것이다. 예를 들어 컴포넌트는, 프로세서(processor)에서 실행 중인 프로세스(process), 프로세서, 오브젝트(object), 실행가능개체(executable), 실행쓰레드(thread of execution), 프로그램, 및/또는 컴퓨터일 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 서버에서 실행되고 있는 애플리케이션 및 서버가 컴포넌트가 될 수 있다. 하나 이상의 컴포넌트가 프로세스 및/또는 실행쓰레드 내에 존재할 수 있고, 하나의 컴포넌트가 하나의 컴퓨터에 로컬라이즈되거나(localized) 및/또는 두 개 이상의 컴퓨터에 분산될 수도 있다.
도 1에, 본 발명의 시스템(100)이 도시되어 있다. 시스템(100)은 비관리 애플리케이션(104)의 고유한 기능을 개발 환경(102)으로 가져오는 것을 용이하게 하는 확장된 통합 개발 환경(IDE; 102)이다. 이를 위해, IDE(102)는 적어도 호스트 어댑터(host adaptor; 108)를 통해 비관리 애플리케이션(104)에 인터페이스되는 호스팅 컴포넌트(hosting component; 106)를 포함한다. 호스트 어댑터(108)는 호스팅 컴포넌트(106)의 부분이며, 특정 비관리 애플리케이션(104)에 고유하다. 즉, 비관리 애플리케이션(104)이 워드프로세서이면, 그 호스트 어댑터는 워드프로세스 애플리케이션에 고유한 인터페이스 능력을 제공한다. 유사하게, 스프레드시트 애플리케이션은 그 고유한 기능을 IDE(102)에 가지고 오도록 그 자신의 고유한 호스트 어댑터를 가질 수 있다.
호스팅 컴포넌트(106)는 또한 호스트 어댑터(108)에 인터페이스하며, 호스팅 컴포넌트(106)와 IDE(102) 사이의 인터페이스로서 기능하는 디자이너 프레임워크(designer framework; 110)를 포함한다. 호스트 어댑터(108)는 또한 통합 인터페이스(integration interface; 112)를 통해 디자이너 프레임워크에 인터페이스하며, 상기 통합 인터페이스는 제3자(third party) 애플리케이션에 고유한 호스트 어댑터(108)가 제공될 때 제3자 애플리케이션의 고유한 기능을 IDE(102)로 가져올 수 있는 인터페이스로서 기능한다.
호스팅 컴포넌트(106)는 또한 애플리케이션(104)의 관련 문서의 호스팅을 돕는 비관리 애플리케이션(104)과, 디자이너 프레임워크(110)에 인터페이스하는 문서 호스팅 서브컴포넌트(document hosting subcomponent; 114)를 포함한다.
앞에서 지적한대로, 시스템(100)은 복수의 비관리 애플리케이션(비관리 애플리케이션1...비관리 애플리케이션N로 표시함)의 고유한 기능을 통합할 수 있다. 따라서, IDE(102)는 상응하는 복수의 호스팅 컴포넌트(호스팅 컴포넌트1...호스팅 컴포넌트X로 표시함)를 포함한다. 각 호스팅 컴포넌트는 호스트 어댑터, 디자인 프레임워크, 통합 인터페이스(integration interface) 및 문서 호스팅 서브컴포넌트를 포함한다. 이러한 컴포넌트들은 독립된 엔티티들로 도시되어 있지만, 이들 엔티티들은 비관리 애플리케이션의 고유한 기능들을 IDE로 가져오기에 적합하다고 생각되어지는 어떤 방법으로도 결합될 수 있다.
시스템(100)은 특히 OLE(Object Linking and Embedding) 기술(IDE는 OLE를 지원함)에 적합하며, 문서 호스팅 서브컴포넌트(114)에 의해 호스트된 문서는 OLE 문서이다. 따라서, OLE 문서 인터페이스를 지원하는 어떠한 애플리케이션도 IDE(102)에 통합될 수 있다. 그러나, 본 발명은 이러한 OLE 기술에 국한되는 것이 아니라, IDE에서의 사용을 위한 어떠한 적합한 기술에도 적용될 수 있다.
IDE 내의 호스팅 문서 기반의 많은 애플리케이션들(예를 들어, 워드프로세서와 스프레드시트 애플리케이션) 이면에 있는 혁신은, 이러한 애플리케이션들이 시각적인 디자이너(visual designer)로서 취급된다는 것이다. 호스트된 애플리케이션은 완전히 동작하지만 IDE로부터 제공되는 풍부한 기능을 이용할 수 있다. IDE에서 호스트되는 경우, 호스트 문서들은 다른 도구 창들과의 상호 작용을 통해 시 각적으로 디자인될 수 있다. 예를 들어, 도구상자(tool box)는 디자이너에게 콘트롤과 컴포넌트를 드래그(drag) 및 드롭을 하는데 사용될 수 있다. 문서상의 콘트롤들은 디자이너 안에서 선택될 수 있고, 이들의 속성은 속성 창(property window)에서 편집된다. 또한 예를 들어 데이터 소스 선택 도구 창(Data Source Picker Tool window)을 통한 데이터 바인딩(data binding) 기능도 가능하다.
본 발명은 호스트된 애플리케이션에 의해 제공되는 고유한 기능을 감쇄하지 않고 그 호스트된 애플리케이션을 시각적인 디자이너로 전환한다. 이는 호스트된 애플리케이션을 디자인 표면(design surface)으로 효율적으로 전환해주며, 개발자는 솔루션과 애플리케이션을 신속하게 생성하기 위해 오브젝트들을 드래그 및 드롭할 수 있다. 또한 이 방법은 IDE에서 애플리케이션을 개발하는데 있어서 익숙하고 일관된 개발 모델을 제공한다. 또한, 본 발명의 확장된 IDE는 디자인 패러다임의 개수를 최소화하면서, 개념(concept)의 개수를 최소로 유지한다.
도 2에, IDE에서 고유한 애플리케이션 기능을 통합하기 위한 프로세스의 흐름도가 도시되어 있다. 이상에서, 흐름도의 형태 등으로 나타낸 1 이상의 방법론은 설명의 간략화를 위해 일련의 동작들로 도시하고 설명하였지만, 본 발명은 이러한 동작들의 순서에 제한되는 것은 아니라는 것을 이해하여야 하다.왜냐하면, 본 발명에 따르면 일부 동작들이 다른 순서로 수행될 수도 있고, 또한 이상에서 도시하고 설명한 다른 동작들과 동시에 수행될 수도 있기 때문이다. 예를 들어, 당업자는 방법론이, 상태도(state diagram)에서와 같이, 일련의 상관된 상태들 또는 이벤트들로서 대신 나타내어질 수 있음을 이해할 것이다. 또한, 도시된 모든 동작들 이 본 발명에 따른 방법을 실행하기 위해 요구되는 것은 아니다.
200에서 IDE가 제공되며, 202에서 비관리 애플리케이션의 호스팅을 위해 IDE내에 있는 호스팅 컴포넌트가 제공된다. 204에서 디자이너 프레임워크가 제공되고 호스팅 컴포넌트에 인터페이스된다. 206에서 비관리 애플리케이션에 고유한 호스트 어댑터가 호스팅 컴포넌트의 일부로서 제공된다. 208에서 호스트 어댑터가 디자이너 프레임워크에 직접적으로 인터페이스되고, 제3자 애플리케이션을위한 통합 인터페이스에 간접적으로 인터페이스된다. 210에서 문서 호스팅 서브컴포넌트가 제공되며, 디자이너 프레임워크 및 비관리 애플리케이션에 인터페이스된다. 212에서 호스트된 문서가 디자이너의 기능 및 비관리 애플리케이션의 고유 기능을 사용하여 조작될 수 있다. 그리고나서 프로세스는 스톱 블럭(Stop block)에 도달한다.
도 3에, 본 발명에 따른 OLE 문서 개발을 위한 프로세스의 흐름도가 도시되어 있다. 이 특정 프로세스의 실행에있어서, IDE 환경은 OLE 기술을 지원한다. 300에서 개발자는 IDE 환경을 오픈한다. 302에서 비관리 애플리케이션이 선택된다. 304에서 새로운 문서가 오픈되거나, 기존의 문서가 편집을 위해 오픈된다. 306에서 예를 들어 문서가 조작될 위치에 따른 허용이나 제한의 다양한 레벨 설정과 같이, 문서를 위한 보안 설정이 행해진다. 308에서 개발자/사용자는 문서 및/또는 문서내용을 디자이너 프레임워크와 호스트된 애플리케이션의 고유 기능중 하나 또는 둘 모두를 사용하여 조작한다. 그리고 나서 프로세스는 스톱 블럭에 도달한다.
호스트 어댑터(HOST ADAPTORS)
호스트된 애플리케이션이 디자이너로서 오픈되게 되면 호스트된 메뉴는 IDE의 메뉴와 통합된다. 호스트된 애플리케이션이 포커스(focus)를 가지는지 유무에 따라 어떤 메뉴항목들은 활성화되고 다른 것들은 비활성화된다. 즉 IDE가 포커스를 가지면 호스트된 애플리케이션 내의 어떤 메뉴항목은 비활성화 된다. 반대로 호스트된 애플리케이션이 포커스를 가지면 IDE의 어떤 메뉴항목이 비활성화 된다. 이것이 호스트 어댑터의 유일한 기능이다.
도 4에, 본 발명에 따른 통합 기능을 나타내는 샘플 창(sample window; 400)이 도시되어 있다. 창(400)은 호스트된 스프레드시트(예를 들어 상표명 EXCEL의 스프레드시트 애플리케이션과 관계가 있는)를 나타내고 있다. 창(400)은 IDE 메뉴(404)와 결합된 호스트 메뉴(402), 추가적인 뷰 코드(View Code) 명령(408)을 갖는 호스트 콘텍스트 메뉴(host context menu; 406), 프로젝트구조(412)를 보여주는 "솔루션 익스플로러(Solution Explorer; 410)", 선택된 스프레드시트의 속성들(416)을 나타내는 속성 창(414), 호스트된 문서(422)에 추가될 수 있는 콘트롤과 컴포넌트의 목록(420)을 갖는 도구상자(418)를 보여준다.
속성 창은 코드 비하인드 프로젝트 항목들(code-behind project items) 및 다른 디자이너 프로젝트 항목들을 위한 속성들을 디스플레이 한다. 호스트된 애플리케이션은 그 자신의 속성들을 속성 창에 넣는다. 호스트된 애플리케이션은 속성들을 속성 창에 전달할지를 선택할 수 있다. 호스트된 애플리케이션은 속성 목록(예를 들어 속성 이름과 속성 종류)을 제공한다.
내장되거나 링크된 오브젝트(embedded or linked objects)를 갖는 어떤 문서 도 IDE에서 오픈될 수 있다. 내장되거나 링크된 오브젝트의 선택은 메뉴 및 툴바(toolbar)가 선택된 오브젝트를 위해 변경되도록 한다.
만약 도구 옵션의 제1의 라디오 버튼(first radio button)이 선택되면, 어댑터는 모든 액셀러레이터(accelerator)를 갈무리하고, 이들 액셀러레이터들을 동적으로 생성된 IDE의 쇼트컷(또는 키 맵핑) 테이블로 보낸다. 처리되지 않는 것은 처리를 위해 그 IDE 테이블에 의해 다시 호스트된 애플리케이션으로 보내진다.
디자이너에서 오른쪽 클릭을 하면 표준 스프레드시트 콘텍스트 메뉴가 도시된다. 추가적인 메뉴 명령어 "View Code"는 콘텍스트 메뉴의 처음에 있는 명령어이다. "View Code" 명령어를 목록의 가장 위로 하는 것이 다른 프로그램의 콘텍스트 메뉴에도 통일적으로 적용된다. 스프레드시트의 셀에서 "View code" 명령어를 선택하면 개발자는그 워크시트의 코드편집기(code editor)로 간다. 커서는 어디에 있었던지 원래 있던 곳에 있게 된다. 이것은 디폴트로 커서가 편집기 위에 있게 됨을 의미한다. 뷰 콘트롤(View Control)를 오른쪽 클릭하면 뷰 콘트롤을 위한 콘텍스트 메뉴가 도시된다. 뷰 콘트롤에서 "View Code" 명령어를 선택하면 개발자는 IDE의 코드편집기로 가고 커서는 원래 있던 곳에 있게 된다.
워크시트 탭(worksheet tab)의 오른쪽을 클릭하면 스프레드시트애플리케이션의 콘텍스트 메뉴가 도시된다. 이 콘텍스트 메뉴는 "View Code" 명령어를 포함하며, 이것이 선택되면 선택시에 IDE 코드편집기에 있는 그 스프레드시트를 위한 코드 비하인드 파일로 사용자를 인도한다. 코드 편집기에서 "View code" 명령에 의해 커서의 위치를 정하는 것은 디자이너에서 "View code" 명령을 사용하는 경우와 같다.
도 5에, 본 발명의 통합적이고 단계적인 메뉴의 특징을 보여주는 창(500)이 도시되어 있다. 호스트된 애플리케이션(또한 서버 애플리케이션이라 알려짐)을 IDE와 통합하는 것은 비슷한 이름을 갖는 메뉴 항목과의 충돌을 야기할 수 있다. 여기서는 IDE와 호스트된 애플리케이션의 통합이 메뉴의 충돌을 야기하여 적어도 "View" 메뉴 항목이 충돌 상태에 있다. IDE는 기존의 "View"메뉴(502)가 "Server View Commands" 메뉴를 통해 액세스할 수 있는 호스트된 애플리케이션 메뉴(505)를 포함하도록 수정한다. IDE는 사용자 본문(user text)에, IDE view 메뉴(502)내의 Sever view 메뉴의 옵션의 위치를 명확하게 나타낸다. Sever View Commands 메뉴 옵션에 있는 확장 화살표는 단계적 서버 서브메뉴항목의 접근을 용이하게 해준다.
예시적 시나리오(EXAMPLE SCENARIO)
IDE에서 사용자는 새로운 스프레드시트 프로젝트를 생성한다. 스프레드시트와 관련된 프로젝트 항목들이 솔루션 익스플로러와 스프레드시트 워크북 내에 생성되고, 시트들이 디자이너로서 문서 창에 디스플레이된다. 이 스프레드시트 문서는 IDE내부에서 디자인된다. 생산성 기능들 및 IDE 기능들 모두가 하나의 환경 내에 있다면, 개시된 아키텍처는 IDE와 호스트된 애플리케이션의 메뉴를 통합하고, 툴바는 디자이너의 스프레드시트 애플리케이션 내에서 이용 가능하다. 스프레드시트는 관리 코드를 사용하는 스프레드시트를 커스터마이즈하기 위한 IDE 도구창 및 편집기뿐만 아니라, 스프레드시트 애플리케이션의 풍부한 충실도(fidelity)를 사용하여 편집되거나 수정될 수 있다. 사용자는 관리되는 단추를 도구상자로부터 문서 상에 드래그 및 드롭할 수 있다. 단추는 선택될 수 있으며, 단추의 속성은 속성 격자(property grid)에 의해 변경될 수 있다. 단추를 두 번 클릭하여 Code View에 들어가는 것에 의해, 자동으로 생성되는 이벤트 처리기(event handler) 내에 커스터마이제이션(customization)이 이루어질 수 있다.
디자이너 모드 ( DESINER MODE)
호스트된 애플리케이션은 그 애플리케이션 내에서의 디자인 동작(design action)과 런타임 동작(runtime action)을 구분하기 위해 디자인 모드와 런타임 모드에서 동작한다. 각 상태에서 사용자가 행할 수 있는 일련의 동작들은 애플리케이션별로 다르고, IDE 안에 있는지 그렇지 않은지에 상관없이 호스트된 애플리케이션에 종속한다. 실행 중에 있을 때 호스트된 애플리케이션은 디자인 타임 모드(design time mode)에 있고, IDE에 호스트되어 있을 때도 디자인 타임 모드에 존재한다. 이는 디자이너에 콘트롤을 드래그하는 것, 그 속성을 보고 편집하기 위해 콘트롤을 선택하는 것, 및 Code View에 들어가기 위해 콘트롤을 두 번 클릭하는 것을 용이하게 한다. 비관리 애플리케이션을 위한 호스트어댑터는 IDE내에 있을 때, 문서를 디자인 모드로 하고 이를 유지한다.
또 다른 모드는 "run" 모드이다. 애플리케이션이 실행 중이거나 디버깅 중일 때 "run" 모드에 있다. 이 모드에서는, 오직 고유한 애플리케이션 기능만이이용 가능하다. 디버깅(debugging)이 시작되면, 코드편집기는 활성화된 디자이너가 되고, 모든 액셀러레이터는 IDE에 의해 관리된다.
문서 보기(DOCUMENT VIEWS)
IDE에 호스트된 문서는 디자인 뷰(Design view)와 코드 뷰(Code view)의 적어도 두개의 뷰(view)를 갖는다. 일반적으로 디자인 뷰는 애플리케이션의 디자인/표준 뷰이다. 디자인 뷰는 OLE 문서 기술을 지원하는 문서에서 가능하다. 사용자는 원래의 호스트된 애플리케이션을 사용할 때와 실질적으로 유사하게 이 문서에서 작업할 수 있다. 이것은 개발자가 템플릿(template)/문서를 설계할 수 있고, 문서를 생성 및 수정할 수 있으며, 예를 들어 포맷팅(formatting), 챠팅(charting), 스키마 맵핑(schema mapping)과 같은 특별한 호스트의 기능들을 사용할 수 있음을 의미한다. 이러한 동작들은 OLE 기술을 이용하고 IDE에서 호스트된 애플리케이션을 호스팅함으로써 이루어진다.
디자인 뷰는 호스트된 애플리케이션이 지원하는 포맷으로 새 문서나 기존의 문서를 디스플레이할 수 있다. 예를 들어, 디자이너는 이진(binary)이나 XML 포맷으로 된 문서를 처리할 것이다. 이는 코드의 작성을 위한 디자이너로의 콘트롤의 드래그 및 드롭, 콘텍스트 선택, 콘트롤의 두 번 클릭과 같은 동작을 가능하게 하기 위해 문서를 IDE에 완전히 통합하는 OLE 문서 기술에 의해 이루어진다. 디자이너는 포맷팅, 스타일, 스키마 맵 및 내장된 오브젝트(그러나, 이들에 한정되는 것은 아님)를 포함하여 전체 문서 내용을 디스플레이할 수 있다.
호스트된 애플리케이션이 IDE에 있을 때는 디자인 모드이다. IDE에 호스트된 애플리케이션은 충분히 기능적이며, 예를 들어 솔루션 개발시 사용자는 호스트된 애플리케이션의 메뉴, 명령어, 콘텍스트 메뉴 및 액셀러레이터 모두를 사용할 수 있다. 동시에 호스트의 고유 기능에 더하여 특징과 경험이 있다. 여기에서 나 타낸 바와 같이 IDE 도구 창에서의 상호작용, 디자이너(문서)에서 오른쪽 클릭을 할 수 있는 것, 코드 비하인드 파일로 인도하기 위해 Code View 명령을 선택하는 것, 디버깅을 시작하기 위해 기능 키(예를 들어, F5)를 선택하는 것 등이 그 예이다. 이러한 특징들은 IDE에서의 개발자의 경험을 현저히 향상시키며, 개발자가 애플리케이션을 디자인하는데 도움을 준다.
호스트된 애플리케이션에서의 사용자의 경험과 IDE에서의 사용자의 경험이 다른 경우가 있다. 예를 들어, "Tools>Macro" 메뉴 옵션을 사용할 수 없는 경우, 어떤 키의 조합에 의해 다른 동작이 이루어질 수 있다(예를 들어, Alt+F11이 선택되면, 매크로 환경이 로드된다). 호스트된 애플리케이션의 동작이 IDE 외부에서의 동작과 다른 특수한 경우는 호스트 어댑터와 관련이 있다. 호스트 어댑터는 이러한 호스트 기능을 끄거나 동작들을 변경하는 동작에 의해 이들 차이들을 처리한다. 이와 같이 하는 목적은 개발자의 경험을 향상시키고, 호스트된 애플리케이션과 개발환경 간의 통합을 증대시키기 위함이다.
애플리케이션 문서가 그와 관련된 다수의 "하위 문서(subdocument)"를 가지고 있다면(예를 들어, 워크북에 관련된 다수의 워크시트들), 하위문서 각각과 관련된 코드 뷰(즉, 워크시트의 각각에 관련된 코드 비하인드 파일)가 있다. IDE에서 호스트되고 커스터마이즈된 문서들은 관련된 코드 뷰를 갖는다.
코드 뷰는 문서와 관련된 코드 비하인드 파일(code-befind file)을 보여준다. 디자이너에서 제공하는 문서와 관련된 코드 창은 다수의 방법으로 활성화될 수 있다. 한가지 방법은 디자이너 또는 상응하는 코드 프로젝트 항목이 솔루 션 익스플로러 내에서 선택될 때, 솔루션 익스플로러 상의 "View Code" 단추를 클릭하거나 VS 뷰 메뉴인 "View Code"에서 메뉴 아이템을 선택하는 것이다. 솔루션 익스플로러에서 디자이너가 선택된 경우에는, 현재 활성화되어 있는 하위문서에 해당하는 코드창이 열린다. 다른 방법은, 디자이너 콘텍스트 메뉴에서 "View Code"를 선택하는 것이다(커서는 현재 맵핑된 요소(mapped element) 상에 있지 않음). 또 다른 방법은, 솔루션 익스플로러 내의 프로젝트 항목 콘텍스트 메뉴에서 "View Code"를 선택하는 것이다.
이상의 모든 동작에서, 코드 창은 창의 맨 상단에 있도록 설정된 커서와 함께 로드된다. 디자이너의 콘트롤을 두 번 클릭하는 것에 의해 코드 창이 불려진다. 이 후 코드 생성(즉, 처리기 정의) 및 전달이 이루어진다. 이 경우에 커서는 디폴트 콘트롤 이벤트 처리기 안에 있도록 설정된다. 처리기(handler)가 없는 경우에는 처리기가 생성된다. 호스트된 애플리케이션은 IDE에 어떤 이벤트 처리기가 생겼는지를 알기에 충분한 데이터를 제공한다. 디폴트 이벤트 처리기가 이미 생성되어 있는 경우에는, 콘트롤을 두 번 클릭하면 유저가 코드편집기로 가고, 커서는 디폴트 이벤트 처리기에 위치한다.
콘트롤 (VIEW CONTROLS)
뷰 콘트롤은 데이터 바인딩을 지원하고, 개발자가 뷰 콘트롤에 의해 만들어진 이벤트에 응답하는 데 사용될 수 있는 이벤트 모델을 제공하기 위해 집합된 오브젝트이다. 뷰 콘트롤의 가시성과 발견가능성을 증대시키기 위해, 콘트롤은 도구상자 안에 "controls"로 위치하며, 사용자는 애플리케이션 디자이너 상에 이를 드래그와 드롭할 수 있다. 다음은 워드프로세싱 애플리케이션에서 뷰 콘트롤과 함께 발견, 생성, 삭제 및 작업을 지원하는 디자인 시간 도구(design time tool)에 관한 기술이다. 그러나, 스프레드시트 애플리케이션 또한그 외의 뷰 콘트롤을 가지고 있다.
워드프로세서 애플리케이션(및 스프레드시트 애플리케이션)은 어느 수준의 고유의 지원이 있다. 예를 들어, 그것은 뷰 콘트롤을 이용한 생성과 작업에 사용될 수 있다. 그것을 가지고 일하는 전체 개발자의 경험을 향상시키는 것뿐만 아니라 이들 기능들의 가시성과 발견가능성을 증가시키기 위해 추가적인 도구 지원이 뷰 컨트롤 주위에 추가된다. 개발자가 뷰 콘트롤에 대한 경험에 익숙해지는 모델을 제공하기 위해, 콘텍스트 및 속성 창 지원의 선택, 도구상자로부터의 뷰 콘트롤의 추가 및 코드 뷰로 인도하기 위한 뷰 콘트롤 상의 더블 클릭과 같은 관리된 콘트롤를 갖는 모방 작업이 제공된다.
기능들은 도구상자로부터 뷰 콘트롤의 일반적인 드래그 및 드롭 지원, 도구상자를 통해 추가되는 뷰 콘트롤의 디폴트 명명, 뷰 콘트롤를 위한 콘텍스트 선택(예를 들어, 디자이너에 있는 뷰 콘트롤를 선택하면 속성 창안의 속성들이 보여 지고 속성 그리드 드롭다운(property grid dropdown)에 있는 뷰 콘트롤을 선택하면 디자이너의 뷰 콘트롤이 선택된다), 코드 편집기로 가기 위한 뷰 콘트롤의 두 번 클릭, 디폴트 이벤트 처리기 생성, 디자이너에 부가된 뷰 콘트롤과 코드 비하인드의 동적인 동기화(dynamic synchronization), 속성 창을 통한 뷰 콘트롤의 재명명(renaming) 지원 및 코드 편집기에서 뷰 콘트롤을 위한 이벤트 드롭다운 지 원을 포함하지만, 이에 한정되는 것은 아니다. 다른 기능들은 뷰 콘트롤을 추가하기 위해 도구 상자에서"Enter" 및 "double-click"을 지원하는 뷰 콘트롤에 대한 도구 상자 접근성, 책갈피 보여주기, 중첩하는 책갈피(overlapping bookmark)의 처리, 도구상자 내의 뷰 콘트롤 항목을 위한 기능 키(F1) 지원, 도구상자 접근성(뷰 콘트롤 추가를 위한 Ctrl+C와 Ctrl+V 지원), 책갈피 지우기 지원, 클러터(clutter)를 줄이기 위해 뷰 콘트롤을 보통의 책갈피로 강등시킬 수 있는 옵션을 사용자에 제공하는 것, 뷰 콘트롤 간에 탭을 다는 것 및 모양을 위한 도구상자 지원을 포함할 수 있다. 책갈피 뷰 콘트롤은 한 문자에서 다수의 문단까지 걸쳐서 기능하는 워드프로세서를 위해 지원된다.
개발자는 IDE에 있는 문서에 스키마를 적용시키기 위해 XML 구조의 워드프로세서를 사용할수 있다. 맵핑 프로세스는 각 맵핑된 요소를 위한 XML 노드 뷰 콘트롤(node view control)을 생성한다. XML노드 뷰 제어기의 디폴트 명명은 스키마 맵핑된 요소와 동일할 것이다. 스키마 맵핑된 제어기 변수의 유일성을 보장하기 위해, 충돌이 일어나면 X가 이름에 부가된다(X는 정수로서 충돌이 발생할 때마다 증가한다).
스프레드시트 애플리케이션 뷰 콘트롤과 관련하여 "Named-Range" 제어기와 "ListObject" 제어기가 제공된다. Named-Range는 범위의 명명을 쉽게 하고, 각 명명된 범위에 대한 고유 명명을 보장할 수 있는 각 스프레드시트의 이름 테이블을 유지하기 위한 메커니즘이다. ListObject는 적용된 데이터 집합의 축소/확장을 자동으로 하는 능력을 포함하는 확장된 데이터 경험을 제공할 수 있도록 설계된 스프 레드시트 범위의 확장이다. Listobject는 ListColumns과 ListRows로 표시되는 행과 열을 포함한다.
컴포넌트 트레이(COMPONENT TRAY)
컴포넌트 트레이(Component Tray)는 애플리케이션을 호스팅할 때 비시각적인 컴포넌트(non-visual component)를 시각화하거나 디스플레이하는 것을 도와준다. 데이터 어댑터 및 관련 컴포넌트들과 같이, 실행 중에 시각적 표시를 갖지 않는 개발 컴포넌트가 있다. 컴포넌트 트레이는 디자인 타임 때에 비시각적인 컴포넌트를시각적으로 인식하고 조작할 수 있도록 하는 메커니즘을 제공한다. 개발자는 드래그와 드롭을 하고, 속성을 편집하고, 컴포넌트들을 시각화할 수 있다. 뷰에 컴포넌트를 추가하는 방법 중 하나는 도구상자에서 컴포넌트를 드래그를 하여 이를 문서 상에 드롭한 다음, 속성을 설정하고, 이들을 삭제하는 것 등이다. 비시각적인 컴포넌트는 문서 뒤의 클래스의 명명된 클래스 멤버 인스턴스(class member instance)가 된다.
트레이는 문서에 비시각적인 컴포넌트가 있으면 나타난다. 비시각적인 컴포넌트가 없으면 트레이는 완전히 사라진다. 사용자가 첫번째 비시각적인 컴포넌트를 뷰에 삽입하면 트레이가 열리고 그 컴포넌트는 트레이로 이동한다. 이어지는 비시각적인 컴포넌트는 시각화된 형태로 또는 직접적으로 트레이로 드롭될 수 있다.
시각화 아이템이 컴포넌트 트레이로 드래그 되면 노 드롭 아이콘(no-drop icon)이 디스플레이되고, 드롭은 아무 작용도 하지 않는다. 그 형태로부터 마지막 비시각적인 컴포넌트가 지워지면 트레이는 없어지고 디자이너로 선택권이 귀환한다. 트레이의 배경은 시스템 창의 배경색이다. 컴포넌트는 트레이의 현재 폭에 맞춰서 자동으로 정렬되며, 따라서 평행 스크롤을 필요로 하지 않는다. 필요하면 수직 스크롤바가 생긴다. 트레이 프레임에 표시될 수 있는 것보다 더 많은 컴포넌트가 추가되면, 수직 스크롤바가 추가된다. 트레이의 왼쪽이나 오른쪽 경계를 벗어나서 컴포넌트가 위치하면 평행 스크롤바가 트레이에 추가된다. 컴포넌트 트레이의 변화는 문서를 혼란스럽게 하지는 않는다.
개시된 아키텍처의 몇 가지 특징을 보면, IDE 도구상자 창은 드래그 및 드롭을 가능하게 하거나 디자이너 면 상에 관리되는 콘트롤의 드로잉(drawing)을 가능하게 한다. 데이터 소스(Data Source) 창은 디자이너 표면상에 관리되는 데이터 컴포넌트와 콘트롤의 드래그 및 드롭을 가능하게 한다. IDE 속성 창은 문서 및 그 위의 컴포넌트들의 속성의 처리를 가능하게 한다. IDE 컴포넌트 트레이 창은 예를 들어 데이터 어댑터와 데이터 커넥터와 같은 문서상에 드롭된 비시각적인 요소들을 호스트한다. 디자이너는 개발자가 문서 뒤의 관리코드와 그 위의 컴포넌트를 쓰게 할 수 있다. Tools/Options 다이얼로그는 IDE 기능의 다양한 범위를 위한 특정 옵션들을 제공한다. 디자이너가 다양한 방법으로 동작하기 위한 유연성을 가능하게 하는 디자이너 호스트된 애플리케이션 각각에 특별한 페이지가 존재할 수 있다. 특별한 페이지는 비관리 애플리케이션이 IDE에서 디자이너로 될 때 사용자가 호출되기를 바라는 우선순위 설정을 포함한다.
문서기반의 디자이너를 위해, 사용자의 경험을 강화시키기 위한 IDE 내에 애 플리케이션 동작을 커스터마이징하는 추가 실시 형태가 있다. 그러한 기능의 한가지 예가 변경된 문서 콘텍스트 메뉴(modified document context menu)이다. 추가로 "View Code" 명령이 문서가 "디자인"되었고 프로그램 될 수 있다는 것을 반영하는 몇 몇 메뉴들에 추가된다. 나아가, 디자인 환경이라는 것을 강조하기 위해, 특별한 "디자이너" 툴바가 호스트된 애플리케이션에 추가된다.
도 6에, 개시된 아키텍처를 실행하기 위해 동작 가능한 컴퓨터의 블록도가 도시되어 있다. 본 발명의 다양한 실시 형태를 위한 추가적인 문맥을 제공하기 위해, 도 6과 이에 따른 설명은 본 발명의 다양한 실시 형태가 실행될 수 있는 적절한 컴퓨팅 환경(600)의 간단하면서도 일반적인 설명을 제공한다. 이상에서 본 발명이 하나이상의 컴퓨터에서 실행될 수 있는 컴퓨터실행 명령어의 일반적인 문맥으로 기술되었지만, 당업자는 본 발명이 다른 프로그램 모듈의 결합 및/또는 하드웨어와 소프트웨어의 결합으로 역시 실행이 가능함을 인식할 수 있다.
일반적으로 프로그램 모듈은 특별한 일을 수행하거나 특별한 추상적인 데이터 유형을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조 등을 포함한다. 또한, 당업자는 이 발명된 방법이 각각이 하나 이상의 관련 장치와 결합하여 동작하는 단일 프로세서 또는 멀티 프로세서 컴퓨터 시스템, 미니 컴퓨터, 메인프레임 컴퓨터, 핸드 헬드(hand-held) 컴퓨팅 디바이스, 마이크로프로세서 기반 또는 프로그램 가능한 소비자 전자 제품 등을 포함하는 다른 컴퓨터 시스템 구성에서도 실시 될 수 있음을 알 수 있다.
본 발명의 도시된 실시 형태는 통신 네트워크로 연결된 원격 처리 장치(remote processing device)에 의해 수행되는 분산형 컴퓨팅 환경(distributed computing environment)에서 실시될 수 있다. 분산형 컴퓨팅 환경에서는 프로그램 모듈이 로컬 메모리 저장 장치 또는 원격 메모리 저장 장치 모두에 위치할 수 있다.
컴퓨터는 통상적으로 컴퓨터 판독 가능(computer-readable) 다양한 매체를 포함한다. 컴퓨터 판독 가능 매체로는, 컴퓨터에 의해 액세스 가능한 모든 이용 가능 매체가 가능하며, 휘발성과 비휘발성, 제거가능 및 제거가능하지 않는 매체를 포함한다. 예를 들어, 컴퓨터로 판독 가능한 매체는 컴퓨터 저장 매체와 통신 매체를 포함할 수 있으나, 이에 한정되지는 않는다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 어떠한 방법이나 기술로 실현된 휘발성과 비휘발성 및 제거가능 및 제거가능하지 않는 매체 모두를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리나 다른 메모리 기술, CD-ROM, DVD나 다른 광학 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 다른 자기 저장 장치 또는 원하는 정보를 저장하는 데 사용할 수 있고 컴퓨터에 의해 접근이 가능한 다른 어떠한 매체를 포함하나 이에 한정되는 것은 아니다.
통신 매체는 통상적으로 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파나 다른 전송 메카니즘에 의해 변조된 데이터 신호 내의 다른 데이터를 구체화하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 하나 이상의 신호의 특성이 신호 내의 정보를 인코딩하는 방법으로 설정 또는 변환된 신호를 의미한다. 예를 들어, 통신 매체는 유선 네트워크나 직접 유선 연결과 같은 유선매체와 초음파, RF, 적외선 및 다른 무선 매체와 같은 무선매체를 포함하나 이에 한정되는 것은 아니다. 컴퓨터 판독 가능 매체의 범위에는 상술한 어떠한 것의 결합도 역시 포함될 수 있다.
도 6을 다시 참조하면, 본 발명의 다양한 실시 형태의 구현을 위해 컴퓨터(602), 프로세싱 유닛(604)을 포함하는 컴퓨터(602), 시스템 메모리(606) 및 시스템 버스(608)로 이루어진 예시적인 환경(600)이 도시되어 있다. 시스템 버스(608)는 시스템 메모리(606)를 포함(그러나 이에 한정되는 것은 아님)하는 시스템 컴포넌트를 프로세싱 유닛(604)에 연결한다. 프로세싱 유닛(604)은 상업적으로 이용이 가능한 여러 프로세서 중 하나이다. 듀얼 마이크로프로세서 및 다른 멀티 프로세서 아키텍처도 프로세싱 유닛(604)으로 사용될 수 있다.
시스템 버스(608)는 상업적으로 이용 가능한 다양한 버스 아키텍처 중 임의의 것을 사용하는 메모리 버스(메모리 컨트롤러를 가지기도 하고 가지지 않기도 함), 주변 버스(peripheral bus) 및 로컬 버스와 상호 연결되는 버스 구조의 여러 형태 중 하나일 수 있다. 시스템 메모리(606)는 읽기 전용 메모리(ROM; 610)와 랜덤 액세스 메모리(RAM; 612)를 포함한다. 기초 입출력 시스템(BIOS)은 ROM, EPROM, EEPROM과 같은 비휘발성 메모리(610)에 저장되며, BIOS는 기동하는 동안 컴퓨터(602) 내의 구성요소들 간의 정보 전달을 돕는 기초적인 루틴을 포함한다. RAM(612)는 또한 데이터 캐싱을 위한 정적(static) RAM과 같은 고속 RAM을 포함 할 수 있다.
컴퓨터(602)는 예를 들어 EIDE, SATA와 같은 내부 하드 디스크 드라이브(HDD; 614)를 더 포함하고, 내부 하드 디스크 드라이브는 외장 사용을 위해 적절한 섀시(chassis; 도시하지 않음) 내에 구성될 수 있으며, 또한 예를 들어 제거가능한 디스켓에 기록하거나 제거가능한 디스켓으로부터 판독할 수 있는 자기 플로피 디스크 드라이브(FDD; 616) 및 예를 들어 CD-ROM 디스크(622)를 판독하거나, DVD와 같은 다른 고성능 광학 매체에 기록하거나 이로부터 판독할 수 있는 광학 디스크 드라이브 (620)를 더 포함한다. 하드 디스크 드라이브(614), 자기 디스크 드라이브(616) 및 광학 디스크 드라이브(620)는 각각 하드 디스크 드라이브 인터페이스(624), 자기 디스크 드라이브 인터페이스(626) 및 광학 드라이브 인터페이스(628)에 의해 시스템 버스(608)에 연결된다. 외장 드라이브 구현을 위한 인터페이스(624)는 범용 직렬 버스(Universal Serial Bus; USB) 및 IEEE 1394 인터페이스 기술 중 적어도 하나 또는 둘 모두를 포함한다.
드라이브들과 드라이브들에 연관되어 있는 컴퓨터 판독 가능 매체는 데이터, 데이터 구조, 컴퓨터 실행 가능 명령어 등의 비휘발성 저장을 제공한다. 컴퓨터(602)를 위해 드라이브 및 매체는 적절한 디지털 포맷으로 된 어떠한 데이터의 저장도 수용한다. 컴퓨터로 판독 가능한 매체로 HDD, 제거가능한 자기 디스켓 및 CD나 DVD와 같은 제거가능한 광학 매체를 상술하였으나, 당업자라면 zip 드라이브, 자기 카세트, 플래시 메모리 카드, 카트리지 등과 같은 다른 유형의 매체들도 컴퓨터로 판독 가능하고, 또한 통상적인 동작 환경에서 사용될 수 있으며, 나아가 그러한 매체들도 본 발명의 방법들을 실행하기 위한 컴퓨터 실행 가능 명령어들을 포함할 수 있다는 것을 인식할 수 있다.
운영체제(630), 하나 이상의 애플리케이션 프로그램(632), 다른 프로그램 모듈(634) 및 프로그램 데이터(636)를 포함하는 많은 프로그램 모듈들은 드라이브와 RAM(612)에 저장될 수 있다. 운영체제, 애플리케이션 모듈, 및/또는 데이터의 전부 또는 일부도 또한 RAM(612)에 캐시될 수 있다.
본 발명은 상업적으로 이용 가능한 다양한 운영체제 또는 운영체제의 결합으로 구현될 수 있다.
사용자는 예를 들어 키보드(638), 및 마우스(640)와 같은 포인팅 디바이스 중 하나 이상의 유/무선 입력 장치를 통해 컴퓨터(602)에 명령어 및 정보를 입력할 수 있다. 다른 입력 장치(도시하지 않음)로는 마이크로폰, IR 원격컨트롤, 조이스틱, 게임 패드, 스타일러스 펜(stylus pen), 터치스크린, 또는 이와 동등한 것이 포함될 수 있다. 이들 입력 장치들은 시스템 버스(608)에 연결되어 있는 입력 장치 인터페이스(642)를 통해 종종 프로세싱 유닛(604)에 연결되지만, 병렬 포트, IEEE 1394 직렬포트, 게임 포트, USB 포트, IR 인터페이스등과 같은 다른 인터페이스에 의해서도연결될 수 있다.
모니터(644)나 다른 종류의 디스플레이 장치도 비디오 어댑터(646)와 같은 인터페이스를 통해 시스템 버스(608)에 연결된다. 모니터(644)와 더불어 컴퓨터는 통상적으로 스피커, 프린터와 같은 다른 주변 출력장치들(도시하지 않음)을 포함한다.
컴퓨터(602)는 원격 컴퓨터(648)와 같은 하나 이상의 원격 컴퓨터에 유선 및/또는 무선 통신을 통한 논리적인 연결을 이용하여 네트워크 환경에서 작동할 수 있다. 원격 컴퓨터(648)는 워크스테이션, 서버 컴퓨터, 라우터, 개인용 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서 기반의 엔터테인먼트 가전, 피어 장치(peer device) 또는 다른 공용 네트워크 노드일 수 있고, 컴퓨터(602)와 관련 되어 기술된 많은 또는 모든 구성요소를 통상적으로 포함하지만, 간략화를 위해 메모리 저장 장치(650)만이 도시되어 있다. 기술한 논리적 연결은 로컬 영역 네트워크(LAN: 652) 및/또는 원거리 통신망(WAN; 654)으로 연결되는 유/무선 연결을 포함한다. 이러한 LAN 및 WAN 네트워크 환경은 사무실이나 회사에서 일반적인 것이며, 인터넷과 같은 글로벌 통신 네트워크로 연결될 수 있는 인트라넷과 같은 전사 컴퓨터 네트워크(enterprise-wide computer network)를 용이하게 한다.
컴퓨터(602)가 LAN 네트워킹 환경에서 사용될 때 컴퓨터(602)는 유선 및/또는 무선 통신 네트워크 인터페이스나 어댑터(656)를 통해 로컬 네트워크(652)에 연결된다. 어댑터(656)는 LAN(652)으로의 유선 또는 무선 통신을 도와주며, 또한 무선 어댑터(656)와 통신을 위해 배치된 무선 액세스 포인트(access point)를 포함할 수 있다. 컴퓨터(602)가 WAN 네트워킹 환경에서 사용될 때 컴퓨터(602)는 모뎀(658)을 포함하거나 LAN 상에서 통신 서버에 연결되어 있거나, 또는 인터넷과 같은 WAN(654)상에서의 통신을 하기 위한 다른 수단을 가지고 있을 수 있다. 모뎀은 내장형 또는 외장형 및 유선 또는 무선 장치이며, 직렬 포트 인터페이스(642)를 통해 시스템 버스(608)에 연결된다. 네트워크 환경에서 컴퓨터(602)에 관해 기술된 프로그램 모듈 또는 그것의 부분은 원격 메모리/저장 장치(650)에 저장될 수 있 다. 도시된 네트워크 연결은 대표적인 예이며, 컴퓨터 간의 통신 연결을 위한 다른 방법도 사용될 수 있다.
컴퓨터(602)는 예를 들어 프린터, 스캐너, 데스크탑 및/또는 휴대용 컴퓨터, 휴대용 데이터 보조기, 통신 위성, 무선 인식 태그와 관련이 있는 어떠한 장치 또는 위치(예를 들어, 키오스크, 신문 가판대, 화장실) 및 전화와 같은 임의의 무선 장치나 무선 통신에 있어서 동작하는 엔티티와의 통신을 위해 동작할 수 있다. 이것은 적어도 Wi-Fi와 BluetoothTM 무선기술을 포함한다. 따라서, 통신은 기존의 네트워크를 이용한 미리 정의된 구조이거나 적어도 두 장치간의 특별한 통신일 수 있다.
Wi-Fi(Wireless Fidelity)는 집의 소파, 호텔방의 침대, 직장의 회의실에서 무선으로 인터넷으로의 접속을 가능하게 한다. Wi-Fi는 휴대폰과 같은 무선기술로서, 예를 들어 컴퓨터와 같은 장치들이 기지국의 범위내의 어디에서든 데이터를 내부와 외부로 송수신할 수 있게 하는 기술이다. Wi-Fi 네트워크는 안전하고 믿을 수 있으며 빠른 무선 연결을 위한 IEEE 802.11(a,b,g 등)로 불리는 무선 통신 기술을 사용한다. Wi-Fi 네트워크는 컴퓨터들을 서로 연결하거나,, 인터넷에 연결하거나, 그리고 IEEE802.3이나 이더넷을 사용하는 유선 네트워크에 연결하는 데에 사용될 수 있다. Wi-Fi 네트워크는 11Mbps(802.11b) 또는 54Mbps(802.11a)의 데이터 레이트를 가지거나 두 대역(듀얼 밴드)을 모두 가진 제품에 의해 비인가된 2.4 및 5GHz 주파수 대역에서 동작하며, 많은 사무실에서 사용되는 기본 10 BaseT의 유선 이더넷 네트워크와 비슷한 현실세계 성능을 제공할 수 있다.
도 7을 참조하면, 본 발명에 따른 대표적인 컴퓨팅 환경(700)의 모식적인 블록도가 도시되어 있다. 시스템(700)은 하나 이상의 클라이언트(702)를 포함한다. 클라이언트(702)는 쓰레드(thread), 프로세스, 컴퓨팅 장치와 같은 하드웨어 및/또는 소프트웨어일 수 있다. 예를 들어, 클라이언트(702)는 본 발명을 이용해 쿠키(cookie(s)) 및/또는 관련 콘텍스트 정보를 보유할 수 있다. 시스템(700)은 하나 이상의 서버(704)를 포함한다. 서버(704)는 쓰레드, 프로세스, 컴퓨팅 장치와 같은 하드웨어 및/또는 소프트웨어일 수 있다. 예를 들어, 서버(704)는 본 발명을 이용해 변환을 수행하기 위한 쓰레드를 보유 할 수 있다. 클라이언트(702)와 서버(704)사이의 하나의 가능한 통신은 두 가지 또는 그 이상의 컴퓨터 프로세스사이에서 전달될 수 있도록 조정된 데이터 패킷의 형태일 수 있다. 데이터 패킷은 예를 들어 쿠키 및/또는 관련 콘텍스트 정보를 포함할 수 있다. 시스템(700)은 클라이언트(702)와 서버(704)간의 통신을 돕기 위해 도입된 인터넷과 같은 글로벌 통신 네트워크를 포함할 수 있다.
통신은 유선(광섬유를 포함함) 및/또는 무선 기술에 의해 촉진될 수 있다. 클라이언트(702)는 쿠키 및/또는 관련 콘텍스트 정보와 같이 클라이언트에 한정적인정보를 저장하기 위해 사용될 수 있는 하나 이상의 클라이언트 데이터 스토어(708)에 동작이 가능하게 연결되어 있다. 유사하게, 서버(704)는 서버에 한정적인 정보를 저장하기 위해 사용될 수 있는 하나 이상의 서버 데이터 스토어(710)에 동작이 가능하게 연결되어 있다.
이상에서 기술한 것은 본 발명의 예들을 포함한다. 본 발명을 기술함에 있어 구성 요소 및 방법들의 모든 고안 가능한 조합들을 기술하는 것은 당연히 불가능하지만, 당업자는 본 발명의 추가적인 조합이나 치환이 가능함을 인식할 것이다. 따라서, 본 발명은 첨부된 청구범위의 사상 및 범위 안에서의 모든 치환, 수정 및 변경을 포함한다.
본 발명에 따르면, 개발자 및 사용자가 IDE의 기능뿐만 아니라 비관리 응용프로그램의 기능까지 사용할 수 있도록 할 수 있으며, 개발환경과 호스트된 애플리케이션간의 견고한 통합을 통해 IDE와 상호 작용하는 디자이너를 만들 수 있다.

Claims (34)

  1. 하나 이상의 애플리케이션 또는 프로세스를 개발하기 위해 개선된 소프트웨어 통합 개발 환경의 이용을 용이하게 하는 컴퓨터 시스템으로서,
    프로세서; 및
    상기 통합 개발 환경의 컴포넌트들을 저장하는 컴퓨터 판독가능 기억 매체
    를 포함하고,
    상기 통합 개발 환경의 컴포넌트들은,
    하나 이상의 메뉴 아이템의 선택에 대응하는 하나 이상의 고유(native) 기능을 가지며, 상기 통합 개발 환경 내에서 호스팅되는 비관리 애플리케이션(unmanaged application)과 인터페이스하는 호스팅 컴포넌트;
    상기 통합 개발 환경의 디자이너 기능(capabilities)에 대한 사용자 액세스 및 인터페이스들을 제공하는 디자이너 프레임워크 - 상기 호스팅 컴포넌트 및 디자이너 프레임워크는 상기 비관리 애플리케이션이 상기 통합 개발 환경 내에서 디자이너로서 기능하도록 인터페이스함 - ; 및
    상기 비관리 애플리케이션에 고유한 애플리케이션인 호스트 어댑터 - 상기 호스트 어댑터는, 상기 통합 개발 환경 또는 상기 비관리 애플리케이션 중 어느 것이 포커스되었는지를 적어도 판정하고, 상기 판정에 기초하여 상기 비관리 애플리케이션의 적어도 하나의 통합(merged) 메뉴 아이템을 활성화(enable)하고 적어도 하나의 다른 통합 메뉴 아이템을 비활성화(disable)함으로써, 상기 비관리 애플리케이션의 적어도 하나의 메뉴를 상기 통합 개발 환경의 적어도 하나의 메뉴와 통합하며, 상기 통합 개발 환경이 포커스된 것으로 판정된 경우에는, 상기 통합 개발 환경의 적어도 하나의 메뉴 아이템을 활성화시키면서 상기 비관리 애플리케이션의 적어도 하나의 메뉴 아이템은 비활성화될 것이며, 상기 비관리 애플리케이션이 포커스된 것으로 판정된 경우에는, 상기 비관리 애플리케이션의 적어도 하나의 메뉴 아이템을 활성화시키면서 상기 통합 개발 환경의 적어도 하나의 메뉴 아이템은 비활성화될 것이며, 상기 호스트 어댑터는 상기 비관리 애플리케이션의 하나 이상의 동작들 중 적어도 하나를 수정하기 위한 기능을 더 제공함 -
    를 포함하는 컴퓨터 시스템.
  2. 제1항에 있어서,
    상기 호스팅 컴포넌트는 객체 링킹 및 내장(OLE; object linking and embedding) 기술을 지원하는 컴퓨터 시스템.
  3. 제1항에 있어서,
    상기 비관리 애플리케이션은 워드 프로세싱 애플리케이션 또는 스프레드시트 애플리케이션 중 적어도 하나를 포함하는 컴퓨터 시스템.
  4. 제1항에 있어서,
    상기 통합 개발 환경의 디자이너로서 제3자(third party) 비관리 애플리케이션의 통합을 용이하게 하기 위한 통합 인터페이스를 더 포함하는 컴퓨터 시스템.
  5. 제1항에 있어서,
    상기 통합 개발 환경에서 조작될 수 있는 문서의 호스팅을 용이하게 하는 문서 호스팅 서브컴포넌트(document-hosting subcomponent)를 더 포함하는 컴퓨터 시스템.
  6. 제5항에 있어서,
    상기 문서는 상기 비관리 애플리케이션 및 상기 통합 개발 환경 중 적어도 하나를 사용하여 조작될 수 있는 컴퓨터 시스템.
  7. 제5항에 있어서,
    상기 문서는 새로운 문서 또는 기존의 문서 중 하나인 컴퓨터 시스템.
  8. 제1항에 있어서,
    복수의 서로 다른 비관리 애플리케이션의 호스팅을 가능하게 하는 컴퓨터 시스템.
  9. 제1항에 있어서,
    상기 통합 개발 환경에서 비시각적인 데이터(non-visual data)의 표시(presenting)를 용이하게 하는 트레이 컴포넌트(tray component)를 더 포함하는 컴퓨터 시스템.
  10. 제5항에 있어서,
    상기 문서에 대한 콘트롤의 추가 및 상기 콘트롤의 속성의 편집을 용이하게 하는 컴퓨터 시스템.
  11. 제5항에 있어서,
    상기 문서는 내장된 객체 또는 링크된 객체 중 적어도 하나를 포함하는 컴퓨터 시스템.
  12. 제1항에 있어서,
    코드 비하인드 프로젝트 아이템들(code-behind project items)에 대한 속성을 표시하는 속성 창의 표시를 용이하게 하는 컴퓨터 시스템.
  13. 제5항에 있어서,
    상기 디자이너는 이진 포맷 또는 XML(Extensible Markup Language) 포맷 중 적어도 하나의 포맷으로 상기 문서를 처리할 수 있는 컴퓨터 시스템.
  14. 제5항에 있어서,
    상기 문서 상에 콘트롤의 드래그 및 드롭 동작을 수행하는 것;
    상기 문서와 관련된 데이터 비하인드 파일(data-behind file)을 보는 것;
    상기 데이터 비하인드 파일에 관리 코드를 기입하는 것;
    상기 디자이너를 디자인 모드 및 런타임 모드에서 동작시키는 것;
    비시각적인 데이터를 표시하는 것; 또는
    상기 문서 상에 관리 오브젝트들을 드로잉하는 것
    중 적어도 하나에 의해 상기 문서를 조작(manipulating)하는 것을 더 포함하는 컴퓨터 시스템.
  15. 제7항에 있어서,
    조작을 위해 상기 문서의 속성 및 컴포넌트를 노출시키는 것을 더 포함하는 컴퓨터 시스템.
  16. 비관리 애플리케이션을 IDE(Integrated development environment; 통합 개발 환경)로 통합하는 방법으로서,
    상기 비관리 애플리케이션이 상기 IDE의 디자이너로서 액세스 가능하도록, 상기 비관리 애플리케이션을 상기 비관리 애플리케이션에 고유한 호스트 어댑터를 갖는 상기 IDE로 인터페이스하는 단계;
    상기 호스트 어댑터가, 상기 비관리 애플리케이션의 적어도 하나의 메뉴를 상기 IDE의 적어도 하나의 메뉴와 통합하는 단계 - 상기 통합은, 상기 IDE가 포커스되었는지 또는 상기 비관리 애플리케이션이 포커스되었는지의 판정에 응답하여, 상기 판정의 결과에 기초하여 적어도 하나의 통합 메뉴 아이템을 활성화하고 적어도 하나의 다른 통합 메뉴 아이템을 비활성화함으로써 수행되며, 상기 통합 개발 환경이 포커스된 것으로 판정된 경우에는, 상기 통합 개발 환경의 적어도 하나의 메뉴 아이템을 활성화시키면서 상기 비관리 애플리케이션의 적어도 하나의 메뉴 아이템은 비활성화될 것이며, 상기 비관리 애플리케이션이 포커스된 것으로 판정된 경우에는, 상기 비관리 애플리케이션의 적어도 하나의 메뉴 아이템을 활성화시키면서 상기 통합 개발 환경의 적어도 하나의 메뉴 아이템은 비활성화될 것임 - ;
    상기 비관리 애플리케이션이 상기 IDE 내에서 호스팅되는 경우, 상기 호스트 어댑터가, 상기 비관리 애플리케이션의 적어도 하나의 동작을 수정하기 위한 기능을 제공하는 단계; 및
    상기 IDE 내의 문서를 호스팅하여, 상기 IDE 및 상기 비관리 애플리케이션의 기능이 상기 문서를 조작하는 데 사용될 수 있도록 하는 단계
    를 포함하는 방법.
  17. 제16항에 있어서,
    상기 문서 상에 콘트롤의 드래그 및 드롭 동작을 수행하는 것;
    상기 문서와 관련된 데이터 비하인드 파일을 보는 것;
    상기 데이터 비하인드 파일에 관리 코드를 기입하는 것;
    상기 디자이너를 디자인 모드 및 런타임 모드에서 동작시키는 것;
    비시각적인 데이터를 표시하는 것; 또는
    상기 문서 상에 관리 오브젝트들을 드로잉하는 것
    중 적어도 하나에 의해 상기 문서를 조작하는 단계를 더 포함하는 방법.
  18. 제16항에 있어서,
    상기 IDE에 통합될 때에, 상기 비관리 애플리케이션이 우선순위 설정에 따라 거동하도록, 상기 비관리 애플리케이션에 우선순위 설정의 특별 페이지를 제공하는 단계를 더 포함하는 방법.
  19. 실행 시에, 제16항의 방법을 구현하는 컴퓨터 실행가능 명령어들을 저장한 컴퓨터 판독가능 기억 매체.
  20. 제19항에 있어서,
    상기 방법은, 파일의 콘텐츠가 조작될 수 있도록, 상기 문서와 관련된 코드 비하인드 파일을 노출시키는 단계를 더 포함하는 컴퓨터 판독가능 기억 매체.
  21. 제19항에 있어서,
    상기 방법은, 각각의 파일의 콘텐츠가 조작될 수 있도록, 상기 문서의 각각의 서브문서와 관련된 코드 비하인드 파일을 노출시키는 단계를 더 포함하는 컴퓨터 판독가능 기억 매체.
  22. 제19항에 있어서,
    상기 방법은, 이벤트에 응답하여 트리거하는 뷰 콘트롤을 제공하는 단계를 더 포함하는 컴퓨터 판독가능 기억 매체.
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
KR1020050011645A 2004-02-13 2005-02-11 통합 개발 환경에서 디자이너로서 호스트된 애플리케이션 KR101149993B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/779,298 US7676785B2 (en) 2004-02-13 2004-02-13 Hosted application as a designer in an integrated development environment
US10/779,298 2004-02-13

Publications (2)

Publication Number Publication Date
KR20060041873A KR20060041873A (ko) 2006-05-12
KR101149993B1 true KR101149993B1 (ko) 2012-06-01

Family

ID=34750449

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050011645A KR101149993B1 (ko) 2004-02-13 2005-02-11 통합 개발 환경에서 디자이너로서 호스트된 애플리케이션

Country Status (5)

Country Link
US (1) US7676785B2 (ko)
EP (1) EP1571548A3 (ko)
JP (1) JP2005228345A (ko)
KR (1) KR101149993B1 (ko)
CN (1) CN1655120B (ko)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7954088B2 (en) * 2005-03-23 2011-05-31 Microsoft Corporation Method and apparatus for executing unit tests in application host environment
US8799857B2 (en) 2005-04-29 2014-08-05 Microsoft Corporation XML application framework
US20060245096A1 (en) * 2005-04-29 2006-11-02 Microsoft Corporation Application framework phasing model
US8132148B2 (en) 2005-04-29 2012-03-06 Microsoft Corporation XML application framework
US8601383B2 (en) 2005-09-09 2013-12-03 Microsoft Corporation User interface for creating a spreadsheet data summary table
US8095866B2 (en) 2005-09-09 2012-01-10 Microsoft Corporation Filtering user interface for a data summary table
US7627812B2 (en) 2005-10-27 2009-12-01 Microsoft Corporation Variable formatting of cells
US7770100B2 (en) 2006-02-27 2010-08-03 Microsoft Corporation Dynamic thresholds for conditional formats
US7530079B2 (en) 2006-09-07 2009-05-05 Microsoft Corporation Managing application customization
US20080127055A1 (en) * 2006-09-07 2008-05-29 Microsoft Corporation Application proxy
US8850388B2 (en) * 2006-09-07 2014-09-30 Microsoft Corporation Controlling application features
US7908580B2 (en) * 2006-09-07 2011-03-15 Microsoft Corporation Connecting an integrated development environment with an application instance
TW200821926A (en) * 2006-11-07 2008-05-16 Sunplus Technology Co Ltd Method and system for function reference of development tool
US20080307446A1 (en) * 2007-06-08 2008-12-11 Microsoft Corporation Interoperable Managed and Unmanaged Code in a Document Environment
WO2009078611A2 (en) * 2007-12-17 2009-06-25 Electronics And Telecommunications Research Institute Method for providing integrated application management
KR100962403B1 (ko) * 2007-12-17 2010-06-10 한국전자통신연구원 통합 소프트웨어 관리 시스템 및 방법
US9747270B2 (en) 2011-01-07 2017-08-29 Microsoft Technology Licensing, Llc Natural input for spreadsheet actions
US9069583B2 (en) 2010-09-30 2015-06-30 Microsoft Technology Licensing, Llc Designer extensibility
US9053083B2 (en) * 2011-11-04 2015-06-09 Microsoft Technology Licensing, Llc Interaction between web gadgets and spreadsheets
CN102591663A (zh) * 2011-12-30 2012-07-18 深圳市万兴软件有限公司 一种基于多文档框架实现单文档控制的方法和装置
US9171099B2 (en) 2012-01-26 2015-10-27 Microsoft Technology Licensing, Llc System and method for providing calculation web services for online documents
CN102902532B (zh) * 2012-09-13 2015-07-01 福建升腾资讯有限公司 一种集成开发环境中工具链转换扩展方法
US9465586B2 (en) * 2013-02-27 2016-10-11 Google Inc. Third party application scriptability
BR112015023053A2 (pt) 2013-03-15 2017-07-18 Beulah Works Llc sistema para captura de conhecimento e descoberta
US10664652B2 (en) 2013-06-15 2020-05-26 Microsoft Technology Licensing, Llc Seamless grid and canvas integration in a spreadsheet application
US9524287B2 (en) 2013-09-20 2016-12-20 Oracle International Corporation Model-driven tooltips in excel
US9183692B2 (en) * 2013-10-04 2015-11-10 Fire King Security Products, Llc Secure storage apparatus
US9948700B2 (en) 2014-07-01 2018-04-17 Oracle International Corporation ADFDI support for custom attribute properties
US10127206B2 (en) 2014-07-16 2018-11-13 Oracle International Corporation Dynamic column groups in excel
US10048948B2 (en) 2015-07-06 2018-08-14 Oracle International Corporation Optimized retrieval of custom string resources
US11102313B2 (en) 2015-08-10 2021-08-24 Oracle International Corporation Transactional autosave with local and remote lifecycles
US10582001B2 (en) 2015-08-11 2020-03-03 Oracle International Corporation Asynchronous pre-caching of synchronously loaded resources
US10452497B2 (en) 2015-08-14 2019-10-22 Oracle International Corporation Restoration of UI state in transactional systems
US10419514B2 (en) 2015-08-14 2019-09-17 Oracle International Corporation Discovery of federated logins
US10013668B2 (en) 2015-08-14 2018-07-03 Oracle International Corporation Secure storage of enterprise certificates for cloud services
US10582012B2 (en) 2015-10-16 2020-03-03 Oracle International Corporation Adaptive data transfer optimization
CA3002517C (en) * 2015-10-20 2022-06-21 Viasat, Inc. Hint model updating using automated browsing clusters
US10341410B2 (en) 2016-05-11 2019-07-02 Oracle International Corporation Security tokens for a multi-tenant identity and data security management cloud service
US9838377B1 (en) 2016-05-11 2017-12-05 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
US10454940B2 (en) 2016-05-11 2019-10-22 Oracle International Corporation Identity cloud service authorization model
US10878079B2 (en) 2016-05-11 2020-12-29 Oracle International Corporation Identity cloud service authorization model with dynamic roles and scopes
US10425386B2 (en) 2016-05-11 2019-09-24 Oracle International Corporation Policy enforcement point for a multi-tenant identity and data security management cloud service
US10581820B2 (en) 2016-05-11 2020-03-03 Oracle International Corporation Key generation and rollover
US10530578B2 (en) 2016-08-05 2020-01-07 Oracle International Corporation Key store service
US10721237B2 (en) 2016-08-05 2020-07-21 Oracle International Corporation Hierarchical processing for a virtual directory system for LDAP to SCIM proxy service
US10735394B2 (en) 2016-08-05 2020-08-04 Oracle International Corporation Caching framework for a multi-tenant identity and data security management cloud service
US10585682B2 (en) 2016-08-05 2020-03-10 Oracle International Corporation Tenant self-service troubleshooting for a multi-tenant identity and data security management cloud service
US10255061B2 (en) 2016-08-05 2019-04-09 Oracle International Corporation Zero down time upgrade for a multi-tenant identity and data security management cloud service
US10263947B2 (en) 2016-08-05 2019-04-16 Oracle International Corporation LDAP to SCIM proxy service
US10516672B2 (en) 2016-08-05 2019-12-24 Oracle International Corporation Service discovery for a multi-tenant identity and data security management cloud service
US10484382B2 (en) 2016-08-31 2019-11-19 Oracle International Corporation Data management for a multi-tenant identity cloud service
US10594684B2 (en) 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
US10511589B2 (en) 2016-09-14 2019-12-17 Oracle International Corporation Single logout functionality for a multi-tenant identity and data security management cloud service
US10846390B2 (en) 2016-09-14 2020-11-24 Oracle International Corporation Single sign-on functionality for a multi-tenant identity and data security management cloud service
US10484243B2 (en) 2016-09-16 2019-11-19 Oracle International Corporation Application management for a multi-tenant identity cloud service
WO2018053258A1 (en) 2016-09-16 2018-03-22 Oracle International Corporation Tenant and service management for a multi-tenant identity and data security management cloud service
US10341354B2 (en) 2016-09-16 2019-07-02 Oracle International Corporation Distributed high availability agent architecture
US10567364B2 (en) 2016-09-16 2020-02-18 Oracle International Corporation Preserving LDAP hierarchy in a SCIM directory using special marker groups
US10445395B2 (en) 2016-09-16 2019-10-15 Oracle International Corporation Cookie based state propagation for a multi-tenant identity cloud service
US10791087B2 (en) 2016-09-16 2020-09-29 Oracle International Corporation SCIM to LDAP mapping using subtype attributes
US10904074B2 (en) 2016-09-17 2021-01-26 Oracle International Corporation Composite event handler for a multi-tenant identity cloud service
US10261836B2 (en) 2017-03-21 2019-04-16 Oracle International Corporation Dynamic dispatching of workloads spanning heterogeneous services
US10454915B2 (en) 2017-05-18 2019-10-22 Oracle International Corporation User authentication using kerberos with identity cloud service
US10348858B2 (en) 2017-09-15 2019-07-09 Oracle International Corporation Dynamic message queues for a microservice based cloud service
US10831789B2 (en) 2017-09-27 2020-11-10 Oracle International Corporation Reference attribute query processing for a multi-tenant cloud service
US10834137B2 (en) 2017-09-28 2020-11-10 Oracle International Corporation Rest-based declarative policy management
US11271969B2 (en) 2017-09-28 2022-03-08 Oracle International Corporation Rest-based declarative policy management
US10705823B2 (en) 2017-09-29 2020-07-07 Oracle International Corporation Application templates and upgrade framework for a multi-tenant identity cloud service
US10715564B2 (en) 2018-01-29 2020-07-14 Oracle International Corporation Dynamic client registration for an identity cloud service
US10931656B2 (en) 2018-03-27 2021-02-23 Oracle International Corporation Cross-region trust for a multi-tenant identity cloud service
US10798165B2 (en) 2018-04-02 2020-10-06 Oracle International Corporation Tenant data comparison for a multi-tenant identity cloud service
US11165634B2 (en) 2018-04-02 2021-11-02 Oracle International Corporation Data replication conflict detection and resolution for a multi-tenant identity cloud service
US11258775B2 (en) 2018-04-04 2022-02-22 Oracle International Corporation Local write for a multi-tenant identity cloud service
US11012444B2 (en) 2018-06-25 2021-05-18 Oracle International Corporation Declarative third party identity provider integration for a multi-tenant identity cloud service
US10764273B2 (en) 2018-06-28 2020-09-01 Oracle International Corporation Session synchronization across multiple devices in an identity cloud service
US11693835B2 (en) 2018-10-17 2023-07-04 Oracle International Corporation Dynamic database schema allocation on tenant onboarding for a multi-tenant identity cloud service
US11321187B2 (en) 2018-10-19 2022-05-03 Oracle International Corporation Assured lazy rollback for a multi-tenant identity cloud service
US11651357B2 (en) 2019-02-01 2023-05-16 Oracle International Corporation Multifactor authentication without a user footprint
US11061929B2 (en) 2019-02-08 2021-07-13 Oracle International Corporation Replication of resource type and schema metadata for a multi-tenant identity cloud service
US11321343B2 (en) 2019-02-19 2022-05-03 Oracle International Corporation Tenant replication bootstrap for a multi-tenant identity cloud service
US11669321B2 (en) 2019-02-20 2023-06-06 Oracle International Corporation Automated database upgrade for a multi-tenant identity cloud service
US11792226B2 (en) 2019-02-25 2023-10-17 Oracle International Corporation Automatic api document generation from scim metadata
US11423111B2 (en) 2019-02-25 2022-08-23 Oracle International Corporation Client API for rest based endpoints for a multi-tenant identify cloud service
US11687378B2 (en) 2019-09-13 2023-06-27 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability
US11870770B2 (en) 2019-09-13 2024-01-09 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration
US11611548B2 (en) 2019-11-22 2023-03-21 Oracle International Corporation Bulk multifactor authentication enrollment
CN112835652A (zh) 2019-11-25 2021-05-25 杭州中天微系统有限公司 数据交互方法及装置
CN111158645B (zh) 2019-12-10 2022-09-20 杭州中天微系统有限公司 提供集成开发环境的系统和方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5995756A (en) 1997-02-14 1999-11-30 Inprise Corporation System for internet-based delivery of computer applications
US6044217A (en) 1997-03-27 2000-03-28 International Business Machines Corporation Hierarchical metadata store for an integrated development environment
US20040003371A1 (en) 2002-06-26 2004-01-01 International Business Machines Corporation Framework to access a remote system from an integrated development environment

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1059981A (zh) * 1988-12-30 1992-04-01 惠普公司 为容纳进一对象管理设备环境的应用程序的封装
US5862379A (en) * 1995-03-07 1999-01-19 International Business Machines Corporation Visual programming tool for developing software applications
US6230173B1 (en) * 1995-07-17 2001-05-08 Microsoft Corporation Method for creating structured documents in a publishing system
US5950000A (en) * 1996-12-06 1999-09-07 Sun Microsystems, Inc. Integrated of a third party software tool
US5956036A (en) * 1997-03-31 1999-09-21 International Business Machines Corporation Shared modules graphical user interface
US5987247A (en) * 1997-05-09 1999-11-16 International Business Machines Corporation Systems, methods and computer program products for building frameworks in an object oriented environment
US6384849B1 (en) * 1997-07-14 2002-05-07 Microsoft Corporation Method for displaying controls in a system using a graphical user interface
US6434740B1 (en) * 1998-07-15 2002-08-13 International Business Machines Corporation Apparatus and method for visual construction simplification
WO2000067121A1 (en) * 1999-04-29 2000-11-09 Rutgers University Distributed software development environment
US6880126B1 (en) * 1999-08-03 2005-04-12 International Business Machines Corporation Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data
US7289964B1 (en) * 1999-08-31 2007-10-30 Accenture Llp System and method for transaction services patterns in a netcentric environment
US7020697B1 (en) * 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems
US6944829B2 (en) * 2001-09-25 2005-09-13 Wind River Systems, Inc. Configurable user-interface component management system
US7110991B2 (en) * 2002-03-07 2006-09-19 International Business Machines Corporation IDE integration with JDBC

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5995756A (en) 1997-02-14 1999-11-30 Inprise Corporation System for internet-based delivery of computer applications
US6044217A (en) 1997-03-27 2000-03-28 International Business Machines Corporation Hierarchical metadata store for an integrated development environment
US20040003371A1 (en) 2002-06-26 2004-01-01 International Business Machines Corporation Framework to access a remote system from an integrated development environment

Also Published As

Publication number Publication date
EP1571548A2 (en) 2005-09-07
CN1655120B (zh) 2010-05-26
JP2005228345A (ja) 2005-08-25
EP1571548A3 (en) 2005-09-14
KR20060041873A (ko) 2006-05-12
US7676785B2 (en) 2010-03-09
CN1655120A (zh) 2005-08-17
US20050183059A1 (en) 2005-08-18

Similar Documents

Publication Publication Date Title
KR101149993B1 (ko) 통합 개발 환경에서 디자이너로서 호스트된 애플리케이션
US6121968A (en) Adaptive menus
US8762936B2 (en) Dynamic design-time extensions support in an integrated development environment
KR101330369B1 (ko) 리치 드래그 드롭 사용자 인터페이스
US5623591A (en) System and methods for building spreadsheet applications
KR100986415B1 (ko) 커맨드 바인딩을 수행하기 위한 데이터-바인딩 매카니즘의 애플리케이션
KR101331315B1 (ko) 리치 드래그 드롭 사용자 인터페이스
KR101120681B1 (ko) 메타데이터 편집 제어 방법 및 시스템
JP4864443B2 (ja) ツリービューベースエディタでのインラインプロパティ編集のシステムおよび方法
MacDonald et al. Pro ASP. NET 4 in VB 2010
US8386919B2 (en) System for displaying an annotated programming file
US20050188174A1 (en) Extensible creation and editing of collections of objects
US10621271B2 (en) Reordering a multi-level layout using a hierarchical tree
WO2009046140A2 (en) System and method for generating an application fragment
KR20100017302A (ko) 다중 입력 컨트롤의 선택적인 활성화
JP2001092914A (ja) 異なるモードによるセル名前付き範囲内の新しい要素の導入のための電子スプレッドシート内の方法およびシステム
KR20080033946A (ko) 제어판 프레임워크
KR100562905B1 (ko) 어플리케이션 프로그램 모듈의 동적 배치 방법
EP2199924B1 (en) Multiple document displaying for viewing and editing
EP3262528A1 (en) Analysis view for pivot table interfacing
US20050183034A1 (en) Menu management in an OLE document environment
US20050091641A1 (en) System and method for modifying a host user interface
US20060271854A1 (en) Computer application with integrated information management
CN115390720A (zh) 包括自动文档滚动的机器人过程自动化(rpa)
Troelsen et al. WPF Controls, Layouts, Events, and Data Binding

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee