It Just Works

This sounds like the most desirable feature for any software product. But this can be questioned. Recently it seems every software projects aims for this goal. The problem is that "It Just Works" is not easy to target and so to accomplish. When does a software just work? You will only see this if it does not have any bugs and also if it is highly usable. But then again related to what user expectations? Isn't GoodEnough not enough?

Some say:

Complete implementation of this feature involves the following aspects:

Even better would be to have that: Some reasons that so many software products don't have this feature:


KnoppixLinux is a fairly good example of this. Knoppix is a variant of Debian, a Linux distribution, that comes on a single CD. To use it, you put the CD into the CDROM drive and turn on the computer. It doesn't install to the hard disk but instead runs straight off the CD. As it starts up, and with no prompting, it detects all of the computer's hardware, connects to the network if possible, then starts up KDE.


This is one of the main driving forces behind NFC on a 2013 SmartPhone -- the ability to quickly send a file without having to fiddle with Bluetooth pairing, connection and all that stuff. If you have two phones that support Android Beam, you just open the app with whatever you want to share, touch phones, tap "Send", and the phones will automatically negotiate a Bluetooth connection over NFC. To the user, ItJustWorks. (Samsung took this one step further with its mod S Beam, which uses wifi on ad hoc mode, thus achieving much faster transfer rates than Bluetooth -- though this only works if both phones are Samsung Galaxy S3, S4 or Note IIs).


IJW is also the name of a New Zealand-based software business, which specializes in .NET solutions (http://www.ijw.co.nz). The connection with Microsoft's IJW technology is purely coincidence, however.


ItJustWorks (IJW) is also the name given to the MicrosoftDotNet functionality in Managed Extensions for C++, in which DotNet MicrosoftManagedCode can "tunnel" into the world of DistributedInternetArchitecture. See article at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmxspec/html/vcmg_PlatformInvocationServices.asp

Anyone who have found a need to use this in a Business Application please share your experience here. I am curious as to what situations may benefit from this, and what limitations of use exists --DavidLiu

It wins big when you're not doing green-field development and you need to bring existing code into the New! Shiny! managed world, or when you need to consume vendors' libraries with C-based APIs. Sure, you can do this with p/invoke in any of the other .NET languages (see http://www.pinvoke.net for an attempt to start producing signatures for the entire Win32 API) but IJW has two advantages:

The biggest limitation derives implicitly from its biggest win: IJW helps you overcome the ImpedanceMismatch between ManagedCode and UnmanagedCode?, but at the cost of a second ImpedanceMismatch - that between managed, GC'ed references and classic pointers. The C++CLR release of the ManagedCeePlusPlus language should avoid this problem to an extent by distinguishing syntactically between managed references and unmanaged pointers (the former will use ^, while the latter will stick with *). StanLippman? has blogged extensively on this - see, for example, http://blogs.msdn.com/slippman/archive/2003/12/02/58439.aspx -- JonKale

So now it will be possible to be a four-carrot programmer? I can't wait!

[DotNet's IJW mechanism should also lets you link managed extensions code with the odd static library, which makes things ever so little simpler than relinking a 3rd party lib as a DLL, giving you Yet Another File to distribute - you make a managed wrapper around the static lib and have all relevant code neat and tidy in one place.]

ItJustWorks functionalities continue in the upcoming WindowsCommunicationFoundation, but it will be called "called C++ Interop". See more at "Moving to DotNet and WindowsFx..." at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/movNETWFX.asp


See also DoesWhatItSaysOnTheTin, OnMySide, PrincipleOfLeastAstonishment


CategoryDotNet


EditText of this page (last edited June 24, 2013) or FindPage with title or text search