程式設計相關

Microsoft Azure初體驗

最近我的進度先是研究Xamarin.Form寫跨平台的手機App,同時進行Microsoft Azure的研究。

為什麼要研究Azure呢?其實只是因為一個客戶的虛擬主機出問題,偏偏Windows的虛擬主機服務都很爛,我們公司也不想當主機託管公司承擔可能斷電或斷網造成客戶損失的風險。

之前我寫的是ASP.NET in C#,需要的是一個IIS,也就是一台Windows的Server。我從昨天晚上十一點開始到現在未曾闔眼在研究如何在Azure達成這個目標。

架IIS的話Azure的虛擬機器就可以做到了,技術文件有寫得很清楚,連PowerShell的Code都列出來。比較麻煩的是虛擬機器要設定成靜態IP並且用Azure DNS把網域指定到那個IP位址。

因為網域改Domain Name Server的時候需要等很久,所以我就邊改邊整理我一顆外接硬碟將近3TB的動畫,把它們分類電視畫質的、藍光畫質的,就這樣耗掉一個晚上。

用了一陣子以後發現,Microsoft Azure雖然有很深奧的地方,但入門並不難,我一個晚上邊整理動畫邊架設虛擬機器就架好了一個自訂域名的IIS Server,但麻煩的才要開始。

我把我寫的程式放上去,發現竟然在Azure上也連不了客戶的SQL Server。但是我在公司的主機架設的臨時用伺服器是可以連到的。

虛擬主機出問題的前幾天是做了例行性的維護也就是Windows Update,所以根據我的分析,也許是Windows Update導致客戶的SQL Server變成找不到了。

因為同樣的程式在同樣的主機沒事的跑了三年,要說有變動一定就是Windows Update。畢竟客戶用的是SQL Server 2008,主機也用的是Windows 2008 Server,有點舊。

微軟最喜歡用這種爛招導致舊版本不相容逼人換新版了,我甚直在懷疑微軟哪天會不會自斷生路把32-bits的程式變成不相容。

所以現在第一個應對措施就是讓客戶的MIS把SQL的Service Packs和Windows Updates全部補上去,我猜解決的機率不到一半。

我在Azure的主機上用SqlConnection的Open來測試是否連結的成功,用一個手邊有資料的客戶和我們公司的主機,都是成功的,兩個環境都是Windows 2012 R2配SQL Server 2014。

也許更新不成就要建議客戶換作業系統與SQL版本了。

 

Azure試用有6300NTD的Credit可以花,但我今天只花了好像9元的Credit而已吧!如果有空我可能會寫些圖文教學因為我發現網路上查相關資源少的可憐。查到也都是過時的圖片或文字。

我今天試著建立Web App、虛擬機器、Azure DNS,還有一堆附帶的東西。總之Azure很像一個拼裝工廠,把雲端的需求送出,然後一個一個連結起來,然後就拼湊成一個成品。

雖然現在推出已經有些時間了,但我想試圖的去了解一下Azure所有的雲端功能,如果我還沒有老到學不了的話。

程式設計生涯暫停或終止

要說為什麼暫停,我想是我找不到熱情了,我不像14歲的時候整天抱著一本厚厚的中文書,或18歲去抓一堆盜版的英文ebook來自修,且我對寫專案沒興趣了。

寫專案,是非常麻煩的一件事,必須不斷跟客戶溝通,客戶又有時相當不理性,要求幾乎做不到的東西,然後金額因為同業競爭導致也沒有多高。

寫專案完全只是為了錢,那我就實在不是太想寫了。如果今天公司接了一個相當困難,讓我沒把握完成,又有興趣足以讓我躍躍欲試的專案,也許我會繼續在程式設計這條路。

所以,我寫暫停,或終止。

公司是我爸開的,老實說也是間小公司,現在我爸年紀大不知道大腦為什麼想法變了,完全沒有打算讓我接手公司,打算公司做到他退休就好。

這樣我實在被他耍了,他在我18歲(我第一次高二發病休學一年)猶豫要不要接受松山高中嚴格的高三生活的時候,因為高二下唸完休學滿兩年就可以考大學,他要我到公司工作。

導致我現在沒高中畢業證書,大學我去考了,政大哲學、東吳哲學、輔大企管、銘傳企管都正取,我因為對英美哲學有興趣選擇東吳哲學,最後因為遭同學霸凌而自行退學。

導致我沒大學畢業證書,現在要去找工作沒有一家公司會要我,當初規劃要讓我接手公司,結果現在不了了之。

我現在沒有正規的工作收入。

現在一個月平均5萬的收入來自於我19歲躁症發作時去研究的選擇權,當時的躁症失控程度相當高,曾經連勝12個月,但沒辦法長長久久的使用現在的策略下去,因為第十三個月失控亂下單導致嚴重虧損。

現在躁症的發作病況有點變動,我情緒波濤洶湧,但理智卻維持在最後的一絲底線,規定的原則該遵守的就是會遵守,所以似乎可以靠選擇權維生。

既然可以靠選擇權維生,那我為什麼要去寫專案讓客戶在那邊煩我。

所以我就把音樂及電影的部落格轉為選擇權日記持續追蹤我的操作狀況,程式設計宣告到這次的公司網站寫完就歇業。

然後,這個部落格就是紀錄我痛苦的日常與回憶(但很多人覺得我很幸福)。

引用JavaScript外部檔案中文亂碼

今天在寫網站的時候遇到一個小問題,我把一些很長的JavaScript放到一個.js檔,外部引用它,如:

<script type=”text/javascript” src=”js/custom.js”></script>

結果原本沒問題的中文全部變成亂碼。

如果有人出現這個問題的話,解決方法就是在<script>tag裡增加它的編碼如Big5:

<script type=”text/javascript” src=”js/custom.js” charset=”big5″></script>

這樣亂碼的問題就解決了!

以後我盡量有些小問題就寫上來,也許可以幫到一些人。

C#教學-SqlDataAdapter及SqlCommandBuilder簡單用法

這篇主要要教怎樣用程式更改DataTable然後用讓SqlDataAdapter回存資料庫,這是很簡便的用法,我沒有要寫SqlDataAdapter的很多Command,只要寫一條Select Command其中包含Table的主索引就可以了。

首先一定是要定義一個SqlConnection:

SqlConnection connection = new SqlConnection(ConnectionString);

然後定義SqlDataAdapter、SqlCommandBuilder和DataTable:

SqlDataAdapter sda = new SqlDataAdapter(“select * from [a table] where blablabla“, connection);
DataTable dt=new DataTable();
SqlCommandBuilder scb = new SqlCommandBuilder(da);

這樣宣告完sda的另外三個command都會被自動產生,會產生的很不漂亮,但比手寫輕鬆,如果只是要做一點很簡單的批次性操作,這樣可以節省很多Coding時間。

最後要填入DataTable,然後操作,然後回存:

sda.Fill(dt);
/*Some operations*/
sda.Update(dt);

DataTable會去記錄哪個Row有修正,哪個Row是新增,哪個Row是刪除,所以直接呼叫一個Update,他就批次寫回資料庫,夠簡單吧!

最近年底,有幾個專案要結案,所以部落格的更新很慢,希望明年可以寫更多東西,謝謝觀看,下次再會!