在最初学习一些编程语言、一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性、关注它的理论支持,这种学习技术的方式是短平快。其实工作中有时候也是这样,公司要推崇一个新技术、一个解决方案,我们总是短平快的去学习如何使用它,按照固定的解决问题思路按着案例进行,这也是一种应对项目紧急的一些措施。
个人感觉如果有空闲时间的话,还是分析一下、理解一下、深入了解一下比较好,这些技术是如何交互的、这些技术的理论支持什么、为什么要用这项技术、这项技术的优缺点怎样?这也是一个从实践到理论再到实践的过程,或许会发现新的视野、新的收获。
本篇针对.NET下的Web开发相关技术简单整理、简单梳理了一下。这个整理没有探讨技术的细节点,只是对相关技术的简单梳理。这个整理相关简单,其中参见博客的整理,有些是自己写的、加入自己对技术点的一些理解,有些是参见大牛写的博客,组织起来的博客。博客中提供的相关资料只是个人喜好,当然也有其他的很不错的资源,也期待大家的分享。
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结构区别整理》
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协议详解》
(3).ASP.NET工作原理
对于使用ASP.NET做网站开发了解一下ASP.NET的工作原理也是不错的。其实和Web请求响应一致,主要是请求处理过程中的管道模型,了解HttpModule、HttpHandler的工作原理和IHttpHandlerd如何处理HTTP请求的。
参见博客:《ASP.NET - 工作原理》
(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页面从初始化到卸载事件顺序》
(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保持用户状态的九种选择》
(6).HttpWebRequest和HttpWebResponse
在进行Web开发时,针对一些业务可能会用到HttpWebRequest和HttpWebResponse两个对象进行相关数据的处理,那就了解一下这两个对象是如何应用的。
该两个对象似乎用在抓去网页数据方面比较多:《C# 抓取网页内容(转)》、《C#抓取网页数据分析》、《抓取Web网页数据分析》
参见博客:《HttpWebRequest和HttpWebResponse的应用》
(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.3、Spring.NET2.0、ExtJS4 笔记一:简介》
参见博客:《ExtJS4.1+MVC3+Spring.NET1.3+EF5 整合一:构建项目框架》
参见博客:《ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇》