블로그 이미지
정홍주
Azure에 대한 내용뿐만 아니라 새로운 트렌드로 빅데이터, BI, SharePoint, 앱 등의 내용을 다룹니다.

calendar

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

Notice

2012.10.10 09:00 Microsft Azure

 

 

SQL Azure Export / Import – Preview Portal

 

Preview Portal에서 Service Bus 등의 새로운 변화가 있었는데 그 중에서 SQL Azure Export / Import 에 대한 내용을 다루어 보도록 하겠습니다. 기존 Portal 에 있었던 기능이며 새로운 기능은 아닙니다. BACPAC 으로 저장소에 Export 하고 Import 하는 내용을 Preview Portal에서 제공해주고 있는 것입니다.

 

l  Export

Preview Portal 에서 로그온 해서 SQL DATABASES 를 클릭해서 데이터베이스를 클릭해보면 아래와 같이 EXPORT 메뉴를 볼 수 있습니다.

 

EXPORT 메뉴를 클릭하면 다음과 같은 정보를 볼 수 있습니다.

 

파일이름은 BACPAC 확장자로 구성되며 Windows Azure 저장소에 저장되게 됩니다. BACPAC 이름과 저장소 컨테이너를 선택하거나 새로 생성하고 데이터베이스의 로그인 정보를 입력하고 확인을 선택하면 됩니다.

시간이 지나면 아래와 같은 작업 결과를 볼 수 있습니다.

 

해당 저장소 계정으로 이동하여 컨테이너를 클릭하면 위에서 작업한 컨테이너 이름에 해당 파일이 BLOB 데이터로 내보내기 된 것을 확인할 수 있습니다.

 

Visual Studio 2010의 서버 탐색기에서도 확인이 가능합니다. 또한 다른 이름으로 로컬에 저장할 수도 있습니다.

 

Export BACPAC 을 로컬 SQL Server에서는 데이터 계층 응용 프로그램 가져오기를 통해 데이터베이스를 생성할 수 있습니다.
 

가져오기가 완료되었고 실행해보면 데이터까지 있는 것을 확인 가능합니다.

 

 

l  Import

SQL Azure 에서 Import 하는 방법은 Preview Portal 에서 SQL DATABASES 메뉴에서 IMPORT 메뉴를 볼 수 있습니다.

 

IMPORT 메뉴를 클릭할 경우 BACPAC URL을 검색해서 저장소 계정의 BACPAC 파일을 선택할 수 있으며 데이터베이스 이름과 서버, 로그인 정보를 통해 IMPORT를 완료할 수 있습니다.

 

 

관리 사이트로 이동해서 실제 데이터를 확인 가능합니다.

 

이상으로 Preview Portal 에서 업데이트된 내용으로 기존 Portal 에서 제공되던 SQL Azure Export /Import 에 대한 내용을 알아보았습니다. 본 글과 연관된 내용으로 SQL Server 2012 를 통해 SQL Azure 에 데이터나 BACPAC를 처리하는 내용을 다음 글에서 알아보도록 하겠습니다.

 

posted by 정홍주
2012.10.08 08:29 Microsft Azure

 

Windows 스토어 & Windows Azure Web Sites

 

Windows Azure Mobile Services 를 통해서 Windows 8 App 에 대한 Data, Push Notification, Authentication 에 대한 내용을 접근할 수 있는데 Data 에 대한 내용은 추가적으로 Windows Azure Web Sites 를 통해서 접근이 가능합니다.

 

본 글에서는 ASP.NET MVC 4 Web API를 이용해서 Windows 8 App 에서 데이터를 조회하도록 하겠습니다. 먼저 데이터에 해당하는 SQL Azure 에 대한 내용은 미리 데이터가 아래 그림처럼 추가되어 있습니다.
 

SQL Azure를 이용하는 ASP.NET MVC 4  프로젝트를 .NET Framework 4로 생성합니다. 여기서는 아래 그림처럼 Web API 프로젝트로 생성합니다.
 

ADO.NET Entity Framework 을 통해 SQL Azure를 접근해보도록 하겠습니다. SQL Azure의 서버와 암호를 통해 해당 테이블을 접근합니다.
 

Web API 를 생성하기 위해 컨트롤러를 추가하면서 빈 API 컨트롤러를 선택합니다.
 

API 에는 아래와 같은 코드를 작성합니다. 

public class DemoController : ApiController

    {

        DemoEntities ent = new DemoEntities();

        // GET api/demo

        public List<Demo> Get()

        {

            var d = from p in ent.Demoes

                    orderby p.ID descending

                    select p;

 

            return d.ToList();

        }

테스트해서 JSON 파일을 확인했으면 Windows Azure로 게시합니다.

 

게시가 잘 되었다면 Windows 스토어 프로젝트를 생성합니다. 여기서는 빈 App 프로젝트로 생성합니다. MainPage.xaml.cs 에 아래와 같은 코드를 작성합니다. 위에서 게시한 Web API를 호출해서 ListBox에 바인딩하는 코드를 아래와 같이 작성합니다. 

public async void GetItems()

        {

            var serviceURI = "http://웹사이트.azurewebsites.net/API/Demo";

 

            using (var client = new System.Net.Http.HttpClient())

            using (var response = await client.GetAsync(serviceURI))

            {

                var result = await response.Content.ReadAsStreamAsync();

 

                var ser = new DataContractJsonSerializer(typeof(ObservableCollection<Demo>));

                var data = ser.ReadObject(result) as ObservableCollection<Demo>;

 

                this.listValues.ItemsSource = data;

            }

        }

Web API를 통해 손쉽게 JSON 처리가 가능하며 MVC 4 에서도 손쉽게 사용이 가능합니다. 또한 위에서 보았듯이 Web APIWindows 스토어 앱에서도 호출이 가능합니다. Windows Mobile Services의 경우 50~1,000건으로 제한되는데 필요하다면 1,000건 이상도 조회가 가능합니다.

posted by 정홍주
2012.10.05 09:04 Microsft Azure

 

 

Windows Azure - Mobile Services (4)

 

포럼에 질문이 올라와서 Mobile Services 데이터 페이징에 대한 내용을 정리합니다. Windows 8 App을 개발하실때 참조하실수 있습니다.

관련 내용은 아래 링크의 NOTE 부분을 참고하시기 바랍니다.

http://www.windowsazure.com/en-us/develop/mobile/tutorials/add-paging-to-data-dotnet/

To prevent data overflow in mobile device clients, Mobile Services implements an automatic page limit, which defaults to a maximum of 50 items in a response. By specifying the page size, you can explicitly request up to 1,000 items in the response.

 

Windows Azure Mobile Services는 기본적으로 50건의 데이터를 가져오도록 되어 있습니다. Take 메서드를 쓰면 1,000개까지 지원이 가능하며 페이징으로 구현할수 있습니다.

 

Mobile Services의 경우 실제 데이터는 아래 그림처럼 50건 이상이 있습니다.

 

기본적인 아래 쿼리 구문으로 데이터를 조회하면 해당 데이터는 50건만 나타나게 됩니다.

private void RefreshTodoItems()

        {

            // This code refreshes the entries in the list view be querying the TodoItems table.

            // The query excludes completed TodoItems

            items = todoTable

                .Where(todoItem => todoItem.Complete == false)

                .ToCollectionView();

            ListItems.ItemsSource = items;

        }

 

페이징에 대한 내용은 SKIP, TAKE 메서드를 통해 구현이 가능합니다. 51 건 이후의 2 페이지를 검색해보겠습니다.

private void RefreshTodoItems()

        {

            // This code refreshes the entries in the list view be querying the TodoItems table.

            // The query excludes completed TodoItems

            items = todoTable

                .Where(todoItem => todoItem.Complete == false).Skip(50).Take(50)

                .ToCollectionView();

            ListItems.ItemsSource = items;

        } 

1,000 건을 들고와 보겠습니다. 잘 동작합니다.

items = todoTable

                .Where(todoItem => todoItem.Complete == false).Take(1000)

                .ToCollectionView();

            ListItems.ItemsSource = items;

10,000 건을 들고오면 아래와 같이 Exception이 발생하게 됩니다. 1,001 을 조회하려고 해도 마찬가지로 오류가 발생합니다.

items = todoTable

                .Where(todoItem => todoItem.Complete == false).Take(10000)

                .ToCollectionView();

            ListItems.ItemsSource = items;

 

한꺼번에 1,000건 이상의 데이터를 다 들고 와서 App에서 사용하려고 한다면 WebAPI, REST 서비스를 별도로 만들어야 할 것으로 보입니다.

간략하게 Windows Azure Mobile Services 에 대한 데이터 페이징을 알아보았습니다.

posted by 정홍주
2012.09.24 08:00 Microsft Azure/SQL Databases

 

SQL Azure Update 2012-09

 

저번 주에 SQL Azure 일부 기능이 업데이트 되었습니다.  보다 자세한 정보는 아래를 참고할 수 있습니다.

http://blogs.msdn.com/b/windowsazure/archive/2012/09/19/announcing-updates-to-windows-azure-sql-database.aspx

 

l  SQL Azure를 연결된 서버와 분산 쿼리

l  재귀 트리거 지원

l  DBCC SHOW_STATISTICS 지원

l  데이터베이스 수준에서 SQL Azure 방화벽 구성 가능

 

연결된 서버와 데이터베이스 수준에 대한 방화벽 구성에 대한 내용을 보다 더 구체적으로 살펴보겠습니다.

 

l  연결된 서버와 분산 쿼리

연결된 서버는 SQL Server에서 Excel, Oracle, 다른 SQL Server 등으로 연결해서 쿼리 문을 통해 분산 쿼리를 지원하는 기능인데 SQL Server에서 SQL Azure 서버를 연결된 서버로 추가할 수 있습니다.

ON-prem SQL Server 에서 SQL Azure를 연결된 서버로 연결해서 쿼리를 수행해보도록 하겠습니다. 연결된 서버에 대한 내용은 아래 링크를 참조할 수 있습니다. 먼저 서버를 추가하고 로그인을 추가해야 합니다.

http://technet.microsoft.com/ko-kr/library/ms188279.aspx

 

아래와 같은 쿼리를 ON-prem SQL Server 에서 실행합니다.

EXEC sp_addlinkedserver

@server='SQLAzureDemo',

@srvproduct='',    

@provider='SQLNCLI',

@datasrc='서버이름.database.windows.net', 

@location='',

@provstr='',

@catalog='AdventureWorks2012' 

 

GO 

 

EXEC sp_addlinkedsrvlogin

@rmtsrvname = 'SQLAzureDemo',

@useself = 'false',

@rmtuser = 'SQLAzure사용자계정',            

@rmtpassword = '비밀번호'

GO

 

EXEC sp_serveroption 'SQLAzureDemo', 'rpc out', true;

 

 

아래와 같은 쿼리 문을 통해 결과를 확인할 수 있습니다.

 

exec ('INSERT INTO [HumanResources].[Department]( Name, GroupName) VALUES(''Hong'',''HongGroup'')')

 at SQLAzureDemo

GO

 

UPDATE  SQLAzureDemo.AdventureWorks2012.HumanResources.Department

SET Name='H'

WHERE DepartmentID =17

 

 

SELECT * FROM SQLAzureDemo.AdventureWorks2012.HumanResources.Department

ORDER BY DepartmentID DESC

 

 

 

 

l  데이터베이스 수준에서 방화벽 설정

http://msdn.microsoft.com/en-us/library/windowsazure/jj553530.aspx

 

서버 수준의 방화벽은 Windows Azure Management Portal 과 프로그램을 통해 설정할 수 있습니다. 서버 수준에서의 방화벽 설정은 모든 데이터베이스에 적용되어 응용 프로그램 별로 다른 수준의 방화벽을 설정하는 것은 어려웠지만 이번 업데이트를 통해 데이터베이스 수준의 방화벽을 설정 가능합니다.

데이터베이스 수준의 방화벽 설정은 저장 프로시저를 통해 가능합니다. 아래 쿼리를 참고할 수 있습니다.

 

-- 검색

SELECT * FROM sys.database_firewall_rules

 

-- 설정

EXEC sp_set_database_firewall_rule N'AW','14.52.118.168','14.52.118.168'

 

-- 제거

EXEC sp_delete_database_firewall_rule N'AW'

 

 

서버 수준의 방화벽에는 해당 IP 가 없지만 해당 데이터베이스에는 연결이 가능합니다.

SQL Azure Federation의 경우는 Root 에서 설정된 경우 Member 로 상속이 바로 되지 않으므로 확인할 필요가 있습니다.

 

이상으로 간단하게 SQL Azure2012 9월 업데이트 내용을 알아보았습니다.

 

'Microsft Azure > SQL Databases' 카테고리의 다른 글

Windows Azure Media Services -Generally Availability  (0) 2013.01.23
Windows Azure Update 2012년 11월 – SQL Azure  (0) 2012.11.27
SQL Azure Update 2012-09  (0) 2012.09.24
NewSQL  (1) 2012.08.13
SQL Azure Migration Wizard  (0) 2012.07.09
SQL Azure Federarion- 페더레이션 (5)  (0) 2012.07.07
posted by 정홍주
2012.09.21 08:00 SharePoint/SharePoint 2013

 

SharePoint 2013 Ignite 

 

SharePoint 2013 에서 App 이 등장했는데요, App 라는 내용이 개발자에게나 파워 유저에게 강력함을 제공할 것으로 생각됩니다. 또는 혼란(?)이 올 것으로 보입니다.
  

현재는 Beta 이므로 변경사항이나 진행중인 사항이 많겠지만 미리 준비하는 측면에서 도움이 될 것으로 생각됩니다.

 

Dallas 에서 9 17일부터 SharePoint 2013 Ignite 가 진행 중입니다.

 

앞으로 SharePoint 2013 Office 365 Preview에 대한 내용을 SharePoint 2013 카테고리를 통해 블로깅할 예정입니다.

 

아래에 동일한 비디오가 있으니 참고하시면 좋을 것 같습니다. 홍지미 강사님이 알려주심~

http://msdn.microsoft.com/en-US/sharepoint/fp123633

 

 

 

 

 

'SharePoint > SharePoint 2013' 카테고리의 다른 글

Apps for SharePoint 2013, Apps for Office  (0) 2012.11.29
SharePoint 2013 Apps  (0) 2012.11.26
SharePoint Conference 2012  (0) 2012.11.13
Office 2013 & SharePoint 2013  (0) 2012.10.27
SharePoint 2013 – Visual Studio 2012  (1) 2012.10.12
SharePoint 2013 Ignite  (0) 2012.09.21
posted by 정홍주
2012.09.20 08:00 Microsft Azure

 

Windows Azure Update

 

9월 중순(2012-09-17)Windows Azure가 일부 업데이트되었습니다. 업데이트 내용은 아래 링크를 참조할 수 있습니다.

http://weblogs.asp.net/scottgu/archive/2012/09/17/announcing-great-improvements-to-windows-azure-web-sites.aspx

 

l  “Shared” 스케일

l  사용자 지정 도메인

l  Deploy - CodePlex

 

스케일에 대한 경우는 Windows Azure Overview를 소개할 때 질문이 나왔던 사항이며, 지속적으로 업데이트 된다고 얘기했는데 요번에 업데이트가 되었습니다.

Windows Azure Web Site를 생성하고 나서 Scale로 가보면 아래와 같이 화면이 변경되어 있습니다.

 

Web Site Mode 3 가지로 FREE, SHARED, RESERVED 가 있는 것을 알 수 있습니다.

FREE의 경우는 고정 쿼터로 구동되는 웹 사이트이며 10개의 웹 사이트를 무료로 사용이 가능하며 SHAREDCPU, Memory, Network Usage 등의 쿼터가 없으며 대역폭의 한계도 가지고 있지 않은 고정과는 다른 유연한 모드입니다. RESERVED dedicated VM을 할당한 모드입니다. 적절하게 상황에 따라 모드를 웹 브라우저에서 바로 변경이 가능합니다. SHARED 모드를 사용하면 더 유연하고 저비용으로 사용이 가능할 것 같습니다.

 

SHARED, RESERVED 모드일 경우는 MANAGE DOMAINS 링크가 활성화됩니다. CNAME 뿐만 아니라 A 레코드에 대한 내용도 지원하고 있습니다.

 

배포에 대한 업데이트 내용은 위 링크를 참조할 수 있습니다.

posted by 정홍주
2012.09.19 08:00 New Feature

 

Office 365 Developer Site

 

Office 365 Developer Site 에 대한 내용은 7월에 얘기된 사항이지만 아래 주소를 통해 테스트 계정을 생성해서 미리 Office 365 Preview SharePoint 2013 사이트에 대한 내용을 확인할 수 있습니다.

http://msdn.microsoft.com/en-us/library/fp179924(v=office.15).aspx

Office 365 PreviewSharePoint 2013 App 의 개발에 대한 접근도 가능합니다.

위 그림에서 보면 Get tools to build apps 라는 링크를 볼 수 있으며 이 링크를 통해 “Napa” 라는 SharePoint 무료 App 이며 웹 기반의 개발 도구를 접근할 수도 있습니다. Napa 에 대한 내용은 아래 링크를 참고하실 있습니다. 

http://msdn.microsoft.com/en-us/library/office/apps/fp179924(v=office.15)

 

Next steps for working with "Napa" Office 365 Development Tools

Create apps for Office and SharePoint by using "Napa" Office 365 Development Tools

How to: Create your first content app for Excel by using "Napa" Office 365 Development Tools

How to: Create your first mail app for Outlook by using "Napa" Office 365 Development Tools

How to: Create a basic app for SharePoint by using Office 365 Development Tools Preview

 

'New Feature' 카테고리의 다른 글

Gartner IT 10 대 전략 기술  (0) 2013.01.01
2012년 IT 동향 종합 요약  (0) 2012.12.31
Office 365 Developer Site  (0) 2012.09.19
Windows Store - 웹타임 앱  (0) 2012.08.20
Visual Studio 2012 – 스토어, 웹타임 앱  (0) 2012.08.17
Visual Studio 2012 & Windows 8 RTM  (0) 2012.08.16
posted by 정홍주
2012.09.10 08:30 Microsft Azure

Windows Azure – Mobile Services (3)

 

본 글에서는 Mobile Services를 통해 Windows 8 App에 인증을 손쉽게 구현해보도록 하겠습니다. 먼저 Windows Push Notifications & Live Connect 사이트에 로그온하여 내 앱 메뉴를 클릭합니다. 이미 작업했던 앱 이름을 확인할 수 있으며 앱 이름을 클릭하고 설정 변경에서  API 설정을 클릭합니다. 클라이언트 암호와 리디렉션 도메인을 아래 그림처럼 확인이 가능합니다. 클라이언트 암호는 Windows Azure Management Portal에서 사용할 것이며 리디렉션 도메인은 Windows Azure Management Portal Mobile Services 에서의 사이트 URL을 입력하면 됩니다.

(https://스이름.azure-mobile.net/)

 

Windows Azure Management Portal Mobile Services 로 이동하여 상세 정보 페이지로 이동하여 IDENTITY 메뉴에서 클리이언트 암호를 확인합니다.

DATA 메뉴를 클릭하고 TodoItem 을 클릭하여 권한을 인증된 사용자만 액세스 할 수 있도록 아래와 같이 설정합니다. 모든 권한을 Only Authenticated Users 로 선택하고 SAVE 메뉴를 클릭합니. 

 

Windows 8 App을 시작하고 저장이나 새로고침을 해보면 아래와 같은 401 오류가 발생하는 것을 알 수 있습니다.

 

Live SDK for Windows가 설치되어 있지 않다면 아래 URL을 통해 다운로드하여 설치합니다.

(http://msdn.microsoft.com/en-us/live/ff621310)

Windows 8 프로젝트의 솔루션 탐색기에서 참조 추가를 통해 Microsoft.Live.dll을 추가합니다.

C:\Program Files (x86)\Microsoft SDKs
\Live\v5.0\Metro XAML\References\CommonConfiguration\Neutral

 

개체 탐색기를 통해 Microsoft.Live.dll을 확인할 수 있습니다.

 

MainPage.xaml.cs 에 아래와 같은 using 구문을 추가합니다.

using Microsoft.Live;

using Windows.UI.Popups;

 

session 이라는 필드와 Authenticate 메서드를 MainPage 클래스에 아래와 같이 선언합니다.

private LiveConnectSession session;

 

 

private async System.Threading.Tasks.Task Authenticate()

{

LiveAuthClient liveIdClient = new LiveAuthClient("<<TODO Redirect URL here>>");

 

while (session == null)

{

       if (liveIdClient.CanLogout)

liveIdClient.Logout();

 

 

      LiveLoginResult result = await liveIdClient.LoginAsync(new[] { "wl.basic" });

      if (result.Status == LiveConnectSessionStatus.Connected)

      {

          session = result.Session;

          LiveConnectClient client = new LiveConnectClient(result.Session);

          LiveOperationResult meResult = await client.GetAsync("me");

          MobileServiceUser loginResult = await App.MobileService.LoginAsync(session.AuthenticationToken);

 

string title = string.Format("환영 {0} !", meResult.Result["first_name"]);

          var message = string.Format("로그인 ID - {0}", loginResult.UserId);

          var dialog = new MessageDialog(message, title);

          ialog.Commands.Add(new UICommand("OK"));

          await dialog.ShowAsync();

      }

      else

      {

          session = null;

          var dialog = new MessageDialog("로그인 필요");

          dialog.Commands.Add(new UICommand("OK"));

          await dialog.ShowAsync();

 

      }

 }

}

}

 

위 코드에서 <<TODO Redirect URL here>> Mobile Servicessite url을 입력합니다.

그리고 OnNavigtedTo 이벤트를 아래와 같이 수정합니다.

protected async override void OnNavigatedTo(NavigationEventArgs e)

        {

            await Authenticate();

            RefreshTodoItems();

        }

 

F5를 통해 App을 시작하면 아래와 같은 인증 창이 나타나는 것을 확인 가능합니다. 손쉽게 Live 인증에 대한 내용을 추가할 수 있다는 것을 알 수 있습니다.

로그인에 성공하면 코드에서처럼 dialog가 나타나게 됩니다.  

이상으로  Windows Azure에서 제공되는 Mobile Services 에 대한 Data, Push Notification, Authentication에 대한 내용을 알아보았습니다. 이를 통해 Windows 8 App에 대한 기능을 더 손쉽게 추가할 수있다는 것을 확인할 수 있습니다.

 

posted by 정홍주
2012.09.07 09:30 Microsft Azure

 

Windows Azure – Mobile Services (2)

 

두 번째 글은 Mobile Services를 통해 Push Notification을 구성해보도록 하겠습니다. Push Notification Windows Phone 7 에서  서비스를 이용해서 Notification을 받아  Tile을 업데이트 하거나 했었는데요. Windows 8 App 에서도 Push Notification을 구성할 수 있는데 여러가지 작업을 해야 겠지만 Mobile Services 를 통해 손쉽게 처리할 수 있습니다.

 

Mobile Services를 통해 Push Notification 을 구성하기 위해서는 Metro 스타일 앱의 응용 프로그램 관리 사이트 로 이동해서 App의 패키지 표시 이름과 게시자를 구성하여야 합니다.

Mobile Services를 통해 생성한 프로젝트의 package.appxmanifest 를 클릭하여 패키지 이름과 게시자를 확인 합니다.

그리고 위 사이트로 이동하여 아래 그림처럼 Step 2 에서 값을 입력하고 동의함을 클릭합니다.

 

그러면 다음 페이지에서 Package name, Client secret Package Security Identifier (SID)를 확인 가능합니다.

Package name은 아래 그림처럼 Visual Studio 프로젝트에서 변경해주시면 됩니다.

 

Client secret Package Security Identifier (SID) Windows Azure Mobile Services 에서 사용하게 됩니다. Windows Azure Management Portal Mobile Services의 상세 페이지로 이동하여 아래 그림처럼 PUSH 메뉴를 클릭합니다. Client secret Package Security Identifier (SID) 를 입력합니다.  

Windows 8 App Push Notification 을 구성하도록 하겠습니다. 먼저 package.appxmanifst 파일에서 응용프로그램 UI 탭에서 알림가능을 예로 선택되었는지 확인합니다. 아니오라면 예로 선택합니다.

App.xaml.cs 로 이동하여 아래처럼 Channel 클래스를 추가하고 Push Notification 을 구성하겠습니다.

 

public class Channel

    {

        public int Id { get; set; }

        public string Uri { get; set; }

    }

 

Push Notification을 위해 아래와 같은 using 구문을 추가합니다.

using Windows.Networking.PushNotifications;

 

onLaunched 메서드는 async로 아래와 같이 변경합니다.

protected async override void OnLaunched(LaunchActivatedEventArgs args)

 

Push Notification 을 구성하기 위해 아래와 같은 코드를 onLaunched 메서드의 맨 아래에 추가합니다.

var ch = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

 

await MobileService.GetTable<Channel>().InsertAsync(new Channel() { Uri = ch.Uri });

 

 

Todolist 테이블에 값이 추가될 때 마다  Push Notification 을 전송하기 위해 Channel 테이블을 Mobile Services에 생성하도록 하겠습니다. Windows Azure Management Portal Mobile Services의 상세 페이지에서 DATA 메뉴를 클릭하고 하단의 CREATE 메뉴를 클릭합니다. 테이블 이름은 Channel로 지정합니다. 

생성된 테이블은 아래와 같으며 컬럼이 id 만 생성되어 있는 것을 확인가능하며 코드와 Script를 통해 구 성할 것입니다.

 위 그림의 Script 메뉴를 클릭합니다. Script를 통해 추가적인 작업이 가능하며 여기서는 동일한  Uri 일 경우 Notification을 하지 않도록 스크립트를 아래와 같이 추가하고 Save 버튼을 클릭합니다. 

스크립트의 실제 내용은 아래와 같습니다.

function insert(item, user, request) {

    var channelTable = tables.getTable('Channel');

    channelTable.where({ uri: item.Uri })

        .read({ success: insertChannelIfNotFound});    

 

    function insertChannelIfNotFound(existingChannels) {

        if(existingChannels.length > 0) {

                                          request.respond(200, existingChannels[0]);

        } else {

                                          request.execute();

        }

    }

}

 

 

왼쪽의 TodoItem을 클릭하여 마찬가지로 Script를 통해 Insert 동작에서 Channel 테이블에 등록된 Uri ToastNotification을 전송하는 스크립트를 작성합니다. 

실제  스크립트는 아래와 같습니다.

function insert(item, user, request) {

    request.execute({

        success: function(){

                                          request.respond();

                                          sendNotifications(item);

        },

        error: function(err){

                                          request.respond(500, "Error");

        }

    });

}

 

function sendNotifications(item){              

    var channelTable = tables.getTable('Channel');

        channelTable.read({

            success: function(channels){

                channels.forEach(function(channel){

                    push.wns.sendToastText04(channel.Uri, {

                        text1: item.text,

                        text2: "text line 2",

                        text3:  "text line 3"

                    }, {

                        success: function(response){                                              

                            console.log(response);

                        },                                   

                        error: function(err){                                              

                            console.error(err);                      

                        }                   

                    });

                });

            }       

    });   

}

 

 

이제 Visual Studio 2012에서 로컬 컴퓨터로 실행하여 TodoItem에 값을 입력하면 ToastNotification이 발생되는 것을 확인할 수 있습니다.

 


Live Connect, App Channel 등록과 Azure의 스크립트를 통해 손쉽게 Push Notification을 구성할 수 있습니다. 

 

 

posted by 정홍주
2012.09.03 06:50 Microsft Azure

 

Windows Azure - Mobile Services (1)

8월말에 Windows Azure Mobile Service가 발표되었으며 Windows 8 에서 한번 살펴보도록 하겠습니다.

 

먼저 Windows Azure Management Portal에서 Mobile Services를 생성하고 C# 응용 프로그램을 통해 테스트 할 수 있습니다. 그리고 Push NotificationAuthentication 을 추가할 수 있습니다.

본 글에서는 Mobile Services를 생성하고 C# 응용 프로그램에서 SQL Azure의 데이터를 처리하는 내용을 다룹니다. Windows Azure Training Kit Mobile Services를 참조합니다.

 

1.     Windows Azure Management Portal 로 로그온합니다. Mobile Services가 활성화 되었다면 아래와 같은 화면을 볼 수 있습니다. 생성하기 위해 “CREATE A NEW APP” 링크나 하단의 NEW 메뉴를 클릭합니다.
 

2.     Mobile Services URLSQL Azure 데이터베이스를 생성합니다. Mobile Services는 아래 그림에서 입력한 URLhttps://hMobile.azure-mobile.net 으로 생성되게 됩니다. SQL Azure Windows 8 App 에서의 데이터를 위한 저장소에 해당됩니다.

 

3.     SQL Azure 데이터베이스에 대한 정보를 아래와 같이 입력합니다.

 

4.     완료 버튼을 누르면 아래와 같이 생성된 내용을 확인 가능합니다.

5.     이름을 클릭해서 상세 페이지로 이동할 수 있습니다. Data, Push, Identity 를 볼 수 있으며 Windows 8 App 에서 Data, Push, Identity 를 손쉽게 구현할 수 있도록 해주는 것이 Mobile Services라는 것을 확인 가능합니다.
 

6.     Create a new Windows 8 Application 메뉴를 확인할 수 있습니다. 여기서는 새로 생성하는 것으로 진행합니다. 링크를 클릭하면 단계를 아래와 같이 확인 가능합니다.
 

1번의 Mobile Services SDK Mobile Services를 액세스 할 수 있는 어셈블리이므로 설치를 먼저 해야 합니다.

2번의 Table 만들기는 .NET 개체 및 SQL Azure 테이블을 구성하게 됩니다.

마지막으로 3번의 응용 프로그램을 선택하고 다운로드 합니다

7.     압축을 풀고 프로젝트를 실행하면 아래와 같은 결과를 볼 수 있습니다.

저는 동일한 값을 두 번씩 입력했습니다.

8.     Windows Azure Management Portal 에서 Mobile Services의 상세 페이지의 Data에서도 확인이 가능합니다.
 

9.     프로젝트로 와서 코드를 한번 확인해보도록 하겠습니다. 솔루션 탐색기를 보면 Mobile Services 관련 어셈블리가 추가되어 있는 것을 확인할 수 있습니다.

 

10.   App.xaml.cs 에서 MobileClientService를 정의하고 있습니다.

11.   MainPage.xaml.cs 에서는 테이블 개체를 정의하고 INSERT, SELECT를 코드로 접근하고 있습니다.

 

위에서 살펴본 것처럼 Windows Azure Mobile Services Windows 8 App 에서 클라우드의 데이터를 손쉽게 접근하게 해주는 것을 확인 가능합니다. Mobile Servcies를 통해 WCF를 생성하고 REST API를 호출하는 등의 내용 없이 가능하다는 것을 알아보았습니다.

 

이어서 Push Notification, Authentication 에 대한 접근을 알아보도록 하겠습니다.

 

posted by 정홍주