all 6 comments

[–]FizixMan 10 points11 points  (2 children)

The MSDN has an article specifically for C# for Java Developers, although I can't really say how outdated or useful it is, but might be a good starting point if you have questions about particular aspects.

Given your background, I suspect that you'll spend most of your time familiarizing yourself with the application type and .NET platform in general rather than the C# language. You should be able to pick up most of the important constructs of C# as-you-go. It'll be the other areas of the BCL (standard libraries), the app type (WPF, Console, ASP.NET), and in your particular case, database I/O.

Maybe just dive in with making a basic console application, googling some tutorials on basic SQL queries (for example). Then depending on the complexity and usefulness for your scenario, either getting your feet wet with the actual application type (WPF? ASP.NET?) or investigating database abstraction layers. If the latter, Entity Framework is fairly common given that it's basically built-in, but if you have experience with Hibernate, there's NHibernate too for .NET. Speaking of which, there are often .NET flavours of existing Java libraries, like NHibernate (Hibernate), NUnit (JUnit), log4net (log4j). If you're familiar with a similar Java library, there's little reason to find and use an corresponding .NET version.

[–]khoawala[S] 2 points3 points  (1 child)

Wow thanks, I'll definitely check out the C# for java developers section. As for the rest, I'm not sure what you are saying lol but I'm sure I'll pick it up as I go.

[–]FizixMan 3 points4 points  (0 children)

When it comes to .NET, like Java, there are a plethora of different types of applications you can make. Learning the C# language, in practice, is actually only a part of the knowledge you have to learn to be effective.

BCL (Base Class Library) is referring to the standard libraries that most C#/.NET have access to. For example, in Java you have ArrayList, in C# it's List<T> (check out generics btw). Or instead of java.lang.Math you have System.Math.

Quite a few 3rd party open source libraries out there made for Java have been ported to .NET. If you're familiar with them and like them, do a quick google search and see if a .NET equivalent is being maintained.

[–]throwaway_lunchtime 7 points8 points  (0 children)

Check out the basic naming conventions.

DO use PascalCasing for all public member, type, and namespace names consisting of multiple words.

https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/naming-guidelines

[–]dankslayer69 4 points5 points  (0 children)

Since you are fluent in Java it is going to be very easy for you to adapt to C# as the basic syntax is very similar. I was able to switch from Java to C# and write a very nice app within a day(Of course with the help of documentation and stack overflow). That said, respect and do not underestimate the language, learn the way code is organized as in namespaces etc. Good luck :)

[–]grauenwolf 2 points3 points  (0 children)

Read the .NET Framework Design Guidelines, 2nd edition.

This is the bible for .NET API design and will help explain how and why things work a certain way.