login register Sysop! about ME  
qrcode
    최초 작성일 :    2012년 06월 18일
  최종 수정일 :    2012년 06월 18일
  작성자 :    Taeyo
  편집자 :    Taeyo (김 태영)
  읽음수 :    5,130

강좌 목록으로 돌아가기

필자의 잡담~

태오입니다. 이번 컬럼의 원문은 http://www.windowsazure.com/en-us/develop/net/tutorials/web-site-with-sql-database 이며, 6월 리뉴얼된 Windows Azure에서 새로이 등장한 Windows Azure 웹 사이트 기능을 활성화하고, ASP.NET 웹 응용 프로그램을 Azure 웹 사이트에 배포하는 방법을 설명하고 있습니다.

이 글은 Windows Azure 공식 컬럼인 http://www.windowsazure.com/en-us/develop/net/tutorials/web-site-with-sql-database 의 글을 편역한 내용입니다. 마이크로소프트의 공식 번역 문서가 아니며 태오 사이트 MS 컬럼 번역팀에서 번역한 내용입니다. 그렇기에, 일부 오역이나 오타가 존재할 수 있는 점 미리 양해를 구합니다. 원문에 대한 모든 저작권은 마이크로소프트에 있으며, 컬럼 내용과 관련한 질의 문답 역시 원문 사이트에 문의하시는 것을 추천드립니다.

ASP.NET MVC 웹 응용 프로그램을 Windows Azure 웹 사이트에 배포하기

이번 강좌는 비주얼 스튜디오 2012 RC 혹은 비주얼 스튜디오 2012 Web Express RC(무료 도구)에서 제공하는 [Public Web(웹 게시)] 마법사를 통해서 ASP.NET 웹 응용 프로그램을 Windows Azure 웹 사이트에 배포하는 방법을 설명합니다. 물론 원한다면, 비주얼 스튜디오 2010나 비주얼 웹 디벨로퍼 익스프레스 2010를 사용해서도 마찬가지의 작업을 할 수 있습니다(다만, 배포 마법사의 UI나 배포 방식이 약간 다르답니다).

Windows Azure 계정은 무료로 등록할 수 있습니다. 이 부분은 이전 강좌에서 설명을 드렸었어요. 궁금하신 분은 "Windows Azure 한국계정 등록하기(무료 평가판) " 강좌를 참고하시고요. 만일, 여러분이 아직 비주얼 스튜디오 2012를 구입하지 않으셨다면, SDK가 자동으로 무료 도구인 비주얼 스튜디오 2012 Web Express를 설치해 줄 겁니다. 그렇기에, Windows Azure 개발을 일단 완전 무료로 시작해 볼 수 있습니다(그렇긴 하지만, 비주얼 스튜디오 2012 정식 버전을 사용하는 것이 장기적으로 정신 건강에 좋은 편이죠).

이 강좌는 여러분이 이전에 Windows Azure를 전혀 경험해 본적이 없다는 가정 하에서 준비되었어요. 그래서, 따라하기 식으로 꽤 자세하게 진행됩니다. 강좌를 마치고 나면, 여러분은 아마도 클라우드 데이터베이스를 통해서 데이터를 다루는 웹 응용 프로그램을 작성할 수 있을 것이고요. 이를 클라우드 상에서 실행시킬 수 있게 될 겁니다.

강좌에서 다룰 내용은 다음과 같습니다.

  • Windows Azure SDK를 설치하여, Windows Azure 개발에 필요한 장비를 준비하는 방법을 알아봅니다.
  • 비주얼 스튜디오를 이용하여 ASP.NET MVC 4 프로젝트를 만들고, 이를 Windows Azure 웹 사이트에 게시하는 방법을 알아봅니다.
  • Windows Azure에 데이터를 저장하기 위해서 SQL 데이터베이스 인스턴스를 사용하는 방법을 알아봅니다.
  • Windows Azure에 응용 프로그램의 업데이트를 게시하는 방법을 알아봅니다.

우리는 ASP.NET MVC 4를 기반으로 간단한 to-do list(작업 목록) 웹 응용 프로그램을 구축할 예정이고요. 데이터베이스 접근 기술로는 ADO.NET 엔티티 프레임워크를 사용할 것입니다. 다음 그림은 완성된 응용 프로그램의 모습이에요. 정말 “심플”하죠.


출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-059.png

강좌 목록

  1. 개발환경 구성하기
  2. Windows Azure 환경 구성하기
  3. ASP.NET MVC 4 응용 프로그램 만들기
  4. 응용 프로그램을 Windows Azure에 배포하기
  5. 응용 프로그램에 데이터베이스 추가하기
  6. 변경된 응용 프로그램을 Windows Azure와 SQL 데이터베이스에 배포하기
  7. Windows Azure 웹 사이트 관련 ASP.NET에 대한 중요한 정보
  8. 다음 단계

개발 환경 구성하기

개발 환경을 구성하려면 우선 .NET 프레임워크 용 Windows Azure SDK를 설치해야 합니다.

  1. .NET 용 Windows Azure SDK를 설치하려면, 여러분이 사용하는 비주얼 스튜디오의 버전에 맞게 다음 링크 중 하나를 클릭하도록 하세요. 물론, 아직 비주얼 스튜디오가 설치되지 않았다면, 우선 그것부터 설치를 해야 하겠죠?

    Windows Azure SDK for Visual Studio 2010
    Windows Azure SDK for Visual Studio 2012 RC

  2. WindowsAzureSDKForNet.exe 파일을 저장하겠냐는 메시지가 나오면 일단 저장하시고, 실행을 하도록 하세요. 혹은 바로 실행하셔도 됩니다.
  3. 웹 플랫폼 설치 관리자(Web Platform Installer) 창에서, [설치(Install)]을 클릭하시고 설치를 진행하도록 하세요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-003.png

  4. 만일 비주얼 스튜디오 2010이나 비주얼 웹 디벨로퍼 2010 익스프레스를 사용하고 있다면, Visual Studio 2010 Web Publish UpdateMVC 4를 설치하시면 됩니다.

설치가 끝나면, 개발을 시작할 준비가 모두 끝난 겁니다.

Windows Azure 환경 구성하기

다음으로는 Windows Azure 환경을 구성해야 합니다. 우선 Windows Azure 계정을 만들어야 하고요. 그 다음, [Windows Azure 웹 사이트 미리 보기 기능]를 사용하도록 기능 활성화를 시켜야 합니다. 그래야만, Windows Azure 웹 사이트와 SQL 데이터베이스를 만들 수 있게 되니까요.

Windows Azure 계정 만들기

  1. 브라우저를 열고, http://www.windowsazure.com로 이동합니다.
  2. 무료 계정을 등록하기 위해서, 우측 상단에 있는 [무료 평가판(Free trial)]을 클릭하고, 다음 단계들을 진행하면 됩니다. 신원 증명을 위해서 신용 카드와 핸드폰 번호가 필요할 겁니다만, 요금이 과금되거나 하진 않습니다.


    출처 : http://www.windowsazure.com/media/devcenter/shared/freetrialonwindowsazurehomepage.png

    좀 더 상세한 설명은 태오 사이트의 강좌 "Windows Azure 한국계정 등록하기(무료 평가판)"에 매우 자세하게 잘 나와 있으니 필요하신 분은 참고하세요.

Windows Azure 웹 사이트 기능 활성화하기

  1. https://account.windowsazure.com/ 로 이동해서, Windows Azure 계정으로 로그인을 합니다.
  2. 사용 가능한 미리보기 기능이 무엇이 있는지 [미리 보기 기능(Preview features)]을 클릭하여 확인합니다.


    출처 : http://www.windowsazure.com/media/devcenter/shared/antares-iaas-preview-01.png

  3. 밑에 보면 [웹 사이트]가 있을 겁니다. [try it now]를 클릭하세요.


    출처 : http://www.windowsazure.com/media/devcenter/shared/antares-iaas-preview-05.png

  4. 여러분의 구독 계정(아마도 3개월 무료 평가판이겠죠?)을 선택하고, 확인 버튼을 누르시면 됩니다(참고 : 확인을 누르면 요청이 접수되고요. 실제로 Windows Azure 웹 사이트 기능이 활성화되기 까지는 약 1시간 정도가 걸립니다).


    출처 : http://www.windowsazure.com/media/devcenter/shared/antares-iaas-preview-06.png

Windows Azure에서 웹 사이트와 SQL 데이터베이스 만들기

다음 단계는 응용 프로그램이 사용할 Windows Azure 웹 사이트와 SQL 데이터베이스를 만드는 것입니다.

여기서 SQL 데이터베이스란 SQL 서버 기술을 이용하여 만들어진 클라우드 기반의 관계형 데이터베이스 서비스를 말합니다(솔직히 말하면, SQL Azure 입니다). SQL 서버에서 사용 가능했던 도구(예를 들면, SSMS?)와 응용 프로그램들을 SQL 데이터베이스(즉, SQL Azure)에 대해서도 동일하게 사용할 수 있어요. 즉, SQL 서버 관리 스튜디오(SSMS)로 SQL 데이터베이스(SQL Azure)에 접근하여 조작할 수 있다는 이야기입니다.

  1. Windows Azure 관리 포탈에서 New 버튼을 클릭하세요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-011.png

  2. [Web Site]를 선택하고, [Create with Database]를 선택하세요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-013.png

    그러면, New Web Site - Create with Database 마법사가 나타날 겁니다. 이 녀석을 선택하면 웹 사이트와 데이터베이스를 동시에 만들 수 있어요.

  3. 우선 New Web Site 단계가 나올 겁니다. URL 입력 상자에 여러분 응용 프로그램에 대해 사용할 고유한 URL을 입력하도록 하세요.

    전체 URL은 여러분이 입력한 문자열과 입력 상자 바로 밑에 보이는 경로 (즉, .azurewebsites.net)가 합쳐진 URL이 전체 경로가 됩니다. 저는 “todolistapp”라고 입력한 것을 볼 수 있는데요. 만일, 누군가가 그러한 명칭을 사용했다면, 다른 사람은 사용할 수 없어요. 선점하는 사람이 갑인거죠. 그러니, 여러분은 다른 명칭을 입력하셔야 할 겁니다.

  4. Database 드롭다운 목록에서는 Create a new SQL database을 선택합니다.
  5. Region 드롭다운 목록에서는 여러분하고 지리적으로 가까운 위치의 지역을 선택하도록 하세요. 바로 여기서 선택한 지역에 있는 데이터 센터 안에서 여러분의 VM이 실행될테니까요.
  6. 다 되었으면, 우측 하단에 놓여있는 화살표를 클릭해서 다음 단계로 넘어갑니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-014.png

    그러면 이제 마법사는 Database Settings 단계로 넘어가게 되요.

  7. Name 입력상자에는 사용할 데이터베이스의 이름을 입력합니다.
  8. Server 드롭다운 목록에서는 New SQL Database server를 선택하시면 됩니다. 새로 만드는 것이니까요.
  9. 다 되었으면, 우측 하단에 놓여있는 화살표를 클릭해서 다음 단계로 넘어갑니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-015.png

    그러면 이제 마법사는 Create a Server 단계로 넘어가게 되요.

  10. 이번에는 관리자 용 이름과 암호를 입력해야 합니다.

    여기에서 지정한 이름과 비밀번호는 추후 데이터베이스를 접근할 때 사용하게 될 계정이니까요. 기존에 사용하던 이름과 비밀번호는 입력하지 않는 것이 좋습니다.

  11. Region 목록에서는 웹 사이트를 만들 때(5번) 선택했던 것과 동일한 지역을 선택해 주세요. 당연한 이야기이지만, 웹 서버와 데이터베이스 서버는 동일한 지역에 두는 것이 성능 상 매우 좋을테니까요.
  12. Allow Windows Azure Services to access the server 체크박스가 선택되었는지 꼭 확인하세요. 물론, 기본적으로 선택되어 있겠지만 말이죠. 이는 여러분의 Windows Azure 웹 사이트가 데이터베이스에 접근할 수 있도록 허용하는 방화벽 규칙을 만드는 것이랍니다. 체크를 안 해주면 웹 서버에서 데이터베이스로 접근을 아예 못하게 되니깐 낭패겠죠?
  13. 이제 모두 끝났습니다. 우측 하단의 화살표 버튼을 눌러서 완료를 해 보아요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-016.png

    그러면, 관리 포탈 화면에서 무언가 작업이 진행되는 것이 보일 겁니다. 동시에, Status 컬럼에는 사이트가 만들어지는 중이라 메시지도 보여질 것이고요. 잠시 기다리시면 작업이 완료되고, 관리 포탈의 Status 컬럼에 사이트가 성공적으로 생성되었다는 메시지가 나타날 겁니다. 좌측 탐색 메뉴에는 Web Sites 아이콘 밑으로 현재 생성된 웹 사이트의 개수도 보여지고 있을 겁니다(현재는 당연히 1 이겠지만요). 마찬가지로, SQL Database 아이콘 밑으로는 생성된 데이터베이스의 수가 보여집니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-018.png

ASP.NET MVC 4 응용 프로그램 만들기

Windows Azure 웹 사이트를 만들기는 했지만 아직은 아무런 콘텐트도 준비된 것이 없지요? 그렇기에, 다음 단계는 Windows Azure에 게시할 웹 응용 프로그램 프로젝트를 비주얼 스튜디오로 만드는 것입니다.

프로젝트 만들기

  1. 비주얼 스튜디오 2012 혹은 비주얼 스튜디오 2012 웹 익스프레스를 실행합니다.
  2. File 메뉴에서 New Project를 선택합니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-020.png

  3. New Project 대화상자에서, Installed Templates 밑에 있는 Visual C# 부분을 확장한 다음 Web을 선택합니다. 그리고, 이어서 ASP.NET MVC 4 Web Application을 선택합니다
  4. .NET Framework 드롭다운 목록에서 .NET Framework 4.5로 기본 설정되어 있는 선택을 .NET Framework 4로 변경합니다(이 강좌가 작성되는 시점에는 Windows Azure 웹 사이트가 ASP.NET 4.5를 지원하지 않고 있기 때문입니다).
  5. 응용 프로그램 이름으로는 ToDoListApp를 입력하고, OK를 클릭합니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-021.png

  6. New ASP.NET MVC 4 Project 대화상자에서, Internet Application 템플릿을 선택합니다.
  7. View Engine 드롭다운 목록에서 Razor가 선택되어 있는지 확인한 뒤, OK를 클릭합니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-022.png

페이지 헤더와 푸터 설정하기

  1. Solution Explorer에서 Views\Shared 폴더를 확장하고 _Layout.cshtml 파일을 열어주세요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-023.png

  2. <title> 요소 안에 있는 My ASP.NET MVC Application라는 글자를 To Do List로 바꿉니다.
  3. <header> 요소 안에 있는 your logo here라는 글자도 To Do List로 바꿉니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-024.png

  4. <footer> 요소 안에 있는 My ASP.NET MVC Application라는 글자도 To Do List로 바꿔줍니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-025.png

로컬에서 응용 프로그램 실행하기

  1. CTRL + F5를 눌러서 응용 프로그램을 실행합니다. 그러면, 기본 브라우저에 응용 프로그램의 홈 페이지가 나타날 것입니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-026.png

일단은 이 정도만 변경하고 응용 프로그램을 Windows Azure에 배포할까 해요. 물론, 잠시 후에는 데이터베이스 관련 기능도 추가할 것이지만 말이죠.

응용 프로그램을 Windows Azure에 배포하기

  1. 브라우저를 실행하고, Windows Azure 관리 포탈에 접속하세요.
  2. Web Site 탭에서, 좀 전에 생성한 사이트의 이름을 클릭합니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-030.png

  3. Dashboard 탭 안에서 Quick glance 밑에 있는 Download publishing profile을 클릭합니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-031.png

    그러면, 응용 프로그램을 웹 사이트에 배포하기 위해서 필요한 모든 설정들을 담고 있는 파일이 다운로드 됩니다. 이 파일은 나중에 비주얼 스튜디오에서 가져오기(Import) 작업을 통해서 사용할 수 있는데요. 그러면 다양한 설절 정보를 손수 입력하지 않아도 됩니다.

  4. .publishsettings 파일을 특정 폴더에 저장하세요. 이 파일은 나중에 비주얼 스튜디오에서 사용하게 될 겁니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-032.png

  5. 비주얼 스튜디오의 Solution Explorer에서 프로젝트를 마우스 오른쪽 클릭하고, 컨텍스트 메뉴에서 Publish를 선택합니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-033.png

    그러면, Publish Web 마법사가 나타날 거에요.

  6. Publish Web 마법사의 Profile 탭에서 Import를 클릭하세요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-034.png

  7. 앞서 다운로드 받은 .publishsettings 파일을 선택하시고, Open을 클릭하세요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-035.png

  8. Connection 탭에서는 Validate Connection를 클릭하여 모든 설정들이 올바른지 검사하도록 하세요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-036.png

    연결이 유효하다고 확인되면, Validate Connection 버튼 옆에 녹색 체크 표시가 나타날 겁니다.

  9. Next를 클릭하세요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-038.png

  10. Settings 탭에서 Next를 클릭합니다.

    그러면, 기본적으로 설정되어 있는 내용 그대로 진행하게 되는데요. 즉, Release 빌드 구성으로 배포를 수행하게 되고, 대상 서버에 있는 파일들은 삭제하지 않을 겁니다. Databases 밑에 있는 DefaultConnection 부분은 MVC 4 프로젝트 템플릿에서 제공하는 ASP.NET 멤버십(로그온 기능) 기능을 위한 건데요. 이번 강좌에서는 그 멤버십 기능을 사용하지 않기 때문에, 아무런 설정도 지정해줄 필요가 없답니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-039.png

  11. Previre 탭에서 Start Preview 버튼을 클릭하세요

    그러면, 서버에 복사될 파일들의 목록이 보여질 겁니다. 미리 보기를 반드시 수행해야 하는 것은 아니지만, 배포될 것들을 미리 살펴볼 수 있기 때문에 가급적 확인하는 것이 유용합니다. 이번 강좌의 경우에는 그 나타나는 파일 목록을 그냥 보시기만 하면 됩니다. 체크를 지우거나 하지 마세요~


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-040.png

  12. 이제 Publish를 클릭합니다.

    그러면, 비주얼 스튜디오가 Windows Azure 서버로 파일들을 복사하기 시작할 겁니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-041.png

  13. Output 창에 어떤 배포 작업이 진행되고 있는지, 또한 배포가 성공된 내역들은 무엇인지 나열될 거에요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-043.png

  14. 배포가 끝나면 기본 브라우저가 자동으로 실행되고 배포된 사이트의 URL을 보여주게 됩니다. 이제 여러분의 응용 프로그램은 클라우드에서 실행되고 있는 것이에요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-042.png

응용 프로그램에 데이터베이스 추가하기

다음으로 해야 할 일은 MVC 응용 프로그램에 기능을 추가하여, to-do-list 항목을 출력하고, 수정하고, 데이터를 데이터베이스에 저장할 수 있도록 만드는 것입니다. 응용 프로그램은 데이터베이스를 생성하고 데이터베이스에 있는 데이터를 변경하고 읽어오기 위해서 Entity Framework을 사용할 예정입니다.

To-do-list를 위한 데이터 모델 클래스 추가하기

우선, 간단한 데이터 모델을 코드로 만들어보는 것으로 시작해 보아요.

  1. Solution Explorer에서 Models 폴더에 마우스 오른쪽 클릭을 한 뒤 Add를 클릭하고, Class를 선택하세요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-052.png

  2. Add New Item 대화 상자에서, 새로운 클래스 파일명으로 ToDoItem.cs를 입력하시고, Add를 클릭하세요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-053.png

  3. ToDoItem.cs 파일 안의 코드를 다음과 같이 작성해 보세요.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    namespace ToDoListApp.Models
    {
        public class ToDoItem
        {
            public int ToDoItemId { get; set; }
            public string Name { get; set; }
            public bool IsComplete { get; set; }
        }
    }

    ToDoItem 클래스는 데이터베이스 용 기본 키와 to-do-list 항목에 필요한 데이터를 정의하고 있는 클래스입니다.

  4. ToDoDb.cs 라는 이름의 또 다른 클래스 파일을 추가해 주세요. 그리고, 이 파일의 내용은 다음과 같이 작성해 주시기 바랍니다.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Data.Entity;
    namespace ToDoListApp.Models
    {
        public class ToDoDb : DbContext
        {
            public DbSet<ToDoItem> ToDoItems { get; set; }
        }
    }

    ToDoDb 클래스는 ToDoItem 개체를 엔티티 집합의 엔티티로서 사용하고자 한다고 Entity Framework에게 알리는 역할을 해요. Entity Framework에서의 엔터티 집합은 데이터베이스에서의 테이블에 해당한다고 보면 됩니다. 그리고, 이렇게 2개의 클래스를 준비하면 Entity Framework가 자동으로 데이터베이스를 생성하기 위해 필요한 정보는 모두 준비된 거에요.

  5. 이제 프로젝트를 빌드하세요. 단축키로는 CTRL+SHIFT+B를 누르셔도 되요.

    그러면, 비주얼 스튜디오는 방금 작성한 데이터 모델 클래스들을 컴파일하고요. 그들을 이후의 과정(즉, Code First 마이그레이션 및 MVC 스캐폴딩)에서 사용할 수 있도록 만들어 줄 거에요.

마이그레이션 기능을 활성화하고 데이터베이스 생성하기

다음으로 해야 할 일은 여러분이 생성한 데이터 모델을 기반으로 하여 데이터베이스를 생성하도록 Code First 마이그레이션 기능을 활성화 하는 것입니다.

  1. Tools 메뉴에서 Library Package Manager를 선택하고 Package Manager Console을 클릭합니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-047.png

  2. Package Manager Console 윈도우에서 다음의 명령들을 차례대로 입력합니다

    주의 : 단, 명령을 입력했는데 에러가 나거나 올바로 실행이 되지 않는다면, 일단 uninstall-package entityFramework를 먼저 실행해서 Entity Framework를 제거한 뒤, 다시금 install-package entityFramework -Pre 를 실행하여 최신 버전을 재 설치하고 난 뒤, 다음 명령들을 실행하세요

    enable-migrations
    add-migration Initial
    update-database


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-051.png

enable-migrations 명령은 Solution Explorer 안에 Migrations 폴더를 만들어 줄 뿐만 아니라, 데이터베이스 업데이트를 제어하기 위해서 Entity Framework가 사용하는 Configuration 클래스도 만들어 줍니다.

그리고, add-migration Initial 명령은 데이터베이스를 생성하는 Initial이라는 이름의 클래스를 생성할 거에요. 이렇게 생성된 클래스 파일들은 Solution Explorer에서 살펴볼 수 있어요.


출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-051a.png

Initial 클래스 안을 살펴보면, Up 메서드와 Down 메서드가 존재하는 것을 볼 수 있는데요. UP 메서드는 ToDoItems 테이블을 생성하는 역할을 하고, Dowm 메서드(이전 상태로 되돌리고자 할 때 사용하는 메서드)는 그 테이블을 제거하는 것을 볼 수 있습니다.


출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-051b.png

그리고, 마지막 명령인 update-database는 앞서 생성된 클래스들을 사용하여 실제로 데이터베이스를 생성하는 마이그레이션을 수행합니다. 기본적으로, 데이터베이스는 SQL 서버 Express를 통해서 로컬 데이터베이스로 생성됩니다(아마도 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data 경로에 생성될 겁니다).

To-do list를 사용하는 웹 페이지 만들기

ASP.NET MVC의 스캐폴딩 기능은 액션을 생성, 조회, 수정, 삭제하는 코드를 자동으로 만들어 줍니다.

  1. Solution Explorer에서 Controllers 폴더에 마우스 오른쪽 클릭을 하고 Add를 선택한 다음, Controller을 클릭하세요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-054.png

  2. Add Controller 대화 상자에서, 컨트롤러 이름으로 HomeController를 입력한 다음, 스캐폴딩 템플릿으로 Controller with read/write actions and views, using Entity Framework를 선택합니다.
  3. 모델 클래스로는 ToDoItem을 선택하고, 데이터 컨텍스트 클래스로는 ToDoDb를 선택합니다. 그리고, Add를 클릭하세요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-055.png

  4. HomeController.cs 파일이 이미 존재한다는 대화상자가 나타날 텐데요. 대화상자에서 Overwrite HomeController.cs와 Overwrite associated views를 모두 선택한 뒤, OK를 클릭합니다.

    이는 MVC 템플릿이 기본적으로 만들어 둔 기본 홈 페이지를 변경하는 것입니다. 즉, 기본 기능을 변경하여 to-do list를 읽고 변경할 수 있도록 기능을 추가하는 것이죠.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-056.png

    OK를 클릭하면, 비주얼 스튜디오는 ToDoItem 개체에 대해서 4 종류의 기본 데이터베이스 작업(즉, CRUD)을 수행하는 컨트롤러와 뷰를 만들어 줍니다.

  5. Solution Explorer에서 Views\Home\Index.cshtml를 열어보세요.
  6. ViewBag.Title = "Index"라는 코드와 <H2> 태그 안에 있는 Index란 글자를 To Do Items라고 변경합니다.

응용 프로그램을 로컬에서 실행해보기

  1. CTRL+F5를 눌러서 응용 프로그램을 실행합니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-057.png

  2. Create New를 클릭하고, to-do list 항목을 입력해 보아요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-058.png

  3. Create를 클릭하세요. 그러면, 홈 페이지로 되돌아가게 되고 방금 입력한 항목이 출력될 것입니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-059.png

변경된 응용 프로그램을 Windows Azure와 SQL 데이터베이스에 배포하기

응용 프로그램을 게시하려면, 앞에서 게시했던 과정을 반복하면 됩니다만, 데이터베이스 배포를 구성하기 위한 단계를 추가해 주어야 합니다.

  1. Solution Explorer에서 프로젝트를 선택하고 마우스 오른쪽 클릭을 한 뒤, Publish를 선택하세요.
  2. Publish Web 마법사에서 Profile 탭을 선택합니다.
  3. Import를 클릭합니다.
  4. 앞서 게시할 때 선택했던 .publishsettings 파일을 다시 선택하세요. 이 파일 안에는 데이터베이스 게시를 구성하기 위해 필요한 SQL 데이터베이스 연결 문자열도 들어있기 때문에 다시금 .publishsettings 파일을 가져오기(import) 하는 것입니다.
  5. Settings 탭을 클릭합니다.
  6. ToDoDb 데이터베이스 용 연결 문자열 드롭다운 목록에서 .publishsettings 파일을 통해서 가져와진 SQL 데이터베이스 연결 문자열을 선택합니다.
  7. Execute Code First Migrations (runs on application start) 체크박스를 선택합니다(만일, Execute Code First Migrations라는 체크박스가 존재하지 않고 그 대신 Apply Code First Migrations라는 체크박스가 보인다면 그것을 체크하시면 됩니다)


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-060.png

    주의 : 여러분의 경우에는 아래 그림에서 보이는 것과는 달리 ToDoDB 선택란과 DefaultConnection 선택란의 순서가 바뀌어 보일 수 있습니다. 반드시 ToDoDB 선택 쪽에서 상기 설정을 하셔야 해요.

    (앞서 언급했듯이, DefaultConnection 데이터베이스는 ASP.NET 멤버쉽 시스템을 위한 것입니다. 이번 컬럼에서는 멤버쉽 기능을 사용하지 않기 때문에, 이 데이터베이스를 위한 배포 설정을 구성할 필요가 없습니다)

  8. Publish를 클릭합니다.배포가 끝나고 나면, 브라우저는 응용 프로그램의 홈 페이지를 보여줄 거에요.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-061.png

    비주얼 스튜디오는 web.config 파일 안에 있는 연결 문자열을 자동으로 변경하여 SQL 데이터베이스(SQL Azure)를 가리키도록 구성해 줍니다. 또한, 배포 후에 응용 프로그램이 처음으로 데이터베이스에 접근할 때 데이터베이스를 최신 버전으로 자동 업그레이드 하도록 Code First 마이그레이션을 구성해 주기도 합니다. 배포된 Web.config 파일 안에 있는 다음의 XML은 MigrateDatabaseToLatestVersion 이니셜라이저를 사용하여 Code First 마이그레이션을 수행하도록 설정된 모습입니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-062.png

    이렇게 설정되면, Code First는 앞서 생성된 Initial 클래스 안에 있는 코드를 실행하여 데이터베이스를 만들게 됩니다. 다만, 이러한 동작이 수행되는 시점은 배포 후 응용 프로그램이 데이터베이스에 처음으로 접근을 시도할 때입니다.

  9. 데이터베이스 배포가 올바로 되었는지를 확인하는 차원에서 이제 배포된 실제 페이지에서 To-do list 항목을 입력해 보세요. 만일, 여러분이 입력한 항목이 에러없이 저장되고 Index 페이지에서 보여진다면, 데이터베이스에 제대로 저장이 되었다고 확신할 수 있을 겁니다.


    출처 : http://www.windowsazure.com/media/devcenter/dotnet/dev-net-getting-started-063.png

응용 프로그램은 이제 데이터를 저장하기 위해 SQL 데이터베이스를 사용하면서 클라우드에서 실행되고 있습니다.

Windows Azure 웹 사이트 관련 ASP.NET에 대한 중요한 정보

다음은 Windows Azure 웹 사이트에 ASP.NET 응용 프로그램을 개발하여 올리려는 경우 확실히 알고 있어야 하는 몇 가지 중요한 사안들입니다.

  • 응용 프로그램은 반드시 ASP.NET 4.0이나 그 이전 버전을 대상으로 해야 합니다(ASP.NET 4.5는 안됩니다).
  • 응용 프로그램은 통합 모드에서 실행되어야 합니다(클래식 모드는 안됩니다).
  • 응용 프로그램은 윈도우 인증을 사용해서는 안됩니다. 일반적으로 윈도우 인증은 인터넷 기반의 응용 프로그램을 위한 인증 메커니즘으로는 사용하지 않습니다.
  • 멤버쉽, 프로필, 역할 관리자, 세션 상태와 같은 프로바이더 기반의 기능을 사용하고자 한다면, 응용 프로그램은 반드시 ASP.NET Universal 프로바이더를 사용해야만 합니다
  • 만일, 응용 프로그램이 파일에 무언가를 기록한다면, 그 파일들은 응용 프로그램의 content 폴더나 그 하위 폴더에 위치해야만 합니다.

다음 단계

지금까지 Windows Azure 웹 사이트에 웹 응용 프로그램을 배포하는 방법에 대해 살펴보았습니다. Windows Azure 웹 사이트를 구성, 관리, 확장하는 방법에 대해서 더 알고 싶다면, [공통 작업] 페이지에 있는 How-to 주제들을 살펴보시길 권해드립니다.

Windows Azure 클라우드 서비스로 응용 프로그램을 배포하는 방법을 알고 싶다면, 이번 강좌의 클라우드 버전(http://www.windowsazure.com/en-us/develop/net/tutorials/cloud-service-with-sql-database)과 Windows Azure로 웹 응용 프로그램 개발하기 컬럼을 살펴보시길 권해 드립니다. Windows Azure 클라우드 서비스에서 ASP.NET 웹 응용 프로그램을 실행하는 경우에는 Windows Azure 웹 사이트에서 응용 프로그램을 실행하는 경우보다 좀 더 많은 것들을 할 수 있는데요. 예를 들면, 다음과 같은 요구사항이 있는 경우에는 클라우드 서비스를 이용하는 것이 좋을 거에요.

  • 응용 프로그램이 실행되는 웹 서버에 대해 관리자 권한이 필요하다.
  • 응용 프로그램이 실행되는 웹 서버에 원격 데스크톱 연결을 사용하여 접근하고자 한다.
  • 응용 프로그램이 다중 티어로 구성되어 있어서, 여러 가상 머신(Web Role과 Worker Role)에 걸쳐 작업을 분산시켜야 한다.

Windows Azure 응용 프로그램에 데이터를 저장하는 또 다른 방법은 블랍(blob)과 테이블 형태의 비-관계형 데이터 스토리지를 제공하는 Windows Azure 스토리지 서비스를 이용하는 것입니다. To-do list 응용 프로그램은 SQL 데이터베이스 대신 Windows Azure 스토리지를 사용해도 올바로 동작하도록 설계되어 있습니다. SQL 데이터베이스와 Windows Azure 스토리지에 대한 좀 더 많은 정보는 Data Storage Offerings on Windows Azure를 참고하시면 됩니다.

SQL 데이터베이스를 사용하는 방법에 대해 좀 더 많은 정보가 필요하시다면, 다음의 링크들을 참고하시기 바랍니다.

만일, Windows Azure에서 ASP.NET 멤버쉽 시스템을 사용하고자 한다면, 멤버쉽 데이터베이스로서 Windows Azure 스토리지나 SQL 데이터베이스를 사용하는 방법이 궁금하실 수 있는데요. 그 경우에는 Real World: ASP.NET Forms-Based Authentication Models for Windows Azure를 참고해 보세요.

또한, 엔티티 프레임워크와 Code First 마이그레이션에 대해 더 알고 싶다면, 다음 링크를 참고하시기 바랍니다.


authored by


 
 
.NET과 Java 동영상 기반의 교육사이트

로딩 중입니다...

서버 프레임워크 지원 : 드원 테크놀로지 (NeoDEEX)
based on ASP.NET 3.5
Creative Commons License
{5}
{2} 읽음   :{3} ({4})