關於我

我的相片
用心思考、保持熱情,把工作上的經驗作分享與紀錄。希望能夠跟大家一起不斷的成長~

Windows下管理Oracle9i服務

在Windows 作業系統下安裝Oracle 9i時會安裝很多服務—— 並且其中一些配置為在Windows 啟動時啟動。 在Oracle 運行在Windows 下時,它會消耗很多資源,並且有些服務可能我們並不總是需要。你會發現不使用Windows 圖形介面就可以快速、完全地關閉資料庫會很有用。 只要擁有管理員許可權就可以通過net start 啟動一個服務,或者通過net stop 命令停止一個服務,從而控制以下服務中的任何一個。在Windows XP 中,可以通過在控制面板的服務中改變想要禁用的服務(OracleOraHome...)的啟動類型(Startup Type)參數,雙擊某個服務查看其屬性,然後將啟動類型屬性從自動改為手動。使資料庫在本地工作唯一需要運行的服務是OracleServiceORCL 服務(其中ORCL 是SID)。這個服務會自動地啟動和停止資料庫(使用shutdown 中斷)。如果安裝了一個資料庫,它的缺省啟動類型為自動。如果主要是訪問一個遠端資料庫,那麼可以把啟動類型由自動改為手動。 OracleOraHome92HTTPServer 服務(OraHome92 是Oracle Home 的名稱)是在安裝Oracle 時自動安裝的Apache 伺服器。一般情況下我們只用它來訪問Oracle Apache 目錄下的Web 頁面,比如說JSP 或者modplsql 頁面。 OracleOraHome92TNSListener 服務只有在資料庫需要遠端存取時才需要(無論是通過另外一台主機還是在本地通過 SQL*Net 網路協定都屬於遠端存取)。不用這個服務就可以訪問本地資料庫。 OracleOraHome92ClientCache 服務緩存用於連接遠端資料庫的Oracle Names 資料。正常情況下該服務的啟動類型是配置為手動的。然而,除非有一台Oracle Names 伺服器,否則沒有必要運行這個服務。 有四個服務是Oracle 企業管理器所必須的(Oracle Enterprise Manager),這個服務分別為: OracleOraHome92Agent(智慧代理),該服務監視資料庫和企業管理器請求,缺省啟動類型為自動。 OracleOraHome92SNMPPeerEncapsulatorOracleOraHome92SNMPPeerMasterAgent,處理安全網路管理協定服務。 OracleOraHome92PagingServer 通過一個使用數據機的數位傳呼機或者電子郵件發出警告。 OracleMTSRecoveryService 是可選的,該服務允許資料庫充當一個微軟事務伺服器、COM/COM+物件和分散式環境下的事務的資源管理器。 如果只是偶爾使用一下資料庫,那麼可以創建一個簡單的腳本任務來啟動和關閉伺服器,這樣每次只要雙擊腳本就可以了,可以不使用圖形介面。 1. 保存一個快捷方式自動地裝載這些檔。 2. 將Oracle 服務設為手動避免在Windows 啟動時啟動。 REM "dbstart.cmd" @echo off set ORAHOME="OraHome92" set ORASID="ORCL" net start OracleServiceORASID REM net start OracleORAHOMEHTTPServer REM net start OracleORAHOMETNSListener REM net start OracleORAHOMEClientCache REM net start OracleORAHOMEAgent REM net start OracleORAHOMESNMPPeerEncapsulator REM net start OracleORAHOMESNMPPeerMasterAgent REM net start OracleORAHOMEPagingServer REM net start OracleMTSRecoverService REM "dbshut.cmd" @echo off set ORAHOME="OraHome92" set ORASID="ORCL" net stop OracleServiceORASID REM net stop OracleORAHOMEHTTPServer REM net stop OracleORAHOMETNSListener REM net stop OracleORAHOMEClientCache REM net stop OracleORAHOMEAgent REM net stop OracleORAHOMESNMPPeerEncapsulator REM net stop OracleORAHOMESNMPPeerMasterAgent REM net stop OracleORAHOMEPagingServer REM net stop OracleMTSRecoverService

oracle備份還原

《 備 份 》 <1>cmd視窗使用sysdba連上oracle C:\> sqlplus "sys/bankpro@oracle9i as sysdba" <2>將oracle資料庫關閉 SQL> shutdown normal; <3>將oracle資料庫資料複製一份 ( 預設於oradata內,如oracle9i資料夾 ) 《 還 原 》 <1>cmd視窗使用sysdba連上oracle C:\> sqlplus "sys/bankpro@oracle9i as sysdba" <2>將oracle資料庫關閉 SQL> shutdown normal; <3>複製備份檔案至oracle資料夾中 <4>開啟oracle資料庫至nomount模式 SQL> startup nomount; <5>提升資料庫至mount模式 SQL> alter database mount; <6>修改資料庫檔案掛載位置 SQL> alter database rename file 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\CWMLITE01.DBF' TO C:\ORACLE\ORADATA\ORACLE9I\CWMLITE01.DBF'; alter database rename file 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\DRSYS01.DBF' TO 'C:\ORACLE\ORADATA\ORACLE9I\DRSYS01.DBF'; alter database rename file 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\EXAMPLE01.DBF' TO 'C:\ORACLE\ORADATA\ORACLE9I\EXAMPLE01.DBF'; alter database rename file 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\EXCHANGE.ORA' TO 'C:\ORACLE\ORADATA\ORACLE9I\EXCHANGE.ORA'; alter database rename file 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\HIS.ORA' TO 'C:\ORACLE\ORADATA\ORACLE9I\HIS.ORA'; alter database rename file 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\INDX01.DBF' TO 'C:\ORACLE\ORADATA\ORACLE9I\INDX01.DBF'; alter database rename file 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\INVOICE.ORA' TO 'C:\ORACLE\ORADATA\ORACLE9I\INVOICE.ORA'; alter database rename file 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\ODM01.DBF' TO 'C:\ORACLE\ORADATA\ORACLE9I\ODM01.DBF'; alter database rename file 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\TOOLS01.DBF' TO C:\ORACLE\ORADATA\ORACLE9I\TOOLS01.DBF'; alter database rename file 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\UNDOTBS01.DBF' TO 'C:\ORACLE\ORADATA\ORACLE9I\UNDOTBS01.DBF'; alter database rename file 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\USERS01.DBF' TO 'C:\ORACLE\ORADATA\ORACLE9I\USERS01.DBF'; alter database rename file 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\XDB01.DBF' TO 'C:\ORACLE\ORADATA\ORACLE9I\XDB01.DBF'; alter database rename file 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\SYSTEM01.DBF' TO 'C:\ORACLE\ORADATA\ORACLE9I\SYSTEM01.DBF'; alter database rename file 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\REDO01.LOG' TO 'C:\ORACLE\ORADATA\ORACLE9I\REDO01.LOG'; alter database rename file 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\REDO02.LOG' TO 'C:\ORACLE\ORADATA\ORACLE9I\REDO02.LOG'; alter database rename file 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\REDO03.LOG' TO 'C:\ORACLE\ORADATA\ORACLE9I\REDO03.LOG'; 也可將上方Script製作成一個如Restore.txt的文字檔 再利用sqlplus執行: SQL> start c:\Restore.txt; 即可批次執行指令!! <7>提升資料庫至open模式 alter database open; <8>重新建立Temp檔 alter database tempfile 'E:\DANNYTEAM\DB\ORACLE\ORADATA\ORACLE9I\TEMP01.DBF' DROP; alter tablespace temp add tempfile 'C:\ORACLE\ORADATA\ORACLE9I\TEMP01.DBF' SIZE 40m reuse;

DataFormatString

DataFormatString="{0:格式字符串}"

DataFormatString 中的
{0} 表示資料本身,而在冒號後面的格式字串、代表我們希望資料顯示的格式;數字、貨幣格式:
在指定的格式符號後可以指定小數所要顯示的位數。例如原來的數據為「1.56」,若格式設定為{0:N1},則輸出為「1.5」。其常用的數值格式如下表所示:


格式字串 輸入 結果
{0:C} 12345.6789 $12,345.68
{0:C} -12345.6789 ($12,345.68)
{0:D} 12345 12345
{0:D8} 12345 00012345
{0:E} 12345.6789 1234568E+004
{0:E10} 12345.6789 1.2345678900E+004
{0:F} 12345.6789 12345.68
{0:F0} 12345.6789 12346
{0:G} 12345.6789 12345.6789
{0:G7} 123456789 1.234568E8
{0:N} 12345.6789 12,345.68
{0:N4} 123456789 123,456,789.0000
Total: {0:C} 12345.6789 Total: $12345.68
   
常用的日期時間格式:

格式
說明
輸出格式
d
精簡日期格式
MM/dd/yyyy 
D
詳細日期格式
dddd, MMMM dd, yyyy 
f
完整格式
(long date + short time)
dddd, MMMM dd, yyyy HH:mm
F
完整日期時間格式
(long date + long time)
dddd, MMMM dd, yyyy HH:mm:ss
g
一般格式
(short date + short time)
MM/dd/yyyy HH:mm
G
一般格式
(short date + long time)
MM/dd/yyyy HH:mm:ss 
m,M
月日格式
MMMM dd
s
適中日期時間格式
yyyy-MM-dd HH:mm:ss
t
精簡時間格式
HH:mm
T
詳細時間格式
HH:mm:ss

測試程式如下,將數字以撇擷(千分位)方式輸出:

擷取

資料庫規劃

我認為您得先規劃好您的資料庫,再談網頁設計會比較妥當。 資料庫規劃,建議您可採用流程為:

1、調查  

  1. 了解使用者所遭遇的問題及發生原因,通常須進行資料蒐集工作。  
  2. 定義系統任務及目標。  
  3. 確認新系統的功能及資料需求。  
  4. 確認系統限制及風險。  
  5. 決定專案範圍。  
  6. 找出所有可行方案,並進行可行性研究,找出最佳方案,並為最佳方案做成本效益分析。
  7. 撰寫可行性報告及專案計畫。   

2、需求分析階段  

  1. 問題分析。  
  2. 確認新系統應俱備的需求。  
  3. 撰寫需求規範書,並進行證實工作。

3、系統設計  

  1. 初步設計或結構設計。  
  2. 細步設計。  
  3. 撰寫設計規範書和做驗證工作。 

4、測試階段  

  1. 建立測試計畫。  
  2. 設計測試資料及期望結果。  
  3. 進行四階段測試 (單元、整合、驗收及系統測試 )。  
  4. 撰寫測試規範書。 

5、維護階段  一般可能進行以下四種維護:  

  1. 更正性維護。  
  2. 適應性維護。  
  3. 完善性維護。  
  4. 預防性維護。 
資料庫規劃完成後,接著asp.net或php、VB等來設計。

RegularExpressionValidato屬性:ValidationExpression

[]:定義可接受的字元
  1. [a-z]表示可接受a~z等26個英文小寫字母。
  2. [0-5],可 接受0~5個數字。
  3. [^ b-e]表示除了b~e之外,所有字元圴接受,(^符號為不接受的意思)。
  4. [abc]表可接受a,b,c三個小寫字母。
  5. [a-zA-z0-9]表可接受大小寫英文字母或數字。
{}:定義須輸入的字元數
  1. {3}表示須輸入3個字元。
  2. {1,3}須輸入1~3個字元。
  3. {n,}表接受n~無限多個字元。
  4. [A-C]{3}表必須輸入3個大寫字母。
  5. [a-zA-z0-9]{1,9}表可輸入1~9個大小寫字母或數字。
.:表任意的字元
  1. .{8}表可接受8個任意字元。
|:表「或」的意思
  1. [a-c]{1}[0-9]{2}表必須輸入a~c之間的一個小寫字母或2個數字。
():此符號可有可無,目的是為了方便閱讀
  1. ([A-B]) ([a-z])加了括號是不是比 [A-B] [a-z]更清楚看出 符號。
\:若可接受的字元中包含上述符號,則必須在特殊符號前加上\符號
  1. 可接受的字元包括[],則寫成 \[\] 。

TextBox自動轉大寫


多加入以下紅字部分
Style="text-transform: uppercase">
即可讓TextBox自動轉大寫!

JavaScript Events

http://www.comptechdoc.org/independent/web/cgi/javamanual/javaevents.html

Understanding ASP.NET View State

http://msdn.microsoft.com/en-us/library/ms972976.aspx Asp.net Page Life Cycle 技術文章

Javascript 事件觸發(Event Binding)的方式整理

Javascript 事件觸發(Event Binding)的方式整理

事件觸發(Event Binding)的方式 (註:紅色斜體字寫碼時自行替換) 1. Element Attributes [語法] <html> <head> <title>......</title> <script language="JavaScript"> <!-- function function-name(parameters) { ...... } // --> </script> </head> <body> <html-tag other-attributes event-handler="function-name(arguments);">......</html-tag> </body> </html> [說明] ‧利用 Element Attributes 的方式觸發定義在 <head> 區段內 <script> 標籤區塊內的 function。 ‧此種方式可藉由傳遞特殊的參數值(this 關鍵字) 給事件處理函數(event handler's function)。 [範例] <script language="JavaScript"> function convertToUpper(mytextbox) { mytextbox.value = mytextbox.value.toUpperCase(); } </script> ...... <FORM ....> <INPUT type="text" name="first_name" onChange="convertToUpper(this)"> <INPUT type="text" name="last_name" onChange="convertToUpper(this)"> ...... </FORM> 2. Object Properties [說明] ‧利用 script 程式碼將 event 與某個 element object 作連結。 ‧此種方式的 tag 屬性(attribute) 的狀態名稱(property name) 須為小寫字母,如 onmouseover(NN4 的狀態名稱可接受 interCap 方式)。 ‧當指派某個 function 參考到 event property,只須指定 function 名稱,function 名稱後不用接 () 括號和該 function 的定義。 [範例] document.forms[0].myButton.onclick = myFunc; 3. 利用 IE 的 <script for> [說明] ‧利用 tag 的 FOR 和 EVENT 屬性作事件連結(並非 W3C 制定的標準)。 ‧FOR 的屬性值設定與某 html 元件的 ID 值,然後在 EVENT 屬性值中設定所要觸發的事件名稱(onmouseover, onclick等)。 ‧此種方式的 script 程式碼並非定義在 function 內,而是定義在 <script> 標籤內。 [範例] <INPUT type="button" name="myButton" id="button1" value="Click Here"> <script for="button1" event="onclick"> ...... // script 程式碼 </script> [範例] <span id="testscript">Click me script block handler - JScript</span> <script language="JScript" for="testscript" event="onclick"> alert("script block handler - JScript"); </script> 4. 使用 IE5+ 的 attachEvent() 方式(只適用 IE5+) [語法] element-object.attachEvent("event-name", function-reference);    參數 event-name 的值為字串型態的事件名稱(event name),例如 onmousedown。    參數 function-reference 為因事件所觸發連結的 function,function 後不用接括號(),直接使用 function 名稱即可。 [說明] ‧利用 IE5+ 的 attachEvent() 方法可作事件觸發。 ‧此種方式的限制為:瀏覽器載入此 element's tag 前無法執行該 javascript 程式碼。因此此種事件觸發控制的程式碼通常寫在 html 文件的結尾處,或在 body 元件中利用 onLoad 函式指定事件觸發處理程式。 [範例] document.all.button1.attachEvent("onclick", myFunc); [範例] document.getElementById("button1").attachEvent("onclick", myFunc); 5. 指定 tag 的 id 值與事件關係(只適用 IE) [語法] function tag-id.event-name( ) { ...... }    或    function tag-id::event-name( ) { ...... } [說明] ‧IE 可直接利用設定 function 的名稱來觸發事件。 ‧function 名稱設定方式為「id名稱.事件名稱」或「id名稱 ::事件名稱」。 [範例] <span ID="sixties" >Hello World!!</span> <script> function sixties.onmousemove() { event.srcElement.style.color=Math.floor(Math.random()*16777216); } </script> [範例] <script type="text/JScript"> function window::onload(){ alert("Hello!"); } function window.onbeforeunload(){ alert("Goodbye!"); } </script> 6. W3C 制定的 DOM -- addEventListener() Method [語法] node-reference.addEventListener("event-type", listener-reference, capture-flag);    W3C DOM 制定的規格中,參數 event-type 為事件型態(前面不加"on"),例如 click、mousedown,和 keypress 等。    參數 capture-flag 為 Boolean 值(通常為false)-- 此方法稱為 event propagation。 [說明] ‧Netscape 6 採用 W3C DOM Level 2 的 event binding 機制,類似 IE5∕Windows 的 attachEvent() 函數。 ‧W3C DOM 在 DOM 的階層架構(hierarchy)下可指派每一 node 的 addEventListener()。 ‧當某個 html 標籤屬於 DOM node 型態時(包含在 element's tag 內的,如 text node),皆可做事件觸發。 [範例] 改寫 <body onload="dothis()"> 為跨 browser 寫法<script type="text/javascript"> if (window.addEventListener) { // DOM method for binding an event window.addEventListener("load", dothis, false); } else if (window.attachEvent) { // IE exclusive method for binding an event window.attachEvent("onload", dothis); } else if (document.getElementById) { // support older modern browsers window.onload=dothis; } </script>

WCF?

什麼是WCF

月底要上微軟的MOC2524: Developing XML Web Services.回頭看課本裡的內容都有點過時了. 現在微軟在分散式應用程式上推廣的是WCF: Windows Communication Foundation. 什麼是WCF.在網路上找到這些值得參考的文章.
  • SOA 與 WCF 原來如此
http://blogs.msdn.com/polo_lee/archive/2007/03/16/soa-wcf.aspx 這篇文章清楚地遻明 WCF 中 ABC 的概念.不錯!
  • Windows Communication Foundation Architecture: WCF 架構圖
http://msdn2.microsoft.com/en-us/library/ms733128.aspx 我喜歡看架構圖,一看就知道它的構成元素.
  • WCF 的Server端

可以是:
  1. Managed Application。像是Console應用程式。
  2. Managed Windows Services。若設為自動啟動,只要伺服器開機便會自動執行。
  3. Internet Information Services。很像Web Service的作法。
  4. Windows Process Activation Service(WAS)。這是Longhorn及Vista中新的行程啟動機制,這個機制其實是從IIS的行程模式(Application Pool)演化而來,但除了 TCP 之外多支援 MSMQ, Named Pipe 通訊協定,以便讓WCF的伺服端可透過更多方式啟動。
這個網頁中提供了一個比較表,比較這幾種Host方式的不同:http://msdn2.microsoft.com/en-us/library/ms730158.aspx
  • What Is Windows Communication Foundation?

這是微軟官方網站對WCF的介紹,你一定不可錯過。用一個租車公司的例子說明WCF的應用及其可解決的問題。 http://msdn2.microsoft.com/en-us/library/ms731082.aspx WCF仍舊是使用 XML 的SOAP做為資料的表示方式,為解決 XML 傳輸時的效能問題,可將 XML 用二進位的方式編碼。

何謂.Net Framework? CLR? BCL? MSIL? JIT?

廣義而言, .Net Framework 2.0包含了:

程式 → JIT → MSIL → CLR

1. CLR(Common Language Runtime)

2. BCL(Base Class Library--基礎類別程式庫)

3. 使用BCL來寫程式的程式語言(如C++.Net或VB.Net或C#.Net等等)

我想我們都很清楚了程式語言可以用來開發軟體(用.Net Framework開發好的軟體我們稱它為組件--Assembly), 之所以稱它為組件的用意我想很明顯, 在用BCL以及各種.Net Framework來開發的軟體過程中, 就像堆積木一樣(積木即BCL或.Net元件), 程式人員所作的工作就像創意家一樣, 發揮它的各種想像力和創造力, 堆積出各式各樣的組合積木出來(所以所開發出來的應用程式叫做組件--組件可以是 .exe 或是 .dll), 以下我們就各別的來看看以上所提到的三點。

1. CLR (Common Language Runtime) 相信有寫過JAVA程式的人一定都知道JVM (Java Virtual Machine)—Java執行時期的虛擬機器, 其實它也是JAVA軟體的一種Runtime Environment(簡稱Runtime), 其實用過VB6的人也都知道寫好的VB6要封裝時都會順便把VB6的相關執行時期DLL順便一起封裝進去, 那個就叫做VB6的Runtime Environment, 同樣的你寫好的VC++6程式, 要可以在客戶的機器上執行無礙, 也必須在客戶的電腦上在Setup時裝上必要的C++的相關DLL(那個叫做C++的Runtime), 各位試想用VB6寫就要自己的一套Runtime, 用VC++寫也要自己的一套Runtime, 而且用VC++寫的類別程式碼無法直接被VB6繼承來使用, 必須在VC++6中寫成DLL檔或COM元件來讓VB6呼叫使用, 造成使用VB6和使用VC++不同程式語言的人極大的隔閡與不便, 而且COM或COM+這樣高深的技術也只能讓初學者望COM而興嘆, 其實JVM本身是一個用來將程式語言和底層硬體分開的一種抽象層, 所以JAVA開發者它宣稱它可以寫一次然後可以到處跑(Write once and run anywhere), 亦即良好的跨平台特性, 說了這麼多, 其實CLR就像JVM一樣, 是一個用來隔開硬體的抽象層, 所以.Net的應用程式, 可以在Windows平台上執行無礙, 也可以在LINUX中順利地執行(LINUX下的CLR是由Open Source專案Mono所實作), 將來如果其他平台上的CLR實作也有了之後, 相信.Net程式要達到和JAVA一樣的跨平台特性就指日可待了。

2. BCL (Base Class Library) 在.Net Framework中亦提供了一組定義良好的類別庫可供程式開發人員使用, 就像以前在VC++6時代有一組MFC類別庫可供使用一般, 但是, 可別把.Net Framework BCL和MFC混為一談了, MFC算是棺材已經進了一半了, MFC有太多太多的缺點和歷史的包袱, .Net Framework BCL易學易用, 如果你已經掌握了BCL的使用訣竅, 日後你遇到新的BCL CLASS時, 所需的只是查閱MSDN的功夫而已, 真的是一點都不誇大。

3. 支援.Net的程式語言目前支援.Net的程式語言多不勝數, 最常聽到的就屬C#, VC++.Net, VB.Net, J#.Net或Delphi.Net等等, 雖然這些各種不同的語言擁有各自的程式語法, 如果你習慣Basic語法, 你就選VB.Net, 如果你還是新手, 那不妨選原汁原味的C#, 如果你用慣C++, 那你可以選C++/CLI (算是第二代的C++.Net), 如果你習慣Pascal語法, 你可以選Delphi.Net。總而言之, 不管你所選的是哪一種語言, 它們用的類別庫通通都是一樣的, 都是.Net Framework BCL, 更妙的是用C++/CLI寫好的CLASS可以給任何其他的.Net語言繼承過來使用, 當然要寫成DLL類別庫供其他的語言來呼叫也是可以的。

4. MSIL(Microsoft Intermediate Language) 咦, 記得前面筆者並沒提到MSIL啊, 啊, 那一定是筆者給忘了, MSIL叫做微軟中繼語言, 算是一種中間碼, 拿JAVA作比較, MSIL就類似JAVA的byte code, 這樣如果學過JAVA的大大就懂了, 在第3點中提到的各種.Net程式語言, 經過編譯之後, 通通都會變成MSIL, 它本身並無法直接執行, 所以在.Net機制中就透過JIT式編譯(Just In Time Compiling), 在MSIL被喚起執行時, 會被JIT編譯器翻譯成目的機器的原生碼(Native Code), 然後再交給CLR去執行。

.NET初學者的學習建議

無論是初學者或是已經有一般基礎的程式員,接下來我們列舉一連串的步驟,作為你學習.NET的參考。 1. 瞭解.NET語言:在你開始學習.NET之前,選擇一個語言,C#或是VB.NET,學習相關語法,例如迴圈,宣告等等,瞭解類別設計,OOP的基礎概 念,在你熟悉這些東西之前,不要去碰所謂的WinForm或是ASP.NET,當然,這是建議,如果你不覺得這會模糊學習焦點,如果你打算就語言本身下去 學習,從Console模式作練習。 2.探索基礎的.NET Framework類別庫:瞭解何謂命名空間,類別如何被組織歸納,如何引用現有的類別庫實作所需的應用程式功能,學習一些基礎的核心類,例如Math、Exception等等。 3.選擇所使用的UI:傳統的視窗應用程式(WinForm),或是Web應用程式(WebForm),也就是ASP.NET。 4.深入類別庫:學習特定領域的技術,例如資料庫的ADO.NET,繪圖技術的GDI+,網路與串流技術,甚至大型應用程式的發展等等。 .NET 程式設計師一旦過了初學的門檻,有一大部份的時間,都會在類別庫的類別功能上打轉,無論你所開發的是ASP.NET的Web應用程式員,還是傳統視窗應用程式,都脫離不了類別庫的應用,強化類別庫的知識將是最主要的課題。 以下為可參考之學習地圖: .NET 的架構設計得非常出色,因此很容易學習,按步就班很快的就會成為一個堪用的.NET應用程式開發人員,有了好的基礎,無論是目前的.NET3.0,或是明 年蓄勢待發的.NET3.5,對你都不再會是困擾,因為它們都只是堆疊了一些新的東西上去,只要在需要的時候,針對這些新增功能繼續下功夫即可,至於那些 新功能,我們用一些簡單的數學式來說明。 .NET 2.0 = CLR +BCL+ C#(VB.NET) + Win Form + Web Form .NET 3.0 = .NET 2.0 + WCF + WPF + WF + WCS .NET 3.5 = .NET 3.0 + ASP.NET AJAX +Silverlight+LINQ CLR = Common Language Runtime BCL = Base Class Libary 如 何,是不是比較好受了,從這幾條數學公式當中,我們得到了一個很重要的結論,如果沒有.NET2.0的基礎,你是不可能學好所謂的.NET 3.0,甚至迎接明年即將到來的.NET3.5,也因此,除非你已經準備好了,否則學好你的.NET 2.0 逺比關注目前的新技術來得重要。 至 於.NET 1.0或是.NET 1.1,試著擺脫它吧,.NET 2.0相較於.NET 1.X的改變儘管並非革命性的,但是.NET 2.0在某些方面的確作了一些變動,語言的功能亦作了不少的加強,編輯器的檔案架構同時也有一些不小的調整,跳到.NET 2.0是比較合適的選擇。

婚禮使用白平衡濾鏡?

婚禮現場.... 所有的流程都在持續進行 7 E/ D' s! k) I, t, e* d1 a+ u: T" B) _6 w" d) d5 t+ a8 s 幾乎是... 不等人...沒有預演可以測光 (即使有預演走位..多數燈光也跟實際不同)6 k5 ^+ I; T1 p" I & T+ N* f$ R4 B$ H不會重來.... / m \: w! i& l9 A" W3 P% q9 J1 x9 T! T 場地燈光一直變6 f: a# K/ D: p2 ^) j. } . s# E7 ]3 @( L1 F 所以.... 現場測白平衡都是不實際的...因為場地環境..燈光一直在變2 r' Z5 s, R* @3 q) o+ w- v: _ & U$ Q% u7 N0 E 很多重要流程....沒拍好.. (沒對到焦..手震...嚴重過曝..曝光不足).8 A: q K3 W* }1 F 6 F& G* _& b) J1 F1 ?7 s, g& r不太可能事後重拍. 4 i6 w/ `' j5 @# D& z6 _ 9 j0 \, G( C2 U我認為是....多數拍照類型中....挑戰性與考驗技術最高的一種( e2 f: n6 L7 r2 P * } E. q5 Y- x0 m: x, y 所以.....很多場合與畫面...有拍到..有對到焦...曝光對....到就已經"阿彌陀佛"了....還奢求白平衡??$ s/ J) v! i) d _ % u& p, M8 l/ p d. c- P. ~9 i, b白平衡必須靠拍攝經驗.... 在相機與閃燈的設定中..依照拍攝環境...及時根據機身LCD....作最好的協調設定% m, V& X' ]6 H' e 0 ^8 ^' [% {' T! m& c+ f6 V然後拍RAW檔... 回家慢慢調 0 x, D# m$ s" Y7 [8 P. x# o4 u# }' `' t& [ (閃燈的出力大小與角度 + 機身光圈快門的設定...會影響整張照片的呈現...現場光與閃燈光源的分佈比例..必須靠攝影師即根據經驗即時設定...所以不同的拍法會影響是後白平衡修訂的數值)3 ~$ J% J2 \0 [$ l; H, \7 b 2 O$ r" O* H$ b) q9 N 一場婚禮呈現好照片...現場拍攝功力與器材好壞....佔50% 3 U6 E3 K$ Z6 D5 f 後製的能力與用心................佔50% ; I1 y( h3 l) ?# c 9 {% w" G' Z3 A+ M" Y+ V我一場婚禮結束後都要慢慢調7~14天% A) ^6 C1 h$ \" N+ S; k$ j6 m 4 N; c8 a! ? u但是付錢的新人一開始都會嫌貴... 0 \- x6 Q, T. f" e R0 o A* J+ _ 因為他們看不到後製所花費的時間與痛苦...9 Q. Q- X/ C" T) l: ?1 Z5 T7 ?9 ~ / T7 k4 y' \( W D5 Z 一場婚禮600~1000張... 慢慢轉RAW檔... PS每張修飾% }) P, l0 a1 O5 Z" a0 F+ D0 C: Z # z2 ^) }) B x- Y$ s# k& R真的很累2 _7 k, X$ J* \. @% N2 C* l $ c; x. B& u8 g. x 我常常跟新人講...如果要便宜.... # o8 w \/ }. ~ # a& i: o- f( ]: l& ~0 R就不要求品質! P* ^! D; ^4 x# C 2 g! r: b8 s( `" D. J6 p+ X5 d那我拍JPG...不後製....隔天馬上交給您... 只收費1/2... 其實我比較省事 ... * s/ q' s }4 D3 d 4 n1 f) a) ]1 }* @5 J3 Y; {好嗎? (考慮清楚在告訴我) ( l: m* Z3 Y8 t! s" a 7 d- _& @& R0 Z 5 q, G# m' q2 X3 {所以....( P* o# V( \1 H+ B 後製不是無敵的 9 v* O3 l: r4 n; C # H$ L( `! [. \0 a$ C拍攝當時 $ o% g# P: t( ?: I/ h ' U- C9 `/ U% x3 T8 G* k拍不好...沒對到焦.... 曝光控制錯誤... 構圖不好 % G# Y* Q! W9 T( C( k* K 6 ^" ^9 y w- E8 D4 z5 z2 W閃燈出力.角度與機身設定沒有達到很好的平衡點 % Y- s" M/ ]! ^ 6 p( b' d" I/ Y) G8 Z, k再利害的後製....只是把不能看..修成可以看+ M, @% j: k( K 9 Q) v5 ?' k i / u- l4 J+ d* d/ W7 [5 _7 }6 Z/ ~/ P針對問題 5 J/ M& a+ Y# ^拍攝時.... 我一率機身設定自動白平衡 5 w: `' x% @3 E- }- p9 T拍raw檔4 Z5 D5 Q$ k" m5 q6 d7 C- | 3 C& Z: d! A' S$ K1 r2 Q6 @% s 拍攝時...依照LCD發色表現..與亮度表現..1 s* Z# N, r2 E4 C$ j" @/ T6 d 即時修定閃燈與機身的設定 2 K B: M& W+ Z& S0 q 9 F! k, A7 o! i+ r1 a7 d回家慢慢調RAW檔 & u% [5 ]. ]$ w& y5 q/ B+ m- i ' N1 M% ]/ N; r因此機身的LCD表現...顏色準不準..與亮度對比準不準..拍攝當時對我來說很重要4 w/ M E6 w5 E8 M 0 y6 `9 ~5 P7 `: A3 K8 p 5D後期機身...LCD嚴重偏綠...) |. j* S/ c/ v7 }; N 還有1D3 與 1Ds3...LCD發色也很怪 (黃中帶綠..顏色過於艷麗..) $ w7 }3 U! \# I& B1 S# [" m2 z40D LCD很奇怪的偏青色..冷冷的& E9 l9 F4 k5 l3 ~ + I3 V* d; E( G+ m+ [4 E8 c8 ]這幾台機身...如果我拿來用...# F `* k( B2 h. c 7 v# C+ t& P3 J 拍婚禮時.... 拍完後看LCD...我真的不知道如何根據LCD來即時修正 " c' c2 q& T; U2 w s * c+ }. k/ ]$ X C4 z; T(因為我機身都是用M模式拍攝....光圈快門都是依照LCD表現來即時修正..達到我預期想要呈現的曝光程度)

買中古屋 VS 買新屋

恭喜,您是社會上有能力購屋的成功人士,您問大選過後...頭期款只有六十萬,能買汐止的房子嗎???對您的問題,我提供一點買屋抱地的觀念,相信對您會比較有利的.*********************************************************中國人是擅長炒地皮的民族,所以...~有土斯有財的觀念~大家耳熟能詳,也根深柢固..但是,在臺灣出現了一個奇特的現象!!!隨著近年來臺灣土地飆漲,房價節節高昇,新成屋的價格更是可望不可及...!!!???.買新成屋是因為...房屋是稀有財,更是保久財,更是~有土斯有財的觀念~的具體實現!!!這話對嗎???.中國人的~有土斯有財的觀念~,並非~有房子斯有財~,最重要的是~~土~~,簡單來說就是房子所持有的土地持分..新的電梯住宅大樓,它的土地持分是舊公寓(4-5樓)的1/2到1/6,公設比接近三成,室內實際使用面積小;舊公寓大約15%左右,但是...售價卻是舊公寓的1.5~3倍!!!???為什麼!!!???.房子的售價不該是...~土地持分價值加上房屋價值~嗎!!!???以同一地區,同一地段,相鄰地房屋30坪為例,新大樓20樓,舊公寓4樓比較,新大樓的室內實際使用面積約22坪,舊公寓的室內實際使用面積25坪,新大樓的土地持分最多不過3坪,因為不只地上建築物,連地下的停車場也要分土地持分,而舊公寓的土地持分最少有7.5-10坪,那麼為什麼新大樓的售價是每坪35萬,而舊公寓的售價是每坪25萬不到???為什麼土地持分最多不過3坪的新大樓的售價一戶1050萬,而土地持分最少有7.5-10坪舊公寓的售價卻賣不到750萬???.是否因為人總是喜歡買新的漂亮的東西,而將新大樓的房屋價值嚴重高估;卻將舊公寓的土地持分價值嚴重低估了!!!.要知道房子是會老會舊會損害會漏水,最終是會變危樓甚至於傾倒的,嚴格來講,房子的房屋價值並非保久保值財,而是消耗財,而房子的土地持分價值才是保久保值財..花了大半輩子的心血,幾近耗盡全部財力,買了一戶美麗的新大樓公寓,卻在50年後,才恍然大悟,原來這當初高價買的房子竟然越放越不值錢,這就是將新大樓的房屋價值嚴重高估的後果..而那其貌不揚的舊公寓卻是一堆建商談改建,可以分到一間一樣坪數甚至大一點的坪數,還加地下停車位!!!.這也是為何最近建商頻頻推動社區改建,都市更新,目的就是要向天爭地,將土地持分價值充分顯現,建商將有高度土地持分價值 低房屋價值的舊公寓買進,敲掉改建成電梯公寓大樓,然後將高度房屋價值 低土地持分價值的房子賣給消費者,建商賺的就是...土地價值材.....建商提供的電梯公寓大樓有一定的優質生活環境附加價值,買來自住,犒賞自己及家人有一定的..投資生活品質..的必要誘因..但是...若是單就未來房屋的漲幅,您能接受原本是新大樓的售價是舊公寓的1.5倍,卻在20年後變成...舊公寓的售價是新大樓的2倍嗎???.所以...先搞清楚您的購屋需求是甚麼,(優質生活環境或未來漲幅)再看清楚您將要購買的房子到底是..房屋價值或土地價值取向,就不會做出錯誤的判斷了.. 參考資料常念..白衣大士神咒....的虔誠信徒 2008-03-29 09:33:49 補充 以600萬的新小公寓為例,一般土地持分非常少,房屋價值約480萬,土地持分價值約120萬,以一棟房子使用50年來算,房屋價值每年折損9.6萬,這部分的隱藏損失,您是否已經考慮進去???.臺灣位於地震帶上,想想一間房子買600萬,萬一倒塌了,只剩下120萬的土地持分價值,您能接受嗎??? .若是不能接受...是否該把這部分的風險考慮進去???!!! 2008-03-29 09:34:02 補充 想想921大地震,台北縣.新莊.博士的家.倒了(5年內的新大樓),台北市.東星大樓.倒了(十幾年的大樓).再想想為何台北市.東星大樓一定要跟台北市政府訴訟索賠???.原本2-3千萬的房子倒塌了,只剩下3-5百萬的土地持分價值,欠銀行的平均貸款更遠高於土地持分價值!!!.用一無所有了,還倒欠...可能是最貼切的形容了. 2008-03-29 09:34:17 補充 台灣有許多有實力的有錢人,專買好地方好位置的舊公寓,買屋抱地,因為...那房子的價值結構剛好與新大樓相反,以600萬的舊公寓為例,一般土地持分比例非常高,房屋價值約150萬,土地持分價值約450萬,公設比低,使用坪數大,租金收益高,可說是超低風險又高報酬的投資.若是遇到了都市更新...房價更是水漲船高,這種立於不敗之地,一本萬利的投資,保險做夢都會笑醒吧!!!!.投資的輸贏,往往決定於自己投資觀念是否正確,而非投資顧問的建議!!! 2008-03-29 09:34:56 補充 台灣人買房子,分兩種人...兩種想法!!!???.一是有錢人(大部分在台北市),他們買房子的觀念...建材用最好的,用料扎實一點,房屋售價貴一點沒關係..另一種...建材不用最好的,房屋售價便宜一點給我就好了..建材飆漲成這樣,用料實在的房子,光建材就要十幾萬/坪了,那麼建商如果賣便宜一點,建商賺甚麼???買建地不用錢嗎??? 2008-03-29 09:35:18 補充 中國大陸很多區域是不賣土地只賣地上權居住55-70年左右(55-70年左右這個數字就是從房屋價值是消耗財,這裡來的) .如果在買屋當時的購屋觀念和心態就已經偏差了...請您們捫心自問,您們對於台灣便宜的新大樓,有信心嗎???相信能夠健康撐過50年的大樓有幾棟???相信能夠健康撐過100年的大樓又有幾棟???您們相信另一個東星大樓.跟政府打官司的情形,真的不會再發生嗎???還是即將很普遍地發生!!!??? 2008-03-29 09:35:31 補充 我們都清楚,台灣現今經濟不佳,未來更慘,(畢竟沒有產業就沒有希望)讓太多民眾因為超低利率而去跟銀行借款買房子,(尤其新成屋貸款成數最高)在以後未來更慘的經濟裡,會有多少人付不出房貸來???又會有多少買新成屋者,在努力背了20年房貸,幾近耗盡一生的精力後.才發現那新成屋(土地持分太少)竟是消耗材,不會保本,不會增值,更不能對抗通貨膨脹!!!那種結構性,幾近全面性的破產,會有多少銀行倒閉?更會製造多少家庭悲劇???!!! 2008-03-29 09:35:47 補充 政客贏得短暫經濟榮景,建商賺取銀子,人民買到空殼,銀行收到的擔保品是風險,美國次級房貸風暴之所以會那麼可怕,終究其原因就是收到了太多高估的消耗材,若是全面引爆,全美的銀行倒閉,政府破產...一點都不足為奇!!!.50年後的臺灣大房災或許真的需要等50年後才會發生,但是即將發生的臺灣次級房貸風暴,正在加速地如滾雪球般越滾越大!!!若不即時處理,臺灣次級房貸風暴可能會在四年內引爆!!!到時候是要讓銀行倒閉,還是要拿國庫救世呢???(銀行跟國庫都是人民的錢啊!!!) 2008-03-29 09:36:01 補充 或許...根絕臺灣次級房貸風暴的方法,就是教育人民~有土斯有財~,並非~有房子斯有財~,的觀念.這也是台灣不同於大陸,土地可以永續私有的核心價值..別以為即將發生的臺灣次級房貸風暴還很遠,最近三個月,新增法拍屋的數量瀕創新高..我說過電梯公寓大樓有一定的優質生活環境附加價值,買來自住,犒賞自己及家人有一定的..投資生活品質..的必要誘因,但是...房屋價值是消耗材,卻也是該有的正確觀念,否則...新增法拍屋的數量瀕創新高,是從哪裡來的??? 2008-03-29 09:36:16 補充 當初的建商為何不八折買回呢???!!! . 或許...5折買回都只有轉手的差價可賺,卻沒有再度開發的價值!!!.那種...商品,買來自住,犒賞自己及家人有一定的..投資生活品質..的必要誘因,我也很想住啊!!!我的父母也喜歡坐電梯,不喜歡爬樓梯啊!!!.只是...身為建築監工的我,住不起,住不起不是因為買不起,而是因為那房屋價值折價我承擔不起,唯有接受房屋價值是消耗材,還買的下手的成功人士,才能真正享受電梯公寓大樓...的尊崇享受. 2008-03-29 09:36:29 補充 若是捨棄....房屋價值是消耗材的基本觀念,只是...駝鳥心態,畢竟...房子登記在您的名下,不願面對的真相...永遠都在..如果能將購屋眼光提昇到建商級眼光,就能擺脫散戶購屋..的迷思了. .買房子屬於長線投資,要降低風險,確保利潤,還是要考慮.地點.交通.環境.實際使用坪數.土地持分價值等條件,無論是理財投資或是傳世久居,都相對較有保障. 2008-03-29 09:36:41 補充 另外.您如果買的是土地持份高的...中古屋,那中古屋已經被嚴重低估了,怎麼會有泡沫化的問題???.另外一方面,如果票投給馬英九是代表...未來會走向和平的話,那麼有沒有統一.或者是開放陸資來台買房地產...都不是重點了..看香港最便宜的平民小公寓,開價250萬台幣/坪,豪宅更開到450萬/坪,上海的平均房價是台北市的平均房價...的兩倍!!!一樣的建材.房子.結構,為何地點不同會有那麼大的差別??? 2008-03-29 09:36:54 補充 那是因為...台灣以前是...很有可能戰爭的戰地,我個人稱之為戰地價,如果未來走向和平!!!您認為還看得到...戰地價嗎???看看當初遺棄台灣的台商,錢回流台灣買房地產,他們是笨蛋嗎???請您到街頭巷尾看看...貼求售的房子是否越來越少了???是否代表實際使用坪數.土地持份高的中古屋已經被買得差不多了???和平發展時期...怎麼還可能會以戰地價求售???.不管有無開放陸資來台???陸資一樣會以各種的型態來台卡位!!!無論是台商.台幹.或是拿台灣身份證的大陸新娘....他們買房子...根本無法分辨是陸資!!!更無從限制!!! 2008-03-29 09:37:10 補充 限制只是口號,喊給人民聽的,聽聽就好,請您仔細觀察...選後...新成屋.預售屋是否已經沒有議價空間了???是否沒有議價空間...還偷偷地將看板上的售價調高???.看看香港的所得是台灣的兩倍,房價卻是台灣的4-10倍!!!高所得...帶來的是...更買不起的房價!!!.如果...您還是無法認同未來房價節節高升???那麼可能...您需要的是...戰爭!!! 2008-03-29 09:37:23 補充 最後...我的建議是您如果有能力買房子,都可以買,也要趕快買,最重要的是認清您們買的是...甚麼???.發揮一己之力,造服他人就是行善,願以此功德回向予廣大的奇摩知識家們,也望各界廣大的奇摩知識家們,發揮善心,指點更多的奇摩知識信徒,讓這善的聲音,雖然微小,卻能夠益發清悉.