Geeks With Blogs
DevDevin .NET Explanations, tips, and tricks related to .NET
ECMA C# and Common Language Infrastructure Standards

http://msdn2.microsoft.com/en-us/aa569283.aspx 
(It has links to things such as the C# language specification and a reference guide to the CIL Instruction Set).

Posted On Monday, February 4, 2008 1:34 PM

Dependency Injection with Spring.Net
Good article on dependency injection using Spring.Net: http://www.developer.com/net/csharp/article.php/10918_3722931_1.

Posted On Thursday, January 24, 2008 10:05 AM

Coding Shortcuts in C# 3.0
Default get/set accessors: public class Person { public string Name { get; set; } public int Age { get; set; } } Property initialization: Person author = new Person { Name = "Jay Miller", Age = 40 }; From this article: http://www.codeguru.com/csh... ......

Posted On Tuesday, October 30, 2007 7:24 AM

Cryptographic Solutions for .NET Developers: Hashing and Encryption

Here is a pretty good introductory article on crypto in .NET: http://www.codeguru.com/csharp/.net/net_security/encryption/article.php/c14033__1/.

 

Posted On Monday, August 6, 2007 5:28 AM

Open-source Distributed Pub/Sub Event System
This is a huge open-source contribution from Microsoft: http://www.codeplex.com/pub... The Distributed Pub/Sub Event System is a solution for cross-process and/or cross-server scenarios where a large amount of event handshaking is required and low latency is important. Basically, this architecture was designed for speed. Even if you can't think of a usage scenario for this code-base in your stack right now, I strongly encourage you to just crack open the source and take a look. I personally think ......

Posted On Friday, July 6, 2007 10:46 AM

WCF NetTcpBinding Lessons Learned
I just got done with a long afternoon of implementing a Windows Service to self-host my WCF service. It was a bit trickier than I thought it would be so if I can save you the headache I'll be happy. A good place to start is by reading these two MSDN articles: http://msdn.microsoft.com/m... http://msdn.microsoft.com/m... Next, you'll want to understand these support articles: http://msdn2.microsoft.com/... ......

Posted On Tuesday, June 12, 2007 9:43 PM

.NET Assemblies Lessons Learned
A few things I learned today while instrumenting some binaries in preparation for performance profiling: Resigning a .NET assembly is as simple as opening a VS command prompt and entering: sn –R MyAssembly.dll MyApplicationKey.snk Browsing the GAC through Windows Explorer -- open a command prompt and enter: SUBST L: C:\winnt\assembly Now you can browser the assembly folder using your L drive. This also makes it easier to reference a DLL in GAC inside a VS project. (tips taken from: http://aspalliance.com/1251... ......

Posted On Thursday, June 7, 2007 3:58 PM

Message Queues in .NET
A nice little article on leveraging MSMQ in .NET: http://www.builderau.com.au/program/dotnet/soa/Using-message-queue-services-in-NET/0,339028399,339274877,00.htm

Posted On Tuesday, April 17, 2007 7:45 PM

Scalable Apps with Asynchronous Programming in ASP.NET

If asynchronous programming in ASP.NET is something you haven't been doing, then you'll want to check this article out: http://msdn.microsoft.com/msdnmag/issues/07/03/WickedCode/. Instead of spending more $ on new servers or hardware you might be able to utilize async Pages, Handlers, and Modules to lessen the amount of threads waiting to execute.

Posted On Monday, March 19, 2007 12:56 AM

Custom Iterators, Predicates, and Generic Methods in .NET

This article proposes some great ways of making common sequences of operations on lists more reusable in .NET: http://msdn2.microsoft.com/en-us/vcsharp/bb264519.aspx. It reminds me of some of the built-in set operations that are available in the SmallTalk programming language.

Posted On Monday, March 19, 2007 12:28 AM

Compression and Decompression in .NET
I came across this simple, but useful article demonstrating how to use the built-in .NET GZip compression/decompression capabilities. It also mentioned this SharpLibZip open-source compression/decompression library that would allow you to open the file easily using WinZip. UPDATE: forgot to post the article link (whoops!) http://www.codeguru.com/csh... ......

Posted On Friday, March 2, 2007 12:52 PM

Memory Leaks in Managed Code
Here is an excellent article on types of memory leaks you can still have in a managed app: http://msdn.microsoft.com/m... One thing I was blown away with was this code snippet that dynamically creates an assembly in memory: CodeCompileUnit program = new CodeCompileUnit();CodeNames... ns = new CodeNamespace("MsdnMag.Memo... CodeNamespaceImport("System... class1 ......

Posted On Tuesday, January 16, 2007 6:35 PM

C# Wiki Engines
A nice list of Wiki Engines built in C#: http://csharp-source.net/open-source/wiki-engines.

Posted On Wednesday, December 27, 2006 5:36 PM

iBATIS Data Persistence Layer for Java, .Net, & Ruby
What is iBATIS? The iBATIS Data Mapper framework makes it easier to use a database with Java and .NET applications. iBATIS couples objects with stored procedures or SQL statements using a XML descriptor. Simplicity is the biggest advantage of the iBATIS Data Mapper over object relational mapping tools. To use the iBATIS Data Mapper, you rely on your own objects, XML, and SQL. There is little to learn that you don't already know. With the iBATIS Data Mapper, you have the full power of both SQL and ......

Posted On Tuesday, December 12, 2006 12:09 AM

Asp.Net Anti-Cross Site Scripting Library
For defence in depth, developers may wish to use the Microsoft Anti-Cross Site Scripting Library to encode output. This library differs from most encoding libraries in that it uses the "principle of inclusions" technique to provide protection against XSS attacks. This approach works by first defining a valid or allowable set of characters, and encodes anything outside this set (invalid characters or potential attacks). The principle of inclusions approach provides a high degree of protection against ......

Posted On Monday, December 11, 2006 11:51 PM

Events & Delegates in .NET
A decent article on Events and Delegates in .NET: http://www.codeguru.com/csharp/.net/net_general/eventsanddelegates/article.php/c12933/.

Posted On Friday, December 8, 2006 2:32 PM

Use SecureString in .NET 2.0 for Confidential Text
SecureString Class Represents text that should be kept confidential. The text is encrypted for privacy when being used, and deleted from computer memory when no longer needed. This class cannot be inherited. Namespace: System.SecurityAssembly: mscorlib (in mscorlib.dll) http://msdn2.microsoft.com/... ......

Posted On Friday, December 1, 2006 12:28 PM

Castle Project Open-Source .Net

http://www.castleproject.org/

I am pretty impressed from what I've seen so far with the Castle Project. They offer an MVC framework, an object-to-relational persistence framework and a few other things. I looked through the examples and it seems like it is well-documented and pretty straightforward to use.

Posted On Tuesday, November 28, 2006 11:49 PM

Friend Assemblies in C#
The internal keyword (in C#) gives access to other classes within the same assembly. Friend is the equivalent keyword in VB.Net. However, if you want another assembly to have access to another assembly’s “internal” stuff (in C#), then you can use the method from the web link below called “Friend Assemblies” where it exposes one assembly’s “internal” stuff to another assembly. Nowhere in this process do you actually use a keyword friend or friendly in C#. It is simply what they have called this relationship ......

Posted On Wednesday, November 22, 2006 9:20 PM

Refresh Your Memory: Garbage Collection in .NET
Garbage Collection: Automatic Memory Management in the Microsoft .NET Framework Part 1: http://msdn.microsoft.com/m... Part 2: http://msdn.microsoft.com/m... The GC fact of the day is "it takes less than 1 millisecond on a 200Mhz Pentium to perform a full GC of generation 0" ......

Posted On Thursday, November 16, 2006 8:29 AM

Great Article on C# .Net 2.0 Features & Download for .Net 3.0
Just saw this article that sums up the new C# features in .Net 2.0: http://msdn.microsoft.com/m... Yes, I'm definitely late on this one, especially since .Net 3.0 is already available: http://www.microsoft.com/do... ......

Posted On Wednesday, November 15, 2006 2:04 AM

Concurrency and Coordination Runtime, Using Concurrency for Scalability
http://msdn.microsoft.com/m... Richter describes how to use the Concurrency and Coordination Runtime (CCR), a lightweight distributed services-oriented architecture and a common language runtime (CLR)-based library included in the Microsoft Robotics Studio toolkit. "The CCR library is a managed DLL that greatly simplifies these tasks for the programmer. The CCR offers a number of classes allowing developers a simple object model that they can ......

Posted On Sunday, November 12, 2006 1:35 AM

A Python that Doesn't Bite
Here is a quick and simple intro to Python for those of you who are new to it like me: http://www.builderau.com.au... If you're a .NET developer and feeling inspired give IronPython a spin: http://www.codeplex.com/Wik... ......

Posted On Monday, November 6, 2006 11:46 PM

.NET Tool Must-Haves & Essential Visual Studio Add-ins
These aren't new, but better late than never... Ten Must-Have Tools Every Developer Should Download Now: http://msdn.microsoft.com/m... NUnit to write unit tests NDoc to create code documentation NAnt to build your solutions CodeSmith to generate code FxCop to police your code Snippet Compiler to compile small bits of code Two different switcher tools, the ASP.NET Version Switcher and the Visual Studio .NET Project Converter Regulator to build regular expressions .NET ......

Posted On Tuesday, October 31, 2006 12:11 AM

Using Anonymous Methods & Delegates in C# to Create "Nested Functions"

A short and sweet article about writing “nested functions” in C#: http://www.codeguru.com/columns/vb/article.php/c12749/.

Posted On Friday, October 20, 2006 1:51 PM

High-Performance Socket Servers
This article presents several approaches to building a high-performance socket server and ultimately goes with the asynchronous I/O solution: http://msdn.microsoft.com/m... It mentions a way to build a socket object pool (by taking advantage of Socket.Disconnect) and new .Net 2.0 features that make it easier to debug socket servers (via tracing) ......

Posted On Thursday, October 12, 2006 8:11 AM

.NET 2.0 Multithreaded Programming Made Simple with CSP.NET
CSP.NET introduction taken from http://www.cspdotnet.com/: CSP.NET is a Microsoft.NET 2.0 library developed to ease concurrent and distributed programming and it provides a more intuitive and simple alternative to the well known thread paradigm. A simple and secure platform for writing and understanding concurrent programs is necessary because concurrent programs are much more complex than sequential programs. The most common difficulties inherent in concurrent programs are nondeterminism, deadlocks ......

Posted On Thursday, September 7, 2006 7:29 AM

F# (FSharp) Programming Language
Maybe you don't think that what the world needs is another programming language, but F# combines a number of interesting elements nonetheless. interactive scripting like Python, the foundations for an interactive data visualization environment like MATLAB, the strong type inference and safety of ML, a cross-compiling compatible core shared with the popular OCaml language, a performance profile like that of C#, easy access to the entire range of powerful .NET libraries and database tools, a foundational ......

Posted On Saturday, September 2, 2006 1:22 PM

Concurrent Programming for Windows
I came across a few useful articles on AMD's developer website about programming Windows applications to take advantage of multi-core machines: Taking Advantage of Concurrent Programming for Windows, Part 1: The Simplest Multi-core Parallelism That Could Possibly Workhttp://www.devx.com/amd... Taking Advantage of Concurrent Programming for Windows, Part 2: Multi-core Programming in .NEThttp://www.devx.com/amd... ......

Posted On Friday, September 1, 2006 11:43 PM

Interlocked Operations for Multithreaded Integer Manipulation in .NET
Today I came across a set of sweet little atomic operations for manipulating integers in .NET: http://msdn2.microsoft.com/... So instead of doing this: private object counterLock = new Object(); lock (counterLock){ counter++;} You just do this: Interlocked.Increment(ref counter); This has two advantages. First, the code is much cleaner. Second, the performance is much faster. Why? I think the interlocked method is all executed within user mode whereas the other would require ......

Posted On Tuesday, August 15, 2006 9:43 PM

Threading Without the Needle
I discovered Joseph Albahari's e-book on Threading in C# late last night. It helped me finish up and go home earlier than I would have! His paper covers the following topics: Getting Started Overview and Concepts Creating and Starting Threads Basic Synchronization Synchronization Essentials Locking and Thread Safety Interrupt and Abort Thread State Wait Handles Synchronization Contexts Using Threads Apartments and Windows Forms BackgroundWorker ReaderWriterLock Thread Pooling Timers Local Storage ......

Posted On Thursday, June 15, 2006 6:53 AM

Deadlock Avoidance & Detection in .NET

Here is a useful article on deadlocks--something I'm sure we all have nightmares about at night: http://msdn.microsoft.com/msdnmag/issues/06/04/Deadlocks/default.aspx.

Posted On Friday, June 9, 2006 3:36 PM

C# Heap & Stack Memory Allocation
This one is a conversation starter any day: http://www.c-sharpcorner.co... [Well, if you have geek friends like I do.] ......

Posted On Tuesday, June 6, 2006 1:30 PM

.NET C# Interoperability
When dealing with managed code and unmanaged code together there are several nuances that change the way that interoperability is implemented and things can easily get confusing. For instance, dealing with Win32 COM dlls, plain vanilla Win32 dlls, and ActiveX controls from managed C# all have their own means. An interop assembly can be created for Win32 COM dlls so that it can be referenced from a C# project directly. However, to use regular Win32 dlls from a C# project, you must utilize Platform ......

Posted On Thursday, June 1, 2006 8:24 AM

Multithreaded Applications

A concise article that provides rich insight into multithreaded application programming with some references to available libraries in .NET: http://msdn.microsoft.com/msdnmag/issues/05/08/Concurrency/default.aspx

Posted On Thursday, May 11, 2006 8:33 AM

Debugging VB6 binaries in Visual Studio .NET

This article saved my life the other day: http://blogs.msdn.com/robgruen/archive/2004/11/09/254602.aspx.

I was trying to figure out why this COM dll that I was running interop in my .NET project was failing and this allowed me to step through the VB6 code and identify the problem.

Posted On Thursday, February 23, 2006 6:58 PM

.NET Code Profiling Tools
This is an excellent list of performance profiling and debugging tools for monitoring, testing, and optimizing your .NET code: http://sharptoolbox.com/Cat... From the little taste of ANTS Profiler from Red-Gate that I got, I think it rocks ......

Posted On Thursday, February 23, 2006 6:51 PM

Free Beta Exams via MSDN Flash
* Beta Exam Invitation for MCAD and MCSDs February 13 - March 12 These free beta exams will count toward certification in the same way as the final version of the exam: MCAD Exam 70-552 - Upgrade: MCAD Skills to MCPD Windows Developer by Using the Microsoft .NET Framework (use promo code 552BTA). MCSD Exam 71-553 - Upgrade: MCSD Microsoft .NET Skills to MCPD Enterprise Application Developer by Using the Microsoft .NET Framework - Part 1 (use promo code BTA553). MCSD Exam 71-554 - Upgrade: MCSD Microsoft ......

Posted On Sunday, January 29, 2006 6:16 PM

Windows XP x64 OS & Visual Studio 2005 Ready to Go
Bought a new pc with a AMD 64 3500 series this weekend and it's now up and running with the Windows XP Pro 64 bit version. I haven't run into any road blocks yet; just a few speed bumps. I had to install the 64 bit driver for the built-in ATI Radeon Xpress 200 display adapter in VGA mode to get my monitor working and the 64 bit driver for the built-in Realtek AC'97 audio adapter to get the speakers blazing. Then after a little research I found out that the Broadcom chipset works for wireless PCI ......

Posted On Sunday, January 22, 2006 7:44 PM

.NET Questions & Answers
Scott Hanselman posted a two part series of .NET questions that could potentially be used for interviewing .NET candidates. Although I don't necessarily think they would ensure a well-rounded hire, they definitely include some good technical questions that can help you gauge how deep someone's (and your own) knowledge of .NET is and maybe even help you learn something new: http://www.hanselman.com/bl... ......

Posted On Tuesday, January 10, 2006 4:35 PM

SQL Server 2005, Visual Studio 2005 & BizTalk Server 2006 Launch
The long-awaited launch happened yesterday and I enjoyed what I was able to see. Unfortunately, I only stayed through the morning session since our team was scheduled to release that day (imagine that). In any case, the organizers were understanding and forgiving enough to give me the free copies of VS.NET 2005 and SQL Server 2005 before I left anyway. Let me give a quick synopsis of some of the things I noted during the talks. The keynote speech cited a few statistics that showed the market adoption ......

Posted On Wednesday, November 30, 2005 8:35 PM

Seattle Code Camp v1.0
I attended the Seattle Code Camp this weekend (where I could) and had quite a bit of fun. In addition to learning a few things, I got to preview a bunch of upcoming technologies and meet a lot of distinguished developers in the area. For those of you who weren't able to attend or didn't see the same presentations I did, I'll just share some of my notes: Refactor! is a great tool that I already blogged about before, but they deserve a special plug since Mark Miller largely contributed to the event ......

Posted On Sunday, October 23, 2005 10:07 PM

.NET Refactoring Tools
Today I had a bunch of classes that I needed interfaces for and I wanted to find a tool that would generate them for me. This led me to the discovery of several refactoring tools available for .NET. Here they are: Net Refactorhttp://www.knowdotn... tool was able to generate an interface from my class, but unfortunately it was not smart enough to put that interface in the right project since my solution had multiple projects.) C# Refactoryhttp://www.xtreme-... ......

Posted On Friday, October 21, 2005 12:13 PM

Enum Values as Bit Flags
Know how to make an enum where multiple values can be assigned? Here is a silly example, but you'll get the point: [FlagsAttribute] public enum FileStatus{ None = 0, Open = 1, Edit = 2, Save = 4, Close = 8, Corrupt = 16, Busy = 32, Good = Open | Edit | Save | Close, Bad = Corrupt | Busy } Now rather than try to explain how this actually works myself, I'll just point you to a few good resources already out there: (Start by learning binary if you don't know it already: http://www.dark-logic.com/p... ......

Posted On Wednesday, October 19, 2005 9:11 PM

Options to Convert VB.NET Code to C# for Free
I'm not implying that you shouldn't buy the full version VB.NET to C# conversion products if they have the functionality that you really need. However, I do think it would be silly not to take advantage of the free demo versions and/or the other free tools available for doing this if it will get the job done without having to purchase anything. So here are a few of the options I've found for converting VB.NET code to C# for free: TransKing (free demo version allows 600 lines of code per file)http://www.e-iceblue.com/ ......

Posted On Tuesday, October 18, 2005 8:13 AM

Alternatives to Visual Studio .NET

Many developers don't even realize that they can use tools other than Visual Studio .NET to develop .NET applications. I had no idea that there were so many other options until I came across this helpful article: http://techrepublic.com.com/5100-3513_11-5655326.html.

Posted On Wednesday, September 21, 2005 10:20 AM

Copyright © Devin A. Rychetnik | Powered by: GeeksWithBlogs.net