# Off Topic > The Water Cooler >  >  Anyone into C#? Forum recommendations?

## JapanDave

Hey all, I just started C# a few weeks ago and so far it has been a blast. Takes me back to when I was first starting to learn VBA only it is easier this time as I know a little bit about code. Anyone recommend a good forum you can go to and ask stupid questions. Don't suggest Stack Overflow/Exchange and you get roasted for stupid questions.

----------


## Kyle123

Hi Dave, welcome to the dark side!  :Wink: 

I use stack overflow, which isn't too mad once you learn how to ask questions in the right way and there are some incredibly knowledgable people on there. I don't use it, but you could try vbforums.com for a more traditional feel, they have quite a large .net section and the c# seems relatively active.

There are also the Microsoft .net forums which seem fairly active, none of them seem to have anything like the response speed of so though, but I can understand why it's not your bag

----------


## JapanDave

Hey Kyle,
He,He, you are talking about the code editor!!! LOL
The language is awesome, I can't force myself to go to bed while trying to input as much information as I can. Looks like Stack then, problem is that when you think you are asking a legitimate question someone rips into you for being so ill informed. But, I am getting used to to it of late, but have yet to ask a C# question.

----------


## Kyle123

C# is my favourite language to work in - I prefer the terse syntax over VB; Visual Studio has something to do with this though, the tooling is brilliant - it's hands down the best IDE I've ever used, makes you realise what you're missing with the VBA editor.

SO is all about asking the question in the right way - it makes you think before you post. Because it's pretty much a requirement that you post a scaled down example of your issue, I've lost count of the amount of times I've been about to post a question only for the example I've prepared to make it blindingly obvious what my issue was in the first place so not needed to post anything.  It's not for everyone though since it's specifically a Q&A site, not a forum for discussion and I understand why people don't like that, you really do get some good answers very quickly though - this is my favourite question that I asked that produced a brilliant answer http://stackoverflow.com/questions/2...dded-to-itself

----------


## JapanDave

Kyle, I just up-voted that question. Definitely not that level, but at least I am understanding the syntax.

----------


## Kyle123

haha, thanks for the up vote!  :Wink:

----------


## JapanDave

Check this, someone deemed this down vote-able for reasons unknown. What is with that???

http://stackoverflow.com/questions/3...of-application

----------


## snb

That's why I avoid SO: the same result could have been accomplished with only positive votes.

----------


## JapanDave

> That's why I avoid SO: the same result could have been accomplished with only positive votes.



I know what you mean.

----------


## AB33

> C# is my favourite language to work in - I prefer the terse syntax over VB; Visual Studio has something to do with this though, the tooling is brilliant - it's hands down the best IDE I've ever used, makes you realise what you're missing with the VBA editor.
> 
> [/url]



Hi Kyle,
The problem I am having with learning new languages, such as Java and Python (OOP), is not only switching to OOP's set mind, but the most frustrating is that there is no like VBA IDE in these languages. I really miss the F8 key.

----------


## Kyle123

Try visual studio, it's like the VBA IDE on 'roids - I've yet to find another IDE I like. I use a glorified text editor for JavaScript

----------


## JapanDave

> Hi Kyle,
> The problem I am having with learning new languages, such as Java and Python (OOP), is not only switching to OOP's set mind, but the most frustrating is that there is no like VBA IDE in these languages. I really miss the F8 key.



Yes, visual studio is awesome. The only thing is that to get the good stuff you need to pay for it. But, that said , it is worth it.

----------


## Kyle123

What good stuff? Have you tried the community version?

----------


## AB33

Hi Kyle,
There are many free versions of it when I Google it. Could you please kindly sent me the link to the community free version please?

----------


## Kyle123

https://www.visualstudio.com/en-us/p...munity-vs.aspx

----------


## JapanDave

> What good stuff? Have you tried the community version?



I got mine with a purchase of SQL Server, I am assuming that that multiple platforms can't be done in Community version?
But, after some research, not the case,
https://www.quora.com/Microsoft-Visu...o-Professional

----------


## AB33

Hi Kyle,
Thanks for the link!
It looks promising.
The only issue I have so far is with downloaded packages. Despite choosing the custom version of installation, All the non relevant Net , C+++ and SQL have been installed. I can go to control panel and uninstall all of them except "python tools for VS", but I am not sure if uninstall them interferes with PTVS and PTVS still works. I am only interested on PTVS.

----------


## JapanDave

> Hi Kyle,
> Thanks for the link!
> It looks promising.
> The only issue I have so far is with downloaded packages. Despite choosing the custom version of installation, All the non relevant Net , C+++ and SQL have been installed. I can go to control panel and uninstall all of them except "python tools for VS", but I am not sure if uninstall them interferes with PTVS and PTVS still works. I am only interested on PTVS.



Why not leave them in there?

----------


## AB33

Hi Dave,
There are over 8GB to download. Memory becomes a precious item on my PC until I get a new one. In fact, my PC became unstable while downloading the software.

----------


## JapanDave

Visual studio Community is only 1GB.

----------


## AB33

Hi Dave,
You might be right, but I seem to remember a warning from MS "This may take up to 8GB" message. I have over 600mb sitting on my PC. PTVS is only 16.7mb. I do not need the rest.

----------


## :) Sixthsense :)

> Despite choosing the custom version of installation, All the non relevant Net , C+++ and SQL have been installed



Actually you can install the required component alone.  No need to install all the stuffs as you mentioned.  At the time of installation I select only Visual basic and exclude rest of the parts since I don't require them.

For example first I installed VB alone and after some time I just wanted to look into ASP.NET part, so again I run the setup and selected ASP.NET.  After few minutes ASP.NET getting installed along with the current Visual Basic.

----------


## AB33

SS,
You may be right!
I think it is most likely I might have missed a step on the installation process.

----------


## JapanDave

Been at C# for 8 months. Much harder than it looks. Finally at a point where I am making sense of everything. Got Kyle to thank for a lot of stuff I did not understand.

----------


## :) Sixthsense :)

> Been at C# for 8 months. Much harder than it looks.



Exactly, I also felt the same when I tried to learn C#.  Finally I returned back to VB(A) since that is my native language (In Programming) which is so convenient to understand when comparing to C#.

But what to do most of the developers prefers C# only, and it's hard to find VB codes when comparing to C#.

----------


## AB33

Looking back with hindsight, Learning VBA as programming language is a waste of time , but this is the wonderful world of hindsight. Like JavaScript, it 's application is limited to its host, i.e. office applications. From my experience, I do no think many people who use office applications know the relevance of VBA. You will hardly find any job which requires advance excel includes VBA.
The danger of learning any programming language is, it may have limited useful life. By the time you master it, it might be out of date. If I were to learn a programming language, I would go for C++. This is foundation of most modern languages. It gives you the flexibility to survive in any environment.

----------


## JapanDave

> Exactly, I also felt the same when I tried to learn C#.  Finally I returned back to VB(A) since that is my native language (In Programming) which is so convenient to understand when comparing to C#.
> 
> But what to do most of the developers prefers C# only, and it's hard to find VB codes when comparing to C#.



VBA, is just so different to C#, which is something I did not expect, being that both are 'Object' orientated, well partially 'Object' orientated for VBA.

But, I have stuck it out and I have just about finished an Application in C# that connects to SQL Server and manages 4000 employees with personal data, time and attendance records and just overall management. Up until now there is about 15,000 lines of code that I wrote ,not including the auto generated stuff and still is growing as move to completion.





> Looking back with hindsight, Learning VBA as programming language is a waste of time , but this is the wonderful world of hindsight. Like JavaScript, it application is limited to its host, i.e. office applications. From my experience, I do no think many people who use office applications know the relevance of VBA. You will hardly find any job which requires advance excel includes VBA.
> The danger of learning any programming language is, it may have limited useful life. By the time you master it, it might be out of date. If I were to learn a programming language, I would go for C++. This is foundation of most modern languages. It gives you the flexibility to survive in any environment.



 Not a waste of time at all, I think if I did not know VBA, I would have given up of C# a long time ago. Not to mention that VBA does teach you a few little tricks that people who only ever have coded in C are surprised by. (Well the people who I know were anyway) There are a lot of thoughts on which language you should learn first, some say C++ other say C# , in any case you have to be more conscious of memory when coding in C++.

----------


## JapanDave

> Exactly, I also felt the same when I tried to learn C#.  Finally I returned back to VB(A) since that is my native language (In Programming) which is so convenient to understand when comparing to C#.
> 
> But what to do most of the developers prefers C# only, and it's hard to find VB codes when comparing to C#.



VBA, is just so different to C#, which is something I did not expect, being that both are 'Object' orientated, well partially 'Object' orientated for VBA.

But, I have stuck it out and I have just about finished an Application in C# that connects to SQL Server and manages 4000 employees with personal data, time and attendance records and just overall management. Up until now there is about 15,000 lines of code that I wrote ,not including the auto generated stuff and still is growing as move to completion.





> Looking back with hindsight, Learning VBA as programming language is a waste of time , but this is the wonderful world of hindsight. Like JavaScript, it application is limited to its host, i.e. office applications. From my experience, I do no think many people who use office applications know the relevance of VBA. You will hardly find any job which requires advance excel includes VBA.
> The danger of learning any programming language is, it may have limited useful life. By the time you master it, it might be out of date. If I were to learn a programming language, I would go for C++. This is foundation of most modern languages. It gives you the flexibility to survive in any environment.



 Not a waste of time at all, I think if I did not know VBA, I would have given up of C# a long time ago. Not to mention that VBA does teach you a few little tricks that people who only ever have coded in C are surprised by. (Well the people who I know were anyway) There are a lot of thoughts on which language you should learn first, some say C++ other say C# , in any case you have to be more conscious of memory when coding in C++.

----------


## AB33

Hi Dave,
Imagine how easy was to learn any language if you had started with C++, but not the other way round. I know it is very hard to learn C++, but in the long term, it will pay off.

----------


## Kyle123

C++ is a fruity though, I prefer my languages a bit more opinionated - harder to muck things up and easier to learn from others (that said I like JavaScript though so go figure  :Confused: ).

Not sure I really agree with this though (the comparison anyway):




> Like JavaScript, it application is limited to its host



JavaScript is far more ubiquitous than VBA (rightly or wrongly), whilst predominantly an in browser language, that isn't by any stretch its only application. NodeJS is incredibly popular and turns JS into a general scripting language.

@SixthSense, whilst VB.Net isn't as popular as C#, its differences are only skin deep, swap out your End Ifs for curly brackets, remove the Dim and As keywords and you've pretty much got C#. As such it's incredibly trivial to convert any example you find online from one to the other - I haven't looked, but I suspect that there are no end of online copy and paste tools that will do this for you.

----------


## Kyle123

> Hi Dave,
> Imagine how easy was to learn any language if you had started with C++, but not the other way round. I know it is very hard to learn C++, but in the long term, it will pay off.



Depends how you've learnt it. If you've gone functional for example that ain't gonna help you much with C#

----------


## AB33

[QUOTE=Kyle123;4445884]


 NodeJS is incredibly popular and turns JS into a general scripting language.

QUOTE]

Hi Kyle,
 NodeJS  is still predominantly used on client-server side and I do not know what kind of stand-alone applications are written using  NodeJS alone.

----------


## Kyle123

To the contrary a lot of developer command line build tools are written in JavaScript using node (much more widely than just using it as a web server). for more traditional applications that aren't for developers, you'd be looking at the software based on the electron platform http://electron.atom.io/apps/

I'm not advocating it as a desktop based language, just that is used far more widely than simply in webpages. A considerable number of phone apps are JavaScript based - whilst one could argue that they are really browser based, they aren't really in the conventional sense. It's even supported inside excel for automation, it's also the official script for google apps.

----------


## Kyle123

P.s what do you mean by "client-server side"?

----------


## AB33

> P.s what do you mean by "client-server side"?



You are now putting me in a trap. :Smilie: 
I have read some where JavaScript could also be used on the server-side, like PHP or ASP Net.
I thought JavaScript is initially designed to work on browse (Client-side), but as you are ahead of me, I probably are mixing-up JavaScript and NodeJS. I thought (Could be wrongly) NodeJS is just an extension of JavaScript.

----------


## JapanDave

BTW, I should mention my 15,000 lines of code could probably be condensed right down with someone with more experience like Kyle. LOL

----------


## Kyle123

NodeJS isn't an extension of JavaScript, it's an environment that JavaScript runs in that allows you to use it on the server (or a computer) outside the browser. So yes, it predominately allows you to use JavaScript as a server side language (like PHP or Ruby (although much faster for certain applications)) but it also has wider applications as in my earlier post.

I remain unconvinced that it's a good choice for building desktop applications with tools like electron, but I can see the appeal. It's somewhat trivial to create applications that work across operating systems (some of the time at least  :Wink: ), but for desktop applications, I much prefer other options - electron works by bundling the Node server and a browser into an executable package so it's heavy on resource and a much larger download than you'd normally want since you're also downloading a Chromium build.

----------


## AB33

Hi Kyle,
Thanks for info!
If one could use NodeJS on the server, why one bothers to learn another language then? Would it not be easier and convenient to just use NodeJS  than PHP, or am I comparing apples with oranges? I just read an article in which the author argued that, you can not compare ASP Net and PHP ,as the former is NOT  a programming language, but a framework. I personally do not wish to embark in to learning another language with out fully knowning what I am going to get out of it.

----------


## Kyle123

It's horses for courses. Node scratches a particular itch since it's non-blocking, to achieve the same thing with traditional server languages like Java, C#, Python, Ruby etc you tend to get into multi-threading and all the complexities that come with it. Since JavaScript is callback based, you don't need to do things in the same way. This makes it really useful for 2 web applications that need 2 way communication, like a chat app, or a file upload progress meter where the browser keeps a socket open to the server and the data flows both ways - sockets in this capacity tend to be more difficult in most web environments.

The author is correct, but it depends what angle he is looking at it from. Whatever language you use, you're going to be using frameworks, whether it's .net for VB/C#, Rails for Ruby, Django for Python, Wordpress for PHP or even Express for Node. How much chopping and changing between bits of libraries that make up the frameworks certainly comes into it - this is where Node shines, you basically build your own stack, others tend to be more opinionated.

Which language you want to learn really depends what you want to do with it, it really is horses for courses and once you've learnt a couple, it's not difficult to pick up new languages. Most of the time is spent learning the frameworks around the languages, whether that's .Net, Express, Angular or the Excel Object Model.

C# and VB are good all rounders, you can make desktop applications, web sites phone apps with them. The frameworks tend to be very opinionated and there's not a huge choice once you step out of .net - though things are changing now that VS has a package manager. The biggest drawback with a MS stack was always the licensing costs, you'd typically need a Windows server, SQL Server is expensive and the code only ran on windows - it's why typically it's thought of as a corporate stack. Things have changed here though, MS has open sourced much of its code and .net core will run cross platform so there's no windows dependency (won't help with desktop apps really though). It has desktop GUIs baked in

Java is very similar to C#/VB, but has some elements of cross platform. The added  bonus is that Android apps are written in Java. It has desktop GUIs baked in

PHP is web only thats popular through ubiquity rather than being a good language (it's ******* horrible) since WordPress powers something like 50% of all the words websites and loads of common web tools (like vBulletin) are PHP based it's everywhere. This is mainly a legacy thing the simplicity of getting a PHP script running on a web server has always had the lowest barrier to entry for web development. Most shared hosts come with PHP and MySQL installed by default so getting off the ground is trivial.

Ruby (specifically Ruby on Rails - Rails is the web framework) again is a popular choice for web development - typically from a mac perspective since getting it set up on windows is a bit painful, it's very popular with web start ups (it's not really used for desktop GUI apps though)

Python (with Django web framework) is also a popular choice for web development since the language is popular, terse and easy to learn. Desktop apps are a bit more painful since you need external frameworks like Qt.

JavaScript is popular since it's needed for the web anyway - it's the only language that's supported by all the browsers, but the language is like marmite, it's universally loved or loathed depending on your perspective - it's certainly got a lot of quirks. It's the one that is useful to have a rough knowledge of because it's everywhere. You can create applications that will run on iOS, Windows Phone and Android from a shared code base and you can create desktop applications with it. That said, it's drawbacks can be huge, there's no beginners framework, it's all piecemeal build you own stack by importing open source libraries that can be of dubious quality, the package manager has cause some major, major issues (see http://www.theregister.co.uk/2016/03...eft_pad_chaos/)

So in short it depends what you want to do, you can do a lot worse than C#, it has built in GUI support, can build services, websites and APIs -  java is similar. This is why they've always been popular in large organisations, they also play nicely with windows, once you get into web development, windows isn't the norm, people tend to run linux or macs and getting even the frameworks running and languages installed on a windows box can be massively painful - you then have database driver issues and configuration problems as you'll probably be deploying to a linux server.

----------


## JapanDave

And since Xamarin is now owned by MS, things are looking up for cross platform mobile apps as well.

----------


## Kyle123

Yeah, that's true. I've never used it on account of the cost, it used to be prohibitively expensive even for non commercial usage, but I believe the licensing restrictions have been much improved

----------


## JapanDave

I thought that since MS now owns it they releases a free version, Xamarin Studio Community???

----------


## Kyle123

They do, but the licensing restrictions are still tight. You can only use the free version for open source and outside a corporation (250 computers or $1m turnover) after that you need to pay

----------


## AB33

Hi Kyle,
Thank you very much for comprehensive cover!
I am familiar with some of the technical terms you are used, but other terms are Greek to me and I need to translate them in to non- teki English. :Smilie:  
I am not bothered about rep points and hardly give rep to people ( I can not even remember when was the last time I rep). When I try to rep you, I am told to spread-over the rep first as if I do it regularly.
Lots of people told me they can not rep because they get this silly remark. I do not even know what it means to spread-over
It might mean your box is flooded with rep points and it is about to burst :Smilie: .

----------


## JapanDave

@AB33, never mind , just give Kyle's rep to me, he won't mind! LOL

----------


## AB33

Ahm!
Dave, when I rep you and tried to rep Kyle, this time, it did not complain, so you have got rep by hook :Smilie:

----------


## Kyle123

Haha it's when you try to rep the same person twice in a row. There's a particular user who reps every post, so I don't know who else he reps to allow him to do that, maybe he just picks someone at random!

Ta muchly anyway :D

----------

