代码改变世界

随笔分类 -  [03]项目管理

一起谈.NET技术,ASP.NET 4.0 一些隐性的扩展

2011-08-29 19:25 by 狼人:-), 247 阅读, 收藏, 编辑
摘要: ASP.NET 4.0在很多方面都做了改进,在这篇ASP.NET 4.0白皮书就描述了很多ASP.NET 4.0的机制改变和改进。在我的博客中,也有几篇关于ASP.NET4.0的特性修改的文章。但是作为一个全新的框架和运行时,内部肯定还会有很多API和扩展点不会暴露的那么明显。比如今天从这篇文章Three Hidden Extensibility Gems in ASP.NET 4的介绍中,我又了解了一些在我平常开发中绝对非常有用的扩展点。 PreApplicationStartMethodAttribute 这个新的Attribute可以让我们指定一个公共的静态函数,让它在站点的... 阅读全文

一起谈.NET技术,提高ASP.NET应用程序性能的十大方法

2011-08-29 19:25 by 狼人:-), 198 阅读, 收藏, 编辑
摘要: 一、返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求。每次往返降低了你的应用程序的每秒能够响应请求的次数。通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的系统具有扩展性,也可以减少数据库服务器响应请求的工作量。 如果你是用动态的SQL语句来返回多个数据集,那我建议你用存储过程来替代动态的SQL语句。是否把业务逻辑写到存储过程中,这个有点争议。但是我认为,把业务逻辑写到存储过程里面可以限制返回结果集的大小,减小网络数据的流量,在逻辑层也不用在过滤数据,这是一个好事情。 用SqlCommand对象的ExecuteReader方法... 阅读全文

一起谈.NET技术,鲜为人知的ASP.NET MVC 2.0框架高效之谜

2011-08-29 19:25 by 狼人:-), 265 阅读, 收藏, 编辑
摘要: 要想建立开发环境,你需要安装Visual Studio 2008/2010 Beta 2,以及SQL Express 2005(可免费从MSDN下载)和MVC 2.0框架。我把本文中的示例Web应用命名为“Employee Master Information”。 使用该应用程序,你可以输入新员工数据,编辑现有员工数据,可以查看特定员工数据,和从数据库中给删除任意员工信息。该应用程序还使用了ASP.NET的Membership Provider来创建新用户和认证已有用户,客户端验证通过JavaScript实现。 图1 创建MVC项目、数据库和数据模型 在此前的ASP.NET ... 阅读全文

一起谈.NET技术,Silverlight中本地化的实现

2011-08-29 19:25 by 狼人:-), 183 阅读, 收藏, 编辑
摘要: 对于本地化这个功能我个人一直觉得在需求阶段就要确定该项目需不需要实行本地化,这样后面就可以减轻许多工作量,Sl中对本地化功能的支持与ASP.NET中一样,主要使用CultureInfo类来完成的。 下面来看实现本地化的具体流程,先来看一看我的项目结构: 这里我是把资源文件放入单独的项目中,这样结构上也比较的清晰。 第一步:先在Languages项目下添加几个资源文件,这里对于资源的命名要遵循.NET命名规范,比如说当前文化是中文的话,系统就会自动到Localization.zh-CN.resx中获取相关的字符。这里如果对多语言的文化的命名不熟悉的话,可以查看.NET全球化,... 阅读全文

一起谈.NET技术,WPF Multi-Touch 开发:惯性效果(Inertia)

2011-08-29 19:25 by 狼人:-), 354 阅读, 收藏, 编辑
摘要: 从上一篇实例可以发现在图片移动过程中如果将手指移开屏幕则图片会立刻停止,根据这种情况WPF 提供另外一种惯性效果(Inertia)。通过它可以使UI 单元移动的更加符合物理特性、更为实际和流畅。 在前面代码的基础上还需要为<Canvas> 增加ManipulationInertiaStarting 事件。 <Canvas x:Name="touchPad" Background="Gray" ManipulationStarting="image_ManipulationStarting" ManipulationD 阅读全文

一起谈.NET技术,WPF Multi-Touch 开发:高效开发模式

2011-08-29 19:25 by 狼人:-), 321 阅读, 收藏, 编辑
摘要: 在前几篇文章中已经介绍了触屏操作的多种模式,并对其开发方式也有了进一步了解。细心的朋友应该会发现在上一篇文章中,如果拖动图片过快它会因惯性效果飞出程序窗口外,也就是说还需要对其进行边界限制等相关开发。而且无论是哪种触屏操作都需要开发者逐行逐句的编写代码,本篇将为大家介绍一种高效的多点触屏开发模式。 其实我们只需利用CodePlex 中的Multi-Touch Manipulation 项目即可,该程序不仅支持WPF,还可以进行Silverlight 和Windows Phone 7 的项目开发。下载并安装程序,打开Blend 4 新建项目,在设计窗口绘制一个矩形。 在Behavi... 阅读全文

一起谈.NET技术,LINQ TO Reflection

2011-08-29 19:25 by 狼人:-), 262 阅读, 收藏, 编辑
摘要: 引言 我们平时开发中不可避免,或者说,经常性的使用反射。但是却没有一个合适的类库帮助我们更好的利用反射。从早期的FastInvoker,到老赵的 fastreflectionlib ,无一不是在强调Fast。这是因为反射的性能损耗比较厉害,所以大家都集中精力解决性能的问题,但是在易用性方面却鲜有改进。今天我为大家带来一个即兼顾性能又具有良好的使用体验的反射类库. .Metadata() 此类库以LINQ TO Object为基础,可以通过调用.Metadata()方法获取对应Type的完整Metadata信息。此信息会被进行缓存,并且使用fastreflectionlib的核心... 阅读全文

一起谈.NET技术,反编译Silverlight项目

2011-08-29 19:25 by 狼人:-), 200 阅读, 收藏, 编辑
摘要: 在互联网上,每天都会有很多Silverlight项目发布,有的是开源,有的只是为了展示。在Silverlight学习的初期,多数都需要模仿学习,所以,发现一个Silverlight项目,能够查看其中的源代码是最好不过了。但是,Silverlight发布,只是发布资源包XAP,而所有资源都在这个XAP文件中,该如何查看其中的资源和代码呢?下面我将演示反编译的方法,演示中我将用Silverlight.Net首页Silverlight作为例子。 1. 首先打开Silverlight.Net,该页面中包含一个Silverlight导航动画; 2. 在浏览器中,点击右键,查看页面源代码; ... 阅读全文

一起谈.NET技术,重构TekPub——从ASP.NET MVC框架迁移到Ruby on Rails

2011-08-29 19:25 by 狼人:-), 228 阅读, 收藏, 编辑
摘要: TekPub是一个面向开发人员的站点,致力于为开发人员提供一系列主题的在线培训,主题范围非常广泛,从微软的O/R Mapping框架Microsoft Entity Framework,到如何使用Ruby on Rails技术编写自己的日志引擎等内容都有涉及。该网站是由前微软员工Rob Conery与Lounge的老板James Avery创立的。 TekPub是个很有趣的学习案例,公司开始时使用ASP.NET MVC框架,之后很快迁移到了Ruby on Rails上。InfoQ与Rob和James探讨了这次迁移之旅。 InfoQ:和我们谈谈TekPub吧,对于哪些不熟悉你们的产... 阅读全文

一起谈.NET技术,WPF Multi-Touch 开发:高级触屏操作(Manipulation)

2011-08-29 19:25 by 狼人:-), 435 阅读, 收藏, 编辑
摘要: 在上一篇中我们对基础触控操作有了初步了解,本篇将继续介绍触碰控制的高级操作(Manipulatioin),在高级操作中包含了一些特殊的触屏手势:平移、缩放、旋转,当然在WPF 中无需自行开发这些手势,只需将UI 控件的IsManipulationEnabled 属性激活,并通过以下四种事件完成各种触屏手势操作:ManipulationStarting、ManipulationStarted、ManipulationDelta、ManipulationInertiaStarting、ManipulationCompleted,下图为各事件之间的工作顺序及关系。 创建项目 新建项目在... 阅读全文

一起谈.NET技术,在.NET中嵌入IronPython 交互

2011-08-29 19:25 by 狼人:-), 305 阅读, 收藏, 编辑
摘要: 随着IronPyhon 2.0 的发布,.NET Dynamic Language Runtime 也更加成熟了,在2.0中我们可以用动态脚本以粘合剂的方式编写架构体系中的各种逻辑单元,既便于修改,又能灵活适合多变的业务场景。当然,我的目标是在 Platform Framework 中能嵌入脚本引擎,而不是用 ipy.exe 去执行一个“独立”的任务。要让.net 项目能真正跟脚本进行交互,还得需要提供脚本引擎的实现。这得提到DLR一些基本概念了。 下图摘自 DLR 帮助文件,通过它我们基本可以了解基于 DLR 的组成方式。 下图描述了 DLR 的基本执行流程。 Scrip... 阅读全文

一起谈.NET技术,Silverlight的搜索引擎优化

2011-08-29 19:25 by 狼人:-), 222 阅读, 收藏, 编辑
摘要: 什么是SEO,为什么它是如此重要? SEO(搜索引擎优化)是改善交通的数量和质量,从搜索引擎网站的过程。这意味着,做搜索引擎优化您的网站将使其更具可转位及更多的人参观。下面是你的规则应该坚持以做最好的搜索引擎优化几点: <title>标签应包含有关您网站的最重要的信息 最重要的内容应留在本页面(开始后<body>标记) 所有图像标记号(<img />)应界定上的Alt标签-这是搜索引擎理解什么是图像的唯一途径说' 简短的开场白,RIA的世界 如今,网络空间是完全不同的网站。老式的HTML是慢慢地被替换为新的富互联网应用(RIA)。但他们为什么这么受欢 阅读全文

一起谈.NET技术,C# 4动态编程新特性与DLR剖析

2011-08-29 19:25 by 狼人:-), 418 阅读, 收藏, 编辑
摘要: 近几年来,在TIOBE 公司每个月发布的编程语言排行榜 [1] 中,C# 总是能挤进前10 名,而在近10 年的编程语言排行榜中,C# 总体上呈现上升的趋势。C# 能取得这样的成绩,有很多因素在起作用,其中,它在语言特性上的锐意进取让人印象深刻( 图1 )。 图1 C#各版本的创新点 2010 年发布的 C# 4 ,最大的创新点是拥有了动态编程语言的特性。 1 动态编程语言的中兴 动态编程语言并非什么新鲜事物,早在面向对象编程语言成为主流之前,人们就已经使用动态编程语言来开发了。即使在 Java 、 C# 、 C++ 等面向对象编程语言繁荣兴旺、大行于世的年代,动态编程语言... 阅读全文

艾伟也谈项目管理,代码背后的点滴

2011-08-29 19:09 by 狼人:-), 163 阅读, 收藏, 编辑
摘要: 有段时间没有更新技术blog了,现在有空每天都写写围脖,记录生活和工作的点滴,但是有时候发现有些技术的想法和工作总结没有像过去那么完整的写很大一篇,但是也有零零散散的不少点滴,因此想着随意的写这么一个连续的片段分享。 为什么叫做代码背后的点滴呢,其实在现在互联网应用来说,其实用什么语言,用什么平台有些场景有影响,但已经不是绝对重要的因素的,其实代码被后的设计思想才是最重要的。而用最熟悉的方式去表现最自然的想法,那才能做到游刃有余,就好比我向华黎同学申请这次内部奖励的奖品希望是手写笔,因为不论什么画图工具用起来都会妨碍我的顺畅的表达,最终我把注意力集中到了画本身上,而丢失了应有的灵感(在... 阅读全文

艾伟也谈项目管理,需求管理成熟度的五个级别

2011-08-29 19:09 by 狼人:-), 369 阅读, 收藏, 编辑
摘要: 需求管理是软件开发全生命周期重要的一个环节,我们每个人都知道它的重要性,但是要真做做好并不简单,我也写了一本在线电子书业务分析与需求.pdf来讲解需求相关内容。对于每种技术和方法,就像以前我写过的企业架构成熟度模型(EAMM)的一样,我们都不可能一下子就精通,而是按照一种学习的曲线进展,本篇本篇主要介绍一下需求管理成熟度的六个级别。 级别0:没有需求(no requirements) 没有任何明确的需求被记录下来,他们假定知道要构建什么,希望节省需求的时间来做开发,但这势必会给开发工作带来混乱,因为需求是一项比较复杂的工程,并不能通过假定就可以明确软件功能,这样做很可能会导致所做... 阅读全文

艾伟也谈项目管理,项目开发经验谈:如何成为出色的开发人员

2011-08-29 19:09 by 狼人:-), 203 阅读, 收藏, 编辑
摘要: 前言:之所以有此一文,不是空穴来风,也不是故意的哗众取宠,而是最近的一些所见,所感。在本文中总结出来,希望对大家有帮助。 因为一些工作原因,其他的系列文章没有接着写下去,还望大家见谅。 不要成为代码的机器 开发人员的事情就是coding,没日没夜的coding,而且大家都是这样在coding,但是效果和结局就不一样:有人coding了N多年,技术还是原地踏步,编写出来的代码还是bug连连;有人coding就变成了技术骨干,甚至有人成为了CTO, 架构师等。 为什么? 首先从一个小的故事说起:一个项目,分配给了项目组的人开发。于是大家就热火朝天的干了起来。当时,就发现了一... 阅读全文

艾伟也谈项目管理,一种适用于真实世界BPM的协作方式

2011-08-29 19:09 by 狼人:-), 237 阅读, 收藏, 编辑
摘要: 我们在业务流程管理(BPM)领域里摸爬滚打已经很多年了,最近看到人们对它的关注不断提升,这是非常有趣的一件事。对这一趣事儿起催化作用方面的有,工具的日渐成熟、新BPMN2.0规范的形成、以及更多更好的相关出版物带来的人们对BPM的进一步理解,它们代表着BPM领域内最重要的进步。 厂商提供了越来越高精良的图形化工具以及由其承诺的业务流程实现自动化,无需任何编码甚至开发者参与;然而,我们也发现了使用这些“传统”的以厂商为中心方法的一个问题:它们并未履行任何承诺! 我们以前的一些项目可以佐证以上观点。公平起见,既然这些工具大都会面临相同的基本问题,就不具体点名是什么工具了,有个同事不得不... 阅读全文

艾伟也谈项目管理,五年Skype架构师之路的感言

2011-08-29 19:09 by 狼人:-), 257 阅读, 收藏, 编辑
摘要: 简介 作为架构师和设计者,我们常把手头的事情作为工作焦点,很少反思过去如何。我们应该温故而知新。我从作为skype架构组领导的55 个月经历中总结了6个经验。其中一些是技术性的,另外一些是架构师较为软性的观点。首先介绍一下Skype的背景资料。 Skype背景 Skype是让用户可以进行音频视频通话的软件,也可以拨打普通电话以及发送短消息。公司成立于2003年,从成立以后就有令人难以置信的成长曲线。公司现在有超过五亿两千万注册用户,大约650名员工。这些用户同时产生平均21万个通话,其中大约三分之一包含视频。这个数字大致上是全世界国际通话的 8%。 不用多加说明也能知道,这... 阅读全文

艾伟也谈项目管理,项目管理利刃之MSF

2011-08-29 19:09 by 狼人:-), 254 阅读, 收藏, 编辑
摘要: MSF,MicrosoftSolutionFramework,微软解决方案框架是一个在预算范围内按期创建一个业务解决方案需要一种经过检验的方法。 本文将结合MSF在项目管理中的实际应用进行讲解,如果您是软件项目的参与者,如项目经理、开发工程师、系统架构师、顾问、质量管理人员等,想找到项目管理中遇到问题的解决方案,相信本文会给您一定的帮助。 MSF为成功地规划、设计、开发和部署IT解决方案提供了一套成熟的方法论。与具有固定框架的方法相反,MSF提供了一个可以伸缩的灵活框架,以满足任何规模的组织或者项目开发团队的需要。MSF指导由原理、模型和用来管理人员、项目和技术元素的准则(大多数项... 阅读全文

艾伟也谈项目管理,如何做一个合格的项目经理

2011-08-29 19:09 by 狼人:-), 174 阅读, 收藏, 编辑
摘要: 项目经理这个角色说大不大,说小也不小。在大公司,项目经理这样的角色可能存在不计其数,他们很多都是寄托于项目的存在而生,项目的完成而终;但对于一些小作坊的软件公司,项目经理一职很多时候是一个长期持有的过程,拥有这一角色的人,很多时候就是主要研发群体甚至全部团队的核心领导人,这些人很多时候属于公司的顶梁柱、火线人员或突击队长。在我们看来项目经理就开会、陪客、吃饭、吹牛B,一天正常的8个小时工作时间,没几个点能看见他的身影,整天来无点去无踪,“那谁谁谁,你这今天的任务是什么什么,你你你,那东西怎么样啦?啥时候完事啊?”,他们就是这样整天游手好闲,一下说说这,一下乱乱那。在自己管辖的圈圈内活生生一个土 阅读全文