IT 이모저모

UWP 응용 프로그램, SQL Server 사용하기 - 1

exien 2018. 3. 28. 18:44

시작하기

 .NET Standard 는 .NET Framework에서 PCL (Portable Class Library = 이식 가능한 클래스 라이브러리, MSDN에서 " 범용성이있는 클래스 라이브러리 "로 번역 될 수도)를 만들기위한 새로운 표준입니다. .NET Standard 규격에 준거하여 만들어진 클래스 라이브러리는 .NET Standard 규격을 지원하는 .NET Framework 구현 (플랫폼)에서 작동합니다.

 2017 년 하반기되고, .NET Standard 2.0을 지원하는 플랫폼 이出揃い했습니다. Windows 바탕 화면 ( WPF / Windows Forms )뿐만 아니라 Mono ( ASP.NET Core 2.0 등) / Xamarin (Android / iOS 등) / UWP (Universal Windows Platform)하지만 .NET Standard 2.0 규격의 클래스 라이브러리가 제공되는 하게 된 것입니다.

 그런데 UWP는 (Windows 8.x의 Windows Runtime의 시대에서) 계속 ADO.NET을 지원 해왔다 없습니다. 그것이 .NET Standard 2.0의 지원에 따라 마침내 ADO.NET도 사용할 수있게되었습니다.

 이번에는 .NET Standard 2.0 규격의 클래스 라이브러리를 만드는 방법과, 그래서 SQL Server에 액세스하는 샘플 코드를 소개합니다.

대상

  • .NET Framework에서 Windows 용 응용 프로그램을 만들고있는 개발자
  • .NET Framework 호환 플랫폼 용 응용 프로그램을 만들고있는 개발자
  • Xamarin 응용 프로그램 (Xamarin.Forms / Xamarin.iOS / Xamarin.Android)을 만들고있는 개발자
  • UWP 앱 개발자

필요한 환경

 샘플 코드 (GitHub)의 모든 시도는 다음의 환경이 필요합니다.

개발 환경

  • Windows 10 version 1709 (build 16299) 이상
  • Visual Studio 2017 Version 15.5 이상 (무료 Community Edition 가능)
  • UWP 용 Windows 10 SDK : C # / VB 용 10.0.16299 이후
  • .NET Core 2.0 개발 도구 (SDK)
  • Xamarin.Forms 2.5.0 이상

실행에 필요한 환경

  • Active Directory 도메인 (UWP 응용 프로그램에만 필요)
  • 도메인에 가입 된 PC (UWP 응용 프로그램의 실행에 필요한)
  • SQL Server (UWP 앱용에는 Windows 인증이 필요 / 기타는 SQL Server의 사용자 인증 가능)
  • Northwind 샘플 데이터베이스 (SQL Server에 준비해주십시오)

어떤 기능인가?

 샘플 코드의 UWP 응용 프로그램 을 실행하는 화면을 보여줍니다.

SQL Server 데이터를 표시하는 UWP 앱
SQL Server 데이터를 표시하는 UWP 앱

 UWP 응용 프로그램에서 SQL Server에서 데이터를 검색하고 표시합니다. 데이터 취득 로직은 .NET Standard 2.0 규격의 클래스 라이브러리 (⇒ UF03StdLib )에 정리하고 있고, ADO.NET을 사용하여 SQL Server의 Northwind 샘플 데이터베이스에서 Category 테이블의 모든 레코드를 선택합니다.

 그리고 위와 같은 클래스 라이브러리를 사용하여 Windows Forms / WPF / Xamarin.Forms (Android / UWP)의 각 응용 프로그램도 움직였습니다 (다음의 4 사진). ASP.NET Core 2.0과 Xamarin의 iOS는 시도하지 않지만, 마찬가지로 작동합니다.

 이와 같이 하나의 클래스 라이브러리를 .NET Standard 2.0 규격에 쓰는 것만으로 많은 최신 플랫폼의 응용 프로그램에서 사용할 수 있습니다.

동일한 클래스 라이브러리를 사용하는 Windows Forms 응용 프로그램
동일한 클래스 라이브러리를 사용하는 Windows Forms 응용 프로그램
동일한 클래스 라이브러리를 사용하는 WPF 응용 프로그램
동일한 클래스 라이브러리를 사용하는 WPF 응용 프로그램
동일한 클래스 라이브러리를 사용하는 Xamarin.Forms (Android) 앱
동일한 클래스 라이브러리를 사용하는 Xamarin.Forms (Android) 앱
동일한 클래스 라이브러리를 사용하는 Xamarin.Forms (UWP) 응용 프로그램
동일한 클래스 라이브러리를 사용하는 Xamarin.Forms (UWP) 응용 프로그램

.NET Standard 2.0 표준 클래스 라이브러리를 만드는 방법 / 사용법

 .NET Standard 2.0 규격을 준수하는 이식 가능한 클래스 라이브러리를 만드는 방법과 그것을 사용하는 응용 프로그램을 만드는 방법을 설명합니다. Visual Studio 2017의 최신 버전을 사용하고 있다면 특히 고생하는 것은 아닙니다.

.NET Standard 2.0 표준 클래스 라이브러리를 만들려면?

 Visual Studio 2017 ( version 15.3 이상)에서 프로젝트를 추가 할 때 클래스 라이브러리 (.NET Standard)]를 선택하면됩니다 (다음 그림).

새 프로젝트 추가 대화
새 프로젝트 추가 대화 상자에서 클래스 라이브러리 (.NET Standard)을 선택

 이 때, 새 프로젝트 추가 대화 상자의 상단에있는 .NET Framework 버전 선택 드롭 다운 (위 이미지는 4.7입니다)은 무시되고 .NET Standard 2.0 규격입니다. 2.0 이전 버전으로하려면 프로젝트를 만들고 프로젝트의 속성 페이지에서 변경합니다.

 프로젝트 생성 직후 솔루션 탐색기를 보면 프로젝트의 종속성에 경고 표시가있을 수 있습니다 (아래 그림). 이 프로젝트를 한 번 빌드하면 해소하는 것입니다. 빌드도 실패하는 경우 인터넷에서 NuGet 패키지를 얻을 수있는 환경이되어 있는지, 또한 프로젝트를 배포 한 경로의 중간에 '$'또는 '@'등의 기호가 포함되어 있지 않은지 확인합니다 보십시오.

종속성 경고 표시
솔루션 탐색기에서 종속성에 경고 표시된

 .NET Standard 2.0 표준 코딩에 사용할 수있는 API 목록 은 .NET API 브라우저의 " .NET Standard API 참조 version 2.0」에 게재되어 있습니다. API 목록은 GitHub의 .NET Standard 2.0 에도 실려 있습니다 (이곳은 서명 만). 또한 검색 docs.microsoft.com의 API 설명 페이지에 도착한 경우 페이지 하단에 "Applies to"로 사용 가능한 버전이 포함되어 있습니다 (이전 MSDN의 설명 페이지에는 .NET Standard에 대한 설명이없는 것 같습니다).

.NET Standard 2.0 표준 클래스 라이브러리를 사용 하는가?

 위와 같이하여 만든 클래스 라이브러리를 사용 측면의 프로젝트도 .NET Standard 2.0 규격을 지원해야합니다. 지원 있다면, 사용하고 싶은 .NET Standard 2.0 표준 클래스 라이브러리 (프로젝트 또는 바이너리 파일)에 대한 참조를 프로젝트에 추가하면됩니다.

기존의 데스크톱 응용 프로그램 (Windows Forms / WPF)

 Visual Studio 2017 (Version 15.3 이상)의 설치 프로그램에서. NET 데스크톱 개발] 워크로드와 함께 옵션의 .NET Core 2.0 개발 도구를 넣어 둡니다. Windows Forms / WPF 프로젝트를 만들 때 .NET Framework 4.6.1 이상을 지정합니다.

Xamarin.Forms

 Visual Studio 2017 ( Version 15.5 이상) Xamarin.Forms 프로젝트를 만들 때 다음 그림과 같은 대화 상자가 나옵니다. 그 [Code Sharing Strategy 섹션 (빨간색의)에서 .NET Standard]를 선택합니다.

Xamarin.Forms 프로젝트를 만들 때 대화
Xamarin.Forms 프로젝트를 만들 때 나오는 대화

 Version 15.4까지 Visual Studio 2017에서는 위의 대화가 나오지 않으므로 수동으로 대응하는 것입니다. 자세한 내용은 부치 의인 씨의 블로그 " Xamarin으로 사용되는 .NET Standard 라이브러리 / PCL (Portable Class Library) / Shared Project 대해 "등을 참조하십시오.

UWP 앱

 Visual Studio 2017 ( Version 15.4 이상) UWP 응용 프로그램 프로젝트를 만들 때 다음 그림과 같은 대화 상자가 나옵니다. 아래의 최소 버전 드롭 다운에서 빌드 16299 (또는 그 이상)을 선택합니다.

UWP 응용 프로그램 프로젝트를 만들 때 대화
UWP 응용 프로그램 프로젝트를 만들 때 나오는 대화