다음을 통해 공유


Visual Studio(C#)에서 Dynamics 365 웹 API 프로젝트 시작

 

게시 날짜: 2017년 1월

적용 대상: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

이 항목에서는 Dynamics 365 웹 API를 사용하는 콘솔 응용 프로그램을 빌드하는 Microsoft Visual Studio에서 새 프로젝트를 만드는 방법을 보여 줍니다. 일반적인 참조와 SDK C# 샘플을 포함하여 대부분의 응용 프로그램이 웹 API 기반 솔루션을 구현하는 데 사용하는 프로젝트 리소스를 다룹니다.

필수 조건

이 섹션에 설명된 콘솔 응용 프로그램을 빌드하려면 다음과 같은 전제 조건이 필요합니다.

  • 개발 컴퓨터에 설치된 Microsoft Visual Studio 2015입니다.Visual Studio Express를 포함한 모든 에디션은 Dynamics 365 웹 API를 사용하기에 충분해야 합니다. 지원 되는 Microsoft Visual Studio 버전에 대한 자세한 내용은 Visual Studio 및 .NET Framework를 참조하십시오.

  • 명령줄 유틸리티 또는 Visual Studio 확장인 NuGet 클라이언트가 설치되어야 합니다. 자세한 내용은 NuGet 설치를 참조하십시오.

  • Dynamics 365 웹 API 도우미 라이브러리를 포함하는 NuGet 패키지 및 기타 종속 패키지를 다운로드하려면 인터넷 연결이 필요합니다.

  • 선택적으로 여기에서 Microsoft Dynamics 365 SDK를 다운로드할 수 있습니다. 이러한 웹 API 샘플을 빌드하거나 실행하기 위해 Microsoft Dynamics 365 SDK가 필수적이지는 않지만 풍부한 추가 리소스를 포함하고 SDK가 다른 Dynamics 365 인터페이스에 대한 액세스를 요구하기 때문에 대부분의 Dynamics 365 개발자는 설치하기를 원합니다.

프로젝트 만들기

다음 절차에서는 Microsoft .NET Framework를 사용하는 C#의 콘솔 응용 프로그램 프로젝트를 만드는 방법에 대해 설명합니다. 지원되는 .NET Framework 버전에 대한 자세한 내용은 Microsoft Dynamics 365에 대해 지원되는 확장을 참조하십시오.

새 프로젝트

  1. Microsoft Visual Studio에서 새 프로젝트를 클릭합니다.새 프로젝트 대화 상자가 표시됩니다.

  2. 템플릿의 왼쪽 탐색 창에서 Visual C#을 선택합니다.

  3. 사용 가능한 템플릿 목록 위에서 .NET Framework 4.5.2를 선택합니다.

  4. 템플릿 목록에서 콘솔 응용 프로그램을 선택합니다. (또는 솔루션에 적합한 프로젝트 형식을 선택합니다.) 모든 웹 API C# 샘플은 콘솔 응용 프로그램입니다.

    Dynamics 365의 새 콘솔 앱 프로젝트 대화 상자

  5. 양식의 아래쪽에 있는 텍스트 상자에 프로젝트 이름 및 위치를 제공하고 확인을 선택합니다. (이 항목의 경우 "StartWebAPI-CS" 솔루션 이름이 사용되었습니다.) 초기 솔루션 파일이 생성되고 솔루션이 Microsoft Visual Studio에 로드됩니다.

  6. 프로젝트 메뉴에서 프로젝트의 속성 양식을 열고 대상 프레임워크가 .NET Framework 4.5.2로 설정되어 있는지 확인합니다.

필요한 모든 리소스를 프로젝트에 추가합니다.

다음 절차는 필요한 모든 관리형 참조와 패키지를 프로젝트에 추가하는 방법을 설명합니다. 다음은 웹 API 작업을 호출하기 위해 대부분의 관리되는 코드 응용 프로그램에 필요한 가장 기본적인 리소스 집합입니다.

도우미 라이브러리 NuGet 패키지 추가

Dynamics 365 SDK 웹 API 도우미 라이브러리에는 응용 프로그램 구성, Dynamics 365 서버 인증, 예외 처리, 웹 통신 등의 추가 작업을 지원하는 클래스가 포함됩니다. 자세한 내용은 Microsoft Dynamics 365 웹 API 도우미 라이브러리(C#) 사용을 참조하십시오. 이러한 클래스는 웹 API 샘플에서 광범위하게 사용되지만 필수 사항은 아닙니다. Dynamics 365 SDK 웹 API 도우미 라이브러리는NuGet 패키지로 소스 코드 형태로 배포됩니다. 이후의 업데이트에서는 NuGet 패키지 업데이트로 배포됩니다.

NuGet 명령줄 유틸리티를 설치했거나 Visual Studio의 패키지 관리자 콘솔을 사용하는 경우:

  1. 도우미 라이브러리 패키지를 설치하려면 다음 명령을 발급합니다.

    Install-Package Microsoft.CrmSdk.WebApi.Samples.HelperCode

  2. 종속성 패키지를 처리하는 방법에 대한 여러 가지 메시지가 표시됩니다.라이선스 승인 대화 상자가 표시되면 라이선스 조건을 읽고 동의를 클릭합니다.

  3. 도우미 라이브러리 패키지의 설치를 확인하려면 아래의 6단계로 건너뜁니다.

NuGet 패키지 관리자 확장을 설치한 경우:

  1. 프로젝트 메뉴에서 NuGet 패키지 관리를 선택합니다.NuGet 패키지 관리자 탭이 표시됩니다.

  2. 오른쪽 상단에서 패키지 소스 드롭다운을 Nuget.org로 설정합니다.

  3. 왼쪽 위 모서리에서 찾아보기를 클릭한 다음 검색 상자의 "Dynamics 365 HelperCode"를 입력한 다음 Enter 키를 누릅니다.

    NuGet Package Manager showing Dynamics 365 Helper Code Library (C#)

  4. 설치를 클릭합니다.미리 보기 대화 상자가 표시되면 확인을 클릭합니다.

  5. 라이선스 승인 대화 상자가 표시됩니다. 사용 약관을 검토하고 동의를 클릭합니다.

  6. 솔루션 탐색기 창으로 이동합니다.웹 API 도우미 코드라는 이름의 새 솔루션 폴더가 추가된 것을 확인합니다.

    VS Solution Explorer showing helper library files

Dynamics 365 SDK 웹 API 도우미 라이브러리 패키지, Microsoft.CrmSdk.WebApi.Samples.HelperCode는 자동으로 도우미 라이브러리 패키지와 함께 다운로드되고 설치된 다음의 기타 패키지에 따라 다릅니다.

경고

Dynamics 365 SDK 웹 API 도우미 라이브러리 패키지는 이러한 다른 두 지원 패키지의 특정 버전에 대해 구축되었습니다. 이 때문에 도우미 라이브러리 NuGet 패키지를 직접 업데이트해야 합니다. 필요한 경우 이 작업은 적절한 지원 패키지를 업데이트합니다. 이러한 지원 패키지 중 하나를 개별적으로 업데이트하면 해당 패키지의 최신 버전이 도우미 라이브러리와 호환됩니다.

필요한 어셈블리 참조 확인

  1. 솔루션 탐색기에서 참조 노드를 확장합니다.

  2. 다음 참조에 프로젝트가 추가된 것을 확인합니다.

    VS Solution Explorer showing references for the helper library

  3. 응용 프로그램에서 일상적으로 사용하는 추가 기능이 있으면 지금 필요한 어셈블리에 연결된 참조를 추가할 수 있습니다. 자세한 내용은 참조 추가 대화 상자를 사용하여 참조를 추가 또는 제거하는 방법을 참조하십시오.

Dynamics 365 웹 API는 REST 원칙을 기반으로 하기 때문에 클라이언트 쪽 어셈블리에 액세스할 필요가 없습니다. 그러나 Microsoft Dynamics 365에서 지원하는 다른 API에는 이를 요구합니다. 자세한 내용은 Microsoft Dynamics 365 SDK에 포함된 어셈블리를 참조하십시오.

일반적으로 사용하는 문 추가

  1. 솔루션 탐색기에서 편집을 위해 Program.cs를 엽니다.

  2. 파일의 맨 위에 Dynamics 365 웹 API 기반 솔루션에서 일반적으로 사용되는 네임스페이스를 참조하는 다음 using 문을 추가합니다.

    using Microsoft.Crm.Sdk.Samples.HelperCode;
    using Newtonsoft.Json;
    using Newtonsoft.Json.Linq;
    using System.Net.Http;
    using System.Net.Http.Headers;
    
  3. 이전 섹션에서 일상적으로 사용되는 어셈블리 또는 참조를 추가했다면 이러한 리소스에 대해 using 문을 추가하고자 할 수 있습니다.

  4. 파일을 저장합니다.

연결 코드 추가

이 섹션에서는 기본 설정 및 지침을 추가하여 이러한 작업을 수행하는 방법을 설명합니다. 일반적으로 사용되는 코드에 대한 자세한 내용은 Microsoft Dynamics 365 웹 API 도우미 라이브러리(C#) 사용을 참조하십시오.

응용 프로그램 구성 파일 편집

  1. 솔루션 탐색기에서 편집을 위해 App.config 파일을 엽니다. 다음 두 섹션을 기존<startup> 섹션 뒤에 추가한 다음 파일을 저장합니다.

    <connectionStrings>
        <clear />
    
        <!-- When providing a password, make sure to set the app.config file's security so that only you can read it. -->
        <add name="default"   connectionString="Url=http://myserver/myorg/; Username=name; Password=password; Domain=domain" />
        <add name="CrmOnline" connectionString="Url=https://mydomain.crm.dynamics.com/; Username=someone@mydomain.onmicrosoft.com; Password=password" />
      </connectionStrings>
    
      <appSettings>
        <!--For information on how to register an app and obtain the ClientId and RedirectUrl
            values see https://msdn.microsoft.com/dynamics/crm/mt149065 -->
        <!--Active Directory application registration. -->
        <!--These are dummy values and should be replaced with your actual app registration values.-->
        <add key="ClientId" value="e5cf0024-a66a-4f16-85ce-99ba97a24bb2" />
        <add key="RedirectUrl" value="https://localhost/SdkSample" />
    
        <!-- Use an alternate configuration file for connection string and setting values. This optional setting
        enables use of an app.config file shared among multiple applications. If the specified file does
        not exist, this setting is ignored.-->
        <add key="AlternateConfig" value="C:\Temp\crmsample.exe.config"/>
      </appSettings>
    
  2. 솔루션을 개발하거나 배포하는 경우 실제 연결 및 응용 프로그램 등록 값으로 예제의 자리 표시자 값을 대체해야 합니다. 자세한 내용은 웹 API 도우미 코드: 구성 클래스을 참조하십시오.

도우미 라이브러리를 호출하는 코드 추가

  1. Program.cs 파일을 편집합니다.

  2. 프로그램 클래스에 다음 속성을 추가합니다. 이 속성은 Dynamics 365 서버에 성공적으로 연결한 후 초기화됩니다.

    private HttpClient httpClient;

  3. Main 메서드에서 다음 문을 추가합니다.

    Program app = new Program();
    try
    {
        String[] arguments = Environment.GetCommandLineArgs();
        app.ConnectToCRM(arguments);
    }
    catch (System.Exception ex)
    { ; }
    finally
    {
        if (app.httpClient != null)
        { app.httpClient.Dispose(); }
    }
    
  4. 다음으로 도우미 라이브러리 ConfigurationAuthentication 클래스를 사용하는 ConnectToCRM 메서드를 추가합니다. 다음 코드에서는 HttpClient 속성에 값을 지정하여 Dynamics 365 웹 API의 릴리스 버전에 성공적으로 액세스하는 방법을 설명합니다.

    private void ConnectToCRM(String[] cmdargs)
    {
        Configuration config = null;
        if (cmdargs.Length > 0)
            config = new FileConfiguration(cmdargs[0]);
        else
            config = new FileConfiguration(null);
        Authentication auth = new Authentication(config);
        httpClient = new HttpClient(auth.ClientHandler, true);
        httpClient.BaseAddress = new Uri(config.ServiceUrl + "api/data/v8.1/");
        httpClient.Timeout = new TimeSpan(0, 2, 0);
        httpClient.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0");
        httpClient.DefaultRequestHeaders.Add("OData-Version", "4.0");
        httpClient.DefaultRequestHeaders.Accept.Add(
            new MediaTypeWithQualityHeaderValue("application/json"));
    }
    

오류 처리 코드 추가

다음 변경은 웹 API 오류를 포함한 예외를 콘솔에 찾아내고 보고하는 코드를 추가합니다. 다른 환경을 대상으로 하는 경우 해당 환경에 맞게 예외 처리 코드를 수정합니다.

  1. Main에서 다음 문을 catch 블록에 추가합니다.

    DisplayException(ex);

  2. 해당 메서드를 Program 클래스에 추가합니다.

    private static void DisplayException(Exception ex)
    {
        Console.WriteLine("The application terminated with an error.");
        Console.WriteLine(ex.Message);
        while (ex.InnerException != null)
        {
            Console.WriteLine("\t* {0}", ex.InnerException.Message);
            ex = ex.InnerException;
        }
    }
    
  3. 솔루션의 모든 파일을 저장합니다.

다음 단계

이제 오류 없이 솔루션을 구축할 수 있습니다.Microsoft Dynamics 365 Server에 값을 제공하기 위해 응용 프로그램 구성 파일을 편집하면 프로그램도 성공적으로 해당 서버에 연결됩니다. 이 솔루션은 Dynamics 365 웹 API에 대한 호출을 포함하여 사용자 지정 코드를 받아들일 수 있는 골격 프레임을 나타냅니다.

이 항목에서 나가기 전에 프로젝트를 프로젝트 템플릿으로 저장하는 것이 좋습니다. 그런 다음 해당 템플릿을 이후 학습 프로젝트에 재사용하고 새 프로젝트를 설정하는 데 드는 시간과 노력을 절약할 수 있습니다. 이렇게 하려면 프로젝트가 Microsoft Visual Studio에서 열려 있는 동안 파일 메뉴에서 템플릿 내보내기를 선택합니다.템플릿 내보내기 마법사의 지시에 따라 템플릿을 만듭니다.

참고 항목

Microsoft Dynamics 365 웹 API(C#) 시작
Microsoft Dynamics 365 웹 API 도우미 라이브러리(C#) 사용
웹 API를 사용하여 작업 수행

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 저작권 정보