Common Sense Software Engineering – Part IV; Life Cycles & Agile


Lifecycle Models – In General

In the current vernacular we no longer speak about development life-cycles but instead about “Agile” and its variants. And if one were to review the documents promoting Agile and the components that make up what appears to be it’s framework it could be found that Agile is nothing more than a variant on existing life-cycles as defined by software engineering practitioners. Steven McConnell of Construx Software is aware of this since he wrote the book on standardized software engineering practices. And though he propose the use of Agile techniques his interpretation of these techniques are well founded upon long standing software engineering principals.

All a life-cycle represents, is a way to get from the start of a project to a successful conclusion. It is a fairly straight-forward concept. Yet, today when reading anything about current variations on such techniques we are provided instead with a wealth of arcane terminology that really doesn’t mean much except to those who are using it. “Sprints”, “Stand-up Meetings”, “Scrum” and others appear to hide the simplicity of Agile’s foundations instead of allowing new-comers to easily understand it’s potential.

Life-Cycles are also not to be taken as hard and fast rules of development as there are a number of standardized models that can be applied as the development situation warrants. Agile is just one among many such life-cycles but it appears increasingly that its promoters believe that it is more or less a panacea for all software development related issues. And while it can certainly help in improving development efforts it can only do so under the right circumstances since, like any life-cycle model, Agile works best for those projects that it was designed for.

For example, if the reduction of risk to project failure is a very high priority, something that Agile is not designed to incorporate, than one may consider the “Spiral” life-cycle model, which can be illustrated with the graphic below…



“The Spiral Model”

Click to Enlarge

Read more of this post

Black Falcon Software Releases Encryption Product for .NET Developers


Many times C# and VB.NET developers run into situations where they would like to implement some level of symmetric string encryption into their applications. When doing so, unless there is a tool in their toolbox of software utilities on hand, the search will commence online for a suitable set of encryption and decryption algorithms. Then the testing of the algorithms begins until finally the code is applied to the application where it is desired.

A few months later the same requirement comes and the process is repeated unless the previous code-set is easily available for copying and pasting.

There is a difference between costly, industrialized security software and simple string encryption, which if done properly will satisfy the requirement of keeping casual eavesdroppers from looking at things that they shouldn’t be.

Enter Black Falcon Software’s, “Managed Encryption Services for Developers”.

This simple tool arose from the same tiresome, repetitive situations described above where it was found that having a single centralized location for all such requirements would not only be convenient but a way to maintain consistency across many implementations.

There is no doubt that any competent developer can find the algorithms required for any situation and successfully implement them. However, in the end it does become somewhat of a waste of time. “Managed Encryption Services for Developers” allows developers to not only regenerate successful versions of encryption and decryption algorithmic code consistently but also do so in either C# or VB.NET. The generated code is provided as a complete class module, which can then be easily incorporated into any corresponding project.

What’s more, key-sets can be maintained for individual clients and their projects indefinitely, allowing for specific regeneration at any time. Thus, the loss of such critical components is no longer an issue.

Currently, the most powerful symmetric encryption algorithms are those of the Rijndael formula (AES encryption is a subset of Rijndael ) and this is what this new product uses for its module generation. To date, the “128” key-size is still not known to have been broken and using code created by Obviex Software, which has been made freely available to the public domain for many years, “Managed Encryption Services for Developers” will provide an easy to use tool that will allow all .NET developers to centralize all such requirements for current and future project development.

Highly affordable for any budget with a 14-Day Trial Version available, go to the following product page and download a copy to give it a try…

Support is always free and suggestions and comments are always welcome.


Using the Xceed “Busy Indicator” Control


By now most .NET developers who are developing with Microsoft’s “Windows Presentation Foundation” or WPF are familiar with Xceed Software’s popular and freely available suite of additional WPF controls. One of the more confusing ones to work with is the “Busy Indicator” control, which many developers would like some form of within certain areas of their applications.

A little research on the Internet for either Xceed’s offering or any other will demonstrate the implementation of such a control is a bit more complex than would have originally been thought. As many who have tried and found out, the implementation is quite a bit more than just setting the control’s “busy” property to “True”.

There are quite a number of articles across the Internet that show how such a control can be implemented. Some of them appear so complex that one would not be blamed for simply not going through with the endeavor.

The complexity that comes with the implementation of this type of control stems from the fact that you must have some knowledge of handling multi-threaded processes in a WPF application. There is no getting around this since you must separate the process the “BusyIndicator” control is to cover for from the main UI thread. This is because, once a time-consuming process on the main UI thread has been initiated, there is no possibility of updating the display to inform a user of what is occurring even if such updates are made within the process itself. That can only been done through calls from the secondary process to the UI process. All of this will be shown in the steps outlined below.

Hopefully, the following will make such an implementation easier.

Read more of this post

Best Embedded RDBMS Databases for .NET Developers


Black Falcon Software develops products for professional .NET developers and like any other MicroISV, the need for developer products to have embedded databases is often a necessary component for such work. The problem is that over the years this area of necessary database support has deteriorated to the point where few products are available any longer that are worthy of being used in commercial development.

For .NET developers the original database of choice was the Access MDB coming out of the transition from Classic VB. Though still available, this database has been long known for issues in the community and is now regarded as a non-starter for most professionals.

As the .NET environment grew in popularity, the database of choice for many was VistaDB, which was specifically designed for embedded database development. VistaDB came and went over the ensuing years but as the open-source database offerings became mainstream it finally went where it is now owned by Gibralter Software, which sells it at the hefty price of $1500.00 for a “site” license. However, if you qualify as a “MicroISV” with the company, they will offer a reduced price to help you with your business; though no estimate is provided.

VistaDB is offered as the .NET developer’s alternative to both SQLite and SQL Server CE but with both the latter available at no cost, this qualification is a non-starter unless VistaDB has an exact feature that is required for any developer’s work.

To this end, there are quite a number of what may be called 3rd-Tier database tools that can be used for embedded development, qualified simply is such from a lack of name recognition and corresponding probabilistic market-share. Many of these tools do not appear to have kept pace with the changing .NET Framework environments leaving them still supporting the 3.5 and 4.0 versions of the framework while integrations are correspondingly offered for Visual Studio 2005 and 2008. It is doubtful that any serious professional would want to take advantage of such tools. In this vein, “ScimoreDB” has appeared to be the most sophisticated of this group but it is stuck with its offering only supporting up to .NET Framework 4.0; at least at the last recent review of their business site.

Many other such tools look as if they are no longer supported or have been simply forgotten by time altogether.

Read more of this post

%d bloggers like this: