Ask HN: Learning .Net as an experienced Java dev

6 points by reitanqild ↗ HN
Hi!

I'm looking to pick up as much .Net as possible, specifically in the areas of Asp.Net, Entity Framework, NHibernate and a few others before I start with a client that is a MS only shop when I get back to work in January. (Yes, they are aware that I am a Java guy.)

So far I have figured out C# is a better Java. IIS is the app server. NuGet is ~a Maven lite. Visual Studio is the IDE, etc.

Problem is there are seemingly thousands of small things to figure out that I haven't come around to yet, like: is there a common directory layout for projects (solutions)?

How does it decide which templates to use around my page specific html? Something like Tiles maybe?

Anyone has some good pointers?

1 comment

[ 2.6 ms ] story [ 12.0 ms ] thread
When you create a solution in Visual Studio, you end with a directory structure that looks like:

  /SolutionName
    SolutionName.sln <-- "Solution file" contains links to projects
    /Project1Name
      Project1Name.csproj <-- "Project file" contains all project references and files
      /NamespacePart
        SomeClass.cs <-- Default namespace/package is "SolutionName.Project1Name.NamespacePart"
As in Java, the namespaces are, by default, driven by folder path. You can change the namespace on a class. You can also change the default namespace on a project.

If your client prefers, you can put all of the above in a /src directory. You can reference compiled DLLs and/or Projects using relative paths, by default so you can have a /test directory which would point to your /src solutions.

In terms of which templates it uses by default (in ASP.NET MVC), by default the view is {actionName} so if you have an action "Index" on a controller "Home", the default view is "/Views/Home/Index.cshtml". You can tell it to use a specific view, of course, as an overload to the View() method.

In the spirit of the holidays, I'd be willing to have a 30 minute skype call to answer questions or create a basic project. My gmail is partisanyc.