在最初学习一些编程语言、一些编程技术的时候,作的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性、关注它的理论支持,这种学习技术的方式是短平快。其实工做中有时候也是这样,公司要推崇一个新技术、一个解决方案,咱们老是短平快的去学习如何使用它,按照固定的解决问题思路按着案例进行,这也是一种应对项目紧急的一些措施。
我的感受若是有空闲时间的话,仍是分析一下、理解一下、深刻了解一下比较好,这些技术是如何交互的、这些技术的理论支持什么、为何要用这项技术、这项技术的优缺点怎样?这也是一个从实践到理论再到实践的过程,或许会发现新的视野、新的收获。
本篇针对.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实现权限管理系列之开篇》