tag:blogger.com,1999:blog-200575752009-07-08T00:00:29.040-07:00.Net ArchitectAndrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.comBlogger59125tag:blogger.com,1999:blog-20057575.post-40666081040273649462007-06-02T21:51:00.000-07:002007-06-02T21:52:51.791-07:00Enumerating CLR versions<a href="http://blogs.msdn.com/junfeng/archive/2005/07/07/436755.aspx">http://blogs.msdn.com/junfeng/archive/2005/07/07/436755.aspx</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-4066608104027364946?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-11492528643720765592007-05-15T00:14:00.000-07:002007-05-15T00:16:33.984-07:00A few good sites about XP and testingRon Jeffries' site <a href="http://www.xprogramming.com">www.xprogramming.com</a><br /><br />Harry Robinson's web site <a href="http://www.geocities.com/model_based_testing/">http://www.geocities.com/model_based_testing/</a> has a lot of interesting information on testing, although generally more on system/integration/acceptance testing.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-1149252864372076559?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-3017961930970920372007-05-03T23:28:00.001-07:002007-05-03T23:28:53.068-07:00比尔盖茨的10大优秀员工准则比尔盖茨的10大优秀员工准则<br /> <br />第1条准则 对自己公司的产品抱有极大的兴趣 1.对公司的产品具有寻根究底的好奇心 2.始终表现你对公司及产品的兴趣和热爱 3.热爱并专注于自己的工作 4.天下没有一劳永逸的事,要不断自我更新。 <br /><br />第2条准则 以传教士般的热情和执着打动客户 1.以传教士般的热情和执着打动客户 2.站在客户的立场为客户着想 3.最完善的服务才有最完美的结果。 <br /><br />第3条准则 乐于思考,让产品更贴近客户 1.了解并满足客户的需求 2.思考如何让产品更贴近客户。 <br /><br />第4条准则 与公司制定的长期目标保持一致 1.跟随公司的目标,把握自己努力的方向 2.做一个积极主动的人 3.奖金和薪水不是惟一的工作动力 4.把自己融入到整个团队中去 5.帮助老板成功,你才能成功。 <br /><br />第5条准则 具有远见卓识,并提高专业知识和技能 1.对周围的事物要有高度的洞察力 2.吃老本是最可怕的 3.不断学习,提高自己的工作能力 4.掌握新知识新技能,以适应未来的工作 5.做勇于创新的新型员工。 <br /><br />第6条准则 灵活地利用那些有利于你发展的机会 1.机会从来不会缺乏 2.用行动创造机遇 3.敢于冒险,才能抓住成功的机会 4.珍惜和利用公司提供的不同工作机会 5.抓住每一个展现自己的机会。 <br /><br />第7条准则 学习经营管理之道,关注企业发展 1.好员工应该学习和懂得经营管理之道 2.认定工作的价值,为公司赚取更多的利润 3.树立主人翁意识,处处为公司着想 4.视自己为老板,把公司当做是自己开的。 <br /><br />第8条准则 密切关注和分析公司的竞争对手 1.时刻关注本行业的发展动态 2.树立正确的竞争意识,敢于竞争 3.了解和分析竞争对手,才能战胜对手 4.学习竞争对手,避免重犯对手所犯的错误。 <br /><br />第9条准则 有效利用时间,用大脑去工作 1.善于动脑子分析问题,产妥善解决问题 2.有了好的想法就立即去做 3.合理有效地利用时间,准时做事 4.从时间手中赢得机会 5.及时向公司提出合理化建议。 <br /><br />第10条准则 员工必须具备的美德 1.忠诚 2.诚实 3.守信 4.勤奋 5.节俭 6.热情 7.敬业 8.责任心。<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-301796193097092037?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-84703048891204537392007-04-26T21:56:00.000-07:002007-04-26T21:58:15.581-07:00Good Code...1. Is easily testable<br />2. Constains no duplication<br />3. Has intentional coupling, strong cohesion, and clarity.<br /><br />-- NetObjects.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-8470304889120453739?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com1tag:blogger.com,1999:blog-20057575.post-1169451079234984642007-01-21T23:30:00.000-08:002007-01-21T23:31:19.486-08:00XHTML validator<a href="http://validator.w3.org/check/referer">http://validator.w3.org/check/referer</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-116945107923498464?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com10tag:blogger.com,1999:blog-20057575.post-1168323344998849002007-01-08T22:01:00.000-08:002007-01-08T22:30:59.960-08:00"Access Denied" when ASP.Net accesses EventlogStupid thing happened today, which was blocking the integration bed:<br /><br />The ASP.Net applicatin returned an "Access Denied" error when it was accessing the eventlog. <br /><br />I couldn't help jumping on this too since it was blocking. I was pretty sure it's not the GPO's fault at the very beginning because the GPO hasn't been used here yet. The identity for the App pool was the "Network service" account. Thus I <br />checked the security settting for the event log:<br /><br />HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog<br />\Application\CustomSD<br /><br />I added a WRITE access for the "Network service" account: (A;;0x2;;;NS). It didn't work. Then I checked web.config and found the site was using "impersonation" and basic authentication. I added (A;;0x2;;;AU) for authenticated users, the site started to work again. <br /><br />What the heck is (A;;0x2;;;AU)? You can check out Microsoft's weirdo SDDL (Security Descriptor Definition Language) at MSDN or <a href="http://www.washington.edu/computing/support/windows/UWdomains/SDDL.html">here</a>.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-116832334499884900?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com5tag:blogger.com,1999:blog-20057575.post-1164963021010535232006-12-01T00:49:00.000-08:002006-12-01T00:50:21.663-08:00WiX resources<a href="http://www.dalun.com/wix">http://www.dalun.com/wix</a><br /><a href="http://www.tramontana.co.hu/wix/">http://www.tramontana.co.hu/wix/</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-116496302101053523?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1159425216375903372006-09-27T23:33:00.000-07:002006-09-27T23:38:52.780-07:00GC.AddMemoryPressureGC.AddMemoryPressure and GC.RemoveMemoryPressure<br /><br /><ol><li>Informs the collector that you are allocating and freeing unmanaged memory </li><li>Helps the collector to better understand the true memory pressure collect appropriately<br /></li></ol><p></p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-115942521637590337?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1158390363360009892006-09-16T00:04:00.000-07:002006-09-16T00:06:03.510-07:00Web based tool to manage SQL Server 2005SQL Server Web Tools is a Web-based Administration tool to manage SQL Server databases. With SSWT, you can administer accounts, manage databases and tables, write and run queries and Stored Procedures, and much more.<br /><br /><a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=SQLWebTools">http://www.codeplex.com/Wiki/View.aspx?ProjectName=SQLWebTools</a><br /><br /><br />myLittleAdmin for SQL Server 2005 is the first web-based management tool specially designed for MS SQL Server 2005.<br /><br /><a href="http://www.mylittletools.net/scripts/en/mla_sql_2005/default.asp">http://www.mylittletools.net/scripts/en/mla_sql_2005/default.asp</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-115839036336000989?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1156458091472339732006-08-24T15:18:00.000-07:002006-08-24T15:21:31.840-07:00A few ways to tackle software challenges<ul><li>Componentization </li><li>Better test infrastructure and tools </li><li>Improved logging and error models </li><li>Error reporting and automated updates, including hot patching </li></ul><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-115645809147233973?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1156396818295331552006-08-23T22:16:00.000-07:002006-09-04T00:06:03.186-07:00Adding a zip filter to web servicesI was asked a question about SOAP extensions that support compression. After googling a while, and I found an interest sample below:<br /><br />Passing large amounts of data through web services can become a huge bottle-neck in a WAN application architecture (i.e., server is on the web), and in any case, a real load on the network traffic. This is one solution for downsizing the network costs.<br /><br />Please refer to the <a href="http://www.codeproject.com/cs/webservices/WebServiceZipFilter.asp?df=100&forumid=78022&amp;exp=0&select=1062138">sample</a> here.<br /><br />~dotnetman.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-115639681829533155?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1155843538644988662006-08-17T12:36:00.000-07:002006-08-18T14:45:11.416-07:00Embrace XP<p>XP is a lightweight but disciplined approach to software development that has testing and quality at its core.<br /><br />XP is based on four values: <em><span style="color:#3366ff;">communication</span>, <span style="color:#33ccff;">simplicity</span>,<span style="color:#33cc00;"> feedback</span>, and <span style="color:#ff6666;">courage</span></em>.<br /><br />Twelve practices comprise the rules of XP:</p><ul><li><span style="color:#3366ff;">Onsite customer</span></li><li><span style="color:#3366ff;">Pair programming</span></li><li><span style="color:#3366ff;">Coding standards</span><br /></li><li><span style="color:#00cccc;">Metaphor</span></li><li><span style="color:#00cccc;">Simple design</span></li><li><span style="color:#00cccc;">Refactoring<br /></span></li><li><span style="color:#33cc00;">Testing </span></li><li><span style="color:#33cc00;">Continuous integration</span></li><li><span style="color:#33cc00;">Small releases<br /></span></li><li><span style="color:#ff0000;">Planning game</span></li><li><span style="color:#ff0000;">Collective code ownership</span></li><li><span style="color:#ff0000;">Sustainable pace</span></li></ul><p>XP solves three major testing and quality assurance problems:</p><ul><li>Unit and integration bugs during system and acceptance testing</li><li>Lack of requirement from which to develop tests</li><li>Large gaps between customer expectations and delivered product<br /></li></ul><p>- Testing Extreme Programming (Crispin House)</p><p>XP tools:<br />- Continuous Integration for .NET: <a href="http://sourceforge.net/projects/draconet/">Draco.NET </a>is a Windows service application designed to facilitate continuous integration. </p><p>- Fit, FitNesse, and Canoo Web Test, etc.</p><p></p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-115584353864498866?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1155278237787436692006-08-10T23:32:00.000-07:002006-09-28T00:21:36.430-07:00My debugging commands page<strong><span style="font-size:130%;">Get the tool: debugger</span></strong> (-dotnetman)<br /><strong></strong><br />-<a href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"><span style="font-size:85%;">Warm yourself up</span></a><br />-<a href="http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx"><span style="font-size:85%;">Download and install Debugging Tools for Windows 32-bit Version</span></a><br /><span style="font-size:85%;">-Run windbg.exe or cdb.exe<br /></span><span style="font-size:85%;"></span><br /><span style="font-size:85%;">><span style="font-family:courier new;color:#3333ff;"><span style="color:#3366ff;">.hh [keyword] <keyword><keyword></span><keyword></span>for help</span><br /><br /><span style="font-size:130%;"><strong>Symbols</strong></span><br /><br /><span style="font-family:courier new;font-size:85%;">Set up symbol path:<br />><span style="color:#3366ff;">.sympath</span> c:\windows\symbols;</span><br /><span style="font-family:courier new;font-size:85%;">srv*c:\websymbols*http://msdl.microsoft.com/download/symbols</span><br /><span style="font-family:courier new;font-size:85%;">><span style="color:#3366ff;">.reload</span></span><br /><span style="font-family:Courier New;font-size:85%;color:#3366ff;"><span style="color:#000000;">></span>!lines</span><br /><span style="font-family:Courier New;font-size:85%;">><span style="color:#3366ff;">!sym noisy<br /><span style="color:#000000;">></span>x ntdll!*event* </span><span style="color:#009900;">search symbols<br /><span style="color:#000000;">></span><span style="color:#3333ff;">ln</span> </span><span style="color:#3366ff;">[address]</span></span><br /><span style="font-size:85%;"><span style="color:#3366ff;"></span></span><br /><span style="font-size:130%;"><strong>Load SOS</strong></span><br /><br /><span style="font-family:courier new;font-size:85%;color:#3366ff;"><span style="color:#000000;">></span>sxe ld:mscorjit.dll</span><br /><span style="font-family:courier new;font-size:85%;color:#3366ff;"><span style="color:#000000;">></span>g</span><br /><span style="font-family:courier new;"><span style="font-size:85%;"><span style="color:#3366ff;"><span style="color:#000000;">></span>.loadby sos mscorwks</span></span></span><br /><br /><br /><span style="font-family:courier new;font-size:85%;color:#3366ff;"><span style="color:#000000;">></span>!name2ee test.exe Test.Main</span><br /><span style="font-family:courier new;font-size:85%;"><span style="color:#3366ff;"><span style="color:#000000;">></span>!clrstack</span></span><br /><strong></strong><br /><strong><span style="font-size:130%;">Threads</span></strong><br /><br /><span style="font-size:85%;"><span style="font-family:courier new;">><span style="color:#3366ff;"><span style="color:#3333ff;">~</span> </span><span style="color:#009900;">display threads</span></span> </span><br /><span style="font-size:85%;"><span style="color:#3333ff;"><span style="color:#000000;">></span><span style="color:#3333ff;">~</span>[n]s</span> </span><span style="font-size:85%;color:#009900;"><span style="font-family:courier new;">switch to thread #n</span></span><br /><span style="font-family:courier new;font-size:85%;color:#009900;"><span style="color:#000000;">></span><span style="color:#3333ff;">k</span> stack trace, kb, kP, kn for detailed stack trace<br /><span style="color:#000000;">></span><span style="color:#3333ff;">~*k</span> stack trace for all threads</span><br /><span style="font-size:85%;color:#009900;"></span><br /><br /><span style="font-size:130%;"><strong>Break points</strong></span><br /><br /><br /><br /><span style="font-size:130%;"><strong>Modules</strong></span><br /><br /><br /><br /><strong><span style="font-size:130%;">Memory</span></strong><br /><br /><br /><br /><span style="font-size:130%;"><strong>Variables</strong></span><br /><br /><br /><br /><span style="font-size:130%;"><strong>Misc</strong></span><br /><br /><br /><br /><strong><span style="font-size:130%;">SOS Extensions</span></strong><br /><strong></strong><br /><span style="font-family:courier new;"><span style="font-size:85%;"><span style="color:#3333ff;">!eeheap -gc</span><br /></span></span><br /><span style="font-size:85%;">Note:<br /><br />System.GC.GetTotalMemory<br /></span><br /><span style="font-size:85%;">Retrieves the number of bytes currently thought to be allocated. A parameter indicates whether this method can wait a short interval before returning, to allow the system to collect garbage and finalize objects.<br /></span><br /><strong><span style="font-size:130%;">VS 2005</span><br /></strong><br /><span style="font-size:85%;">Q: Unable to find Immediate window in VS 2005:</span><br /><span style="font-size:85%;">A: Go to Tool, Customize select debug immedaite and drag it onto the toolbar.</span><br /><br /><br /><span style="font-size:130%;"><strong>Links</strong><br /></span><br /><p><span style="color:#3333ff;"><a href="http://dotnetdebug.blogspot.com">http://dotnetdebug.blogspot.com</a></span></p><p><span style="color:#3333ff;"></span></p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-115527823778743669?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1154732149483856792006-08-04T15:55:00.000-07:002006-08-04T23:57:22.473-07:00Different Visual Studio Versions<a href="http://static.flickr.com/59/158168401_efc23a53b1_o.jpg">Different Visual Studio Versions</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-115473214948385679?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1154730980689845372006-08-04T15:34:00.000-07:002006-08-04T15:55:16.893-07:00Book recommendation: Applying Domain-Driven Design and Patterns<a href="http://www.amazon.com/gp/product/0321268202/102-0670502-1353738?v=glance&n=283155">Applying Domain-Driven Design and Patterns</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-115473098068984537?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1153098310951966932006-07-16T18:04:00.000-07:002006-07-16T18:05:10.963-07:00Understand the Impact of Low-Lock Techniques in Multithreaded Apps<a href="http://msdn.microsoft.com/msdnmag/issues/05/10/MemoryModels/">Understand the Impact of Low-Lock Techniques in Multithreaded Apps</a><br /><br />This article discusses:<br />Principles of safe multithreaded access<br />Common memory models<br />Low-lock tips and techniques<br />Interlocked operations<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-115309831095196693?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1148874055692874632006-05-28T20:38:00.000-07:002006-06-07T23:49:34.590-07:00The Power of Telling Story<p><span style="font-size:180%;">The Four Critical Questions </span><br /></p><ul><li>What is your Point B?<br /></li><li>Who is your audience and what is their WIIFY?<br /></li><li>What are your Roman columns?<br /></li><li>Why have you put the Roman columns in a particular order? In other words, which Flow Structure have you chosen? </li></ul><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-114887405569287463?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1147307206402143942006-05-10T17:26:00.000-07:002006-05-10T17:26:46.413-07:00Book Review: Practical Software MeasurementThis relatively short book of about 250 pages defines a metrics methodology named Practical Software Measurement (PSM). The PSM approach is concrete, doesn't require special software or tools, and is pertinent to the work we do at Microsoft. The authors stress the importance of collecting metrics that reflect your software process and that are integrated with tools in your software environment. <br /><br /><br />The book offers a usable structure for defining and documenting the metrics you use.<br />The most useful information is contained in the first 100 pages.<br />There are some excellent tables on measurement plans, suggested metrics, and documenting metrics.<br />To balance the sometimes abstract analysis models, there is a chapter of metrics examples, including milestone completion, size and stability, defects, and customer feedback, and two in-depth case studies.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-114730720640214394?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1146767737198827742006-05-04T11:33:00.000-07:002006-05-04T11:35:37.210-07:00Advanced Techniques To Avoid And Detect Deadlocks In .NET Apps<a href="http://msdn.microsoft.com/msdnmag/issues/06/04/Deadlocks/default.aspx">Advanced Techniques To Avoid And Detect Deadlocks In .NET Apps</a><br /><br /> This article starts with a discussion in lock leveling, indicates while it is difficult and then presents solutions for detecting deadlocks. Its good content but I don’t think detecting deadlocks helps that much. When writing the code, you want to ensure deadlocks don’t happen, rather than handle all these edges cases where deadlock was detected. I’m going to babble a bit, be forewarned.<br /><br /> <br /><br /> Lock leveling is difficult because inevitably lower layers want to callback up into upper layers, against the locking grain so to speak. Critical sections are also annoying because at some point people are blocking a thread (wasting CPU and memory resources) while they wait for hardware resources.<br /><br /> <br /><br /> The later problem is typically addressed with asynchronous completions or notifications. That same solution can be used to simplify lock leveling and solve the synchronization problem. Where you have a tall layering of components using lock leveling, you can just as well have them communicate via asynchronous messaging rather than blocking threads on locks. The lock layering of components is simplified to two layers, the lower layer containing the messaging system and everything else on the layer above that.<br /><br /> <br /><br /> Most components will be split into two lock layers though. A core set of resources will be accessible from any thread through a critical section. Code accessing those resources can never block, but it is always available without blocking on any other resources. This lets callers make a limited number of synchronous calls into the object. A component will have a broader set of resources which are accessed from a single message queue. To interact with the broader set of resources in such a component, the caller will need to use an asynchronous call/messaging.<br /><br /> <br /><br /> Such an approach seems to solve two problems at once. Your messaging mechanism needs to assist in this though. Messages queue’d to access a particular object’s resources should only be pumped from a single thread at once. <br /><br /> <br /><br /> There’s more to it but this general principle seems to be valuable to me. One complication is how you mix asynchronous completions from different completion mechanism. I’m trying not to babble further on this though. One advantage of this approach is that I’ve found there are a lot of good design patterns in the messaging world, but few design patterns that relate to lower-level synchronization primitives.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-114676773719882774?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1146615548062516742006-05-02T17:08:00.000-07:002006-05-02T17:19:08.076-07:00Lutz Roeder's Programming.NET<a href="http://www.aisto.com/roeder/dotnet/">Lutz Roeder's Programming.NET C# VB CLR WinFX</a><br /><br />Today when I was debugging a SQL connection leak problem, a co-worker of mine showed me Lutz's "Reflector for .NET". I am amazed by this powerful tool. It allows me to see the source level code of a problematic external component.<br /><br />By the way Lutz is a software design engineer working for Microsoft in DEVDIV division.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-114661554806251674?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1146265792796913212006-04-28T16:09:00.000-07:002006-04-28T16:09:52.806-07:00New and Improved Security in the .NET Framework 2.0<a href="http://msdn.microsoft.com/netframework/default.aspx?pull=/library/en-us/dnnetsec/html/foundstone.asp">New and Improved Security in the .NET Framework 2.0</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-114626579279691321?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1145985635903258752006-04-25T10:20:00.000-07:002006-04-25T10:21:14.766-07:00C# 2.0: Using different versions of the same dll in one applicationYou definitely can. Check out <br /><br /><a href="http://blogs.msdn.com/abhinaba/archive/2005/11/30/498278.aspx">http://blogs.msdn.com/abhinaba/archive/2005/11/30/498278.aspx</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-114598563590325875?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1145396054146955632006-04-18T14:33:00.000-07:002006-04-18T14:34:59.346-07:00Moving to .Net 2.0 compiler<a href='http://msdn.microsoft.com/netframework/programming/obsoleteapi/default.aspx'>Obsolete APIs</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-114539605414695563?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1145387392492426122006-04-18T12:08:00.000-07:002006-04-18T12:09:52.516-07:00Breaking Changes in the Visual C++ 2005 Compiler<a href="http://msdn2.microsoft.com/en-us/library/ms177253(vs.80).aspx">Breaking Changes in the Visual C++ 2005 Compiler </a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-114538739249242612?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0tag:blogger.com,1999:blog-20057575.post-1145045433494708362006-04-14T13:05:00.000-07:002006-04-14T13:10:33.510-07:00How to conduct performance review<ol><li>Delivered result for the past x months. We'll look at both quantity and quality. So be very results driven. Take actions and make things happen.</li><li>How did people achieve results? There are roughly 4 aspects.</li></ol><ul><li><span style="color:#333399;"><strong>Initiation</strong></span>. Did people take initiatives? Did they step out of their bounds to look for improvements? Anything here could be “above and beyond“ which always helps to differentiate.</li><li><span style="color:#333399;"><strong>Determination</strong></span>. Did people close the loop, pick up the loose ends, get to the bottom of things and resolve issues?</li><li><span style="color:#000099;"><strong>Collaboration</strong></span>. Did we work well with other people to acheive the goal? Did we help others? Team spirit really shines here. The person that's always ready to help others will be rewarded. That's also the reason that we want everyone to list some team related commitments.</li><li><span style="color:#000099;"><strong>Innovation</strong></span>. This is do or die. If we don't innovate, our job would be so boring. Think out of box. Get yourself out there and learn what else is going on, you'll be blown away. This will open up your mind and think more creative ways to solve things. Innovators win the race here.</li></ul><p>-By Jeff </p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20057575-114504543349470836?l=dotnetman.blogspot.com'/></div>Andrewhttp://www.blogger.com/profile/16751479068334851123noreply@blogger.com0