Articles
I generally enjoy writing about technical topics and have authored a number of articles about programming in .NET. The following exhaustive list contains information about and links to articles I have written. The appear pretty much in chronological order with the newest at the top.
.NET Framework: Collections and Generics
The original release of the .NET Framework included collections as .NET was introduced to the Microsoft programming world. The .NET Framework 2.0
introduced generics to complement the System.Collections namespace and provide
a more efficient and well performing option.
Timing Your C# Code with the Stopwatch Class
The
System.Diagnostics.Stopwatch class was designed for use in timing. It
is a lightweight class used to track the amount of time elapsed between some
starting and some ending point in time. This article explores using it to help improve performance of your code.
Understanding and Using .NET Attributes
Attributes are a means of associating declarative
information with your code. They are metadata of sorts that you can use on
types, methods, and properties that are evaluated at runtime.
Conditional Compile Statements
In this weekly article we're going to focus on another topic that is often
under utilized, which is conditional compile statements and how to use them in
your code.
C# Coding Standards and Practices
Use Your Own Cache Wrapper to Help Improve Performance
In this article we're going to explore a technique that I've seen used a
number of times to help improve performance of repetitive data
retrieval.
.NET Framework: Monitor a Directory for a New File and Use FTP Upload to Copy It
Explore how to use the .NET Framework to respond to the operating system notifications that a new file has been created in a particular directory. Use FTP to upload the file to an FTP site of your choosing and then move the file to an alternate location.
Using Photo Galleries in Your Web Apps
Explore how to use classes in the .NET Framework to upload images in to your web applications, create consistently sized versions, thumb nails for preview, and then store them for retrieval and use.
Using Projections to Boost Performance
Learn the practice of using projections in your LINQ statements to ensure you are not over retrieving data values from your Entity Framework model.
Speed Up Repetitive Insert, Update, and Delete Query Statements
Learn how to use table-valued parameters, introduced in SQL Server 2008, to boost the performance and scalability of your .NET framework applications. You'll also see an example of how to create and use the user-defined type.
Consuming an RSS Feed with the .NET Framework
Read along to learn the nuts and bolts of how to consume an RSS feed from the CodeGuru.com website using the .NET framework. It demonstrates a simple object model for holding the content and how to read it using the System.Net.WebRequest.
Introduction to Parallel Programming in the .NET Framework
Read along as we take a look at the TPL, which is implemented in the System.Treading namespace in .NET framework 4.0 and also available for download for .NET Framework 3.5.
C# Programming Tips and Tricks
Volume 2 of "C# Programming Tips and Tricks" covers some items related to new features of C# 4.0 along with other beneficial tips and tricks. In addition, it mentions some tools that are worth noting.
Optional and Named Parameters in C# Programming
In this installment we'll explore optional and named parameters in C# programming. This is an option that has long been around within the Visual Basic language, but is newly introduced in to the C# language in the .NET Framework version 4.0.
Working with Object Context in the Entity Framework
Learn how to work with the object context of the Entity Framework including how to detach and attach objects.
Joins and UI Binding with the Entity Framework
Learn how to build queries with the Entity Framework that involve multiple tables as well as binding in the UI with the EntityDataSource.
Safe Covariance and Contravariance in .NET 4.0
.NET Developers may not recognize the terms invariance, covariance, and contravariance, it is likely they have been impacted by them and left wondering. This article will explain the concepts and the changes being introduced as part of .NET Framework 4.0.
Dynamic Language Support in the .NET 4.0 Framework
The focus of this article will be on the dynamic language support (DLR) that will be released as a part of the upcoming 4.0 version of the .NET Framework.
Improved COM Interoperability in .NET 4.0
Learn about the COM Interoperability improvements coming with the .NET Framework 4.0 and how they will make your COM Interop such as Office applications much easier.
The Future of Managed Languages: C# and Visual Basic
Learn three industry trends that are influencing the next releases of C# and Visual Basic.
Introducing the Entity Framework
The Entity Framework provides a .NET class-based model of a data store, letting you query the model with LINQ, while the model do the background grunt work of contacting the data store to add, update, or delete data.
Language Integrated Query (LINQ) to SQL
Discover another valuable part of the LINQ family, LINQ to SQL. LINQ to SQL that allows users to query and manipulate objects associated with relational database tables.
Learn some tips and tricks with the C# 3.0 language features along with exploring some productivity gains with the Visual Studio IDE.
Gain an understanding of LINQ (Language Integrated Query) to XML and see why you'll never want to use the DOM again.
Gain a solid understanding of what Language Integrated Query (LINQ) is and isn't and what it can do for you.
Learn how to avoid possible performance problems in your web applications when using the ASP.NET AJAX TabContainer by employing a technique known as lazy loading.
Learn about local type inference in C# 3.0 and Visual Basic 9.0. Examine why it is relevant and the syntax for its use.
Learn about the dual-purpose of the C# using keyword. Examine why it can be extremely helpful in object management, and the syntax for its use.
Discover what extension methods are, the syntax for using them, and why they are important.
Learn about the CAB at a very high level. With it you can create Windows Forms-based applications that have sophisticated capability without being as sophisticated to create.
Discover how to build an ASP.NET webpart that will display coordinates on a Virtual Earth-created map. You can do this by using the IWebPart Interface, an HTTP handler, and the Virtual Earth API.
Discover the power behind state machine workflow and how it can be used to more closely match business and other processes.
Activities are the building blocks of workflows. When you use Windows Workflow Foundation, you likely will want to build custom activities to fit your tasks.
Microsoft will introduce the much anticipated Windows Workflow Foundation (WinWF) as part of the .NET Framework 3. Get the lowdown on WinWF and learn how to build a sequential workflow with it.
Here are several lesser-known tips and tricks that will assist you in building fully functional and well performing Windows Forms applications.
Use ClickOnce technology and smart clients to extend the reach of traditional Windows Forms applications. The process involves some wizard-based configuration and minimal code.
ASP.NET 2.0 provides the ObjectDataSource control to enable you to connect data binding controls to data objects and components. Find out how to select data and display it in a GridView by binding to an ObjectDataSource.
Learn about blocking versus unblocking sockets, and about the use of generics and a sample socket connection pool.
The Microsoft .NET Framework 2.0 has made several improvements to the System.DirectoryServices namespace. They expand your ability to interact with your enterprise Active Directory.
With the .NET Framework 2.0 release now available, you can explore the C# 2.0 iterators feature. Examine the iterators design pattern and find out what it takes to implement and then modify it manually.
Explore the built-in ASP.NET HTTP handlers and then learn how to create your own custom handlers. When you're done, you'll be able to enable special handling within your Web applications.
Explore dynamic code compilation with a demonstration that creates new assemblies on the fly and compiles them in memory. This functionality has a number of potential uses and benefits.
The security enhancements that the .NET Framework 2.0 made to the TCP channel enable secure TCP communication either through code or application configuration files. Learn how to apply both techniques to .NET remoting clients and servers.
Learn how to create and consume .NET remoting clients and servers using Visual Studio 2005 and the Microsoft .NET Framework 2.0. In particular, find out how to use the new IpcChannel for same-box communications.
Serialization introduced many powerful capabilities, but it also introduced problems as you refactor your objects to include new properties. Learn how the version-tolerant serialization included in the upcoming 2.0 Microsoft .NET Framework will help.
Get a sneak preview of the compression and decompression classes that are coming in the .NET Framework 2.0 due out later this year.
Take a foray into ADO.NET to see what's in store for the next release. You'll find some very handy additions and enhancements.
Generics, a new addition in version 2.0 of the .NET Framework, offer a combination of type safety, performance, and generality in the defined type. Find out why generics are valuable and what they can add to your applications.
The Microsoft .NET Framework provides imperative and declarative ways to check for proper permissions prior to attempting an action. Learn how and when to use them.
The .NET Framework uses an evidence-based security system. Learn how you can use the security policy to allow or deny actions to assemblies.
A new namespace in the upcoming 2.0 release of the Microsoft .NET Framework adds support for some very useful network-related items. Explores some of these new items and how you can use them to your advantage.
What are delegates, and what value do they provide? Read why you may already be familiar with them and then dig into some examples of how you can use them.
This .NET Nuts & Bolts covers exception handling, examining what exceptions are and why they are important. You'll learn how to use them, how to create custom exceptions, and how to apply common best practices.
Discover how to add functionality for debugging and tracking an application's execution path.
The .NET Framework provides native support for lists and collections. Learn the concept behind these classes and why they are especially important with the planned inclusion of generics in version 2.0 of the .NET Framework.
Learn about using application configuration files in Microsoft .NET and the concept of application configuration files and the native support the Microsoft .NET Framework provides.
Learn how to build a multilingual application using Microsoft .NET. This article outlines the construction and then demonstrates it with examples.
Explore some common creational design patterns and learn how to implement them using Microsoft .NET.
Determine the overall performance of your applications and diagnose those pesky undocumented features with performance counters. Learn the basics of deploying and using features in your instrumentation.
Learn how to create a Windows Service that takes an action on a scheduled interval by using classes in the System.ServiceProcess.ServiceBase and System.Timers namespaces, among others.
Learn more about reading from files and examine the task of parsing data from a file.
Better query performance in Microsoft SQL Server can be accomplished through the efficient use of indexes, but performance is dependent on implementation decisions. Learn how to implement indexes and increase database performance.
Discover how to send e-mail from within your .NET applications using the System.Web.Mail namespace.
Not only explains queues, but also demonstrates writing to and multiple ways for reading from a message queue.
Learn to create simple charts and graphs using the Microsoft .NET Framework's System.Drawing namespace.
Discover how to easily store and retrieve objects into a file, a database, or in an ASP session state.
Learn how to improve the performance of your ASP.NET application with the use of caching.
One of these concepts included with C#, but not with Visual Basic .NET, is the ability to overload operators.
Explore how to interact with files from within .NET. The topics covered will include how to get the properties on files in a directory as well as how to use a number of classes in the System.IO namespace.
Learn when to apply a DataReader over a DataSet and vice versa.
Explore how to access directory services from within .NET. Cover how to use the Active Directory for items such as searching and providing authentication services for an application.
Multithreading in .NET Applications, Part 3
Learn more about multithreading, a powerful tool for creating high-performance applications. Here you see the basic methods involved with working with threads, along with the synchronization of thread activity.
Multithreading in .NET Applications, Part 1
Multithreading is a powerful tool for creating high performance applications, especially those that require user interaction. In this article, you will explore multithreading with the .NET Framework as well as learn how multiple threads can be used to improve an application's user interface.
Creating a Windows Service in .NET
Visual Studio .NET makes it relatively simple to create a Windows Service. Learn what Windows Services are and how to create, install, and debug them.
Explore COM Interoperability
Explore COM Interoperability, also known as COM Interop. COM Interop is the means to which COM objects can be used in a .NET application and how .NET objects can be built to appear to be COM objects.
Building a Logging Object in .NET
Retrieving application settings is a pretty common task that falls under the category of another of those tedious and repetitive tasks that programmers have to deal with. Explore a way to eliminate this tedious programming task through a combination of technologies.
Cryptography in .NET
This article covers encrypting data using the cryptography classes available through the Microsoft .NET Framework.
.NET Remoting
Remoting is a more efficient means than Web Services for allowing programs to interact. Learn how remoting differs from Web Services and other technologies. More importantly, learn how to implement remoting.
Database Independent Data Access
Learn how to use custom attributes to eliminate tedious coding.