Tag Archives: Software Sagacity

Ghost in the Machine – Deep Software Analysis with ProcMon

AnalysisOccasionally, it is necessary to integrate a software package that just isn’t working, and no support is available.  For instance, the version might be so old that the development company no longer support it, yet the software is still a critical part of the client’s IT infrastructure.  Without the source code, and only a cryptic error message or random failure for guidance, how do we solve the problem?
Continue reading

RSS Twitter LinkedIn Facebook Email

Improving Rendering Speed in the C# PictureBox

.NET DevelopmentWindows Forms’ most versatile control is arguably the PictureBox. By overriding the OnPaint method, the PictureBox can be used to recreate the functionality of most other controls. One challenge, however, is using the PictureBox for animations or graphics applications that require a quick frame rate. Below are a few methods for pulling the maximum possible FPS from the C# PictureBox control.
Continue reading

RSS Twitter LinkedIn Facebook Email

What’s wrong with the ASP.NET Software Architecture

.NETASP.NET is Microsoft’s flagship web development framework. Released together with the .Net framework in the early part of the twenty first century, it’s goal was to revolutionize web development and create a more structured and effective way of web development. Far from reaching its goals, the framework has turned into a bloated caricature of itself, unable to adapt to the times and requirements of modern software.
Continue reading

RSS Twitter LinkedIn Facebook Email

The Grass Is Always Greener On the Next Framework

Green GrassOver the past 20 years, Microsoft has been releasing a multitude of frameworks and application development platforms. Each framework has a unique set of constructs, and often requires developers to learn a new language in order to take advantage of its benefits. Unfortunately, due to the major structural differences between the languages, most old applications need to be completely rewritten to gain access to the new features. This leaves many to wonder – is it worth the effort?
Continue reading

RSS Twitter LinkedIn Facebook Email

Bad Code Good Code

Software DevelopmentIn the previous series on database design principles, we discussed potential pitfalls in software development and ways to solve common database design mistakes. In the past week, while revamping an ASP.NET software application developed by another company, I have had the opportunity to see many of these rules come to life, and see their malpractice wreak havoc on the enhancements.
Continue reading

RSS Twitter LinkedIn Facebook Email

When Optimization Breaks Software

LightningIt’s well known that most of the code we write is not what the computer actually runs. When writing a program, the compiler or runtime will take the code and perform a process called “optimization,” where various methods are applied to make the code more efficient so that it will execute faster.
Continue reading

RSS Twitter LinkedIn Facebook Email

ASP.NET – Custom Query Interfaces

SearchWhen developing web-based forms using the ASP.NET platform, one of the basic tools that is lacking from the framework is an effective search mechanism. Custom queries seem to have been neglected due to their apparent complexity, and their non-geometric fit into the ideology of most frameworks. Still, a good search tool is very useful to users for finding relevant data in a large database. As such, we have developed a few tools and methodologies to make search implementation easier in web applications.
Continue reading

RSS Twitter LinkedIn Facebook Email

Database Design Principles – Part 5: Isolate Semantically Related Multiple Relationships

Custom Database ProgrammingIn the previous database design post, we discussed isolating independent multiple relationships. The goal was to find relationships in the database that were independent, yet incorrectly bound to the same row. This last and final database design principle helps us find data that is too flexible, and can instead be combined to help reduce database size and optimize speed.
Continue reading

RSS Twitter LinkedIn Facebook Email

Database Design Principles – Part 3: Eliminate Columns Not Dependent on Key

databaseIn the third of this five part database design series, we review the database design rule of removing columns not dependent on the key.  Similar to removing redundant data, this rule will make the database more flexible and maintainable throughout the lifecycle of the system.
Continue reading

RSS Twitter LinkedIn Facebook Email

Database Design Principles – Part 2: Eliminate Redundant Data

databaseIn the second of this five part database design series, we continue to explore improvements to the database schema.  These improvements will help create more flexible software, reduce maintenance and support costs, and improve scalability.  The second principle of database design is to eliminate redundant data.
Continue reading

RSS Twitter LinkedIn Facebook Email