TechEd第一天
今天的旅程注定是个难忘的囧途,跟老大一起上演了一根烟引发的追火车事件… 到了北京之后,已经是3点多了,所以开始的梁念坚的云的故事没有听到,直接从第二场开始听了,这里记录一下。 第一场 潘正磊关于开发工具和平台的讲演,中间涉及到了Windows Azure,Silvelight,WindowsPhone7,VisualStudio2010等,相应由各个方向的专家通过Demo展示给大家, 其中,VisualStudio2010管理项目的生命周期,从客户的需求到项目经理的任务分发,再到开发人员的实现,测试人员的Bug反馈到项目经理,然后由项目经理再将Bug下发到开发人员手中,VisualStudio2010在中间起了重要的作用,值得说明的是这个需求分析的表单时可定制的,很灵活。 Azure部分,使用最新的云端开发模板1.3可以创建一个可选择云端环境的项目,也做了一个登陆验证的演示,可以
http://cyqdata.cn/cnblogs/article-detail-139
DatagridView 经典用法总结(中)--附有可下载Demo
知识点:一:DatagridView 导出数据到Excel(两种方法)
二:DatagridView 中显示密码列
三:WinForm最简单两GridView同步滚动
四:DataGridView添加任何控件
一.DatagridView 导出数据到Excel
有两种方法:一种是直接利用I/O读写去生成非标准格式的xls文件,速度很快。另外种就是直接使用EXCE
http://cyqdata.cn/cnblogs/article-detail-137
Expression Blend入门
本文将介绍如何选择合适的开发环境做WPF、SilverLight或者WP7,以及一些简单的Demo。
如果你想创建WPF、Silverlight或者是Windows Phone项目,你可以按照下面来选择相应的环境搭建:
开发Windows Phone
Windows Phone Developer Tools
你可以只安装这个就能进行WP7的开发。这个是All-In-One的安装包,包括一个专门为开发Windows Phone应用程序的Expression Blend、Visual Studio以及开发手机游戏的XNA Game Studio!
具体的清单如下:
安装Windows Phone Developer Tools所包含的工具集合如下:
* Visual Studio 2010 Express for
http://cyqdata.cn/cnblogs/article-detail-136
网站架构,从小型到支持高负载的大型网站发展之路
云计算挺火,一些朋友也动了搞搞云计算的念头,但无奈市场性的概念太多,有点眼晕,便托我给讲一讲。
但是我对云计算也不甚精通,一直从事高负载大并发网站架构的研究,看了下云计算相关的资料,发现其技术起源、发展和我研究的东西是相通的,至于云计算要搞什么商业模式、要咋发展,这个是行业性难题不是我这颗葱能讲清楚的,但云计算用到哪些技术,这些技术为什么产生我倒是可以讲一讲的。把技术根源、发展基础搞清了,以后该咋进行商业模式突破就看朋友们各自去怎么理解了。
因此,便产生了下面《云技术技术溯源》这篇入门型交流PPT,跟朋友们交流完后,觉得可能还有点用,特地分享给大家。
有一点请大家注意:该PPT原本要传到百度文库上,但百度文库认为这篇PPT内容质量太差(我琢
http://cyqdata.cn/cnblogs/article-detail-135
【我来解惑】.Net应该学什么怎么学(二)
接上篇《【我来解惑】.Net应该学什么怎么学(一)》。
二、C#面向对象基础
初学者学面向对象的时候没必要(也做不到)把面向对象学的非常透、非常深,因为如果想深刻的理解面向对象,必须要有大量的编程经验才能真正体会面向对象到底是怎么回事、有什么好处。以前听到过有人建议初学者学习设计模式,我认为纯属误人子弟,对于初学者来说没有大量的编程经验,根本看不懂设计模式在说什么。这个阶段只要弄明白怎么声明类、什么是访问级别(主要是public、private)、什么是属性、字段、方法、什么是继承、什么是override就可以。面向对象有三个特性:封装、继承、多态。对于初学者来说理解多态是非常困难的也是没太大必要的,这个阶段只要能掌握封装和继承就可以。
三、简单的WinForm编程
http://cyqdata.cn/cnblogs/article-detail-134
开源发布F#写的人工智能AI项目。
1. “AI”是用F#写的一个人工智能软件兴趣开发项目。第一个版本正式发布咯,采用微软公开源代码协议。
Codeplex发布和下载地址:http://ai.codeplex.com/releases/view/56684
需要安装了F#组件的VisualStudio 2010来编译项目。本次的程序使用命令行工具进行交互,使用上让人想起早先的文字MUD。关于使用方法参见下图。
2. AI软件发布了第一个版本:0.0.1。基本上就是构思中的样子,这个软件描述了假想世界中的虚拟机器人和人工智能系统。它知道自己有一个机器人身体,知道自己有眼和鼻但还不清楚它们有什么用处,因为在这个假想的星球上眼到之处都是白色,因此视觉、味觉和位置信息在
http://cyqdata.cn/cnblogs/article-detail-133
《重构之美》-开篇
关于代码的重构,已经是老调常弹。自Martin Fowler《重构》一书横空出世,到如今已有十年光景,对于重构,许多程序员已经耳熟能详。然而,每当我们面对项目压力时,常常会将重构置之脑后,抛到九霄云外。理由足够充分,言之凿凿:功能还未完成,何谈重构?究其原因,是因为我们还未将重构当做习惯。即便现在的许多IDE已经支持自动完成常见的重构手法,我们仍然会忘记,仍然会忽略。只因重构不能直接产生价值,只因我们还没有看清重构之美。 本专栏试图重新擎起重构的大旗,为改善既有代码的设计,使重构深入人心,来一次“歇斯底里”的鼓吹与呐喊。重构并非微不足道的小事,若人人皆能学会运用重构之利器,或许,开发人员的生存环境就会变得美好。美的代码,美的结构,美的设计,总是那样的赏心悦目。我们向往美好的环境,这是天性使然;那么,为何我们不能营造美好的代码环境? 如何呈现重构之美?关键在于发现丑陋而不堪忍受。对丑
http://cyqdata.cn/cnblogs/article-detail-132
Silverlight+WCF 实战-网络象棋最终篇之对战视频-上篇[客户端开启视频/注册编号/接收视频](五)
前言:
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->近期在忙点“秋色园”的事情,所以网络象棋这一块文章就写的相对慢,而且刚好接上篇:Silverlight+WCF 实战-网络象棋最终篇之非线程阻塞倒计时窗口(四) 之后,是一些代码修改,会比较枯燥,所以没接着写,不过有昨天有网页表示对象棋在线演示中的 对战视频 感兴趣,希望可以提前看到代码,所以本次就提前写里面的对战视频这一块。由于对战视频采用控制台程序,并没有在服务器运行,所以在线演示版本里一进入显示是显示“未链接”的提示。
作者:路过秋天 博客:http://cyq1162
http://cyqdata.cn/cnblogs/article-detail-130
WinForm控件设计:DataGridView导出数据
做WinForm开发离不开一些基本的控件,作为数据列表显示控件中,其中最为重要的要数 DataGridView,以前用的是一些第三方控件,提供了比较灵活和方便的功能,比如:根据所见即所得导出数据到Excel 或者 文本,没办法自力更生才是生存之道。 DataGridView的数据导出功能在网络上搜索后,有一些同仁实现过,但有些是需要依赖Excel ,这种方式不但耦合性强,性能也差,为了一劳永逸的解决这个问题,特改写了代码,在此提供给各位同仁,欢迎斧正。 1、首先,看使用方法: dgvProjectList.ExportToExcel();或者 dgvProjectList.ExportToExcel("项目列表"); 如果不使用数据导出功能,不会对
http://cyqdata.cn/cnblogs/article-detail-129
避免复制与粘贴
《重构之美》之一 在开发过程中,当你发现代码可以Copy-paste时,就意味着代码出现了重复。这是一种典型的反模式。William J.Brown等在著作AntiPatterns-Refactoring Software,Architecture, and Projects in Crisis(即《反模式——危机中软件、架构和项目的重构》)中认为这种形式的复用让开发的代码行数量虚假地增加,但是不能像其他形式的复用一样降低成本。Copy-Paste代码的方式违背了DRY(即不要重复你自己)原则,使得多处地方出现了同样或者相似的代码。这是一种征兆,一旦在方法中或方法之间开始Copy-Paste操作,就意味着需要采用Extract Method重构手法。在提取方法之后,还可以根据情况利用Move Method重构手法,将其搬移到一个类中,然后在原
http://cyqdata.cn/cnblogs/article-detail-128
金山安全卫士代码批评
金山卫士开源了,参见金山卫士开源计划。 抱着学习研究的目的下了一份看看。看了一些代码,觉得被忽悠了。中国知名通用软件厂商,民族软件业的一面旗帜就这代码水平?代码显然达不到工业级的标准,只能算是实习生练手的水准。为了给有意拿这份代码当学习资料的初学者提个醒,不被误导,做出了一个艰难的决定,写博文来评论金山安全卫士的代码。
先说说代码中的几个突出问题
C++的应用不过关。该用const和static的时候不用代码封装做的不好,调用者知道被调用者很多细节,且对被调用者做了过多假设。文件和函数命名不规划。不能表达内容,且容易引起误解测试靠打印而不是assert,很难自动化验证。且测试代码未与工程代码分离。太多的if-else而不会用表驱动函数逻辑不严格,有明显漏洞。
一点一点的看
1 C++的应用不过关。该用const和static的时候不用
pp
http://cyqdata.cn/cnblogs/article-detail-127
系统架构技能之设计模式-抽象工厂模式
一、上篇回顾
上篇我们主要讲述了简单工厂模式和工厂模式。并且分析了每种模式的应用场景和一些优缺点,我们现在来回顾一下:
简单工厂模式:一个工厂负责所有类型对象的创建,不支持无缝的新增新的类型对象的创建。
工厂模式:多个工厂负责多个类型对象的创建,每个工厂只负责具体类型对象的创建,支持无缝的新增类型对象的创建,需要实现工厂接口类和具体的类型对象类。
我们来简单的对比下这2个模式的优缺点:
模式名称
优点
缺点
简单工厂模式
一个工厂负责所有对
http://cyqdata.cn/cnblogs/article-detail-126
Expression Blend使用笔刷
Expression Blend可以让我们十分方便的创建基于WPF的UI,在本文中,我会介绍如何使用WPF画图形,并使用颜色等元素去修饰图形。 什么是笔刷? MSDN是这样解释的:Everything visible on your screen is visible because it was painted by a brush. For example, a brush is used to describe the background of a button, the foreground of text, and the fill of a shape. This topic introduces the concepts of painting with Windows Presentation Foundation (WPF) brushe
http://cyqdata.cn/cnblogs/article-detail-125
跟我学做c#皮肤美化--Textbox
效果预览 还是先看看最终的效果图(和QQ登陆中的输入框效果差不多): 查看整个相册 效果说明: 1.实现了水印的效果 2.实现了鼠标移上去的时候周围产生辉光 3.输入前端可以设置图片 实现辉光效果 整体说明: 前面显示的那个图片我采用的是一个picturebox,当然如果你愿意也可以自己画(后续的“button再探讨”中就采用的是自己画的方式)。图片后面的输入文本框采用的是textbox控件,这样一来就避免了许多绘制textbox的麻烦(我一开始打算自己绘制用户输入的字符的,不过发现不理想)。然后边框和辉光都是画出来的
http://cyqdata.cn/cnblogs/article-detail-114
Socket 同步和异步模式
学习socket 的一些笔记,希望和大家一起讨论 。一.什么是socket 所谓socket通常也称作"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求。 以J2SDK-1.3为例,Socket和ServerSocket类库位于java .net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。
二 .开发原理: 服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些
http://cyqdata.cn/cnblogs/article-detail-113
使用PostSharp在.NET平台上实现AOP
摘要
本文首先介绍AOP(面向方面编程)的相关概念及理论,然后介绍如何使用PostSharp框架在.NET平台上实现AOP,最后对PostSharp的机制及AOP的优劣进行一个简单的分析。
AOP(Aspect-Oriented Programming)
AOP的基本定义及作用
根据维基百科的定义,“AOP(Aspect-Oriented Programming)是一种将函数的辅助性功能与业务逻辑相分离的编程泛型(programming paradigm),其目的是将横切关注点(cross-cutting concerns)分离出来,使得程序具有更高的模块化特性。AOP是面向方面软件开发(Aspect-Oriented Software Development)在编码实现层面上的具体表现(面向方面软件开发AOSD是一个囊括面向方面分析、面向方面设计和面向方面编程等一系列概念的完
http://cyqdata.cn/cnblogs/article-detail-112
关于大型asp.net应用系统的架构—如何做到高性能高可伸缩性
简介
前面一篇<<关于大型asp.net应用系统的架构-架构的选择>>写完之后,有一些同仁热心回复,有的是提问题,同时希望能举一些例子来说明;有的是提建议,希望下一篇写得更详细点;还有的同仁提出不同的观点。感谢大家的参与。会继续努力的。本文将针对层Layer和排Tier的区别做个辨析。并详细介绍3 Tier / N Tier架构中各排Tier的开发。各Tier的分布式方式。以及为了达到高性能,低延迟,高可伸缩性,需要采取哪些方法和手段。
关于“大型asp.net应用系统 ”的概念
意指能支持同时在线用户数目很多的asp.net应用系统。同时在线用户数目要达到多少才算大型。其实也没有一个可以作为共识的定义,个人认为如果一个应用系统能做到7x24小时同时在线用户数不少于5000的,应该可以称为大型应用系统。例如:微软的官网www.m
http://cyqdata.cn/cnblogs/article-detail-111
CRM 2011中的Web服务
CRM2011中,对其系统做了进一步的统一与集中,体现之一,就是其所提供的Web服务。 在CRM4时代,CRM提高的服务有三个,分别是: 名称 功能描述 DiscoveryService 提供搜索组织单位的途径 CrmService 提供访问所有实体的途径 MetadataService 提供访问元数据的途径 而在CRM2011中,将CrmService与MetadataService的角色进行整合,取而代之的是IOrganizationService,而DiscoveryService也演进为IDiscoveryService Web服务。这两个服务的功能如下: IDiscoveryService:用于获取组织列表以及相应组织的IOrganizationService的URL地址; IOrganizationService:访问数据以及元数据; IDiscov
http://cyqdata.cn/cnblogs/article-detail-110
【STM32 .Net MF开发板学习-22】超声波测距模块研究
智能小车目前已经可以通过各种方式进行遥控了,不过做到这一步还远远不够,我们需要智能小车有自己的“思维”,根据需要进行进退、转向或停止。要做到这一步,必须让智能小车有自己的感知“器官”,第一步我们先添加测距传感器,以后我们会陆续研究寻际、摄像头等传感器,让所谓的智能小车,更加“智能”。
目前市面上的超声波模块有两种硬件接口,一种是触发和脉冲输出方式,一种是串口通信(RS232),后一种编写通信接口程序比较简单,就是简单的串口编程,不过售价比较高。前一种对实时性要求很高,其测量精度和你的程序实现相关。
我们仅介绍前一种通信方式,模块的工作原理如下:
(1)采用IO触发测距,给至少10us的高电平信号;
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO输出一高电平,高电平持续的时间
http://cyqdata.cn/cnblogs/article-detail-109
Windows PowerShell 2.0 代码调试并排除bug
没有任何脚本或程序能够保证在任何情况下毫无错误地执行,在外界条件变化的情况下,需要预防可能出错之处。本文将着重讲解如何调试PowerShell代码,即查找并排除bug,这是每个开发人员都应该熟练掌握的技术。在本文将介绍PowerShell提供的解决方法,以及诊断和预防错误的方法,以使程序更加健壮和稳定。 大多数编程语言和环境提供了完整调试特性的系统,可以逐步跟踪程序的执行,保证所有的执行过程符合预定的算法。然而PowerShell并没有提供脚本调试程序,这样开发人员必须采取其他手段来调试错误。可以通过一些巧妙的手段贴近于对程序的逐步调试,临时挂起执行流并检查程序状态。 对于一些复杂的任务,通常情况下会将程序细化分解为多个相对独立的子模块来检查各自的功能。分解后的模块之间要尽可能不包含过多耦合,这样才不会在调试时造成太多的麻烦。 1 打印调试 通过打印来调试程序是最原始且很有
http://cyqdata.cn/cnblogs/article-detail-108