Reblogged: What should I learn to get started in .NET and web development?

[Note: I am reblogging this post which originally was posted to the LearningLine blog. Hope you all find it useful here as well]

I recently had a conversation with someone who is looking to make a fresh start and become a developer (coming from other IT positions).  The question they had was:

What should I learn to get started in .NET and web development?

Now this question was starting from a position of “I’d like to get started with .NET and the web. How do I do that?” So please hold your “No, choose Ruby (or NodeJS or … )” comments. That’s another blog post. :)

Here’s my advice along with a bunch of courses you can use to accomplish this efficiently and affordably. Continue reading

Why Choose NoSQL and Document Databases over RDBMS

Do you want to know the biggest single reason you should choose document databases over SQL Server, Oracle, or MySQL? Hint: It’s not performance or scalability.

Here is a short screencast which shows you the stark contrast in simplicity between an application using a relational database and one using a document database such as MongoDB, CouchDB, or RavenDB.

This is an excerpt from my upcoming online MongoDB course for DevelopMentor. You can take the first 1 1/2 hours for free here:

Early access: MongoDB and NoSQL for .NET developers

Cheers,
@mkennedy

Installing MongoDB on Windows and OS X

Ready to get started with NoSQL and MongoDB? Here are two 7-minute walkthroughs for installing MongoDB as a Windows service / OS X daemon.

These are both excerpts from my upcoming online MongoDB course for DevelopMentor. You can take the first 1 1/2 hours for free here:

Early access: MongoDB and NoSQL for .NET developers

Windows:

OS X:

Feedback welcome.

cheers
@mkennedy

A Roundup of MongoDB Management Tools

I’ve been working with MongoDB for a long time now. Back in the early days, there really were no management tools analogous to RDBMS tools (e.g. SQL Server Management Studio). Since then, things have changed significantly. It’s time to look around and see what management / monitoring tooling is around these days for MongoDB.

The news is good. There are many different options to choose depending on your platform and use-cases.

1. Robomongo, price: $0 / open-source, platforms: Windows, OS X, Linux
http://robomongo.org/

Robomongo — is a shell-centric cross-platform open source MongoDB management tool (i.e. Admin GUI). Robomongo embeds the same JavaScript engine that powers MongoDB’s mongo shell. Everything you can write in mongo shell — you can write in Robomongo!

Robomongo

Key features: Continue reading

Optimistic concurrency in MongoDB using .NET and C#

[Update: Available via NuGet - MongoDB.Kennedy.Concurrency]

This article demonstrates a technique and supporting library for adding optimistic concurrency control to NoSQL databases and MongoDB in particular.

Watch a video walk-through using this library:

Quickly, what is optimistic concurrency control?

Ideally, all databases that allow concurrent access or disconnected access need to implement some form of concurrency control. This usually comes in two flavors:

  1. Pessimistic concurrency control
  2. Optimistic concurrency control

Pessimistic concurrency control is usually used when working heavily within transactions. That may be fine for bank transfers, but it typically falls down in the face of disconnected models used by almost all ORMs such as Entity Framework. Moreover, it is entirely inappropriate for NoSQL databases.

Frameworks such as Entity Framework have optimistic concurrency control built in (although it may be turned off). It’s instructive to quickly see how it works. Basically there are three steps:

  1. Get an entity from the DB and disconnect.
  2. Edit in memory.
  3. Update the db with changes using a special update clause. Something like: “Update this row WHERE the current values are same as original values”.

If that update returns “0 rows modified” then we know it was changed since we loaded it and are about to overwrite someone’s changes. This results in a concurrency exception and not changes go through.

Optimistic concurrency control for MongoDB

By carefully constructing update commands in C# with the official 10gen C# driver, we can achieve almost exactly the same flow. At the end of this article is a simple C# class (data context) which has save and delete methods which internally are safe via optimistic concurrency control. Continue reading

Take the first hour of any online developer course for free at LearningLine

[Note: reblogged from blog.learninglineapp.com. I'd like to personally invite you to check out our work over at LearningLine - just follow the links below.]

We believe that LearningLine is the most effective online training for developers, period. Today it gets even better. We are announcing the ability to preview any of our online courses, for free without entering any payment information.

This is not a trial that becomes a subscription or a silly 5 minute preview like other company’s offer.  You can now study approximately the first hour of any one of our courses. And you can spend as much time as you like doing so.

To get started, just head over to our schedule page, click on any course title you’d like and choose “Preview course for free“:

   preview-online-developer-course-for-free

This means there is now lot of content available to you right now. At a typical student speed working for an hour a day, it would take over a month to complete all the content that is available for preview. Continue reading

Slides and demos from DevWeek 2013

[Update: I added the downloads for the demo code on March 12th.]

I had a great time discussing these topics with everyone at DevWeek 2013. Thanks to all who attended my sessions. Here are the slides:

Getting Serious About The Cloud For Developers
Slides: Getting serious about the Cloud (DevWeek).pdf
Demos: CloudDriverS3SecureFiles-Demo-DevWeek-Kennedy.zip

18 Ways Your Brand-New MVC Web Application Can Be Better
Slides:More Ways MVC Better (DevWeek) – Kennedy.pdf
Demos: 18WaysMvcNewProjectBetterDemo-DevWeek-Kennedy.zip

Building Rich Forms in ASP.NET MVC (important - see note below)
Slides: Rich Forms with ASP.NET MVC (DevWeek).pdf
Demos: Rich-ASPNET-Forms-Demos-Michael-Kennedy.zip

Applied NoSQL in .NET (important – see note below)
Slides: Applied NoSQL in .NET (DevWeek).pdf
Demos: Applied-NoSQL-in-dotNET-Demos-Michael-Kennedy.zip

Important note: In order to run this demo, you must download MongoDB and start it on your local machine. You do not need to initialize a database or anything like that but the db will be empty so use the admin feature to create categories and books. Running MongoDB as a Windows Service is not required.

Cheers,
@mkennedy