Home | Products | Consulting | Writing | Contact

 

Forays into .NET

[Dividing Line Image]

NOW IS THE TIME

DCSoft has been programming .NET since 2006.  Indeed, we've been keeping a close eye on it since the VC2002 timeframe, but initial concerns about its productivity, power, deployability, and performance are only recently addressed with Visual Studio 2005 and .NET 2.0.

  • Productivity - As Nish likes to say, C# syntax can look strange to a C++ programmer and is just different enough to bog down the C++ pro.  VS2005 makes C++/CLI a first-class WinForms development tool, making it easy to venture into the .NET framework. C++/CLI has proven to be an ideal learning tool for .NET.  After completing just one C++/CLI program, we have transitioned to C# and greatly appreciate its terse syntax and readability.  We applaud the simplicity of the component model, which makes MFC look like assembly language by comparison.

  • Power - The downside of components is that they adopt the Henry Ford motto:  a customer of his Model-T automobile could have any desired color, as long as it's black.  If you don't like a .NET component's behavior, you plead with the manufacturer to change it, or find another one.  If you don't like an MFC control's behavior, you just edit the source code --- easier than it sounds, due to the programming standards and familiarity of MFC code.  Still, with web applications becoming popular, the end user is no longer worried about specifying the exact behavior to the nth degree.  Any reasonable behavior is now considered "good enough."  Thus, component-driven architectures are more acceptable now than in the past.

  • Deployability - The download size of the 20-some MB .NET redistributable is now considered reasonable, with broadband speeds.  For the first time, the current Windows OS (Vista) comes pre-loaded with .NET.  Hard disks are, for all practical purposes, infinitely sized.  We are still somewhat concerned that badly fragmented hard disks and registries make real-world installations of .NET 2.0 take 20 minutes or longer on a significant number of systems.  However, we are not concerned enough to cease recommending .NET 2.0.

  • Performance - There's no denying a .NET app feels noticeably sluggish compared to a native application, in startup time, UI responsiveness, and memory usage.  The difference is that with modern hardware, .NET applications are (overall) fast enough.  This is similar to the GUI revolution where Windows 2.x apps were pretty much unusable, but Windows 3.x and GDI acceleration finally turned the corner and really brought Windows into the mainstream.

  • Future API's - There are no native equivalents of Windows Presentation Foundation (WPF) and Windows Communication (WCF), so development of these future Windows subsystems requires .NET.

DCSoft believes .NET applications are entering their hey-day on Windows.  The 2006/2007 timeframe is ideal for native C/C++ Windows Developers to dive into .NET.

 

.NET Applications

SpamOne - Identify and delete over 2,000 spam messages per day.  Technologies used:  C++/CLI, WinForms 2.0, /n software IPWorks.

KillSpam Screenshot
Figure:  SpamOne screenshot showing WinForms 2.0 Menu, Toolstrip, Tab control, Hyperlinks, Status Bar

 

GoalTime Stitcher - Successor to DCSoft GoalTime. Technologies used:  C#, WinForms 2.0, SQL Server CE, DevExpress DXperience

GoalTime Stitcher screen shot
Figure:  GoalTime Stitcher screenshot showing Office 2007 UI, tree control (work in progress).

 

Timecard ASP.NET - Web application used by hourly workers to submit weekly timecards. Technologies used:  C#, ASP.NET, SQL Server 2005

TimeCard ASP.NET screen shot
Figure:  TimeCard configuration screen uses a DetailsView, driven with Master Pages.

 

Up and Coming World Class .NET Programmers

With decades of C++/MFC experience under our belts, we know that being a world-class Windows Developer means more than writing a few lines of C# code to wire together pre-written .NET components.  That is why we don't call ourselves world-class .NET developers yet (though we're working fast on it!).  We know enough .NET to realize that experts constantly watch for improperly handled exceptions (perhaps the biggest bane of .NET development), and that correct implemention of IDisposable and the "using" statement require special care.  We are well aware of potential issues such as these and we will give them the attention they deserve in your project. 

Recommended Books for .NET

  • Ivor Horton's Beginning Visual C++ 2005 (Ivor Horton, Wrox) - kick-started our .NET careers by leveraging MFC knowledge into C++/CLI.

  • C++/CLI In Action (Nishant Sivakumar, Manning) - iron grip on C++/CLI presented with beautiful simplicity.

  • Illustrated C# 2005 (Daniel Solis, Apress) - a picture is worth 1,000 words, allowing the reader to instantly grasp the meaning of C# syntax.

  • CLR Via C# (Jeffrey Richter, MS Press) - .NET Internals - no one is a .NET expert until reading this book.

  • Debugging .NET 2.0 Applications (John Robbins, MS Press) - Save days deploying apps with strong debugging techniques.

  • ASP.NET 2.0 Unleashed (Stephen Walther, SAMS) - THE authoritative guide to ASP.NET 2.0.

Recommended Tools

  • Reflector, FX-COP

  • Visual Assist X (plug-in for Visual Studio)

 

Home | Products | Consulting | Writing | Contact

Last modified: May 14, 2008