自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Azure上構(gòu)建一個(gè)基于Facebook的營(yíng)銷(xiāo)式應(yīng)用程序(上)

原創(chuàng)
云計(jì)算
當(dāng)你的Facebook應(yīng)用程序點(diǎn)擊率上升的時(shí)候,它如何進(jìn)行擴(kuò)展呢?如果你是在Windows Azure上構(gòu)建的這個(gè)應(yīng)用程序,并且是按橫向擴(kuò)展的思想設(shè)計(jì)的這個(gè)應(yīng)用程序,那么很高興地告訴,你可以“高枕無(wú)憂(yōu)”了。

當(dāng)你的Facebook應(yīng)用程序點(diǎn)擊率上升的時(shí)候,它如何進(jìn)行擴(kuò)展呢?如果你是在Windows Azure上構(gòu)建的這個(gè)應(yīng)用程序,并且是按橫向擴(kuò)展的思想設(shè)計(jì)的這個(gè)應(yīng)用程序,那么很高興地告訴,你可以“高枕無(wú)憂(yōu)”了。

我們將會(huì)一步一步地為你講述,如何使用Windows Azure Toolkit和Facebook C# SDK(這兩個(gè)工具包可以在CodePlex上找到),在Azure上創(chuàng)建一個(gè)簡(jiǎn)單的基于Facebook的“病毒式”營(yíng)銷(xiāo)應(yīng)用程序,這兩個(gè)工具包可以讓這個(gè)工作變得更加輕松。

Facebook營(yíng)銷(xiāo)活動(dòng)的主要目的是讓客戶(hù)更多地參與你的業(yè)務(wù),類(lèi)似于這樣:在你的公司的Facebook頁(yè)面上,你可以給提供了聯(lián)系信息的客戶(hù)發(fā)放一些獎(jiǎng)品。這個(gè)活動(dòng)要有一定的時(shí)間限制,因?yàn)槟愕莫?jiǎng)品數(shù)量是有限的。但是,如果這個(gè)活動(dòng)已經(jīng)開(kāi)始了,你必須做好應(yīng)對(duì)指數(shù)級(jí)增長(zhǎng)的準(zhǔn)備,因?yàn)檫@個(gè)活動(dòng)會(huì)像病毒一樣傳播開(kāi)來(lái)。對(duì)于構(gòu)建一個(gè)擁有這樣生命周期的應(yīng)用程序來(lái)說(shuō),Windows Azure是一個(gè)理想的平臺(tái)。你可以從幾個(gè)實(shí)例開(kāi)始,限制存儲(chǔ)空間,然后按需進(jìn)行擴(kuò)展。當(dāng)這個(gè)活動(dòng)“降溫”的時(shí)候,你可以卸載掉那些多余的實(shí)例。

但是,只是簡(jiǎn)單地運(yùn)行在Azure并不能保證可以獲得很好的可擴(kuò)展性。一個(gè)Azure應(yīng)用程序還需要使用一些方法(例如:分割成多個(gè)角色),和簡(jiǎn)單的,可擴(kuò)展的存儲(chǔ)結(jié)構(gòu),針對(duì)擴(kuò)展來(lái)進(jìn)行設(shè)計(jì)才能獲得很好的可擴(kuò)展性。

在本文中,我們將會(huì)在Azure上構(gòu)建一個(gè)可擴(kuò)展的基于Facebook的營(yíng)銷(xiāo)式應(yīng)用程序。這個(gè)樣例應(yīng)用程序的靈感來(lái)自于獲得巨大成功的Bloomin' Onion Facebook Campaign,這個(gè)應(yīng)用程序是2009年下半年,Thuzi團(tuán)隊(duì)為Outback Steakhouse構(gòu)建的。它構(gòu)建在兩個(gè)工具包(Windows Azure Toolkit和Facebook C# SDK)基礎(chǔ)之上的,這兩個(gè)工具包也是Thuzi團(tuán)隊(duì)的那些開(kāi)發(fā)者構(gòu)建的。Windows Azure Toolkit開(kāi)始的時(shí)候只是為在Azure上構(gòu)建基于Facebook的應(yīng)用程序提供一站式服務(wù)而已,但是后來(lái)演變成了一個(gè)通用的Azure開(kāi)發(fā)工具包。當(dāng)我們?cè)谶@個(gè)應(yīng)用程序中使用Windows Azure Toolkit進(jìn)行存儲(chǔ)和隊(duì)列管理的時(shí)候,這些技巧可以應(yīng)用到Azure平臺(tái)上的任何一個(gè)應(yīng)用程序中。(關(guān)于)(關(guān)于Thuzi團(tuán)隊(duì)

這個(gè)應(yīng)用程序都做些什么

我們會(huì)把這個(gè)應(yīng)用程序構(gòu)建成一個(gè)基于Fackbook的canvas應(yīng)用程序,把canvas URL指向運(yùn)行在Azure上的那個(gè)應(yīng)用程序??蛻?hù)第一次運(yùn)行這個(gè)應(yīng)用程序("AzureSample")的時(shí)候,他們會(huì)看到一個(gè)權(quán)限請(qǐng)求窗體,詢(xún)問(wèn)這個(gè)應(yīng)用程序是否可以從Facebook中讀取信息(例如:客戶(hù)的出生日期)。

(圖1 因?yàn)檫@個(gè)應(yīng)用程序需要訪(fǎng)問(wèn)客戶(hù)的出生日期,所以Facebook會(huì)在這個(gè)應(yīng)用程序啟動(dòng)前,顯示一個(gè)權(quán)限窗體。這個(gè)應(yīng)用程序通過(guò)一個(gè)由Facebook C# SDK提供的特性(attribute)來(lái)聲明它需要哪些權(quán)限。)

假設(shè)這個(gè)客戶(hù)給我們授予了必要的權(quán)限,我們啟動(dòng)了AzureSample,然后開(kāi)始收集客戶(hù)的信息。

(圖2 第一個(gè)頁(yè)面來(lái)自于這個(gè)應(yīng)用程序的canvas URL,用來(lái)收集客戶(hù)的信息。當(dāng)這個(gè)頁(yè)面打開(kāi)的時(shí)候,“First Name”, “Last Name”, 和“Date of Birth”都已經(jīng)用從Facebook讀取到的信息提前填充好了。)

這個(gè)客戶(hù)的“First Name”, “Last Name”, 和“Date of Birth”都是從Facebook中讀取到的,然后提前填充到窗體的相應(yīng)字段中。這個(gè)客戶(hù)只需填充“Email Address”和“Zip Code”字段就可以繼續(xù)瀏覽下一個(gè)頁(yè)面了。

(圖3 商店選擇頁(yè)面。我們給這個(gè)客戶(hù)提供了一個(gè)包含三個(gè)商店的列表,這三個(gè)商店是根據(jù)他們?cè)谇耙粋€(gè)頁(yè)面中輸入的郵政編碼而列出的,這些商店都在郵政編碼所在地方圓50英里之內(nèi)??蛻?hù)可以選擇一個(gè)自己喜歡的商店。)

下一個(gè)頁(yè)面展示了一個(gè)包含三個(gè)附近的商店的列表,客戶(hù)在上一步輸入的郵政編碼在這里發(fā)揮了關(guān)鍵性的作用。這三個(gè)商店是這個(gè)客戶(hù)的郵政編碼所在地方圓50英里內(nèi)最近的商店。(對(duì)于這個(gè)實(shí)例來(lái)說(shuō),我使用隨機(jī)的郵政編碼生成了一個(gè)包含1000個(gè)商店的列表,作為樣例數(shù)據(jù)來(lái)使用。)在這一步,我們已經(jīng)收集到了我們需要的所有的用戶(hù)信息。“AzureSample”會(huì)啟動(dòng)一個(gè)后臺(tái)任務(wù),把一封帶有客戶(hù)獎(jiǎng)品的email發(fā)送給那個(gè)客戶(hù),然后把這些聯(lián)系信息從快速的Azure Table Storage遷移到更加容易查詢(xún)的SQL Azure中。接下來(lái),剩下的所有事情就是展示一個(gè)完成頁(yè)面了。

(圖4 “thank-you”頁(yè)面。如果客戶(hù)在注冊(cè)以后再次運(yùn)行這個(gè)應(yīng)用程序,他們會(huì)被自動(dòng)地重定向到這個(gè)頁(yè)面。)

#p#

項(xiàng)目結(jié)構(gòu)

在Facebook上,這個(gè)應(yīng)用程序叫作“AzureSample”,因?yàn)樵贔acebook上的應(yīng)用程序不能包含“facebook”這個(gè)字符串。如果你要安裝這個(gè)應(yīng)用程序,你可以在Facebook上給它起一個(gè)更有意義的名字,例如“SignUpFreeX”。在Visual Studio中,這個(gè)解決方案叫作“AzureFacebookSample”,它包含4個(gè)項(xiàng)目。

(圖5 在Visual Studio的解決方案資源瀏覽器中的“AzureFacebookSample”,如圖所示,這個(gè)解決方案包含4個(gè)項(xiàng)目)

“AzureFacebookSample.Cloud”是Azure應(yīng)用程序的主項(xiàng)目。它包含兩個(gè)角色,一個(gè)Web角色和一個(gè)Worker角色。web角色是通過(guò)“AzureFacebookSample.Web”項(xiàng)目來(lái)實(shí)現(xiàn)的,而Worker角色是通過(guò)“AzureFacebookSample.Worker”項(xiàng)目來(lái)實(shí)現(xiàn)的。

Web角色是一個(gè)ASP.NET MVC項(xiàng)目,包含了這個(gè)應(yīng)用程序的所有界面的視圖和相關(guān)的控制器邏輯。Worker角色負(fù)責(zé)發(fā)送獎(jiǎng)品email和把聯(lián)系信息從Azure Table Storage遷移到SQL Azure中。

“AzureFacebookSample.Domain”是一個(gè)類(lèi)庫(kù)項(xiàng)目,其中包括數(shù)據(jù)模型,隊(duì)列,和被Web角色和Worker角色共享的數(shù)據(jù)容器。通過(guò)域項(xiàng)目,Web角色和Worker角色會(huì)保存在Azure Storage, Azure隊(duì)列, 和SQL Azure的域?qū)ο笾小?/p>

“AzureFacebookSample”展示了在Azure上,你應(yīng)該如何組織Facebook應(yīng)用程序,但是還有幾件你需要做的事情它是無(wú)法代勞的,那就是實(shí)現(xiàn)一個(gè)你自己的“病毒式”的營(yíng)銷(xiāo)應(yīng)用程序。首先,Worker角色實(shí)際上并不會(huì)發(fā)送一封email。在真正的應(yīng)用程序中,Worker角色需要連接一個(gè)外部的服務(wù),通過(guò)這個(gè)外部服務(wù)來(lái)生成大量的這次營(yíng)銷(xiāo)活動(dòng)所必需的email。在“AzureFacebookSample”中,并不包含連接到這個(gè)Web服務(wù)的代碼。第二,你需要一個(gè)額外的Worker角色來(lái)處理被郵件服務(wù)退回來(lái)的email,在Facebook上聯(lián)系客戶(hù),嘗試獲取一個(gè)正確的email地址(以便于獎(jiǎng)品email可以被發(fā)送)。最后,“AzureFacebookSample”并不會(huì)促使Facebook“likes”到公司頁(yè)面上,或者提醒客戶(hù)把這個(gè)應(yīng)用程序告訴他們的Facebook好友。

請(qǐng)看《在Azure上構(gòu)建一個(gè)基于Facebook的營(yíng)銷(xiāo)式應(yīng)用程序(中)

和《在Azure上構(gòu)建一個(gè)基于Facebook的營(yíng)銷(xiāo)式應(yīng)用程序(下)

原文名:Building a Facebook Marketing App on Azure 作者:Steve Apiki

【本文乃51CTO精選譯文,轉(zhuǎn)載請(qǐng)標(biāo)明出處!】 

【編輯推薦】 

  1. 在Azure上構(gòu)建一個(gè)基于Facebook的營(yíng)銷(xiāo)式應(yīng)用程序(中)
  2. 在Azure上構(gòu)建一個(gè)基于Facebook的營(yíng)銷(xiāo)式應(yīng)用程序(下)
  3. 無(wú)需頂禮膜拜 三步打造經(jīng)濟(jì)高效的云基礎(chǔ)架構(gòu)

 

責(zé)任編輯:王勇 來(lái)源: 來(lái)源:51CTO
相關(guān)推薦

2011-03-14 15:14:10

AzureFacebook營(yíng)銷(xiāo)式應(yīng)用程序

2011-03-14 15:10:10

AzureFacebook

2011-11-23 10:06:32

Azure微軟移動(dòng)應(yīng)用

2011-03-10 10:45:47

Azure“Hello Worl

2011-03-22 09:45:56

Windows AzuSilverlight

2011-03-15 19:45:27

Windows Azu

2018-12-13 11:10:21

OpenSnitchLinux防火墻

2015-03-10 09:51:56

云開(kāi)發(fā)云應(yīng)用程構(gòu)建PaaS

2011-03-21 14:31:36

Azure應(yīng)用程序

2015-10-14 10:43:17

PaaSSaaS應(yīng)用構(gòu)建

2011-10-12 11:24:44

AndroidPC

2010-11-09 10:37:21

2021-07-14 17:39:46

ReactRails API前端組件

2023-09-21 08:00:00

ChatGPT編程工具

2014-12-24 11:34:23

CoreOSWordPress集群部署

2022-02-20 20:09:38

BottlesLinuxWindows

2010-07-12 10:11:27

ibmdwWeb

2023-10-12 09:05:11

2023-08-22 20:55:04

AzureLLMTypeChat

2023-09-23 15:52:21

Linux白板應(yīng)用程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)