Login
 
 

Programming Articles
AppCycleSettings Class
Helper Class for Development / Test / Release Configuration Files
Data-File-To-Xml Utility
Class / Utility that converts data-files of various formats to XML
DataTable Search
Search control with basic/advanced modes for DataTable filtering capabilities
DNN Module Packager
Utility that creates a DotNetNuke manifest file and packages a module
Editable GridView
Full-featured GridView with Edit/Insert/Update features and more!
File-Text Replacement Tool
Utility that substitutes filenames from a file collection into a text template
GridView DetailsView
Full-featured GridView-DetailsView with View/Insert/Update features
GridView FormView
Full-featured GridView-FormView with View/Insert/Update features
SQL Statement Generator
Utility that generates INSERT, UPDATE, or DELETE SQL statements
UserMenuShortcuts Class
Add User Shortcuts To Files/Urls to Application Menus
XmlGridViewControl Control
View XML Files Easily with XmlGridViewControl
 
Introduction

I am a resourceful Software Developer with proven experience in architecting and developing both web and Windows client-server applications with ASP.NET, C#, WPF, SQL Server, VB.NET, Visual C , and VB6. Recognized by managers, colleagues, and peers as a personable, dedicated performer who demonstrates innovation, communication, and teamwork to ensure quality, timely project completion. My expertise lies in analyzing business application needs, developing strategic solutions and architecting software that exceeds client expectations.

Programming Languages: ASP.NET (v4.0 and prior), WPF, LINQ, C#, VB.NET, T-SQL, AJAX, Web Services, ADO.NET, XSLT/XML, XAML, Windows Services, Microsoft Office for Applications, C (Visual C , MFC, and C Builder), Visual Basic 6.0/5.0, JavaScript, HTML, CSS.

Databases: SQL Server 2010/2008/2005/2000, Microsoft Access, Oracle, XML

Platforms and Technologies: Visual Studio 2010, WPF/LINQ, IIS, Windows: XP / 2000 / NT / Server 2003/2000, MS Office, DotNetNuke Framework (DNN 6 and prior), Photoshop

Other Technical Skills: Well-versed in all phases of the software development life-cycle (requirements, design, development, testing, release, support, maintenance). Utilizes multiple development methodologies, including OOD, Extreme Programming, Structured Programming.

Software Development Philosophy

My philosopy towards software development is fairly straight-forward: produce high-quality, working software in a short amount of time, and architect solutions that can be easily extended for future enhancements.  Requirements and feature-requests to software frequently change during the development life-cycle, so good system/application designs must be both solid and flexible enough to be modified without having to significantly rewrite or redesign them.

During my years of software development, I've found that a solid, consistent database design is fundamental to producing excellent, high-quality software. Just as a house must be built upon a solid, stable foundation, so must software systems that use a database. The database is the foundation of most software systems today, so if a system is to be well-designed and well-built, then the database must be well-designed and the relationships between the data objects enforced.

I have also found code generators to be invaluable tools in the development process. The proper use of a good code generator can greatly reduce bugs in the various software layers (especially in n-tier systems); inconsistencies between layer classes; and easily handling design and feature modifications across the system.  Also, when bugs or design problems are discovered or software changes are required, it is much faster, easier, and simpler to regenerate the affected code than manually make all the changes in the system. In fact, I have found code generation to be so invaluable during the development process that I wrote my own template-based Code Generator tool that could be used in nearly any software development project.

As for work environments, I tend to prefer smaller development groups/teams, because they are typically more efficient, more productive, and more flexible than larger development groups.  I also like to have a certain amount of development freedom to use the technology and tools that best fit the need, rather than being locked into a particular language or system, within reason of course. Using the latest technologies and tools is especially important in software development, since it's always growing, changing, and improving.

That's my development philosophy in a nutshell:  quickly produce solid, consistent software systems that exceed the requirements, while expecting and designing for future changes.

Copyright (c) 2013 Chris Hambleton - .NET Software Developer