当前位置:首页 » 网页前端 » 基于aspnet的web应用开发第二版
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

基于aspnet的web应用开发第二版

发布时间: 2023-05-23 05:01:24

① 推荐几本ASP.NET的书籍

去 www.ibook8.com 看看吧
如果是刚开始学习的核肆话建议你选择《亲毕兄密接触ASP。NET》手氏袭
内容很简单易懂,也有不少入门性的实例
一本很不错的书,我刚开始就是用它入门的

② 学习asp的有关书籍或是asp.net.的具体书籍。麻烦大家能告诉我一下具体书名吗

ASP.NET会计系统设计与项目开发 ¥40.85元
本书以一种会计系统的设计、构建和实现为线索,使用VB.NET+ASP. NET+sql Server+Excel技术,从面向对象系统的分析、设计,到会计系统设计的实现循序渐进地进行讲述。读者通过本书的学习,可以掌握VB.NET和A SP.NET的程序技巧和设计实用应用系统的规划技巧。本书 ...
Web开发技术教程——ASP/ASP.NET/JSP程序设计 ¥32.30元
本书系统讲述Web开发技术,全书内容覆盖了当前Web程序设计与开发的主流。第1章介绍Web编程基础及Web开发环境;第2、3、4、5、6章完整介绍ASP技术,包括ASP工作原理,VBScript、JavaScript、ASP五大内置对象,ASP的服务器组件和ADO组件及其Web数据库发布技术,ASP综?...
ASP.NET网络编程从基础到实践 ¥45.60元
本书以ASP.NET的基础知识学习和应用为主要讨论对象。在基础篇(第1-14章),以浅显的方式讲解ASP.NET的基本知识,并包含了相应的示例。在进阶篇(第15-22章),精心按照难易程度和适用范围,对ASP.NET的具体应用进行了较为详细的讨论。对于每个例子,都有详细的背景 ...
ASP.NET项目开发实践(第二版)——项目开发实践系列丛书 ¥33.25元
ASP.NET是Microsoft.NET框架的一部分,使用它可以编写出功能强大而复杂的各种应用系统来。本书首先简单的回顾了ASP.NET技术的主要方面,包括ASP.NET页面的基本语法、Web Form的概念及Web控件,Web Services和ASP.NET的状态管理等;然后以多个实用的在线系统为例,详 ...
ASP.NET程序或洞设计专家门诊 ¥42.75元
本书重点介绍如何解决ASP.NET程序设计过程中碰到的各种问题,包括了ASP.NET编程基础、HTML服务器控件应用、Web服务器控件应用、客户端与服务器的交互、数据绑定控件、ADO.NET技术、XML应用、图形图像处理、ASP.NET高级技巧的应用、客户端编程技术等。本书强调理论与 ...
因特网应用(ASP平台)ASP.NET试题汇编(高级管理员级) ¥33.25元
由劳动和社会保障部职业技能鉴定中心在全国统一组织实施的全国计算机信息高新技术考试是面向广大社会劳动者举办的计算机职业技能考试,考试采用国际通行的专项职业技能鉴定方式,测定应试者的计算机应用操作能力,以适应社会发展和科技进步需要。本书包含了全国计算机信 ...
因特网应用(ASP平台)ASP.NET试题解答.高级管理员级 ¥36.10元
由劳动和社会保障部就业效能审定中心在全国组织实施的全国计算机信息高新技术考试是面向广大社会劳动者举办的计算机职业技能考试…… ...
(1CD.第二版)ASP.NET揭秘 ¥90.25元
本书是美国亚马逊网站同类书长期销售冠军,并受到微软ASP.NET小组项目经理Rob Howard的大力推荐,中文版由中科院专家汤涛老师翻译,经典、权威是本书最好的诠释。本书共分10部分,31章,囊括了在.NET框架下架建ASP.NET应用程序的各个层面。每一章也都不是泛泛而谈理论, ...
拒绝黑客——ASP.NET Web 应用程序安全性剖析 ¥45.60元
本书详细介绍了ASP.NET Web应用程序面对的各种威胁和攻击,并有针对性地提供了完美的解决方案。运用本书介绍的安全技术基本上可以抵御到目前为止出现的各种黑客攻击,如账号劫持、社会工程、跨站薯历点脚本、暴力攻击等。 对于ASP.NET Web程序开发人员而言,本书可?...
ASP.NET+SQL Server网络应用开发与实例 ¥39.90元
本书介绍使用ASP.NET(C#)和SQL Server 2000开发Web应用程序的基础知识和开发方法。本书涉及从编程技术到产品配置,从工具使用技巧到技术剖析的各个方面,技术含量丰富,蕴涵面广。本书还完整地介绍了4个Web应用程序实衫手枯例,包括动态新闻发布系统、网上考试系统、B2C商务 ...
拒绝黑客——ASP.NET Web 应用程序安全性剖析 ¥45.60元
本书详细介绍了ASP.NET Web应用程序面对的各种威胁和攻击,并有针对性地提供了完美解决方案。运用本书介绍的安全技术基本上可以抵御到目前为止出现的各种黑客攻击,如账号劫持、社会工程、跨站点脚本、暴力攻击等。 对于ASP .NET Web程序开发人员而言,本书可谓是?...
拒绝黑客——ASP.NET Web 应用程序安全性剖析 ¥45.60元
本书详细介绍了ASP.NET Web应用程序面对的各种威胁和攻击,并有针对性地提供了完美解决方案。运用本书介绍的安全技术基本上可以抵御到目前为止出现的各种黑客セ鳎�缯撕沤俪帧⑸缁峁こ獭⒖缯镜憬疟尽⒈┝�セ鞯取? 对于ASP .NET Web程序开发人员而言,本书可谓是 ...
ASP.NET 2.0动态网站开发教程 ¥25.65元
...
ASP.NET动态网站开发基础教程(C#篇) ¥30.40元
ASP.NET是由Microsoft公司推出的新一代Web开发构架。开发人员可以通过ASP.NET实现动态网站的开发,包括开发Web应用程序和Web服务。本书详细讲解了ASP.NET动态网站开发技术,共分13章,内容包括ASP.NET语言基础、HTML与Script语言、C#语言基础、ASP.NET常用对象、数据?...
ASP.NET电子商务入门经典(第2版) ¥55.10元
本书全面详细地介绍了如何构建电子商务Web站点,并通过大量的代码和示例逐步教会您设计和构建站点的具体过程。您将学会构建使用购物车的在线商品类目、创建搜索和商品推荐功能,并实现管理功能、客户账户、定单处理系统以及其他更多内容。您还将了解如何集成PayPal、Dat ...
Web应用程序设计技酢�狝SP.NET ¥26.60元
...
ASP.NET(C#)基础教程 ¥37.05元
学习软件开发最重要的就是能够学以致用,同样学习ASP.NET Web开发最好的效果也是能够学以致用,因此在全书学习过程中,读者应该带着需求来学习,例如全书完成后,我们如何完成一个中小型电子商务系统的开发,比如网上书店系统、网上手机系统、网上论坛等。读者也可以从?...
ASP.NET网络数据库开发实例精解 ¥58.90元
本书以实例的方法介绍了网络应用程序的数据库和ASP.NET应用程序(使用C#语言)的开发技术,以及两者结合在一起的Web应用程序的开发技术。本书还介绍了如何使用ASP.NET应用程序连接、访问和操作数据库的基本方法,以及使用ASP.NET中的服务器控件读取、显示、添加、修改和 ...
ASP.NET 1.1入门经典—— Visual C#.NET 2003编程篇 ¥81.70元
ASP.NET 1.1是Microsoft公司Active Server Page(ASP)的最新版本,它是一种基于服务器的功能强大的技术,用于为Web站点或企业的内部网创建动态的、交互式的HTML页。ASP.NET由多项技术组成,如Web服务、ADO.NET、定制控件和安全性等。本书配合大量示例代码,全面系统地讲?...
ASP.NET 1.1入门经典—— VB.NET 2003编程篇 ¥80.75元
ASP.NET 1.1是Microsoft公司的Active Server Page(ASP)技术的最新版本,它是一种基于服务器的、功能非常强大的技术,可以为Web站点或企业内部网创建动态和交互式的Web页。ASP.NET 1.1也是Microsoft的.NET战略的核心内容,可以为功能强大的.NET开发环境提供基于Web的访问 ...
ASP.NET 1.1高级编程 ¥121.60元
Microsoft的ASP.NET自从第一次发布为预览技术以来,已经取得了巨大的成功。对于使用Microsoft技术开发Web站点的开发人员来说,ASP.NET提供了丰富的编程模型,可以轻松地构建站点。ASP.NET自发布以来对它的评论非常多,但撇开宣传和新闻这些炒作不谈,.NET确实为开发人员 ...
ASP.NET简明教程(C#篇) ¥28.31元
本书主要介绍了在Windows 2000操作系统上使用ASP.NET创建动态Web网页的相关技术,内容涵盖了ASP.NET程序的运行环境需求、C#语法基础、ASP.NET扩展的HTML控件和Web内部控件的使用、ASP.NET的常用内置对象、.NET的命名空间、在ASP.NET中实现事件驱动、在ASP.NET程序中使用 ...
ASP.NET实用教程 ¥28.31元
本书系统介绍了利用Visual Studio .NET 2003开发ASP.NET Web应用程序的方法。全书共分14章,主要内容包括:动态网页的基本概念,ASP.NET的运行和开发环境,ASP.NET的基本语法,C#语言基础,C#面向对象的编程方法,ASP.NET内置对象,ASP.NET服务器控件,数据库基础及其在 ...
ASP.NET 1.1数据库入门经典 ¥43.70元
本书内容丰富,结构清晰,共分为3部分:简介(第1-2章)、核心技巧(第3-10章)和应用(第11-13章)。重点讲解如何使用ASP.NET和ADO.NET建立数据驱动的Web应用程序。除了介绍构建Web窗体和将控件放入页面的基础知识外,还阐述了ASP.NET开发人员应如何构建能够处理数 ...
ASP.NET程序设计案例教程 ¥34.20元
本书是一本精心设计的ASP.NET案例教程(以VB.NET语言讲解),它不是简单地堆砌源代码,而是将重点放在了讲解程序设计思想上,不仅要让读者知道怎么编,更要让读者知道为什么要这样编。 本书案例选材来源于四个方面:Internet上优秀的案例、作者多年的教学经验?...

③ ASP论文摘要

基于ASP.NET的Web网络应用程序开发的安全策略实践
摘要:Web网络应用开发中,安全性是要考虑的关键问题,本文通过开发系统实践,从系统规划阶段、设计开发阶段、发布运行阶段三个方面详细阐述安全策略的实现,总结出如何充分利用ASP.NET的安全机制、数据库安全控制、增强管理员网络安全防范意识,构建一个性能安全的Web应用程序。
关键词:Web应用程序;web.config;认证和授权;视图;存储过程

1 前言

微软公司推森做搏出的ASP.NET,可以非常方便和高效地规划、设计、开发和发布Web网络应用程序。笔者利用ASP.NET为新疆职工培训中心开发了运行在校园网上的网络办公管理系统。该系统分为管理部门和教学部门两个角色,实现了数据存储、浏览查询和教学分析统计功能,提高了培训中心的信息化管理和校园网的利用价值。在整个系统的开发过程中,考虑最多的就是安全问题,相信这也是所有开发人员开发Web网络应用程序所必须面对的问题。因此本文针对基于ASP.NET的Web网络应用程序开发的安全问题,以我们开发的系统为例,从3个方面来阐述实际解决策略:
(1)系统规划阶段的安全策略;
(2)设计开发阶段的安全策略;
(3)发布运行阶段的安全策略。
希望我们的实践能对利用ASP.NET开发Web网络应用程序的相关技术人员提供参考和借鉴。

2 安全策略实践

2.1系统规划阶段
Web网络应用程序,就是运行在Web应用胡扮服务器上的一个虚拟目录及其子目录下的所有文件、网页、模块以及可执行代码的总和。根据系统需求分析,用户分为管理部和教学部(对数据的操作权限有区分),因此建立两个目录分别存放相应的网页文件。另外,还有数据库文件夹、样式文件夹、网页模版文件夹等。而对数据库表的操作文件放在特殊的文件夹bin下,因为该目录是禁止任何浏览器访问的,从而避免了远程客户下载代码的可能性。应用程序根目录下除了上述目录外,还有两个重要的应用程序级文件:global.asax 和web.config(下文详细分析)。总之,文件目录的规划是按类别存放文件,重要文件此祥存在bin目录下。
2.2设计开发阶段
主要从后台的数据库设计、配置文件web.config及前台界面设计三个内容,着重阐述对安全问题的解决策略。
2.2.1数据库设计
为了提高访问数据的效率和安全性,能在后台做的事情,就在后台完成,能分开独立做的事情,就分开独立实现。
(1)充分利用后台数据库系统的视图和存储过程,如:创建带参数的视图,实现不同角色身份的用户对各自权限范围内的数据访问。
(2)报表设计及实现:Web应用程序实现动态报表,开始考虑用ASP.NET的数据控件Repeater,可以自由定义灵活的显示方式,但通常比较麻烦,而且在代码中字段名要出现,即:使用数据容器Container.DataItem("字段名")方式来显示数据内容,降低了数据安全性。我们的做法是利用Bussiness Object 公司开发的专业报表软件CrystalReports10设计报表,通过ODBC数据源与数据库连接,生成报表文件(*.rpt)后,在前台利用报表控件CrystalReprotViewer,将报表文件加载到页面实现各种报表。这种把数据源、报表文件、和页面显示文件分开独立实现,不仅丰富了报表显示样式和提高了网络报表生成效率,而且极大地提高了访问数据的安全性。
(3)用户口令存储问题:不要将实际的口令存储在数据库表中,因为口令直接放在数据库或文件中存在安全隐患,因此要存储加密后的口令。使用时,例如当用户登录时,对口令加密,然后与数据库中存放的加密口令进行比较。实现步骤如下:
首先,导入命名空间:<%@ Import Namespace="System.Web.Security" %>
其次,编写加密函数EncrytPwd:
Function EncrytPwd(Pwd as String,PwdFormat as String)
If PwdFormat="MD5" then
'下面一行得到用MD5算法加密后的字符串
EncrytPwd=FormsAuthentication.(Pwd,"MD5")
'下面一行得到用SHA1算法加密后的字符串
Else if PwdFormat="SHA1"then
EncrytPwd=FormsAuthentication.(Pwd,"SHA1")
End if
End Function
2.2.2 配置文件web.config 的安全设置
web.config文件是一个简单的XML文件,专门用于为应用程序配置系统设定、安全性设定、应用程序设定和会话设定。下面分5个内容介绍安全实践策略。
(1) 数据库连接字符串常量:Web应用程序网页要大量用到数据库连接,为了提高程序安全性、通用性和可移植性,在配置文件中设置数据库连接字符串常量是很好的方法,在应用程序的web.config文件中添加如下语句:

网页文件使用时,用下列代码实现数据库连接:
Dim strConn As String
strConn=ConfigurationSettings.AppSettings("sqlconntion ")'获取数据库连接字符串
(2) 认证和授权:HTML表单验证(Forms Authentication),是向开发人员提供确认客户凭证并控制访问权限的技术。在应用程序的web.config文件中添加如下语句:

授权:就是让用户拥有有效凭证,允许或拒绝访问Web应用程序。在web.config中添加如下语句:

(3) 虚拟路径的设置:不同用户对不同目录访问权限不同,可以设定虚拟目录来实现

(4) 设置调试模式提高安全策略:默认情况下,错误信息保存在栈中。如果开启调试模式,ASP.NET在运行中发生错误时,会显示错误行号,方便调试。可以在页面或web.config文件中开启调试模式。例如:

<%@ page debug=”true” %>'开启页面级调试模式

'开启应用程序级调试模式
但发布程序时,要禁用调试模式,否则出错时,有泄露后台代码的隐患。
(5) 页面出错处理策略:出错时转向统一的出错页面,而不必在每个网页中写代码,控制转向出错页面,避免了程序运行期间任何未处理的意外发生时,错误页面代码泄露或使用户不知所云的尴尬发生。页面出错处理可以应用下列策略实现:
(A)定制出错网页

这个设置可以保证当错误出现时,本地用户访问默认出错页,远程用户访问自定义的error.htm网页。
(B)处理特别的HTTP请求
对于HTTP错误状态代码,例如:403禁止,404无法找到,500服务器错误等,可以自定义各自的出错处理页面。如下所示:

2.2.3 界面设计:代码分离和自定义控件
(1)代码分离:将程序代码和HTML内容分离,不仅能增强页面的条理性、易读性和团队开发的容易程度,更重要提高网页安全性。如:
前台aspx网页:peixun_base_
xiangmu.aspx.aspx
<%@ Register TagPrefix= "iewc" Namespace="Microsoft.Web.UI.WebControls"
Assembly="microsoft.web.ui.webcontrols" %>
<%@ Page Language="vb" AutoEventWireup="false" Codebehind=
"peixun_base_xiangmu.aspx.vb"Inherits="pxb.MUTI"%>
而后台的peixun_base_xiangmu.aspx.vb文件,专门编写代码,实现代码和HTML内容分离。
(2)自定义控件:可以根据需要编写自定义控件,更好地提供可重用的封装逻辑,在使用自定义控件前,需要将定义它们的类文件编译成动态库,即:
vbc /t:library /r:system.dll /r:system.web.dll/out:pxbcontrols.dll control.vb
将编写好的类文件(.vb)编译成动态库(.dll),可以供以后多次使用,由于封装了逻辑,且生成库,所以安全性得到保障。
除上述外,必须要重视记录日志。日志文件分系统日志和用户自定义日志。系统日志,如建立数据库日志文件;自定义日志文件:可以利用global.asax文件的session_onStart()事件与session_onEnd()事件实现自定义日志文件维护,例如:记录访问用户的登录名,访问时间,IP地址等信息,在应用程序根目录的global.asax文件内添加如下代码:
<%@ Import Namespace= "System.IO"%>
Sub Session_onStart(Sender As Object, E As EventArgs)
'每一位客户登录时触发该事件
sw=New StreamWriter(server.mappath("log/log.txt"),True,Encoding.Default)
'将客户IP保存到Session中
Session("IP")= Request.ServerVariables("REMOTE_ADDR") sw.Writeline(Now() & "-用户" & Session("IP") & "进入")
sw.Close
End Sub
Sub Session_OnEnd(Sender As Object, E As EventArgs)
'当每一位客户超过会话时间没有和服务器交互,或关闭浏览器后触发该事件
sw=New StreamWriter(server.mappath("log/log.txt "),True,Encoding.Default)
sw.Writeline(Now() & "-用户" &Session("IP") & "退出")
sw.Close
End Sub
2.3 发布运行阶段:主要考虑如下方面
(1) 关闭调试模式;
(2) 备份转储数据库文件和日志文件;
(3) 密码要不断更新;
(4) 及时打补丁程序。

3总结

综上所述,基于ASP.NET的Web网络应用程序开发,在充分利用ASP.NET的安全机制、数据库安全控制、管理员网络安全防范意识的基础上,可以极大提高Web应用程序的安全性能。

参考文献
[1] [美]Steven A.Smith等.用实例学ASP.NET.马燕,闫立军等,译.北京:电子工业出版社,2002.
[2] [美]Macro Bellinaso Kevin Hoffman.ASP.NET Web站点高级编程.康博,译.北京:清华大学出版社,2002.
[3] [美]John Kauffman 等. ASP.NET数据库入门经典. 康博,译.北京:清华大学出版社,2002.
[4] 章立民. 用实例学 Crystal Report for Visual Studio.NET.北京:电子工业出版社,2004.

④ 基于ASP.NET MVC框架开发Web论坛应用程序[1]

我想通过本系列文章从头到尾构建一个完整的ASP NET MVC论坛应用程序 最终的目的是探讨和推动使用ASP NET MVC框架构建应用程序的最佳实践友局

简介

在本篇中 我想先从全局方面介绍一下论坛应用程序的总体目标 在本篇中 我将讨论一下避免代码坏味道的重要性 还将讨论如何利用软件设计原则和模式来帮助你编写适合未来改变的富有弹性的代码 最后 我还将论证一下为什么我选择使用测试驱动开发方式构建本系列文章中的论坛应用程序

什么样的软件是好的软件

我不想仅仅为了构建论坛应用程序而任意构建此论坛应用程序 我的目标是尽可能构建最棒的论坛应用程序

这个目标立即引发这样一个问题 什么样的软件是好的软件?是什么导致一个应用程序比另一个应用程序更好一些或更差一些呢?在事先没有一个关于 好软件 的定义之前 我无法声明我构建了一个完美的论坛应用程序

因此 下面是我对于 好软件 的定义

好软件是设计得易于修改的软件

存在多种原因可能需要你改变软件

)你可能需要在一个现有软件上添加新的特征 )你可能需要修改一个现有软件中的错误 )你可能需要优化现有软件 )你可能需要改进现有软件的设计

一般说来 设计糟糕的软件是难于改变的 有些软件设计得如此糟糕 以致于每个人都害怕碰一碰它 我们大家应该都使用过设计得糟糕的软件 当软件不好时 你很希望它干脆走开 甚至如果有机会的话 你可能想从头开始重新编写这款软件

避免代码坏味道

Robert和Micah Martin把糟糕的软件部分描述为代码坏味道 下列代码坏味道意味着此软件的书写是相当糟糕的

)僵化性(Rigidity)—僵化的软件是这样的软件 当你在某个位置作一改动时即要求对系统作出相应的一系列的更改 )脆弱性(Fragility)—脆弱的软件是这样的软件 你在某个好锋让位置作一改动时即打断另外多处的正常运行 )不必要的复杂性—不必要的复杂软件是指过度设计的软件 其目的是为了处理任何可能的改变 )不必要的重复—不必要的重复软件中包含大量的重复性代码 )晦涩性—晦涩的软件是指难于理解的软件

【注意】上述这些代码味道在Micah和Robert Martin的着名《Agile Principles Patterns and Practices in C#》中得到充分的描述 在此 强烈建议读者读一下这本书 注意 上述这些代码味道都与所有的代码改变相关联 每一个这些代码味道都将妨碍代码的改变

软件设计原则

遵循良好的软件设计原则 将有助于编写软件易于适应未来更改的软件 软件设计原则有若干 也不尽相同 例如 Cunningham和Cunningham Wiki描述面向对象设计的 个原则 //c /cgi/wiki?

其中提到的面向对象设计的前五个原则与Robert Martin及他的儿子Micah Martin编着的《Agile Principles Patterns and Practices in C#》中所基激主张的软件设计原则是一致的 此外 Robert Martin还在Object Mentor开辟的博客上讨论了这些原则 // objectmentor /resources/publishedArticles

此外 我还发现有另外两本书中也提供了有关软件设计原则的极其有用的信息 第一本是Eric Freeman Elisabeth Freeman Kathy Sierra Bert Bates编着的《Head First Design Patterns》 第二本是Brett McLaughlin Gary Pollice和David West编着的《Head First Object Oriented Analysis and Design》 尽管这些书所讨论的原则与Robert Martin的提法并不十分相同 但是它们却十分相近

lishixin/Article/program/net/201311/14493

⑤ 基于ASP.NET MVC框架开发Web论坛应用程序


我想通过本系列文章从头到尾构建一个完整的 MVC论坛应用程序,最终的目的是探讨和推动使用 MVC框架构建应用程序的最佳实践。
1、 简介
在本篇中,我想先从全局方面介绍一下论坛应用程序的总体目标。在本篇中,我将讨论一下避免代码坏味道的重要性,还将讨论如何利用软件设计原则和模式来帮助你编写适合未来改变的富有弹性的代码。最后,我还将论证一下为什么我选择使用测试驱动开发方式构建本系列文章中的论坛应用程序。
2、 什么样的软件是好的软件
我不想仅仅为了构建论坛应用程序而任意构建此论坛应用程序。我的目标是尽可能构建最棒的论坛应用程序。
这个目标立即引发这样一个问题:什么样的软件是好的软件?是什么导致一个应用程序比另一个应用程序更好一些或更差一些呢?在事先没有一个关于“好软件”的定义之前,我无法声明我构建了一禅高个完美的论坛应用程序。
因此,下面是我对于“好软件”的定义。
3、 好软件是设计得易于修改的软件
存在多种原因可能需要你改变
1)你可能需要在一个现有软件上添加新的特征
2)你可能需要修改一个现有软件中的错误
3)你可能需要优化现有软件
4)你可能需要改进现有软件的设计
一般说来,设计糟糕的软件是难于改变的。有些软件设计得如此糟糕,以致于每个人都害怕碰一碰它。我们大家应该都使用过设计得糟糕的软件。当软件不好时,你很希望它干脆走开;甚至如果有机会的话,你可能想从头开始重新编写这款软件。
4、 避免代码坏味道
Robert和Micah Martin把糟糕的软件部分描述为代码坏味道。下列代码轿伏坏味闭袭携道意味着此软件的书写是相当糟糕的:
1)僵化性(Rigidity)—僵化的软件是这样的软件,当你在某个位置作一改动时即要求对系统作出相应的一系列的更改。
2)脆弱性(Fragility)—脆弱的软件是这样的软件,你在某个位置作一改动时即打断另外多处的正常运行。
3)不必要的复杂性—不必要的复杂软件是指过度设计的软件,其目的是为了处理任何可能的改变。
4)不必要的重复—不必要的重复软件中包含大量的重复性代码。
5)晦涩性—晦涩的软件是指难于理解的软件。
【注意】上述这些代码味道在Micah和Robert Martin的着名《Agile Principles,Patterns,and Practices in C#》中得到充分的描述。在此,强烈建议读者读一下这本书。
注意,上述这些代码味道都与所有的代码改变相关联。每一个这些代码味道都将妨碍代码的改变。
5、 软件设计原则
遵循良好的软件设计原则,将有助于编写软件易于适应未来更改的软件。软件设计原则有若干,也不尽相同。例如,Cunningham和Cunningham Wiki描述面向对象设计的11个原则:

其中提到的面向对象设计的前五个原则与Robert Martin及他的儿子Micah Martin编着的《Agile Principles,Patterns,and Practices in C#》中所主张的软件设计原则是一致的。此外,Robert Martin还在Object Mentor开辟的博客上讨论了这些原则:

此外,我还发现有另外两本书中也提供了有关软件设计原则的极其有用的信息。第一本是Eric Freeman,Elisabeth Freeman, Kathy Sierra, Bert Bates编着的《Head First Design Patterns》;第二本是Brett McLaughlin,Gary Pollice和David West编着的《Head First Object-Oriented Analysis and Design》。尽管这些书所讨论的原则与Robert Martin的提法并不十分相同,但是它们却十分相近。
不过真实的情况是,上述所有这些针对软件设计原则展开讨论的资源都源自Robert Martin的工作。Robert Martin并不是所有原则的发明者,但是他的确是第一个把这些原则收集到一起的人。下面列出这些软件设计原则:
SRP—单一责任原则
OCP—开关原则
LSP—Liskov替换原则
ISP—接口隔离原则
DIP—依赖倒置原则
上述这个原则的集合正好对应于缩略词SOLID。
下面的软件设计原则列表来自于《Head First Design Patterns》一书:
封装变化
多用组合少用继承
基于接口而不是基于实现编程
在交互的对象间努力实现松耦合
类应该为了扩展而开放,但是为了修改而关闭
依赖于抽象,而不要依赖于具体类
仅仅对你的朋友交谈
不调用我,我们会调用你
一个类应该仅有一个改变的理由
当然,上述原则之间也存在许多的重叠之处。例如,“单一责任”原则与后面的“一个类应该仅有一个改变的理由”这一原则是相一致的。然而,它们所强调的重点还是有所不同。更多的细节在此不便赘述。
所有这些设计原则的真正动机在于,努力构建出能够适应变化的软件。上述原则分别对于不同的原则进行相应的阐述,最终目的也不过是为了创建出可以经得起时间测试的软件。
6、 软件设计模式
软件设计模式描述的是应用软件设计原则所遵循的策略的问题。换句话说,一个软件设计原则是一个好的思想,而一个软件设计模式是你用于实现这种好的思想的工具。
软件设计模式的思想最初源于书籍《Design Patterns: Elements of Reusable Object-Oriented Software》。正是这本书为其它许多描述软件设计模式书的创作带去灵感。
例如,另一本书《The Head First Design Pattern》就以一种更易于理解的方式向人们介绍了GOF所着的书(即上面的那本《Design Patterns: Elements of Reusable Object-Oriented Software》)中所引入的设计模式。这本书中总共详细介绍了下列14种软件设计模式:
Strategy
Observer
Decorator
Factory
Singleton
Command
Adaptor
Fa?ade
Template
Iterator
Composite
State
Proxy
Compound
另一本在软件设计模式方面较有影响的书是Martin Fowler的《Patterns of Enterprise Application Architecture》。这本书还拥有一个公司网站,其中列举了本书中所介绍的模式。此网站的网址是:。
软件设计模式提供给你按照模式的方式构建你的代码,从而使之更富于适应未来的弹性修改。例如,当构建本文中的论坛应用程序时,我们就使用了一种名字为Repository的软件设计模式进行设计。Eric Evans,在他的着作《Domain-Driven Design》中这样描述Repository模式:
一个REPOSITORY把某种类型的所有对象描述为一个概念的集合(通常是模拟的)。其行为类似于一个集合,但是具有更细致的支持查询的能力。于是,符合相应类型的对象可以被添加或删除,而位于此REPOSITORY背后的系统则可以从数据库中添加或删除它们。
根据Evans的解释,Repository模式的一个主要的优点是,它能够帮助你实现“应用程序和域设计与存储技术,多种数据库策略,甚至是多个数据源之间的解耦。”换句话说,Repository模式能够使你的应用程序免于因数据库访问方式的不同而重新加以改变。
为了使我们的论坛应用程序从某一种特定的存储技术中独立出去,我们将在系统中引入上述Repository模式。因此,最终的此论坛应用程序的设计将能够支持我们可以在不同的数据访问技术(例如LINQ to SQL,Entity Framework或NHibernate)之间切换。
7、 测试驱动开发
我打算使用测试驱动开发原则构建本文中的MVC论坛应用程序。更具体地说是,在我编写任何应用程序代码之前,我将首先编写一个应用程序代码的单元测试。
测试驱动开发将会基于下列原因为你带来更高质量的代码:
(1)为你的代码编写测试能够提供给你一个适应于未来可能改变的安全网。
(2)为你的代码编写测试迫使你书写松耦合的代码。
(3)在正式书写你的代码前为你的代码编写测试将迫使你从一个用户的角度来观察自己书写的代码。
让我们更细致地分析上述每种特征的优点。
首先,单元测试提供你一个适应于未来可能改变的安全网。这是Michael Feathers在他的着作《Working Effectively with Legacy Code》一再强调的一个观点。事实上,他把遗留代码定义为“简单地编码而不进行测试”。
当你的应用程序代码被单元测试所覆盖时,你可以修改该代码而不必担心此改动会你的代码既有的功能。单元测试有助于使你的代码进行更安全的重构。如果你能够重构,那么,你可以使用软件设计模式修改你的代码,这将产生更好的适应未来修改的代码。
其次,遵循测试驱动开发将迫使你使用一种特定的方式书写代码。可测试的代码将趋于导致松耦合的代码。单元测试能够在各自孤立的代码单元中执行一个测试。为了构建你的应用程序以便使之可测试,你需要使用一种可孤立的组件方式来构建应用程序。
一个类与另一个类之间是松耦合的是指,当你改变第一个类时不必改变另一个类。测试驱动开发经常迫使你编写松耦合的代码,因为松耦合代码是经得起改变的。
最后,按照测试先行的方式书写代码将迫使你从一个用户的角度来观察自己书写的代码。通过首先编写测试的方式书写代码,会使你站在一个未来的有可能使用你的代码的开发者的角度进行工作。既然编写测试迫使你考虑另一个开发者(也许是未来的你自己)如何使用你的代码,那么,你最终编写的代码应该是设计得更好的代码。
8、 莫图眼前之利益 更宜立足于长远
使用测试驱动开发原则构建软件在软件开发之初要求开发者付出更多的努力。尽管编写测试需要花费一定的时间;然而,其思想是,最初构建单元测试所要求付出的努力将会在未来获得丰厚的回报。
存在两种方式可以使你成为一名开发者。你可以成长为一个牛仔,也有可能成长为一个工匠。一个牛仔能够立即开始编码。也就是说,一个牛仔可以以很快的速度构建一个软件应用程序。然而,作为一个牛仔,其问题在于软件必须要进行长期的维护。
一个工匠则是很有忍耐性的。一个工匠总会精雕细琢地开发一款软件。一个工匠总是非常仔细地构建单元测试,并使之涵盖一个应用程序中所有的代码。因此,一个工匠要花费更长的时间才能创建成功一款应用程序。然而,此应用程序在创建后,却是易于后期的维护—更易于修改错误且更易于把新特征添加到应用程序中。
9、 总结
总之,我们的最终目标是构建一个MVC论坛应用程序,此程序能够经得起长时间的测试。它应该是不仅现在良好地工作,还应该在未来继续工作—即使是当有人需要对该应用程序进行更改之时。
我想利用微软 MVC框架开发此论坛应用程序。原因在于,这个框架可以使我更容易地编写程序的测试代码。而另一方面, MVC框架本身就从设计之初提供了对测试驱动开发的最忠诚的支持。

⑥ MICROSOFT .NET FRAMEWORK 2.0 是什么

.NET Framework 是支持生成和运行下一代应用程序和 XML Web services 的内部 Windows 组件。.NET Framework 旨在实现下列目标:

·提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在 Internet 上分布,或者是在远程执行的。

·提供一个将软件部署和版本控制冲突最小化的代码执行环境。

·提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安全性的代码执行环境。

·提供一个可消除脚本环境或解释环境的性能问腊判题的代码执行环境。

·使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致。

·按照工业标准生成所有通信,以确保基于 .NET Framework 的代码可与任何其他代码集成。

.NET Framework 具有两个主要组件:公共语言运行库和 .NET Framework 类库。
公共语言运行库是 .NET Framework 的基础。您可以将公共语竖友言运行库看作一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。这类似于Java的虚拟机。事实上,代码管理的概念是公共语言运行库的基本原则。以公共语言运行库为目标的代码称为托管代码,而不以公共语言运行库为目标的代码称为非托管代码。
.NET Framework 的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面 (GUI) 应用程序,也包括基于 ASP.NET 所提供的最新创新的应用程序(如 Web 窗体和 XML Web services)。

【客户端应用程序开发】
客户端应用程序在基于 Windows 的编程中最接近于传统风格的应用程序。这些是在桌面上显示窗口或窗体从而使用户能够执行任务的应用程序类型。客户端应用程序包括诸如字处理程序和电子表格等应用程序,还包括自定义的业务应用程序(如数据输入工具、报告工具等等)。客户端应用程序通常使用窗口、菜单、按钮和其他 GUI 元素,并且它们可能访问本地资源(如文件系统)和外围设备(如打印机)。

另一种客户端应用程序是作为网页通过 Internet 部署的传统 ActiveX 控件(现在被托管 Windows 窗体控件所替代)。此应用程序非常类似于其他客户端应用程序:它在本机执行,可以访问本地资源,并包含图形元素。

过去,开发人员结合使用 C/C++ 与 Microsoft 基础类 (MFC) 或应用程序快速开发 (RAD) 环境(如 Microsoft® Visual Basic®)来创建此类应用程序。.NET Framework 将这些现有产品的特点合并到了单个且一致的开发环境中,该环境轮纤改大大简化了客户端应用程序的开发。

包含在 .NET Framework 中的 Windows 窗体类旨在用于 GUI 开发。您可以轻松创建具有适应多变的商业需求所需的灵活性的命令窗口、按钮、菜单、工具栏和其他屏幕元素。

例如,.NET Framework 提供简单的属性以调整与窗体相关联的可视属性。某些情况下,基础操作系统不支持直接更改这些属性,而在这些情况下,.NET Framework 将自动重新创建窗体。这是 .NET Framework 集成开发人员接口从而使编码更简单更一致的许多方法之一。

和 ActiveX 控件不同,Windows 窗体控件具有对用户计算机的不完全受信任的访问权限。这意味着二进制代码或在本机执行的代码可访问用户系统上的某些资源,例如 GUI 元素和访问受限制的文件,但这些代码不能访问或危害其他资源。由于具有代码访问安全性,许多曾经需要安装在用户系统上的应用程序现在可以通过 Web 部署。您的应用程序可以在像网页那样部署时实现本地应用程序的功能。

【服务器应用程序开发】
在托管领域中,服务器端应用程序是通过运行库宿主实现的。非托管应用程序承载公共语言运行库,后者使您的自定义托管代码可以控制服务器的行为。此模型在获得主服务器的性能和可伸缩性的同时提供给您公共语言运行库和类库的所有功能。

2.0是随VS2005一起发的版本,目前已有.net framework 3.5的版本了

Visual Studio相关电子资料、软件汇总:

VS代码辅助工具Visual Assist X 10.4 完美版+特别文件
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=163726
CodeSmith 4.1.2 专业版 最新完美版 .NET代码模板生成工具
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159347
Altova MissionKit 2008 for Enterprise Software Architects完美版
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=162733
正则表达式辅助生成工具RegexBuddy 3.0.5破解版
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=162738
Pro Visual Studio 2005 Team System
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146375
Microsoft Visual Studio 2005 Unleashed
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146812
Visual Studio Team System Better Software Development for Agile Team
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146393

.NET开发语言电子资料汇总:

Pro LINQ:Language Integrated Query in C# 2008
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=166647
MS Press - Introcing Microsoft LINQ
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=163429
LINQ for Visual C# 2005 (07年6月出版)
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=160598
LINQ for VB 2005 (07年6月最新PDF文字版)
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=160599
Manning:LINQ in Action
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173732
Pro C# 2008 and the .NET 3.5 Platform
http://bbs.topsage.com/dispbbs_121_164399_1.html
Apress出版 Accelerated C# 2008
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=166768
Wrox C# 入门经典
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=145845
C# 设计模式
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146178
C# 网络核心编程
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146173
Windows应用高级编程 C#编程篇
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146168
C#高级编程(第三版)
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146165
数据结构与算法 C#语言版
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=158814
C#字符串和正则表达式参考手册
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=151265
O'Reily 正则表达式参考手册 第二版 2007年最新出版
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=158756
Programming Microsoft Windows with C#
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146163
C# 2005图解教程
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=156700
Visual C# 2005 Express Edition编程初学者指南
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159655
Programming .NET Framework with C#
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=163514
C#语言参考
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=158107
C#应用程序开发
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=158106
Client Side Reporting with Visual Studio in C#
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=167264
Wrox Professional VB 2005 with .NET 3.0
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=158893
Build A Program Now Visual Basic 2005
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146029
.NET游戏编程入门经典—VB.NET篇
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=158821
O'Reilly Visual Basic 2005 Cookbook
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=160654
.NET Insight for Classic VB Developers
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=162041
Fast Track Visual Basic.NET
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=161990
Security for Microsoft Visual Basic.NET
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=175012
Visual Basic.NET How to Program 第二版
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173182
Visual Basic 2005 简明教程
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173180
Visual Basic 2005傻瓜书
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173178
Programming Visual Basic.NET
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173164
VB开发人员SQL Sever指南
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173176
How to Code .NET
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=145559
ADO.NET全攻略
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=145338
Apress出版 Pro ADO.NET 2.0
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=170463
Apress Professional ADO.NET 2.0
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=145214
O'Reilly .NET and XML
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=149521
.NET组件编程 (第二版)
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=152046
Wrox Beginning Visual C++ 2005
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=151263
Visual C++.NET专业项目
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=163612
Programming with Visual C++.NET 第六版
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173170
精通.Net核心技术原理与构架
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=151312
Cross-Platform Web Services Using C# and Java
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=160472
Advanced C# Programming
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159657

ASP.NET1.x/2.0电子资料汇总:

O'Reilly Silverlight 1.1简介
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=163145
Wrox出版 Silverlight 1.0 (彩页染色代码、全面解析)
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=165953
Silverlight 1.0 Development with JavaScript
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=163268
Sams出版 Silverlight 1.0 Unleashed
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=162975
Silverlight and ASP.NET Revealed
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=174174
O'Reilly Essential Silverlight
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=163266
XAML简明教程 CHM+PDF版
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=163430
Pro ASP.NET 3.5 in C# 2008
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=166640
Beginning ASP.NET 3.5 in VB 2008 从入门到精通
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=166774
Wrox ASP.NET 2.0 MVP Hacks and Tips
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=163467
Professional ASP.NET.2.0 Design
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=160236
Professional Web Parts and Custom Controls with ASP.NET 2.0
http://bbs.topsage.com/dispbbs.asp?BoardID=123&ID=162787
ASP.NET2.0入门经典
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=146151
ASP.NET 2.0 技术内幕 微软技术丛书 清华大学出版
http://bbs.topsage.com/dispbbs_123_171293_1.html
Wrox ASP.NET 2.0 Visual Web Developer 2005 Express Edition Starter
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=145208
Beginning ASP.NET 2.0 in C# 2005 From Novice to Professional
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=145396
Wrox Professional ASP.NET 2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=145202
Wrox Professional ASP.NET 2.0 XML
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=145197
Wrox Professional ASP.NET 2.0 Security Membership and Role Management
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=145198
Wrox Beginning ASP.NET 2.0 and Databases
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=147078
Pro ASP.NET 2.0 in VB 2005
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173790
ASP.NET开发人员手册
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=145391
ASP.NET 2.0网络编程入门到精通
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=145342
ASP.NET Web应用程序开发新思维
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=145302
ASP.NET 2.0高级应用程序设计专家教程
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=146379
ASP.NET XML高级编程 C#编程篇
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=148800
ASP.NET程序开发 C#篇
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=159285
ASP.NET XML深入编程技术
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=148795
ASP.NET 2.0 Cookbook
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=151984
ASP.NET 2.0 Everyday Apps for Dummies
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=158103
Pro ASP.NET for SQL Server
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=167279
ASP.NET 从入门到精通
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=159331
Wrox Beginning ASP.NET 1.1 with Visual C#.NET 2003
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=160240
ASP.NET 2.0 揭秘
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=160249
Build Your Own ASP.NET 2.0 Web Site Using C# and VB
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=163143
开发Microsoft ASP.NET 2.0网络应用程序
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=160473
Pro ASP.NET 2.0 Website Programming
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=174179
开发ASP.NET 2.0 核心参考
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=160474
Building Websites with VB.NET and DotNetNuke 4
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=160639
Wrox出版 Professional DotNetNuke 4.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=166008
Professional DotNetNuke ASP.NET Portals
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=163399

⑦ ASP.NET技术方案宝典的介绍

《ASP.NET技术方案宝典》一书从唯和ASP.NET进行Web应用指逗盯程序开发必须掌握的核心技术入手,通过实用方案深入介绍各种核心技术在实际开发中的应用。全书分为9章,分别是设计模式与架构选择指闹方案、页面设计方案、数据库操作技术方案、数据检索方案、决策分析方案、水晶报表打印方案、网络通信方案、网站安全与管理方案、网站编译与发布方案等。

⑧ 如何看待asp.netweb开发技术

先简单回顾下asp.net过去十年

mvc流行前

asp.net的服务端控件,将html和js一起封装,很多客户端事件自动通过生成的js将数据重新post回服务端。而对于很多刚入门的小伙伴来说,仅仅靠拖放控件和写C#代码就可以实现一个可用的Web项目,大大降低了入门门槛。相应的,服务端控件这种过度耦合的设计带来了很多缺点:自定义控制难,难以纯粹将前后端分离,导致asp.net从业人员既不能精通困神前段技术,又不能涉猎更多的后端技术(生态问题)。

这个年代,.net被贴上了“拖放控件”的标签。

mvc流行后

微软推出了asp.netmvc,很多公司已经开始尝试前后端分离。就模式上面来说,已经和其它语言平台基于mvc的web项目开发模式无异。

但是asp.net本身的服务框架太杂乱,尤其是艰难(如果你留意过,甚至可以说难产)支持asyncawait异步编程后,他的同步上下文模型缺点太大:首先是源码的结构混乱,其次是使用过程很多人容易造成死锁,异步方法使用不当导致请求已返回上下文已释放然后找不到同步对象导致的异常。问题的根源是大部分程序员对线程了解不深,如果项目有正确的规范用法还好,一旦没有,产生异常很多人根本不知道问题出在哪里。博客园改造过程中就哗尺桐出现过的死锁,有兴趣的可以去看看博客园官方博客写过。

aspnetcore

新应用程序模型设计和代码实现,我非常喜欢。其它的不说,看看那简洁的Reqeust和Response对象,是不是就会让你欣喜?再看看中间件管道,上下文(Context)通过委托链链一路传递,再也不用晦涩的同步上下文,也移除了和Windows安全相关的特征。

整个架构更加清晰,喜欢做扩展的人绝对会有一日看尽长安花的快感。

自然性能也不用说,可以关注github上乱坦微软之前做过的除了mvc之外的性能测试对比。

net生态

拥抱开源后,netcore,standard,aspnetcore,efcore等一系列实现全部都有了,明年的netcore3.0还会包含客户端模型(wpf和winform,只能在windows下使用)。

github上面aspnet,dotnet,dotnet-architecture等分支包含大量微软直接维护的开源项目。

开源社区大部分的项目已经跟进将三方组件基于standard标准打包。

微软也久违地把散乱的文档汇集到docs子域名下

万事剧本,就欠生态!如果apache基金会下面的重要项目都有.net的分支,相信依靠netcore必定可以再次抢占不少的份额。

前景

微服务流行后,其实内部可以混合多种平台提供服务,用aspnetcore做对三方组件需求不太大的业务服务是完全的可以的,基于微软一贯的作风,开发效率是很高的。

其实现在很多内部系统在用.net,只是面向互联网相关的项目,更加需求丰富的三方资源,采用.net的比较少。不过很多大的公司都有.net的分支团队。毕竟在桌面和开发效率上的优势,还是有他存在的价值。

aspnet到底会如何发展,个人感觉还是要看社区的反应,要看生态是否能逐步丰富起来。

看在微软这么努力的份上,个人挺希望他能够扳回一局。

所以?

眼光放长远一点,平台只是我们的工具,一个IT人不应当把自己的技术范围限定到某一个平台。多学多积累,实际项目中应该针对需求、架构以及团队做出选择。

比如Java和.net同时掌握,各取所长,基于他们重叠性较高的原因,学习成本并不高。何况绝大部分的知识和平台并无关系。

个人见解纯手打,欢迎大家评论或者提出意见。

⑨ 《Web程序设计ASP.NET第2版》pdf下载在线阅读全文,求百度网盘云资源

《Web程序设计ASP.NET第2版》网络网盘pdf最新全集下载:
链接:https://pan..com/s/1ayPcM5FHJG2RHV5BhMjm2w

?pwd=oq5i 提取码:oq5i
简介:全书共12章,内容分为两部分。第一部分为第1章和第2章,主要介绍Web基础知识和ASPNET相关知识。第二部分为第3章-第12章,从网络涉及的实用模块出发,结合流行的技术和组件,详细介绍每个模块的设计原理及实现过程,进而讲解ASP.NET在网络开发中的应用,内容主要包括ASPNET控件、ADO.NET、数据绑定、LINQ查询、网站主题、数据验证和网络优化等。

本书实践知识与理论知识并重,力求使读者通过亲自动手来掌握ASPNET新技术,从而学习尽可能多的知识,了解尽可能多的应用。本书可作为普通高等院校相关专业Web程序设计、网络程序设计、ASPNET程序设计等课程的教材,同时也适用于初、中级ASPNET用户学习参考。

⑩ ASP.NET开发宝典:ASP.NET的优点

ASP NET的优点

ASP NET使得建立网站和网页并维持其运行变得更加简单 ASP NET 将应用程序代码行数减少约 % 可以使开发人员将注意力让颤世转移到如何实现业务逻辑上 尽量做到在不写或者少写代码的情况下也可完成任务

新增的服务器控件和现有的服务器控件 可以轻松 快捷坦肢地创建ASP NET Web应用程序 在页面框架设计方面 ASP NET 同样做出了重大的改进 使用母版页提供一致的布局 使用主题和皮肤可以为站点创建一致的外观

ASP NET 的优点主要包括以下几方面

( )生产效率高 使用新增的ASP NET服务器控件和包含新增功能的现有控件 可以轻松 快捷地创建ASP NET网洞斗页和应用程序 新增内容(如成员资格 个性化和主题)可以提供系统级的功能 此类功能通常可能会要求开发人员进行大量的代码编写工作 新增数据控件 无代码绑定和智能数据显示控件已经解决了核心开发方案问题

( )灵活性和可扩展性 很多ASP NET功能都可以扩展 这样可以轻松地将自定义功能集成到应用程序中 例如 ASP NET提供程序模型为不同数据源提供插入支持

( )性能 使用诸如预编译 可配置的缓存和SQL缓存失效等功能 可以优化Web应用程序的性能

( )安全性 现在向Web应用程序添加身份验证和授权比以往任何时候都简单

( )宿主 ASP NET中包含的新增功能使得管理宿主环境变得更加简单 从而为宿主主体创建了更多的增值机会

( )完整性 新增功能和现有功能协同工作 可以创建解决实时Web开发挑战的端对端方案

返回目录 ASP NET开发宝典

编辑推荐

ASP NET开发培训视频教程

Microsoft NET框架程序设计视频教程

ASP NET MVC 框架揭秘

lishixin/Article/program/net/201311/16048