2011-02-13 7 views
2

사용자가 코드를 붙여넣고 미리 설정된 언어 (C#, VB.NET, Python, Ruby 등) 중 하나를 선택하는 ASP.NET 페이지에 텍스트 상자가 있어야합니다. 코드가 성공적으로 컴파일되는지 확인해야합니다. 그렇지 않으면 줄 번호로 오류 및 경고를 표시해야합니다.ASP.NET 웹 사이트의 코드 컴파일

어떻게해야합니까?

답변

6

지원하려는 모든 종류의 컴파일러를 호스팅하고 해당 API를 사용해야합니다. 컴파일러가 API를 공개하지 않으면 System.Diagnostics.Process을 사용하여이를 실행하고 구문 분석을 위해 출력을 가져와야합니다.

이것은 사소한 작업과는 거리가 멀다.
필요한 경우 자신에게 몇 가지 질문하십시오.

  • 지원할 언어, 플랫폼 및 언어는 무엇입니까? 파이썬과 루비, 당신은 그 .NET 버전을 의미합니까, 아니면 표준 컴파일러를 사용하고 싶습니까? 어떤 버전입니까?
  • 이 컴파일러에는 공개 API가 있습니까? 실행 파일로 실행해야합니까?
  • 사이트를 여러 사용자가 동시에 사용하려는 경우 어떻게 부하를 분산시킬 계획입니까? 컴파일은 집중적 인 프로세스이므로 많은 사람들이 서버를 과부하하게됩니다. 또한 편집에는 항상 시간이 걸리므로 사용자에게 제시하는 방법을 고려해야합니다. 즉시 시작 하시겠습니까? 아니면 사용자를 대기열에 넣으시겠습니까?
  • 사용자 코딩 범위는 무엇입니까? 사용자 입력이 하나의 메소드 내용으로 제한 되었습니까? 아니면 사용자가 전체 파일을 작성해야합니까? 기본적으로 시스템에 의해 추가 된 코드가 있습니까? 참조를 어떻게 해결합니까? C# 코드? 일부 라이브러리는 기본적으로 참조됩니까?

그리고 이것은 빙산의 일각에 불과합니다.

댓글을 답하십시오. 예, CodeDOM이라고하는 C# 및 VB .NET 용 컴파일러 API가 있습니다.
그물에 관한 많은 정보가 있습니다. this question도 확인하시기 바랍니다.

+0

처음에 C# 및 VB.NET을 사용하여 시작하려는 경우 컴파일을 수행하기 위해 API가 공개되어 있는지 알고 있습니까? – Dusty

+0

@Dusty, 나는 대답을 편집했다. –

0

어제 출하 된 http://msdn.microsoft.com/en-us/roslyn에서 Roslyn 프로젝트 (이전의 컴파일러 서비스)를 살펴볼 수 있습니다. 이것은 C#과 VB를위한 새로운 컴파일러 API입니다. 파이썬이나 루비에서는 도움이되지 않지만 일단 C#과 VB가 출시되면 (Dev 11 이후) 필요한 것을해야합니다.

0

C# 및 VB의 경우 Roslyn CTP을 사용하여 Compilation 개체를 만든 다음 GetDiagnostics() 메서드를 호출하여 오류를 확인합니다.

관련 문제