Xamarin and Visual Studio: What are the Differences? [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 6 years ago.
Improve this question
I'm about to start learning C# using the Head First C# book from O' Reilly. It seems to be a pretty amazing book, however there's a slight problem - I don't have Windows. I found this cool looking IDE Xamarin that I thought would make a good substitute for Visual Studio, however I just want to make sure it won't be a total waste of time to download and install it. Or would either running VS on a Virtual Machine be a better option or on Bootcamp. However with Bootcamp the problem would be my lack of hard disk storage - I own a Mac Air and there's barely 40GB left.
So what are the similarities and differences between the two IDEs. Would it make learning C# using Head First difficult?
Also the reason why I'm not just downloading Xamarin and trying stuff out for myself is because my Internet speed is currently terrible (barely 0.5 megabits per second D:) and I'm too impatient to wait so long :P Plus it would be better if I knew before hand how Xamarin will affect the development of any apps I make.

When it comes down to editors/IDE's, there are a number of cross-platform alternatives. Not all are equally well-equipped.
Visual Studio Code is the new and lightweight IDE from Microsoft. It runs on Electron Shell (basically Github Atom) but is not as powerful as full Visual Studio even though the naming may let it seem so. It is more a code editor with a little extra (like type checking and building).
Xamarin Studio is a quite capable IDE, but is less configurable than Visual Studio. Also, it is focused more on Xamarin development, and less on general C# development.
Jetbrains Rider (codename) is Jetbrains' proven ReSharper extension, wrapped in its proven IntelliJ IDE. It is still in development but will be probably quite similar to Visual Studio in terms of functionality. It won't be free though.
Also, bear in mind that there are multiple runtimes for the same language and that there are differences between the runtimes!
.NET (Full) Framework: this is the reference implementation from Microsoft but only runs on the Windows Platform
Core CLR: this is a Microsoft Supported Cross-platform runtime, but only contains core functionality. You cannot use all the libraries in the full framework on this CLR.
Mono: this is an open-source cross-platform implementation of the full-framework. Obviously, not everything can be ported to all platforms, so there are pieces missing. Also, not all libraries are available.
Also 2, Microsoft has signed an agreement to buy Xamarin. Not sure how the IDE will evolve after the deals goes through.

Xamarin is basically done to create mobile cross-platform apps using all the mono core code.
But as I know, this IDE permit you to do some of other type of codes (F#, C#, ASP…), so for a beginner this IDE is enough. When you will have more experience, using VS will be better (if Microsoft do not implement new things in Xamarin IDE in the future), because all the integration of the Microsoft environment is amazin in VS.
But for now, with you missing space in your MAC, the easiest solution is Xamarin ! (Care when you will install the Android Package in Xamarin installation)
About Visual Studio Code, I think this IDE is not mature enought to be used for learning...

I think the visual difference is Visual Studio uses .net framework and Xamarin uses Mono Touch. I prefer to use Xamarin for cross platform app development because of reusability of code and components. Xamarin developer need to know android/ios/windows UI designs and coding logic but coding language is c#.
Note that Xamarin has introduced Xamrin Forms,acts as single UI layer for all platforms but still on initial stage. Good luck!

Related

What do I really need to install into VS 2015, to create a simple universal app?

I'll try to be concrete so this doesn't get tagged as a discussion question.
I'm a complete programming beginner learning C#, and one exercise includes creating a universal win10 app. Except my version of Visual Studio 2015 doesn't have this type of template pre-installed, so I clicked to download it. Turns out it's 12 Gb.
My question is whether I can opt out of some of the things that Microsoft want to install, specifically "Common tools for Visual C++ 2015". I tried unchecking it, but then it automatically also removed "Tools (1.4) and Windows 10 SDK (10.0.10586)", which seems a lot more important. So maybe I need tools for C++, even though I'm not using C++?
I notice there is another one you can check, called "Windows 10 SDK (10.0.10240)", and I thought perhaps I can choose that one instead. This one allows me to uncheck C++, which gives me back 6Gb of harddrive.
Since I'm just trying to learn, I don't need the app to be compatible with win8, I don't need to emulate a phone or Xbox or what have you. I just need to make an app with a GUI, to see how it's done.

Xamarin vs native iOS and Android [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 8 years ago.
Improve this question
Here I need some developer opinion. I tested xamarin studio to build android and iOS app, and on first it was great. But later I discovered that i still need so much of xcode and eclipse here to help me with front end to bring it up, and at some point it was pain in the ass on backend. So it was jumping around little bit. So I decided to build apps in native platforms and wait community to grow. Does anyone here had performance issue on Android apps built with xamarin at aspect of lot of async and medium large data work, native app is quiet a bit faster and stable from that aspect.? Am I wrong here, should i wait a little bit for Xamarin to grab the traction ?
There are hardly any performance issues that i have observed in an app developed in xamarin. Except the bugs about Xamarin studio that are already reported in their Bugzilla, rest all works great. I have used both xamarin studio as well as visual studio for developing apps for Android and IOS.
However developing for ios, its better done in Xamarin studio in mac because you need to pair a windows machine to a Mac if you want to have the simulator and proper debugging there. Xcode and Xamarin studio actually need to be used together for this. Android, i never needed to use eclipse. And as you have mono working for you, things even turn out to work faster as now not all things are thrown at dalvik. Mono manages all that it can, and Dalvik comes into picture only for things that explicitly need dalvik and android. Xamarin is growning steadily and support also is too good. It is already being widely used. No need to wait for anything. Just dive in and enjoy the newness of coding for Android and ios in something different.
Cheers. :)
In my opinion Xamarin is just great.
I'm using it in Visual Studio 2012 and I've made iOS & Android apps.
The result is a native app so performances are the same.
The only point that disturbing me with iOS apps is when I want to modify the Info.plist in Visual Studio (add app icons for example) or to deploy app on the AppStore, it never works as I want so I make it in Xamarin Studio (or Xcode) on Mac.
However, Visual Studio is so much better to use compared to Xamarin Studio & Eclipse that my choice is done.

Can Windows and Linux developers work together on the same project using C# and ASP.net?

If a group of developers are working on a project written using ASP.net and C# in a Windows environment with Visual Studio, is there any way a developer can join their team and work with them on the project in a Linux environment? I know about the open source, cross-platform development framework Mono, could this be an option or would the Windows developers have to use this as well for that to work? Is the best option for a Linux developer to just install a Windows partition or can he join them without doing so?
Is the best option for a Linux
developer to just install a Windows
partition
Yes, by far. Even better, just get a PC. I've run into so many headaches trying to develop in .NET on Linux. Mono isn't perfect, and never will be.
Yes! Use MonoDevelop and a source management solution like Mercurial.
Yes, MonoDevelop can even load the Visual Studio solutions.
It deppends on many factors, I'd say that if you plan to use third party controls, for example, then you probably better stick to windows and visual studio. If you are going to do P/Invokes (call Win32 api methods) then, again, better stick to windows.
The fact is that many functionality that .Net framework has is only available on the Microsoft redistributable installer/visual studio installer etc. If you are joining a team that already has a project going on and it is linked to any of this namespaces (Microsoft.* comes to mind) then definitely install windows and visual studio, on the other hand, if you are just starting a new project it could be easy to develop on linux with monodevelop as long as you stick to anything that is fully supported by the mono framework.
Another thing you should consider are licenses. If your team already has visual studio and windows licenses it does not make much sense to switch to linux, as much as I love linux and mono/monodevelop the best way to develop for .net is the microsoft stack without a doubt.
What makes sense is to try to comply with mono so that your software can run in unix/linux infrastructure if you already have it and if switching it to windows server, for example, raises the cost too much.
It's all about the cost, unfortunely, so see these tools just as that, tools, they are the means to an end and just that. If developing and deploying with windows and to windows is cheaper then go ahead, if you have a large unix/linux server set already working and want to deploy into that then use mono, just consider it has a slightly learning curve since it is NOT visual studio/.net per se.

Moving development from Windows to Linux

I'm a longtime Visual Studio(from versions 6 to 2008) user that really like the editor and especially the debugger. Now I'm thinking of giving Linux a go, is there a IDE with similar, or better, capabilities out there?
I'm also interested in recommendations for GUI libraries, c++ or c#.
http://monodevelop.com/ would be your closest bet for an editor similar to visual studio
I would recommend Eclipse, it's quite similar to Visual studio in capabilities and can be extended with much more plugins than VS has to offer.
I'd check out Mono. You shouldn't have to change too much from what you already do.
Dont, just dont! I'm doing this now # work since I have to and i tried, netbeans, kdevelop, eclipse. They're so basic compared to VS, especially if you're used to the more advanced features that you'll get crazy and desire visual studio back.
I moved from windows to linux 9 or so years ago after spending my initial career using Visual Studio.
The move was relatively easy as the build environment was first and foremost based on Makefiles. Up to this point I used scripts to create a visual studio project for the project each time there were changes.
At that time, the others in my team were using emacs. The learning curve is pretty steep when you come from something like VS, but IMHO it has been well worth the time I invested in it.
What sold me on emacs was the integration with gdb. Emacs has a mode specifically for gdb. Once this mode is started you can enable 'gdb-many-windows'. This gives you a view very similar to that of any debuger environment. Also, one of the first things that I did after moving was to setup the VS key shortcuts. So even after all this time, I have the following in my .emacs file:
(global-set-key [f7] 'compile) ;; asks for a command to run eg: make
(global-set-key [f4] 'next-error) ;; show the next error
(global-set-key [S-f4] 'previous-error) ;; show the previous error
(global-set-key [f5] 'gdb) ;; start the debugger
(add-hook 'gud-mode-hook ;; allows changes to debugger mode
'(lambda ()
(define-key (current-local-map)
[f10]
'gud-next) ;; F10 does step over
(define-key (current-local-map)
[f11]
'gud-step) ;; F11 does step into
(define-key (current-local-map)
[\S-f11]
'gud-finish) ;; Shift+F11 finish function
(define-key (current-local-map)
[f5]
'gud-cont) ;; F5 does continue.
(gdb-many-windows t))) ;; Set's up a debugger type view
If you haven't used emacs before, then the first thing you need to know is that you type: Ctrl+X Ctrl+C to exit emacs.
If you do decide to give it a go, after loading it up use Ctrl-H then 't'. This starts the emacs tutorial which will give you the basics.
Of course, if you get stuck, then just review or ask a SO question tagged with emacs. This has become a really could source of information for emacs use. I only found out about gdb-many-windows this April from this question!
Eclipse is the only IDE out there supporting multiple languages which has a comparable power to Visual Studio.
If you are going to do c# development on linux I would recommend MonoDevelop. It is designed specifically for .net development (eclipse is not) and it is really quite full featured now, it includes a visual debuggers, code completion, graphical nunit integration and virtually everything else you would expect from a modern IDE. It includes some features missing from Visual Studio. I was excited just recently to discover I can right click on an interface and choose find all implementations, This is a feature not implemented in visual studio and which I find extremely helpful.
Regarding the GUI libaries, if you are using c# on linux then the best GUI framework is GTK#. MonoDevelop includes a built in graphical designer for it.
Several mature and widely used linux applications use this including:
Banshee - music player
FSpot - photo manager (default in Ubuntu)
Tomboy - Notes application (default in gnome)
MonoDevelop - IDE (similar to Visual Studio)
GTK# is also cross platform and so can run on mac and windows as well. This is proved by its usage in MonoDevelop where it is used to run on linux, mac and windows.
I'm a Linux developer and I would kill (or at least maim) for a development environment approaching the sophistication of Visual Studio. But then Visual Studio doesn't support Lua or Haskell or ML, which are the major languages I use these days.
Like many others I find Eclipse too slow and lacking in functionality for languages that are not Java.
I do have two positive recommendations: for debugging C and C++ programs, the combination of valgrind (a memory debugger) and the Data Display Debugger (an interactive GUI debugger) make me about 5 times more productive in C than I used to be with just dbx or gdb.
Now I'm thinking of giving Linux a go,
is there a IDE with similar, or
better, capabilities out there?
I'm also interested in recommendations for GUI libraries, c++ or c#.
I only speak for C++:
There are similar IDEs, but they are not as good as VS.
The Qt framework includes the best C++ GUI library.
Do not even bother with Eclipse or MonoDevelop for C++, try KDevelop or QtCreator. The C++ debugging will be especially painful compared to what you've been used to.
monodevelop. Also #Develop is pretty nice - fast, though missing some features, and only supports C# (Mono or .NET)

What is the best way to program C# on a free platform? (Compiler / IDE / Debugger / etc) [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 7 years ago.
Improve this question
Preferably also on linux - if necessary I'll install a basic version of Windows XP
If you are going to install the XP on your linux machine then the Microsoft Visual C# Express Edition 2005 and 2008 are extremely good programs. Infact I think all the express editions are amazing that they are free.
No problem - MonoDevelop will run were you want it -
MonoDevelop is a free GNOME IDE primarily designed for C# and other .NET languages.
On Linux your only option is Mono and monodevelop. However Mono will not give you access to all libraries in the Microsoft .NET stack. Most notably things like WCF, WPF and WF won't be supported, and the recommended UI library to use is GTK#, as opposed to the more widely used WinForms or WPF.
On Windows you can go either for the free Visual Studio Express editions, or for sharpdevelop. Sharpdevelop naturally focuses more on integration with other free tools like NUnit and WiX, but for editing, refactoring and debugging I would say that Visual Studio express is still better feature wise. You an also find more plugins for VS.
Bottom line if you want "cutting edge" stuff you really need windows. Otherwise there's not much choice.
Mono.
If you're considering serious (commercial) .NET development I wouldn't dive into products like Mono or Shardevelop.
One of the reasons why .NET might be a better option from Java, for example, is because Microsoft provides very nice and powerful tools for the development which makes the development process a lot easier. Using free/open tools and implementations makes developing in .NET meaningless since Java in this area is much better.
Of course there's Express series, but those IDE are designated for learning mostly (you didn't say why do you need free tools). For the professional team development they are still not enough.
Eclipse is a great IDE and apparently there's a C# plug in for it. I've not used it however (the plugin) so I can't comment on its quality.

Categories

Resources