2011年11月26日 星期六

ASP.Net統計圖-教學分享







1.下載 WebChart.dll在工具箱中擇一現有索引標籤項,如「一般」,以「選擇項目」加入 ChartControl 控制項。
2.拖曳 ChartControl 控制項至網頁設計,仿下列程式碼設計,即得上列左圖之成果!


ASP.Net 控制項 AutoPostBack時的捲軸定位

設計互動控制項要讓網頁隨著網友的選擇動作做更新時...

(例如:DropDownList下拉式選單)
多半會勾選AutoPostBack讓網頁會在選取項目改變時即時刷新...
但是...只要一刷新...網頁再重新載入時就又會回到最上端...
如果控制項的位置在網頁的下半段...真的很討厭...
尤其填表單時如果AutoPostBack的動作不只一個...滑鼠滾輪都快起火了!

如何使網頁自伺服器回傳時,維持原網頁捲軸位置,不跳回網頁上端?

在網頁(.aspx)的「原始檔」編輯視窗,第一行 Page 設定的尾端空格處按下空格鍵,顯現的智慧標籤即有「MaintainScrollPositionOnPostBack」屬性選項



指定其屬性值為「True」

ASP.NET與PHP速度對比

PHPChina資訊:剛剛在9月編程語言排行榜上取得歷史性突破的PHPWeb開發領域最到的對手可能就是基於微軟.NET技術的ASP.NET。近日,微軟的Joe Stagner在博客上發表了一系列文章比較了PHP和ASP.NET性能方面的文章,引起了來自雙方程序員的大量回應。Joe表示,他會將這樣的測試持續下去,並尋求更為合適的方式,以獲得對實際項目來說盡可能有參考價值的結論。
一般來說,作性能測試的目的是要嘗試證明一方比令一方要快。受雇於微軟,同時編寫PHP和ASP.NET代碼。我在.NET出現之前就在使用PHP,兩個東西我都很喜歡。
所以,很難說出哪個更好。當說PHP好話時,微軟同事們會寫信來批評我,而當發表傾向於ASP.NET的言論時,PHP朋友們會說是微軟的托。
進行這個測試是因為每個人都對PHP的性能有自己的看法(Windows vs. Linux & 5.2 vs. 5.3),卻沒人能給出明確的數據。

ASP.NET比拚PHP的測試環境如下:
  • 所有的測試都在同一台機器上運行(擁有4G內存和60G 7200轉硬盤的Toshiba Tecra M5)。
  • Ubuntu 9和Windows Server 2008標準版分別安裝於獨立(但相同)的硬盤中。
  • Linux使用Apache2,Windows使用IIS 7作為各自的Web服務器。
  • 雙方的操作系統都進行了完整的patch或升級。
  • 雙方的系統和運行時都沒有進行額外的性能增強。
  • 從實驗結果上看,PHP在Linux和Windows的執行性能各有千秋:
  • 純粹的語句執行在Windows上表現更好。
  • 函數調用在Windows上更快。
  • 對象的創建和訪問,對於PHP 5.2來說在Linux上更快,但是對於PHP 5.3來說則是Windows更快。
  • 類庫調用在Linux上快得多(如在Ubuntu上進行加密要比Windows要快3到5倍)。

轉貼 ASP.Net 程式人員的心聲-為啥那人寫 code 感覺用飛的-善用快速鍵

話說,剛進入這條不歸路的時候,那時還是用 VB6。
第一次見到師父 ABBY ( 哈哈!!這個英文名字在台灣應該找不到第二個了吧!)
他老人家寫程式碼的時候,我的下巴都快要掉下來啦!! ( 當時我的表情應該就是這樣子吧! )
簡直就是用飛的感覺,這是人類可以辦到的嗎?
無論是寫 code 或是 追 Bug 都幾乎沒用到 mouse
他老人家告訴我幾個訣
真的是受用無窮呀!!就跟騎腳踏車一樣
基本條件
一個好用的鍵盤
最好是那種 104 標準+ 的,和自已喜歡按下去的感覺。( 找到那個 fe 是很重要的 )
一定要可以英文盲打!
這是寫 code 的基本原則,而且是要同時「兩隻手」可以迅雷不及掩耳的速度打完 public void main()
工具一定要支援 Interllisense
這一點尤其重要,別再跟我說「這個有跟沒有一樣呀」,能少打幾個字就少打幾個字啦!
記住自已常用的快速鍵
別跟我說不知道啥是 F5

----------- Visual Studio .NET 系列開發平台 通用 ------------------------------------------
廢話不多說啦!馬上來介紹幾個自已很常用的
選取整行的字 [Home] , [Shift]+[End] ( 這個順序沒差 )
選取一個區塊 [Shift] + [↓] or [↑] 有時要搭配 同一行選字時請再 [Shift] + [Ctrl] + [→] or [←]
選取一個區塊 ( 一行一行 ) [Shift] + [Ctrl] + [↓] or [↑]
選取一個單字 [Shift] + [Ctrl] + [→] or [←]
呼叫出 InterlliSense 小視窗 [Ctrl] + [→] or [Ctrl] + [J] ( 要看當初的鍵盤設定 )
執行程式 [F5] ( 其實我還是常常看到很多人用 mouse )
逐行執行程式 [F11] ( VB6 的話印象是 F8 )
設定/去掉 中斷點 [F9]
進入呼叫 method 的程式區塊 [F12] ( 這個很方便喔!一定要試試 ) ( VB6 的話印象是 F10 )
找東西 [Ctrl] + [F] / 取代 [Ctrl] + [H]

--------- 補充 -------------------
快速切換不同工具/ 文件時 [Alt] + [Tab]
在有頁籤時想要快速切換時 [Ctrl] + [Tab]
其實只要以上 10 個幾乎可以適用在大多數的地方 ( 一開始也用不了這麼多啦! )
原本沒有寫說要寫這方面的,但過了這麼久發現這個部分很多人其實都沒有這麼在意,工具有提供卻沒有用覺得很可惜 ( 這個以前教其他同事就教了至少超過十幾遍了吧 )
這些東西可以供大家參考參考,可以有更多自已的時間 提升平常寫作的效率喔!

ASP.Net常用程式-點擊表格行連結另一頁

點擊表格行連結另一頁
private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
 //點擊表格打開
 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
  e.Item.Attributes.Add("onclick","window.open(’Default.aspx?id=" + e.Item.Cells[0].Text + "’);");
}


雙擊表格連接到另一頁
在itemDataBind事件中
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
 string OrderItemID =e.item.cells[1].Text;
 ...
 e.item.Attributes.Add("ondblclick", "location.href=’../ShippedGrid.aspx?id=" + OrderItemID + "’");
}


雙擊表格打開新一頁
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
 string OrderItemID =e.item.cells[1].Text;
 ...
 e.item.Attributes.Add("ondblclick", "open(’../ShippedGrid.aspx?id=" + OrderItemID + "’)");
}


★特別注意:【?id=】 處不能為 【?id =】 (設定QueryString的變數及等耗之間不能有空格)


表格超連結列傳遞參數
<asp:HyperLinkColumn Target="_blank" headertext="ID號" DataTextField="id" NavigateUrl="aaa.aspx?id=’
 <%# DataBinder.Eval(Container.DataItem, "數據欄位1")%>’ & name=’<%# DataBinder.Eval(Container.DataItem, "數據欄位2")%>’ />

PHP線上投票系統-轉貼教學-分享2U

轉貼自 http://www.minwt.com/?p=634



最近因工作上的需求,多多少少得接觸到PHP,而PHP的語法結構有點亂,但不可否認的事,PHP的資源到是不少,也相當容易取得,最近正好想在部落格放個投票系統,雖然有不少的免費投票系統,如:blogpoll、polldaddy,功能到是不錯用,但按鈕上文字還是無法修改成中文,有些美中不足。

於是上網找了Advanced Poll,很巧的是竟然也是用PHP開發,於是只好硬著頭皮,便研究一下該怎麼使用,也順便練習一下PHP,好在有男丁格爾的大力相助,再加上梅干桑的胡搞蝦搞,終於把它給搞定了,接下來就簡單的說明一下安裝步驟,以及要如何嵌入到個人的部落中。

版本:Advanced Poll 2.02+ 男丁格爾&梅問題強化版1.0
強化項目:
1. 中文語系製作
2. 透過網址設定投票編號、版型、顯示bar條長度
3. 選項可加入圖片
4. 結果預覽


Step1
由下方下載投票系統,解壓並上傳到支援php的空間。
http://cdn.minwt.com/download/php/pollphp.zip


Step2
for Liunx平台:
若是Linux主機,將mwtvote檔案屬性權限設為777,讓該資料夾為可寫入的權限。




for Window Plesk平台:
若是Window主機,將mwtvote中的IIS User權限設為完全控制,讓該資料夾為可寫入的權限。



C語言-閨年判斷式-分享2U

由鍵盤輸入一個4位數的整數,代表西洋的年份
每四年一閨,每百年不閨,每四百年一閨,每四千年不閨
方法: 先用一個if判斷是不是4的倍數
裡面在用一個if判斷是不是被100和4000整除
下面是解答: 先自己寫看看,盡量別急著看喔!
-------------------------------------------------------------------------


PHP教學-用PHP發送mail

用來傳送 e-mail 的描述語言程式(Script)可說是網站上最常見的程式之一。雖然它很單純,但是在某些時候,它卻往往對程式設計師們造成極大的困擾。在 PHP 中有一個函式叫做 mail(),只要有收信者名稱以及訊息內容,就可以拿來傳送訊息。但是你還是需要針對 mail()做某些調整,才能讓mail()為你完成你想做的事。
首先,要讓 mail()能夠運作,你必須先有一個 SMTP 伺服器,好讓你的 PHP 連上去。雖然這個伺服器在電子郵件程式中佔有極其重要的地位,大部分的人還是對它一知半解。在這篇教學指南裡,我們會為你揭開 SMTP 的神秘面紗,並且同時解說關於使用 PHP 傳送電子郵件的某些常見問題。其中精采的內容還包括了:如何以迴圈的程式敘述,讀取電子郵件住址名單,同時針對其中的收件者一一傳送郵件,包括純文字格式以及 HTML 格式的郵件等等。
了解你的 SMTP 伺服器SMTP 是 Simple Mail Transfer Protocol 的縮寫,而 SMTP 伺服器則是透過執行該通訊協定而傳送電子郵件的電腦。基本上,執行通訊協定指的是:如果你使用的是非 Windows 作業平台,執行的是 Sendmail 或 Qmail這類的電子郵件軟體。而如果這部機器使用的是 Windows 作業平台,那麼 SMTP 服務已經包括在 Windows NT Service Pack 中,或者內建在 Windows 2000 裡面,而且,這項服務通常就是正在執行中的電子郵件服務。
這並不是說,SMTP 軟體就只有那幾種,只是它們是最被廣為使用的。如果你的網站是 ISP 的虛擬主機(Vitual hosting)套件的一部分,SMTP 服務應該就已經安裝在主機上面了。如果你是位系統管理者,負責管理某台放在 ISP 或公司機房的專屬主機(Dedicated machine)的話,那麼你很可能會需要在那部機器安裝某種 SMTP daemon,特別用來處理網站伺服器的電子郵件傳遞。
然而,如果你只是一個單獨的使用者,只有一套網站伺服器開發平台在你的個人電腦上面,你可能沒有在你的機器上安裝 SMTP。這裡有個非常簡單但是精確的準則: 如果你是個 Windows 使用者,而你從來未曾聽過 SMTP 伺服器,那麼你就沒有安裝 SMTP。若果真如此,你有兩個選擇:安裝, 設定,並維護一個 SMTP 伺服器(如果你不知道那是什麼,我並不鼓勵你這樣做)或者直接使用已經在你手邊的東西。
「我沒有安裝,怎麼會說在我手邊呢?」你可能會這樣問。嗯,如果你的電腦是透過撥接上網的(或 DSL 或者 cable),你可以直接使用你的 ISP 的外寄郵件伺服器(outgoing mail server)。例如,如果你的開發平台是 Windows 98,以及一台 56Kbps 的數據機,並透過 EarthLink 上網, 那麼你可以用 mail.earthlink.net 當作你的 SMTP 伺服器。不管你使用的是哪一種電子郵件客戶端軟體 (Eudora,Outlook,Netscape Mail 等等),你的外寄郵件伺服器都可以在 PHP 程式碼中,指定為 SMTP 伺服器。要訣在於,你要告知 PHP 這件事情。
在 PHP 的主要設定檔,php.ini 中,有一些 directive 是你必須去設定,這樣一來 mail() 函式才能夠使用。在更改那些設定以前,你先看看它們是什麼。使用 phpinfo() 函式,可以顯示你的系統目前的設定, 做法是,建一個檔案,包括下列文字:
<? phpinfo() ?>
將檔案存起來,放在你的網站伺服器的文件根目錄中。然後用你的瀏覽器去看這個檔案。你應該會看到一個編排良好的現有設定列表。在這裡,你要注意的設定選項為:
SMTP sendmail_from sendmail_path 如果你用的不是 Windows,你只須擔心 sendmail_path directive。如果你用的是 Windows,你就要注意先前兩個 directive。
如果你用的是 Linux 或其他 Unix 變種系統,sendmail_path 應該差不多是這樣子設定的:
sendmail_path = /usr/sbin/sendmail
或者,如果你用的是 Qmail:
sendmail_path = /var/qmail/bin/sendmail
在這個 directive 裡面,你也可以設定某些 flag 來指明你的 queuing 做法,或者是用來明確的寫出你的 Return-Path 標題,就像這樣:
sendmail_path = /usr/sbin/sendmail -t -fyou@yourdomain.com
如果你不是 Windows 使用者,你所需要做的就那麼多了。

PHP教學-PHP 讀取 excel 的方式

使用 PEAR 的 Spreadsheet_Excel_Writer
http://pear.php.net/package/Spreadsheet_Excel_Writer/download
個人是覺得還不錯用,但他有一個BUG
就是當excel 資料一多時,就會發生錯誤。
撈出來的資料會亂掉。

但有解決的辦法
http://blog.teatime.com.tw/1/post/111
大家早晚會用到讀取excel 的時候
所以分享給大家

本文轉貼自:http://freeshare2u.com/

ASP.net 網站對郵件的自動追蹤(C#)

網站對寄出去的郵件是否有被閱讀過的自動追蹤對於一些網站而言,追蹤自己送出的郵件確實被閱讀過會是一種很有幫助的功能‧ 當然,每一個人所需要的理由都會不同,這可能是安全考量、資源、或者只是想要確定對方確實有閱讀你送出的重要郵件‧ 也許您知道有些網站會在您註冊會員後自動送出一封包含確認連結的通知信... 其實這一篇文章也是利用類似這一種辦法來追蹤自己寄出的郵件是否有被閱讀,但這邊我不利用手動的方式讓使用者自己去確認,我們想要用自動的‧ 我在此的編寫的程式碼範例將會是 C# ,但不熟悉這語言的朋友沒關係,我將會盡量詳細說明要寫這一個程式應該要有的步驟來彌補 "語言溝通" 上的問題‧


利用圖片做到自動化效果
我們之所以能做到自動化的原因,就是因為我們要想辦法傳送一個東西給收信者,在他打開這一封信時,這一個東西會自動與某一個遠端程式做連線,然後達到追蹤的效果 :-) 因為我們知道,這個東西一連到對應的程式來,就代表使用者一定是開啟了這封信件‧ 而在這邊,我利用圖片自動遠端要求圖片的特性去連到一個可以去做確認使用者動作的網頁(或程式)... 當然,圖片我將故意調成 width=0, height=0 故意藏起來! 以下是一個圖片自動連線到網頁去的一個例子: <img src="http://127.0.0.1/mailTracker/Verify.aspx">


重點: 做到這種自動追蹤的效果,必須要有一個客戶端,跟一個回應端


如何確認一個使用者
當你看到上面html圖片語法的例子,你也許會問: "我只光連到一個網頁去,那網頁該怎麼判斷我是誰?" 當然,我們要想個辦法去辨認! 在這邊,我們假設在郵件送出前,就先製造了一個 "確認鑰匙" ,然後放在圖片的src (source) attribute 一起送出去,這樣子圖片一連線時,就會同時把我們之前丟過去鑰匙丟回,達到確認的效果‧

這一個鑰匙可以是一個名字,或一個ID等等‧ 當你要選擇要用什麼方法做確認鑰匙時,別忘了這個選擇將會影響到服務的安全性! 因為越簡單,或越容易看懂(看穿)的鑰匙,被惡作劇的可能性就越高‧ 如果你是隨便用一個照順序的ID, 像是 123... 那麼惡作據者就可以稍微寫個小script, 從123一直要求上去擾亂... 那到時就失去確認的效果‧

所以在此,我用MD5編碼output出來做確認鑰匙,這樣被擾亂的機會就很比較小‧送回鑰匙的範例如下: <img src="http://127.0.0.1/mailTracker/Verify.aspx?key=4A53428134783EC9C6935A7C0D4671EB">


從送出郵件到確認的過程
在程式碼範例前,我先說一說整個追蹤過程的步驟‧
1. 先建立收信者資料和確認鑰匙到資料庫裡去
2. 把這個鑰匙也寫在img的src attribute裡面,然後寄給收信者
3. 收信者一打開信,電腦就會開始照著img裡的src去開始要求資料
4. 連線目標,也就是對應的網頁開始拿著接受到的鑰匙去確認使用者
5. 如果接受到的鑰匙跟資料庫的符合,則標名該收信者已被確認,或直接刪除

程式碼範例

ASP.Net常用參數傳遞方法

傳送參數:

response.write("*.aspx?id=" & this.DropDownList1.SelectIndex & "&id1= ...")


打開新的視窗並傳送參數:

response.write("<script>window.open(’*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"’)</script>")


接收參數:

string a = Request.QueryString("id");
string b = Request.QueryString("id1");

ASP.NET MVC 學習資源整理[轉貼]

最近手邊的工作還是讓我忙的焦頭爛額,根本都沒時間進修什麼新技術,像是 ASP.NET MVC 想學很久了,卻遲遲沒時間著手學習,不過這段時間只要看到關於 ASP.NET MVC 的相關資訊都會收集下來,等待日後學習時可以一鼓作氣。以下是相關學習資源整理:
當然,學新技術的第一步通常都是從官方提供的網站開始找資料:

我學新技術最喜歡從「影片」看起,看影片可以很快速的學到別人在使用新技術開發時的一些技巧,可以很快的抓到技術的重點與精髓。以下前四則影片是濃縮版的影片,短短幾分鐘就能讓你快速上手,最後一個連結是所有 ASP.NET MVC 的影片教學網址:

另外,範例程式絕對少不了,前幾天介紹的 Oxite 是一個非常完整的範例,沒有一點功力的人要看懂整個架構應該會有點吃力,在 ASP.NET MVC 官網上還另外提供三個 ASP.NET MVC 寫成的範例應用程式可供初學者下載

另外還有 QuickstartsTutorials 系列的文章也是我的最愛之一:

幾個知名的部落格也是必要的資訊來源:

要是這些資料能消化完的話,菜鳥也能變天王了~ 但我知道大部分的人看到這些資料的第一印象一定是「怎麼都是英文的」,若各位想走在技術的最前線,英文的聽、讀能力絕對是少不了的,只有當下開始努力學習,才會有你想要的未來。
中文文章

其他連結 / 延伸閱讀

保哥的開發筆記


感謝保哥提供的豐富資料!!!  保哥的網站:http://blog.miniasp.com/

Java掌握的30個基本概念==初學者==

基本概念
1.OOP中唯一關係的是物件的介面是什麼,就像電腦的銷售商她不管電源內部結構是怎樣的,他只關係能否給你提供電就行了,也就是只要知道can or not而不是how and why.所有的程式是由一定的屬性和行為物件組成的,不同的物件的訪問通過函數調用來完成,物件間所有的交流都是通過方法調用,通過對封裝物件資料,很大限度上提高複用率。

2.OOP中最重要的思想是類,類是範本是藍圖,從類中構造一個物件,即創建了這個類的一個實例(instance)。

3.封裝:就是把資料和行為結合起在一個包中)並對物件使用者隱藏資料的實現過程,一個物件中的資料叫他的實例欄位(instance field)。

4.通過擴展一個類來獲得一個新類叫繼承(inheritance),而所有的類都是由Object根超類擴展而得,根超類下文會做介紹。

5.對象的3個主要特性
ehavior---說明這個物件能做什麼。
tate---當物件施加方法時物件的反映。
dentity---與其他相似行為物件的區分標誌。
每個物件有唯一的indentity 而這3者之間相互影響。

6.類之間的關係:
use-a :依賴關係
has-a :聚合關係
is-a :繼承關係--例:A類繼承了B類,此時A類不僅有了B類的方法,還有其自己的方法.(個性存在於共噸?

7.構造物件使用構造器:構造器的提出,構造器是一種特殊的方法,構造物件並對其初始化。
例:Data類的構造器叫Data
new Data()---構造一個新物件,且初始化當前時間。
Data happyday=new Data()---把一個物件賦值給一個變數happyday,從而使該物件能夠多次使用,此處要聲明的使變數與物件變數二者是不同的.new返回的值是一個引用。
構造器特點:構造器可以有0個,一個或多個參數
構造器和類有相同的名字
一個類可以有多個構造器
構造器沒有返回值
構造器總是和new運算符一起使用

8.重載:當多個方法具有相同的名字而含有不同的參數時,便發生重載.編譯器必須挑選出調用哪個方法。

9.包(package)Java允許把一個或多個類收集在一起成為一組,稱作包,以便於組織任務,標準Java庫分為許多包.java.lang java.util java,net等,包是分層次的所有的java包都在java和javax包層次內。

免費Photoshop精選筆刷-石器時代原始人壁畫



載點:FileServer

免費Photoshop精選筆刷-中國水墨畫竹子



載點:中國水墨竹子-PS筆刷

PS筆刷免費下載-葉子



載點:FileServer

免費Photoshop精選筆刷-古典花紋










PS筆刷免費下載-噴濺墨點



載點:FileServer

免費PS筆刷分享2U-珠串花紋



載點:GE.TT

PS筆刷免費下載-腳印



載點:GE.TT

免費PS筆刷分享2U-泡泡光影



載點:FileServer

PS筆刷免費下載-鯊魚



載點:FileServer

免費Photoshop精選筆刷-貝殼



載點:FileServer

免費PS筆刷下載-古老郵票郵戳-分享2U





免費PS筆刷分享2U-飛鳥剪影



VB教學-觀念篇-正確的除錯 (Debug) 方式

當程式執行起來怪怪的,很多人在除錯 (Debug) 時,都喜歡在程式中使用中斷點 (Break) 加上 MsgBox 來看執行結果,但有些時候,這樣子的作法會造成某些事件 (Event) 無法觸發,甚至改變事件原來觸發的順序! 7 q1 F: p% j" ^! `, ]% K. U
9 a# c: T" e  c/ V! r6 D1 M
比較正確的作法是在程式中使用 Debug.Print "事件名稱/要顯示的訊息" ,而不要用中斷點 (Break)。

本文轉貼自:http://freeshare2u.com/

ASP.net 缺圖時不顯示紅叉叉的方法(javascript)

如何讓找不到圖片的地方不顯示紅叉?
將下列程式碼加入網頁標題區: (不喜歡"[缺圖]"兩個字,也可以自行更動文字)
<script type="text/javascript">
var imgErr = function(imgObj){
imgObj.parentNode.innerHTML = '[缺圖]';
}
</script>


圖片控制項設定 onerror 屬性:
<img id="image" src="MyPic.jpg" onerror="imgErr(this);" />

ASP.net 利用預設的控制項 FileUpload 上傳檔案至伺服器

<%@ Page Language="VB" %>
<script runat="server">
Protected Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
If FileUpload1.HasFile Then
Try
FileUpload1.SaveAs("C:\Uploads\" & FileUpload1.FileName)
Label1.Text = "檔案名稱:" & FileUpload1.PostedFile.FileName & "<br>" & _
"檔案大小:" & FileUpload1.PostedFile.ContentLength & " kb<br>" & _
"內容型式:" & FileUpload1.PostedFile.ContentType
Catch ex As Exception
Label1.Text = "出現錯誤:" & ex.Message.ToString()
End Try
Else
Label1.Text = "未指定檔案!"
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Upload Files</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" /><br />
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click"
Text="Upload File" /> <br />
<br />
<asp:Label ID="Label1" runat="server"></asp:Label></div>
</form>
</body>
</html>

ASP.net Session遺失的幾種可能

前言
還蠻常遇到人家發問的問題是Session值掉了,
所以在這邊作個整理,

希望各位前輩能幫忙補充一下文章中漏掉的部分。

介紹

結論
Session消失的問題,總是很麻煩,
通常都是在User-site的機器,『偶爾』跟『不知道為什麼』會出現Session值掉了的問題,不容易模擬出一樣的環境,
不管是因為時間、機器名稱設定、UI操作行為、IIS站台設定、虛擬目錄架構問題,都是不容易模擬和發現的錯誤。

希望整理出這一篇,可以幫到千千萬萬的developer和SE。也感謝網路上有這麼多前輩願意分享這樣的資訊。

轉貼來源:http://www.dotblogs.com.tw/hatelove/Default.aspx  感謝分享!!!

何謂JSP?

JSP(全稱JavaServer Pages)是由Sun Microsystems公司倡導和許多公司參與共同建立的一種使軟體開發者可以響應客戶端請求,而動態生成HTMLXML或其他格式文檔的Web網頁的技術標準。JSP技術是以Java語言作為指令碼語言的,JSP網頁為整個伺服器端的Java函式庫單元提供了一個介面來服務於HTTP的應用程式。
JSP使Java代碼和特定的預定義動作可以嵌入到靜態頁面中。JSP句法增加了被稱為JSP動作的XML標籤,它們用來呼叫內建功能。另外,可以創建JSP標籤函式庫,然後像使用標準HTML或XML標籤一樣使用它們。標籤函式庫提供了一種和平台無關的擴充套件伺服器性能的方法。
JSP被JSP編譯器編譯成Java Servlets。一個JSP編譯器可以把JSP編譯成JAVA代碼寫的servlet然後再由JAVA編譯器來編譯成機器碼,也可以直接編譯成二進位碼。


JSP和Servlets
從架構上說,JSP可以被看作是從Servlets高階提煉而作為JAVA Servlet 2.1 API的擴充套件而應用。Servlets和JSPs最早都是由Sun Microsystems(昇陽公司)開發的。從JSP1.2版本以來,JSP處於Java Community Process(有人譯為:JAVA社群組織)開發模式下。JSR-53規定了JSP 1.2和Servlet 2.4的規範,JSR-152規定了JSP 2.0的規範。2006年5月,JSP 2.1的規範作為Java EE 5的一部份,在JSR-245中發布。

Asp.net DataGrid自定義分頁代碼-分享2U

先定義變數 :
public static int pageCount;   //總頁面數
public static int curPageIndex=1;   //當前頁面


下一頁:
if(DataGrid1.CurrentPageIndex < (DataGrid1.PageCount - 1))
{
 DataGrid1.CurrentPageIndex += 1;
 curPageIndex+=1;
}
bind();   // DataGrid1資料綁定函數


上一頁:
if(DataGrid1.CurrentPageIndex >0)
{
 DataGrid1.CurrentPageIndex += 1;
 curPageIndex-=1;
}
bind();   // DataGrid1資料綁定函數


直接頁面跳轉:
int a=int.Parse(JumpPage.Value.Trim());  //JumpPage.Value.Trim()為跳轉值
if(a<DataGrid1.PageCount)
{
 this.DataGrid1.CurrentPageIndex=a;
}
bind();

ASP.net教學-安裝免費Visual Basic 2008 Express

要想練習VB,那…程式是不是…偷偷的給它抓破解版,綠色版,大陸破解補丁再補丁版……有那麼難嗎?難到光找軟體就讓你放棄了嗎?不用擔心,微軟可是佛心來的,除了有限定天數的試用版外,竟然有免費版,聽錯了嗎?沒有,再講一次,Microsoft 有Visual Basic 2008免費版,就容我來介紹一下吧!

下載VB 2008 Express
先到微軟官網看看http://www.microsoft.com/express/download/
你會發現,Visual Basic 2010都出來了…那…學2008好嗎?由於2010還是bata 2測試版,因此還是下載2008好了,而且Visual Basic 2005 和2008差異度不太,我想2010基本架構應該也差不多,有興趣的網友自行下載來測試(我好像很懶惰…哈…)。
微軟將Visual Basic 2008組裝在Visual Studio 2008套裝軟體裡,Visual Studio 2008除了有Visual Basic 2008以外,尚有Visual C# 2008、Visual C++ 2008…等其他程式語言,且Visual Studio 2008有Professional專業版,也有Team團隊版,雖然功能完整,但都只有90天的試用版,這個我們不考慮安裝了。
而我們要下載的是Visual Basic 2008 Express 版,這個版本就是微軟釋出的免費版本,請點選「Visual Basic 2008 Express」,再選取繁體中文「Chinese(Traditional)」,並按下Download鈕「Free Download」鈕。

 

(圖1-1-01 )

下載後會出現一個vbsetup.exe檔案,請點兩下安裝,這個過程可能耗費10分鐘以上的時間。
安裝完成後,總算可以開始使用了,但…先不要急,還要註冊才行,放心,這個註冊是免費的,方法如下:
1).按「開始/所有程式/Microsoft Visual Basic 2008 Express Edition」開始VB 2008,如不想這麼煩麻,記得建立捷徑至桌面。
2).開啟VB 2008後,按上方功能表的「說明/註冊產品」,再按「立即註冊」連結。
 


(圖1-1-02)

Windows 2003安裝並註冊jmail組件

Windows 2003安裝並註冊jmail組件

一、下載jmail

二、安裝jmail:把JMail45_free.msi上傳到伺服器上安裝。為了今後備份方便可以安裝到C盤。

三、註冊jmail:在運行裏輸入:regsvr32 “C:\Program Files\Dimac\w3JMail\jmail.dll”會提示註冊成功即可。

四、修改目錄許可權:
此時用探針探測可能仍然提示不支援jmail元件。可能是C盤program files的目錄許可權設置所致。修改Dimac的目錄許可
權,
增加一個everyone組,然後刷新探針頁面,馬上就可以看到支援jmail.SMTPMail的Jmail郵件發送了。
為了目錄安全,我們要刪掉everyone組,探針仍然提示支持jmail。

Update:必須一直開放著everyone組許可權,否則過後(可能是重啟後)又會提示不支援該組件。現在就可以正常發送郵件了。

Gmail的SMTP配置:
要顯示的發送郵箱:可任意設
伺服器地址:smtp.gmail.com
SMTP登錄用戶名:Gmail的登錄帳號。
SMTP登錄密碼:Gmail的登錄密碼。
GMail的smtp要求SSL的安全鏈結
GMail的smtp埠號不是25是465

如何讓 ASP.NET 使用 Session 資料時不要再自動消失

我們在 ASP.NET 網站使用 Session 時,常常因為 web.config 修改或更新 Bin\ 目錄下的 dll 而導致 Session 消失,Session 常常消失也挺惱人的,不是導致突然被自動登出,就是發生非預期的 Exception ... 等。 ( 有時候因為主機安裝防毒軟體也會造成 Session 資料無故消失,因為這些防毒軟體可能會誤判某檔案、某記憶體含有病毒資訊 )
這個時候我們可以將 Session 預設的模式 ( InProc ) 改成 StateServer 模式,但此時必須確認本機的 ASP.NET 狀態服務 是啟動的狀態!
  • 請到 控制台 > 系統管理工具 > "服務"
  • 找到 "ASP.NET 狀態服務" 或 "ASP.NET State Service"
  • 此服務預設是屬於「停用」的狀態,請先切換到「自動」再按下「套用」再直接按「啟動」按鈕即可。


ASP.Net常用-數字與日期格式化

數值格式化
  【<%#Container.DataItem("price")%>的結果是500.0000,怎樣格式化為500.00?】

<%#Container.DataItem("price","{0:¥#,##0.00}")%>
int i=123456;
string s=i.ToString("###,###.00");



日期格式化
  【aspx頁面內:<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%>
  顯示為: 2004-8-11 19:44:28
  我只想要:2004-8-11 】
<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%>

應該如何改?
  【格式化日期】

  取出來,一般是object((DateTime)objectFromDB).ToString("yyyy-MM-dd");

ASP.net GridView加入流水號 [轉貼教學]

本來想用 SQL 在 Select 時想辦法加入,但這方法好像更好用....

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
     <Columns>
         <asp:TemplateField HeaderText="流水號">
            <ItemTemplate>
                <%#Container.DataItemIndex + 1%>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>


用這方法在分頁時流水號會自動累加,如果第一頁最後一筆是 5
第二頁第一筆就是 6
如果想要每頁都重頭開始編流水號就要用  Container.DisplayIndex
PS : Repeater 中則是用 Container.ItemIndex

PHP get_browser 取得瀏覽器資訊

今天來介紹一個PHP函式  - get_browser
可使用此函式取得瀏覽器的資訊,但是需要設定browscap.ini

首先
先到 http://browsers.garykeith.com/downloads.asp 下載 browscap.ini
請選擇 php_browscap.ini 這個檔,再來打開 php.ini
搜尋找到 browscap,設定檔案路徑:如下

[browscap]
browscap = C:/module/php_browscap.ini

儲存php.ini之後記得重啟 apache

接著,寫一個簡單的PHP來使用看看
get_browser可傳入兩個參數:
第一個參數 user agent
第二個參數 是否回傳陣列 預設是 false (會回傳一個物件)

如下面範例:
get_browser(null, true);
第一個參數可不傳 所以給null
第二個參數給 true的話會回傳一個陣列

<?php
$browser = get_browser(null, true);
echo $browser['browser'].$browser['version'];
?>
輸出結果:IE8.0

有更多的參數可以用print_r 來看一下,可以發現也可以分析作業系統

ASP.Net-偽裝成Button的HyperLink

<asp:HyperLink ID="HyperLink_NoPaging" runat="server" Font-Bold="True" ForeColor="Black" Font-Size="Medium" BorderWidth="3px" BackColor="LightGray" BorderStyle="Outset" Target="_blank" Font-Underline="False" style="text-decoration: none; text-align:center" Width="100px" >不分頁列表</asp:HyperLink>

重點提示:@- @" c4 d
BorderStyle="Outset"3 Y# o* Q" @  p* ]) Z$ Z這就是 Button 的外型啦!3 N( v% \8 S$ |4 z
% I) |( m8 R) G  E! Z6 E( N7 A; ^* L
style="TEXT-DECORATION: none"1 O6 H% g% I! ?5 H+ r這樣就可以去除HyperLink的底線囉!

2011年11月25日 星期五

[專案管理]關鍵 4 用報表追蹤專案進度和效率

在 VS 2010中增加了很多專案報表,除了在專案入口網站的專案儀表板中,提供各種進度報表,如最新專案進度、待完成工作進度、程式碼簽入記錄等資訊,還導入了Scrum方法論,新增加了本文點(Story Point)的概念,可以讓專案經理估算開發專案所需的時間成本。

本文點是一種抽象的單位概念,通常可用來代表時間成本,例如人時,或人天。在VS 2010中專案經理可以設定每一個Work Item的本文點點數,例如這一項工作需要10個本文點,代表需要10個單位的工作時間。專案經理可自行定義1個本文點要對應多少人時,例如1個本文點等於2個人時,這樣10個本文點就等於實際上的20個人時。

估算Work Item需要的本文點點數,可依據可能的工作量來估算,例如有兩個User Story,A和B,A的工作量是B的兩倍,就可以定義A有兩點本文點,而B只有1點。依照同樣的作法,在專案建立Work Item時就一併設定本文點,VS 2010就會自動估算出專案進度的各項報表。這些本文點也可以隨著專案執行過程隨時修正。定義出每一項Work Item的本文點數,最後可以加總出一個專案的本文點總數,待這個專案完成後,就用這個專案所花費的時間成本來估算一個本文點所對應的時間成本。經過幾次專案的調整,最後就能得到有效的本文點和工時的對應規則。


[專案管理]關鍵 3 建立Work Item才能整合開發與管理

在VS 2010中,Work Item(也就是工作項目)是管理開發專案最重要的關鍵,任何專案任務、工作、程式碼異動、測試計畫、測試結果都可以透過Work Item建立彼此的連結關係。建立連結後,就像是一串粽子一樣,抓住其中任何一顆粽子,就能帶出整串粽子。打開Work Item可以透過連結找到所有相關連的專案項目。

VS 2010提供了兩種專案形式,一般常用的是Agile專案,這種類型的專案提供了6種Work Item,不過比較常用的只有User Story(使用者本文)、Task(任務)、Bug和Issue等4種。

User Story可視為是需求單,而Task就是工作單。User Story的ID就是需求單的編號。一張需求單會派出多張工作單,完成需求單下的所有工作單,才算完成這張User Story。

Bug則分成兩類,一類是在開發過程由內部人員發現錯誤而建立的Bug項目,歸屬於特定需求單下,視為完成這個User Story成本之一。另外一種就是客戶回報的Bug項目,可以不和其他User Story產生關聯。而Issue則可作為專案各階段里程碑的查核清單或專案經理的備忘錄。

在VS 2010中新增了一種Excel格式的Work Item報表,專案經理利用這些報表,可以很方便地進行整體規畫,以及快速建立專案的Work Item,不用再透過Team Explorer逐項輸入。



過去建立Work Item(工作項目)的作法是到VS 2010的Team總管中,逐一新增需要的Work Item,或者是到專案入口網站上,透過瀏覽器新增需要的Work Item。但VS 2010增加了一種透過Excel快速建立Work Item的方式。

[專案管理]關鍵 2 建立原始碼分支原則與文件控管

程式碼版本控制是臺灣多數開發團隊一定會做的事,但不一定每一個團隊都會建立自己的程式碼分支原則(Branch Model),往往專案從頭到尾,所有人都同時共用相同版本的程式碼,只是這份程式碼的每個版本記錄了過去不同階段的修改情形。

只有一份程式碼無法發揮團隊開發的功效,每一個人都要等其他人簽入完成後的程式碼後,才能簽入自己的開發成果。開發流程變成一道線性的生產線,難以分工。每個專案無論如何都要建立程式碼分支原則,才能提高團隊開發的效率。

博暉科技採取了最簡單的三層分支原則,區分成主要版本、開發版本和維護版本,依序分別建立了Main、Development和Maintenance三個目錄。Main目錄是穩定的主要版本,也是與客戶同步的版本。完成第1版本後,陸續新增功能的版本都先分支到Development目錄繼續開發,測試無誤後才合併到Main目錄。測試過程發現Bug,就將發生問題的版本分支到Maintenance目錄處理,待解決錯誤後才合併回Main目錄。

建立專案之初,同樣需要建立開發文件的控管政策,訂定文件使用規則、格式和客戶需要的文件等,可以透過VS 2010的專案入口網站進行管理,利用文件庫來分類文件與管制不同使用者的存取權限。




在開發專案的版本控制主目錄下,必須依據Branch Model建立版本控制的目錄架構,例如建立Main、Maintenance和Development。

[專案管理]關鍵 1 運用集合和區域來組織專案結構

定義Team Project是管理開發團隊的第一個關鍵,常見作法是每成立一個專案就建立一個VS 2010中的Team Project,但如果有人同時參與多個專案時,這個作法就無法從單一專案報表中,追蹤到這個人的所有工作狀況,A專案的PM看不到他在B專案的工作項目,不曉得可能會指派過多任務而導致成效不彰。

博暉科技的作法是善用VS 2010的集合(Collect)和區域(Area)功能。因為集合可以設定存取權限,可用來管制成員瀏覽其他部門的開發專案。

對博暉這類資服業者而言,一種產品下可能有3個團隊要服務十個不同的客戶,有的成員同時要參與多個客戶專案,但很少有同時跨不同產品的開發人員。所以,博暉針對每項產品就建立一個Team Project,然後使用Team Project的區域功能,來分組Work Item。每一組區域等同就是一個客戶的專案。

專案經理可以在Team Project的報表中,檢視這個產品中每一個成員的整體工作量,也可以檢視區域資料,看到每一個客戶專案的進度。在專案建置時,就要同時完成這些專案結構的設定。

遇到不同專案同時指派工作時,開發人員可將每個區域(也就是不同客戶)的Work Item並排,在Team Project層級按優先順序排列,找出必須先完成的工作。



VS 2010的專案提供了專案集合的選項,可管制團隊成員存取的專案集合,例如可依據不同部門來建立專案集合,可用來管制成員瀏覽其他部門的開發專案。


VS 2010提供兩種類型的專案,包括Agile和CMMI,不同類型的專案所支援的Work Item不同。CMMI專案內建Work Item項目更多,結構更複雜,不過,非必要可直接選擇Agile專案。


建立VS 2010的開發專案時,也要一併設定專案入口網站,用來分享和管理各類專案文件,也可用來蒐集成員對專案的回饋意見。



建立專案時要一併設定程式碼版本控管的存放主目錄,待稍後再進一步設定版本控管的目錄結構。開發專案必須先建立程式碼分支原則(Branch Model),才能透過分工來提高開發效率。


建立專案後打開,可進一步新增專案的區域,用來將不同客戶自製專案的Work Item分組,方便日後按客戶專案檢視報表。
回本文[用Visual Studio 2010實踐團隊開發]

[專案管理]用Visual Studio 2010實踐團隊開發



在Visual Studio 2010專案中有一項整合開發與專案管理的關鍵,可以讓所有工作記錄相互串連,從開發流程中的任何一點都能找出相關內容,不論是工作記錄、程式碼、測試結果無所遁形,這個關鍵就是Work Item,也是管理開發團隊的利器。只有做到原始碼版本管控還不夠,要善用Work Item才能有效管理開發團隊。

善用Work Item串聯所有開發工作
Work Item能夠讓工作記錄相互勾稽,軟體開發流程中的每一個點,都可以串出其他行為,就像是一串粽子一樣,抓住任何一顆粽子,都可以拉出其他粽子

首度在非洲舉辦的世界盃足球賽剛結束,由擅長全能攻守型的西班牙獲得冠軍,這些球員不見得是全世界技術最頂尖的人,但是他們的確是團隊合作最好的球隊,足球是最重視團隊合作的競賽,前鋒、中場、後衛,守門員各司其職才能打勝仗。

程式開發其實也是團隊合作的成果,不同角色的專案成員,從專案經理、系統分析、系統設計、程式開發、測試人員等各司其職,才能順利執行專案,尤其是複雜的大型專案,更是需要團隊的專業分工才能完成。

開發過程中有很多細節,開發團隊為了有效溝通,需要借助工具和方法,就像是足球教練必須擬定球員互相搭配的戰法,讓前鋒知道如何相互短傳搭配進攻,讓後衛懂得同步移動創造越位陷阱。專案開發也需要一套有效的利器。

不過,經常擔任開發專案顧問的微軟特約顧問胡百敬觀察,臺灣的.NET開發團隊大多只有進行程式碼版本控管,再搭配電話或電子郵件來討論工作和管理文件,並沒有發揮專案管理的功能。

ASP.net-Response物件的用途

[一]
Response物件的用途 :用來決定何時或如何將輸出由伺服器端傳送至用戶端

●公用屬性:
•Buffer:取得或設定數值,指示是否要緩衝輸出並在整個回應處理完成之後將它送出。
•BufferOutput:取得或設定數值,指示是否要緩衝輸出並在整個網頁處理完成之後送出。
•Cache :取得 Web 網頁的快取原則 (到期時間、私密性、Vary 子句)。
•CacheControl:將 Cache-Control HTTP 標頭設定為 Public 或 Private。
•Charset:取得或設定輸出資料流的 HTTP 字元集。
•ContentEncoding:取得或設定輸出資料流的 HTTP 字元集。
•ContentType:取得或設定輸出資料流的 HTTP MIME 類型。
•Cookies:取得回應 Cookie 集合。
•Expires:取得或設定瀏覽器上快取網頁到期以前的分鐘數。如果使用者在它到期之前返回相同網頁,會顯示快取的版本。 Expires 是提供來與 ASP 先前版本相容。
•ExpiresAbsolute:取得或設定快取資訊從快取被移除的絕對日期和時間。 ExpiresAbsolut提供來與 ASP 先前版本相容。
•Filter:取得或設定用來在傳輸之前修改 HTTP 實體 (Entity) 主體的包裝篩選物件。 
•IsClientConnected:取得數值,指示用戶端是否仍然與伺服器連接著。
•Output:允許文字輸出至連出 HTTP 回應資料流。
•OutoputStream:允許二進位輸出至連出 HTTP 內容主體。
•Status:設定傳回至用戶端的狀態行。
•StatusCode:取得或設定傳回至用戶端的輸出之 HTTP 狀態碼。
•StatusDescription:取得或設定傳回至用戶端的輸出之 HTTP 狀態字串。
•SuppressContent:取得或設定數值,指示是否送出 HTTP 內容至用戶端。

asp線上教學網站-分享2U

第一部分 安裝Active Server Page的準備工作

.第一章 安裝和使用  WINDOWS NT Server
   ............
.第二章 安裝和使用  IIS
   ............
.第三章 安裝和使用  SQL Server
   ............
.第四章 Exchage  Active Server,   Index Server和  NetShow

第二部分 標記及腳本語言

.第五章 初級HTML
   ............
.第六章 中級HTML
   ............
.第七章 高級HTML
   ............
.第八章 VBScript
   ............
.第九章 JScript

第三部分 操作資料: SQL

.第十章 SQL基礎
   ............
.第十一章 中級SQL
   ............
.第十二章 高級SQL

第四部分 創建Active Server Pages

.第十三章 構建ASP
   ............
.第十四章 單獨利用  ASP工作
   ............
.第十五章 對多於一  個ASP進行處理
   ............
.第十六章 對ASP  Session的處理
   ............
.第十七章 對ASP的  Applications處理
   ............
.第十八章 對瀏覽器  的處理
   ............
.第十九章 對文件、  驅動器和文件夾的  操作
   ............
.第二十章 提供站點  導航
   ............
.第二十一章 對廣告  的處理

第五部分 資料庫組件

.第二十二章 Activex  資料對象
   ............
.第二十三章 操作記錄集
   ............
.第二十四章 使用命令

第六部分 使用Visual Studio

.第二十五章 使用  MicroSoft Visual  InterDev
   ............
.第二十六章 使用  Microsoft Image  Composer
   ............
.第二十七章 使用  Microsoft Music  Producer
   ............
.第二十八章 擴展ASP

第七部分 綜合介紹

.第二十九章 創建一個  線上職業服務網站

第八部分 附錄

.附錄A  ASP對象和組件快速參考
   ............
.附錄B  JScript 快速參考
   ............
.附錄C  VBScript 快速參考
   ............
.附錄D  快速HTML參考



http://www.coolasp.com/ASP_Learn/

ASP.NET 相關名詞解釋-分享2U

.NET :
是 Microsoft 推出的資訊技術, 您的電腦若有安裝 .NET Framework ,就可以執行別人寫好的 .NET 程式。


.NET Framework :
是一組 dll 檔案, 裡面提供了很多現成的功能, 若您要開發程式時, 很多時候只需要呼叫裡面現成的功能就可以做到了, 例如您想 copy file, 存取 database, 繪圖,...等,Microsoft 都幫您寫好了, 放在這坨 dll file 裡,您可以到 Microsoft 網站免費下載它, 若您要執行別人寫好的 .NET 程式, 您電腦裡也需要先安裝 .NET Framework 才行。

ADO.NET:
在 .NET Framework 的眾多類別(class) 裡, 有幾個類別是專門用來存取資料庫的, 例如 SqlConnection, SqlCommand, SqlDataReader, DataTable, DataRow,.... 這些類別, 我們特別抽出來給它一個名稱, 叫做 ADO.NET, 如果您使用 .NET 這技術來開發存取資料庫(例如開發進銷存, 會計, 人事, 網路線上報名, 討論板, 購物網站,...), 那麼您對於 ADO.NET 裡包含的類別就要特別熟悉, 工作才會進行的順利。

Web Form, Windows Form, Console Application:
您使用了 .NET 的技術, 可以用它來開發網站, 我們稱這網站叫 Web Form, 或 ASP.NET; 若您用 .NET 技術開發了一套類似 photoshop 的影像處理軟體, 那類軟體必需將程式放在您電腦裡才能執行, 那類軟體稱為 Windows Form; 有時我們希望撰寫的軟體不必有太漂亮的外觀, 就可以寫 Console Application, 它是文字模式的, 就是您有時會看到的 DOS 視窗。

VS.NET:
要開發 .NET 程式, 您可以用記事本來寫程式, 但這會讓您事倍功半(如同您拿二支小牙籤當筷子來吃飯, 沒必要吃得這麼辛苦, 對吧), Microsoft 推出了 VS.NET 軟體, 您可以購買它, 用它來開發 web form, windows form, console application ,..等型式的程式, 除了要付費的版本之外, Microsoft 也有推出免費的版本, 功能也算齊全, 真是佛心來的...

C#, VB.NET:
若您要開發 .NET 程式, 不論使用記事本或 VS.NET, 都需要寫程式碼, 對吧!! 您可以選擇的程式語言有 C++.NET, C#, VB.NET, 若您是要寫網站, 或進銷存這類的應用程式, 個人建議用 C# or VB.NET, 最好是用 C# 啦 。經常聽到有初學者說"我正在寫 vb.net ", 而他真正的意思可能其實是 "我正在開發 ASP.NET 網站, 使用的語言是 VB.NET"

開發 ASP.NET 要安裝什麼軟體-分享2U

開發 ASP.NET 要安裝什麼軟體
若您想開發 ASP.NET 網站, 電腦裡要安裝什麼軟體? 大致可以分成二種環境:
開發環境, 指的是您個人平時使用的電腦或 notebook, 下班後就會將它關機, 您也用它來撰寫程式, 並測試程式運作是否正常。
正式環境, 指的是您公司的伺服器, 等您將 ASP.NET 程式寫好, 測試無誤後, 就將程式 copy 到伺服器中, 供大家連結到此網站, 這伺服器通常是不關機, 全年無休的。您也可以去租虛擬空間, 只要注意一下它是否支援 ASP.NET 即可。
接下來, 我來說明這二種環境各需要安裝什麼軟體。

開發環境
作業系統Windows XP, Vista, Windows Server 都行
開發軟體Microsoft VS.NET 2005 or 2008 :
.NET Framework由於安裝 VS.NET 時會順便安裝, 所以不必特別安裝它
資料庫軟體Microsoft Access, SQL Server 2000/2005, MySQL都行,也有免費版本的MS SQL, 在安裝VS.NET時可以順便就安裝它
網頁編輯軟體FrontPage or Dreamweaver等, 雖然您只是要寫程式, 但多少會需要先編輯一下 html, 美化後才開始撰寫程式碼!
影像處理軟體PhotoShop, Fireworks, PhotoImpact, Paint.NET等, 至少要熟悉如何放大縮小圖片, 開發起 ASP.NET 會比較順手一點
瀏覽器用IE, FireFox等都行, 用來測試您寫的程式對不對

正式環境
作業系統需要安裝 Windows Server 2000/2003等作業系統, 不要安裝 Windows XP , 太混了
網站伺服器軟體名稱叫 IIS, 它附在 Windows 光碟裡,您在控制台裡新增移除軟體畫面中可以找到它
.NET Framework要到Microsoft 網站下載 .NET Framework 可轉發套件來安裝, 是免費的, 檔案也不大:
資料庫軟體Microsoft Access, SQL Server 2000/2005, MySQL,...都行,主要是搭配您的程式, 也有免費版本的MS SQL, 可以在 Microsoft 網站裡下載它

至於您開發好的網站, 使用者只需要利用 browser 就可以看了, 使用者的電腦不必安裝 .NET Framework, VS.NET 等軟體, 也不限於只有 windows 作業系統才能看您網頁裡的東西

ASP.NET 3.5 要如何安裝在 IIS 中-分享2U

ASP.NET 3.5 要如何安裝在 IIS 中

原來 ASP.NET 3.5 只是使用 .Net Framework 3.5 的組件(assembly)而已!整個核心的架構還是建立在 .NET 2.0 之上,.NET Framework 的 API 都沒變,只是到了 .NET 3.5 很多 assembly 都重新寫過了,且執行的速度也比 .NET 2.0 的組件還快。
如果你用 Visual Studio 2008 開一個網站專案,你開啟 web.config 會發現在 <assemblies> 區段中出現了一堆 assembly 的定義,其版本都是 3.5.0.0
  <compilation debug="true">
   <assemblies>
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
   </assemblies>
  </compilation>

所以 ASP.NET 3.5 的程式要安裝在 IIS 上不需要特別指定 ASP.NET 3.5 的版本,繼續沿用 ASP.NET 2.0 的版本即可,但作業系統本身必須要先安裝 .Net Framework 3.5 runtime 就是了!

VB-快速鍵-找尋 Function/Subroutine

當您的 APP 愈來愈大時,或是您要維護別人開發的大系統時,是否曾經有過一種情形,程式中 call 了某一個 Function/Subroutine,您要找尋這個 Function/Subroutine,除了一個一個 Module 找之外,大部份的人都是使用【編輯功能表】的【搜尋】功能。

' D! |7 J/ ^8 y  i
其實您可以使用 【Shift + F2】快速鍵!很簡單,方法如下:

只要將游標停留在程式中該 Function/Subroutine Name 上,再使用【Shift + F2】快速鍵即可!

PHP及JSP的比較

  PHP:
  1. 數據庫連接 

  PHP可以編譯成具有與許多數據庫相連接的函數。PHP與MySQL是現在絕佳的組合。你還可以自己編寫外圍的函數去間接存取數據庫。通過這樣的途徑當你更換使用的數據庫時,可以輕鬆地更改編碼以適應這樣的變化。PHPLIB就是最常用的可以提供一般事務需要的一系列基庫。但PHP提供的數據庫接口支持彼此不統一,比如對Oracle, MySQL,Sybase的接口,彼此都不一樣。這也是PHP的一個弱點。

  2. 面向對像編程 

  PHP提供了類和對象。基於web的編程工作非常需要面向對像編程能力。PHP支持構造器、提取類等。



  JSP:
  1. 將內容的產生和顯示進行分離

  使用JSP技術,Web頁面開發人員可以使用HTML或者XML標識來設計和格式化最終頁面。使用JSP標識或者小腳本來產生頁面上的動態內容。產生內容的邏輯被封裝在標識和JavaBeans群組件中,並且捆綁在小腳本中,所有的腳本在服務器端執行。如果核心邏輯被封裝在標識和Beans中,那麼其它人,如Web管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內容的產生。在服務器端,JSP引擎解釋JSP標識,產生所請求的內容(例如,通過存取JavaBeans群組件,使用JDBC技術存取數據庫),並且將結果以HTML(或者XML)頁面的形式發送回瀏覽器。這有助於作者保護自己的代碼,而又保證任何基於HTML的Web瀏覽器的完全可用性。

  2. 強調可重用的群組件

  絕大多數JSP頁面依賴於可重用且跨平台的組件(如:JavaBeans或者Enterprise JavaBeans)來執行應用程序所要求的更為複雜的處理。開發人員能夠共享和交換執行普通操作的組件,或者使得這些組件為更多的使用者或者用戶團體所使用。基於組件的方法加速了總體開發過程,並且使得各種群組織在他們現有的技能和優化結果的開發努力中得到平衡。

  3. 採用標識簡化頁面開發

  Web頁面開發人員不會都是熟悉腳本語言的程序設計人員。JavaServer Page技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML標識中進行動態內容產生所需要的。標準的JSP標識能夠存取和實例化 JavaBeans組件,設定或者檢索群組件屬性,下載Applet,以及執行用其它方法更難於編碼和耗時的功能。

  通過開發定制化標識庫,JSP技術是可以擴展的。今後,第三方開發人員和其它人員可以為常用功能建立自己的標識庫。這使得Web頁面開發人員能夠使用熟悉的工具和如同標識一樣的執行特定功能的構件來工作。

  JSP技術很容易整合到多種應用體系結構中,以利用現存的工具和技巧,並且擴展到能夠支持企業級的分佈式應用。作為採用Java技術家族的一部分,以及Java 2EE的一個成員,JSP技術能夠支持高度複雜的基於Web的應用。

  由於JSP頁面的內置腳本語言是基於Java程序設計語言的,而且所有的JSP頁面都被編譯成為Java Servlet,JSP頁面就具有Java技術的所有好處,包括健壯的存儲管理和安全性。

  作為Java平台的一部分,JSP擁有Java程序設計語言「一次編寫,各處執行」的特點。隨著越來越多的供貨商將JSP支持加入到他們的產品中,您可以使用自己所選擇的服務器和工具,修改工具或服務器並不影響目前的應用。


應用範圍
  PHP3可在Windows,Unix,Linux的Web服務器上正常執行,還支持IIS,Apache等一般的Web服務器,用戶更換平台時,無需變換PHP3代碼,可即拿即用。

  JSP同PHP3類似,幾乎可以執行於所有平台。如Win NT,Linux,Unix。在NT下IIS通過一個外加服務器,例如JRUN或者ServletExec,就能支持JSP。知名的Web服務器Apache已經能夠支持JSP。由於Apache廣泛應用在NT、Unix和Linux上,因此JSP有更廣泛的執行平台。雖然現在NT操作系統佔了很大的市場份額,但是在服務器方面Unix的優勢仍然很大,而新崛起的Linux更是來勢不小。從一個平台移植到另外一個平台,JSP和JavaBean甚至不用重新編譯,因為Java字節碼都是標準的與平台無關的。

學習ASP.NET的捷徑

第一步 掌握一種物件導向程式設計語言

學習一種物件導向的程式語言,C#或者VB.NET,我選了C#,因為沒有任何程式設計的基礎,又看他順眼,雖然有學過ASP + VBScript,不過都忘了,當自己完全沒有學過。用Visual Studio 2005開發C#吧!因為微軟提供免費的,光"免費"這點就值得了。 自己敗了本磚塊"Visual C# 2005 精要剖析 作者:呂文達",基本功得練好,從這本開始吧!!
開發工具:Microsoft Visual C# Express(免費的)

第二步 了解.NET Framework平台 and 類別庫

對.NET Framework平台架構以及類別庫的了解,因為在各大程式設計師的部落格和討論區裡得知,ASP.NET是架構在.Framework平台之上,而C#又跟.NET Framework有很親密的關係,所以學習類別庫是必要的,對.NET Framework和類別庫越是瞭解,學習ASP.NET就會越快。
(上網看微軟MSDN文件庫。)

第三步 學習HTML語CSS編排網頁

從這裡開始學習網頁設計的基礎知識,HTML結構與CSS的box模型,而且目前Web 2.0設計的是以div+CSS為主流,各瀏覽器對div+CSS+HTML的解析不一,這也是得注意的部份,並且在這階段學習一套網頁設計工具,目前Dreamweaver是主流,當然還有微軟出的Expression Web,我會使用它來做為網頁排版的工具,因為除了看它順眼,對於ASP.NET的支援性極佳,以及介面與操作跟Visual Studio 2005很像,微軟有提供60天試用期,我想應該時間夠用了,Expression Web的前身是FrontPage,不過兩者完全不像。
(上網查了一下EW跟DW的價格,EW好像較便宜,不過DW支援PHP.ASP)

第四步 學習JavaScript

JavaScript 主要運行於瀏覽器端(客戶端),記得在書局架上的書裡看到這麼一段話,"沒有JavaScript的ASP.NET,程式是死的"(#ASP.NET徹底研究 作者:董大偉),要完全掌握或專精ASP.NET,JavaScript是必要學習的階段,學習ASP.NET的第一步驟為什麼會選擇學C#的理由也跟這有關,因為這兩種程式設計語言太像了,師出同門,而且目前非常流行的AJAX技術也是以JavaScript為基礎,不清楚AJAX嗎?我也不清楚,還沒學到這,不過可以參考"台灣微軟Atlas Framework 專題" #作者:奚江華(聖殿祭司)。

第五步 學習ASP.NET技術

在進入這步驟之前,請先確定以上四個步驟了解了嗎?準備好了嗎?沒把握或不清楚上面四個步驟,如果是的話,很難駕驅ASP.NET的,出於急迫與現實的考慮,沒有紮實以上步驟直接學ASP.NET,聽說會翻船的,很容易被牽著鼻子走,當然有其他程式設計基礎的設計師或天生聰明理解力強的免疫,他們是可以跳著學的,那我們呢?

以下需結合上面步驟為基礎,掌握以下內容:
1.各種Web控制項的使用方法,有些好像需要先了解資料繫結到控制項或許先用精靈模式吧。
2.理解資料在網頁中傳送的方式,如Cookie、ViewState、Session等。
3.ASP.NET應用程式與網頁的生命週期,以及相關物件,如HttpContext、Request、Response。
4.ASP.NET 事件驅動模式內幕,。
5.開發自訂控制項。
以上五點,沒一定的順序,應該也可以跟第六步交叉學習。
開發工具:Microsoft Visual Web Developer 2005 (有免費的)

第六步 掌握資料庫技術

具體的學習以下內容:
1.學會使用SQL Server 2005,不要求精通它的各種工具與管理技巧,但至少知道如何連接、建立資料表、撰寫T-SQL語句、預存程序、資料庫正規劃。
2.學習ADO.NET、LINQ,使用程式設計方式連接操作資料庫(別使用精靈模式)。
3.學習資料繫結控制項的使用。
SQL Server 2005 Express (有免費的)

(以下只是大概,學習上面技術應該不是幾個月就成,上網找找看囉!!)
第七步 了解多層架構
第八步 學習XML語WevService
第九步 學習AJAX
第十步 學習Silverlight

(以上有些參考來自於網路各大討論區以及Blog,內容或順序並非絕對,只是自己用這個順序來學習ASP.NET,把過程提供給想入門的新手一個參考,不一定每個步驟都得熟悉才往下一步學,應該也可以由淺到深,不停反覆吧!!不然第一步驟的OOP,可能會受到打擊,我也是一個剛要入門的新手,從這裡開始。)

2011年11月24日 星期四

minus 網站,10GB 不限檔案格式的圖床、大型網路儲存空間 (支援手機上傳)

minus 網站,10GB 不限檔案格式的圖床、大型網路儲存空間

minus 網站,早期是個相當好用的免費圖床。後來大概是找到不少資金,現在整個網站已經擴大成不限檔案格式的大型網路儲存空間。

目前提供每個帳戶最多 10 GB 的免費空間,上傳的每個檔案最大可達 2GB,如果不註冊、登入的話,上傳的檔案可保留30天,而且上面還標示了不限下載次數與流量…看起來是個相當適合分享檔案的好網站。

** 註冊、登入之後再上傳才可永久保留檔案,否則只保留 30 天。所以建議先註冊,註冊只需填寫帳號名稱以及密碼(電子郵件信箱可填可不填),然後按 Sign Up 就可以了,很方便。

除了透過瀏覽器、開啟網頁上傳之外,minus 還提供了 Windows、Mac 與 Ubuntu 等作業系統的上傳軟體,讓我們直接在桌面上就可以快速上傳、分享檔案。此外還針對了目前比較熱門的 iPhone、Android 等智慧型手機提供了方便好用的應用程式,讓我們隨時從手機上傳、分享檔案與照片。

檔案限制:免費 10GB空間,單檔最大 2GB

按推廣連結註冊則是 11GB空間: http://min.us/rva8uea

按這個連結註冊則是 10GB空間: http://minus.com/



Android 手機應用程式: https://market.android.com/details?id=com.minus.android

iPhone 手機應用程式: http://itunes.apple.com/us/app/minus/id425091149?mt=8

VB與Windows API 間的呼叫技巧

    一般會使用WINDOW API的情況,實在是因為VB本身不提供某些功能,但是,程式所需又不得不然,例如:讀取Registry內的資料,VB只提供SaveSetting、Getsetting 等系列的指令,但是它只能讀取特定地區的值,要讀、刪、更動其他區域的值時,就無法仔細看一看Combo Box的Events,其中沒有MouseMove,但這是我們經常用上的一個Event,那該如何呢?是的,那只有透過Winodow API。而VB呼叫Window API一般不都使用API檢視員,直接將相對應的API  COPY到我們的程式中就好,那還用什麼技巧嗎?其實不然,因為VB資料格式的問題,又加上VB本身沒有指標,在許多地方需要一些小技巧才能解決,而且我們經常因應不同的需求,將API 檢視員的宣告COPY過來後再做一些修改,最重要的,如果有一個.DLL檔,它不在API 檢視員中定義,那時,就只有自己想辦法啦。

--------------------------------------------------------------------------------

 
 一、 整數參數

 Windows                                                 API32位元VB

--------------------------------------------------------------------------------
Int,  INT_________________________ByVal  Long
UNIT,  DWORD__________________ByVal  Long
BOOL__________________________ByVal  Long    ture時為1
WPARAM,  LPARAM,  LRESULT___ByVal  Long
Handle(如HKEY)_________________ByVal  Long
WORD,  ATOM,  SHORT__________ByVal  Integer
BYTE, CHAR ___________________ ByVal  Byte

 
 Eg.
-----------------------------------------------------------------------------
Windows API 宣告
  SHORT GetKeyState( int  nVirtKey )

對應的VB宣告
 Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
--------------------------------------------------------------------------------------------------------------
    這個API 可用來檢視某些KEY (如Insert鍵、Num Lock、CapsLock等)是on/off。程式如下:這個例子應該可十分楚的看到各個整數間的宣告對應。
----------------------------------------------------------------------------------------------------------------
Dim InsertMode as Integer
InsertMode = GetKeyState(vbKeyInsert) And vbShiftMask
If InsertMode = 1 then
  Debug.print "表示 Insert Mode"
Else
  Debug.print "表示 OverWrite Mode"
End If

--------------------------------------------------------------------------------

微軟-3款SQL INJECTION攻擊檢測工具-分享2U

微軟發佈3款SQL INJECTION攻擊檢測工具

隨著 SQL INJECTION 攻擊的明顯增多,微軟近日發佈了三個免費工具,幫助網站管理員和檢測存在的風險並對可能的攻擊進行攔截。

工具下載網址:
Scrawlr
Microsoft Source Code Analyzer for SQL Injection
UrlScan 3.0

MySQL與ASP.NET配合更強大

經驗之談:MySQLASP.NET配合更強大
  開放源代碼社區為了擴展MySQL的使用範圍,開發出了.Net框架(.NET Framework)中可以使用的資料庫連接器。我們就來學習一下如何在.Net應用程式中使用MySQL
  開放源代碼社區為了擴展MySQL的使用範圍,開發出了.Net框架(.NET Framework)中可以使用的資料庫連接器。我們就來學習一下如何在.Net應用程式中使用MySQL
  由於富有競爭力的價格和易於使用,MySQL在市場佔有率方面逐步提升。開放源代碼社區為了擴展MySQL的使用範圍,開發出了.Net框架(.NET Framework)中可以使用的資料庫連接器。我們就來學習一下如何在.Net應用程式中使用MySQL
  每週三發佈的TechRepublic.NET通訊,包含有網路服務, ASP.NET, ADO.NET, Visual Studio .NET相關的實用技巧與代碼實例. 現在就自動訂閱!
  MySQL漸漸的成為了在選擇資料庫平臺時一個切實可行的資料庫方案。能夠證明這一點的就是許多公司都選擇mySQL作為他們的資料庫平臺,例如 Google、美聯社(The Associated Press) 以及美國國家航空宇航局( NASA)。雖然對於一個開放源代碼來說,低廉的價格常常被當作主要優點來說服客戶,但是對於象Google那樣的大規模的組織來說,他們不會放心的把非常有用的資訊存放在一個只有價格優勢的資料庫產品中。MySQL真正的實力遠遠的超過了他的價格優勢,他提供了豐富的來自開放源代碼社區和商業化的附加工具。