Providing a scripting environment and language so that users can mod and extend a game is a traditional practice in the videogame industry, where C/C++ game engines like Unity allow you to use C# to create and script games. Providing a scripting environment allows users and designers to break out of the constraints of the game, modifying it and extending it beyond the intent of the original developers. What if non-gaming applications could also leverage a scripting environment to gain flexibility and power? With Mono's embedding API it's easy for any C/C++ application to add the power of C# and .NET to its arsenal.
In this talk we will go through the basics of how to embed Mono and run C# from a C/C++ bootstrapping application, its potential uses, as well as the problems and pitfalls that you will encounter along the way. There are many interesting things that you can do when you control the runtime, domain and assembly loader from native land, and we will look at some fun tricks that are possible, like dynamic UIs that you can script, extend and modify at runtime without ever restarting your app, or games where the users drive the content.
Microsoft Azure DB is a purpose built JSON document database that is ideal for use in developing the next generation of modern web and mobile applications. DocumentDB provides the scale and performance of benefits of a NoSQL database but without forcing developers to take a productivity hit at design time in order to use it. In this session we'll deep dive into the capabilities that set DocumentDB apart from RDBMS stores as well its NoSQL brethren. We'll look at how DocumentDB finally delivers on the schema-free promise of NoSQL with whole document indexing and a range of language integrated query mechanisms. We'll look at how DocumentDB provides the sort of data tier programmability that developers take for granted in relational stores but which, to date, has always been a little undercooked in NoSQL land. Finally we'll examine how to get the best performance out of DocumentDB by tuning the consistency level to your application requirements and tweaking your index and query strategies where required. If you're building web and mobile apps on Microsoft Azure then this session will help you to evaluate how DocumentDB can get those apps built faster, scaling better and running more cost effectively than other data storage approaches.