《项目中的.NET》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:李天平编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121176708
  • 页数:756 页
图书介绍:本书作者是从事.NET一线开发的资深专家,常年耕耘技术博客,惠及无数.NET新知。本书集实用性、思想性、趣味性于一体,内容共分为技术基础总结、系统架构设计思想及项目实战解析三部分。随书所附光盘收录了大量实例代码及一些商业系统,供读者参考学习。光盘codech19 Tools动软代码生成器最新版的安装文件请到官网(http://www.maticsoft.com/)下载。

第1篇 技术基础总结 3

第1章 NET,你真的知道了吗 3

1.1搞清自己是干什么的 4

1.2NET的几个特性 7

1.3万丈高楼平地起:面试者必会 9

1.3.1 C#介绍 10

1.3.2命名空间 10

1.3.3 C#语法格式要点 10

1.3.4变量 12

1.3.5类型推断 12

1.3.6变量的作用域 13

1.3.7常量 16

1.3.8流程控制 16

1.3.9字符串常见操作 21

1.3.10几个常用的数学函数 26

1.4.NET的面向对象之门 27

1.4.1继承——“子承父业” 27

1.4.2委托——“任务书” 35

1.4.3反射——“解剖” 42

1.5.NET开发几把小刀 45

1.5.1 using之多变身 45

1.5.2@符号的妙用 47

1.5.3预处理指令,有你更轻松 48

1.6 Visual Studio,NET 2010实战 50

1.6.1如何创建ASPNET项目 51

1.6.2如何创建Windows项目 53

1.6.3 Visual Studio.NET 2008/2010 操作与使用技巧 54

1.6.4常见开发调试技巧 58

1.6.5错误异常处理方法 63

本章常见技术面试题 69

常见面试技巧之面试前的准备 69

本章小结 70

第2章 细节决定成败 71

2.1 equals()和运算符=的区别 72

2.2 const和readonly的区别 74

2.3 private、 protected、 public和 internal的区别 78

2.4 sealed、 new、 virtual、 abstract与 override 79

2.5 abstract class与interface 83

2.6公共变量与属性的区别 85

2.7参数修饰符params、 out和ref的 区别 87

2.8值类型和引用类型的区别 91

2.9结构与类的区别 94

2.10 Dispose()和Close()、 Finalize()的 区别 97

2.11 string和StringBuilder的区别 98

2.12 Debug版本和Release版本的区别 99

本章常见技术面试题 102

常见面试技巧之细节决定成败 102

本章小结 103

第3章ASPNET开发大杂烩 105

3.1页面生命周期 106

3.1.1独立页面生命周期事件顺序 106

3.1.2具有Master页的生命 周期事件顺序 108

3.1.3 ASPNET生命周期详解 110

3.2页面状态管理 112

3.2.1 Cookie 113

3.2.2 H1tmllnputHidden隐藏域 115

3.2.3 ViewState 115

3.2.4查询字符串Request 116

3.2.5 Application对象 117

3.2.6 Session对象 117

3.2.7示例项目:在线用户 列表统计 120

3.3服务器和客户端数据交互 123

3.3.1页面数据绑定全攻略 123

3.3.2 Bind和Eval的区别 132

3.4 ASPNET编程中的技巧 134

3.4.1页面之间传值的7种方法 134

3.4.2 get与post方法的区别 137

3.4.3 ASPNET服务器控件和 HTML控件的区别 138

3.4.4 Server.Transfer和Response. Redirect的区别 140

3.4.5刷新页面的方法汇总 141

3.4.6页面事件控制 142

3.4.7在URL中传递中文的 解决方案 144

3.4.8增强用户体验的一些技巧 145

3.4.9 XHTML与HTML的区别 148

3.5打造自己的页面基类PageBase 153

本章常见技术面试题 156

常见面试技巧之如何做好自我介绍 156

本章小结 157

第4章Windows窗体编程你也行 159

4.1创建简单的WinForm项目 160

4.2创建MDI窗体应用 162

4.3获取应用程序路径信息 166

4.4回车跳转控件焦点 167

4.5窗体间传递复杂数据 168

4.5.1构造传递 168

4.5.2公有字段传递 169

4.5.3委托与事件传递 171

4.6实现个性化窗体界面 172

4.7无标题窗体拖动的两种方法 175

4.8让程序只启动 一次—— 单实例运行 176

4.9实现系统托盘和热键呼出 177

4.10进程与多线程的区别 181

4.11创建多线程应用程序 182

4.12 WinForm 开发常见问题 185

4.12.1如何设置运行时窗体的 起始位置 186

4.12.2如何使一个窗体在其他窗体 的上面 186

4.12.3实现窗体渐显效果 186

4.12.4设置窗口背景为渐变色 187

4.12.5模态窗口和非模态窗口 187

4.12.6屏蔽窗口右上角的 关闭×操作 188

4.12.7调用执行外部的程序 188

本章常见技术面试题 189

常见面试技巧之经典问题巧回答 189

本章小结 190

第5章 数据库开发 191

5.1 ADO.NET与抽水的故事 192

5.1.1 ADO.NET的定义 192

5.1.2趣味理解ADO.NET 对象模型 194

5.1.3进水笼头——建立 Connection 196

5.1.4抽水机——Command 198

5.1.5输水管——DataAdapter 201

5.1.6输水管——DataReader 202

5.1.7随用随关,释放资源 204

5.1.8水库管理——DataSet 204

5.1.9水池子——DataTable 206

5.2数据库操作类的封装详解 209

5.2.1执行命令方法的封装 209

5.2.2查询数据方法的封装 212

5.2.3数据统计方法的封装 213

5.2.4实现SqlParameter方式 214

5.2.5实现多数据库的访问 215

5.3常用的经典SQL语句 216

5.4事务处理 218

5.4.1 SQL和存储过程级别的事务 219

5.4.2 ADONET级别的事务 221

5.4.3 ASPNET页面级别的事务 222

5.4.4企业级服务COM+事务 224

5.4.5 System.Transactions事务 处理 228

5.5 Oracle开发常见问题 232

5.5.1 Oracle和SQL Server的常用 函数对比 232

5.5.2 Oracle和SQL Server的 语句区别 236

5.5.3 ASPNET连接Oracle 失败的解决方法 237

本章常见技术面试题 238

常见面试技巧之经典问题巧回答 238

本章小结 239

第6章 关于XML 241

6.1 XML概述 242

6.1.1 XML和HTML有什么 区别 242

6.1.2 XML的优势 242

6.2文档结构与基本语法 243

6.3 XML操作 245

6.3.1 XmlDocument创建XML 文档 245

6.3.2 XmlTextWriter创建 XML文档 246

6.3.3 XmlDocument读取XML 文档 248

6.3.4 XmlTextReader读取XML 文档 249

6.3.5在HTML中显示XML 中的数据 250

6.3.6 JavaScript获取XML内容 251

6.3.7项目案例:通用自定义 XML配置类 254

6.4 ADONET与XML 258

6.4.1读XML文档到DataSet 258

6.4.2 DataSet转为XML文档 259

6.5 项目案例1:实现网站的RSS 应用 259

6.6项目案例2:在线实现RSS 阅读器 262

本章常见技术面试题 267

常见面试技巧之经典问题巧回答 267

本章小结 268

第7章Web Service开发详解 269

7.1 Web Service基本概念 270

7.2 Web Service的应用场景 270

7.3创建简单的Web Service项目应用 272

7.4 Web Service属性介绍 274

7.5 ASP.NET如何调用Web Service 278

7.6 JavaScript如何调用Web Service 280

7.6.1通过webbehavior.htc调用Web Service 280

7.6.2通过Microsoft.XMLDOM 调用Web Service 282

7.6.3 XMLHTTP POST调用 Web Service 284

7.6.4 SOAP调用Web Service 285

7.7 WinForm如何调用Web Service 286

7.7.1.NET的WinForn调用 Web Service 286

7.7.2手动发送HTTP请求 调用Web Service 287

7.8实现异步调用Web Service 289

7.9如何保证Web Service的安全 290

7.9.1通过SoapHeader增强 Web Service的安全性 291

7.9.2采用SSL实现加密传输 294

7.9.3访问IPP限制 306

7.10 Web Service开发中需要 注意的问题 307

本章常见技术面试题 311

常见面试技巧之经典问题巧回答 311

本章小结 312

第 8章 用户体验的杀手锏——AJAX 313

8.1AJAX概述 314

8.1.1什么是AJAX 314

8.1.2 AJAX技术的核心 315

8.1.3 AJAX的工作原理 316

8.1.4 AJAX的优点 316

8.1.5 AJAX的局限性 317

8.1.6 AJAX适用场景 318

8.1.7 AJAX不适用的场景 319

8.1.8 XMLHttpRequest开发实例 319

8.2微软V S.NET的AJAX开发 323

8.2.1安装ASP.NET 2.0 AJAX Extensions 323

8.2.2创建ASP.NET AJAX 应用程序 324

8.2.3 ScriptManager控件使用 技巧 325

8.2.4 UpdatePanel控件使用技巧 326

8.2.5 AsyncPostBackTrigger实现 外部控件引发局部刷新 328

8.2.6 AJAX错误处理 331

8.2.7告诉用户你正在做什么—— UpdateProgress控件 332

8.2.8 ASPNET AjaxControlToolkit 简介 335

8.3使用第三方组件AJAX.dll开发 337

8.4使用第三方组件AJAXPro的开发 341

8.5使用第三方组件MagicAJAX的 开发 341

8.6 AJAX开发原则 342

本章常见技术面试题 343

常见面试技巧之经典问题巧回答 343

本章小结 344

第9章 系统与文件操作 345

9.1获取系统信息 346

9.1.1用SystemInformation类 获取系统信息 346

9.1.2用Environment类获取 系统信息 347

9.1.3通过WMI获取系统信息 348

9.1.4用RegistryKey类读取 系统信息 351

9.1.5用API函数获取系统信息 353

9.1.6获取系统服务信息 355

9.2文件操作 357

9.2.1通过StreamWriter类 实现写文件 358

9.2.2通过File类创建文件 358

9.2.3通过FileStream类创建文件 359

9.2.4通过FileInfo类创建文件 359

9.2.5追加文本 360

9.2.6读取文本文件 360

9.2.7读写二进制文件 362

9.2.8文件复制、移动和删除 363

9.3文件夹目录操作 364

9.4读写IM文件 365

9.5读写注册表 368

本章常见技术面试题 370

常见面试技巧之经典问题巧回答 370

本章小结 371

第10章 网络应用开发 373

10.1 Socket基本编程 374

10.1.1 Socket基本知识 374

10.1.2 Socket服务端开发步骤 376

10.1.3 Socket客户端开发步骤 378

10.2异步Socket通信——实现MSN 机器人 380

10.2.1机器人服务端 380

10.2.2客户端实现步骤 384

10.3基于TCP协议的客户端和 服务端 387

10.3.1 TcpListener实现网络 服务端 387

10.3.2 TcpClient实现网络客户端 388

本章常见技术面试题 390

常见面试技巧之经典问题巧回答 390

本章小结 391

第11章Windows Service开发 393

11.1什么是Windows服务 394

11.2创建Windows服务 394

11.3 Windows服务开发常见问题 398

11.4安装/卸载Windows服务 399

11.4.1安装Windows服务 399

11.4.2卸载Windows服务 400

11.4.3 Windows服务应用程序 体系结构 400

11.5调试Windows服务 403

11.5.1日志调试法 404

11.5.2附加进程断点调试法 404

本章常见技术面试题 405

职场智慧之初入江湖 405

本章小结 407

第12章 新技术初探 409

12.1 WPF 411

12.1.1 WPF简介 411

12.1.2 WPF何以令人佩服 411

12.1.3 XAML概述 412

12.1.4 WPF开发环境配置 413

12.1.5项目示例:开发一个简单的 WPF应用程序 414

12.2 WCF 416

12.2.1 SOA是什么 417

12.2.2 WCF是什么 417

12.2.3 WCF的优势是什么 418

12.2.4 WCF开发环境 421

12.2.5项目示例:订票服务WCF 开发步骤 421

12.3 LINQ 430

12.3.1 LINQ的架构 430

12.3.2传统的查询 431

12.3.3 LINQ查询实例 433

12.3.4 LINQ查询语法 438

本章常见技术面试题 439

职场智慧之学习方法 439

本章小结 440

第2篇 系统架构设计思想 443

第13章 面向对象思想 443

13.1为什么要面向对象 444

13.2什么是面向对象 446

13.3面向对象的特点 448

13.3.1封装 448

13.3.2继承 449

13.3.3多态 450

13.4面向对象设计和开发实例 456

13.4.1用传统的过程化设计实现 播放器功能 456

13.4.2基于面向对象设计实现 播放器功能 457

13.4.3面向对象封装、继承、 多态的应用 458

13.4.4设计模式、条件外置及反射 技术的应用 461

13.5面向对象分析(OOA)的方法 464

13.6面向对象设计的原则 468

13.6.1优先使用(对象)组合, 而非(类)继承 468

13.6.2针对接口编程,而非 (接口的)实现 470

13.6.3开放-封闭法则(OCP) 472

13.6.4 Liskov替换法则(LSP 474

13.6.5单一职 责原 则 SRP) 475

13.6.6依赖倒 置原则 DIP) 476

13.6.7接口分离原则 (ISP) 478

13.6.8面向对象设计时需要 注意的问题 479

本章常见技术面试题 480

本章小结 481

第14章三层架构项目开发 483

14.1什么是三层架构 484

14.1.1常用的三层架构设计 484

14.1.2趣味理解:三层架构与养猪 486

14.2为什么要用三层架构 487

14.3三层架构项目开发示例 490

14.3.1数据库设计 490

14.3.2创建整体解决方案 491

14.3.3业务实体Model的实现 492

14.3.4数据访问层的实现 494

14.3.5业务逻辑层的实现 498

14.3.6表示层的实现 499

14.4实现基于工厂模式的三层架构 501

14.4.1扩展新增数据访问层 502

14.4.2 IDAL抽象接口的实现 503

14.4.3创建DAL对象的封装 507

14.4.4实现抽象工厂模式 508

14.4.5工厂模式的三层架构图 511

本章常见技术面试题 512

职场智慧之程序员的职业规划 512

本章小结 513

第15章大型网站的性能化与安全 515

15.1高效C#编码优化 516

15.2页面(HTML)优化的方法 523

15.3 ASPNET开发性能优化 529

15.3.1尽量使用静态HTML页面 530

15.3.2避免不必要的回送操作 530

15.3.3尽量在客户端进行用户 输入验证 531

15.3.4关闭不必要的Session状态 531

15.3.5优先使用HTML控件, 而非服务器控件 531

15.3.6不必要时关闭ViewState 532

15.3.7禁用调试模式 532

15.4系统缓存管理 533

15.4.1缓存概述 533

15.4.2传统缓存方式 534

15.4.3页面输出缓存 534

15.4.4页面输出缓存API 537

15.4.5页面局部缓存 539

15.4.6应用程序数据缓存 543

15.4.7文件缓存依赖 545

15.4.8数据库缓存依赖 546

15.4.9 Memcached——分布式 缓存系统 550

15.4.10 Cacheman——.NET架构 下的分布式缓存项目 551

15.5数据库访问性能优化 552

15.5.1选择合适的.NET数据 供应器 552

15.5.2及时关闭数据库连接 552

15.5.3跟踪监视SQL Server当前 链接池状态 553

15.5.4善用数据库的存储过程 556

15.5.5 SqlDataReader和Dataset的 选择 556

15.5.6 ExecuteNonQuery和 ExecuteScalar的选择 557

15.5.7数据的绑定DataBinder 557

15.5.8使用DataReader的 注意事项 557

15.5.9 Command对象的使用 558

15.5.10反复执行SQL语句用 Prepare() 558

15.5.11分页的数据访问 559

15.5.12 SQL命令的优化 559

15.5.13 tempdb的使用技巧 561

15.5.14使用视图代替跨库操作 561

15.5.15 尽量避免大事务操作和 游标的使用 561

15.5.16为表建立适当的索引 562

15.6网站安全防护 562

15.6.1什么是SQL注入式攻击 562

15.6.2如何防范SQL注入式攻击 563

15.6.3实现页面验证码 564

15.6.4实现文件防盗链 568

15.6.5采用HTTPS进行访问 572

15.7 ⅡS优化 573

15.7.1如何监测ⅡS服务器并发数 573

15.7.2采用Gzip压缩页面优化 574

15.7.3网站应用程序池配置 576

15.8网站架构优化策略 581

本章常见技术面试题 584

职场智慧之独善其身 584

本章小结 587

第16章 系统设计的原则和技巧 589

16.1系统设计的原则 590

16.1.1最适合的才是最好的 590

16.1.2以不变应万变 591

16.1.3可扩展性 591

16.1.4可复用性 592

16.2系统设计的常用方法 592

16.3敏捷软件开发12条原则 596

16.4系统架构师成长之路 599

本章常见技术面试题 603

职场智慧之职场政治 603

本章小结 604

第3篇 项目实战解析 607

第17章 权限角色管理项目解析 607

17.1权限角色管理概述 608

17.2项目概述 611

17.3数据库设计 612

17.3.1数据库实体关系模型 612

17.3.2表结构设计 613

17.4数据访问层 615

17.4.1类设计 615

17.4.2代码实现 616

17.5业务逻辑层 617

17.5.1类设计 617

17.5.2扩展.NET Framework 用户处理机制 620

17.6接口调用与Web管理实现 625

17.6.1Web.confiig配置 626

17.6.2用户身份和权限验证 626

17.6.3用户验证接口方式1: 权限验证用户控件 627

17.6.4用户验证接口方式2: 页面基类 629

17.6.5用户和角色权限的 后台管理 632

职场智慧之如何提升自己在 公司的价值 639

本章小结 640

第18章 单点登录系统的设计与实现 641

18.1项目概述 642

18.1.1名词定义 642

18.1.2项目需求描述 642

18.2业务流程设计 643

18.2.1用户认证流程 643

18.2.2安全验证流程 644

18.3功能与接口设计 645

18.3.1接口交互设计 645

18.3.2应用系统接口 646

18.3.3认证服务器功能和接口 646

18.4数据库设计 646

18.4.1数据库实体关系模型 647

18.4.2表结构设计 647

18.5实现认证服务器 648

18.5.1 SSO解决方案 649

18.5.2系统管理后台 650

18.5.3用户通行证管理中心 651

18.5.4认证服务器接口开发 658

18.6 应用系统接入接口开发 661

18.6.1用户身份认证 661

18.6.2接收状态同步 662

18.6.3用户注销 664

18.6.4更新认证服务器状态 664

18.7接口封装及调用 665

职场智慧之晋升之道 667

本章小结 670

第19章 常用.NET开发工具介绍 671

19.1源码版本管理: Visual SourceSafe 2005 672

19.1.1安装和配置VSS 2005 服务端 672

19.1.2安装和配置VSS客户端 676

19.1.3将项目加入VSS版本控制 677

19.1.4客户端连接VSS服务器 获取源代码 679

19.1.5设置VSS支持通过 Internet访问 681

19.1.6版本控制的几个概念 685

19.1.7 VSS项目权限管理 687

19.1.8 VSS数据备份 689

19.1.9 VSS 2005的使用规范 691

19.2单元测试工具:NU nit 692

19.2.1 NUnit简介 692

19.2.2手把手教你在.NET中 应用NUnit 692

19.3日志工具——Log4net 698

19.3.1 Log4net简介 698

19.3.2使用步骤 701

19.3.3单独配置文件的使用 702

19.4代码规范检查工具:Microsoft Source Analysis for C 705

19.5生成文档注释工具:GhostDoc 707

19.6反编译工具:Reflector for.NET 714

19.7动软代码生成器 715

19.8帮助文档生成工具:Sandcastle 718

19.8.1 Sandcastle介绍 719

19.8.2生成方式 720

19.8.3具体生成步骤 721

本章小结 729

附录A软件编码规范 731

A.1概述 732

A.1.1规范基本原则 732

A.1.2术语定义 732

A.1.3文件命名组织 732

A.2代码外观 733

A.2.1列宽 733

A.2.2换行 733

A.2.3缩进 733

A.2.4空行 733

A.2.5空格 734

A.2.6括号——() 734

A.2.7花括号——﹛﹜ 735

A.3程序注释 735

A.3.1注释概述 735

A.3.2文档型注释 736

A.3.3类注释 737

A.3.4单行注释 737

A.3.5注释标签 737

A.4声明 739

A.4.1每行声明数 739

A.4.2初始化 739

A.4.3位置 740

A.4.4类和接口的声明 740

A.4.5字段的声明 740

A.5命名规范 741

A.5.1命名概述 741

A.5.2大小写规则 742

A.5.3缩写 742

A.5.4命名空间 743

A.5.5类 743

A.5.6接口 744

A.5.7属性(Attribute) 744

A.5.8枚举(Enum) 744

A.5.9参数 745

A.5.10方法 745

A.5.11属性(Propery) 745

A.5.12事件 747

A.5.13常量(const 748

A.5.14字段 748

A.5.15 静态字段 749

A.5.16集合 749

A.5.17措词 749

A.6语句 750

A.6.1每行一条语句 750

A.6.2复合语句 750

A.6.3 return语句 751

A.6.4 if、 if-else、if else-if语句 751

A.6.5 for、 foreach语句 752

A.6.6 while语句 752

A.6.7 do-while语句 752

A.6.8 switch-case语句 752

A.6.9 try-catch语句 753

A.6.10 using块语句 753

A.6.11goto语句 754

A.7其他 754

A.7.1表达式 754

A.7.2类型转换 754

A.8匈牙利命名法 754

A.9控件命名规则 755

A.9.1一般命名方法 755

A.9.2主要控件名简写对照表 755