SDK development in multiple programming languages [closed] - c#

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I am working to develop an SDK that will allow the users to use it and write code in C# or Java.
To achieve this most optimally, do I have to write the SDK in both languages? That would be a lot of code repetitions albeit in 2 different languages, and the maintenance overhead would be very high.
Are there efficient ways to solve this problem? What will happen if someday we think of adding a 3rd programming language support for the SDK?
Please note that I don't mind having an API instead of SDK. The idea is simple -- it's basically an interface or kit that would provide users to make simple calls to it to perform certain complex actions, all complexity being abstracted into the API or SDK.

To avoid code duplication, there are different options.
you can create the base library in portable C++. C++ can then be interfaced in both Java (e.g. with JNI) and C# (e.g. with C++/CLI). That means that you can create a wrapper for both target languages using C++. This option is more difficult if you want to target more different operating systems.
you can create the software as a service (e.g. SOAP or a simple json service). You can do that in the language you prefer and then create client applications in Java and C#.
It depends on your project, the people who will implement it and on your future goals what the best solution is.

You could code the SDK in C++ and create java/C# wrapper classes to allow users to interface to the SDK
Also allows for easy extension to other languages as most languages allow you to utilise dlls wrote in C++.
Just an idea.
If you're interested read into DLL creation, the adapter pattern, JNI for java, not sure about C# I've not had that much experience

Related

C++/CLI .Net telnet library [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am looking to make a Mud as a way of learning programming and enjoying it. Part of this is obviously working out a server client connection via the various clients muds use to connect. This uses Telnet for those who aren't aware. I was going to try to learn to do this myself but my father who is a professional programmer said its not that big of a deal to learn and using a library would allow me to move faster through it.
So my question is, first is using a library a better option here, and is there a good free one I can make use of that either uses C++/CLI .Net(preffered) or C# .Net(Was told this one is faster, but is less precise, so I would prefer to learn C++ for the precision, and I was told learning C++ is basically learning C# anyway)?
If using a library is not the best option, is there any good sites or books for finding a simple description on how to make one from scratch?
Most networking libraries will work with C and any variants thereupon.
C# will allow you to implement something (relatively) quickly and easily, but insulate you from programming issues that arrise from using less "safe" languages.
.Net is in fact a library, and it provides both C++ and C# interfaces.
Using a library is deffinately the best option, as it would be required unless you want to get down to the hardware level in every respect. For example the function printf() comes from the C/POSIX library, it actually fills up a buffer on a character device, which then get pushed to a real terminal over a serial interface, or far more likely a virtual terminal and then to your drawing library. Wether you know it or not everytime you use an #import or #include you are linking against an interface to a library. In the case of these simple libraries the compiler already knows where they are so you don't have to tell it about them.
In short C# will let you do things in an abstract and fluffy manner that may soften your learning in the begining, but will ultimatey prevent you from understanding what happened under the hood(and for many people that's ok). C++ will make your life more difficult, and it's compiler may give more cryptic errors, and it won't try to protect you from yourself, but you will probably learn a whole lot more. .Net is just the library your dad advises you use, as it provides a whole lot of functionality, without having a ton of dependencies.

Stand alone C# compiler [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
We have a software which we use in-house for our day to day work.
It is like a customize CRM (sort of) and Bug Tracking software. We had a small team of 3 developers who had developed this software. Now this team is also working on other assignments.
Recently we are receiving a lot of request for adding functionality from users (who are our employees and all of them are developers working of different projects) in our firm. The original team that created this software does not have enough time to work on enhancing this software. So instead of spending a lot of time in updating as per request and the updating the executable of software for each user, we want to implement a programming/scripting solution that is if possible free and open source.
I was thinking of adding support for a language which is similar to C# to our application. This way the developers will add the features that they require on their own in their spare time if they really need a feature!
Can anyone point me to some such implementation already existing?
I don't know if I am taking the right decision or not regarding C# I would like to get opinion of experts on this also.
TIA
The framework already comes with a C# compiler you can use at execution time via CSharpCodeProvider.
You might want to look at the source code to Snippy, a small tool I wrote for C# in Depth - that compiles code on the fly, and can act as a reasonably simple introduction to CSharpCodeProvider.
I think I'd look at a scripting solution here; probably IronPython is the easiest to bundle and host, but others are available (including Javascript.NET, IronRuby, IronScheme, Boo, F#, etc)

Microsoft .net, is it worth it? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
So with Microsoft .NET, you get the advantage of language interoperability. But I've heard that this is slower than native applications. What if you only need one language? Then what are the advantages. I am a C and C++ programmer, and .net seems to be heavily tied with C#. Is this the case? And is dot net portable, or tied to windows?
And lastly, is .net worth taking a look at, from the perspective of a C++ programmer who doesn't need language interoperability?
Thankyou.
Then what are the advantages ...
You get all the .NET classes.
'.NET is slow' is a misconception, along with 'Java is slow'. Yes, it used to be slower than native, and yes, you can get faster programs using hand-optimized assembly, but for nearly all cases short of core engine code for games, .NET is as fast as doing the same thing in C or C++, and can (in some cases) be faster.
You also get the huge benefit of automatic memory management (so you can new a heap object and then just forget about it), and a large class library at your disposal.
Language interoperability is one feature of .Net. It is far from the only feature in .Net. Don't forget things like advanced garbage collection, linq, improved api organization, and much more.
So with Microsoft .NET, you get the advantage of language interoperability.
This isn't the main advantage. Most people code in C#, most try to avoid working on a project using both VB and C#
But I've heard that this is slower
than native applications
.NET has memory management which may make it slower on some things. However, the classic example - games, a lot of XBox games are now written using XNA
And is dot net portable, or tied to
windows?
There is a project called Mono which has ported .NET to linux and there is a platform called MonoTouch which runs that code on iPhones.
However, broadly in its Vanilla form it is tied to the WindowsOS.
Then what are the advantages
Most people code in C# because it's a powerful language both on the web and desktop and has an easy learning curve and good tooling. It also has a powerful class library similar but more comprehensive than Java's (IMO)

Microsoft Enterprise Library Useful or Not? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I want to know about Microsoft Enterprise Library 5.0 .
Can u plz tell me that , is it good to use various modules of that Enterprise Lib rather than developing our own modules for caching,encryption,data access,logging etc?
I am a beginner to Microsoft Ent Lib and simply want to know how efficient or effective
that Ent Lib is ?
If it is useful , can u plz guide me some effective link so that i can learn fast.
Thanks for paying attention over here.
One rule of programming is "never reinvent the wheel". So really advisable just to use the library than creating your own. Other than the library is well tested and proven to work.
There are not another library that are as complete as Enterprise library. But imho you can pick different open source libraries that will give you a more powerful alternative.
EL5.0 is a bit bloated and harder to use than open source alternatives. But then again, you don't have to worry about it not being supported.
yes you can use each block you want.
yes it is useful as a set of best
practices
you can learn reading its code as
well.
few quotes from documantation:
The Enterprise Library includes the source code for the application blocks. This means you can modify the application blocks to merge into your existing library, or you can use parts of the Enterprise Library source code in other application blocks or applications that you build.
The Enterprise Library includes documentation, QuickStart samples, and source code. This means you can use the library as a tool for learning architectural, design, and coding best practices.

How exactly can Python complement your C# skills for windows based development? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm looking for a fun challenge, and am thinking about learning Python. I've heard really good things about the language. My question is, how (if at all) can Python complement the skills of a typical C# developer working mainly with MS technologies on a Windows Platform.
Some examples of typical C# dev on windows would be (SOA applications, web applications, windows services, automation, xml handling)
Surely there must be some scenarios where knowing Python would help you get certain tasks done quicker or more efficiently than using traditional C# / MS technologies.
If you know of any specific scenarios, then please share.
At first, if you don't know a dymanic, non static-typed language, it will certainly help you to learn one. You will find out new programming paradigms and will affect your coding style and even if you don't use for a proper project, there are benefits in it for you. This of course applies for any new language you learn.
Specifically for C# and Python, have a look at IronPython. You can use it interchangeably with C# code and select to program specific bits in it.
One interesting application will be add scripting functionality in an existing application. You can embed IronPython to it and build a scripting environment with it.

Categories

Resources