by Vladimir Chumakov,
Software Engineer
We started using C# at Cimetrix about 5 years ago when we first started working on CIMPortal™, our Equipment Data Acquisition product. Later on we used C# exclusively for development of our Equipment Client Connection Emulator (ECCE) tool; EDAConnect™, a client-side software library product for implementing the SEMI EDA Standards; and CIMControlFramework™, an equipment automation framework for tool control.
Here is why we chose - and keep using - C# for new project and product development at Cimetrix:
- The biggest advantage using C# brings is not the programming language itself but the extensive amount of functionality provided by the Microsoft .NET Framework. The development time savings by using the .NET Framework could be measured in years.
- We used ASP.NET libraries for development of CIMPortal’s Web GUI and implementation of the Interface A SOAP interfaces.
- WinForms is by far easier to use than MFC library in C++ that we've used before.
- WCF is used in EDAConnect for implementation of the Interface A SOAP interfaces and as inter-process communications in CIMControlFramework.
- ADO.NET is the framework used for working with Databases. We use it in CIMStore and CIMControlFramework products.
- And the best part is that Microsoft continuously keeps improving its .NET Framework. Microsoft released a new 4.0 version of the .NET Framework today on April 12th. It contains many new features. The most exciting is Parallel Computing Platform which includes significant advancements for developers writing parallel and concurrent applications, including Parallel LINQ (PLINQ), the Task Parallel Library (TPL), new thread-safe collections, and a variety of new coordination and synchronization data structures.
- Visual Studio (we currently use 2005 and 2008 versions) is an excellent development environment for both C++ and C# but has many features exclusive to C# that we take advantage of:
- The Unit Testing Framework helps us with the creation and maintenance of test code.
- C# Code refactoring. Refactoring is a formal and mechanical process used to modify existing code in such a way that it becomes 'better' while preserving the program's intended functionality. In addition to improving a program's overall design, the refactoring process tends to yield code which is far easier to maintain and extend in the long run.
- C# Language advantages over C++
- Automatic memory management allows much easier implementation of memory-leak free code.
- 64-bit programming. There is no need to maintain two separate versions of source code or to have different builds – the same C# application runs on both 32- and 64-bit versions of Windows and is automatically compiled on the fly into native 32 or 64 bit code.
- Performance. Contrary to common belief that C# is slower than C++, we've found that when features like immutable objects, lock-free containers and automatic memory management are used together, applications written in C# are faster than similar application written in C++.
- There are still areas where C++ is better than C#
- Application startup performance. Because C# applications are compiled at the run time, on the fly, it takes more time for application to start.
- C++ templates are still powerful than generics in C#
All these advantages, especially in development time savings, is the reason why we use and will keep using C# at Cimetrix.


by Mohammad Islam,



by Bill Grey,
When I confided to a long-time friend with whom I used to work in the financial arena at General Electric that I was thinking of returning to work after 20 years of raising a family, and that I would be doing Sarbanes-Oxley (SOX) compliance work for Cimetrix, she gasped, and blurted, “I am SO sorry!” I was pretty sure her dismay was not an indictment of me returning to work, nor to Cimetrix—it was all about SOX.
nagement Integration is simply a data integration job that gathers related manufacturing and test data into a Yield Management System (such as dataPOWER, PDF), and thereafter the engineers and their Yield Management System live happy ever after.
In today’s world, having great software is not enough. To be successful, software must also be supportable. Keeping a record of what the software is doing and has done enables after-the-fact diagnosis and makes remote support much more efficient. As an additional benefit, this information can also be displayed live to the GUI, giving the operator additional insight into what is happening. Having a record makes it possible to determine if the software is working correctly or incorrectly. In Cimetrix’s new tool control software, CIMControlFramework™, this functionality is provided by the Logging package.
