自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

catshitone的专栏

师夷长技以自强

  • 博客(197)
  • 资源 (24)
  • 收藏
  • 关注

原创 ASP.NET Core基础(十一)——静态文件Static files

此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/http-requests?view=aspnetcore-5.0默认情况下,诸如HTML、css、图像、js之类的静态资源,应用不需要特殊处理直接提供出去。静态资源一般都存放在wwwroot文件夹中。1.提供静态文件1.1 提供wwwroot目录下的静态文件直接调用app.UseStaticFil.

2021-04-20 18:00:16 2213 1

原创 ASP.NET Core中使用IHttpClientFactory发出HTTP请求

此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/http-requests?view=aspnetcore-5.0IHttpClientFactory有以下几个优势:便于与Polly、Refit等第三方库继承。将委托添加到http请求管道中,实现类似asp.net core中间件的功能。因为复用HttpClientMessageHandler可.

2021-04-20 17:55:36 1470

原创 ASP.NET Core基础(十)——错误处理Handle Errors

此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/error-handling?view=aspnetcore-5.0框架具有用于处理错误的内置功能,如:开发人员异常页自定义错误页静态状态代码页启动异常处理1.异常处理lambdapublic void Configure(IApplicationBuilder app, IWebHost.

2021-04-20 17:52:27 527

原创 ASP.NET Core 基础(九)——路由Routing

此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/routing?view=aspnetcore-5.0定义:路由是负责匹配传入的http请求,然后进行发送到应用的可执行终结点(代码处理单元)。本文只介绍较低级别的路由信息,有关MVC中的路由和Razor中的路由参考:https://docs.microsoft.com/zh-cn/aspnet/c.

2021-04-20 17:44:52 1687

原创 ASP.NET Core 基础(八)——日志记录

日志组件包括提供器(Provider)和记录器(Logger)# 1.日志提供程序(Log provider)框架自带的日志provider有以下几种,前4个都在`CreateDefaultBuilder`里被添加进去,后续几个需要添加nuget包。- 控制台:即`Consol.WriteLine()`- 调试:即`Debug.WriteLine()`- EventSource:EventSource 提供程序写入名称为 Microsoft-Extensions-Logging 的跨平台事件源。

2021-04-20 16:55:17 1158

原创 ASP.NET Core基础(七)——配置Development、Staging、Production环境

执行环境:Development、Staging、Production是asp.net core中的高级概念。什么都不设置的话,默认为Production。通过设置ASPNETCORE_ENVIRONMENT或DOTNET_ENVIRONMENT环境变量的值来指定应用的运行环境。这个值你可以随便输入,后续可通过env.EnvironmentName来获取,当你设置为“Development”时,env.IsDevelopment()则为true。env.IsDevelopment()等价于env.IsEn

2021-04-20 16:19:53 1989

原创 ASP.NET Core基础(六)——appsettings.json配置项

此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/configuration/?view=aspnetcore-5.0配置是使用一个或多个配置提供程序进行配置的。这个程序从如下的配置源中读取键值对,键不区分大小写:配置文件,如appsettings.json,MySettings.json等(见读取自定义配置文件章节)环境变量Azure Key .

2021-04-20 16:16:06 5921

原创 ASP.NET Core基础(五)——Web服务器

此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/servers/?view=aspnetcore-5.0&tabs=windowsasp.net core 中的web服务器有三种:Kestrel、HTTP.sys、IIS HTTP。Kestrel:是默认的跨平台服务器,提供了最佳的性能和内存利用率。但是没有HTTP.sys中的一些高级功能,.

2021-04-20 11:32:31 1502

原创 ASP.NET Core基础(四)——IHostBuilder

此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/host/generic-host?view=aspnetcore-5.0主机封装了应用的所有资源,例如:HTTP服务器实现(Kestrel)、中间件、Logging、DI、Configuration等。主机分为两种:.Net 通用主机IHostBuilder:(推荐使用)。Program.cs的C.

2021-04-20 11:27:58 3068

原创 ASP.NET Core 基础(三)——中间件

此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/?view=aspnetcore-5.0中间件是一种装配到应用管道以处理请求和响应的组件,可以选择是否将请求传递到管道中的下一个组件而且也可以在管道的下一个组件前后执行工作。使用app.Run、app.Map、app.Use方法来配置请求委托。请求管道中的每个中间件负责调用管道中的.

2021-04-20 11:18:46 712

原创 ASP.NET Core 基础(二)——使用依赖注入

此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-5.0框架自带的一些符合Add{GROUP_NAME}约定的服务,如:AddControllers、AddDbContext、AddDefaultIdentity等,会自动注册该框架功能所需的所有服务。1.服务生存周期Tran.

2021-04-20 10:59:32 1635

原创 ASP.NET Core 基础(一)——Startup

Startup类作用:用来配置服务和请求管道。服务是一种提供应用功能的可重用组件,在ConfigureServices中注册服务,然后通过DI或ApplicationServices.GetRequriedService<T>()在整个应用中使用服务。 在Program.cs中构建主机(IHost)时指定了Startup类,并且框架会自动注册一些服务(具体有哪些见后续依赖注入章节),所以以下服务类型可以直接注入到Startup的构造函数:IWebHostEnvironment/IHos

2021-04-20 10:39:46 1158

原创 【CLR】.NET的GC垃圾回收

垃圾回收算法引用计数法:堆上的每个对象都维护了一个内存字段用来记录有多少个对象引用了自己,当这个字段的值变成0时,就意味着自己没有用了,可以被回收走了。当下一个GC周期到来时,他就会被回收走。这种算法存在因循环引用导致无法回收的问题。引用跟踪法:所有引用类型的变量都称作根。然后查看此根都引用了哪些对象,然后看这个对象里又有哪些根,这些根又引用了哪些对象。以此类推,这么一来就可以构建一个个引用跟踪图,这些树上的对象的同步块索引的某一位就标记为1。引用跟踪法回收流程除了回收线程之外,暂停其它所有线

2021-02-14 19:35:15 838

原创 【CLR】数据类型与装箱、拆箱

类型有:基元类型(int、long、bool等编译器直接支持的类型)、值类型、引用类型。所有的类型都派生自System.Object当我们new一个对象时,new操作实际做了这些事情:计算当前类型及其所有父类,一直计算到System.Object,中定义的所有实例字段需要的字节数,这些实例字段的“类型对象指针”和“同步块索引”对象所需要的字节数。从堆中分配这些字节,并初始化为0初始化类型对象指针和同步块索引调用类的构造函数类型对象指针:当我们想查看某个对象是属于什么类型时,一般会调用Get

2021-02-14 15:34:24 337

原创 【CLR】程序集查找与GAC

版本号如图:AssemblyVersion程序集版本号:存储在AssemblyDef清单元数据表中,虽然在文件属性面板中不显示,但是这个版本号对于CLR来说很重要,绑定强明明程序集时会用到这个,它唯一地标识了程序集。当A程序集引用了B程序集时,会将B程序集的AssemblyVersion嵌入到自己的AssemblyDef清单中,这样当CLR加载B的时候,就能准确的知道是程序集B的哪个版本。AssemblyFileVersion文件版本号:即属性面板中的文件版本,存储在Win32版本资源中,这个号仅

2021-02-13 21:49:32 488

原创 【CLR】JIT和NGen

JIT的工作流程JIT(Just in time)即时编译器:在执行时负责把编译生成的IL代码转换成本机代码(CPU指令)。对于以下代码来说:void Main(){ Console.WriteLine("hello"); Console.WriteLine("word");}当执行Main方法时,CLR会检测Main所使用到的类型,并分配一个数据结构用来存储对这些类型的访问。这段代码里只涉及到了Console类,所以Console类的所有方法都被存到了那个数据结构里,每个方法都是一个记录项

2021-02-06 18:16:29 397

原创 【C#】winform安全的跨线程访问控件

很多winform开发的新人,在子线程(非UI线程,线程id不为1)要更新控件的text属性时经常会遇到不允许跨线程访问控件的异常:Cross-thread operation not valid. Control “” accessed from a thread other than the thread it was created on。那么在这篇文章里就总结下如何该正确的跨进程访问控件。如果你从一个不同的线程要访问控件(包括Form),则必须调用控件的这四个方法Invoke、BeginInvo

2021-02-05 18:18:29 3735

原创 【.NET IoT】树莓派Raspberry Pi 3B+ 连接oled屏幕,SSD1306驱动

上次在我的树莓派上接入了达特的甲醛传感器,可以把测的甲醛数据上传到服务器上。但是数据还是不够直观,想看数据还得依赖网络、依赖web页面。所以后来买了一块0.9英寸的OLED屏幕,接到了树莓派上,分辨率是128x64,也用了一段时间了,基本满足需求,能够实时显示浓度、时间、网络状态。所以这次分享下用.NET CORE如何驱动一块OLED 屏幕。

2021-01-19 23:10:37 1760 1

原创 【C#】解决使用async/await时,await之后的方法没有resume到之前线程执行

一般来说,await会捕获当前同步上下文SynchronizationContext.Current,如果同步上下文为null,则继续捕获TaskScheduler.Current。await之后的代码会恢复到捕获的上下文继续执行。但是如果你的异步操作执行的比较早,例如在Application.Run(new Form1())之前执行: static class Program { /// <summary> /// The main entry po

2020-12-30 16:26:36 768

原创 【CLR】C#线程同步和锁-----看这篇就够了

多个线程同时访问共享数据的时候,线程同步能够防止线程损坏。之所以强调同时,是因为线程同步问题其实就是访问时间问题。如果有些数据会被多个线程访问,但是这几个线程访问的时间都是错开的,不会同时接触到数据,那完全就用不到线程同步。线程同步会遇到几个问题,所以能避免使用就别用:使用繁琐,容易出错:你需要清楚的明白哪些数据可能是会被同时访问的,然后用一个锁锁住它,确保一次只有一个线程能够访问。如果任何一块数据被漏了,那就会有问题。没法确定你所有用锁的方式一定正确:只能靠测试和经验。损害性能:获取和释放锁时要

2020-12-13 18:40:53 4264 2

原创 【CLR】C#线程基础

基础知识为什么要有线程?早期的操作系统没有线程的概念,也可以理解为一个操作系统只有一个线程在运行,这个线程既执行操作系统代码又执行应用程序代码。这样的设计会有一系列的问题:任务无法并行执行,长时间运行的任务会阻塞其他任务。有些程序的bug造成死循环,导致整个机器停止工作。所以,在后续的windows内核设计过程中引入了“进程”和“线程”。每个进程都被分配了一个虚拟的地址空间,而且一个进程使用到的代码和数据无法被其它进程所访问。进程也无法访问OS内核的代码和数据。这就保证了进程与进程之间,进程与

2020-11-22 17:34:00 432

原创 【EcmaScript6】笔记本

1.各种扩展方法stringES写法C#说明for (let chr of 'foo')toArray遍历字符let msg = "Hello, ${place}"$"hello,{place}"模板字符串s.includes()contains是否包含s.startWith()startWiths.endWith()endWiths.repeat(3)将s重复三遍输出s.padStart/s.padEnd同字符串补全

2020-11-22 15:09:45 333

原创 【TypeScript】笔记本

TypeScript for Java/C# ProgrammersThe TypeScript HandbookC#转typescript实战ts没有静态类,也没有单例对象赋值:interface Pointlike { x: number; y: number;}interface Named { name: string;}function printPoint(point: Pointlike) { console.log("x = " + poin..

2020-11-22 15:07:44 513

原创 【C#】使用AutoMapper-看这篇就够了

1.基本配置Profile配置public class OrganizationProfile : Profile{ public OrganizationProfile() { CreateMap<Foo, FooDto>(); }}使用:var configuration = new MapperConfiguration(cfg => { //cfg.CreateMap<Foo, Bar>(); cfg.AddProfile<

2020-11-20 10:22:04 36540 1

原创 【CLR】C#异步I/O

Windows如何执行I/O操作以读取磁盘文件类FileStream为例 ,展示下同步和异步I/O的执行流程同步IO调用FileStream类的Read方法后,你的线程将从托管代码转为win32用户模式代码。并调用win32的ReadFile函数,此函数将会非配一个叫做I/O请求包(I/O Request Packet,IRP)的数据结构,这个结构里包括:文件句柄,文件中的偏移量,Byte[]数组地址等信息。然后ReadFile会将你的线程从用户模式变为内核模式,向内核传递IRP数据,从而调用w

2020-10-18 00:11:08 783 7

原创 【CLR】C#线程池如何管理线程

前言线程池管理机制随着CLR的版本不断变化,最好将线程池看成一个黑盒。它不是针对某一种程序设计的,也不适合用某个程序去衡量它的性能。目前来看工作情况还是不错的,随着CLR版本的迭代也会不断进行优化,所以一般不需要对线程池做过多的调整。线程池如何管理工作者线程工作原理大致如图所示:其它线程将需要做的任务(task)放入到线程池的全局队列中,如ThreadPool.QueneUserWorkItem方法。工作者线程不断的消费本地队列,消费顺序是后进先出(类似于栈),每次从列头拿出一个task进行处

2020-10-13 09:26:28 1078 1

原创 解决PostSharp Essentials限制最多50个class使用的问题

因为PostSharp其他版本一直都是收费的,所以项目里用的都是Essentials版本,功能都是一样的,只不过有些其它的限制。比如每个project里不能有超过10个class使用PostSharp,每个solution里不能超过50个class使用PostSharp。在之前这个限制倒没怎么影响到我,但随着项目越来越大,50个class已经不够用了。怎么办? 网上搜了下破解方法,有的干脆不能...

2020-08-26 12:42:39 2850

原创 【Azure】Devops下载Azure Agent太慢?我们来手动配置

我们在Azure DevOps添加Deployment group的时候,一般是按照给的提示直接执行powershell命令添加agent。如果fq的话肯定没问题,不fq就靠你的运营商了,大部分情况下下载图里那个vsts-agent-win-x64-2.171.1.zip文件可能会耗费掉你所有的耐心。尤其是从薅羊毛薅来的ECS上下载的话,130MB+的文件下载个一天可能都下载不完。不过解决方法还是有的,仔细分析那段ps代码之后,发现最主要的就是后面那一段config代码,前面就是创建文件夹下载zip文

2020-07-11 21:24:12 1246 1

原创 【.NET IoT】把达特甲醛传感器DART WZ-S接到树莓派RaspberryPi 3 b+上

前一段时间经常能听到一些xx公寓装修甲醛超标,xxx公司程序员因xx公寓甲醛超标得绝症新闻,最近又刚买了一些家具,甚是担心这个问题。虽然相对于绿萝、活性炭、光触媒,经常通风才是除甲醛的王道。但是心里还是想知道室内的甲醛指数是多少,这样才能敦促自己多多通风。在t宝上搜了一圈,发现一个甲醛检测仪便宜的9.9,贵的上万,都号称绝对准确。看来水真的很深,于是乎跑到张大妈上又搜索了一番。发现有些up主,用...

2020-03-17 12:15:43 3788 6

原创 【.NET IoT】如何点亮树莓派Raspberry Pi 3b+上的一盏小灯

时隔多日如何使用树莓派GPIO的教程终于来了,然.NET Core 3.1版本都出来了。这次我的树莓派刷回了官方的Raspbian,

2020-03-16 17:52:52 2294 4

原创 Fiddler4设置脚本-保存抓包结果

1.点击顶部工具栏"Rules"然后点击“Customize Rules".2. 查找OnBeforeResponse方法在弹框中Ctrl+F查找 OnBeforeResponse方法:然后在方法的后面追加如下代码:var isJson=oSession.ResponseHeaders.ExistsAndContains("Content-Type","json");if (oSe...

2020-03-02 15:22:16 1523

原创 【Linux】win10 vnc远程连接ubuntu server 18.04 gnome桌面

简介越来越发现用命令行进行系统操作的效率真是低的一逼(原谅我脑容量有限,只记有用的东西)。现在远程ubuntu桌面的方式有一大把:VNC(Virtual Network Computing)、TeamViewer、win10自带的远程连接RDP。经过一番尝试之后还是发现VNC最好用而且还免费。在linux上基于VNC协议的实现工具有很多,如TigerVNC、TightVNC、Vino、x11VN...

2019-11-21 14:47:03 6638

原创 【Web】笔记本

1. Js判断是否滚动到了底部//获取滚动条当前的位置 function getScrollTop() { var scrollTop = 0; if (document.documentElement && document.documentElement.scrollTop) { ...

2019-10-25 10:12:25 352

原创 【ASP.NET Core】在Controller的构造函数中设置ViewBag无效,NullReferenceException: Object reference not set to an in

在Controller的构造函数中设置ViewBag无效,NullReferenceException: Object reference not set to an instance

2019-08-19 12:04:34 2387

原创 【C#】ElasticSearch环境搭建与使用

以前在.net里如果要做全文搜索的话,一般都会使用Lucene.net配合盘古分词。使用起来麻烦而且还不容易查看数据,后来就出现了ElastiSearch。ES也是基于Lucene并采用java编写, 相当于对Lucene做了一层封装,我们只需要调用ES相关API即可,配合Kibana数据可视化工具可以很方便的分析和统计数据。## 1.安装这里以windows环境为例,linux类似。移步到ES官网,下载ElasticSearch和Kiba

2019-07-16 19:22:25 9064 4

原创 System.InvalidOperationException:“操作失败: 无法更改关系,因为一个或多个外键属性不可以为 null。对关系作出更改后,会将相关的外键属性设置为 null 值。如果外

前言今天用EF做更新操作时,抛出了System.InvalidOperationException:“操作失败: 无法更改关系,因为一个或多个外键属性不可以为 null。对关系作出更改后,会将相关的外键属性设置为 null 值。如果外键不支持 null 值,则必须定义新的关系,必须向外键属性分配另一个非 null 值,或必须删除无关的对象。”的异常。经过调试之后发现了问题所在。报错代码: ...

2019-06-26 15:19:04 7679

原创 【ASP.NET】使用MiniProfiler分析ASP.NET MVC和EF的性能

简介MiniProfiler是一个简单且高效的小型分析器,可用于.NET,Ruby,Go和Node.js.MiniProfiler不是将自己附加到每一个方法上,因为这样会有强侵入性而且也不是专注于分析性能问题。它是一个ADO.NET的分析器,可以分析对于ADO.NET(SQL Server、Oracle等)、LINQ-to-SQL、EF(Code First&EF Core)的原始...

2019-06-19 17:23:14 1629

原创 《Architecting Modern Web Apps with ASP.NET Core2 and Azure》之七

Developing ASP.NET Core Apps“It’s not important to get it right the first time. It’s vitally important to get it right the last time.”-----------------Andrew Hunt and David ThomasMapping Request t...

2019-04-18 19:40:10 395

原创 《Architecting Modern Web Apps with ASP.NET Core2 and Azure》六

Common Client-Side Web TechnologiesWebsites should look good from the inside and out-------Paul CooksonSummaryASP.NET或其它Web应用程序一般都依赖于客户侧(client-side)的网络技术,比如HTML、CSS、JavaScript。利用关注点分离原则可以将一个复杂的网...

2019-04-15 13:03:07 495

原创 《Enterprise Application Pattern—using Xamarin.Forms》中文简述十——访问远程数据

Consuming RESTful APIs1. 发送GET请求客户端:public async Task<ObservableCollection<CatalogItem>> GetCatalogAsync(){ UriBuilder builder = new UriBuilder(GlobalSetting.Instance.CatalogEndpo...

2019-03-26 15:39:44 665

SQL即查即用(全彩版)高清pdf

SQL即查即用(全彩版)高清pdf

2021-12-28

winfrom可拖动控件位置和大小

winfrom可拖动控件位置和大小, winfrom可拖动控件位置和大小, 详见:http://blog.csdn.net/catshitone/article/details/41804025

2017-08-31

SnapsToDevicePixels与UseLayoutRounding的比较

比较详情参见: http://blog.csdn.net/catshitone/article/details/77454465 使用方法:新建解决方案,然后本项目添加进去,运行之后点击ImageWindow按钮。

2017-08-22

NotificationDemoWPF自定义通知窗体样式

资源分竟然不能设置为0,辛苦大家了。 想免积分下载的移步:http://blog.csdn.net/catshitone/article/details/75089069

2017-08-18

C# 文件管理器filebrowser demo

很强大,与系统自带的差不多,采用Shell32,可以获取到系统特殊路径的名称,对于没有权限的文件会进行动态请求。

2017-04-28

viewpager+fragment滑动,顶部导航也会滑动

viewpager+fragment滑动,顶部导航也会滑动

2016-07-12

论文查重检测Pcheck精准版3.0免费版

论文查重检测Pcheck精准版3.0免费版 内含注册码

2015-10-18

StarCraft-master.zip Html5版本

StarCraft-master.zip StarCraft的Html5版本

2015-09-11

卸载三个设备后没有生成设备的问题.zip

解决免费宽带导致的 720错误 解决后 出项的卸载三个设备后没有生成设备的问题

2015-06-05

18000-6C协议(全英文版)

18000-6C协议(全英文版)pdf AMENDMENT 1: Extension with Type C and update of Types A and B

2015-05-21

啊手动阀手动阀

阿三地方阿三地方啊手动阀手动阀上的发送啊手动阀手动阀上的发送分

2014-11-26

打发手动阀手动阀

啊手动阀手动阀的法法士大夫啊手动阀手动阀撒地方

2014-11-26

【C#】winform 图片局部放大类似淘宝

【C#】winform 图片局部放大类似淘宝 绝对好用

2014-11-26

【C#】winform类似淘宝局部放大图片

【C#】winform类似淘宝的局部放大图片 绝对好用

2014-11-26

p2p 打洞C++源码

P2P打洞的理论和相关实现程序代码,详细介绍了P2P打洞的理论知识,并且给出了相关的实现代码。无论是学习编写聊天程序还是木马都很有帮助

2013-06-06

ACM 程序测评 离线版 BNUEPOfflineJudge

ACM 程序测评 离线版 BNUEPOfflineJudge

2013-02-15

计算机组成原理答案第二版唐朔飞完整答案

计算机组成原理答案 第二版 唐朔飞 完整答案

2012-05-09

lindo6.1 password

序列号 password lindo6.1

2012-04-30

C# 简单的计算器

用C#语言 简单编写的一个计算器应用程序 类似于系统自带的计算器 可以作为各位初学者的参考材料

2012-01-02

人月神话 pdf中文版

为人们管理复杂项目提供了颇具洞察力的见解,既有很多发人深省的观点,也有大量的软件工程实践。内容来自布鲁克斯在IBM公司 System/360 家族和OS/360中的项目管理经验。在软件领域,很少能有像《人月神话》一样具有深远影响力和畅销不衰的著作。B 《人月神话》 rooks博士为人们管理复杂项目提供了最具洞察力的见解,既有很多发人深省的观点,又有大量软件工程的实践。本书内容来自Brooks博士在IBM公司SYSTEM/360家族和OS/360中的项目管理经验,该项目堪称软件开发项目管理的典范。该书英文原版一经面世,即引起业内人士的强烈反响,后又译为德、法、日、俄、中、韩等多种文字,全球销售数百万册。确立了其在行业内的经典地位。

2011-11-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除