• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

Platform-agnostic .NET/Mono framework? perhaps even a wallet?

DRKLord

Member
This is just a thought I've been having and wondering about...

Thanks to the Mono Framework, I've been able to pull off cross-platform projects using C# and deploy them on Windows, Linux and Mac systems (as long as they had either the .NET Framework or Mono installed). I once wrote a platform-agnostic rendering engine in C# which was configurable to use either SlimDX (.NET wrapper for DirectX SDK) or OpenGL as a back-end. And I've also seen a few projects done in C# to create multi-platform mining pools, wallets and other things.

One thing I'd definitely like to see someday soon is a comprehensive .NET/Mono wrapper and framework for Darkcoin... something similar to the Bitcoin.NET project with methods for generating addresses, creating/sending transactions, reading the block-chain, everything... It would enable .NET and Mono developers to integrate Darkcoin functionality directly into their applications and even ASP.NET websites.

But I also wonder what the pros/cons would be for writing a fresh Darkcoin client/wallet in C# for Mono/.NET (or a mixture of C# and VC++, like the SlimDX project) and breaking Darkcoin's dependence on the original Bitcoin and Litecoin (C/C++) source. IMHO, I think implementing the protocol would be fairly easy and we might not fight with so many bugs and inexplicable glitches. Something like this could run on Windows, Windows phone, Surface tablets, Linux, Mac, Android, BSD and many other platforms... even XBox 360 and XBox One... Of course, it might be hard to get certain people to accept it, because a lot of people outright hate C#/.NET simply because Microsoft made it.

I wonder if such a thing could ever be feasible as an "official" Darkcoin product, or if it would have to be 3rd party software. Keep in mind, this is just a hypothetical discussion. There are no plans to actually develop this and I brought it up purely out of curiosity to listen to some outside opinions. In the future I may consider doing a .NET/Mono framework for Darkcoin though, and I'm interested in what you guys think... :)

Regards,

The DRK Lord
 
Well, I can't stop you. I guess what we really need is a port of bitcoin-ruby to darkcoin-ruby :)

But C#... really? I know you are doing great in that area, but is there really a need for? C++ and Qt is the best thing ever happened to Bitcoin. If you want to port the protocol to other languages/platforms I'd go for Python or Ruby.

(Yeah, I'm a dotNet hater, because it is only written for Windows and the Mono ports are rather poor compared to Microsofts big brother.)

Edit: https://github.com/lian/bitcoin-ruby
 
@ vertoe:

Haha, it seems like we have the exact opposite preferences/opinions on languages and platforms, vertoe! I'm really picky when it comes to language choice. I enjoy C and C++, and I love my C#. I also enjoy writing stuff for OpenCL and CUDA, writing shaders in HLSL and sometimes a bit of x86/64 assembly language (prefer Intel, NASM and MASM assemblers). For me a good, low-level technical or academic challenge is always preferable to fighting with some high-level scripting language with 10-million different versions and a thousand dependencies, haha.

Personally, I've just always hated Python... never liked Ruby or Perl either. Java is sometimes tolerable in small doses, but prefer to avoid it. I absolutely despise Lisp and all those damned parenthesis, like (((W)T))))F(())), LMAO! Geez, I hate a lot of stuff now that I think of it, lol... I hate BASIC, and thus I hate Visual BASIC (VB) by extension, even though I love .NET/Mono. And I've never had anything but frustration and migraine headaches from dealing with the likes of Javascript, HTML & CSS, php, Apache, et cetera... I've never gotten along well with scripting and mark-up languages, heh...

Every programmer has his/her own way of thinking and their own style of development. I've always favored low-level and object-oriented programming. My mind is good at understanding complex systems and hierarchies and breaking them down into individual sub-systems, components and objects... figuring out how everything fits together as a whole, and how each part of a system functions and interacts with its other parts. My favorite subjects have always been things like game & simulation development (especially game engine construction, rendering and physics), artificial intelligence, operating systems, et cetera. Sit me down with a brand-new type of CPU or a robot and ask me to develop the first OS for it and I'm happy as a kid in a candy shop... but you ask me to design a website or write some Python scripts to process a bunch of files or communicate with an online database and I feel like I'm living in a nightmare, haha! :D

Anyway, these are just my personal opinions and preferences, of course... it's wrong to say one language is "the best" or "better than x". The truth is, the "best" language is the one you're the most comfortable and efficient with!

Regards,

The DRK Lord
 
I agree with your views on programming languages.

I suggested to add a Ruby implementation, because that's an awesome way to build simple darkcoin apps in no-time.
We already have a low level C++ implementation. I dont see any use case for C# :)

Code:
#!/usr/bin/env ruby

drk = DarkcoinRPC.new('http://user:password@localhost:9999')
status = drk.getinfo

Isn't that plain awesome? https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)#Ruby

But as I said, having one in C# can't hurt. I just don't see the application for it :)
 
You probably don't see any use cases for C# because, like you said, you hate .NET, heheh. :grin:

I can think of literally tons of innovative ways to employ a C#/.NET API for Bitcoin and Darkcoin:

  • Lightweight client/wallet for Windows tablets, phones and mobile devices and some non-Windows platforms
  • Implementing new mining pool and pool management software
  • Payment processors for ASP.NET websites and for PCs, laptops, tablets and smart phones
  • Network and market monitoring tools/utilities and plug-ins
  • Creating professional/enterprise level trading platforms for crypto-currencies
  • Accounting and financial management software compatible with Bitcoin, Darkcoin and crypto-currencies
  • Bitcoin/Darkcoin integration into existing software (e.g., web browsers) and web apps
  • Querying Bitcoin/Darkcoin related data from blockchain, databases and memory with LINQ, F#, etc

Another thing I think would be cool to see is a Bitcoin/Darkcoin wallet for XBox 360 and XBox One... doesn't take much of an imagination to think of all the cool things you could do with that! :)

-- The DRK Lord --
 
Back
Top