May 21, 2019
Hot Topics:

More articles by Paul Kimmel

Paul Kimmel is an architect for TriState Hospital Supply Corporation and the co-founder of the Greater Lansing Area .NET Users Group (glugnet.org). Look for his new book, UML DeMystified (McGraw-Hill/Osborne, October 2005), and his upcoming book, C# Express for Professional Programmers (Addison-Wesley, Spring 2006). If you have a programming question you can contact him at pkimmel@softconcepts.com.

Writing Solid Code

Memory mapped files use the system's memory manager and let you treat large files as if they were in-memory objects, supporting extremely large file access, faster access, and multiple, simultaneous processes accessing the same file.

Incremental Intellisense Improvements in VS2010

Learn about the history of debugging and evolutionary improvements in Intellisense in VS2010.

Declaring Anonymous Types in VB

Using an anonymous type in VB, which is essential for technologies like LINQ, means that the compiler will generate a class for you based on context and named initializers saving you time and effort. To learn more read on.

Dynamic Programming with Lambda Expressions

Add ultimate flexibility and power to your programs with function parameters and Lambda Expressions.

Uploading an Image and Creating a Thumbnail in ASP.NET

Follow these simple steps to let users upload image files and display them as thumbnails in ASP.NET.

Converting Data to XML with LINQ to XML

Sometimes when you have all kinds of data what you really need is XML. LINQ to XML let's you employ functional construction to convert your data into XML.

Implementing Skins and Themes for ASP.NET

Skins and themes make it much easier to quickly, uniformly, and easily change the way your web application looks.

Obtaining Client-Specific Information with a Web Application

Obtain client-specific information from your Web application using ActiveX, which only works with Internet Explorer and browsers that have ActiveX extensions.

Running Custom Tracepoint Macros in Visual Studio

Programming is hard,debugging is hard. Doing both well is critical to being a good programmer. To make things easier for us Paul Kimmel demonstrates how to run custom Tracepoint with macros.

Hardware's Dirty Little Secret, or Why Software Can be Mass Produced

OP-ED: Unlike the Illuminati, the IEEE exists, and they have a secret. This secret helps them turn out shiny MP3 players, phones, and computers with processing power than we programmers can figure out how to use. This is how they do it. When will developers learn the same truths?

DataBinding a DropDownList in a FormView

Providing a drop down list in your ASP.NET Web applications help users avoid wasting time with bad data and it's a kinder, gentler thing to do.

Displaying and Customizing Images from a Database

Discover how to render an image directly from a database using an IHttpHandler and how to modify the image on its way to the client using GDI+.

Intercepting Every HTTP Request with IHttpModule

You can respond to every HTTP request. Just implement event handlers or an IHttpModule (which is a cool way to write a re-deployable solution for multiple projects).

Good Old OOA, OOD, OOP Techniques are Economically Sound

How do I hide the unneeded features? Don't cut corners just because budgets and staff are being cut.

Writing to the EventLog from a Web Application

The security-hole testing that hackers engage results in a sparring match where security-conscious companies like Microsoft are forced to—well, make life harder on the rest of us.

Updating a Database from WinForms Controls, Old School

Old school programming, whereby the programmer reads control values and writes inline SQL, still works, but it's so 90s. If you are new to WinForms or Web programming but experienced, peruse the article and then master LINQ.


Elevate your SQL game (a little bit) with CROSS APPLY and OUTER APPLY.

Exploring Cool Features of Devexpress' ASPxGridView

Devexpress has a commitment to providing amazing ASP.NET (and other controls), such as their latest revision of their ASPxGridView, version 8.3, which supports filtering, grouping, sorting, and much more, with little or no coding on your part.

Creating a Rounded Panel Control

Round those corners and make your user interfaces a little jazzier with a rounded rectangle Panel control; a fun chunk of code to incorporate into your application.

OP-ED: Software Development from Core to Cosmetics

Few projects end up having too much time. Successfully completing a project often depends on tackling core, significant, and risky aspects of any custom solution first—like the long hard march up hill—and finishing with the trim, or cosmetic work, last.

Dumping an Object's State with a DynamicMethod

Emitted code and the DynamicMethod have the benefit of speed and the emitted code can be unloaded when the DynamicMethod goes out of scope, resulting in the best of all worlds.

Speed Up Your Reflection Processes

Use Reflection.Emit to speed up Reflection intensive processes by writing one general algorithm that emits a specific solution.

OP-ED: The Realities of an Uncertain Economy

When handed a crate of lemons, make lemonade. Success in a tough economic climate is about perspective and attitude.

Dumping an Object's State with Reflection and Extension Methods

One general-purpose algorithm, written one time, is a great time saver for programmers.

Handling that Pesky Windows ControlBox

Some things that seem hard are actually quite easy, and some things that seem easy take a little work, like that little [X] on a Windows Form, the ControlBox. Learn how to know just when that little bugger is pressed.

Creating a Most Recents Menu Item with the MenuStrip

The MenuStrip and ToolStripMenuItem are a little harder to use than the Menu from earlier versions of VB. Walk through exercises using the MenuStrip, ToolStrip, and the Command behavior pattern to encapsulate a Recents menu for your applications that operate on files.

OP-ED: What Kind of Boss...

Wisdom is figuring out whether every time you encounter a pointy-headed manager you are going to roll over and save your sanity (and possibly your job) or stand up, be counted, and risk greatness or the guillotine. There is a temporary sense of safety in staying with the herd, but all herd-roads lead to the butcher.

Inferring an XML Schema from an XML Document

Let the .NET Framework write your XML Schema document (XSD) for you.

Adding Attachments to Excel 2007 Email Hyperlinks

Learn to add attachments to hyperlinks that contain email addresses by using a little bit of VBA.

OP-ED: Why LINQ to SQL is a Better Option than Straight SQL

LINQ to SQL eliminates SQL Injection Attacks and is easier to use than straight SQL to boot.

Creating a Service with Windows Communication Foundation and LINQ to SQL

The .NET framework is full of small, discrete, and useful classes and big chunky bits. When you start combining the chunky bits, like LINQ to SQL and Windows Communication Foundation, things get interesting real fast.

Using Stored Procedures and Parameters.AddWithValue

Developers working at all levels of experience can take advantage of this technique. Discover how to invoke a stored procedure with parameters using the AddWithValue method of the SqlParameterCollection to define SQL parameters in one step.

Op-Ed: Fish or Cut Bait

If a person or group does something successfully one time, ten times, or a hundred times, there is an increasingly better chance that group will succeed again. All of the books in the world won't turn a ten year old kid into Gordy Howe or Wayne Gretzky. There is an element of talent. Find the talent.

LINQ to Entities Preview

ADO.NET 3.0 and the ADO.NET Entity Framework are designed to let you spend less time writing SQL and database plumbing code and more time working in the space of the problem you are trying to solve.

Programming with LINQ to XML for Objects (LINQ to XSD)

By using LINQ for XML for Objects (aka LINQ to XSD), you can define an XML document and an XML Schema that then can be treated like any other data repository. Discover how Visual Studio makes this easy by generating strongly typed object wrappers that are easy to use.

OP-ED: Second Class Citizenship Is a State of Mind

VB.NET can do anything C# can do. VB.NET is a first class language with all of the object-oriented elements that support mega-enterprise software development. Why then do some outspoken VB programmers feel like they are treated like second class citizens? I say it's a state of mind.

Using Functional Construction to Create XML Documents

Dynamically construct XML documents in code quickly and easily with LINQ to XML and Functional Construction.

Controlling SQL Text Indexing Services with SQL Managed Objects and VB.NET

Control the SQL Server service from your VB code using SQL Management Objects (SMO).

Unit Testing with Service Stubs or Mock Types

Build your applications with built-in "mock types" (aka "services stubs") to facilitate continued development and unit testing even when essential systems services are unavailable.

Using Literal XML with Embedded Expressions in VB9

Learn how to use literal XML with VB9 and embed expressions, such as LINQ queries, in the XML.

Successful Software Projects 301

Failure rates for custom software projects are astronomical. A few relatively simple choices in how you spend your time and focus your energies—without all the voodoo of the latest fad process—will make all the difference in the world.

Implementing a Left Join with LINQ

Learn how to implement a Left Outer Join with LINQ.

Search and Replace with Regular Expressions

Learn how to use regular expressions in Visual Studio's Quick Find and Quick Replace dialog for improved code replacement.

Programming with LINQ to SQL

You can use LINQ to SQL to define an Object Relational Mapping between SQL tables and then query those tables with LINQ.

Working with Range Variables and Let Statements in LINQ

Range variables are powerful and flexible. Discover why they are critical to mastering LINQ queries.

Fixing a Quirk of VB Lambda Expressions

Learn how to define Lambda Expressions that perform an action without a return value.

OP-ED: Fixed-Price Software Projects, or, The Quickest Way to a Financial Calamity

Successful software projects have to begin with the premise that a fixed price, time, and project that is accurate may be a fantasy because there are too many unknowns—people sometimes being the worst offenders. Fix a time and price to what can be fixed and pay for what must be paid for.

Visualizing LINQ Sequences with GDI+

Discover a utility for quickly obtaining and managing rectangles within rectangles. The rectangles then can be used to do things such as manage the layout of dynamically generated forms or visualize LINQ queries.

XML Documents from Comments

Intellisense is a programmer's best friend. The framework is too big to memorize, but Intellisense can make finding things manageable. Extend Intellisense into your own code with XML comments in Visual Studio 8 and 9.

OP-ED: Monday Morning Quarterbacking Is Alive and Well

A Monday morning quarterback is a person who, after the event, offers advice or criticism concerning decisions made by others; or, one who second guesses. Too many Monday morning quarterbacks on Sunday evening can screw up your Focus IQ. Learn what "Focus IQ" is, why you want the score as high as possible, and how to get it there.

Exploring Lambda Expression Trees

Gain an understanding of the difference between Lambda Expressions generated as code and those generated as expression trees. Explore the expression tree and briefly touch on how API developers uses expression trees to convert expressions to other forms, such as to T-SQL.

OP-ED: Do You Hear the Sirens' Song?

Everyone has ideas about how to build software. Explore some common fallacies and collect some hints that may help you along the way. All of the ideas are the opinion of the author (who is sometimes wrong).

Lambda Expressions and Currying in VB9

C++ programmers aren't the only ones who can write code so obtuse that it's nearly indecipherable. Now, VB9 programmers can compete with obscure code by using Lambda Expressions and Currying. But, is this a good thing? Explore Lambda Expressions and Currying, but the jury is still out whether or not currying is a good thing. It's definitely cool.

Generic Delegates and Lambda Expressions

Discover how to condense your code by using new generic delegates and Lambda Expressions to accomplish more while writing less.

Partial Methods

Learn how to implement partial methods and know where to expect them.

Implementing a Custom ConnectionString Installer for Setup

See how a setup project with a custom action lets the user define the connection string using the Data Links dialog and encrypt that connection string using RSA encryption.

Keyed Anonymous Types in VB9

Learn to use keyed anonymous types in VB9.

Project Estimation Geometry

Learn how to estimate projects (the tangible and intangibles) effectively in the real world to ensure success.

A Better Fixed GridView Header for ASP.NET

Learn how object-based JavaScript can be used to clone and fix the position of a grid header, handling runtime changes in the associated grid's appearance.

Implementing a Decimal-to-Fraction Class with Operator Overloading

Learn how to implement a Fraction's class—which is ideally suited for overloaded operators and how to overload operators in Visual Basic.

Rendering Images in ASP.NET Directly from Your Database

There's no need to store file system paths in a database. Just store images in your database and then directly load them to your ASP.NET pages.

OP-ED: Process is Irrelevant

Knowledge, flexibility, and the discretion of smart individuals beats a one-size fits all rule book any day.

Talking Web Clients with JavaScript and the Speech API

See how to make your web clients read or play content to its users. You will experiment with JavaScript from the command line, learn a JavaScript debugging technique that might be useful, and see how to load the Speech API and ask it to read the ALT (text) attribute of HTML controls.

De-Sludging ASP.NET Pages with PageAdapter

Think you know about VIEWSTATE within ASP.NET? Learn how to fully implement VIEWSTATE in new and efficient ways in ASP.NET 2.0.

Programming with Lambda Expressions in VB9

Lambda Expressions provide a powerful and concise method of writing in-line code within Visual Basic, especially useful when working with LINQ queries. Learn how to implement Lambda in Orcas (VB9) before the next beta.

Anonymous Types (or Projections) in VB9

Anonymous types (or projections) are a new feature that permits you to define strong types on the fly without writing the nominal—full class—definition. Learn how to implement Anonymous types in VB9.

Implementing Extension Methods in VB.NET

Extension Methods permit programmers to add behavior to a class without creating a wrapper. Here, you will learn how to implement Extension Methods in Visual Basic and .NET.

Animating Graphics in ASP.NET with GDI+

You've learned how to render graphics with GDI+ and ASP.NET. Take the next step and learn how to dynamically update images with AJAX.

Better Entities with Nullable Types

Tired of checking database entries for null values? Learn how you can use Nullable types to make fields and properties accept nulls.

Integrating .NET and SAP 101

SAP integration with Windows is possible and basic operations aren't impossible but can be challenging. Here you will find an opener for VB.NET programmers who might be working on an SAP implementation and integration with non-SAP systems.

Rendering Graphics in ASP.NET with GDI+

Web forms do not have a canvas, so you can't ask a Web form for its Graphics object. But, you can simulate this behavior by rendering graphics in ASP.NET—with some help from GDI+.

Exploring the Value of .NET Users Groups

Participating in your local .NET users group can lead to greater job satisfaction, money, and prestige. Don't doubt it; the author is living proof.

Understanding Relaxed Delegates in VB

Microsoft relaxed delegates in VB 8.0 to provide more options for binding event handlers to events. Some further relaxation is in store with the upcoming VB 9.0 release. Find out how it works.

Dynamic Identifiers: A Sneak Peek at .NET 3.5 for VB Programmers

Attention VB programmers: Dynamic identifiers are not just weakly typed variants extended to C#. Find out what this new technology is and why it's better than what you're used to.

Handling Database Writes in Data Access Layer Management

The write part of managing a data access layer is where things can go awry. Writing requires managing changes, validation, and transactions. Learn how to handle the challenge.

Why Most Code Looks Like a Rube Goldberg Invention

Reliability is a by-product of beautiful code, so conscientious programmers care about the look of their code. But who's got the time to write beautiful code when deadlines and end users couldn't care less what the code looks like?

The Only Data Access Layer You'll Ever Need?

A useful data access layer (DAL) makes managing persistence easier than writing CRUD behaviors all over your code. Learn to build a flexible, simple one that does just that with a relatively few lines of code.

What ADO.NET Teaches Us about Custom Objects

Why do so many .NET programmers prefer to write custom objects instead of using ADO.NET objects? More control, for one. Read on to find out the other reasons.

Maintain ASP.NET Tree Position on Postbacks

Have you found ASP.NET lacking when it comes to keeping track of the last selected position between postbacks? You're not alone. Learn a JavaScript solution that does the trick.

Introducing LINQ for Visual Basic

What does .NET's LINQ (Language INtegrated Query) have to offer the VB developer? Read on to find out.

Implementing Nested Functions in C#

Want to test just how broad and expressive a language C# is? Learn how to implement nested functions for C#, which so closely models nested functions that nested behaviors practically exist already for the language.

Managing Nested GridView Controls

There's an easy way to manage the complex ASP.NET presentations that involve nested grids and controls. Learn a reliable approach that leverages the observer pattern.

Build a Nested GridView Control with ASP.NET

Take the tedium out of building complex GUIs in ASP.NET by creating nested GridView controls.

Whammy Tracing: Hassle-Free .NET Debugging

The Whammy debugging tool permits you to use the .NET Framework to add detailed tracing information to your application in a very unobtrusive way.

Find Out What's Taking Your .NET Code So Long to Run

Employ some useful .NET features to build an auto profiler, which a consumer can use to time any statement, method, or larger block of code just by calling a couple of methods.

.NET Sorting: Compare Just About Any Property of Any Object

Implement the generic interface IComparer with some reflection, and .NET will provide sorting that compares just about any property of any object. See how it's done.

Use Interop Code and Overlap Fields with the Union Construct in VB.NET

With VB.NET, you can manufacture idioms as advanced as the union construct, which you previously found in complex languages like C++.

Redirect I/O to a TextBoxWriter in .NET

Have you ever wanted basic output to go somewhere besides the console in .NET? Learn how to redirect Console output streams to a TextBox instead of the command window.

Old Programmers Never Die, They Just Become Managers. Not!

What young programmers have in energy, we veteran programmers have in experience. Find out how to use that experience to stay one step ahead of the eager youngsters.

Using Gradient Shading in Web Pages

Cascading Style Sheets have all kinds of filters that add neat effects to your Web pages. Learn how the gradient filter adds gradient coloring.

Implementing a Fixed GridView Header in ASP.NET

Learn how to use two new ASP.NET Web controls, the GridView and the Panel, styles, effectively to create a scrollable grid with a fixed header.

Understanding Access Modifiers in VB 2005

With access modifiers, you can determine who has access to certain information in your code and who doesn't. Learn some simple rules that will help you quickly determine which modifier to use and when.

My Feature in VS 2005: Storing Application and User Settings

Using XML to store configuration settings is a great idea, and thanks to the My feature, you don't have to learn XML to do so.

Visual Studio 2005: So Many Choices, So Much Marketing, So Little Time

Microsoft introduced new pricing schemes and changed its MSDN subscription programs with the launch of Visual Studio 2005. Find out which option is best for you.

Refactoring VB in Visual Studio 2005

Refactoring can improve the internal structure of your VB code without changing its external behavior. Use it to remove the subjectivity of what is good code and what is less-good code.

The TransactionScope Object Makes ADO.NET Transactions Easy

Learn how the TransactionScope object enables you to auto-enlist database operations in your ADO.NET transactions.

Programming with the My Feature

Part code-generating factory, part proxy pattern, and part façade pattern, the My feature makes VB.NET a little simpler to use by acting as a cue for the VB compiler to substitute it with more verbose code.

Is the Internet Boom Over?

Can the average programmer still make money on the Internet after the dotcom bubble burst? Paul Kimmel believes that history tells us yes.

Binding Data to WinForms Controls in VB.NET 2.0

Visual Studio 2005 and .NET 2.0 support binding to traditional data sources and custom objects based on the capabilities of the CodeDOM, typed DataSets, and changes to Forms designers.

Safe Multithreading with the BackgroundWorker Component

Until the .NET Framework controls are thread safe, you will have to use Control.Invoke and delegates to marshal data from background worker threads to the Windows Form thread.

Your Guide to Fast, Fail-Proof Software Development

Software projects fail because some critical management principles remain largely ignored. Find out what the prerequisites are for building software as quickly as humanly possible.

Programming with Partial Classes in VB.NET 2005

Partial classes separate out all of the plumbing that the .NET form designer adds to forms and give VB.NET programmers the clean code-behind experience they're used to. Learn how to use them.

Protect Resources with the Using Block

Garbage collection does not determine when resources are collected, so it's up to you to protect classes employing finite resources that need some deterministic cleanup. Learn how the using block—a shorthand version of the try-finally block—enables you to do so.

Coming Soon: Autonomous Nano Code Generators

Imagine a day when tiny bits of code automatically generate more code based on any factor a programmer desires. That day may be right around the corner.

Uploading Images to a Web Site Is Harder Than You Think

Uploading images in Web applications isn't nearly as simple as you may think. Learn the mechanics—and frustrations—of permitting image uploads, saving images, and rendering images.

FREETEXT Searches with SQL Server and ADO.NET

Learn how to install, configure, and use the MS Search Engine with SQL Server. Once installed, MS Search permits you to perform fuzzy searches of small and large amounts of character-based data.

Why I'm Testy About Tests

Paul Kimmel says tests are impersonal, impractical, and inefficient for evaluating potential. Worst of all, they promote laziness in personnel departments that use them as the determining factor for hiring.

Write Macro Code Generators with VS 2005

You can employ macros to write code for you. Learn how to use the macro engine in VS 2005 to write a code generator that implements the refactoring Encapsulate Field for VB.NET.

.NET Generics for VB Programmers

With .NET 2.0 offering support for generics, learn how to define generic methods and classes and use the generic classes in .NET.

More: You Might Be Suffocating in a Constipated Bureaucracy If...

Paul Kimmel sends up the IT workplace with another parody based on the comedy of Jeff Foxworthy. Depending on how close to home these comical scenarios hit, you may not know whether to laugh or cry.

What Anonymous Methods Might Look Like in VB.NET

Anonymous methods haven't shown up in the current beta version of VB.NET 2.0. Paul Kimmel predicts that they will in upcoming releases and shows what they might look like.

Overloading Operators in VB.NET 2.0

VB.NET 2.0 enables you to utilize overloaded operators, which not only are easy to implement but also can provide your classes with intuitive operators. Learn how to use this powerful feature.

Create a Custom Application Block That Decouples Your Code

Implement Paul Kimmel's Radio pattern to separate internal messaging within an application. Along the way, you'll learn how to create a reusable custom application block for the same purpose.

Using Code Snippets in Visual Studio 2005

Think .NET code snippets are just about dragging and dropping some reusable code into the toolbox? Guess again. Code snippets in Visual Studio 2005 are far more useful. Find out why overlooking them would be a mistake.

Language Wars All Over Again with UML

The good news about UML is it provides software developers an industry-standard language to describe problems and solutions. The bad news is it has sparked the same good-versus-bad debates that they fought over C# and Visual Basic .NET.

Encrypt Connection Strings in VS 2005 .config Files

Learn how to add a connection string to your app.config file in Visual Studio 2005, encrypt that connection string, and introduce a tool for automatically encrypting connection strings for ASP.NET.

Create Your Own Project Item Templates in VS 2005

Visual Studio 2005 builds on the flexibility of XML to condense the process of creating templates. Paul Kimmel demonstrates how you can take advantage of this function.

When OOP Becomes POO

Many people who understand OOP well enough to use it are trying to create it too. Paul Kimmel says that's often when OOP becomes POO.

Object Tool Bench: Cool New VS 2005 Feature

Learn about 'Object Tool Bench,' which is sure to become one of your favorite tools in the forthcoming 2005 version of Visual Studio.

Your Introduction to the My Object in VS 2005

With the introduction of the My object in VS 2005, Microsoft is still finding innovative ways to increase productivity without making VB.NET a second-class language.

.NET Remoting and Event Handling in VB .NET, Part 3

Learn the ins and outs of .NET remoting and event handling in VB .NET with an examination of the supporting code in a simple chat client and server application, including the use of the command, observer, singleton, and factory patterns.

.NET Remoting and Event Handling in VB .NET, Part 2

See how to implement a client's configuration file in VB .NET so that the client can talk to your server, and find out why clients that handle server events have to be remotable.

Has Visual Basic Lost Its Way?

Paul Kimmel says the next big paradigm shift in programming will be based on .NET. Find out what he predicts VB's role will be in this coming change, and why he wonders whether Microsoft dropped the ball with VB.NET.

Eclipse Overshadows Other Development Tools

It was a close call when deciding the best Developer Tool, but in this case, nature ruled.

When Did a Cubicle Become Such a Prize? And Other Rants

Paul Kimmel speaks out on behalf of all the mistreated contractors out there.

Encrypt DataSets for Offline Storage

Learn how to encrypt offline data, .NET style. Paul Kimmel offers you the opportunity to experiment with ADO.NET, XML serialization, streams, and the DPAPI—technologies you can use to encrypt user data.

Combine Polymorphism and Web Services

Have you wondered how to apply polymorphism across Web services? Wonder no more. Paul Kimmel reviews polymorphism, demonstrates XML Web services, and most importantly, shows you how to combine polymorphism and Web services.

Remoting or Web Services, How Do I Decide?

Choosing between XML Web services and .NET remoting isn't a hard decision. Just use XML Web services almost all of the time, says Paul Kimmel.

.NET Remoting and Event Handling in VB .NET

Using .NET Remoting, learn how to configure a remote server, define remotable objects, and define custom event arguments and delegates. Do all of this while creating a simple chat application!

Building Distributed Apps? Use XML Web Services, Not Remoting (Mostly)

When choosing between .NET Remoting and Web services for your distributed applications, XML Web services are the right call most of the time. Learn how to produce and consume these Web services.

All I Want for Christmas Are Words

Dear Santa, all Paul Kimmel wants for Christmas is code that employs whole words and a sane use of capitalization, abolishing funny prefix characters and prefix notations. Is he asking too much?

ADO.NET Generates SQL for You Via the SqlCommandBuilder

ADO.NET's SQL command builder reads a schema and generates SQL for you; this can be an excellent timesaver in the appropriate circumstances. When applied with sound judgment, this technique is a nice shortcut.

Calling Stored Procedures with ADO.NET

If you're a Visual Basic .NET programmer who has to write stored procedures for MS SQL Server, this article is for you. Learn how to isolate SQL code from VB.NET code to clearly create divisions of labor and focus for your solution.

Create a GUI for an FTP Client with VB.NET

Paul Kimmel demonstrates the implementation of a Windows GUI for an FTP client, and along the way, presents the skills you need to complete the FTP solution or similar kinds of applications.

Moses Delivers the Ten Commandments for Programmers

If you asked Charlton Heston, Moses in the epic film The Ten Commandments, to list 10 useful commandments for programmers, Paul Kimmel believes this would be his answer.

Write an FTP Client with VB.NET to Bridge Legacy Software

Paul Kimmel gives you all you need to write a complete implementation of an FTP client in managed code. Once you create a socket and an IPEndPoint, and decipher the data you will receive from the other end point, you are well on your way to writing connected software.

Create a Shaped 3D Control with GDI+

Want to create non-rectilinear controls for custom Windows software development? Learn how to convert a custom three-dimensional shape primitive into a shaped control with .NET and GDI+.

Why Adam Smith Is Right and Software Generalists Are Wrong: an Exemplar in Heroic Couplet

Paul Kimmel offers an ode to the symbiotic relationship between the programmer and the tester, positing that software quality suffers when one generalist assumes both roles.

Create a 3D Cube Structure for GDI+

Three-dimensional primitive shapes are conspicuously absent from the .NET Framework and GDI+, but that didn't stop Paul Kimmel from implementing a 3D cube primitive. Read all about his results.

Objectify an XML Node with an IConfigSectionHandler

Implement a section handler that coverts an XML node from a bunch of spurious individual values into a strongly typed object.

You Might be Suffocating in a Constipated Bureaucracy If...

If every project you work on has a schedule before it has a plan, you might be suffocating in a constipated bureaucracy. That's just one of the 36 workplace quips you'll find as Paul Kimmel does for programmers what Jeff Foxworthy did for rednecks.

Prime Programming Proficiency, Part 3: Lines-of-code Counter

You can track the number of projects, files, and lines of code in any given solution implemented with VS.NET. Just invoke a built-in, lines-of-code counter in VS.NET and implement it as a macro that other teams can share.

The Project-Scheduling System Is Stupid, So Outsmart It!

Why do you keep accepting the impossible project schedules that managers saddle you with when they lead only to unrealistic expectations with no real buy-in? Paul Kimmel tells you how to fight back.

Prime Programming Proficiency, Part 2: VS.NET Macros

Paul Kimmel introduces the VS.NET Macros IDE and gets you started on implementing the LineCounter tool. By using VS.NET's extensibility object model in conjunction with macros, you can automate a wide variety of tasks to extend and customize VS.NET.

Prime Programming Proficiency, Part 1: Lines-of-Code Heuristics

This first article of a three-part series provides your software development team with a starting point for productivity improvement: measuring lines of code and evaluating them relative to your production schedule.

Drinking Hemlock, or Why Instant Gratification Is at Odds with Software Quality

Paul Kimmel says the software industry frequently chooses instant gratification over sound software design. He explains why this compulsion exists and how it causes a huge percentage of software projects to fail.

Smart Clients: Windows Forms Flexibility with Web Application Ease

Learn the basics of embedding a Windows Forms control in ASP.NET and gain an understanding of why this isn't the correct approach and why smart clients are.

Opinion Piece: The Outsourcing Question

Paul Kimmel offers some straightforward discussion and insights on this current trend, including some historical perspective, where we are now, possible outcomes, ways to protect yourself, and how international outsourcing might unfold.

It Is a Matter of State

Knowing the difference between using flags, inheritance, and polymorphism, or employing a pattern and making a considered decision about which to use represents mastery. Choosing correctly is art.

Sometimes You Gotta Make a Little Noise

Learn how to create a wrapper for the Windows Multimedia Library that makes adding sound to your applications very easy. Along the way, you'll discover how the Declare statement imports APIs in .NET.

Uh Oh, I Can't Create an ASP.NET Project

Having dealt with customer environments where VS.NET was installed without IIS, Paul Kimmel offers his notes on how to recover when you can't run or create projects because someone forgot to install a necessary prerequisite.

Completing the NUnit Project Template for .NET, Part 2

See how you too can become a hyper-productive programmer.

Creating an NUnit Project Template for .NET, Part 1

Combine NUnit and TraceListeners to create great test libraries.

One Just Needs to Know Where to Look

The Data Form Wizard is a tool in VB6 that permits you to pick a table, and it generates a data-aware form and incorporates that form into your project.

Creating a Dropdown Calendar Control for ASP.NET

Learn how to create a dropdown-style calendar control right in one page, eliminating an extra page and post back to the Web server to open and close the calendar.

Part I: How Did Google Become a Verb?

Learn how to incorporate searching into your Web site. Specifically, see how to configure and prepare the Indexing Service.

Programming for Fun and Profit - Using the Card.dll

Learn to tap into the Windows cards.dll to give your card games the same professional look used in Windows' card games!

Debugging Hosted Assemblies

Explore how to debug a hosted assembly in .NET using a Blackjack program as an example.

Can You Hear Me Now?

Three aspects of .NET programming can make debugging and testing a ton of fun and help you come off as a real pro when you deliver bulletproof code.

Don't Commit Errorcide, Part II

Discover a more advanced mechanics to help you find a balance in the artistic dance that is useful structured exception handling.

Don't Commit Errorcide, Part I

No error handling code and your application is doomed to the scrap heap. Too much, misapplied, or a poor application of error handling code and your error handling code causes the bugs. Learn about avoiding Errorcide!

Un-Dynamics of Software Development, or, Don't Bite the Flip Bozo

Some very wise observations.....

Programming with the Exception Management Application Block in .NET

Instrumentation and application blocks seems to be a current trend in technology. If a trend is useful and doesn't require us to stab a hole in our tongues, then it's worthy of a look!

Managing SQL in Visual Studio .NET

You can generate perfect SQL even if you aren't a SQL programmer, and you never have to leave Visual Studio .NET for most of your day-to-day SQL tasks.

Using Satellite Assemblies for Multi-Language Programming

With just a modest amount of work you can prepare your Visual Basic .NET applications for customers that speak other languages.

Encrypting Data in .NET

If you want to conceal chunks of data like connection strings or data written to a database or XML file then you could use the simplified class resting on the CryptoAPI demonstrated in this article.

Using XML Schemas to Create Strongly Typed DataSets

Learn the technical aspects of defining an XML schema, generating a typed DataSet, initializing, and using that typed DataSet within Visual Basic .NET.

Paul's Recipe for a Perfect Project

Just for fun, expert Paul Kimmel provides his recipe for building a successful project.

Incorporating the Data Link Properties Editor into a VB.NET App.

If you want to learn a bit about COM Interop or how to incorporate the Data Link Properties applet seamlessly into your Visual Basic .NET application then this is a good article for you.

Using Client-side Script to Focus Controls in ASP.NET

Many users want Web applications to be as responsive as Windows applications. Default, user-friendly features such as 'focusing' control behavior—call SetFocus in Windows—doesn't come cheaply with Web applications. Learn how you can use injected JavaScript to set the focus control in ASP.NET.

Editing Nested DataGrids in ASP.NET

While DataGrids can be nested easily, successfully repeating or nesting a DataGrid and getting the edit and update behavior to respond correctly is more of a challenge.

Managing Complex Layout and Nesting DataGrids in ASP.NET

Learn how to intersperse HTML table rows and cells across DataList templates to intimately manage the appearance of a DataList. In addition, learn how to nest a DataGrid in a DataList, and learn the best way to manage the presentation and code-behind for control nesting by using a UserControl.

Using Nested DataGrids in ASP.NET

Discover the basic technique for binding any data source to a DataList and DataGrid in .NET. Also learn the basics for defining a data binding statement for the template sections of a DataList.

Creating Simplified Code Generators in VS.NET, Part II

Expert, Paul Kimmel continues his two part article showing you how to turn up your productive output by using macros in Visual Studio .NET to write simplified code generators.

Creating Simplified Code Generators in VS.NET 2003

Become a super productive programmer! Turn up your productive output by using macros in Visual Studio .NET to write simplified code generators.

Managing Low-Level Keyboard Hooks in VB .NET

Learn to capture and react to keyboard presses by your users. Paul discusses hooking into keyboard information using the Windows API and Visual Basic .NET.

Events in .NET: Did You Know?

Is Visual Basic .Net keeping up? The Common Language Specification defines the minimum things that a language must support to be .NET compliant. There are optional features including a feature that involves events.

Writing Code Generators with the CodeDOM - Part 2

Creating a code generator that generates all of the code for a .NET Windows Form. Paul Kimmel continues his discussion on the CodeDOM.

Writing Code Generators with the Code Document Object Model - Part 1

There is no way Microsoft could know in advance what all of the types programmers would return from an XML Web Service. Caught between a rock and a hard place, Microsoft wanted to make Web Services easy to consume, but there is no one-size fits all client-side proxy. The solution was found in the CodeDOM.

Testing Visual Basic .NET with NUnit

NUnit is an open source, testing framework for all .NET languages. The big payoff is that NUnit can run tests automatically, and it can be integrated as part of your build, test, and deployment lifecycle. See it in action with Visual Basic .NET...

Creating Custom a Custom Control and UITypeEditor - Part 2

Provide custom editing in the Visual Studio .NET Properties window when the basic text-input editing features aren't satisfactory. Learn to build a UITypeEditors.

Creating a Custom Control and Custom UITypeEditor in VB - Part 1

In this first of a two part article, learn how to marry the power of regular expressions to a Windows Forms text box. The regular expression will play the role of input validator.

Programming with Stored Procedures in Visual Basic .NET (Part 2)

Paul continues his discussion on stored procedures and Visual Basic .NET.

Programming with Stored Procedures in Visual Basic .NET (Part 1)

Stored procedures are an excellent way to optimize complex business solutions for database applications. Learn how you can edit and run stored procedures in Visual Studio .NET and how to incorporate them into your Visual Basic .NET applications.

Where is Visual Basic 7?

While at Comdex, Visual Basic author and presenter, Paul Kimmel, was asked the question, 'Where is Visual Basic 7?' Paul helps to alleviate the concerns that Microsoft has abandoned Visual Basic.

Implementing a Custom Trace Listener

A mainstay of software engineering is a concept called tracing. The basic idea is that you insert statements into your code that provide information about your application while it is running. (.NET)

Managing Low-Level Keyboard Hooks with the Windows API

It is possible to do just about anything in Visual Basic 6. To acquire a low-level hook into the keyboard, there is quite a bit of cryptic information involved. Paul makes it easy by showing you the several Windows API methods and the details for accomplishing this.

Managing Keyboard State in DOS, VB6, and VB .NET: A Brief History

The language may change, but people still want to know: How do you manage keyboard state in Visual Basic? Paul covers Visual Basic 6 and Visual Basic .NET!

Configuring Session Cache Servers

There are a number of ways to manage the session state of a Web application. Learn the steps you need to take to configure your server and to work with session state.

Defining Default Indexers in Visual Basic

Learn about the refined behavior of the Default modifier and how you can define indexers for your custom, typed collections. These default indexers will allow you to index elements of an object using the customary integer as well as a string key value. (Visual Basic .NET)

Technique Sharing with Project Templates

A convenient way to cross-pollinate learning with advanced subjects is to create project and item templates. By creating and sharing these templates you will find it easier for every member of your team to take advantage of every aspect of Visual Studio .NET. (Visual Basic .NET)

Working with Microsoft's Mobile Internet Toolkit

Learn about the Microsoft's Mobile Internet Toolkit, which can be used with .NET to create mobile device applications.

Asynchronous Web Services for Visual Basic .NET

Don't like to wait on your Web Service? Don't! Explore how to create asynchronous Web Services using Visual Basic .NET.

An Introduction to OLE Automation with Visual Basic 6

Paul Kimmel steps back and in his newest article shows how to implement OLE Automation using Visual Basic 6.

Declaring and Raising Events in Visual Basic 6

Paul Kimmel varies from his usual topic of VB.NET to discuss events and event handlers in VB6 in response to readers' requests.

Programming with Enumerators

Having experience in a procedural language provided a developer with the underlying idea of enumerators; however, there is a small gap to cover if using them with .NET.

Serializing Objects to a DataSet in Visual Basic .NET

See a demonstration to learn how to serialize an object to a stream as XML and read the XML iwww.an ADO.NET DataSet. .NET makes this simple!

Implementing the Singleton Pattern

Instead of reinventing a solution all you have to do is learn the pattern and know when to apply it. CodeGuru.com's Paul Kimmel touches on the Singleton pattern and its use.

The Case for Components

In Paul Kimmel's latest column from CodeGuru.com, he tackles the hype about classes and components. In doing so, he even presents you with information on the splitter control within Visual Basic .NET.

Web Services in Visual Basic .NET

Create a Web Service using Visual Basic .NET. Paul Kimmel explains the details!

Implementing Interfaces in VB .NET

In this new article, Paul quickly gets to the point of examining interfaces in Visual Basic .NET: how to define them and how to implement them.

Random Numbers and Tic Tac Toe with Visual Basic .NET

The holidays are a time for fun. Learn about random numbers from Paul Kimmel's latest Visual Basic Today column from CodeGuru.com. Includes a Tic Tac Toe game!

Really Thin Client Programming in VB.NET

From his column Visual Basic Today on CodeGuru.com, Paul Kimmel explains the pros and cons as well as shows how to do thin-client programming as a solid alternative to ASP.NET programming.

Implementing Custom Attributes in .NET

Extend .NET using attributes. You can create your own attributes in .NET, and Paul Kimmel shows you how in this installment of Visual Basic Today from CodeGuru.

Visual Basic .NET Attributes

Attributes are classes that allow individual developers to extend VS.NET tools without rebuilding VS.NET each time. Many attributes are already available, but most of the interesting ones haven't even been written yet. Perhaps you will do so.

Paul Kimmel on VB/VB .NET : Creating Visual Studio .NET Add-Ins

Create an Add-In for Visual Studio .Net!

Automating Repetitive Tasks in Visual Studio

Visual Studio.Net has added an expanded extensibility model and macros to the unified Visual Studio IDE. The macro tools allow you to quickly record repetitive tasks, enhancing productivity.

New Windows Forms Capabilities in Visual Basic.Net

At Tech Ed, Microsoft heralded its new implementation of Visual Studio.NET, the new C# language, and its continued commitment to the Visual Basic language.

Microsoft Scripting Runtime in Visual Basic 6

Paul Kimmel discusses the runtime scripting engine and using it from Visual Basic.

Paul Kimmel on VB/VB.Net - May 31, 2001

Last week Paul Kimmel finished Part II of his coverage on array enumeration. This week he expands on enumerations with a bit of bonus coverage.

Paul Kimmel on VB/VB.NET - May 25, 2001

Paul Kimmel continues his discussions on Visual Basic.NET user defined structures and array enumeration.

Enterprise Development Update

Don't miss an article. Subscribe to our newsletter below.

Thanks for your registration, follow us on our social networks to keep up-to-date