如何把ASP.NET網頁部署至AZURE

Azure簡介

微軟的雲端作業系統。登入https://manage.windowsazure.com/或進到Azure官網點右上角的Portal。

目前Azure支援的有Web Sites, Cloud Services, SQL Databases, Storage。

Web Sites : 靜態網頁。只態使用IIS。

Cloud Services : 動態內容。即Web Application, Web Service等。

SQL Database : 資料庫。

Storage : 類似Google Big Table,好像還可以儲存檔案。

ASP.NET web application

會用到SQL Database和Cloud Service。

SQL DATABASES

首先建立一個Database,Collation目前使用SQL_Latin1_General_CP1_CI_AS。透過SQL的[N””]可儲存中文,例如INSERT INTO table (column) VALUES (N’中文內容’)。其他參數跟付費內容有關。

建立後系統會產生一個domain,例如我們在東亞的abc1234def.database.windows.net,這個可以用ssms登入管理。頁面上有一個[Show connection strings]可以顯示連結字串,預設限定tcp,不能使用namepipe,而且有firewall,要在firewall加入允許規則才可以連線。防火牆設定在SQL Databases->Servers Tab->選一個instance->Configure

SQL schema請使用Sql Migration Wizard從Local Database上傳至Azure Sql Database

CLOUD SERVICES

先建立一個instance,quick create就可以,有兩種模式,production和staging,測試中就選用staging。接下來要先把Web Application打包,deploy後才能再作後續設定。

VS2010

下載並安裝Azure SDK。在原本的Solution底下新增一個Azure Project,不要選擇任何web role->完成。[以下稱Azure Project]

產生空白專案後,在Solution Explorer->Roles上按右鍵,選Web Role in solution,把你想deploy到Azure的web application project加進去[以下稱WebApp]。在WebApp加入Microsoft.WindowsAzure.ServiceRuntime這個參考。

接下來要調整web.config。可以透過在Azure Project按右鍵->屬性設定,也可以在cscfg和csdef這兩個xml手動設定。Csdef會定義cdcfg裡有甚麼設定值(session),實際運行用的參數值會在cscfg。大概只會用到connectinstring。Connectionstring請參考在SQL DATABASE一節的取得方法。

修改Source Code

Azure不支援ConfigurationManager物件,請把所有跟ConfigurationManager相關的程式碼修改成如下(以connectionstring為例):

if (RoleEnvironment.IsAvailable)

{

param = RoleEnvironment.GetConfigurationSettingValue(“key”);

}

else

{

param = ConfigurationManager.ConnectionStrings[“key”].ConnectionString;

}

封裝Azure Project

在azure project按右鍵,選封裝,系統就會把專案包裝成兩個檔案,準備好上傳至Azure Cloud Service。這時候請注意VS2010的輸出,如出現WAT##等警告,請執行對應的處理。

X64平台

Cloud Service是X64平台,所以你的WebApp及所有參考的dll都需要編譯成x64使用。

服務部署

在Azure Portal選Cloud Services,選一個instance,再選Deploy,輸入Deployment Name,package是封裝時產生的.cspkg檔,configuration是.cscfg檔。完成後請選Link Resources頁面,新增SQL Database一節時所建立的 Instance。到這裡基本上已完成WebApp的部署

Appendix

Membership

如果你的程式有使用Asp.Net Memebership,請使用以下script在SQL Database的管理介面執行,這些script會建立所需要的tables, views, store procedures。

注意,必需先執行InstallCommon.sql。

網頁亂碼

請檢查WebApp的source code,需使用UTF-8儲存,檢查及修改在VS2010->檔案->進階儲存選項…

Setup Eclipse with Subversive, Upload to CodePlex

首先安裝Eclipse, 然後到Help->Install New Software…

然後加入Helios的路徑, http://download.eclipse.org/releases/helios

讀取列表成功後, 選Collaboration->Subversive SVN Team Provider->Next

安裝完畢後重新啟動Eclipse.

重啟後選Window->Preferences->Team->SVN, 它會叫你安裝connector.

如果是Windows系統, 可以安裝Native JavaHL版的connector. 安裝好後重開

最後在Package Explorer用右鍵選你要上傳到SVN的專案, 選Team->Share Project

SVN->Next, URL輸入你在CodePlex看到的那一條, 就大功告成

iOS Apps 開發環境架設 for Poor People!

嘗一下iOS apps開發要多少錢?? 大概1000元! (謎:甚至0元)

首先, 這都要多謝Larry, Virtualbox開始支持 Mac OS

要準備幾樣東西, Virtualbox, 20~40GB空間, 一片Mac OS安裝光碟

不過免錢的東西沒那麼簡單, 要先講一些背景知識

Mac OS原本並不支援Intel跟AMD的CPU, 好像是在10.5開始才出現Intel架構

而且Mac OS並不是用BIOS的, 是用一種更先進的東西叫EFI

所以我用的是Mac OS X Snow Leopard 10.6 Intel版, 還有一個EFI loader

沒有這些東西的話, 請向Apple購買, 或者找Empire, 就這樣, 不多講了

安裝好Virtualbox後, 建立一台Mac OS機器, 硬碟空間調越大越好, 因為這個之後是無法改變的

建議至少40G, 因為全部東西安裝好之後, 好像有20幾GB.

在啟動該機器前先做以下設定 : uncheck EFI模擬, 放入光碟並設定成開機設備, 啟動

接著順利的話就會看到安裝畫面, 沒有甚麼特別, 就安裝吧

安裝好之後, 就會看到那個紫色的畫面. 去下載Xcode, 註冊成Apple Developer是不用錢的

整套IDE含SDK及Emulator大概3.52GB, 安裝後8GB

有一件很重要的事, 千萬別對系統做任何更新, 然後裝好系統需要重開

關機之後, 如果要進入系統, 這時候要check EFI模擬

IDE本身沒甚麼好講的, 因為全部是Apple Bundle好的, 沒甚麼特別要設定

去Finder->Developer->Tool->Xcode啟動, Finder類似Windows的Explorer

如果你去過Empire, 就去裡面找一個叫Post-Install的資料夾, 執行裡面的myHack

要修改Resolution的話, 去/Library/Preferences/SystemConfiguration找com.apple.boot.plist

加入key為Graphics Mode, string為你想要的resolution例如1280x1024x32

總結, 你可以run emulation, 但要deploy到device就要交錢,

而且要自己準備device, 應該還要Mac的設備

不過在決定要不要花這一大筆錢前先感受一下是好的,

因為好像要寫Objective-C, 聽說不怎麼簡單

Android 開發PART1 環境架設

首先來下載三個東西, 全部免費

1. Java SE SDK – 如果你不知道你有沒有裝, 那就是沒有裝了, 去下載最新版本吧

2. Android SDK – 包含API, 模擬器等

3. Eclipse for Java Developer – 知名整合開發工具

然後安裝 JavaSE -> Android SDK , 要記一下Android SDK的安裝目標路徑, 等一下會用到

(安裝Android SDK時如果它表示找不到JavaSE, 點Back, 再點Next)

Eclipse是不用安裝的, 直接解壓啟動就可以. 第一次啟動後可以看看教學甚麼的, 最後選進入workbrench

然後要安裝ADT插件, 在Eclipse的選單->Help->Install New Software…->點Add

Name隨便取, Location用這個https://dl-ssl.google.com/android/eclipse/

然後可能要等一下, 出現可安裝的項目, 就裝下去吧

安裝好就在Eclipse選單->window->Preferences, 左邊會有一項Android

點下去後在右邊SDK Location填入Android SDK的路徑, 剛才說要記一下的那個

然後再到window->Android SDK and AVD Manager, 新增你用來測試的模擬器

我指定的版本是android 2.2, 你可以根據你的目標device去設定

最後一步就是建立專案, Eclipse選單->File->New->Project…->Android->Android Project, Next

輸入Project Name, 選一個Build Target, 最好跟你剛才的AVD版本一樣

Application Name 就是程式的名字, 好像deploy後會顯示在Android上, 例如Hungry Shark Part 2

Package Name就是Java的打包名字, 例如com.fgol.sharkpart2

通常會選擇Create Activity, Android把一支應用程式叫做Activity, Create Activity的意思就是建立一個啟動應用程式

像C的Main, 或者.Net的啟動專案的Application.Run. 例如SharkRun, 他會幫你建立一個class SharkRun.java

Min SDK Version可以不用管, Next, 然後下一個是Test專案的建立, 我暫時沒用, 直接Finish

建立好之後可以試著compile, 如果他說你缺library或者找不到aapt.exe, 存儲專案, 關閉eclipse

重新開啟eclipse後, 到Install New Software…那邊, 重新安裝/更新一次ADT, 應該就OK了

感動的畫面, 花了我一個小時去解那些低能的整合問題

感動的成功畫面

PS 應該還有一步說定你的測試用模擬器(AVD), 不過我忘記在那了, 因為太簡單就沒記住了

應徵問題

精靈國和獸人國正在交戰中,獸人王的軍隊攻破精靈族的主城前最後一個城鎮,獸人軍隊把鎮包圍了起來,獸人王下令3天內會把鎮民殺光。

方法是每個鎮民頭上有一個計數器,並有一個隨機數值,自己不知道自己頭上的數值是多少,數字到零便立刻被殺死。

規則有四條

1. 不能從其他人口中得知自己的數字,例如”我的數字是不是2?”

2.可以把數值轉帳到別人身上,每次只能轉帳1點

3.可以找軍人見證,定立轉帳合約,軍人在確認雙方同意後,合約必定要執行

4.每過1天所有人的數值自動減少1

生還的方法有兩個

1.找獸軍人並說出自己頭上目前的數值,說錯立刻處死

2.第一天數值超過4,第二天數值超過3,如此類推,就可以拿下計數器並獲救

現在你是鎮民之一,你會用甚麼方法生存下來(最高機率)?

新竹日記2010/03/27 – 台北看展

今天上台北看兩個展,分別是梵谷和達文西展,總結是,花了很多錢,又很累,還沒有買到外套…

看梵谷展,我以為重點在看畫,結果一大堆人在那裡用手提導覽機在聽介紹
都不知道是在聽還是在看,我沒有聽導覽,把注意力集中在看畫上
原來梵谷二十七歲才開始學畫畫,不過他的思路夠好
用不同的媒材去做自己的嘗試,
同一幅畫裡面可以有粉筆,鉛筆,墨水筆,水彩,油彩,可以用不同的紙和畫
一直畫相同的題材也無所謂,他在找材料和技巧的表達能力到底可以去到那裡
最後找到自己的厚塗法,留名千古
不過他的人生也證明了一件事,社會現實得很殘酷,他的畫不賣錢,但很專心畫畫
靠兄弟接濟,有一天兄弟成家了,也有了經濟壓力,梵谷最後想不開自盡了
雖然沒有看到我喜歡的鳶尾花真跡,不過其他畫我也不確定是不是真的
不過我這種凡胎肉眼,也無所謂了

達文西就不一樣了,有很多工程實績,又做都市規劃,又設計武器,可是個大紅人
我也第一次看到原來滾珠軸承是這個樣子,原來他有做很多齒輪和起重機的研究
不過其實他的展比較不好的感覺,不知道是不是動線規劃得不好

買了一些戰利品,好累,沒事還是宅在家就好