RSS 2.0 Feed
2006-07 Entries
摘要:[来源:Microsoft Windows SDK Team Blog ] Which SDK is right for me? http://blogs.msdn.com/windowssdk/archive/2006/07/27/680794.aspx MSDN Quarterly(季度) Library: 包含详尽的开发信息,针对最新2个版本的Visual Studio,Office和其他类似应用的开发。 MSDN Library for Visual Studio: 针对Visual Studio的小型MSDN Library版本,VS 2005的MSDN Library针对VS 2005开发。 MSDN Online Library:: 除了MSDN Quarterly Library的内容外,也包括早于最近2个版本的产品的内容,也包括MSDN档案,其中包括了一些更老的内容。 Platform(平台) SDK(PSDK): PSDK包含针对使用Visual Studio 6以及稍后版本的开发的内容,还有早于Windows XP的其他操作系统的资料。该SDK的最近的版本还是2003年2月发行的。 WinFX SDK: 这个SDK的名称不再正式使用,因为已被另名为 .NET Framework 3.0,其内容被包含在Windows SDK中。别再使用该SDK,因为它内含已经过时的信息。 Windows SDK: 这是PSDK和WinFX SDK之后的下一代SDK,微软内部经常用PSDK + WinFX SDK = Windows SDK来描述该产品。该SDK针对专为Windows Vista开发的应用,虽然也适用于针对Windows Server 2003 和 Windows XP SP1开发的应用。要求的Visual Studio的最低版本为2005。 "Vista SDK": Windows SDK的另一个名称,但一般以Windows SDK这名称为主,因为用户也可以针对别的操作系统做开发,但Windows SDK是为Windows Vista优化的(optimized for Windows Vista)。 Windows DDK: 这是Windows Device Kit (WDK) 以前的名称。该DDK包含了开发驱动器和其他设备的底层系统API的信息。详细信息请见这里。 Windows Device Kit (WDK): 把测试套件(test suites)集成进来,DDK 就成了WDK。WDK是针对微软操作系统系列的驱动器集成开发系统。它组合了Windows DDK和Hardware Compatibility Test (HCT) kits(硬件兼容性测试工具),同时提供了微软内部用来测试Windows操作系统稳定性和可靠性的测试套件。...[阅读全文]

posted @ | Feedback (9) | Filed Under [ .NET ]

摘要:1。[来源:Ken Cox] 根据ASP.NET Atlas开发组的Alain,Atlas正式版将于今年年底推出,将成为代号为Orcas的.NET 3.5的一部分,将支持IE,Safari,和Firefox。Alain原来的帖子好像被删除了,在这个帖子里,则把发行时间说得很含糊 News about Atlas...http://blogs.msdn.com/alainler/archive/2006/07/28/680942.aspx 2。[来源:Scott Guthrie] ASP.NET Atlas开发组推出 “如何做。。。?(How Do I?)” 教学录像系列。目前已经推出前两集: Get started with “Atlas” (10 分钟) Get started with the “Atlas” Control Toolkit (12 分钟) http://www.asp.net/learn/videos/default.aspx?tabid=63 3。 [来源:Somasegar] IronPython 1.0 RC版发行 http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython IronPython 与Visual Studio IDE的集成http://blogs.msdn.com/aaronmar/archive/2006/02/16/533273.aspx 4。[来源:Andrew Stopford] 微软宣布将推出Sandcastle - 托管类库文档编译器 Announcing Sandcastlehttp://blogs.msdn.com/sandcastle/archive/2006/07/27/680793.aspx 在Sandcastle组的博客上有个PPT下载,里面有Sandcastle的宗旨,想解决的问题,文档生成过程,将支持的特性等 Sandcastle Overview http://blogs.msdn.com/sandcastle/archive/2006/07/28/681209.aspx 另外,开源NDoc的作者被人攻击,宣布终止NDoc开发,详见http://haacked.com/archive/2006/07/26/TheDemiseOfNDocAndAChallengeForUsersOfOpenSourceSoftware.aspx 5。[来源:Wallace B. McClure] Oracle推出最新的数据访问组件,支持 .NET 2.0,Visual Studio 2005,以及PL/SQL的调试等 Oracle Data Access Components (ODAC) Downloads http://www.oracle.com/technology/software/tech/windows/odpnet/index.html...[阅读全文]

posted @ | Feedback (6) | Filed Under [ .NET ]

摘要:Charles Petzold 的千页著作《Applications = Code + Markup -- A Guide to the Microsoft Windows Presentation Foundation》已经交付印刷了,不久就会出版。 在他的博客里,他给想写书的人以下建议(粗浅翻译): Book-Writing Advicehttp://www.charlespetzold.com/blog/2006/07/240338.html1。保持一个平稳的时间表。每星期5-6天,每天大概6个小时,这样的安排,每个月足以写出100页来。2。别无谓耽搁,别指望在最后几个星期内写完一本书,除非你是那位快笔作家西默农。3。买个舒服的显示器,舒服的键盘,舒服的坐椅。这些是写书的最重要的计算机部件,处理器,内存,和储存都是次要的。4。吃好,睡足。5。千万别在写作当天把东西写尽,留点余味,下次再写时好上手(这是我从海明威那里学来的好建议)。如果写作当天结束时留下问题的话,空闲时你就会琢磨,也许等你下次坐到桌子前时,你已经在你的脑海里把问题解决了也没准。6。试着保持一个平衡的生活。如果你一天内用功写书了,那么你做其他跟写书无关的事情时也不会有负罪感。7。尽量避免大的分心,譬如新的电子玩具,一个新的关系,或者动手术。8。也尽量避免小的分心。有些工作是可以在听电话和写电邮时同时进行的,但写书不属于这类工作9。先写编码,然后写相关文字。10。别怕跳跃。除非你知道以后章节都包含些什么内容,你是不知道前面章节应该写些什么的。11。只求有进展,不求完美。12。书写完后,给自己送个礼物,譬如一个新电子玩具,开始一个新的关系,甚至做个手术什么的。13。书写完之前别理发。...[阅读全文]

posted @ | Feedback (8) | Filed Under [ 书籍 杂类 ]

摘要:[来源:Windows XP Embedded Team]  Linux-Watch 的Steven J. Vaughan-Nichols 在他的文章《Top five things Linux can learn from Microsoft》里把MSDN列为Linux可以从微软借鉴的头五件东西的第一件(其他是Common Interface,Common Format,Marketing和OEM Support),可见MSDN或类似东西对开发人员的重要性。 好消息是,MSDN Library 可以免费下载了!当然,如果你有Visual Studio 2005的话,那么你大概已经有MSDN Library了。 MSDN Library May 2006 Editionhttp://www.microsoft.com/downloads/details.aspx?FamilyId=373930CB-A3D7-4EA5-B421-DD6818DC7C41&displaylang=en  ...[阅读全文]

posted @ | Feedback (10) | Filed Under [ .NET 杂类 ]

摘要:在最近的一个应用里,使用了五月的LINQ CTP版。一个Application类,与一个Landscape类是one-to-many的关系,下面的编码是自动生成的 public partial class Application : ...{  ...  private System.Data.DLinq.EntitySet<Landscape> _Landscapes;  ...} public partial class Landscape : ...{   ...  private System.Data.DLinq.EntityRef<Application> _Application;   ...  public Application Application {            get {                return this._Application.Entity;            }            set {                if ((this._Application.Entity != value)) {                    this.OnPropertyChanging("Application");                    if ((this._Application.Entity != null)) {                        this._Application.Entity = null;                        this._Application.Entity.Landscapes.Remove(this);                    }                    this._Application.Entity = value;                    if ((value != null)) {                        value.Landscapes.Add(this);                    }                    this.OnPropertyChanged("Application");                }            }        }    ...} 上面红字的两行的顺序应该倒过来...[阅读全文]

posted @ | Feedback (4) | Filed Under [ .NET ]

摘要:[来源:J.D. Meier's Blog] 微软刚推出了一个ASP.NET 2.0 Internet 安全之参考实现( ASP.NET 2.0 Internet Security Reference Implementation)。这是个配有全部编码和指导性文档的样本应用,其宗旨是示范在实际应用中如何应用“模式和实践之安全向导”中的最佳实践。这个应用是从Pet Shop 4发展而来,使之适用于Internet。该应用使用了表单认证,用户和角色数据是储存在SQL数据库里的。 该应用可以在其官方网站上下载: ASP_NET 2_0 Internet Security Reference Implementation: Homehttp://www.gotdotnet.com/codegallery/codegallery.aspx?id=48f35de8-cd92-4ac6-9144-12d5a13f22ff 下载的内容包括三部分1。VS 2005方案和编码2。Internet 安全参考实现的指导性文档3。场景(Scenario)和方案文档 在安全参考实现的指导性文档里,涉及的设计决策包括下述分类1。认证2。授权3。输入和数据验证4。数据访问5。异常管理6。敏感数据(Sensitive Data)7。审记和日志记录(Auditing and Logging) 在每个分类里又具体列出了详细的设计决策,譬如,在认证方面,要做的决定包括1。使用表单认证2。使用SQL成员提供器3。使用SSL来保护身份验证信息和认证cookies4。不直接存储明文密码5。强制使用安全性强的密码6。保护对身份验证信息存储的访问7。不除久认证cookies8。在认证cookies上设置HttpOnly9。使用独特的cookie名字和路径 对每一个决定,又详细列出1。是怎么实现的2。这么做的原因3。好处4。缺点5。相关资源 涉及的方面很多,内容非常全,是一个学习设计/实现安全Web应用的好范例...[阅读全文]

posted @ | Feedback (8) | Filed Under [ ASP.NET/IIS ]

摘要:看到一篇标题为《数据库遭受空前规模的黑客攻击(Hackers striking databases in record numbers) 》的报道。 http://www.infoworld.com/article/06/07/19/HNsqlattacks_1.html?source=NLC-AD2006-07-20 根据基于亚特兰大的SecureWorks公司,他们探测到,他们的1300个客户的数据库遭受的攻击从今年前三个月的平均每天100-200次急剧上升到现在的每天8000次。 这些黑客,使用位于俄罗斯,中国,巴西,匈牙利和南韩的计算机,采用的是SQL注入攻击法。他们先从Google的搜索引擎中找到有表单的网页,然后在表单数据里注入恶意的SQL命令, 考虑到很多Web应用并不对表单里的数据做验证,这样的命令往往在数据库里被成功执行。然后他们用自动的工具从数据库里收集信息,进而注入更多编码,导致数据库系统从网上下载能让黑客控制服务器的程序。 由于SQL注入攻击的对象往往很集中,譬如金融机构,不象广泛传播的病毒一样容易被人瞩目。其中一个对象是CardSystems Solutions,该公司负责处理信用卡付款数据。一个黑客使用SQL注入攻击安装了一个程序,把信用卡数据每隔四天传到一个远程计算机上,据说收集了4千万个信用卡号码,涉及的银行汇报的受损金额达数百万美元。...[阅读全文]

posted @ | Feedback (8) | Filed Under [ .NET 杂类 ]

摘要:Visual Studio 400 Differenceshttp://www.400plusdifferences.com/ 我们有个同事最喜欢 #256...[阅读全文]

posted @ | Feedback (6) | Filed Under [ .NET ]

摘要:[来源:Rob Caron]  Howard van Rooijen的《连续教育 -- 下12个月要学的新技术?》里的2张图片。 Continuous Education - what will you learn in the next 12 months?http://blogs.conchango.com/howardvanrooijen/archive/2006/06/23/ContinuousEducation.aspx 第一张描述了作者在所在公司参与的所有项目所用的技术,趋向表明,开发正朝愈来愈复杂的方向发展,生成,测试,部署过程的自动化,围绕着Team Foundation Server的源码控制和项目管理等。随着向.NET空间的迁移,开发方法也在变迁。   第二张描述了已经推出或将在下12月内推出的相关新技术  ...[阅读全文]

posted @ | Feedback (8) | Filed Under [ .NET ]

摘要:2006年1月份的企业库2.0,跟早先的版本相比,变化很大,具体的变化参考 About the January 2006 Releasehttp://msdn.microsoft.com/library/?url=/library/en-us/dnpag2/html/EntLib2.asp 其中一个瞩目的变化是个新的对象生成器(ObjectBuilder)子系统,位于Microsoft.Practices.ObjectBuilder命名空间之下。它源自于Composite UI Application Block,是个依赖注入(Dependency Injection)框架,而不是一个单纯的依赖注入容器。它主要的功用是负责创建和销毁对象实例。在企业库2.0中,ObjectBuilder被用来把配置数据注入到应用程序块(application block)的类中去,以及把系统监测(instrumentation)类连接到应用程序块的类。ObjectBuilder使得在没有配置文件下的情形下,也能很容易地使用应用程序块。 Brian Button 的博客上有篇《Enterprise Library and Object Builder》,对Object Builder做了很详细的介绍(翻译有点生硬): “......对象生成器是什么东西? 对象生成器(OB)基本上就是个允许你定制对象是如何被创建之过程的管道( pipeline)。你通过类似于下面这样的语句来使用它, MyFoo foo = ObjectBuilder.BuildUp<MyFoo>(“FooInstanceName”); 看上去极其简单,对么?其实,在调用过程中,你几乎可以改变,定制,扭曲实际发生的任何东西。使用OB创建对象的过程可以通过向OB实例注册策略(Strategy)的方式来定制。这些策略通过添加一些步骤来定制创建你的对象的过程。这些策略可以添加在创建对象的不同阶段,这些阶段包括创建前(PreCreation), 创建中(Creation),初始化(Initialization),和初始化之后(PostInitialization),基于你是怎么向OB添加的,取决于你指定的操作应该在什么时候发生。譬如,在企业库中,我们需要在创建前,创建中,创建后(PostCreation )添加几个步骤,我们在一个叫做EnterpriseLibraryFactory的类中把实现这些步骤的策略添加到我们的OB实例中去。 注册在OB里的每个策略在运行时,通过查询与之关联的具体对策(Policy)实例,可以收集各种信息和执行环境(context)。这意味着,你可以用同一个策略来实现不同的目的,只要在运行时通过不同的具体对策提供不同的目的细节即可。......”...[阅读全文]

posted @ | Feedback (3) | Filed Under [ .NET ]

摘要:Jeff Prosise在《MSDN杂志》2006年7月期上的文章历数ASP.NET应用中常见的,容易出错,影响性能和扩缩性的潜在问题 Keep Sites Running Smoothly By Avoiding These 10 Common ASP.NET Pitfallshttp://msdn.microsoft.com/msdnmag/issues/06/07/WebAppFollies/ 1。设置输出缓存的用户控件,如果用LoadControl动态装载,LoadControl返回对象属于PartialCachingControl类,其中的CachedControl也许并不存在,无法转换成原用户控件对象类 2。在 IIS 6.0 中,在设置kernel模式输出缓存的情形下,OutputCacheModule模块有时会保留缓存输出的Set-Cookie header,导致会话串门(cross-session),即一个用户能看到其他用户的会话数据 具体参考KB文章An ASP.NET page is stored in the HTTP.sys kernel cache in IIS 6.0 when the ASP.NET page generates an HTTP header that contains a Set-Cookie responsehttp://support.microsoft.com/kb/917072 或者禁止kernel模式输出缓存<httpRuntime enableKernelOutputCache="false" /> 具体参考http://support.microsoft.com/kb/820129 3。 Forms 认证Ticket的存活时间。在ASP.NET 1.*中,在没有用编码设置的情形下,如果是持久保存,存活时间是50年,如果是非持久保存,存活时间是30分钟。这个问题在ASP.NET 2.0中已经解决,默认存活时间会用web.config里的设置。在ASP.NET 1.*中,只能用编码来解决,具体编码参考原文中的例子。 4。 View State,如果滥用的话,是无声的性能杀手,特别是DataGrids和GridViews等,应该设置EnableViewState=false,或者考虑通过更改LoadPageStateFromPersistenceMedium/SavePageStateToPersistenceMedium把View State放在服务器端。 5。如果使用SQL Server做会话状态服务器的话,默认情形下,每个请求会访问状态服务器2次,造成性能下降。解决方案是,在不用会话状态的页面里,设置 <%@ Page EnableSessionState="false" ... %> 在只读会话状态的页面里,设置 <%@ Page EnableSessionState="ReadOnly" ... %> 6。在ASP.NET 2.0应用中,如果在web.config里设置 <roleManager enabled="true" /> 默认情形下,角色数据是不缓存的,如果角色管理器需要确认当前用户的角色的话,会访问数据库,导致性能下降,解决方案是设置把角色数据缓存在Cookie里(这个Cookie是加过密的) <roleManager enabled="true" cacheRolesInCookie="true" /> 7。Profile 特性持久化问题,在默认情形下,ASP.NET profile管理器使用XML持久机制持久化自定义Profile类,不保存这些类的私有成员,解决方案是把这些类标为[Serializable]或实现ISerializable ,这样profile管理器会使用binary serializer 8。过长的数据库查询或I/O操作会导致线程池的饱和,导致ASP.NET的性能下降。ASP.NET 2.0提供了异步网页(asynchronous page)机制来缓解这个问题。具体参考Jeff Prosise在《MSDN杂志》2005年10月期上的文章 Asynchronous Pages in ASP.NET 2.0http://msdn.microsoft.com/msdnmag/issues/05/10/WickedCode/ 9。<identity impersonate="true" /> 导致客户端用户的身份模拟,要慎用,避免用身份模拟(Impersonation)替代ACL授权。 10。别太有信心,多用Profiler剖析你的应用对数据库的访问情形。重视数据库的设计,认识到DataSet和DataAdapter对web应用也许并不合适,数据访问层要恰当设计,防止粗劣细分(poor factorization),避免在相对简单的操作上浪费太多的CPU周期,导致性能下降...[阅读全文]

posted @ | Feedback (5) | Filed Under [ ASP.NET/IIS ]