Posts

Showing posts from May, 2012

[Youtube] 在網頁中嵌入重覆播放的youtube影片

Image
我知道很多人發過這篇文章,不過自己整理的心得自己才最看得懂吧 囧rz

如何嵌入?
要把youtube內嵌到你的blog,直到2012年5月份為止( 我這樣說是因為Youtube經常改變內嵌的方式,不過不得不讚的是一次比一次簡單 )的方法如下:
首先進入到你想嵌入的Youtube頁面,往下拉一下影片的下方會有一顆叫分享(Share)的按鈕,按一下。


然後按一下內嵌(Embed)


然後把下圖這段html複製起來(滑鼠右鍵->複製 或 Ctrl+c)


轉回你正在寫blog的頁面(以下以blogger為例),跳到HTML模式(其他種類的blog的 HTML模式在那裡 小弟 就不知道了 ˊ_>ˋ ) 把剛才複製的那段HTML貼在你的CODE的最底下。


你可能會好奇說,這段HTML究竟是啥咪啊?這段Code的意思就是說:

"建立一框架(iframe),沒有規定是不是一定要全螢幕(allowfullscreen=""),框架沒有厚度(framework="0"),高315單位(height="315"),寬420單位(width="420"),來自以下這個地方(src="brabrabra") "

所以結果如下,內嵌就完成了。
如何加入其他功能?如果有另外的需求,例如不停重播或者在那裡開始之類的,就要使用Youtube提供給我們的參數設定了。這個網站有列出所有Youtube提供給我們用的參數。以下用autoplay這個參數來當例子。跟據上面這個官方網站的說明,autoplay的描述如下:

autoplay(supported players: AS3, AS2, HTML5)Values: 0 or 1. Default is 0. Sets whether or not the initial video will autoplay when the player loads. 意思就是說1的話影片在網頁載入以後就會自動播放,0的話就不會,就這麼簡單!

那我們要怎麼加呢這個參數進去呢? 先回到HTML模式,然後找回剛貼到網頁上的HTML碼, 先找到 src="http://www.youtube.com/embed/mAfr1KC50KU" 這段,這段表示的是影片的位…

.net教學筆記整理 [組態檔案驅動設計架構例子]

Image
前言:
公司經常會遇到一些不是給使用者用的程式,例如一些格式轉換程式,一些上傳到某些地方的程式,或者背景服務等等。這些服務具有一共通點:

參數設定很多,如SMTP Server, 資料庫IP。要經常改變參數設定。 參數寫死在軟體程式裡面,第一個缺點當然是不好修改,而且不斷修改程式碼會引發不必要的錯誤。所以現在很多伺服器都是採用了以XML組態檔案驅動驅動的設計架構。意思就是說利用XML定義很多軟體參數,當系統運行的時候才去讀取相關設定,這樣軟體不需要經常重新修改,比較能確保穩定度。這種概念也就是所謂的執行引擎了(Execute Engine)

以下是小弟最近利上執行引擎的概念幫公司寫的小軟體,希望可以給各位大大分享一下,有錯誤的話請賜教。

目的:
把資料庫的某一資料表(table)轉成XML, 並自動上傳到指定FTP位置。這個小軟體要具有:
1. email功能: 上傳成功或失敗需要發email通知資訊部門某位同事。
2. 紀錄檔(log)功能: 運行時產生相關程序的記錄,包括exception。
3. 上傳到FTP伺服器前要先備份。
4. 產生的XML檔案名稱將來可能會有修改。

設計:
要表達一個系統的設計,至少要表明兩種關係
Class 之間的關係觸發事件的先後次序Class 之間的關係
由以上需求可知,如果我們在物件導向分析的類別圖(Class diagram)中開始設計類別,可以以功能區分最初版本的5個類別,分別是:
Program.cs: 提供軟體核心作業流程。
xmlManager.cs: 提供轉換成XML的相關功能。
emailManager.cs: 提供傳送電子郵件的功能。
ftpManager.cs: 提供ftp上載的功能。
logManager.cs: 提供記錄檔相關功能。

它們這些物件與物件之間的關係,可以用UML中的Class diagram表達:
虛線指的是這一個class可以存取的檔案。實心菱型在UML中解釋是Composition(組合), 意思相當於has a, 就是說被指向的Class(xmlManager跟logManager)是菱型端的Class(Program.cs)不可缺少的一部分, 當Program.cs被消滅的時候xmlManager跟logManager就一齊消失了,同理當Program.cs出現的時候一定要有xmlManag…

.net教學筆記整理 [Windows Service篇]

Image
如何建立Windows服務
根據Wiki的解釋, Windows服務(Windows Service) 是在Windows系統架構下長期運行去執行某一特定功能,而且不需要有人機互動的一種背景程式。具有不需使用者登入系統也可以自動開始結束的特性。

現在動手做做看吧!

開啟VS2012, 新增專案, 選擇 "Windows服務" 為專案類型。
在"屬性"頁中找到"ServiceName", 這是服務名稱, 要記得同一台伺服器服務名稱不能重覆喔。其他的參數用預設的就OK了。

開啟專案畫面後沒有Winform或ASP.net的interface Designer(廢話, 服務跟本就沒介面啊TAT), 在畫面點擊兩下跳到後面程式碼(cs檔案頁面), 看到OnStart及OnStop兩種方法。故名思義OnStart就是服務啟動時做的事,OnStop就是當關閉服務時要做的事。記得每次觸發OnStart跟OnStop的時候程式碼只會跑一次。即是說如果今天你要寫monitoring的東西,在OnStart中應該加入像System.Timers.Timer類別 ,不然跑一次就進入無限等待的狀態。現在用把資料庫的數據生成XML的例子放到這個服務:要使用Timer類別, msdn很清楚的說明 Timer元件是伺服器端之計時器,讓您可指定應用程式中引發 Elapsed 事件的週期間隔。所以我們一定要設定好Elapsed事件,還有計時器的時間間隔。先新增一個Timer物件


在服務(Service)的OnStart中,設定Timer中Elapsed的ElapsedEventHandler  timer_Elapsed。


在服務(Service)的OnStart中,設定timer的週期間隔 timer.Interval 為一小時
加用啟動timer程式碼。
timer.Start();接下來把存取資料庫轉成XML的程式碼放到 timer_Elapsed方法裡. /*讀取資料庫上的資料放到dataset, 再把讀取的資料存到xml檔案中*/ //先建立connection string connstr = @"Data Source=localhost;Initial Ca…

.net教學筆記整理 [XML篇]

Image
以下例子說明怎樣把SQL Server中的資料轉換成XML.
主要分成讀取資料庫跟輸出兩部分。

讀取資料庫部分先建立SqlConnection然後建立SqlDataAdapter把資料庫的資料先抓出來.再把Adapter中的資料存到DataSet中叫"XXX"的資料表(Table).

轉成XML部分:第28行,利用DataSet中WriteXml的方法, 標示好XML的生成路徑就行囉! 很簡單不難啦! =皿=







.net教學筆記整理 [資料庫篇]

Image
連接資料庫的方法
視覺方式,使用設計階段工具。程式設計方式。

基本概念:
ADO.NET ADO.NET 可讓您以一致的方式存取資料來源 (如 Microsoft SQL Server 與 XML),以及透過 OLE DB 和 ODBC 所公開的資料來源。資料共用的消費者應用程式可使用 ADO.NET 連接至這些資料來源並擷取、操作及更新其中所含的資料。元件:.NET Framework 資料提供者DataSet架構在.NET中, 我們使用System.Data這個namespace為存取資料的主要方法。當存取任何形態的外部資料, 程式一定包含下列物件:Connection物件Command物件資料載體資料載體包括DataReader能從資料庫擷取順向唯讀資料流資料。好處是提高應用程式的效能,方法是立即擷取可用的資料,及 (依預設) 一次只將一個資料列儲存到記憶體中,從而減少系統負荷。DataAdapter表示 SQL 命令集和資料庫連接,用來填入 DataSet 並更新資料來源。是 DataSet 和資料來源之間的橋接器 (Bridge),用來擷取和儲存資料。DataSet種離線運作的資料庫快取,存放在主機的記憶體裡面。DataSet是透過DataAdapter(資料配接器)來執行SQL指令,功能非常強大,幾乎就是資料庫的翻版(如:DataView、DataTable、Relationship等等都作得到)。可以把資料庫複製到主機的記憶體裡面,如此一來面對關係複雜的多重資料表,就能快速地處理。缺點是:使用DataSet比較消耗資源。[2]DataSet 由 DataTable 物件的集合所組成.內部是用XML來描述數據的。DataTableDataSet內的元素。一個DataSet 可由一至多組 DataTable物件組成。 DataSet, DataReader比較如下[2](資料來源,以MS SQL Server為例) ADO.NET兩大物件的比較 DataSet DataReader 連接資料庫(

.net教學筆記整理 [資料工具篇]

Image
如何在Winform修改資料庫資料
以下幾個例子說明怎樣利用winform修改資料庫.


[例子1] 在不直接點選DataGridView修改的前題下修改資料庫中關於中文及葡萄牙文的資料 (利用VS Designer篇)
這個例子整個過程不需要任何的Coding, 不過對於理解DataGridview跟資料庫的關係很有幫助。^_^
先把介面劃出來
為DataGridView加入資料來源


為介面下面兩個Textbox進行DataBindings按一下 "中文名稱" 的TextBox, 在"屬性"列中展開"(DataBindings)", 在"Text"欄位中按下功能表, 選擇關於中文名稱的資料庫欄位, 注意Binding Source要跟DataGridView所用的一樣。



把葡萄牙文的那個TextBox用同樣方法弄好。接下來為DataGridView的TableAdapter做Sql Statement的設置。基本上 TableAdapter = DataTable + DataAdapter. 令開發者進一步省點保貴時間。在這裡再提一下,Adapter主要負責Sql Statement的執行,在這個例子查詢&更新兩組SQL是必須的。按一下位於畫面下面的TableAdapter, 選擇"在DataSet設計工具中編輯查詢"按一下Adapter的標題, 在工具列中出現屬性頁


在屬性頁中, 展開UpdateCommand,在CommandText中輸入Update SQL Statement. 並在Paremeters中設定參數。


返回Designer頁面,為"更新"按鈕寫點程式碼。
上面程式碼意思是說用DataGridView現在的DataSet透過Adapter對Database進行更新。完成。[例子2] 在不直接點選DataGridView修改的前題下修改資料庫中關於中文及葡萄牙文的資料 (Coding篇)
看完上面的例子可以知道VS已經可以令開發一支程式不需要寫任何的程式碼 (我們飯碗不保了囧),不過面對一些比較複雜的情況(例如Update多個Table的時候),還是要用程式碼解決, 以下就是動手寫的簡單例子:
還是老方法,介面要先拉一下,上面有講過就不…