Best Compilers for C# [closed] - c#

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I am starting to learn to program in C# and I was wondering what is currently the best compiler and what IDEs have built-in C# compilers. I am 11 years old and starting to learn to program and need to choose a compiler.
I know about the MS Visual Express ones, but I want to know what are there good and bad things about it.
Also, is there a way that I can download Visual C# Express Offline? I can't use the web installer.

It sounds like your question is more like, "which IDE should I learn with?".
I would suggest MS Express editions for C, C++, and C#. It's high quality, free, has an intuitive interface, and has a very large community for support.

C# / .NET
Visual C# Express 2010 should give you everything you need to learn to program in C#.
If you really want to learn, especially on your own, you'll need interesting projects.
I don't think you should overlook doing some Windows Phone 7 Development to get familiar with the language and libraries in a fairly constrained environment.
If your high school allows it, see if you can set yourself up on DreamSpark.com and get yourself the XNA stuff, which (last time I checked) included a free membership that will allow you to develop stuff for the Xbox 360.
Microsoft's Coding4Fun blog might also be inspiring, although it seems to me that a lot of the projects are so esoteric that they probably won't teach very much, nor will they be interesting unless you have that specific piece of hardware.
C
Learning C is probably best done on a Unix-like environment as this is where the language has its origins. A modern GNU/Linux distribution will give you everything you need (you may have to install the development packages yourself) which is basically:
a text editor (choose one; many like Emacs, Vim and Scite)
a C compiler (GCC)
a debugger (GDB)
Any distribution should have packages for these available.
Challenges
Try solving the problems from Project Euler in whatever languages you are trying to learn. Solving these will help you think analytically as well as teach you language constructs and certain library features. Ask your mathematics teacher for help if you are stuck with the maths side of those problems.
Best of luck!

I have found Compilr which is a online IDE and is free for 3 projects and includes a number of langues.

My sugestion is Mono
From Wikipedia:
Mono is a free and open source project led by Xamarin (formerly by Novell and originally by Ximian) to create an Ecma standard-compliant, .NET Framework-compatible set of tools including, among others, a C# compiler and a Common Language Runtime.
The stated purpose of Mono is not only to be able to run Microsoft .NET applications cross-platform, but also to bring better development tools to Linux developers.[4] Mono can be run on many software systems including Android, most Linux distributions, BSD, OS X, Windows, Solaris, and even some game consoles such as PlayStation 3, Wii, and Xbox 360.
The logo of Mono is a stylized monkey's face, mono being Spanish for monkey.

for c definitely go for ICC
C# I might guess you go for VS 2010

I would say get yourself a copy of linux and gcc. Ubuntu is a nice way to get going.

You're talking about three different languages. C++ is an expanded version of C and although it is its own language completely, C++ compilers can also compile C code.
If you're looking to learn programming I recommend C# and Visual C# 2010 Express edition.

Related

Multi platform 2D game engine [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I am creating a 2D game which I wish to run cross platform (on platforms such as Windows, Mac, iOS and Android as the main targets) and the engine I use needs to be open source.
The main goal is to have the most code portability (possibly through scripting).
I would prefer to do this in C# but using another language is not a massive issue if I have to.
I have considered MonoGame and flash using the Flex SDK as they both claim to be cross platform and open source.
Which one of these would be a better choice considering my criteria? Or would another game engine/library be more suitable?
I would suggest Unity3D. It is a 3D platform. But if you only use 2 dimensions you're good to go. In Unity3D you can write your game in C#, Javascript or Boo.
Unity is free and can export to Windows Phone, Windows 8 App, Windows, Mac, Linux, Android, Blackberry, iOs, Xbox360, Wii and PS3 but for those last 3 you need a developer license from Microsoft/Sony/Nintendo. But the possibility is there.
UPDATE
You had to pay for the ios and android addons earlier. Now they are free:
Today, we’re taking another step on this long road: as of right now,
independent Unity developers will be able to deploy their games to
Android and iOS platforms completely free of charge. Update Unity and
you will find Android and iOS build options (previously basic add-ons)
ready and waiting for you to use.
Source: http://blogs.unity3d.com/
In the meanwhile, support for other platforms has come out (including windows phone, winrt & blackberry). Those are all free. If you want pro features you need a pro license. But most of the stuff you need is in the free version. To compare look at this page.
The engines below allow you to reuse pretty much all your code, only thing you need to change is resolution and touch input/controls from desktop to mobile or the other way around. I would suggest you check out these engines, they are all open source:
libgdx - Uses Java and is almost as fast as XNA, but faster than MonoGame. "Publish your games on Windows, Mac, Linux, Android, iOS and HTML5, all with the same code base." - off their website, anything that can run java, can run your game. Big community so you shouldn't have problems asking questions when you need help and getting it.
Qt-Project - Qt is a cross-platform application and UI framework for developers using C++ or QML, a CSS & JavaScript like language. As of Qt 5.1 you are supposed to be able to build for Android and iOS, allowing you to build for all the platforms you requested. Big community.
Moai - Uses Lua and can deploy to all the platforms you requested. Only downside is the community is pretty small and the docs are a little out of date, but people on irc and forums will usually help you, but the answer won't always be immediate. You also have to build your own hosts to build for the platforms you desire, but last time I checked there were public hosts for all platforms out.
libgdx seems like a perfect fit for you. the performance is amazing, the community is big and it lets you reuse the same code for all platforms, just to name a few. Only downside being it doesn't use C#. Of course you should definitely look into them yourselves and see if they are match for what you want. I wish you the best of luck in your endeavors.
There are a couple of options based on your preferences; I will list a couple of ones I recently come across.
Cocos2d series seem very popular these days. If you think C++ isn't
a problem for you then Cocos2d-X would be an option as it offers a
lot of platforms. Other Cocos2d series might get your attention as
well. I guess there are a couple of versions like HTML5, Javascript,
Python. etc but i think only cocos2d-x is cross platform.
Unity3D(C#, Javascript, Boo) seems as an option but it's not open
source, as well as UDK(UnrealScript) also same, but if you think to
buy a license they offer source code I guess
Flash also can be a good option, as you mentioned. It uses AS3 which
is an OOP language and can be very useful if you are a beginner.
And ImpactJS offers a lot of platforms also, it uses HTML5, you can
check here http://impactjs.com/
The list can be longer and longer, and depends on your needs. You should specify your needs clearly like; how much deep you wanna go, which platforms are most important for you? etc.
Good Luck
You can try this: http://www.appgamekit.com/ (AGK)
Code in c++, but working perfectly. A very simple engine.

Modern GUI development [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
Long long time ago was a Delphi, and any developer can rapidly build win32 GUI application. Delphi was a king (long life to king...) but now delphi and win32 has gone away.
So question is - what a preferred platform to rapidly build cross-platform GUI applications at present days? I'm have a good knowledge of Java and C#, and i'm looking for compare
Java (Groovy) + SWT
Java (Groovy) + Native GTK (cross-platform?)
Java (Groovy) + QtJambi
.NET/Mono + Gtk#
.NET/Mono + WinForms 2.0 (very bad look&feel on linux)
Any real-world usages welcome.
I was asking this myself a year ago. Finally I went with Mono/GTK# and I'm very satisfied. Monodevelop feels like Delphi, following the "rapid application development" philosophy.
Mono runs on major platforms and GTK feels more or less native on them (as opposed to Java GUIs, they look ancient).
C# is also a major player on rapid development.
Another choice would be C++/QT. Google and many more big companies uses it on their products.
You're not limited to C#/Mono or Java... there's also Python/GTK:
http://www.pygtk.org/
Delphi is pretty much alive http://www.embarcadero.com/products/delphi, also if you like there is C++ Builder which is my personal favorite (if I where into C++). But if you want to try new RAD technologies I'll go with wxPython and SQLAlchemy.
As someone else said, Delphi is still alive and kicking. But standard Delphi is still just Win32, not really a cross-platform solution although a number of people use WINE successfully with Delphi apps. Embarcadero does have their relatively new .NET based ObjectPascal variant ("Delphi Prism"), though. Delphi Prism/.net/mono may be slightly better than c#/.net/mono for cross platform, but it's also more expensive and not from Microsoft.
Former Delphi users who want to do cross platform can use the mostly-Delphi-compatible FreePascal open source ObjectPascal compiler in its Lazarus IDE, which has become fairly solid and replicates most of Delph's IDE and the VCL. It compiles desktop apps to Windows, Linux, OSX, and other platforms, both 32 and 64 bit.
TO me it seems at least worthy of a look if you liked Delphi in the past:
http://www.freepascal.org
http://www.lazarus.freepascal.org
Delphi is pretty much alive and kicking (hard).
Want rapid GUI development? Then none can beat Delphi. The VCL library has over 500 visual components!
It provides ALL you need to build cross-platform GUI applications (targeted platforms: Windows 32/64, Linux, Android, OSX, iOS)
All this without those nasty:
{IFDEF Linux} code
{IFDEF Windows} some_other_code
{IFDEF Mac} some_other_other_code
Delphi also has Super-Duper Strings
There a three Python-based projects that fit into the same space that Delphi was in.
Pythoncard, Dabo and Glom
In addition, consider building web applications that run locally and use a single-url browser such as Mozilla Prism or xulrunner to access it.
You can use GtkSharp on .NET Core, or you can use Avalonia on .NET Core. Avalonia is inspired by Windows Presentation Foundation (WPF) and uses XAML.
Personally, I prefer .NET Core over Java.
There is also the Glade user interface editor for designing GTK user interfaces in XML.
Qt is a cross-platform widget toolkit with bindings for many languages including Java and C#.

Running an Open Source project in .NET C# [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
We have developed an application in C# .NET WPF Office which we are about to Open Source. I'd be interested in the objective factors that we can address to increase the likelihood of success. It's a domain application on top of the MS stack, so we would be particularly interested in any experience of groups doing this (as opposed to writing OS versions of .NET). We intend that there is (light) central management of the project. Our current intention is to develop a governance procedure supported by donations but we have an open mind.
I have 15 years' experience of OS using Java and see some objective problems in a .NET environment:
There may be a financial cost to tooling which would deter volunteers. Any information on free or OS .NET tools would be very valable.
the target distro is likely to be windows-only at present though we'd like to know what success others have had with distributing (say) Mono packaging.
there may be licence problems and/or practice on Codeplex which needs to be addressed
Since C# is the top tag in SO we believe that there may be potential volunteers yearning for interesting OS projects and feedback on this would be useful.
(In our own case the use of .NET/C# is non-negotiable so please don't suggest we use Java, J#, Iron Python, etc. I can give more details of our own project (in chemistry, and MS-supported) if people are interested but I'd like to see the broad picture.)
Visual Studio Express edition is free
Use NUnit (or MbUnit etc) for unit testing
NAnt is a free build tool, but MSBuild comes with the framework anyway
I don't know of any licensing problems with Codeplex, but there are other options anyway (SourceForge, Google Code etc)
One downside of Visual Studio Express is that it doesn't support plugins, so you won't get integrated SCM support - but most people are likely to be happy to use TortoiseSvn, TortoiseGit etc.
Mono support for MSBuild has very recently improved with a new release of xbuild. I don't know what the packaging options are like.
1) I'm not sure that tooling really is such an immense cost factor.
Many development tools are OSS or free (e.g. CC.NET, SubVersion, various unit test frameworks, or MS SandCastle, to name just a few...).
Some commercial vendors donate free licenses of their products to OS projects.
Lately, the Codeplex Foundation (which is different from codeplex.com!) was established, which is intended to make life for OS projects easier. They might be able to help you with specific problems.
2) If you have a Windows-only distribution, that's not much of a limitation. Many OS projects in the .NET world are exclusively targeting the Windows OS. So I think you shouldn't care about that.
3) Regarding the license question: I don't know of any problem with Codeplex, but here's a list of all currently available OSS licenses. You might also consider an OSS hosting site other than CodePlex, Google Code and Sourceforge may be other options.
HTH!
As long as the license problems are solved, it's only a matter of marketing your project to the potential contributors. I am maintaining several Open Source projects on a Microsoft platform and get a lot of contributions from the community.

C# Desktop Applications? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
In looking at the use of C# in a ISV setting, I'm wondering what prominent C# based desktop apps are out there? I can think of only Paint .NET.
Is C# a good idea for an ISV, or should one stick to more native environments like Delphi or even QT?
Of course any experienced based advise or feedback would be appreciated.
Yes, C# can be used quite effectivly to build applications. In regards what applciations are out there, what are you looking for? Big apps, little apps?
I know of a big app that is built on the .NET framework (unsure if C# or VB) and that is Quickbooks.
Developing a Desktop applications in C# is great. Its not just for Web Apps.
WinForms are going to save you huge amounts of time. It really is a first class citizen when it comes to desktop windows development. If interop is a problem you can always use P/Invoke and COM object wrapping that VS does for you.
Done right, it will be a breeze to maintain and update when the client changes their mind on what they want.
Yes, the framework needs to be on the machine, But this shouldn't be a problem if they have ever used windows update. Nowadays what language doesn't come with a run time library. In VS you can create simple installers that include the runtime.
Of course if your gonna deploy to Linux and mono, your mileage may very.
PlasticSCM
If you can control the system requirements for your application, C# is fine. Some end users still (even though we're nearly in 2009 now) object to a 40MB runtime for some reason, so if you're looking to deploy an application commercially, that may be an issue for you. In a corporate setting, though, where there is some standardization of software on users' computers, this is probably not a problem.
Delphi and QT specifically are both problems. Delphi is effectively a dead language. Companies that are using it these days are, for the most part, porting their code away from it as fast as they can (job boards seem to be full of Delphi-to-C# migration jobs these days). You may like QT, but that moves almost as slowly as Delphi in the Windows world, so I would never consider it to be a real option.
More:
Business Plan Pro
Rescue Time client
Sony Vegas
Sql Management Studio
VS 2010 (much more so than VS 200x)
NASA's World Wind
BabySmash
Windows Live Writer
Microsoft Office Accounting
Fiddler 2
Windows Mobile Device Center
AdiIRC
Jetbrains dotTrace
Lots of Lenovo utilities
Planbook
These are just the ones installed on my PC...
I think that Microsoft Expression Blend/Studio is written in C#
Anything done for Robotics Studio, any XNA game (quite a few commerical ones are coming out now)
I don't see why you would not use C# as an ISV. The problem is ensuring that your target market has the .NET framework. If you are using 3.5, you can build a mini version into your distribution though this increases the file sizes for downloads of course.
Some supplemental information to think about:
One of the typical points against doing desktop applications the distribution model is a lot more difficult to manage. With web apps, if you have a large user base, you can do an update and instantly have your entire user base running on the latest version.
With traditional desktop apps, you'd have to send out an .msi or build something yourself.
However, with ClickOnce and the Updater Application Block (http://msdn.microsoft.com/en-us/library/ms978574.aspx), it's so easy to build intelligent updating into your application that it might play very nicely into an ISV plan.
Even though VS 2008/WPF is shrinking the gap, it's typically much faster to develop client applications in the WinForms space that on the web, so I think it's a very viable approach.
I believe TimeSnapper is written in C#
I have worked for an ISV before that used Delphi and it was excellent for their needs. It still produces great native applications and although dieing it is certainly not dead (yet). Until recently I would have recommened Delphi over c# for desktop applications as I had performance and footprint consderations but as .net can now be considered ubiquitous and that the platform is now maturing my opinoin would probably go with c# (over Delphi).
If you need to consider employees, you will find that there are fewer Delphi developers around that c# ones. So you may struggle to entice good devleopers in as you are using that.
That said Delphi is looking exciting again with the Delphi prism VS plugin.
Just as an aside did you know that the c# compiler is written in c++? Delphi was written in Delphi from v1.0
Windows Media Centre is powered by .NET.
I believe that MS use C# to build many of their apps both Windows and Web. At this time, C# is a great language to go with because of the flexibility of the language/framework.
The zune software (v2 and up) is written in c#. Oh, and Sage Timberline Office is written in .net (mostly).
Although it's a developer tool, the excellent open source IDE SharpDevelop was built in C#. I've also worked on another which (despite being semi-commercially-available) I'm not at liberty to divulge. (Very vertical market.)
I'm a huge fan of the C#/WinForms combination, and can't see why you wouldn't go that route if your developers are already familiar with C# and you want to get into the desktop space.
A very prominent example for a commercialy successful application would be Microsoft Visual Studio 2005 itself.
If you are looking into building a client or server application for the Windows ecosystem .Net with C# is an absolut valid choice. You'll get a very rich framework, a great third-party-app ecosystem and a huge community.
If you need a minimal memory footprint for your application or are very hardware centric then C++ maybe an option.
If you want to target the UNIX/LINUX or Apple platforms you should be looking in frameworks more native for the respective platform, though you can get a certain degree of interoperability with the Mono project (But I am not up to date on how complete their implementation of .Net currently is).
I believe the matrox graphics card configuration utilities are using the .net-framework.
I'm still just a student, but for what it's worth (and from other answers preceding mine), there seem to be quite a few apps in C#.
I'd advise working through the book Head First C# (Amazon link). This book will give you a pretty solid idea of what you can do with the language.
=-MDP-=
Creative Docs .NET is a very nice example of C# application.
Microsoft's World Wide Telescope software is written in c#
Who are your target users? Their needs will dictate your choice of language. C# and VB.NET are good general purpose langs, but if you are targeting Mac or *nix, you may want something like C++.
If you're looking for a way to get started quickly, I recently published DesktopBootstrap, which is my attempt to factor out the elements you'll need to get started.
Hope that helps!

What tools exist to convert a Delphi 7 application to C# and the .Net framework? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
The community reviewed whether to reopen this question 7 months ago and left it closed:
Original close reason(s) were not resolved
Improve this question
I maintain an old PC-only application written in Delphi 7. Although Delphi has served me very well in the past I now only use it for this one application and find my skills with the language diminishing. Its syntax is too different from my 'day job' languages of Java/Ruby so it takes me longer to get into the groove of writing new code, plus it is so old I have not used many interfaces so the code is not managed which seems ancient to me now!
Many of my users are moving to Vista which may run the app in compatibility mode or may have GPF problems depending on how their PC is configured by their IT department, so I have to do some maintenance on the application. I'm wondering if I should jump to a more familiar stack.
Is there an automated tool that will do the legwork of converting the code base to C#, leaving me to concentrate on the conversion on any non-standard components? I'm using an embedded database component called AbsoluteDatabase which is BDE compatible and using standard SQL throughout, and a native Delphi HTML browser component which can be swapped out with something from the Microsoft world.
How good are these conversion tools?
I am not aware of any automated tools for making that conversion. Personally I would suggest you stick with Delphi, maybe just upgrade to a new version. I have seen a couple code DOM's that attempt to convert from Delphi to C#, but that doesn't address the library issue.
CodeGear (formally Borland) has a tool for going from C# to Delphi that works OK. I would assume the tools that go the other direction will work the same (requiring a lot of editing). Here is a Swedish tool that works on the same CodeDOM principle to go from Delphi to C# (and a number of other languages). There are others, I just can't find them right now.
Another option would be to upgrade to a more resent version of Delphi for .NET and port your code to .NET that way. Once you get it working in Delphi for .NET (which will be pretty easy, except for the embedded DB, unless they have a .NET version) you can use .NET Reflector and File Disassembler reverse the IL to C#. You will still be using the VCL, but you can use C# instead of Object pascal.
Another similar solution would be to port it to Oxygene by RemObjects. I believe they have a Delphi Win32 migration path to WinForms. Then use .NET Reflector and File Disassembler reverse the IL to C#.
In short, no easy answers. Language migration is easier then library migration. A lot of it depends on what 3rd party components you used (beyond AbsoluteDatabase) and if you made any Windows API calls directly in your application.
Another completely different option would be too look for an off shore team to maintain the application. They can probably do so cheaply. You could find someone domestically, but it would cost you more no doubt (although with the sagging dollar and poor job market you never know . . . )
Good luck!
There has been a scientific report of a successfull transformation of a 1.5 million line Delphi Project to C# by John Brant. He wrote a Delphi parser, a C# generator and lots of transformation rules on the AST. Gradually extending the set of rules, doing a daily build, lots of unit tests, and some rewriting of difficult Delphi parts allowed him with a team of 4, among which some of the original developers, with deep Delphi & C# knowledge, to migrate the software in 18 months. John Brant being the original developer of the refactoring browser and the SmaCC compiler construction kit, you are unlikely to be able to go that fast
Many of my users are moving to Vista
which may run the app in compatibility
mode or may have GPF problems
depending on how their PC is
configured by their IT department, so
I have to do some maintenance on the
application. I'm wondering if I should
jump to a more familiar stack.
Unless you are doing something non standard, D7 applications should run fine in Vista.
As for conversion to C#, I would think that most conversion tools would be a waste of time. A better approach may be to rewrite the application from scratch.
There is no easy answer, but bear in mind that the Delphi.net variant of the language targets the .net runtime, and that different languages on .net can interoperate closely.
You could try getting it to compile in Delphi.Net, factoring into different assemblies and then converting the assemblies by hand one by one. Reflector could help be reverse-engineering compiled code into a skeleton of C# code - equivalent but without comments, internal variable names etc.
On the other hand, Delphi.net may be good enough (TM) for this project.
But unless you have a good test suite (I'm guessing probably not, given the state of the art in Delphi 7) you're going to introduce bugs.

Categories

Resources