David G. Horsman
3 min readFeb 21, 2021

--

Note: Dynamic Language Extensions & Emulation in C#. (blog3)

Lacking a better name, the Mdm Mvc Framework was a typical project. Ten years ago I had to learn C# and DotNet and evaluate it at a fairly deep level for use as a platform. I chose a very relevant but low risk project with an aim to becoming a full stack dev including ASP core.

Context: I have a background in Multivalued Object databases (PICK) with specializations in code and data conversion and communications. This included early research on IDE’s.

History: Applied Applications Research and Development is a combination of bleeding edge R&D with carefully insulating your customer base from the ill effects of said work and the crap operating systems available at the time. We took “ownership” in most situations and focused on support. This was RAD (rapid applications development) which might be described as a precursor to AGILE development.

Getting back to the MVC Framework, I created a project meeting my companies’ needs and set about using every feature available on the (tightly constrained) DotNet platform in C#. This included, being very close to my heart, extensions and dynamic (external) typing in context to our multivalued languages (a form of Basic.)

C# vs. standard PICK.

So I naturally chose to look at code conversion of our existing PICK libraries to C# using extensions and emulations of the MV’ed syntax. The rationale is this greatly simplifies process while adding some nice (missing) features to C#.

It also serves to align the two paradigms in sector where the (still existing) US companies have done impressive work towards the same ends. In my view it is this that largely contributed to their continued relevance.

The larger market has shifted and adopted object database technology. Good old Dick Pick not only picked a potentially powerful framing strategy for the database but built that in to the syntax, all in a very easy to use language, Pick Basic. Kudos Dick, I still do research in this area. You got it right.

Is there a Picktologist in the house?

No worreesh…I’sh fine… but my code base is feeling it’s age. It’s become obscure… If it wasn’t always in the first place doctor. Tell me, how may I modernize the old girl? She’s long in the tooth and not even in the market these days.

Makeover? I’m afraid she needs an overhaul from stem to stern sir. I’m not sure why we would ADD rust to her sir but somehow that’s supposed to help. I would think a new pair of boots wouldn’t hurt the old girl but what would I know? Why yes doctor I am divorced but I am not sure how that relates my code base.

She’s not just taking on water she’s sinking doc. Maybe a urologist could help but because she’s a Pick (base) I figured I’d go find a Picktologist first. I think I want my money back… what was I writing about?

Extending C# with multivalued object syntax.

I might of lost my audience there… Note, this would mean more to an multivalued OS developer and perhaps the programmers.

In C#, instead of a String you use a McString. This allows you to use indexors to an arbitrary level in the same manner. Example.

Customer[5,2,9] is very similar to Customer<5,2,9> and arrays generally.

In a addition, many of the language features (some missing in C#) were added. These were implemented a functions. I don’t have time to explain them in detail. Gotta jet. So I’ll with the complete list to ponder and you can let me know how intuitive they are? I’d like to hear from any Picktologists in the crowd. Same question in context to PICK.

--

--