在最初學習一些編程語言、一些編程技術的時候,作的更多的是如何使用該技術,如何更好的使用該技術解決問題,而沒有去關注它的相關性、關注它的理論支持,這種學習技術的方式是短平快。其實工做中有時候也是這樣,公司要推崇一個新技術、一個解決方案,咱們老是短平快的去學習如何使用它,按照固定的解決問題思路按着案例進行,這也是一種應對項目緊急的一些措施。
我的感受若是有空閒時間的話,仍是分析一下、理解一下、深刻了解一下比較好,這些技術是如何交互的、這些技術的理論支持什麼、爲何要用這項技術、這項技術的優缺點怎樣?這也是一個從實踐到理論再到實踐的過程,或許會發現新的視野、新的收穫。
本篇針對.NET下的Web開發相關技術簡單整理、簡單梳理了一下。這個整理沒有探討技術的細節點,只是對相關技術的簡單梳理。這個整理相關簡單,其中參見博客的整理,有些是本身寫的、加入本身對技術點的一些理解,有些是參見大牛寫的博客,組織起來的博客。博客中提供的相關資料只是我的喜愛,固然也有其餘的很不錯的資源,也期待你們的分享。javascript
1.對B/S和C/S的相關了解
主要使用.NET進行相關技術開發,最初學習是從C/S結構開始的,到如今的比較傾向於B/S結構,傾向於B/S後臺的編寫。對於C/S和B/S瞭解也是應該必知的吧。
C/S (Client/Server)結構,即客戶機和服務器結構。它是軟件系統體系結構,經過它能夠充分利用兩端硬件環境的優點,將任務合理分配到Client端和Server端來實現,下降了系統的通信開銷。C/S要求客戶端包含一個或多個在用戶的電腦上運行的程序,而服務器端有兩種,一種是數據庫服務器端,客戶端經過數據庫鏈接訪問服務器端的數據;另外一種是Socket服務器端,服務器端的程序經過Socket與客戶端的程序通訊。
B/S(Browser/Server)結構,即瀏覽器和服務器結構。它是隨着Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,用戶工做界面是經過WWW瀏覽器來實現,極少部分事務邏輯在前端(Browser)實現,可是主要事務邏輯在服務器端(Server)實現,造成所謂三層3-tier結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統維護與升級的成本和工做量,下降了用戶的整體成本(TCO)。
參見博客:《C/S和B/S結構區別整理》html
2.對B/S(ASP.NET)的相關了解
(1).Web請求響應簡單理解
在進行Web開發應該理解Client與Server是如何進行數據信息交互的,以及頁面又是如何進行相關數據加載的。
Web開發是一個指代網頁或網站編寫過程的廣義術語。網頁使用 HTML、CSS 和 JavaScript編寫。這些頁面多是相似於文檔的簡單文本和圖形。頁面也能夠是交互式的,或顯示變化的信息。編寫交互式服務器頁面略微複雜一些,但卻能夠實現更豐富的網站。現在的大多數頁面都是交互式的,並提供了購物車、動態可視化甚至複雜的社交網絡等現代在線服務。
參見博客:《Web請求響應簡單整理》前端
(2).HTTP協議
當今Web程序的開發技術真是百家爭鳴,ASP.NET, PHP, JSP,Perl, AJAX 等等。 不管Web技術在將來如何發展,理解Web程序之間通訊的基本協議至關重要, 由於它讓咱們理解了Web應用程序的內部工做機制。
協議是指計算機通訊網絡中兩臺計算機之間進行通訊所必須共同遵照的規定或規則,超文本傳輸協議(HTTP)是一種通訊協議,它容許將超文本標記語言(HTML)文檔從Web服務器傳送到客戶端的瀏覽器。目前咱們使用的是HTTP/1.1 版本。
參見博客:《HTTP協議詳解》java
(3).ASP.NET工做原理
對於使用ASP.NET作網站開發瞭解一下ASP.NET的工做原理也是不錯的。其實和Web請求響應一致,主要是請求處理過程當中的管道模型,瞭解HttpModule、HttpHandler的工做原理和IHttpHandlerd如何處理HTTP請求的。
參見博客:《ASP.NET - 工做原理》jquery
(4).ASP.NET頁面生命週期
瞭解一下ASP.NET頁面的生命週期,頁面從初始化到卸載相關事件的觸發、加載,針對一些特殊的業務場景可能須要在相關事件中進行相關邏輯的處理。
客戶發出POST請求-〉建立Page派生類,調用構造函數->調用Page類的IHttpHandler.ProcessRequest方法-〉激活Page類的Init事件-〉調用Page類的CreateChildControls虛方法-〉從POST變量和VIEWSTATE中還原服務器端控件狀態-〉激活Page類的Load事件-〉激活服務器端控件事件-〉激活Page類的PreRender事件-〉調用Page類的Render虛方法-〉調用Page類的RenderChildren虛方法-〉發送HTTP響應給客戶端-〉激活Page類的Unload事件-〉丟棄Page派生類的實例。
參見博客:《asp.net頁面從初始化到卸載事件順序》web
(5).ASP.NET頁面狀態管理
隨着Web時代的到來,在無狀態的HTTP世界中管理狀態成爲Web開發者的一個大問題。有幾種存儲和檢索數據的不一樣技術,用來處理HTTP的這種無狀態機制,進行數據的狀態保持。ASP.NET中添加了四個新的對象:Cache、Context、ViewState和Web.Config文件。ASP.NET也支持傳統的ASP對象,包括Application、 Cookie、有隱藏字段的 Form Post 、 QueryString和Sessions。
參見博客:《ASP.NET保持用戶狀態的九種選擇》ajax
(6).HttpWebRequest和HttpWebResponse
在進行Web開發時,針對一些業務可能會用到HttpWebRequest和HttpWebResponse兩個對象進行相關數據的處理,那就瞭解一下這兩個對象是如何應用的。
該兩個對象彷佛用在抓去網頁數據方面比較多:《C# 抓取網頁內容(轉)》、《C#抓取網頁數據分析》、《抓取Web網頁數據分析》
參見博客:《HttpWebRequest和HttpWebResponse的應用》sql
(7).ASP.NET性能優化
使用ASP.NET進行開發,瞭解一下ASP.NET的性能優化也是不錯的,固然也有其餘很好的資源,期待你們的分享。
參見博客:《ASP.NET性能優化專題》
參見博客:《ASP.NET性能優化》
參見博客:《ASP.NET性能優化》
參見博客:《Asp.net性能優化-性能優化總結》
參見博客:《asp.net性能優化總結》數據庫
(8).ASP.NET 相關學習
在網上簡單收集了一下,發現周公的這個ASP.NET視頻教程作的比較好,做爲學習資源分享於你們。固然,還有更好的學習資料,期待你們的分享。
參見視頻連接:《ASP.NET周金橋》編程
3.對腳本的相關了解
(1).JavaScript
<1>.什麼是JavaScript?優缺點
JavaScript是一種基於對象(Object)和事件驅動(Event Driven)並具備安全性能的腳本語言。使用這種語言的目的是與HTML超文本標記語言、Java Applet(Java小程序)一塊兒實如今一個Web頁面中連接多個對象,與Web客戶交互做用,從而能夠開發客戶端的應用程序等。
參見博客:《JavaScript特色、優缺點及經常使用框架》
<2>.JavaScript相關學習資料
在網上簡單的收集了一些關於JavaScript的學習資料,51CTO的這個系列博客看完以後不必定變得精通,但對JavaScript的基本運用應該問題不大。同時湯姆大叔的這個JavaScript系列,也是至關的好,把設計模式思路運用到JavaScript中,這樣對JavaScript應該會有很大的提升。固然,還有更好的資源,期待你們的分享。
參見博客:《JavaScript從入門到精通(視頻實戰版)》
參見博客:《深刻理解JavaScript系列》
(2).AJAX
<1>.什麼是AJAX?優缺點
AJAX全稱爲「Asynchronous JavaScript and XML」(異步JavaScript和XML),是一種建立交互式網頁應用的網頁開發技術。它使用:
使用XHTML+CSS來標準化呈現;使用XML和XSLT進行數據交換及相關操做;
使用XMLHttpRequest對象與Web服務器進行異步數據通訊;
使用Javascript操做Document Object Model進行動態顯示及交互;
使用JavaScript綁定和處理全部數據。
參見博客:《AJAX工做原理及其優缺點》
<2>.AJAX相關學習資料
簡單收集了兩篇博客,認識一下AJAX是如何實現的。還有更好的資源,期待你們的分享。
參見博客:《掌握 Ajax(一): Ajax 入門簡介》
參見博客:《XMLHttpRequest Ajax 實例簡介》
(3).JQuery框架
<1>.什麼是JQuery類庫?優缺點
JQuery是一個優秀的輕量級的javascript框架。JQuery是一個快速的,簡潔的JavaScript庫,使用戶能更方便地處理HTML documents、events、實現動畫效果,而且方便地爲網站提供AJAX交互。
JQuery還有一個比較大的優點是,它的文檔說明很全,並且各類應用也說得很詳細,同時還有許多成熟的插件可供選擇。JQuery可以使用戶的html頁保持代碼和html內容分離,也就是說,不用再在html裏面插入一堆js來調用命令了,只需定義id便可。
參見博客:《JQuery特色、優缺點及其使用》
<2>.JQuery相關學習資料
在博客園和51CTO都有關於JQuery的博客專題,有不少不錯的博客、不少資源可供選擇,並且其中的系列博客可使你對JQuery有一個相關全面的瞭解。
參見博客:《博客園JQuery專題》
參見博客:《51CTO.COM JQuery專題》
參見博客:《jQuery系列之目錄彙總》
(4).ExtJs框架
<1>.什麼是ExtJs類庫?優缺點
ExtJS能夠用來開發RIA也即富客戶端的AJAX應用,主要用於建立前端用戶界面,是一個與後臺技術無關的前端ajax框架。利用ExtJS構建的RIA Web應用具備與桌面程序同樣的標準用戶界面與操做方式,而且可以橫跨不一樣的瀏覽器平臺。ExtJS已經成爲開發具備完滿用戶體驗的Web應用完美選擇。所以,能夠把ExtJS用在.Net、Java、Php等各類開發語言開發的應用中。
參見博客:《ExtJs特色、優缺點及注意事項》
<2>.ExtJs相關學習資料
對於JQuery的學習,博客園和51CTO都有專題,其中有不少的資源,而對於ExtJs的資料相對較零散,這裏簡單收集了幾個資源分享一下。固然,還有更多好的,期待你們的分享。
參見博客:《ExtJs簡單整理》
參見博客:《ExtJs 備忘錄》
參見博客:《ExtJS4系列目錄》
參見博客:《Ext JS權威指南》
(5).其餘相關了解
<1>.瞭解JSON與XML的區別
對於使用AJAX進行數據傳輸調用中,會處理兩種不一樣的數據傳輸格式:JSON和XML,那他們有什麼區別和差別?在不一樣的場景下,選擇哪一種數據格式傳輸比較合適?其應用場景?
參見博客:《JSON與XML的區別比較》
<2>.瞭解跨域處理
在平時工做中可能會碰到跨域請求數據的問題,在處理跨域問題上有很多大牛提供瞭解決辦法,簡單組織了一下,不是很全面若是遺漏參見博客原做者。
參見博客:《JS、JQuery和ExtJs的跨域處理》
<3>.瞭解JQuery與ExtJs的區別
若是同時用過JQuery和ExtJs兩種框架,或在這兩種框架之間選擇須要考慮這兩種框架的優缺點及其差別,瞭解一下差別總會是好的。
參見博客:《jQuery與Ext區別》
參見博客:《WPF和Silverlight及ExtJS和JQuery 比較(我的隨筆)》
(6).API文檔
其實若是不是純前端開發,在使用JS框架須要調用相關的API函數,可能更多的是藉助API文檔來輔助處理,對於經常使用的函數還比較熟悉,對於不經常使用的接口更多仍是查API文檔吧。
簡單的收集了一下,可能不是你須要的版本,那就去相關JS框架的官方網站下載吧。或許有比這更全、更好的資源,期待你們的分享。
JavaScript幫助文檔:《w3cschool在線教程》 ;本地下載:http://ishare.iask.sina.com.cn/f/22627354.html?from=like
JQuery1.4.2 API幫助文檔:http://www.jb51.net/books/35926.html
EXT3.1-3.4中文API及案例:http://download.csdn.net/detail/feitian19873000/3867122#comment
Ext4.1最新中文API:http://download.csdn.net/detail/wyzlwyzl/4350089
4.對於MS SQL Server(T-SQL)的相關了解
進行Web項目開發數據庫是離不開的,熟悉掌握數據庫操做的經常使用函數是必要的,簡單整理一下,有時間就回頭再看看。
這裏只對MS SQL數據庫操做的相關整理,沒有對MY SQL和ORCAL數據庫進行整理。固然,也有不少更好的博客,期待你們的分享。
參見博客:《視圖、索引、存儲過程優缺點》
參見博客:《【基礎篇—SQL語句相關概念及練習】》
參見博客:《經典SQL語句大全》
參見博客:《sqlserver函數大全》
參見博客:《SQL Server 阻塞分析》
參見博客:《SQL Server優化50法》
參見博客:《SQL語句優化技術分析》
參見博客:《(轉)SQL 優化原則》
5.對於.NET FrameWork的相關了解
(1)..NET FrameWork各版本變換以及語法特性
一直在作.NET 方面的開發,對於.NET FrameWork各個版本的更新曆程瞭解一下,瞭解一下各個版本有哪些新語法特性,仍是挺不錯的。
參見博客:《 .Net發展歷程》
(2).ASP.NET MVC
<1>.ASP.NET MVC各版本變換以及語法特性
對於使用ASP.NET MVC進行相關項目開發,瞭解一下ASP.NET MVC各個版本也是不錯的,也瞭解一下各個版本的語法特性。
參見博客:《ASP.NET MVC區別》
<2>.ASP.NET MVC學習資料
對於ASP.NET MVC的相關資料,在博客園有對應的專題,有不少不錯的博客系列,能夠選擇你喜歡進行學習。也有其餘的一些ASP.NET MVC的學習資料,期待你們的分享。
參見博客:《ASP.NET MVC 博客園專題》
參見博客:《細數ASP.NET MVC框架的7大頂級功能》
參見博客:《ASP.NET MVC 3 Framework之旅 第一章》
(3).LINQ To SQL
LINQ,語言集成查詢(Language INtegrated Query)是一組用於C#和Visual Basic語言的擴展。它容許編寫C#或者Visual Basic代碼以查詢數據庫相同的方式操做內存數據。
LINQ To TQL學習資料整理,也有其餘的學習資料,期待你們的分享。
參見博客:《LINQ 博客園專題》
參見博客:《LINQ 51CTO專題》
(4).Entity Framework
ADO.NET Entity Framework 以 Entity Data Model (EDM) 爲主,將數據邏輯層切分爲三塊,分別爲 Conceptual Schema, Mapping Schema 與 Storage Schema 三層,其上還有 Entity Client,Object Context 以及 LINQ 可使用。
其中,EDM爲一個數據模型,用於將應用程序數據定義爲公共語言運行時類型和存儲結構能夠映射到的實體和關係集;
Conceptual Schema爲概念架構,一種基於 XML 的語言,可用於定義概念模型的實體類型、關聯、實體容器、實體集和關聯集;
Mapping Schema爲映射規範,一種基於 XML 的語言,可用於將概念模型中定義的項映射到存儲模型中的項;
Storage Schema爲存儲架構,一種基於 XML 的語言,用於定義存儲模型的實體類型、關聯、實體容器、實體集和關聯集,常常對應於數據庫架構。
Entity Framework學習資料整理,也有其餘的學習資料,期待你們的分享。
參見博客:《靈動思緒EF(Entity FrameWork) 》
參見博客:《ADO.NET Entity Framework(1)介紹 》
參見博客:《Entity Framework 博客園專題》
參見博客:《ADO.NET 3.5高級編程——應用LINQ & Entity Framework》
參見博客:《Entity Framework、NHibernate和LINQ To SQL的區別是什麼?》
(6).WCF
Windows通訊基礎(Windows Communication Foundation,WCF)是基於Windows平臺下開發和部署服務的軟件開發包(Software Development Kit,SDK)。基於SOA通訊框架,爲全部的分佈式通訊技術提供同一個API,典型的包括:COM/DCOM、Enterprise Service、.NET Remoting、XMLWeb服務、MSMQ等。
WCF包含4中類型的契約:服務契約、數據契約、消息契約和錯誤契約。 契約、服務端、宿主程序、客戶端,服務寄宿方式:自我寄宿(Self Hosting),宿主進程爲Hosting.exe;服務寄宿於IIS中,寄宿進程爲w3wp.exe。 終結點(endpoint)三要素:地址、綁定、契約,簡稱ABC(Address\Binding\Contract)。
WCF學習資料整理,在蔣金楠的博客裏,有很多講解WCF的相關知識點,也有其餘好的博客和資源,期待你們的分享。
參見博客:《蔣金楠(Artech)WCF相關博客》
參見博客:《Robin's Space WCF相關博客》
(7).XAML
<1>.XAML
XAML語言能夠用於Windows Phone APP開發、SilverLight插件開發、WPF開發、Win8開發等等。
XAML是EXtensible Application Markup Language的英文縮寫,相應的中文名稱爲可擴展應用程序標記語言,它是微軟公司爲構建應用程序用戶界面而建立的一種新的描述性語言。XAML提供了一種便於擴展和定位的語法來定義和程序邏輯分離的用戶界面,而這種實現方式和ASP.NET中的"代碼後置"模型很是相似。也就是說在開發一個應用程序時,咱們能夠將開發工做分紅開發人員和設計人員兩個團體分別進行,各自負責後臺程序代碼邏輯和前臺程序界面的設計,這樣就使得開發人員和設計人員之間的協做更通暢,也極大地發揮了他們的專長。
參見博客:《什麼是XAML》
參見博客:《XAML 概述》
參見博客:《XAML定義》
<2>.SilverLight
Silverlight技術是一個跨瀏覽器跨平臺的插件,能夠用來實現豐富的媒體體驗和豐富交互性體驗的web應用。它是微軟所發展的Web前端應用程序開發解決方案,是微軟豐富型互聯網應用程序(Rich Internet Application)策略的主要應用程序開發平臺之一,以瀏覽器的外掛組件方式提供Web應用程序中多媒體(含影音流與音效流)與高度交互性前端應用程序的解決方案,同時它也是微軟UX(用戶體驗)策略中的一環,也是微軟試圖將美術設計和程序開發人員的工做明確切分與協同合做發展應用程序的嘗試之一(另外一個爲WPF)。
參見博客:《Silverlight架構概述》
參見博客:《初識Silverlight 4及其架構》
參見博客:《Silverlight 結構》
<3>.WPF
Windows Presentation Foundation(WPF)是Microsoft在.NET 3.0中推出的一個重要新特性,它爲Windows下應用程序開發提供一套全新的顯示系統,旨在爲用戶提供方便的用戶操做和震撼視覺體驗的界面。WPF支持一套完整的應用程序開發功能,包括應用程序開發模型、資源、控件、圖形、動畫、佈局、數據綁定、文檔讀寫、本地化、安全性等。
WPF是微軟新一代圖形系統,運行 在.NET Framework 3.0架構下,爲用戶界面、2D/3D 圖形、文檔和媒體提供了統一的描述和操做方法。基於DirectX 9/10技術的WPF不只帶來了史無前例的3D界面,並且其圖形向量渲染引擎也大大改進了傳統的2D界面,好比Vista中的半透明效果的窗體等都得益於 WPF。
參見博客:《WPF是什麼》
參見博客:《閒話WPF之一(WPF的結構) 》
參見博客:《WPF每天見系列》
參見博客:《WPF案例總結》
參見博客:《WPF學習筆記系列》
參見博客:《Silverlight/WPF 系列彙總》
參見博客:《聖殿騎士WPF系列》
(8).Smart Client Software Factory框架
SCSF是一個應用了多種設計模式、適用於大型軟件開發的框架,其特色是結合B/S與C/S架構的優勢,開發人員能夠按業務功能分模塊並行開發,各模塊之間耦合度很小,當業務需求變化時,應用SCSF架構的軟件能夠最大限度地減少代碼修改量。
Smart Client相比傳統B/S架構的優點:FatClient設計,用戶體驗豐富,客戶端能夠在不在線的狀態下運行——而傳統B/S架構是把一切負擔交給服務器,當網絡不可用時B/S系統徹底癱瘓。
參見博客:《Smart Client Software Factory 概述》
參見博客:《SCSF 系列:Smart Client Software Factory系列博客》
(9).技術整合
對於各類技術的整合使用,這也是收集的幾個小資源,還有不少的資源,期待你的分享。
參見博客:《ExtJS調用WCF系列 》
參見博客:《【封裝】WCF+LINQ+ExtJS作更簡單的Grid》
參見博客:《Spring.Net+NHibenate+Asp.Net mvc +ExtJs系列總結(持續更新) 》
參見博客:《搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (一)搭建你的環境 》
參見博客:《ASP.NET MVC4 中整合 NHibernate3.三、Spring.NET2.0、ExtJS4 筆記一:簡介》
參見博客:《ExtJS4.1+MVC3+Spring.NET1.3+EF5 整合一:構建項目框架》
參見博客:《ASP.NET MVC+EF框架+EasyUI實現權限管理系列之開篇》