Skip to main content

[Post Event] ISTAConf 2017, Sofia

Just finished my session at ISTAConf 2017 and I realize that we are not only talking about NoSQL and migration  strategy, but we even doing that. I just met some great guys from Sofia that started to migrate their relational database to MongoDB. What was awesome that they have in plan a migration from on-premises to Azure in the next 3-6 months for their system, so Azure Cosmos DB is the perfect suite for them.

It is the 7 edition of ISTA Conference, that started in 2011. Last time when I was here was 2 years ago and in comparison with that times they grow a lot. Not only during the keynotes, but also during the sessions the rooms are full with people that are curious to find more about what are the current trends and what future is preparing for us. What I like at ISTA is the format of the conference. Even if there are more than 750 participants, they don't have more than 3 tracks. allowing them to keep the quality of session at a high level.

At this conference I talk about Azure Cosmos DB, where beside the base concept I shared different use cases where Azure Cosmos DB might be a better option than Azure Tables, MongoDB cluster and even Azure SQL. If you want to check my slides, you can find them below.

Title: Power-up NoSQL with Cosmos DB
Abstract: NoSQL databases are here to stay. Extremely powerful and flexible NoSQL solutions improve our systems and have a direct impact on our business. Common discussions when you are using NoSQL solutions like DocumentDB or MongoDB are disaster recovery plans, backups, scalability, replication, clustering, security and many more. What if I would tell you a successful story on how we reduced all these topics to only one - Cosmo DB. Join this session if you want to find out how we deployed a worldwide NoSQL solution using Cosmos DB.


Popular posts from this blog

ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded

Today blog post will be started with the following error when running DB tests on the CI machine:
threw exception: System.InvalidOperationException: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See for more information. at System.Data.Entity.Infrastructure.DependencyResolution.ProviderServicesFactory.GetInstance(String providerTypeName, String providerInvariantName) This error happened only on the Continuous Integration machine. On the devs machines, everything has fine. The classic problem – on my machine it’s working. The CI has the following configuration:

TeamCity.NET 4.51EF 6.0.2VS2013
It seems that there …

GET call of REST API that contains '/'-slash character in the value of a parameter

Let’s assume that we have the following scenario: I have a public HTTP endpoint and I need to post some content using GET command. One of the parameters contains special characters like “\” and “/”. If the endpoint is an ApiController than you may have problems if you encode the parameter using the http encoder.
using (var httpClient = new HttpClient()) { httpClient.BaseAddress = baseUrl; Task<HttpResponseMessage> response = httpClient.GetAsync(string.Format("api/foo/{0}", "qwert/qwerqwer"))); response.Wait(); response.Result.EnsureSuccessStatusCode(); } One possible solution would be to encode the query parameter using UrlTokenEncode method of HttpServerUtility class and GetBytes method ofUTF8. In this way you would get the array of bytes of the parameter and encode them as a url token.
The following code show to you how you could write the encode and decode methods.

Entity Framework (EF) TransactionScope vs Database.BeginTransaction

In today blog post we will talk a little about a new feature that is available on EF6+ related to Transactions.
Until now, when we had to use transaction we used ‘TransactionScope’. It works great and I would say that is something that is now in our blood.
using (var scope = new TransactionScope(TransactionScopeOption.Required)) { using (SqlConnection conn = new SqlConnection("...")) { conn.Open(); SqlCommand sqlCommand = new SqlCommand(); sqlCommand.Connection = conn; sqlCommand.CommandText = ... sqlCommand.ExecuteNonQuery(); ... } scope.Complete(); } Starting with EF6.0 we have a new way to work with transactions. The new approach is based on Database.BeginTransaction(), Database.Rollback(), Database.Commit(). Yes, no more TransactionScope.
In the followi…