Ask HN: I'm stuck on the Microsoft stack – help?

7 points by aesthetics1 ↗ HN
I recently moved to a new position where we're using the Microsoft stack - specifically .NET 4.5, SQL Server (w/ SSIS, SSRS), C#, and Entity Framework. I come from the open source world and am having a hard time finding valuable learning resources.

My company has a training budget and I've gone to a few classes, but I feel like there has to be more I can do in-between on my down time.

Where did you go (or what did you read) to learn the Microsoft stack?

19 comments

[ 2.9 ms ] story [ 58.1 ms ] thread
That seems fine. C# is a great language and the Microsoft stack is becoming more and more open all the time. (E.g., products being open sourced, but also other products being released to multiple platforms like their new editor Code)
What specific tool are you having issues with?
What are the advantages of the MS stack?

I'm familiar with Apache - Where can I learn more about IIS? What are some good C# learning resources? I have been using Safari Books' videos so far. Where can I learn more about Entity Framework?

Julie/Julia Lerman is the resource for all things Entity Framework. Anything authored by her (blogs, books, videos, trainings) will be valuable.
MS Stack Advantages: - Backwards compatible for businesses where that matters (any B2B company tends to need this) - Tends to be easy to integrate with Windows security/domains/etc - C# is a fantastic language, and it's getting better with each release - Has a growing open source environment, check out everything StackExchange has released, and NancyFx for my two favorite examples - Mono means that eventually you'll be able to swap out your server with Linux if you're brave and persistent - Entity Framework and Linq to Sql do a good job of abstracting your database layer - If you're using SQL Server (a pretty good, but expensive, database server) using a MS Stack means you can easily (and fully) enjoy everything it has to offer

IIS is pretty well documented online. Generally I can just google a short english sentence with exactly what I want to do and get it running.

C# Learning resources: What language are you coming from? If Java then just start using PascaleCase instead of camelCase. Then get Jon Skeet's "C# in Depth." If your coming from something else there's half a dozen good intro books (pick any, based on how good you are at picking up new languages). Then still get "C# in Depth."

Entity Framework is pretty straightforward to use...the MSDN docs are great, and the wizard gives you a good intro. Otherwise I'm sure there are books out there. I find experimentation and googling effective.

If you're on a Windows OS (newer than WinME) then you can just enable IIS and start using it on your PC.

  If you have Server 2003 or 2003 R2, you have IIS 6.0.
  If you have Windows Vista or Server 2008, you have IIS 7.0.
  If you have Windows 7 or Server 2008 R2, you have IIS 7.5.
  If you have Windows 8 or Server 2012, you have IIS 8.0.
  If you have Windows 8.1 or Server 2012 R2, you have IIS 8.5.
You'll have to open firewall ports and do other network things to let internet users get to it, but it's great for local development.

Also check out http://www.iis.net/

I like Wrox books...most of the thick ones on ASP.Net will talk a bit about IIS. You might listen to the .NET Rocks podcasts to get into the overall context.
If you like video-based training and your company's paying, Pluralsight has a ton of Microsoft-stack content, much of it with downloadable code you use to follow along with the author.

If you prefer books, anything published by Microsoft Press is usually very good.

StackOverflow is very .NET friendly for questions.

One of the things that Visual Studio and many platform components (like IIS) have going for them is discoverability via UI - spend some time opening menus, right-clicking things and poking around to see what you can do.

Linqpad is great for discovering C# and trying little things out quickly; I highly recommend it.

Coding is not a spectator sport. Just write code. C# is powered by an amazing CLR. .NET Framework has very comprehensive and highly optimised libraries. For most of the simple tasks you don't need any external libraries.

You don't have to bother fighting dependencies hell.

MSDN is an almost exhaustive documentation, proper documentation, for most of all available methods and objects inside .NET Framework in all available languages.

Visual Studio is years ahead most of the IDE in terms of productivity tools, speed, integrations with other tools, plugins and debugging.

Just write some more code.

Google "free microsoft ebooks" (no quotes) and you will see a bunch of links for official Microsoft sites - not pirated ones. Several years ago Microsoft started giving them away free to, I assume, encourage platform adoption.

Dig around and I'm sure you'll find a few that are useful.

This is one of those, I believe -- Eric Ligman is Microsoft Senior Sales Excellence Manager (whatever that is) and he apparently posts large lists of free Microsoft-stack-related eBooks on his blog at MSDN, such as this list from a few weeks ago (which I think was mentioned on HN back then):

http://blogs.msdn.com/b/mssmallbiz/archive/2015/07/07/i-m-gi...

As far as your needs are concerned, while there are no ebooks about programming languages in this list (aside from PowerShell), there's a bunch about SQL Server in the second half of the list and perhaps other things of interest as well.

I've moved stacks a few times. Here's what works for me.

Learning a new stack, is like baking bread. You can't just throw all your ingredients in at once. You have to start with a base, and then slowly fold in more as you're kneading the dough.

In software concentrate on the core language first. When I moved from .NET to Ruby, learning the language was pretty straight forward. Almost everything I knew in .NET is there in Ruby, just under a new name. I spent a few weeks getting really comfortable there. Then I started learning rails, then i started learning active record etc. Just fold in one framework at a time. After a while you'll have a good skeleton, and then you can start using your previous experience to ask more pointed questions.

Pluralsight. $30/month and has tons of videos on all of those topics.
One of the features of the Microsoft stack is a robust market for traditional books targeted at diverse technical backgrounds. Amazon or a physical store is where I would start. Congratulations on the new job.

Good luck.

I assume you're using MVC, so I have found the tutorials here extremely helpful:

http://www.asp.net/mvc

The tutorials will include a general intro to the Entity Framework.

Of course MSDN is the ultimate reference. So get comfortable referring to it. Just google the names of some of the classes you are using, for example "ActionResult MSDN."

I would also suggest keeping an open attitude (I'm referring to your use of the word "stuck"). I don't have a lot of experience developing outside of the MS framework, but I find reflexive distaste for MS to often be a case of "strong opinions, weakly held."