内容简介······本书《基础篇》以面向对象理论为指导,从.NET平台的各项技术中精选出一些亮点进行深入的剖析和讲解,并展示出它们在实际开发中的具体应用实例,不仅让读者能“知其然”,而且能“知其所以然”。
本书适合于拥有一到两年开发经验的读者,有助于读者进一步地提升自己的开发能力,拓展和加深对.NET平台技术的认识,最终成长为一名优秀的.NET软件工程师。
掌握本书《基础篇》所介绍的内容,是进一步阅读本书《应用篇》的前提。
作者简介······金旭亮,走自学之路,沉浸于软件技术世界16年,无师自通,最初“涉猎甚广”,后专注于微软.NET平台。
目前已当了8年的“教书先生”,致力于软件技术的应用与推广,为计算机专业学生和程序员提供软件技术学习指导,为企业提供.NET技术培训服务。
现执教于北京理工大学计算机学院。
高度关注中国计算机教育问题,在北京理工大学主讲软件开发系列课程,其所进行的教学改革探索实践曾引发广泛的关注。
业界知名微软技术作家,微软技术社区精英,已出版之著作如下:1《网站建设教程》高等教育出版社20032《编程的奥秘——.NET软件技术学习与实践》电子工业出版社20063《.NET2.0面向对象编程揭秘》电子工业出版社20074《ASP.NET程序设计教程》高等教育出版社2009目录······第1篇面向对象技术的.NET视角 1第1章.NET面向对象编程基础 31.1.NET是什么? 31.2初探.NET程序运行原理 101.3类和对象 161.4了解编程语言的发展趋势 23第2章数据类型趣谈 292.1数值类型的使用 292.2用好引用类型的变量 322.3“值类型变量”的故事 372.4说不尽的字符串 402.5可取空值的“值类型” 442.6数据类型的模板化——泛型 48第3章字段、方法与属性漫谈 533.1字段与属性的初始化方式汇总 543.2让一个方法返回多个结果 583.3命名参数与可选参数 603.4运算符重载 633.5分部类与分部方法 653.6奇特的扩展方法 693.7类和对象的CLR内存布局 723.8剖析WPF依赖属性 76第4章继承与多态 844.1方法的重载、隐藏与重写辨析 844.2通过实例理解多态 904.3多态编程的CLR探索之旅 954.4协变与逆变 104第5章对象的生生死死 1075.1构造函数那点事 1075.2Singleton设计模式的讨论 1125.3对象的延迟创建 1175.4对象的声明式创建 1205.5与对象销毁相关的话题 124第6章异常捕获与处理 1316.1.NET异常处理基础 1326.2应对程序运行时出现的异常 1366.3CLR异常处理机制探秘 1426.4实际开发中有关异常处理的建议 148第7章程序集 1517.1程序集的基础知识 1517.2程序集与组件化开发 1567.3WPF应用程序的结构与运行原理 1607.4探索ASP.NET页面程序集 1617.5Silverlight项目结构剖析 1637.6互操作程序集与本地类型 167第2篇委托构建的世界 175第8章神奇的委托 1778.1委托的概念与使用 1778.2深入探索委托技术内幕 1818.3使用泛型委托 1878.4匿名方法与Lambda表达式 1918.5掌握回调的编程技巧 195第9章事件及事件驱动 2009.1.NET事件处理机制的剖析与应用 2009.2定义自己的事件 2069.3WPF中的路由事件 212第10章异步编程模式 21710.1程序的同步执行和异步执行 21710.2基于委托的异步编程模式 21910.3等待异步调用的完成 22210.4异步调用中的异常与任务同步 22410.5实现IAsyncResult异步调用模式的组件 22710.6基于事件的异步调用模式 22910.7异步编程小结 234第3篇对象的精彩演出 235第11章对象集合与LINQ 23711.1设计可比较大小的对象 23711.2并不简单的对象集合——“数组” 24311.3针对对象集合的标准查询 25311.4伟大的技术创新——LINQ 25611.5掌握LINQ查询表达式的编写技巧 25911.6对象集合的分组与连接 263第12章对象组合与数据结构的应用 26812.1对象的组合方式 26912.2用对象组合实
2025/1/29 4:53:27 39.3MB .NET
1
本节课的实验内容主要分为三个板块:HTML,CSS,JavaScript,其中,我对HTML技术的应用得到了熟练运用,并对其他动态网页设计方法进行了大致的了解。
HTML是HypertextMarkupLanguage的英文缩写,即超文本标记语言。
它是一种标记语言而非编程语言,由浏览器解释支持。
HTML文件是一种文本文件,可以用记事本打开,当然也可以用其他开发工具,比如dream-weaver和VS等等。
通过在文本中添加各种标签来告诉浏览器网页要显示的内容,以及以何种表现形式显示。
浏览器按照自上而下的顺序解读HTML文件,同时浏览器并不会因为HTML代码出现错误而停止解读。
在课上操作上机的时候,老师教会了我们怎么用最简单的TXT文件来设计自己想要设计的网页,并加入了多种元素。
CSS是一种用来表现HTML文件样式的计算机语言。
CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
而且CSS能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。
JavaScript是我认为我所学的技术里面最高端的一种技术。
JavaScript是一种基于对象和事件驱动具有安全性能的脚本语言,使用JavaScript可以轻松的实现与HTML的互操作,并且完成丰富的页面交互效果,它是通过嵌入或调入在标准的HTML语言中实现的,它的出现弥补了HTML的缺陷,是java与HTML折衷的选择。
学习本课的目的就是能够建立起自己设计出来的页面,经过几周的教学和自我实践摸索,我已经能创建专属于自己的HTML页面,超额完成自己的目标。
2024/7/22 11:18:51 186KB HTML
1
1、图书管理系统以UNIX系统文件部分系统调用为基础设计一个简易的图书管理系统。
要求实现:图书的录入、查询、借阅、清理、统计等功能、还要实现对每天的借阅情况进行统计并打印出统计报表,操作界面要尽量完善。
图书资料信息必须保存在文件中。
2、信号通信与进程控制(l)进程的创建:编写一段程序,使用系统调用fork()创建两个或多个子进程。
当此程序运行时,在系统中有一个父进程和其余为子进程在活动。
(2)进程的控制:在程序中使用系统调用lockf()来给每一个进程加锁,实现进程之间的互斥。
(3)进程通信:①软中断通信;
②在程序中使用实例signal(SIGINT,SIG_IGN)和signal(SIGQUIT,SIG_IGN)进行通信操作,观察执行结果,并分析原因。
(4)软中断的捕获与重定义。
首先定义一个服务函数function(),然后利用signal(sig,function)系统调用来实现中断的捕获与改道。
(5)使用操作系统保留给用户的信号SIGUSR1和SIGUSR2进行通信。
(6)扩展程序,使之成为信号或事件驱动的应用程序。
3、管道通信利用UNIX系统提供的管道机制实现进程间的通信。
(1)管道通信。
利用pipe()和lockf()系统调用,编写程序,实现同族进程间的通信。
使用系统调用pipe()建立一条管道线;
创建子进程P1、P2、…。
子进程Pi分别向管道各写信息,而父进程则从管道中读出来自于各子进程的信息,实现进程家族间无名管道通讯。
扩展之,使之成为客户/服务器模式,并完成一定的任务(自己定义)。
(2)命名管道通信:利用mkfifo(name,mode)或mknod(name,mode,0)创建一个命名管道,然后利用它和文件部分系统调用实现不同进程间的通信。
改造之,使之成为客户/服务器模式,并完成一定的任务(自己定义)。
4、进程间通信(IPC):消息机制(1)消息的创建、发送和接收使用系统调用msgget(),msgsnd(),msgget(),及msgctl()编制一长度为1K的消息发送和接收的程序。
1)为了便于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,SERVER和CLIENT,进行通信。
SERVER和CLIENT也可分别为2个各自独立的程序。
2)SERVER端建立一个Key为175的消息队列,等待其他进程发来的消息。
当遇到类型为1的消息,则作为结束信号,取消该队列,并退出SERVER。
SERVER每接收到一个消息后显示一句“(server)received”。
3)CLIENT端使用key为175的消息队列,先后发送类型从10到1的消息,然后退出。
最后的一个消息,即是SERVER端需要的结束信号。
CLIENT每发送一条消息后显示一句“(client)sent”。
4)父进程在SERVER和CLIENT均退出后结束。
(2)功能扩展:在sever端创建一个服务函数,从而实现C/S通讯要求SERVER每接收到一次数据后不仅仅显示“(server)received”,而是做一些其它事情,比如读取或查询某个文件,或者执行一个shell命令等。
此功能可由设计者自己定义。
在此基础上可以扩展客户端,比如设计一个菜单界面,接收不同的选项,并发送到服务器端,请求对方提供服务。
5、进程间通信(IPC):共享内存机制(1)共享存储区的创建,附接和断接使用系统调用shmget(),shmat(),msgdt(),shmctl(),编制一长度为1K的消息发送和接收的程序。
1)为了便于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,SERVER和CLIENT,进行通信。
SERVER和CLIENT也可分别为2个各自独立的程序。
2)SERVER端建立一个Key为375的共享区,并将第一个字节置为-1,作为数据空的标志,等待其他进程发来的消息。
当该字节的值发生变化时,表示收到了信息,并进行处理。
然后再次把它的值设为-1。
如果遇到的值为0,则视为结束信号,取消该队列,并退出SERVER。
SERVER每接收到一次数据后显示“(server)received”。
3)CLIENT端建立一个Key为375的共享区,当共享取得第一个字节为-1时,SERVER端空闲,可发送请求。
CLIENT随即填入9到0。
期间等待Server端的再次空闲。
进行完这些操作后,CLIENT退出。
CLIENT每发送一次数据后显示“(client)sent”。
4)父进程在SERVER和CLIENT均退出后结束。
(2)功能扩展:在sever端创建一个服务函数,从而形成C/S通讯模式要求SERVER每接收到一次数据后不仅仅显示“(server)received”,而是做一些其它事情,比如
2024/7/19 3:04:26 918KB 操作系统
1
《servlet和jsp学习指南》是系统学习servlet和jsp的必读之作。
由全球知名的java技术专家(《howtomcatworks》作者)亲自执笔,不仅全面解读servlet和jsp的最新技术,重点阐述javaweb开发的重要编程概念和设计模型,而且包含大量可操作性极强的案例。
《servlet和jsp学习指南》共18章:第1章介绍servletapi和几个简单的servlet;
第2章讨论session追踪,以及保持状态的4种技术;
第3章和第4章系统讲解jsp的语法以及jsp中的重要特性之一:expressionlanguage;
第5~7章分别阐述jstl中最重要的类库、标签的具体编写方法和标签文件;
第8~10章讨论servlet中的事件驱动编程、过滤器,以及model2架构;
第11章展示如何利用servlet3的文件上传特性,以及如何在客户端改善用户的体验;
第12章解释如何通过编程方式将资源发送到浏览器;
第13章介绍如何利用decorator模式以及类来改变servlet请求和响应的行为;
第14章讨论servlet3中的一项新特性,用来处理异步的操作;
第15章阐述如何通过声明和编程方式来保护java的web应用程序;
第16章讨论servlet/jsp应用程序的部署过程,以及部署描述符中的元素;
第17章阐述servlet3中的两项新特性;
第18章介绍struts2的用法
2024/6/27 0:46:52 73.84MB servlet jsp java servlet
1
Twisted是用Python实现的基于事件驱动的网络引擎框架。
Twisted诞生于2000年初,在当时的网络游戏开发者看来,无论他们使用哪种语言,手中都鲜有可兼顾扩展性及跨平台的网络库。
Twisted的作者试图在当时现有的环境下开发游戏,这一步走的非常艰难,他们迫切地需要一个可扩展性高、基于事件驱动、跨平台的网络开发框架,为此他们决定自己实现一个,并从那些之前的游戏和网络应用程序的开发者中学习,汲取他们的经验教训。
Twisted支持许多常见的传输及应用层协议,包括TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC以及FTP。
就像Python一样,Twisted也具有“内置电池”(batteries-included)的特点。
Twisted对于其支持的所有协议都带有客户端和服务器实现,同时附带有基于命令行的工具,使得配置和部署产品级的Twisted应用变得非常方便。
2024/5/21 14:46:51 2.89MB Twisted
1
嵌入式系统事件驱动编程的重要参考书籍《UML状态图的实用C、C++设计:嵌入式系统的事件驱动型编程技术(第二版)》中文版,已经创建书签,以及《PracticalUMLStatechartsinC,C++,SecondEdition》英文版,有书签。
英文好的同学可以直接阅读英文版,英文不好的同学可以阅读中文版同时参考英文版。
2024/5/13 16:06:58 15.12MB 嵌入式系统 事件驱动
1
模拟一个银行排队系统采用离散事件驱动
2024/5/6 15:11:16 1.73MB c++ 模拟银行排队 离散事件
1
wxPython学习手册。
学习必备!Part1wxPython入门191.欢迎来到wxPython191.1开始wxPython201.2创建最小的空的wxPython程序201.2.1导入wxPython211.2.2使用应用程序和框架工作22子类化wxPythonapplication类23定义一个应用程序的初始化方法23创建一个应用程序实例并进入它的主事件循环231.3扩展这个最小的空的wxPython程序241.4创建最终的hello.py程序262、给你的wxPython程序一个稳固的基础282.1关于所要求的对象我们需要知道些什么?282.2如何创建和使用一个应用程序对象?292.2.1创建一个wx.App的子类29何时省略wx.App的子类302.2.2理解应用程序对象的生命周期312.3如何定向wxPython程序的输出?312.3.1重定向输出322.3.2修改默认的重定向行为342.4如何关闭wxPython应用程序?342.4.1管理正常的关闭352.4.2管理紧急关闭352.5如何创建和使用顶级窗口对象?362.5.1使用wx.Frame362/5652.5.2使用wxPython的ID37明确地选择ID号38使用全局性的NewID()函数382.5.3使用wx.Size和wx.Point382.5.4使用wx.Frame的样式392.6如何为一个框架增加对象和子窗口?412.6.1给框架增加窗口部件422.6.2给框架增加菜单栏、工具栏和状态栏。
442.7如何使用一般的对话框?45消息对话框46文本输入对话框47从一个列表中选择472.8一些最常见的错误现象及解决方法?482.9总结493、在事件驱动环境中工作513.1要理解事件,我们需要知道哪些术语?513.2什么是事件驱动编程?523.2.1编写事件处理器543.2.2设计事件驱动程序553.2.3事件触发553.3如何将事件绑定到处理器?563.3.1使用wx.EvtHandler的方法工作573.4wxPython是如何处理事件的?613.4.1理解事件处理过程62第一步,创建事件64第二步,确定事件对象是否被允许处理事件。
64第三步定位绑定器对象653/565第四步决定是否继续处理66第五步决定是否展开673.4.2使用Skip()方法683.5在应用程序对象中还包含哪些其它的属性?703.6如何创建自己的事件?713.6.1为一个定制的窗口部件定义一个定制的事件。
71创建自定义事件的步骤:713.7总结754、用PyCrust使得wxPython更易处理764.1如何与wxPython程序交互?76PyCrust配置了标准的Pythonshell774.2PyCrust的有用特性是什么?794.2.1自动完成804.2.2调用提示和参数默认804.2.3语法高亮814.2.4Python帮助814.2.5命令重调用824.2.6剪切和粘贴834.2.7标准shell环境844.2.8动态更新854.3PyCrustnotebook的标签是干什么的?874.3.1Namespace标签874.3.2Display标签894.3.3Calltip(调用提示)标签894.3.4Session标签904.3.5Dispatcher标签904.4如何将PyCrust应用于wxPython应用程序。
924/5654.5在Py包中还有其它什么?964.5.1使用GUI程序工作974.5.2使用支持模块工作97buffer模块98crust模块100dispatcher模块100editor模块102filling模块102interpreter模块103introspect模块103shell模块1034.6如何在wxPython中使用Py包中的模块?1044.7本章小结1085、创建你的蓝图1095.1重构如何帮我改进我的代码?1095.1.1一个重构的例子1105.1.2开始重构1135.1.3进一步重构1145.2如何保持模型(Model)与视图(View)分离?1185.2.1MV
2024/4/18 16:35:52 3.54MB python
1
Twisted是用Python实现的基于事件驱动的网络引擎框架。
Twisted诞生于2000年初,在当时的网络游戏开发者看来,无论他们使用哪种语言,手中都鲜有可兼顾扩展性及跨平台的网络库。
2024/3/1 19:31:48 2.95MB python
1
本页内容上下文实现策略测试考虑事项结果上下文相关模式 上下文您要在ASP.NET中构建Web应用程序,您希望通过使用内置的PageController(页面控制器)来利用ASP.NET的事件驱动特性。
返回页首 实现策略默认情况下,PageController模式中所描述的概念是在ASP.NET中实现的。
ASP.NET页面框架实现这些概念所采取的方式使得在客户端上捕获事件、将其传输到服务器并调用适当方法这一系列操作的基本机制是自动进行的,并且对实现者来说是不可见的。
页面控制器是可扩展的,因为它会在生命周期的特定点上公开各种事件(请参阅此模式后面的"页面生命周期"),因此,与应用程序具体相关的操作
1
共 40 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡