WinFrom 右下角那个小窗体怎么做?

zhaozhijun0207 2009-01-07 02:22:44


WinFrom程序,登录后,想在右下角出现个提示窗体,[不是说系统托盘]

就跟QQ的提示新闻一样,在右下角,一个小小的窗体.怎么做?
...全文
1161 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
caojie300 2011-01-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ygjdatou 的回复:]

在你的窗体的FormClosing()事件里加上

e.Cancel = true;
this.Visible = false;

在你的窗体上添加一个notifyIcon控件,这个控件就是控制显示在任务栏的.在这个控件的MouseDoubleClick()事件里加上
this.ShowInTaskbar = true;
this.WindowState = FormWi……
[/Quote]
不能实现????
sadan2121 2010-09-21
  • 打赏
  • 举报
回复
周公是东软的????
greystar 2009-01-08
  • 打赏
  • 举报
回复
http://blog.csdn.net/jxufewbt/archive/2007/09/26/1801332.aspx
journeydj 2009-01-08
  • 打赏
  • 举报
回复
恩 东软的。。帮那毕业的做过毕业设计。。。
yfcgqsbd 2009-01-07
  • 打赏
  • 举报
回复
东软的?
嘿嘿去过。
猿敲月下码 2009-01-07
  • 打赏
  • 举报
回复
9L的不错
暗石绿 2009-01-07
  • 打赏
  • 举报
回复
http://download.csdn.net/source/948415
暗石绿 2009-01-07
  • 打赏
  • 举报
回复
告诉我邮箱,我给你发一个。
周公 2009-01-07
  • 打赏
  • 举报
回复
WinForm中的特殊窗体效果:渐变窗口和信息提示窗口
在WinForm中偶尔会遇到某些特殊效果:比如某个窗口刚开始的时候是完全透明的,随着时间的变化,窗体逐渐不透明,直至完全不透明。这是本文要探讨的窗体效果之一:渐变窗体。还有一种窗体效果:有些软件在某个特定的时间会显示一个提示窗体,这个窗体不是直接显示的,而是慢慢从窗口的最下方向上移动,直至窗体完全显示就不再移动。当我们点击“确定”按钮之后,窗体由从屏幕上逐渐下移,直至完全从屏幕上完全不显示。这也是本文讨论的窗体效果之一:移动提示信息窗口。

效果:




sunny906 2009-01-07
  • 打赏
  • 举报
回复
如果要做成类似QQ新闻的浮动窗体,不是一两段代码就能搞定的
还有里面的新闻发布...
总之,比较复杂
sunny906 2009-01-07
  • 打赏
  • 举报
回复
类似QQ的提示新闻?很复杂的哦....

Rectangle r = Screen.GetWorkingArea(this);
this.Location = new Point(r.Right - this.Width, r.Bottom - this.Height);

这样就可以把窗体定位在Screen的右下角,窗体大小你自己设置吧
如果要设置窗体风格,设置一下FormBorderStyle

码YouMe 2009-01-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jclhy 的回复:]
先判断屏幕分辨率然后计算窗体的位置坐标,给窗体重新定位一下,不知道能不能实现,我没有实现过!
[/Quote]
实现过,要手动指定窗体的大小和位置
大头_衍 2009-01-07
  • 打赏
  • 举报
回复
哦,看错题了
是类似QQ的提示新闻啊。
看看
子夜1978 2009-01-07
  • 打赏
  • 举报
回复
先判断屏幕分辨率然后计算窗体的位置坐标,给窗体重新定位一下,不知道能不能实现,我没有实现过!
大头_衍 2009-01-07
  • 打赏
  • 举报
回复
在你的窗体的FormClosing()事件里加上

e.Cancel = true;
this.Visible = false;

在你的窗体上添加一个notifyIcon控件,这个控件就是控制显示在任务栏的.在这个控件的MouseDoubleClick()事件里加上
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
this.Visible = true;

如果要在你的程序最小化为任务栏后,可实现点右键退出程序的功能,就在notifyIcon控件的ContextMenuStrip里面指定一个鼠标右键的菜单
blestcc 2009-01-07
  • 打赏
  • 举报
回复
放一個窗體在右下角沒啥難度吧
xiaojin0710 2009-01-07
  • 打赏
  • 举报
回复
学习
c#编程集合资料,不错的应用设计,另附一些开发案例的下载地址,欢迎大家下载学习。 学习完本课程之后,我们需要达到以下目标: (1) 掌握基本的C#语法,熟练运用C#编写基本的程序逻辑。 (2) 能够创建C#控制台应用程序并处理输入输出。 (3) 掌握C#中的数组,并对数组进行相应的排序,查找操作。 (4) 熟练使用C#的字符串对象。 (5) 掌握Windows窗体应用程序的创建,能熟练使用常用的控件设计窗体界面。 (6) 掌握MDI应用程序的开发步骤。 (7) 了解ADO.NET的组成和工作原理。 (8) 通过ADO.NET访问对C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 课程说明… 第1章C#语法基础…… 核心技能部分 1.1 Net与C#概述. 111Net与C#的产生与应用 1.1.2 Visual studio 10 1.1.3创建C井应用程序 12 2C#语言基础 16 121变量与常量…16 12.2运算符和表达式 19 123C#语言中的注释 1.2.4使用 Console处理输入输出 21 1.3 C#语句结构 25 131条件语句 .25 132循环结构 32 任务实训部分.… 38 1:根据时间输出问候信息…… 38 2:三个数字比较大小 39 3:判断用户输入的字母 .40 输出裴波那契数列…… 翻着音 40 巩固练习 第2章嵌套循环和数组. 44 核心技能部分… .45 2.1 VS2008中的调试技巧 45 2.2 嵌套循环 47 2.3 数组. 50 231数组的定义 50 232数组的基木操作 50 233数组的排序 51 任务实训部分… 55 1打印等腰三角形 55 2:数组的操作 56 3:数组的排序。 错误!定义书签 4:数组的排序 错误!未定义书签 巩固练习 57 第3章方法与字符串 59 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 核心技能部分 使用方法 311方法的定义 312方法的调用 63 313参数传递 String类 321C#语言中常用的字符串处理方法... 68 322格式字符串 32.3 String Builder类. 3.3 类型转换…14 331隐式转换 74 332显式转换.…… 74 333常用类型转换方法… 7 任务实训部分 77 1:方法的使用 2:从邮件地址提取用广名 80 3:网址类型分析 81 4:字符串转换 82 巩固练习. 84 第4章指导学习:阶段总结 86 知识总结 翻着 .:::a:a:.:::a:B:a:::::..aa:::.:.aa:.:aa::: 86 41.1核心技能目标 86 412知识体系总结… 86 4.2 综合实训 任务1:制作月份日历 任务2:数组数据添加和排序. 错误!未定义书签 任务3:自杀游戏… 错误未定义书签。 第5章 Win form常用控件 核心技能部分 90 创建 Windows应用稈序 90 511 Windows应用程序概述. 90 512创建第一个 Windows应用程序 5.13项目结构分析 5,2 Windows窗体….97 5.,21窗体中的常用属性. 98 522窗体中的常用事件…… 99 Windows窗体中的常用控件 9 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 5.31 Winform控件公共属性… 532标签Labe) 01 533文本框( TextBox) ·,, 101 534按钮( Button)…102 535列表框 ListBox) 102 536组合框 Combobox) 103 53.7单选按钮( Radio Button)和复选框( CheckBox) 104 538图片框( Pictruebo×)..105 54用 Message Box类显示消息窗口 541消息框的显示……106 5.4.2消息框的返回值 107 综合案例:职员信息管理. 109 仟务实训部分…… 115 1:ATM信息查询 115 2:编写建表向导窗体…… 3:火车票预定程厅… 124 巩固练习… 第6章 MD窗体应用程序设计… 核心技能部分…… 130 6.1 SD窗体和MD窗体应用程序简介. 错误!未定义书签。 6.2 单文档应用程序的创建 30 62.1菜单栏( Menustrip) 130 622菜单栏的创建 130 623上下文菜单 ContextMenuStrip) 6.3 多文档应用程序 错误!未定义书签。 631创建多文档界面应用程序. 错误!未定义书签 632排列子窗口 错误未定义书签。 64图像列表( mageList控件… 134 65工具栏( ToolStrip控件) 135 66 状态( StatusStrip) 138 67选项卡( TabControl Timer控件 69 MD综合示例 错误!定义书签 任务实训部分……143 1创建记事本”应用程序 错误!未定义书签 2:增强”记事本”功能∴ 143 3:实现记事本字体样式设置… 144 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 4:变色窗体 巩固练习……… 1448 第7章 使用 ADO. NET完成简单的数据库操作…. ·,, 150 核心技能部分 151 ADO. NET概述 151 1 ADO.NET的简介 151 7.12 ADO.NET的优点 152 713 ADO.NET的结 52 NET Framework数据提供程序 1154 7.21 Connection对象…………………………155 72.2使用 Connection对象链接到数据库 7.3异常操作 57 731try和 catch块 158 732数据库链接示例 Command对象 ∴161 741 Command对象简介 161 742 Command综合示例 任务实训部分 1:实现进销存系统用户注册 168 2:实现进销存系统用户登录.… 171 3:实现用户的删除功能…… .:.::::::.:...:::.:.:a.::::.:::::::::.:::.:::::::.:::.: 172 巩固练习 174 第8章使用 Data Reader完成查询功能 177 核心技能部分… 178 8.1 DataReader对象 811 Data reader对象简介 178 812 Data Reader对象常用的属性和方法 813 Data reader对象的使用 179 8.2 控件 81 821 Listview控件介绍…… 81 822 Listview控件的使用 数据库操作综合示例 187 任务实训部分…… L94 1:使用 Listview控件查询部门员工信息… 94 2:部门员工信息删除和修改 3:实现员工信息模糊查询... 203 巩固练习 204 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 第9章 使用 Dataset实现断开式数据访问 206 核心技能部分.… 207 91数据集( Dataset) ·,, 207 911数据集( DataSet)简介…207 912数据集的结构 08 91.3数据集的工作原理 914创建 Data set对象…… 211 9,2 DataAdapter对象1211 92.1 DataAdapter对象简介… 211 922 DataAdapter对象的使用.. 213 3 Datagridview控什的使用 219 931 Data gridview控件简介 219 932 Datagridview控件的使用. 221 9 综合示例 226 仟务实训部分.… 229 1:航班查询窗体设计 29 2:显示所有航班信息 232 3:根据两地査询航班 .233 4:航班详细信息查询 234 巩固练习 235 第10章课程总复习… …)误!未定义书签。 101知识总结 错误!未定义书签 1011核心技能目标 错误!定义书签。 101.2知识体系总结 错误!未定义书签。 02任务实训 错误!未定义书签。 第11章项目案例:酒店管理系统…… 错误!未定义书签 111训练技能点…… 错误未定义书签。 112需求说明 错误!未定义书签 113设计与思路分析 错误未定义书签 113.1系统功能分析 错误!未定义书签。 1132数据库设计 错误!定义书签。 114实现步骤…… 错误!未定义书签 115时间分配 错误!定义书签 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 第1章C#语法基础 学习内容 c#的发展史 C#的基本语法 C#的流程控制语句 俨能力目标 掌握仗用S2008开发C#NET控制台应用程序 掌握C#语言的基本语法 掌握c#的程序流程控制语句 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 本章简介 从本门课开始我们将要开始学习¢#语言和NET平台。本章将使学员对NET和¢#有一个 初步的认识,了解C#的开发环境,编写第一个C#控制台应用程序。C#语言的基本语法和我 们之前的学习的C语言、Java语言一样同属于C语言语法系列,有很多相似的地方,同时也 有一些不同的地方,因此我们在学习的时候需要注意它们之间的区别,不要混淆。在本章中, 我们需要掌握c#中的变量、数据类型、运算符、条件、分攴、循环等基C排基础语法,这些 语言层血的知识是我们编写所有程序的基础,因此必须牢固掌握。 核心技能部分 1.1Net与C#概述 1.1.1Net与C#的产生与应用 1. Anders Hejlsberg-C#之父 Anders hejlsberg原木是曾经大名鼎鼎的 Borland公司的一员,他曾经编写了 Pasca编译 器,又把 Turbo pascal变为面向对象的 Object Pascal,并以此为基础开发了轰动全球、盛极 时的廾发工具 Delphi,为 Boland公司赚了个盆钵满盈。 随着 Delphi日渐成熟, Anders的兴趣转向了Java领域,他在」ava开发领域扩展方面有 很多自己独特的想法,并想在此领域大展宏图,但 Borland的经营者们还要靠他这棵“摇 钱树”继续在 Delphi上人肆捞金,所以他有一段郁郁不得志。 比尔盖茨三顾茅庐,力邀 Anders hejlsberg,并许以重金和宽松的环境,终于把 Anders 挖到了微软的旗下,其后由其主持设计,在2000年6月发布了新的开发语言C#(读C Sharp),此后微软在2002年推出了 Microsoft net开发平台。 3 1.1.1 Anders He jlsberg C#项目开发全程实录视频教程(全10个案例):http://cnrdn.com/gcxc 2.C#语及其特点 与Java一样,C#语言是一个完全的面向对象语言,它继承了C++、Java和 Delphi的优 点,又借鉴了VB的简单易学。体现了当今最新的程序设计技术的功能和精华。C#继承了C 语言的语法风柊,同时又继承了C+的面冋对象特性。不同的是,c#的对象模犁己经面向 Internet进行了重新设计,使用的是NET框架的类库;C#不再提供对指针类型的支持,使得 程序不能随便访问内存地址空间,从而更加健壮;C#不再支持多重继承,避免了以往类层次 结构中由于多重继承带来的可怕后果。NET框架为C#提供了一个强大的、易用的、逻辑结 构一致的程序设计环境。同时,公共语言运行时( Common Language runtime)为C#程序语 言提供了一个托管的运行时环境,使程序比以往更加稳定、安全。其特点有: 语言简洁。 保留了C++的强大功能 快速应用廾发功能 语言的自由性 强大的Web服务器控件。 支持跨平台 与XML相融合 如果之前没有其他话言的编程经验,使用c#语言编程将是一个良好的开端。如果有其 他语言的编程基础,程序员将发现¢#语言除了像ⅤB一样简单易学外,还是一种拥有强大 功能的语言。而且 ASP NET平台也是完仝通过c#语言开发的,这决定了C语言得天独厚的 优势。但在任何情况下,C#语言都不可能孤立地使用,它必须同 Microsoft. net framework 起使用,因为使用C#语言编写的所有代码总是在 Microsoft .net framework中运行。 1.1.2 Visual studio 微软针对Net推岀了功能强大的集成丌发环境来支持开发人员的№et应用程序丌发,这 就是 Visual studio,它是目前最主要的Net平台开发环境。VS集成了 NET Framework和Net 开发插件,可以用来进行几乎所有Net应用程序的设计和开发L作,如 Windows应用程序 Web应用稈序、 Windows服务、智能设备应用程序等。 随着 NET Framework的不断升级, Visua| Studio也在不断升级,其发展历程可以用表1-1-1 来说明 表1-1-1Vs发展历程 年代 2002 2003 2005 2008 2010 廾发工具版木Vs2002 VS2003 VS2005 VS2008 VS2010 Net 1.0 1.1 2.0 3.5 4.0 Framework 由于本学期的知识点主要集中在C#的基本语法、 Win forms开发和 ADO. NET,这些知识
因pdf的容量过大分4个压缩包打包,还有一个源码另外下载。 《.NET深入体验与实战精要》作者身为从事.NET一线开发的资深开发专家,常年耕耘技术博客,惠及无数.NET新知。此次将长期的思考、感悟,多年的系统开发、设计和团队管理经验,以及深入分析众多项目实战的宝贵成果和盘托出,力求将编程思想与具体实践融为一体,提炼出适合于广大读者快速理解和彻底掌握.NET软件开发的最佳学习路线。本书既考虑到实际开发中经常遇到的困惑和难题,也分析了解决问题的思路和方法,更总结出项目开发中不可或缺的技术点及思想。读者可以在欣赏一个个有趣例子的过程中,不知不觉具备开发真正商业项目的能力。 本书集实用性、思想性、趣味性于一体,内容共分为技术基础总结、系统架构设计思想及项目实战解析三部分,随书所附光盘收录大量实例代码及独家披露的商业系统,供读者参考学习。 本书适合于.NET初、中级开发人员参考学习,特别有助于.NET从业者进入实战层次,也可作为相关培训机构的参考教材,还可以作为高等院校相关专业师生的参考书。 目录 第1篇 技术基础总结 第1章 .NET,你真的知道了吗 3 1.1 搞清自己是干什么的 4 1.2 .NET的几个特性 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 几个常用的数学函数 27 1.4 .NET的面向对象之门 27 1.4.1 继承——“子承父业” 28 1.4.2 委托——“任务书” 35 1.4.3 事件——“年终分红” 42 1.4.4 反射——“解剖” 49 1.5 .NET开发几把小刀 52 1.5.1 using之多变身 52 1.5.2 @符号的妙用 54 1.5.3 预处理指令,有你更轻松 55 1.6 Visual Studio.NET 2008 实战 58 1.6.1 如何创建ASP.NET项目 58 1.6.2 如何创建Windows项目 61 1.6.3 Visual Studio.NET 2008 操作与使用技巧 61 1.6.4 常见开发调试技巧 66 1.6.5 错误异常处理方法 70 本章常见技术面试题 76 常见面试技巧之面试前的准备 76 本章小结 77 第2章 细节决定成败 79 2.1 Equals()和运算符==的区别 80 2.2 const和readonly的区别 82 2.3 private、protected、public和internal的区别 86 2.4 sealed、new、virtual、abstract与override 87 2.5 abstract class与interface 91 2.6 公共变量与属性的区别 93 2.7 参数修饰符params、out和ref的区别 96 2.8 值类型和引用类型的区别 100 2.9 结构与类的区别 103 2.10 Dispose()和Close()、Finalize()的 区别 106 2.11 string和StringBuilder有什么区别 106 2.12 Debug版本和Release版本的 区别 108 本章常见技术面试题 111 常见面试技巧之细节决定成败 111 本章小结 112 第3章 ASP.NET开发大杂烩 113 3.1 页面生命周期 114 3.1.1 独立页面生命周期事件顺序 114 3.1.2 具有Master页的生命周期事件顺序 116 3.1.3 ASP.NET生命周期详解 118 3.2 页面状态管理 120 3.2.1 Cookie 121 3.2.2 HtmlInputHidden隐藏域 123 3.2.3 ViewState 123 3.2.4 查询字符串Request 124 3.2.5 Aplication对象 125 3.2.6 Session对象 125 3.2.7 示例项目:在线用户列表统计 128 3.3 服务器和客户端数据交互 131 3.3.1 页面数据绑定全攻略 131 3.3.2 Bind和Eval的区别 140 3.4 ASP.NET编程中的技巧 142 3.4.1 页面之间传值的7种方法 142 3.4.2 get与post方法的区别 146 3.4.3 ASP.NET服务器控件和 HTML控件的区别 146 3.4.4 Server.Transfer和Response.Redirect的区别 148 3.4.5 刷新页面的方法汇总 149 3.4.6 页面事件控制 150 3.4.7 在URL中传递中文的解决方案 152 3.4.8 增强用户体验的一些技巧 153 3.4.9 XHTML与HTML的区别 156 3.5 打造自己的页面基类PageBase 161 本章常见技术面试题 164 常见面试技巧之如何好自我介绍 164 本章小结 165 第4章 Windows窗体编程你也行 167 4.1 创建简单的WinForm项目 168 4.2 创建MDI窗体应用 170 4.3 获取应用程序路径信息 174 4.4 回车跳转控件焦点 175 4.5 窗体间传递复杂数据 176 4.5.1 构造传递 176 4.5.2 公有字段传递 177 4.5.3 委托与事件传递 179 4.6 实现个性化窗体界面 181 4.7 无标题窗体拖动的两种方法 183 4.8 让程序只启动一次——单实例运行 184 4.9 实现系统托盘和热键呼出 185 4.10 进程与多线程的区别 190 4.11 创建多线程应用程序 191 4.12 WinForm开发常见问题 194 4.12.1 如何设置运行时窗体的起始位置 194 4.12.2 如何使一个窗体在屏幕的最顶端 194 4.12.3 实现窗体渐显效果 194 4.12.4 设置窗口背景为渐变色 195 4.12.5 模态窗口和非模态窗口 196 4.12.6 屏蔽窗口右上角的关闭 操作 196 4.12.7 调用执行外部的程序 197 本章常见技术面试题 197 常见面试技巧之经典问题巧回答 198 本章小结 198 第5章 数据库开发 199 5.1 ADO.NET与抽水的故事 200 5.1.1 ADO.NET的定义 200 5.1.2 趣味理解ADO.NET对象模型 202 5.1.3 进水笼头——建立Connection 204 5.1.4 抽水机——Command 206 5.1.5 输水管——DataAdapter 209 5.1.6 输水管——DataReader 210 5.1.7 随用随关,释放资源 212 5.1.8 水库管理——DataSet 212 5.1.9 水池子——DataTable 214 5.2 数据库操作类的封装详解 217 5.2.1 执行命令方法的封装 217 5.2.2 查询数据方法的封装 220 5.2.3 数据统计方法的封装 221 5.2.4 实现SqlParameter方式 222 5.2.5 实现多数据库的访问 223 5.3 常用经典SQL语句 224 5.4 事务处理 226 5.4.1 SQL和存储过程级别的事务 227 5.4.2 ADO.NET级别的事务 229 5.4.3 ASP.NET页面级别的事务 230 5.4.4 企业级服务COM+事务 231 5.4.5 System.Transactions 事务处理 236 5.5 Oracle开发常见问题 240 5.5.1 Oracle和SQL Server的常用函数对比 240 5.5.2 Oracle和SQL Server的语句区别 244 5.5.3 ASP.NET连接Oracle失败的解决方法 245 本章常见技术面试题 246 常见面试技巧之经典问题巧回答 246 本章小结 247 第6章 关于XML 249 6.1 XML概述 250 6.1.1 XML和HTML有什么区别 250 6.1.2 XML的优势 250 6.2 文档结构与基本语法 251 6.3 XML操作 253 6.3.1 XmlDocument创建XML文档 253 6.3.2 XmlTextWriter创建XML文档 254 6.3.3 XmlDocument读取XML文档 256 6.3.4 XmlTextReader读取XML文档 257 6.3.5 在HTML中显示XML中的数据 258 6.3.6 JavaScript获取XML内容 259 6.3.7 项目案例:通用自定义XML配置类 263 6.4 ADO.NET与XML 266 6.4.1 读XML文档到DataSet 266 6.4.2 DataSet转为XML文档 267 6.5 项目案例1:实现网站的RSS应用 267 6.6 项目案例2:在线实现RSS阅读器 270 本章常见技术面试题 275 常见面试技巧之经典问题巧回答 275 本章小结 276 第7章 Web Service开发详解 277 7.1 Web Service基本概念 278 7.2 Web Service的应用场景 278 7.3 创建简单的Web Service项目应用 280 7.4 Web Service属性介绍 282 7.5 ASP.NET如何调用Web Service 286 7.6 JavaScript如何调用Web Service 288 7.6.1 通过webbehavior.htc调用Web Service 288 7.6.2 通过Microsoft.XMLDOM调用Web Service 291 7.6.3 XMLHTTP POST调用Web Service 293 7.6.4 SOAP调用Web Service 293 7.7 WinForm如何调用Web Service 295 7.7.1 .NET的WinForm调用Web Service 295 7.7.2 手动发送HTTP请求调用Web Service 295 7.8 实现异步调用Web Service 297 7.9 如何保证Web Service的安全 299 7.9.1 通过SoapHeader来增强 Web Service的安全性 299 7.9.2 采用SSL实现加密传输 302 7.9.3 访问IP限制 315 7.10 Web Service开发中需要注意的问题 316 本章常见技术面试题 320 常见面试技巧之经典问题巧回答 320 本章小结 321 第8章 用户体验的杀手锏—— Ajax 323 8.1 Ajax概述 324 8.1.1 什么是Ajax 324 8.1.2 Ajax技术的核心 325 8.1.3 Ajax的工作原理 326 8.1.4 Ajax的优点 326 8.1.5 Ajax的问题 327 8.1.6 Ajax适用场景 327 8.1.7 Ajax不适用场景 329 8.1.8 XMLHttpRequest开发实例 329 8.2 微软VS.NET的Ajax开发 333 8.2.1 安装ASP.NET 2.0 Ajax Extensions 333 8.2.2 创建ASP.NET Ajax应用程序 333 8.2.3 ScriptManager控件使用技巧 335 8.2.4 UpdaetPanel控件使用技巧 336 8.2.5 AsyncPostBackTrigger实现 外部控件引发局部刷新 338 8.2.6 Ajax错误处理 341 8.2.7 告诉用户你正在什么—— UpdateProgress控件 342 8.2.8 ASP.NET AjaxControToolKit简介 345 8.3 使用第三方组件 Ajax.dll 开发 347 8.4 使用第三方组件AjaxPro的开发 351 8.5 使用第三方组件MagicAjax的开发 351 8.6 Ajax开发原则 352 本章常见技术面试题 353 常见面试技巧之经典问题巧回答 353 本章小结 354 第9章 系统与文件操作 355 9.1 获取系统信息 356 9.1.1 用SystemInformation类获取系统信息 356 9.1.2 用Environment 类获取系统信息 357 9.1.3 通过WMI获取系统信息 358 9.1.4 用RegistryKey 类读取系统信息 361 9.1.5 用API函数获取系统信息 363 9.1.6 获取系统服务信息 365 9.2 文件操作 368 9.2.1 StreamWriter类实现写文件 368 9.2.2 通过File类创建文件 369 9.2.3 通过FileStream类创建文件 370 9.2.4 通过FileInfo类创建文件 370 9.2.5 追加文本 370 9.2.6 读取文本文件 371 9.2.7 读写二进制文件 372 9.2.8 文件复制、移动、删除 374 9.3 文件夹目录操作 375 9.4 读写INI文件 376 9.5 读写注册表 379 本章常见技术面试题 381 常见面试技巧之经典问题巧回答 381 本章小结 382 第10章 网络应用开发 383 10.1 Socket基本编程 384 10.1.1 Socket基本知识 384 10.1.2 Socket服务端开发步骤 386 10.1.3 Socket客户端开发步骤 388 10.2 异步Socket通信——实现MSN机器人 390 10.2.1 机器人服务端 390 10.2.2 客户端实现步骤 395 10.3 基于TCP协议的客户端和服务端 398 10.3.1 TcpListener 实现网络服务端 398 10.3.2 TcpClient实现网络客户端 399 本章常见技术面试题 401 常见面试技巧之经典问题巧回答 401 本章小结 402 第11章 Windows Service开发 403 11.1 什么是Windows服务 404 11.2 创建Windows服务 404 11.3 Windows服务开发常见问题 408 11.4 安装/卸载Windows服务 409 11.4.1 安装Windows服务 409 11.4.2 卸载Windows服务 410 11.4.3 Windows服务应用程序体系结构 411 11.5 调试Windows服务 414 11.5.1 日志调试法 414 11.5.2 附加进程断点调试法 414 本章常见技术面试题 416 职场智慧之初入江湖 416 本章小结 418 第12章 新技术初探 419 12.1 WPF 421 12.1.1 WPF简介 421 12.1.2 WPF何以令人佩服 422 12.1.3 XAML概述 422 12.1.4 WPF开发环境配置 423 12.1.5 项目示例:开发一个简单的WPF应用程序 424 12.2 WCF 427 12.2.1 SOA是什么 427 12.2.2 WCF是什么 428 12.2.3 WCF的优势是什么 428 12.2.4 WCF开发环境 431 12.2.5 项目示例:订票服务WCF开发步骤 431 12.3 LINQ 440 12.3.1 LINQ的架构 441 12.3.2 传统的查询 441 12.3.3 LINQ查询实例 444 12.3.4 LINQ查询语法 448 本章常见技术面试题 449 职场智慧之学习方法 449 本章小结 450 第2篇 系统架构设计思想 第13章 面向对象思想 453 13.1 为什么要面向对象 454 13.2 什么是面向对象 456 13.3 面向对象的特点 458 13.3.1 封装 459 13.3.2 继承 459 13.3.3 多态 460 13.4 面向对象设计和开发实例 466 13.4.1 传统过程化设计实现播放器功能 466 13.4.2 基于面向对象设计实现播放器功能 467 13.4.3 面向对象封装、继承、多态的应用 468 13.4.4 设计模式、条件外置及反射技术的应用 471 13.5 面向对象分析(OOA)的方法 475 13.6 面向对象设计的原则 478 13.6.1 优先使用(对象)组合,而非(类)继承 478 13.6.2 针对接口编程,而非(接口的)实现 481 13.6.3 开放-封闭法则(OCP) 482 13.6.4 Liskov替换法则(LSP) 485 13.6.5 单一职责原则(SRP) 486 13.6.6 依赖倒置原则(DIP) 486 13.6.7 接口分离原则(ISP) 489 13.6.8 面向对象设计时需要注意的 问题 490 本章常见技术面试题 491 本章小结 491 第14章 三层架构项目开发 493 14.1 什么是三层架构 494 14.1.1 常用的三层架构设计 494 14.1.2 趣味理解:三层架构与养猪 496 14.2 为什么要用三层架构 497 14.3 三层架构项目开发示例 500 14.3.1 数据库设计 500 14.3.2 创建整体解决方案 501 14.3.3 业务实体Model的实现 502 14.3.4 数据访问层的实现 504 14.3.5 业务逻辑层的实现 509 14.3.6 表示层的实现 510 14.4 实现基于工厂模式的三层架构 512 14.4.1 扩展新增数据访问层 512 14.4.2 IDAL抽象接口的实现 513 14.4.3 创建DAL对象的封装 517 14.4.4 实现抽象工厂模式 519 14.4.5 工厂模式的三层架构图 521 本章常见技术面试题 522 职场智慧之程序员的职业规划 523 本章小结 524 第15章 大型网站的性能优化与安全 525 15.1 高效C#编码优化 526 15.2 页面(HTML)优化的方法 534 15.3 ASP.NET开发性能优化 540 15.3.1 如没必要,尽量使用静态HTML页面 540 15.3.2 避免不必要的回送操作 541 15.3.3 尽量在客户端进行用户输入验证 541 15.3.4 关闭不必要的Session状态 542 15.3.5 优先使用HTML控件,而非服务器控件 542 15.3.6 不必要时关闭ViewState 542 15.3.7 禁用调试模式 543 15.4 系统缓存管理 543 15.4.1 缓存的分类 544 15.4.2 传统缓存方式 545 15.4.3 页面输出缓存 545 15.4.4 页面输出缓存API 548 15.4.5 页面局部缓存 549 15.4.6 应用程序数据缓存 554 15.4.7 文件缓存依赖 555 15.4.8 数据库缓存依赖 557 15.4.9 Memcached——分布式缓存系统 560 15.4.10 Cacheman——.NET架构 下的分布式缓存项目 561 15.5 数据库访问性能优化 562 15.5.1 选择合适的.NET数据供应器 563 15.5.2 及时地关闭数据库连接 563 15.5.3 跟踪监视SQL Server当前链接池状态 564 15.5.4 善用数据库的存储过程 567 15.5.5 SqlDataRead和Dataset的选择 567 15.5.6 ExecuteNonQuery和 ExecuteScalar的选择 568 15.5.7 数据的绑定DataBinder 568 15.5.8 使用DataReader的注意事项 568 15.5.9 Command对象的使用 569 15.5.10 反复地执行SQL语句用 Prepare() 569 15.5.11 分页的数据访问 570 15.5.12 SQL命令的优化 570 15.5.13 tempdb的使用技巧 572 15.5.14 使用视图代替跨库操作 572 15.5.15 尽量避免大事务操作 572 15.5.16 尽量避免使用游标 573 15.5.17 为你的表建立适当的索引 573 15.6 网站安全防护 573 15.6.1 什么是SQL注入式攻击 573 15.6.2 如何防范SQL注入式攻击 574 15.6.3 实现页面验证码 575 15.6.4 实现文件防盗链 579 15.6.5 采用HTTPS进行访问 584 15.7 IIS优化 584 15.7.1 如何监测IIS服务器并发数 584 15.7.2 采用Gzip压缩页面优化 585 15.7.3 网站应用程序池配置 588 15.8 网站架构优化策略 593 本章常见技术面试题 596 职场智慧之独善其身 596 本章小结 599 第16章 系统设计的原则和技巧 601 16.1 系统设计的一些原则 602 16.1.1 最适合的才是最好的 602 16.1.2 以不变应万变 603 16.1.3 可扩展性 603 16.1.4 可复用性 604 16.2 系统设计的常用方法 604 16.3 敏捷软件开发12条原则 608 16.4 系统架构师成长之路 611 本章常见技术面试题 615 职场智慧之职场政治 615 本章小结 616 第3篇 项目实战解析 第17章 权限角色管理项目解析 619 17.1 权限角色管理概述 620 17.2 项目概述 623 17.3 数据库设计 624 17.3.1 数据库实体关系模型 624 17.3.2 表结构设计 625 17.4 数据访问层 627 17.4.1 类设计 627 17.4.2 代码实现 629 17.5 业务逻辑层 629 17.5.1 类设计 630 17.5.2 扩展.NET Framework用户处理机制 632 17.6 接口调用与Web管理实现 638 17.6.1 Web.config配置 638 17.6.2 用户身份和权限验证 638 17.6.3 用户验证接口方式:权限验证用户控件 640 17.6.4 用户验证接口方式:页面基类 642 17.6.5 用户和角色权限的后台管理 644 职场智慧之如何提升自己在公司的价值 652 本章小结 653 第18章 单点登录系统的设计与实现 655 18.1 项目概述 656 18.1.1 名词定义 656 18.1.2 项目需求描述 656 18.2 业务流程设计 657 18.2.1 用户认证流程 657 18.2.2 安全验证流程 658 18.3 功能与接口设计 659 18.3.1 接口交互设计 659 18.3.2 应用系统接口 660 18.3.3 认证服务器功能和接口 660 18.4 数据库设计 660 18.4.1 数据库实体关系模型 661 18.4.2 表结构设计 661 18.5 实现认证服务器 662 18.5.1 SSO解决方案 663 18.5.2 系统管理后台 664 18.5.3 用户通行证管理中心 665 18.5.4 认证服务器接口开发 673 18.6 应用系统接入接口开发 675 18.6.1 用户身份认证 675 18.6.2 接收状态同步 676 18.6.3 用户注销 678 18.6.4 更新认证服务器状态 679 18.7 接口封装及调用 679职场智慧之晋升之道 682 本章小结 684 第19章 常用.NET开发工具介绍 685 19.1 源码版本管理: Visual SourceSafe 2005 686 19.1.1 安装和配置VSS 2005服务端 686 19.1.2 安装和配置VSS客户端 691 19.1.3 将项目加入VSS版本控制 692 19.1.4 客户端连接VSS 服务器获取源代码 694 19.1.5 设置VSS支持通过 Internet访问 696 19.1.6 版本控制的几个概念 701 19.1.7 VSS项目权限管理 703 19.1.8 VSS数据备份 705 19.1.9 VSS 2005的使用规范 707 19.2 单元测试工具:NUnit 708 19.2.1 NUnit简介 708 19.2.2 手把手教你在.NET中应用NUnit 708 19.3 日志工具——Log4net 714 19.3.1 Log4net简介 714 19.3.2 使用步骤 717 19.3.3 单独配置文件的使用 719 19.4 代码规范检查工具: Microsoft Source Analysis for C# 721 19.5 生成文档注释工具:GhostDoc 723 19.6 反编译工具:Reflector for .NET 732 19.7 动软.NET代码生成器 733 19.8 帮助文档生成工具:Sandcastle 737 19.8.1 Sandcastle介绍 737 19.8.2 生成方式 738 19.8.3 具体生成步骤 740 本章小结 748 附录A 软件编码规范 A.1 概述 750 A.1.1 规范基本原则 750 A.1.2 术语定义 750 A.1.3 文件命名组织 750 A.2 代码外观 751 A.2.1 列宽 751 A.2.2 换行 751 A.2.3 缩进 751 A.2.4 空行 751 A.2.5 空格 752 A.2.6 括号——() 753 A.2.7 花括号——{} 753 A.3 程序注释 754 A.3.1 注释概述 754 A.3.2 文档型注释 755 A.3.3 类注释 755 A.3.4 单行注释 755 A.3.5 注释标签 756 A.4 声明 758 A.4.1 每行声明数 758 A.4.2 初始化 758 A.4.3 位置 758 A.4.4 类和接口的声明 759 A.4.5 字段的声明 759 A.5 命名规范 759 A.5.1 命名概述 759 A.5.2 大写规则 760 A.5.3 缩写 761 A.5.4 命名空间 761 A.5.5 类 762 A.5.6 接口 762 A.5.7 属性(Attribute) 763 A.5.8 枚举(Enum) 763 A.5.9 参数 763 A.5.10 方法 764 A.5.11 属性(property) 764 A.5.12 事件 765 A.5.13 常量(const) 766 A.5.14 字段 767 A.5.15 静态字段 768 A.5.16 集合 768 A.5.17 措词 768 A.6 语句 769 A.6.1 每行一个语句 769 A.6.2 复合语句 769 A.6.3 return语句 769 A.6.4 if、if-else、if else-if语句 770 A.6.5 for、foreach 语句 770 A.6.6 while语句 771 A.6.7 do-while语句 771 A.6.8 switch-case语句 771 A.6.9 try-catch语句 772 A.6.10 using块语句 772 A.6.11 goto语句 772 A.7 其他 773 A.7.1 表达式 773 A.7.2 类型转换 773 A.8 匈牙利命名法 773 A.9 控件命名规则 774 A.9.1 一般命名方法 774 A.9.2 主要控件名简写对照表 774 ……
因pdf的容量过大分4个压缩包打包,还有一个源码另外下载。 《.NET深入体验与实战精要》作者身为从事.NET一线开发的资深开发专家,常年耕耘技术博客,惠及无数.NET新知。此次将长期的思考、感悟,多年的系统开发、设计和团队管理经验,以及深入分析众多项目实战的宝贵成果和盘托出,力求将编程思想与具体实践融为一体,提炼出适合于广大读者快速理解和彻底掌握.NET软件开发的最佳学习路线。本书既考虑到实际开发中经常遇到的困惑和难题,也分析了解决问题的思路和方法,更总结出项目开发中不可或缺的技术点及思想。读者可以在欣赏一个个有趣例子的过程中,不知不觉具备开发真正商业项目的能力。 本书集实用性、思想性、趣味性于一体,内容共分为技术基础总结、系统架构设计思想及项目实战解析三部分,随书所附光盘收录大量实例代码及独家披露的商业系统,供读者参考学习。 本书适合于.NET初、中级开发人员参考学习,特别有助于.NET从业者进入实战层次,也可作为相关培训机构的参考教材,还可以作为高等院校相关专业师生的参考书。 目录 第1篇 技术基础总结 第1章 .NET,你真的知道了吗 3 1.1 搞清自己是干什么的 4 1.2 .NET的几个特性 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 几个常用的数学函数 27 1.4 .NET的面向对象之门 27 1.4.1 继承——“子承父业” 28 1.4.2 委托——“任务书” 35 1.4.3 事件——“年终分红” 42 1.4.4 反射——“解剖” 49 1.5 .NET开发几把小刀 52 1.5.1 using之多变身 52 1.5.2 @符号的妙用 54 1.5.3 预处理指令,有你更轻松 55 1.6 Visual Studio.NET 2008 实战 58 1.6.1 如何创建ASP.NET项目 58 1.6.2 如何创建Windows项目 61 1.6.3 Visual Studio.NET 2008 操作与使用技巧 61 1.6.4 常见开发调试技巧 66 1.6.5 错误异常处理方法 70 本章常见技术面试题 76 常见面试技巧之面试前的准备 76 本章小结 77 第2章 细节决定成败 79 2.1 Equals()和运算符==的区别 80 2.2 const和readonly的区别 82 2.3 private、protected、public和internal的区别 86 2.4 sealed、new、virtual、abstract与override 87 2.5 abstract class与interface 91 2.6 公共变量与属性的区别 93 2.7 参数修饰符params、out和ref的区别 96 2.8 值类型和引用类型的区别 100 2.9 结构与类的区别 103 2.10 Dispose()和Close()、Finalize()的 区别 106 2.11 string和StringBuilder有什么区别 106 2.12 Debug版本和Release版本的 区别 108 本章常见技术面试题 111 常见面试技巧之细节决定成败 111 本章小结 112 第3章 ASP.NET开发大杂烩 113 3.1 页面生命周期 114 3.1.1 独立页面生命周期事件顺序 114 3.1.2 具有Master页的生命周期事件顺序 116 3.1.3 ASP.NET生命周期详解 118 3.2 页面状态管理 120 3.2.1 Cookie 121 3.2.2 HtmlInputHidden隐藏域 123 3.2.3 ViewState 123 3.2.4 查询字符串Request 124 3.2.5 Aplication对象 125 3.2.6 Session对象 125 3.2.7 示例项目:在线用户列表统计 128 3.3 服务器和客户端数据交互 131 3.3.1 页面数据绑定全攻略 131 3.3.2 Bind和Eval的区别 140 3.4 ASP.NET编程中的技巧 142 3.4.1 页面之间传值的7种方法 142 3.4.2 get与post方法的区别 146 3.4.3 ASP.NET服务器控件和 HTML控件的区别 146 3.4.4 Server.Transfer和Response.Redirect的区别 148 3.4.5 刷新页面的方法汇总 149 3.4.6 页面事件控制 150 3.4.7 在URL中传递中文的解决方案 152 3.4.8 增强用户体验的一些技巧 153 3.4.9 XHTML与HTML的区别 156 3.5 打造自己的页面基类PageBase 161 本章常见技术面试题 164 常见面试技巧之如何好自我介绍 164 本章小结 165 第4章 Windows窗体编程你也行 167 4.1 创建简单的WinForm项目 168 4.2 创建MDI窗体应用 170 4.3 获取应用程序路径信息 174 4.4 回车跳转控件焦点 175 4.5 窗体间传递复杂数据 176 4.5.1 构造传递 176 4.5.2 公有字段传递 177 4.5.3 委托与事件传递 179 4.6 实现个性化窗体界面 181 4.7 无标题窗体拖动的两种方法 183 4.8 让程序只启动一次——单实例运行 184 4.9 实现系统托盘和热键呼出 185 4.10 进程与多线程的区别 190 4.11 创建多线程应用程序 191 4.12 WinForm开发常见问题 194 4.12.1 如何设置运行时窗体的起始位置 194 4.12.2 如何使一个窗体在屏幕的最顶端 194 4.12.3 实现窗体渐显效果 194 4.12.4 设置窗口背景为渐变色 195 4.12.5 模态窗口和非模态窗口 196 4.12.6 屏蔽窗口右上角的关闭 操作 196 4.12.7 调用执行外部的程序 197 本章常见技术面试题 197 常见面试技巧之经典问题巧回答 198 本章小结 198 第5章 数据库开发 199 5.1 ADO.NET与抽水的故事 200 5.1.1 ADO.NET的定义 200 5.1.2 趣味理解ADO.NET对象模型 202 5.1.3 进水笼头——建立Connection 204 5.1.4 抽水机——Command 206 5.1.5 输水管——DataAdapter 209 5.1.6 输水管——DataReader 210 5.1.7 随用随关,释放资源 212 5.1.8 水库管理——DataSet 212 5.1.9 水池子——DataTable 214 5.2 数据库操作类的封装详解 217 5.2.1 执行命令方法的封装 217 5.2.2 查询数据方法的封装 220 5.2.3 数据统计方法的封装 221 5.2.4 实现SqlParameter方式 222 5.2.5 实现多数据库的访问 223 5.3 常用经典SQL语句 224 5.4 事务处理 226 5.4.1 SQL和存储过程级别的事务 227 5.4.2 ADO.NET级别的事务 229 5.4.3 ASP.NET页面级别的事务 230 5.4.4 企业级服务COM+事务 231 5.4.5 System.Transactions 事务处理 236 5.5 Oracle开发常见问题 240 5.5.1 Oracle和SQL Server的常用函数对比 240 5.5.2 Oracle和SQL Server的语句区别 244 5.5.3 ASP.NET连接Oracle失败的解决方法 245 本章常见技术面试题 246 常见面试技巧之经典问题巧回答 246 本章小结 247 第6章 关于XML 249 6.1 XML概述 250 6.1.1 XML和HTML有什么区别 250 6.1.2 XML的优势 250 6.2 文档结构与基本语法 251 6.3 XML操作 253 6.3.1 XmlDocument创建XML文档 253 6.3.2 XmlTextWriter创建XML文档 254 6.3.3 XmlDocument读取XML文档 256 6.3.4 XmlTextReader读取XML文档 257 6.3.5 在HTML中显示XML中的数据 258 6.3.6 JavaScript获取XML内容 259 6.3.7 项目案例:通用自定义XML配置类 263 6.4 ADO.NET与XML 266 6.4.1 读XML文档到DataSet 266 6.4.2 DataSet转为XML文档 267 6.5 项目案例1:实现网站的RSS应用 267 6.6 项目案例2:在线实现RSS阅读器 270 本章常见技术面试题 275 常见面试技巧之经典问题巧回答 275 本章小结 276 第7章 Web Service开发详解 277 7.1 Web Service基本概念 278 7.2 Web Service的应用场景 278 7.3 创建简单的Web Service项目应用 280 7.4 Web Service属性介绍 282 7.5 ASP.NET如何调用Web Service 286 7.6 JavaScript如何调用Web Service 288 7.6.1 通过webbehavior.htc调用Web Service 288 7.6.2 通过Microsoft.XMLDOM调用Web Service 291 7.6.3 XMLHTTP POST调用Web Service 293 7.6.4 SOAP调用Web Service 293 7.7 WinForm如何调用Web Service 295 7.7.1 .NET的WinForm调用Web Service 295 7.7.2 手动发送HTTP请求调用Web Service 295 7.8 实现异步调用Web Service 297 7.9 如何保证Web Service的安全 299 7.9.1 通过SoapHeader来增强 Web Service的安全性 299 7.9.2 采用SSL实现加密传输 302 7.9.3 访问IP限制 315 7.10 Web Service开发中需要注意的问题 316 本章常见技术面试题 320 常见面试技巧之经典问题巧回答 320 本章小结 321 第8章 用户体验的杀手锏—— Ajax 323 8.1 Ajax概述 324 8.1.1 什么是Ajax 324 8.1.2 Ajax技术的核心 325 8.1.3 Ajax的工作原理 326 8.1.4 Ajax的优点 326 8.1.5 Ajax的问题 327 8.1.6 Ajax适用场景 327 8.1.7 Ajax不适用场景 329 8.1.8 XMLHttpRequest开发实例 329 8.2 微软VS.NET的Ajax开发 333 8.2.1 安装ASP.NET 2.0 Ajax Extensions 333 8.2.2 创建ASP.NET Ajax应用程序 333 8.2.3 ScriptManager控件使用技巧 335 8.2.4 UpdaetPanel控件使用技巧 336 8.2.5 AsyncPostBackTrigger实现 外部控件引发局部刷新 338 8.2.6 Ajax错误处理 341 8.2.7 告诉用户你正在什么—— UpdateProgress控件 342 8.2.8 ASP.NET AjaxControToolKit简介 345 8.3 使用第三方组件 Ajax.dll 开发 347 8.4 使用第三方组件AjaxPro的开发 351 8.5 使用第三方组件MagicAjax的开发 351 8.6 Ajax开发原则 352 本章常见技术面试题 353 常见面试技巧之经典问题巧回答 353 本章小结 354 第9章 系统与文件操作 355 9.1 获取系统信息 356 9.1.1 用SystemInformation类获取系统信息 356 9.1.2 用Environment 类获取系统信息 357 9.1.3 通过WMI获取系统信息 358 9.1.4 用RegistryKey 类读取系统信息 361 9.1.5 用API函数获取系统信息 363 9.1.6 获取系统服务信息 365 9.2 文件操作 368 9.2.1 StreamWriter类实现写文件 368 9.2.2 通过File类创建文件 369 9.2.3 通过FileStream类创建文件 370 9.2.4 通过FileInfo类创建文件 370 9.2.5 追加文本 370 9.2.6 读取文本文件 371 9.2.7 读写二进制文件 372 9.2.8 文件复制、移动、删除 374 9.3 文件夹目录操作 375 9.4 读写INI文件 376 9.5 读写注册表 379 本章常见技术面试题 381 常见面试技巧之经典问题巧回答 381 本章小结 382 第10章 网络应用开发 383 10.1 Socket基本编程 384 10.1.1 Socket基本知识 384 10.1.2 Socket服务端开发步骤 386 10.1.3 Socket客户端开发步骤 388 10.2 异步Socket通信——实现MSN机器人 390 10.2.1 机器人服务端 390 10.2.2 客户端实现步骤 395 10.3 基于TCP协议的客户端和服务端 398 10.3.1 TcpListener 实现网络服务端 398 10.3.2 TcpClient实现网络客户端 399 本章常见技术面试题 401 常见面试技巧之经典问题巧回答 401 本章小结 402 第11章 Windows Service开发 403 11.1 什么是Windows服务 404 11.2 创建Windows服务 404 11.3 Windows服务开发常见问题 408 11.4 安装/卸载Windows服务 409 11.4.1 安装Windows服务 409 11.4.2 卸载Windows服务 410 11.4.3 Windows服务应用程序体系结构 411 11.5 调试Windows服务 414 11.5.1 日志调试法 414 11.5.2 附加进程断点调试法 414 本章常见技术面试题 416 职场智慧之初入江湖 416 本章小结 418 第12章 新技术初探 419 12.1 WPF 421 12.1.1 WPF简介 421 12.1.2 WPF何以令人佩服 422 12.1.3 XAML概述 422 12.1.4 WPF开发环境配置 423 12.1.5 项目示例:开发一个简单的WPF应用程序 424 12.2 WCF 427 12.2.1 SOA是什么 427 12.2.2 WCF是什么 428 12.2.3 WCF的优势是什么 428 12.2.4 WCF开发环境 431 12.2.5 项目示例:订票服务WCF开发步骤 431 12.3 LINQ 440 12.3.1 LINQ的架构 441 12.3.2 传统的查询 441 12.3.3 LINQ查询实例 444 12.3.4 LINQ查询语法 448 本章常见技术面试题 449 职场智慧之学习方法 449 本章小结 450 第2篇 系统架构设计思想 第13章 面向对象思想 453 13.1 为什么要面向对象 454 13.2 什么是面向对象 456 13.3 面向对象的特点 458 13.3.1 封装 459 13.3.2 继承 459 13.3.3 多态 460 13.4 面向对象设计和开发实例 466 13.4.1 传统过程化设计实现播放器功能 466 13.4.2 基于面向对象设计实现播放器功能 467 13.4.3 面向对象封装、继承、多态的应用 468 13.4.4 设计模式、条件外置及反射技术的应用 471 13.5 面向对象分析(OOA)的方法 475 13.6 面向对象设计的原则 478 13.6.1 优先使用(对象)组合,而非(类)继承 478 13.6.2 针对接口编程,而非(接口的)实现 481 13.6.3 开放-封闭法则(OCP) 482 13.6.4 Liskov替换法则(LSP) 485 13.6.5 单一职责原则(SRP) 486 13.6.6 依赖倒置原则(DIP) 486 13.6.7 接口分离原则(ISP) 489 13.6.8 面向对象设计时需要注意的 问题 490 本章常见技术面试题 491 本章小结 491 第14章 三层架构项目开发 493 14.1 什么是三层架构 494 14.1.1 常用的三层架构设计 494 14.1.2 趣味理解:三层架构与养猪 496 14.2 为什么要用三层架构 497 14.3 三层架构项目开发示例 500 14.3.1 数据库设计 500 14.3.2 创建整体解决方案 501 14.3.3 业务实体Model的实现 502 14.3.4 数据访问层的实现 504 14.3.5 业务逻辑层的实现 509 14.3.6 表示层的实现 510 14.4 实现基于工厂模式的三层架构 512 14.4.1 扩展新增数据访问层 512 14.4.2 IDAL抽象接口的实现 513 14.4.3 创建DAL对象的封装 517 14.4.4 实现抽象工厂模式 519 14.4.5 工厂模式的三层架构图 521 本章常见技术面试题 522 职场智慧之程序员的职业规划 523 本章小结 524 第15章 大型网站的性能优化与安全 525 15.1 高效C#编码优化 526 15.2 页面(HTML)优化的方法 534 15.3 ASP.NET开发性能优化 540 15.3.1 如没必要,尽量使用静态HTML页面 540 15.3.2 避免不必要的回送操作 541 15.3.3 尽量在客户端进行用户输入验证 541 15.3.4 关闭不必要的Session状态 542 15.3.5 优先使用HTML控件,而非服务器控件 542 15.3.6 不必要时关闭ViewState 542 15.3.7 禁用调试模式 543 15.4 系统缓存管理 543 15.4.1 缓存的分类 544 15.4.2 传统缓存方式 545 15.4.3 页面输出缓存 545 15.4.4 页面输出缓存API 548 15.4.5 页面局部缓存 549 15.4.6 应用程序数据缓存 554 15.4.7 文件缓存依赖 555 15.4.8 数据库缓存依赖 557 15.4.9 Memcached——分布式缓存系统 560 15.4.10 Cacheman——.NET架构 下的分布式缓存项目 561 15.5 数据库访问性能优化 562 15.5.1 选择合适的.NET数据供应器 563 15.5.2 及时地关闭数据库连接 563 15.5.3 跟踪监视SQL Server当前链接池状态 564 15.5.4 善用数据库的存储过程 567 15.5.5 SqlDataRead和Dataset的选择 567 15.5.6 ExecuteNonQuery和 ExecuteScalar的选择 568 15.5.7 数据的绑定DataBinder 568 15.5.8 使用DataReader的注意事项 568 15.5.9 Command对象的使用 569 15.5.10 反复地执行SQL语句用 Prepare() 569 15.5.11 分页的数据访问 570 15.5.12 SQL命令的优化 570 15.5.13 tempdb的使用技巧 572 15.5.14 使用视图代替跨库操作 572 15.5.15 尽量避免大事务操作 572 15.5.16 尽量避免使用游标 573 15.5.17 为你的表建立适当的索引 573 15.6 网站安全防护 573 15.6.1 什么是SQL注入式攻击 573 15.6.2 如何防范SQL注入式攻击 574 15.6.3 实现页面验证码 575 15.6.4 实现文件防盗链 579 15.6.5 采用HTTPS进行访问 584 15.7 IIS优化 584 15.7.1 如何监测IIS服务器并发数 584 15.7.2 采用Gzip压缩页面优化 585 15.7.3 网站应用程序池配置 588 15.8 网站架构优化策略 593 本章常见技术面试题 596 职场智慧之独善其身 596 本章小结 599 第16章 系统设计的原则和技巧 601 16.1 系统设计的一些原则 602 16.1.1 最适合的才是最好的 602 16.1.2 以不变应万变 603 16.1.3 可扩展性 603 16.1.4 可复用性 604 16.2 系统设计的常用方法 604 16.3 敏捷软件开发12条原则 608 16.4 系统架构师成长之路 611 本章常见技术面试题 615 职场智慧之职场政治 615 本章小结 616 第3篇 项目实战解析 第17章 权限角色管理项目解析 619 17.1 权限角色管理概述 620 17.2 项目概述 623 17.3 数据库设计 624 17.3.1 数据库实体关系模型 624 17.3.2 表结构设计 625 17.4 数据访问层 627 17.4.1 类设计 627 17.4.2 代码实现 629 17.5 业务逻辑层 629 17.5.1 类设计 630 17.5.2 扩展.NET Framework用户处理机制 632 17.6 接口调用与Web管理实现 638 17.6.1 Web.config配置 638 17.6.2 用户身份和权限验证 638 17.6.3 用户验证接口方式:权限验证用户控件 640 17.6.4 用户验证接口方式:页面基类 642 17.6.5 用户和角色权限的后台管理 644 职场智慧之如何提升自己在公司的价值 652 本章小结 653 第18章 单点登录系统的设计与实现 655 18.1 项目概述 656 18.1.1 名词定义 656 18.1.2 项目需求描述 656 18.2 业务流程设计 657 18.2.1 用户认证流程 657 18.2.2 安全验证流程 658 18.3 功能与接口设计 659 18.3.1 接口交互设计 659 18.3.2 应用系统接口 660 18.3.3 认证服务器功能和接口 660 18.4 数据库设计 660 18.4.1 数据库实体关系模型 661 18.4.2 表结构设计 661 18.5 实现认证服务器 662 18.5.1 SSO解决方案 663 18.5.2 系统管理后台 664 18.5.3 用户通行证管理中心 665 18.5.4 认证服务器接口开发 673 18.6 应用系统接入接口开发 675 18.6.1 用户身份认证 675 18.6.2 接收状态同步 676 18.6.3 用户注销 678 18.6.4 更新认证服务器状态 679 18.7 接口封装及调用 679职场智慧之晋升之道 682 本章小结 684 第19章 常用.NET开发工具介绍 685 19.1 源码版本管理: Visual SourceSafe 2005 686 19.1.1 安装和配置VSS 2005服务端 686 19.1.2 安装和配置VSS客户端 691 19.1.3 将项目加入VSS版本控制 692 19.1.4 客户端连接VSS 服务器获取源代码 694 19.1.5 设置VSS支持通过 Internet访问 696 19.1.6 版本控制的几个概念 701 19.1.7 VSS项目权限管理 703 19.1.8 VSS数据备份 705 19.1.9 VSS 2005的使用规范 707 19.2 单元测试工具:NUnit 708 19.2.1 NUnit简介 708 19.2.2 手把手教你在.NET中应用NUnit 708 19.3 日志工具——Log4net 714 19.3.1 Log4net简介 714 19.3.2 使用步骤 717 19.3.3 单独配置文件的使用 719 19.4 代码规范检查工具: Microsoft Source Analysis for C# 721 19.5 生成文档注释工具:GhostDoc 723 19.6 反编译工具:Reflector for .NET 732 19.7 动软.NET代码生成器 733 19.8 帮助文档生成工具:Sandcastle 737 19.8.1 Sandcastle介绍 737 19.8.2 生成方式 738 19.8.3 具体生成步骤 740 本章小结 748 附录A 软件编码规范 A.1 概述 750 A.1.1 规范基本原则 750 A.1.2 术语定义 750 A.1.3 文件命名组织 750 A.2 代码外观 751 A.2.1 列宽 751 A.2.2 换行 751 A.2.3 缩进 751 A.2.4 空行 751 A.2.5 空格 752 A.2.6 括号——() 753 A.2.7 花括号——{} 753 A.3 程序注释 754 A.3.1 注释概述 754 A.3.2 文档型注释 755 A.3.3 类注释 755 A.3.4 单行注释 755 A.3.5 注释标签 756 A.4 声明 758 A.4.1 每行声明数 758 A.4.2 初始化 758 A.4.3 位置 758 A.4.4 类和接口的声明 759 A.4.5 字段的声明 759 A.5 命名规范 759 A.5.1 命名概述 759 A.5.2 大写规则 760 A.5.3 缩写 761 A.5.4 命名空间 761 A.5.5 类 762 A.5.6 接口 762 A.5.7 属性(Attribute) 763 A.5.8 枚举(Enum) 763 A.5.9 参数 763 A.5.10 方法 764 A.5.11 属性(property) 764 A.5.12 事件 765 A.5.13 常量(const) 766 A.5.14 字段 767 A.5.15 静态字段 768 A.5.16 集合 768 A.5.17 措词 768 A.6 语句 769 A.6.1 每行一个语句 769 A.6.2 复合语句 769 A.6.3 return语句 769 A.6.4 if、if-else、if else-if语句 770 A.6.5 for、foreach 语句 770 A.6.6 while语句 771 A.6.7 do-while语句 771 A.6.8 switch-case语句 771 A.6.9 try-catch语句 772 A.6.10 using块语句 772 A.6.11 goto语句 772 A.7 其他 773 A.7.1 表达式 773 A.7.2 类型转换 773 A.8 匈牙利命名法 773 A.9 控件命名规则 774 A.9.1 一般命名方法 774 A.9.2 主要控件名简写对照表 774 ……

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧