發表文章

目前顯示的是有「ASP.NET 4.0」標籤的文章

ASP.NET WebForm Forms驗證整合Google oAuth驗證

圖片
ASP.NET從4.x開始,支援不少重要的機制,也不知道是因為用的人變少了,還是因為大家都沒空,所以ASP.NET WebForms相關的中文post比起其他技術相形之下少的可憐。 最近開發團隊中有夥伴需要透過ASP.NET WebForm來整合Google/Faccbook/MS的身分驗證,當然,我們都知道現在大家都支援 oAuth 或 OpenID 了,最理想的狀況是讓我們家的網站跟MS自己的網站一樣,User只需要登入一次,就可以跨網站跑來跑去不需要重新登入,同時,我們的網站也不需要負責維護用戶的帳號密碼,而是透過Google/Faccbook/MS幫我們做身分驗證。 (有空我會畫張圖,上面這張是出自oauth.net) 簡單的說,就是我們的網站的用戶只需要有Google/Faccbook/Microsoft Account等帳號,即可登入我們的網站,而我們的網站也不需要傷腦筋身分驗證的事情,畢竟,驗證是一個可能導致風險的機制,也是駭客進入你的網站的第一道防線,如果隨意設計可能後患無窮,與其自己辛苦,不如透過oAuth機制幫你驗證用戶身分。 前面說過,在ASP.NET要實現這樣的功能,從4.0之後的版本,大幅簡化了工作流程,甚至,你現在只需要透過DotNetOpenAuth.AspNet套件即可完成。 我們以底下這個ASP.NET WebForm 4.0與Google帳號整合的驗證機制來示範,我們建立一個新的WebForm網站: 我刻意用ASP.NET Empty Web Application,因為這個範本比較乾淨,甚至連app_start都沒有,這樣比較容易說明。 接著,請進入到我們的ASP.NET專案,在VS2012中開啟Package Manager Console(主選單--> Tools --> Library Package Manager --> Package Manager Console),並依序輸入: Install-Package Microsoft.AspNet.Membership.OpenAuth   和 Install-Package DotNetOpenAuth.AspNet 輸入後,VS2012會執行一些動作... 你會發現Visual...

ASP.NET AJAX中的HTML編輯器

圖片
HTML Editor是在最近這幾個版本的ASP.NET AJAX Control tooklit當中被加入的,不管是APS.NET 3.5或4.0都可以使用。實際上使用的時候和坊間一般的ASP.NET HTML編輯器如出一轍,相當簡單: 可以透過content屬性設定或取得HTML值: protected void Button1_Click(object sender, EventArgs e) { //取得HTML碼 this.Literal1.Text= this.Editor1.Content; } 但請留意,不要將HTML值填入TextBox控制項中,會不work,也有安全性的顧慮。另外使用前請記得先引用AJAX Control Toolkit套件,並從工具箱中將Editor拖曳到頁面中,請務必設定其width與height屬性。 範例下載請至codeStorage:[ 下載 ]

三個ASP.NET小範例

我在Code Storage上放了幾個ASP.NET的範例,分別是: ●以Cookies記憶登入帳號:[ 下載 ] 這個範例展示如何類似Google或是一般入口網站以Cookies紀錄登入者帳號,在一定時間內不需要重登入的機制,以仿Forms驗證的方式來進行。 ●AJAX Client Templates與遠端資料存取:[ 下載 ] 這個範例透過了AJAX Client Templates和Web Services遠端資料存取的技術,讓頁面上的UI可以經由Services直接Bind(繫結)到遠端的資料。其中也使用到了ADO.NET Entity Framework與LINQ等技術。這個機制讓ASP.NET的Data Binding有機會在前端完成,不經過後端的C#/VB指令碼也可進行。 ●浮水印文字方塊(Waterwark textBox):[ 下載 ] 這個範例使用了ASP.NET AJAX 4的Client Libraries,以pure JavaScript方式(不需要引用ASP.NET AJAX Controls Toolkit的.dll)在頁面上建立出具有浮水印的文字方塊(Waterwark textBox),並且利用了微軟CDN(Content delivery network)讓網站的效能更好,管理上也更加簡潔。如果只想要在網站尚設計出簡單的AJAX效果,但不希望引用一整個ASP.NET AJAX程式庫時相當好用。

ASP.NET 4.0當中的 URL Routing機制

在剛推出的ASP.NET 4.0當中,Web Forms所新支援的URL Routing機制也是最令大家矚目的新功能之一,過去在MVC, Dynamic Data WebSite中才使用的URL Routing機制,現在在傳統的Web Forms當中也可以使用了,這對我們開發大型的Web應用程式相當有幫助。 相關的介紹和說明可以參考本期Run!PC雜誌,您也可以點選[ 這裡 ],參考剛才公布在FaceBook上的ASP.NET URL Routing機制的使用展示影片。

ASP.NET 4 AJAX, Dynamic Data, MVC相關概念介紹文章分享

先前提到過,Run!PC的網站陸續刊出一些ASP.NET 4.0介紹文章的節錄摘要,可以在網站上先睹為快,完整版可以參考紙本雜誌。 底下幾篇分別是與ASP.NET 4 四大功能中有關的其中幾個部分: ASP.NET 4 中的Dynamic Data技術概念介紹與說明(節錄) http://www.runpc.com.tw/content/content.aspx?id=105872 ASP.NET 4 中的MVC2概念介紹與新功能說明(節錄) http://www.runpc.com.tw/content/content.aspx?id=105871 ASP.NET 4 中的AJAX技術增強與AJAX Client Library的新功能(節錄) http://www.runpc.com.tw/content/content.aspx?id=105870 上面幾篇是概念上簡單的介紹,具體的參考程式碼片段、範例、教學影片與完整的文字稿可參考接下來幾期的Run!PC或筆者BLOG, 當然,還有陸續將會出版的ASP.NET 4 新書。

ASP.NET 4.0當中的Client ID Mode功能

有一個長久以來一直存在的問題,隨著這幾年瀏覽器用戶端程式碼(例如JavaScript/jQuery…等)的盛行,被更強烈的突顯了出來,那就是ASP.NET控制項的ClientID。 過去ASP.NET的ClientID一直是一個常常困擾開發人員的問題,主要的原因是APS.NET在Render出HTML網頁到用戶端時,ClientID常常是動態且無法確定的,特別是ASP.NET頁面加上了master-page、UpdatePanel、或是那些會隨著資料錄數量而可能動態產生出不同資料列的GridView、ListView、Repeater控制項之後, ClientID則更加的不可測了。 面對這個問題,ASP.NET 4提出了新的ClientIDMode屬性,可透過底下四種不同的設置值來決定ClientID的Render方式,分別是:AutoID、Static、Predictable、與Inhert。開發人員可以在程式碼中透過屬性來設定ClientID產生的方式。 具體的說明請參考本期Run!PC或點選 這邊 瀏覽教學影片或下載範例。

ASP.NET 4當中針對SEO(Search engine optimization)的支援

在ASP.NET 4當中,針對 Web Forms本身也有些許的增強,首先我們看到的是SEO(Search Engine Optimization)的支援。 對於很多企業來說,自家的網頁在搜尋引擎上能否被快速的找到並且呈現出正確的資訊,是相當重要的課題。在新版的ASP.NET 4當中,增加了Page.MetaKeywords以及Page.MetaDescription這兩個屬性,這讓開發人員可以輕易的在網頁中加入可供搜尋引擎檢索的訊息: protected void Page_Load(object sender, EventArgs e) { Page.MetaKeywords = "ASP.NET 4"; Page.MetaDescription = "這是一個呈現ASP.NET 4最新技術的專業網站..."; } 當然,開發人員也可以透過.aspx的頁面修飾字來處理: |MetaDescription="這是一個呈現ASP.NET 4最新技術的專業網站..." AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="ASP.NET_Blank.WebForm1" % > 這些訊息對於搜尋引擎來說有相當大的幫助。可以讓搜尋引擎精確的提供針對您的網頁的說明與介紹。

即將推出的ASP.NET Ajax Library...

有很久一段時間我的BLOG上沒有出現AJAX相關訊息了,主要當然是因為絕大部分的重心都放到了Silverlight身上(可預期的未來應該也會是如此)。 但由於工作上的需要,最近還是回頭看了一下即將推出的ASP.NET Ajax Library...,順便google了一下網路上的訊息,看這個態勢我猜想應該不少ASP.NET開發人員忽略掉了這個其實已經beta很久即將隨著VS2010推出的JavaScript Library,當然,也可能是因為您已經在使用jQuery了。 不過仔細看看ASP.NET Ajax Library當中還是有不少精彩的功能,同時現在微軟針對AJAX JavaScript Library也提供了CDN(content delivery network)服務,讓您可以直接在頁面上引用位於微軟的javaScript檔案,而不再需要把檔案放在自己的專案中。 後面如果時間允許,我也會陸續介紹ASP.NET Ajax Library中的一些功能,以及和jQuery的整合方式。首先來看ASP.NET Ajax Library中Client Controls的使用(底下的範例是浮水印的TextBox): &lthead> &lttitle>Untitled Page&lt/title> &ltstyle type="text/css"> .wm { color:Gray } &lt/style> &lt!--從CDN引用js--> &ltscript src="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.js" type="text/javascript">&lt/script> &ltscript src="http://ajax.microsoft.com/ajax/beta/0911/Start.debug.js" type="text/javascript">&...

[研討會] 面對VS2010 我們準備好了...

嘿嘿,是的,面對VS2010 我們準備好了... VS2010上市在即, 三螢一雲的開發平台:Microsoft Visual Studio 2010 上市發表會 開始報名囉... 詳細的訊息可參考底下網頁:[ Visual Studio 2010 上市發表會 ] 時間還有一個多月,但是由於這次的內容以及 .NET 4 的新版涉及相當多不同的領於,有更強的.NET 4, 嶄新的VS2010, 還有令人引頸期盼的Silverlight 4, 全方位的ASP.NET 4, 以及引領未來風潮的 Windows Azure...在這一場發表會中,您將會一次看到這些嶄新功能的全新體驗。 My Advice? 趕快報名吧...有台北,台中,高雄三個場次唷...

缺席的ASP.NET 3.5

上周有一些時間,到書店晃了一下,坦白說,我已經很久沒有逛(嚴格說起來也不是逛,來去匆匆實在沒有逛的感覺)書店了,老實講,每回去書店我還是會站在電腦書籍那一兩櫃之間徘徊,不管是不是電腦書的專賣店,我都會去看看『市場狀況』,不過最近這一年也少了,主要的原因一方面是電腦書籍的寫作和出版目前不是我的主業,另外一方面是最近也沒出什麼新書,甚至沒有很確定的寫作計畫,所以暫別一下市場也沒啥不好。 這回去,我看到架上有非常多的ASP.NET 3.5新書,新書是指,今年出版的書籍,看了之後不免也有些慚愧,從ASP.NET 2.0之後,我沒有再撰寫ASP.NET的書籍,一方面是Silverlight佔去了我相當多的時間,另一方面是(對,跟大家碰到的問題一樣),技術的改版太快,而書的整體銷量也確實沒有以前好,聽說(我沒有數據,所以真的是聽說),現在在架上所有的軟體開發類資訊書籍一個月銷量的總和,可能還不及過去一本暢銷書一個月的銷量,對這一點我是蠻相信的。但是反觀作者的寫作成本卻很高,拿我的好友奚祭司的經驗來說,扎扎實實的認真寫一本書大概要超過半年,縱使寫作速度快一些的,恐怕3-6個月還是跑不掉,但是現在一本書的銷量可能不及2000本,但是幾乎不到一年就得改版或更新,換算一下,全職作者每個月的工資恐怕差不多一個初階工程師一個月的薪水。 這也是你會發現很多作者其實是Part time在寫書的,大概大夥算算也發現不合,所以還是得找一個『正職』才行。同時你也會發現,市場上多了很多新手作者,或是大陸作者寫的書,原因是對出版社來說,新手作者(或大陸作者)的成本比較低,在沒有把握書一定會賣的狀況下(即便過去的暢銷書作者,也沒人有把握書一定賣的),能省任何一點的成本,都是能繼續活下去的關鍵,氣比別人長,在現在這種書市一片蕭條的狀況下,也是成為最後贏家的重要條件。 從作者和出版社的角度看,是市場變小了,大家都不買書了,或是開發人員(寫程式的人)變少了,至少在台灣正體中文書籍的市場很明顯是這樣,而出版又是一個需要規模的市場,沒有規模是無法獲利的,如果每一本書都只賣個一兩千本,那出版社距離收攤也不遠了。 但是從讀者的角度來說,則是可選擇的書籍少了,且品質或內容變差了,學習的成效變差了,能夠在職場上應用的就更少了,然而在網路上可尋得的資源卻變多了,這也是目前出版市場碰到的一很大的問題。如果閱讀只是為了取得片段的...

VS2010 Beta 2

先前由於時間的關係,所以實際談VS2010的機會不多,終於,VS2010 Beta2現在開放下載了,同時,這次的下載附帶了一個『Go Live許可』,意思是你可以在特定的授權狀況下,開始以beta2的軟體開發你的產品,某種程度上也意味著微軟對於Beta2品質的信心以及希望能夠在剩餘的時間內廣泛的收取用戶的建議。 依照我們過去的經驗,Beta2某種程度上已經相當接近RTM版本的主要功能,同時,在安裝中您也會發現MVC 2和SL3已經是預設安裝的一部分了。很多新東西可以玩,ASP.NET 4.0的新功能在TechDays 2009場次中我也曾大致介紹,但是由於時間的關係,沒法完整的和大家分享,接下來我會盡可能就ASP.NET 4.0的部分和大家有更多的分享與說明... VS2010 Beta 2下載位置: http://www.microsoft.com/downloads/details.aspx?FamilyID=dc333ac8-596d-41e3-ba6c-84264e761b81&displaylang=en#filelist

ASP.NET 4.0中的URL Routing

在今年TechDays 2009的ASP.NET 4.0場次中,我介紹了一些ASP.NET 4.0的新功能,其中有許多功能都是在 3.5 SP1中展露頭角,可能在MVC中,也可能在Dynamic Data中,這些3.5 SP1中的功能在釋出後深受開發人員的好評,很多開發人員反映是否可以加入在Web Form中,因此MS也就從善如流的照辦了,其中一個功能就是 URL Routing機制。 過去URL Routing機制僅被MVC和Dynamic Data支援,如今ASP.NET 4.0當中直接納入了Routing類別,也就是說,WebForm也直接支援了Url Routing機制。 URL Routing機制可以讓我們很輕易的建立出REST風格(請參考 REST一下吧 )的網址,也可以讓我們輕易建構出類似Dynamic Data風格的網址,像是: http://myWebSite/Product/Edit/XBOX 我們可以用上面的網址來表達要編輯一筆產品資料,產品名稱為XBOX。這樣的網址呈現方式不只更加的直覺清楚,同時也有著相當大的延展性,例如,我們可以用底下的網址表明要編輯名稱為Student資料表中的David同學的資料: http://myWebSite/Edit/Student/David 當然,也可以用底下這個網址來表達要編輯名稱為Employ資料表中的Eric員工的資料: http://myWebSite/Edit/Employ/Eric 而這兩個網頁理論上行為上完全一致,其實可以用同一個.aspx頁面來執行。 也就是說,傳統的WebForm .aspx頁面,在編輯不同的資料表時,幾乎註定要寫不同的頁面(來維護多個資料表),如果有三五個資料表要維護,這不是問題,反正透過Wizard很快就可以建立出這些.aspx頁面,但是,如果是一千兩千個資料表,那你就要好好思考了... 為何傳統的WebForm不能用『一個』.aspx頁面來處理這一兩千個資料表呢? 其實每個資料表的編輯行為(Behaivor)不是都一樣嗎? 是的,但是這背後的原因很多,主要是因為SqlDataSource、FormView、GridView的行為和DataBinding機制,造成了ASP.NET注定讓UI層和DB的相依性過高(在.aspx頁面中有SQL指令或是DataForm/Data...

Tech.Days 2009 研討會順利結束

感謝大夥的熱情參與,今年 Tech.Days 2009 研討會 順利結束了,在這次的研討會中,SL3的部分是focus在企業的應用,透過.NET RIA Services, Business Application Template以及SL3當中的一些技巧,很快速的建立典型的企業應用程式;同時也提到了OOB與離線應用,和前陣子我Demo的SL3 Multi-Touch技術;而ASP.NET 4.0這個主題,則是概略性的介紹了未來ASP.NET 的四個大方向,包含Dynamic Data, WebForm的改變,AJAX 4.0的Client Template與Binding, 還有MVC的概念。 短短的70分鐘,實在沒法把整個主題全數介紹,僅能挑出幾個比較重要和較有意義的部分和大家分享,因此細節的部分我會在接下來一兩個月全數放到BLOG上,陸續介紹ASP.NET 4.0的一些新功能和SL3的應用技巧。 總之,很謝謝大家的參與和支持,很高興在會場有機會碰到大家。