background preloader

Microsoft & .NET

Facebook Twitter

That No SQL Thing: The relational modeling anti pattern in document databases. I am going to demonstrate the design of the data model in a document database for a typical blog application. The following is my default sample data model, showing a very simple blog: The absolutely wrong approach with a document database is to try to take the relational model and apply it on a document level. This is especially wrong because for a while, it might actually work. Let us say that we want to store the following: var user = new User("ayende"); var blog = new Blog("Ayende @ Rahien", user) { Tags = {".NET", "Architecture", "Databases" } }; var categoryRaven = new Category("Raven"); var categoryNoSQL = new Category("NoSQL"); var post = new Post(blog, "RavenDB", "... content ...

") { Categories = { categoryRaven, categoryNoSQL }, Tags = {"RavenDB", "Announcements" } }; var comment = new Comment(post, "Great news"); PersistAll(user, blog, categoryRaven, categoryNoSQL, post, comment); I know that I am repeating myself here, but I have seen people miss the point before. Installing_on_Windows. DesigningNoSqlDatabase - GitHub.

NoSQL Document Database - Embedding RavenDB into an ASP.NET MVC 3 Application. Attention to the NoSQL movement is growing within the Microsoft .NET Framework community as we continue to hear of companies sharing their implementation experiences of it in applications that we know and use. With this heightened awareness comes the curiosity to dig in and identify how a NoSQL data store could provide benefits or other potential solutions to the software that developers are currently crafting.

But where do you start, and how hard is the learning curve? Maybe an even more relevant concern: How much time and effort are required to fire up a new data storage solution and start writing code against it? After all, you have the setup process of SQL Server for a new application down to a science, right? Word has reached the .NET community on the wings of a raven about a new option for a NoSQL-type data-layer implementation.

The learning curve for getting up and running with an instance of RavenDB is short and sweet. RavenDB Embedded and MVC Install-Package RavenDB-Embedded. NoSQL with MongoDB, NoRM and ASP.NET MVC - Part 1 - Shiju Varghese's Blog. CSharp Language Center. The simplest way to get started is by using the nuget package. The package page will provide details on using nuget. The C# Driver is hosted at github.com. Instructions for downloading the source code are at Download Instructions You can also download binary builds in either .msi and .zip formats from Note If you download the .zip file, Windows might require you to “Unblock” the help file.

Using connection pooling - mongodb-csharp. DryadLINQ. DryadLINQ is a simple, powerful, and elegant programming environment for writing large-scale data parallel applications running on large PC clusters. The goal of DryadLINQ is to make distributed computing on large compute cluster simple enough for every programmer. DryadLINQ combines two important pieces of Microsoft technology: the Dryad distributed execution engine and the .NET Language Integrated Query (LINQ).

Dryad provides reliable, distributed computing on thousands of servers for large-scale data parallel applications. LINQ enables developers to write and debug their applications in a SQL-like query language, relying on the entire .NET library and using Visual Studio. DryadLINQ translates LINQ programs into distributed Dryad computations: C# and LINQ data objects become distributed partitioned files.LINQ queries become distributed Dryad jobs.C# methods become code running on the vertices of a Dryad job. DryadLINQ has the following features: Big Data Solution | Microsoft SQL Server 2008 R2. MapReduce in C# - JUSTINSHIELD.COM. MapReduce is one of “those” buzz words that is going around at the moment. Mostly in part due to Google using it so successfully for their distributed indexing algorithms. So what is MapReduce? According to Wikipedia [ ] So MapReduce is an amalgamation of two higher order functions taken from functional programming.

Map and Reduce :. MapReduce. Google took the concepts of Map and Reduce and designed a distributed computing framework around those two concepts. So lets break up MapReduce into its 2 main components. is a higher order function which takes a function and a list, and applies that function to each element of that list and returns the resultant list. Given the function x = x + 2, and a list of integers 1 -> 3. Returns: 3, 4, 5 static void Main ( string [ ] args ) { var testList = new List < int > { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 } ; var mapList = Map < int , int > ( x => x + 2 , testList ) ; mapList.

Returns: 6 Returns: 55. Introduction to MapReduce for .NET Developers | DeveloperZen. The basic model for MapReduce derives from the map and reduce concept in functional languages like Lisp. In Lisp, a map takes as input a function and a sequence of values and applies the function to each value in the sequence. A reduce takes as input a sequence of elements and combines all the elements using a binary operation (for example, it can use “+” to sum all the elements in the sequence). MapReduce, inspired by these concepts, was developed as a method for writing processing algorithms for large amounts of raw data. The amount of data is so large that it can’t be stored on a single machine and must be distributed across many machines in order to be processed in a reasonable time. In systems with such data distribution, the traditional central processing algorithms are useless as just getting the data to the centralized CPU running the algorithm implies huge network costs and months (!)

This value proposition for MapReduce is outlined in a Google research paper on the topic: