2012-05-02 2 views
1

우리는 오픈 소셜 가제트를 구현하려고합니다. 그것들은 Facebook이나 다른 소셜 네트워크에서 실행되는 것이 아니라 내부 Apache Shindig 서버에서 실행될 것입니다.Visual Studio 내에서 오픈 소셜 가젯 개발

<?xml version="1.0" encoding="UTF-8" ?> 
<Module> 
    <ModulePrefs title="Hello World!"> 
    <Require feature="opensocial-0.8" /> 
    </ModulePrefs> 
    <Content type="html"> 
    <![CDATA[ 
     Hello, world! 
    ]]> 
    </Content> 
</Module> 

되는 HTML, CSS와 JS가 매립 반면 :

http://docs.opensocial.org/display/OSREF/OpenSocial+Tutorial 따르면, 가제트의 구조가 매우 비슷 (우리는 통상 ASP.NET MVC의 cshtml보기 iframe을 이용하여 이들 기기를 포함) 에서 태그 안에. Visual Studio에서 이와 같은 파일을 XML 형식으로 개발하려는 경우 Syntax Highlighting, IntelliSense, IntelliTrace 및 JavaScript 디버깅을 불가능하게 만듭니다. 그다지 편안하지 않습니다.

질문 1 : Visual Studio에서 이러한 OpenSocial XML 가젯에 대해 모든 기능을 다시 사용할 수있는 확장 (?)을 알고 계십니까?

질문 2 : 그렇지 않다면 혹시라도 같은 것을 시도해 본 후 이러한 장애물을 해결할 수있는 좋은 방법을 찾았습니까?


업데이트 : 우리는 개념 증명 일반 HTML 파일, 일반 JS 파일 및 XML 골격을 받아 가제트로 병합 후 빌드 단계를 사용했을. 배포 과정에서 우리가 포스트 빌드 단계에서 병합 된 XML 파일로 떠들썩한 모임을 호출 할 때 디버그 모드에서 우리는 생각할 직접 일반 파일을 포함 할 수 있습니다 :

if (@Html.IsDebugMode()) 
{ 
    <iframe src="/Gadgets/HelloWorld.html"/> 
} 
else 
{ 
    <iframe src="http://example.org/shindig?url=http://example.org/Gadgets/Merged/HelloWorld.xml"/> 
} 

이 솔루션이 작동하는 방법이다 :

  1. Gadgets \ HelloWorld.js 파일 추가
  2. js 파일을 포함하는 Gadgets \ HelloWorld.html 파일을 추가하십시오.
  3. Gadgets \ HelloWorld.xml 파일을 가젯 XML과 함께 추가하지만 빈 <Content> 태그가 포함 된 파일을 추가하십시오.
  4. 일반 HTML 파일을 디버그 모드에 포함하고 릴리스 모드의 가젯을 포함하는 iframe을 사용하여 CSHTML 페이지를 만듭니다.
  5. HelloWorld.html의 내용을 읽고이를 XML의 Content 태그에 붙여 넣는 Post Build Event를 정의하십시오. 또한 JS 파일에서 JS 코드를 읽고 인라인 JavaScript <script>...</script>에 의해 HTML에 포함 된 스크립트 <script src="HelloWorld.js" />을 해당 코드로 바꿉니다.

장점 : 논리의

  • 청소 분리 (JS 파일), 프리젠 테이션 (HTML 파일) 및 메타 데이터 (XML 파일).
  • HTML에서 작업 할 때 Visual Studio HTML 제작 지원을 완료하십시오.
  • JS에서 작업 할 때 완벽한 자바 스크립트 저작 지원.
  • JSLint와 같은 도구를 사용하여 JavaScript 스타일을 확인할 수 있습니다.

주의 사항 : 우리가 가젯을 렌더링하는 떠들썩한 모임을 호출하는 경우

  • 디버그 모드에서, 우리는 Visual Studio 및 브레이크 포인트 설정에서 자바 스크립트를 열 수있는 방법이 없습니다. 그러나 JS 코드에서 오류가 발생하면 Visual Studio에서 JS 코드에 대한보기를 열고 오류 라인을 표시합니다. 뷰가 열리면 중단 점을 설정하는 데 사용할 수 있습니다. 원본 JS 파일은 빌드 프로세스 중에 XML에 병합되기 때문에 실시간 편집은 불가능합니다.
  • 반면에 Shindig 렌더링 대신 일반 HTML 파일을 iframe으로 포함 시키면 해당 파일에서 직접 라이브 편집 및 디버깅 할 수 있습니다. 물론 모든 Shindig 기능은 효과적이지 않습니다. 특히 Shindig에서 자동으로 추가 한 모든 스크립트가 누락되었거나 직접 포함시켜야합니다.

이상적으로 HTML이나 JS 파일의 모든 변경 사항을 즉시 병합 된 가젯 XML 파일을 업데이트 디버그 모드에서 응용 프로그램을 실행하는 떠들썩한 모임을 사용하는 경우, 따라서 심지어 삶의 편집을 허용하면서.

답변

-1

A2 : 분리 된 js 파일로 자바 스크립트를 개발하고 js include가 포함 된 html 파일에서와 같이 가젯 xml에 자바 스크립트를 포함 할 수 있습니다. 더 나아가 가제트 html 내부의 프레임을 사용할 수는 있지만 Shindig에서 제공하는 js API를 사용할 수 없게 될 수도 있습니다.

+0

안녕하세요 user1371592. 가제트 html 내부의 프레임과 관련된 구체적인 문제는 무엇입니까? – chiccodoro