<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Silverlight driven blogging</title>
        <link>http://www.maxpaulousky.com/blog/Default.aspx</link>
        <description>A blog by Max Paulousky</description>
        <language>en-US</language>
        <copyright>Max Paulousky</copyright>
        <generator>Subtext Version 2.1.2.2</generator>
        <image>
            <title>Silverlight driven blogging</title>
            <url>http://www.maxpaulousky.com/blog/images/RSS2Image.gif</url>
            <link>http://www.maxpaulousky.com/blog/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Windows Phone (Mango) DB Engines Performance Testing</title>
            <link>http://www.maxpaulousky.com/blog/archive/2011/07/27/windows-phone-mango-db-engines-performance-testing.aspx</link>
            <description>&lt;h2&gt;Abstracts&lt;/h2&gt;  &lt;p&gt;I am working on a &lt;a title="Windows phone official site" href="http://www.microsoft.com/windowsphone/en-us/default.aspx" target="_blank"&gt;Windows Phone&lt;/a&gt; application that requires some database to store information. I know a couples of DB engines for Windows Phone (&lt;a title="SQL CE Overview for Windows Phone 7.1" href="http://msdn.microsoft.com/en-us/library/hh202860(v=VS.92).aspx"&gt;SQL CE&lt;/a&gt;, &lt;a title="Sterling is a lightweight NoSQL object-oriented database" href="http://sterling.codeplex.com" target="_blank"&gt;Sterling DB&lt;/a&gt;, &lt;a title="Siaqodb is an object database engine" href="http://siaqodb.com/"&gt;Siaqodb&lt;/a&gt;, ) but I have not found any performance testing of such software. So, I decided to compare SQL CE and Sterling DB. &lt;/p&gt;  &lt;p&gt;I am going to use set of test queries (insert/delete/select) to measure performance. I will perform three attempts and will calculate average value.&lt;/p&gt;  &lt;h2&gt;Database structure&lt;/h2&gt;  &lt;p&gt; &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Databse structure for performance tests" border="0" alt="Databse structure for performance tests" src="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/PerformanceComparisonofWindowsPhoneDBEng_12C59/image_00390336-ede1-44c7-be68-3e576a80956a.png" width="445" height="294" /&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;The database structure is as simple as possible. Companies has orders and each order item relates to particular product and has number of products for each order item. &lt;/p&gt;  &lt;p&gt;In the application I implement 1 to N relationship between companies and orders and  1 to 1 between orders and products tables.&lt;/p&gt;  &lt;p&gt;The &lt;em&gt;Name&lt;/em&gt; field in the &lt;em&gt;Products&lt;/em&gt; table is indexed. The same situation with fields &lt;em&gt;Name&lt;/em&gt; and &lt;em&gt;FoundationYear&lt;/em&gt; in the &lt;em&gt;Companies&lt;/em&gt; table.&lt;/p&gt;  &lt;h2&gt;Tests&lt;/h2&gt;  &lt;p&gt;First set of test is CreateDB/Insert ones. &lt;/p&gt;  &lt;p&gt;In CreateDB test I create structure of database. Then I insert 100 records of Products (plain data) and 100 records of Companies (data with references). For each Company I insert 10 records of Orders.&lt;/p&gt;  &lt;p&gt;The second set of tests is Delete data tests. I delete 10 records from Companies, delete the whole table and delete the database.&lt;/p&gt;  &lt;p&gt;The third set of test is select tests. I perform following queries:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Searching by substring by indexed field &lt;/li&gt;    &lt;li&gt;Search by key with data loading by foreign key &lt;/li&gt;    &lt;li&gt;Search by primary key &lt;/li&gt;    &lt;li&gt;Search by not indexed column &lt;/li&gt;    &lt;li&gt;Load the whole table &lt;/li&gt;    &lt;li&gt;Ordering by indexed column &lt;/li&gt;    &lt;li&gt;Paging imitation &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;For search operations I want to test real-life operations and their performance (search by indexes, non-indexed fields, ordering, paging etc).&lt;/p&gt;  &lt;h2&gt;Create DB / Insert queries&lt;/h2&gt;  &lt;p&gt;Sterling DB does not create any DB structure until we insert data. At the same time, SQL CE has appropriate command that creates a file and tables, indexes etc in it. Usually, it takes about 1-1.5 sec&lt;/p&gt;  &lt;p&gt;Insert operations are weak point of Sterling DB. That DB performs these operations much more slower than SQL CE does. Operations with inserting referenced data are especially slow. It takes more than a minute to insert 100 companies and 10 orders for each company (1100 records). At the same time, SQL CE is fast on insert operations.&lt;/p&gt;  &lt;h2&gt;Delete queries&lt;/h2&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p&gt;I tested three types of delete operations. First one is just deleting 10 records from a table. The second one should delete all records from the table. Last operation should delete the database itself. SQL CE does not have direct command to delete all items from a table, so, I did not test it.&lt;/p&gt;  &lt;h2&gt;Search queries&lt;/h2&gt;  &lt;p&gt;I perform great number of search queries against both databases.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Searching by substring by indexed field. I look for products that contain “at” string in the name &lt;/li&gt; &lt;/ul&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 96.63%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; height: 44px; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;Products.Where(p =&amp;gt; p.Name.Contains(&lt;span style="color: #006080"&gt;"at"&lt;/span&gt;)).ToList();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;Search by key with data loading by foreign key. I load companies that have &lt;em&gt;FoundationYear&lt;/em&gt; &amp;gt; 1950. For SQL CE I specify options to load dependent items (&lt;em&gt;Orders&lt;/em&gt; and &lt;em&gt;Products&lt;/em&gt;). SterlingDB performs loading such dependent objects automatically. &lt;/li&gt;
&lt;/ul&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;Companies.Where(c =&amp;gt; c.FoundationYear &amp;gt; 1950).ToList();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p /&gt;

&lt;ul&gt;
  &lt;li&gt;Search by primary key. I look for a product with &lt;em&gt;Id&lt;/em&gt; = 50 &lt;/li&gt;
&lt;/ul&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;Products.Single(p =&amp;gt; p.Id == 50);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;Search by not indexed column. I look for companies that had IPOs &lt;/li&gt;
&lt;/ul&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;Companies.Where(c =&amp;gt; c.HadIpo).ToList();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;Load the whole table without using indexes. I load products &lt;/li&gt;
&lt;/ul&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;Products.ToList();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;Load data with ordering. I order companies by FoundationYear and take only the first one to avoid lack of performance. &lt;/li&gt;
&lt;/ul&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;Companies.OrderBy(c =&amp;gt; c.FoundationYear).First();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;Paging. I skip 50 companies and take 10 &lt;/li&gt;
&lt;/ul&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;Companies.Skip(50).Take(10).ToList();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p /&gt;

&lt;h2&gt;Results&lt;/h2&gt;

&lt;p&gt;I filled an excel spreadsheet with results of performance testing&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/PerformanceComparisonofWindowsPhoneDBEng_12C59/image_7.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Windows Phone (Mango) DB Engines Performance Testing Results" border="0" alt="Windows Phone (Mango) DB Engines Performance Testing Results" src="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/PerformanceComparisonofWindowsPhoneDBEng_12C59/image_thumb_1.png" width="611" height="349" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;At the first glance, SQL CE wins more tests than Sterling DB. But if we go forward, I will explain in what cases Sterling DB is much better than any other DB. Let’s start!&lt;/p&gt;

&lt;p&gt;All tests were performed on an emulator. the difference in performance between the emulator and HTC HD7 is not really big.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backup DB. &lt;/strong&gt;That operation is exclusive for Sterling users. It is important because Sterling DB’s structure is based on big number of files and folders that are created for each record, index; max 100 files per folder. As a result, archiving of lots of files takes time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CreateDB&lt;/strong&gt;. That operation is exclusive for SQL CE DB and takes about 1.5 seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Insert 100 Items&lt;/strong&gt;. That operation is faster on SQL CE. SterlingDB takes much more time (~36 times) to perform the operation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Insert 100 items with dependent items&lt;/strong&gt;. That operation for SterlingDB is even slower than simple inserting (~84 time). Below I will explain the situation with inserting and how it can be avoided.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deleting 10 items&lt;/strong&gt;. The speed of the operation is similar for both databases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deleting all items from table&lt;/strong&gt;. There is no appropriate operation for SQL CE but it can be done by requesting all keys from the table and performing delete operation for each record. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Delete DB&lt;/strong&gt;. That operation is much faster for SQL CE because it requires to delete just one file. At the same time, SterlingDB should delete all files with data (more than 1000) and it takes plenty of time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search by substring&lt;/strong&gt;. That operation is performed faster by Sterling than SQL CE.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search by key with loading dependent data&lt;/strong&gt;. In that case SQL CE is much faster than Sterling. Also, SQL CE has one additional advantage – it allows specifying which objects exactly should be loaded with main entity. This test requires loading all dependent data and if I use lazy loading for products, it will allow saving additional seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search by primary key&lt;/strong&gt;. Search by primary key is extremely fast on SterlingDB. At the same time, SQL CE spends a lot of time on that operation. This behaviour can be explained by huge overhead expenses on each request.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search by non-indexed column&lt;/strong&gt;. In that competition SterlingDB is much slower because it requires to load all records (load all files) of the table. I hope, there will be big performance improvement when Jeremy implement one-file strategy for SterlingDB.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Load the whole table&lt;/strong&gt;. That query is performed for Products table that does not contain dependent records and column values can be got from index. So, SQL CE and Sterling DB has similar performance for that type of queries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search by indexed column with ordering&lt;/strong&gt;. As I mentioned above, when SterlingDB performs queries by indexed fields, it works much faster. This type of query is exactly the same situation and it does not require to load all record values (SterlingDB lazy loading). &lt;/p&gt;

&lt;p /&gt;

&lt;p&gt;&lt;strong&gt;Search with paging&lt;/strong&gt;. I do not know exactly how Skip and Take operations are implemented in SterlingDB but they are ~3 times slower than the same operations in SQL CE. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DB size&lt;/strong&gt;. That parameter does not participate in competitions but I would like to mention it also. For set of records I mentioned above, size of SterlingDB backup is less than SQL CE DB size. I checked a situation with 10 times more records for each entity. In the last case size of DBs was comparatively equal (~ 800 kb).&lt;/p&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;I performed testing of SQL CE and Sterling DB engines. In most cases SQL CE was faster than SterlingDB. On the other hand, Jeremy Likness is doing great job and SterlingDB is faster for queries that does not required loading the whole record or all data can be got from indexed fields.&lt;/p&gt;

&lt;p&gt;SterlingDB uses &lt;strong&gt;in-memory cache&lt;/strong&gt; for all data that was requested. Because of that, all queries that are executed more than on time, will return data immediately. SQL CE performs repeating queries fast also, but not fast as SterlingDB. &lt;/p&gt;

&lt;p&gt;Developers should pay attention to situation with inserting data into SterlingDB. This operation is extremely slow. If you store some predefined data in DB, you can fill it and supply with your application as resource.&lt;/p&gt;

&lt;p&gt;Also, I need to mention that SQL CE has great ways to improve performance. You can use two DataContexts for different type of queries – update and read-only queries. It will improve performance of selects for read-only queries (&lt;em&gt;&lt;strong&gt;ObjectTrackingEnabled&lt;/strong&gt; &lt;/em&gt;parameter). Also, using of &lt;strong&gt;compiled queries&lt;/strong&gt; can improve performance of queries that are executed with great frequency. Update operations can be improved by implementing &lt;em&gt;&lt;strong&gt;INotifyPropertyChanging&lt;/strong&gt;&lt;/em&gt; interface which allows reducing memory usage.&lt;/p&gt;

&lt;p&gt;One more additional SQL CE benefit is ability to &lt;strong&gt;update DB schema&lt;/strong&gt;. If you use SterlingDB, you have to create a new DB and copy updated data there.&lt;/p&gt;

&lt;p&gt;SQL CE has maximal DB size which is 512 Mb. Sterling does not have such limitation but I don’t think your DB size will exceed more than 10 Mb&lt;/p&gt;

&lt;p&gt;SQL CE and Sterling have similar approaches to describe DB structure and perform queries. The difference is Sterling does not require to specify columns attributes for classes that map to tables. On the other hand, SQL CE allows using shorter queries because does not require to specify using  indexes (it is detected automatically).&lt;/p&gt;

&lt;p&gt;So, my conclusion is. You need to use SterlingDB if:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;You don’t have a lot of data; &lt;/li&gt;

  &lt;li&gt;You use read-only data; &lt;/li&gt;

  &lt;li&gt;You do queries for the same data often; &lt;/li&gt;

  &lt;li&gt;Your data is plain and does not have referential integrity; &lt;/li&gt;

  &lt;li&gt;You do not use non-indexed fields in queries &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You need to use SQL CE if:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;You have lot of data; &lt;/li&gt;

  &lt;li&gt;You actively use referential integrity &lt;/li&gt;

  &lt;li&gt;You plan to update DB structure in the future &lt;/li&gt;

  &lt;li&gt;Users actively update DB data &lt;/li&gt;

  &lt;li&gt;You want to control DeleteRule for associated data (Cascade deleting, no action etc) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hope, it helps!&lt;/p&gt;

&lt;h2&gt;Sources&lt;/h2&gt;

&lt;p&gt;I provide &lt;a title="Mango DB Performance Tests application with full sources" href="http://www.maxpaulousky.com/storage/20110727-Windows-Phone-Mango-DB-Engines-Performance-Testing/MangoDBPerfTests.zip"&gt;full sources&lt;/a&gt; of a test application. Also, I provide &lt;a title="Spreadsheet with testing results" href="http://www.maxpaulousky.com/storage/20110727-Windows-Phone-Mango-DB-Engines-Performance-Testing/Performance Results.xlsx"&gt;excel spreadsheet&lt;/a&gt; with testing results.&lt;/p&gt;

&lt;p&gt;Sources requires Windows Phone 7.1/7.5 SDKs.&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4612c181-4904-4258-bf53-689ca9f00dd5" class="wlWriterEditableSmartContent"&gt;&lt;div class="page_navigation navigation paginate pagination"&gt;     &lt;/div&gt;
&lt;p class="post_meta"&gt;
&lt;span&gt;Tagged: &lt;/span&gt;&lt;a href="http://www.maxpaulousky.com/blog/tags/Windows+Phone+7/default.aspx" rel="tag" title="View all posts in Windows Phone 7"&gt;Windows Phone 7&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/Mango/default.aspx" rel="tag" title="View all posts in Mango"&gt;Mango&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/SterlingDB/default.aspx" rel="tag" title="View all posts in SterlingDB"&gt;SterlingDB&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/SQL+CE/default.aspx" rel="tag" title="View all posts in SQL CE"&gt;SQL CE&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/Performance/default.aspx" rel="tag" title="View all posts in Performance"&gt;Performance&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/Optimization/default.aspx" rel="tag" title="View all posts in Optimization"&gt;Optimization&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;div class="post_license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.maxpaulousky.com/blog/aggbug/73.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Max Paulousky</dc:creator>
            <guid>http://www.maxpaulousky.com/blog/archive/2011/07/27/windows-phone-mango-db-engines-performance-testing.aspx</guid>
            <pubDate>Wed, 27 Jul 2011 01:24:32 GMT</pubDate>
            <comments>http://www.maxpaulousky.com/blog/archive/2011/07/27/windows-phone-mango-db-engines-performance-testing.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://www.maxpaulousky.com/blog/comments/commentRss/73.aspx</wfw:commentRss>
            <trackback:ping>http://www.maxpaulousky.com/blog/services/trackbacks/73.aspx</trackback:ping>
        </item>
        <item>
            <title>The Second meet-up of Minsk Silverlight/Windows Phone User Group</title>
            <link>http://www.maxpaulousky.com/blog/archive/2011/07/08/the-second-meet-up-of-minsk-silverlight-windows-phone-user-group.aspx</link>
            <description>&lt;p&gt;On Saturday, July 2nd, we had the second meet-up of Minsk’s &lt;a title="Official silverlight site" href="http://www.silverlight.net" target="_blank"&gt;Silverlight&lt;/a&gt; / &lt;a title="Windows phone official site" href="http://www.microsoft.com/windowsphone/en-us/default.aspx" target="_blank"&gt;Windows Phone&lt;/a&gt; user group. That time about 55 IT specialists registered on the event. The number of participants increased for two times against the first meet-up&lt;/p&gt;  &lt;p&gt;That time we had planned three sessions and understood that it was the optimal number of activities.&lt;/p&gt;  &lt;p&gt;The first session was dedicated for XNA. &lt;a href="http://www.twitter.com/suhinini" target="_blank"&gt;Ivan Suhinin&lt;/a&gt; presented ‘&lt;a title="XNA and physical engines presentation" href="http://www.maxpaulousky.com/storage/20110708-The-second-meet-up-of-Minsk-Silverlight-Windows-Phone-User-Group/XNA 2D Physical engines.pptx" target="_blank"&gt;XNA and physical engines&lt;/a&gt;’ where he showed demo XNA application, described workflow and specifics of working with physical engines. Demo application can be downloaded &lt;a href="http://www.maxpaulousky.com/storage/20110708-The-second-meet-up-of-Minsk-Silverlight-Windows-Phone-User-Group/JumperGame.zip" target="_blank"&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Ivan Suhinin presents the XNA and physical engines session" border="0" alt="Ivan Suhinin presents the XNA and physical engines session" src="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/ThesecondmeetupofMinskSilverlightWindows_E3E7/IMG_1839!_17486a0f-dca2-4466-8038-c0a60c861812.jpg" width="615" height="441" /&gt; &lt;/p&gt;  &lt;p&gt;The second session was extremely excited because &lt;a href="http://www.twitter.com/vladimirveevnik" target="_blank"&gt;Vladimir Veevnik&lt;/a&gt; &lt;a title="What is Kinect? presentation" href="http://www.maxpaulousky.com/storage/20110708-The-second-meet-up-of-Minsk-Silverlight-Windows-Phone-User-Group/Kinect.pptx" target="_blank"&gt;demonstrated&lt;/a&gt; Kinect™ and its features. He described hardware and software parts of Kinect, showed some source code etc. Also, he presented a real time demo where &lt;a href="http://www.facebook.com/photo.php?fbid=204933039552302&amp;amp;set=a.156735307705409.28419.100001068236731&amp;amp;type=1&amp;amp;theater#!/photo.php?fbid=204933039552302&amp;amp;set=a.156735307705409.28419.100001068236731&amp;amp;type=1&amp;amp;theater&amp;amp;pid=552916&amp;amp;id=100001068236731" target="_blank"&gt;USB-rabbit was repeating the same motion&lt;/a&gt;, as Vladimir did. All Vladimir’s motions were controlled by Kinect and  then a special application sent commands to USB-rabbit. Source code of demo application can be downloaded &lt;a title="Source code of the application that allows to control USB-rabbit via Kinect" href="http://www.maxpaulousky.com/storage/20110708-The-second-meet-up-of-Minsk-Silverlight-Windows-Phone-User-Group/NabaztagManagerDemo.zip" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Vladimir Veevnik" border="0" alt="Vladimir Veevnik" src="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/ThesecondmeetupofMinskSilverlightWindows_E3E7/IMG_1846!_1d0f5285-3fb0-448b-a2c9-3481692cb364.jpg" width="615" height="384" /&gt; &lt;/p&gt;  &lt;p&gt;For the desert I, Ivan Suhinin and all attendees discussed the future of Windows 8 and it’s impact on  development. We discussed what Jupiter, DirectUI are etc&lt;/p&gt;  &lt;p&gt; &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Max Paulousky and Ivan Suhinin" border="0" alt="Max Paulousky and Ivan Suhinin" src="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/ThesecondmeetupofMinskSilverlightWindows_E3E7/IMG_1853!_2fc69578-a7ff-4f5b-a91e-718439a90960.jpg" width="615" height="430" /&gt; &lt;/p&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p /&gt; &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Max Paulousky and Ivan Suhinin" border="0" alt="Max Paulousky and Ivan Suhinin" src="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/ThesecondmeetupofMinskSilverlightWindows_E3E7/IMG_1854!_5a6bb2ed-3fa2-4d17-b832-76d18cf2ff29.jpg" width="615" height="430" /&gt;   &lt;p&gt;The video of the event is below. The first session starts at 05:00, the second starts at 53:03, Kinect Demo starts at 120:05 and the last session starts at 142:10. Also, I will provide more photos later.&lt;/p&gt;  &lt;p&gt;&lt;object type="application/x-shockwave-flash" data="http://www.tut.by/uppod/auppod.swf" width="512" height="384" id="player"&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="movie" value="http://www.tut.by/uppod/auppod.swf" /&gt;&lt;param name="FlashVars" value="m=video&amp;amp;auto=firstframe&amp;amp;file=http://uploader.tut.by/topic/2011/2011-07-02_Silverlight_WindowsPhone_191-48.mp4&amp;amp;firstframe=2&amp;amp;debug=0&amp;amp;duration=0&amp;amp;id=http://uploader.tut.by/topic/2011/2011-07-02_Silverlight_WindowsPhone_191-48.mp4&amp;amp;comment=o:&amp;amp;st=http://www.tut.by/uppod/frameid406/ads1/mp4/params.php" /&gt;&lt;/object&gt;&lt;/p&gt;  &lt;p&gt;The event was really great! We had chance to talk to each other, discuss actual question and meet new friends and followers. &lt;/p&gt;  &lt;p&gt;Also, I would like to say thank you to all presenters for their hard work and spent time.&lt;/p&gt;  &lt;p&gt;If you have any questions – let me know!&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:926300a4-705d-4ba1-b7d7-bcf5cb537670" class="wlWriterEditableSmartContent"&gt;&lt;div class="page_navigation navigation paginate pagination"&gt;     &lt;/div&gt; &lt;p class="post_meta"&gt; &lt;span&gt;Tagged: &lt;/span&gt;&lt;a href="http://www.maxpaulousky.com/blog/tags/User+Group/default.aspx" rel="tag" title="View all posts in User Group"&gt;User Group&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/Windows+Phone/default.aspx" rel="tag" title="View all posts in Windows Phone"&gt;Windows Phone&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/Silverlight/default.aspx" rel="tag" title="View all posts in Silverlight"&gt;Silverlight&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/XNA/default.aspx" rel="tag" title="View all posts in XNA"&gt;XNA&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/Windows+8/default.aspx" rel="tag" title="View all posts in Windows 8"&gt;Windows 8&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;div class="post_license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.maxpaulousky.com/blog/aggbug/72.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Max Paulousky</dc:creator>
            <guid>http://www.maxpaulousky.com/blog/archive/2011/07/08/the-second-meet-up-of-minsk-silverlight-windows-phone-user-group.aspx</guid>
            <pubDate>Fri, 08 Jul 2011 17:20:03 GMT</pubDate>
            <comments>http://www.maxpaulousky.com/blog/archive/2011/07/08/the-second-meet-up-of-minsk-silverlight-windows-phone-user-group.aspx#feedback</comments>
            <wfw:commentRss>http://www.maxpaulousky.com/blog/comments/commentRss/72.aspx</wfw:commentRss>
            <trackback:ping>http://www.maxpaulousky.com/blog/services/trackbacks/72.aspx</trackback:ping>
        </item>
        <item>
            <title>Software Development Life Cycle for Windows Phone and Blackberry/Pyxis Platforms Session</title>
            <link>http://www.maxpaulousky.com/blog/archive/2011/07/04/software-development-life-cycle-for-windows-phone-and-blackberry-pyxis-platforms-session.aspx</link>
            <description>&lt;p&gt;About a month ago I presented a session on development specifics for &lt;/p&gt;  &lt;p&gt;Windows Phone and &lt;a href="http://us.blackberry.com/" target="_blank"&gt;Blackberry&lt;/a&gt;/&lt;a href="http://pyxismobile.com/" target="_blank"&gt;Pyxis&lt;/a&gt; platforms.&lt;/p&gt;  &lt;p&gt;This presentation was a generalization of my mobile experience with &lt;a title="Windows phone official site" href="http://www.microsoft.com/windowsphone/en-us/default.aspx" target="_blank"&gt;Windows Phone&lt;/a&gt; and Blackberry/Pyxis platforms.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Frame from Software Development Life Cycle for Windows Phone and Blackberry/Pyxis presentation" border="0" alt="Frame from Software Development Life Cycle for Windows Phone and Blackberry/Pyxis presentation" src="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/SoftwaredevelopmentlifecycleforWindowsPh_11AA5/image_4f5e8f38-7a7c-4df1-ba72-c5377263c89f.png" width="479" height="359" /&gt; &lt;/p&gt;  &lt;p&gt;You can download presentation with detailed notes &lt;a title="Software Development Life Cycle for Windows Phone and Blackberry/Pyxis Platforms presentation" href="http://www.maxpaulousky.com/storage/20110704-Software-Development-Life-Cycle-for-Windows-Phone-and-Blackberry-Pyxis-Platforms-Session/WP7_vs_BB_and_Pyxis.pptx" target="_blank"&gt;here&lt;/a&gt;. Also, you can watch video, that was prepared for the session, and where I compare implementation of a screen for displaying list of news for both platforms.&lt;/p&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;div style="padding-bottom: 0px; padding-left: 0px; width: 425px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:1d925989-b217-41fd-8d7a-c0534496dc4c" class="wlWriterEditableSmartContent"&gt;&lt;div&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/V0sclHvVdyA&amp;amp;hl=en" /&gt;&lt;embed src="http://www.youtube.com/v/V0sclHvVdyA&amp;amp;hl=en" type="application/x-shockwave-flash" width="425" height="355" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;I hope, it will help you!&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:64c85527-d7b1-42ca-a1b3-0817ca8257c0" class="wlWriterEditableSmartContent"&gt;&lt;div class="page_navigation navigation paginate pagination"&gt;     &lt;/div&gt; &lt;p class="post_meta"&gt; &lt;span&gt;Tagged: &lt;/span&gt;&lt;a href="http://www.maxpaulousky.com/blog/tags/Windows+Phone+7/default.aspx" rel="tag" title="View all posts in Windows Phone 7"&gt;Windows Phone 7&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/Blackberry/default.aspx" rel="tag" title="View all posts in Blackberry"&gt;Blackberry&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/Pyxis/default.aspx" rel="tag" title="View all posts in Pyxis"&gt;Pyxis&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/SDLC/default.aspx" rel="tag" title="View all posts in SDLC"&gt;SDLC&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/Conference/default.aspx" rel="tag" title="View all posts in Conference"&gt;Conference&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/Video/default.aspx" rel="tag" title="View all posts in Video"&gt;Video&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;div class="post_license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.maxpaulousky.com/blog/aggbug/71.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Max Paulousky</dc:creator>
            <guid>http://www.maxpaulousky.com/blog/archive/2011/07/04/software-development-life-cycle-for-windows-phone-and-blackberry-pyxis-platforms-session.aspx</guid>
            <pubDate>Mon, 04 Jul 2011 19:23:35 GMT</pubDate>
            <comments>http://www.maxpaulousky.com/blog/archive/2011/07/04/software-development-life-cycle-for-windows-phone-and-blackberry-pyxis-platforms-session.aspx#feedback</comments>
            <wfw:commentRss>http://www.maxpaulousky.com/blog/comments/commentRss/71.aspx</wfw:commentRss>
            <trackback:ping>http://www.maxpaulousky.com/blog/services/trackbacks/71.aspx</trackback:ping>
        </item>
        <item>
            <title>The First Public Meet-up Of Minsk Silverlight/Windows Phone Group Has Happened!</title>
            <link>http://www.maxpaulousky.com/blog/archive/2011/05/30/the-first-public-meet-up-of-minsk-silverlight-windows-phone-group.aspx</link>
            <description>&lt;p&gt;
	I am proud to inform my readers that the first public meet-up of Minsk Silverlight/Windows
	Phone group has happened. I and my friends made great efforts to prepare that meet-up,
	prepare sessions, answered big number of questions.
&lt;/p&gt;
&lt;p&gt;
	We planed five sessions but were able to perform just four. One session (3D in Silverlight5)
	was postponed till the next meet-up because of problems with beta version of &lt;a title="Official silverlight site" href="http://www.silverlight.net" target="_blank"&gt;Silverlight&lt;/a&gt; 5 runtime. To
	be honest, we were lucky that that session was canceled. Five sessions would take
	a lot of time and attendees would be exhausted. All other sessions were hosted on
	time and were really great!&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;Ivan Suhinin&lt;/strong&gt;, presented &lt;a title="XNA Content Pipeline presentation" href="http://www.maxpaulousky.com/storage/20110530-the-first-public-meet-up-of-minsk-silverlight-windows-phone-group/Suhinin - XNA Content Pipeline.pptx" target="_blank"&gt;&lt;em&gt;XNA Content Pipeline&lt;/em&gt;&lt;/a&gt; session:&lt;/p&gt;
&lt;p&gt;
	&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px;&amp;#xD;&amp;#xA;		border-left-width: 0px" title="Ivan Suhinin, presented XNA Content Pipeline session" border="0" alt="Ivan Suhinin, presented XNA Content Pipeline session" src="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/TheFirstMeetupOfMinskSilverlightWindowsP_100E0/IMG_1708!_3.jpg" width="615" height="411" /&gt;
&lt;/p&gt;
&lt;p&gt;
	&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px;&amp;#xD;&amp;#xA;		border-left-width: 0px" title="IMG_1709!" border="0" alt="IMG_1709!" src="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/TheFirstMeetupOfMinskSilverlightWindowsP_100E0/IMG_1709!_85940b9b-0334-42f5-948d-ba42d459a9a7.jpg" width="615" height="411" /&gt;
&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;Ivan Kirkorau&lt;/strong&gt; presented his &lt;a title="Testing for Windows phone Marketplace presentation" href="http://www.maxpaulousky.com/storage/20110530-the-first-public-meet-up-of-minsk-silverlight-windows-phone-group/Kirkorau - Marketplace Testing.pptx" target="_blank"&gt;&lt;em&gt;Testing for Windows phone Marketplace&lt;/em&gt;&lt;/a&gt; session.&lt;/p&gt;
&lt;p&gt;
	&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px;&amp;#xD;&amp;#xA;		border-left-width: 0px" title="IMG_1715!" border="0" alt="IMG_1715!" src="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/TheFirstMeetupOfMinskSilverlightWindowsP_100E0/IMG_1715!_94f281f9-f3a7-4ca1-a0aa-e90e2e349a4b.jpg" width="615" height="411" /&gt;
	&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px;&amp;#xD;&amp;#xA;		border-left-width: 0px" title="IMG_1716!" border="0" alt="IMG_1716!" src="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/TheFirstMeetupOfMinskSilverlightWindowsP_100E0/IMG_1716!_87d635cf-46d8-45df-abdf-9a8a36c5e60d.jpg" width="615" height="411" /&gt;
&lt;/p&gt;
&lt;p&gt;
	For dessert &lt;strong&gt;Alex Sorokoletov&lt;/strong&gt; presented his session &lt;a title="MIX 11 - an	eyewitness account" href="http://www.maxpaulousky.com/storage/20110530-the-first-public-meet-up-of-minsk-silverlight-windows-phone-group/Sorokoletov - MIX11.pptx" target="_blank"&gt;&lt;em&gt;MIX 11 - an eyewitness account&lt;/em&gt;&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
	&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px;&amp;#xD;&amp;#xA;		border-left-width: 0px" title="IMG_1717!" border="0" alt="IMG_1717!" src="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/TheFirstMeetupOfMinskSilverlightWindowsP_100E0/IMG_1717!_b937df89-274a-4662-860d-0831833239d3.jpg" width="615" height="411" /&gt;
	&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px;&amp;#xD;&amp;#xA;		border-left-width: 0px" title="IMG_1721!" border="0" alt="IMG_1721!" src="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/TheFirstMeetupOfMinskSilverlightWindowsP_100E0/IMG_1721!_aae229aa-ad31-4ce8-9888-7cff4b9a0b27.jpg" width="615" height="374" /&gt;
	&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px;&amp;#xD;&amp;#xA;		border-left-width: 0px" title="IMG_1719!" border="0" alt="IMG_1719!" src="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/TheFirstMeetupOfMinskSilverlightWindowsP_100E0/IMG_1719!_8fcc7b72-047d-42d2-8ac2-018eeb256a56.jpg" width="615" height="411" /&gt;
&lt;/p&gt;
&lt;p&gt;
	Also, we had a lot of behind-the-scenes talks with some tea, coffee, cookies and
	fun.&lt;/p&gt;
&lt;p&gt;
	&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px;&amp;#xD;&amp;#xA;		border-left-width: 0px" title="IMG_1710!" border="0" alt="IMG_1710!" src="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/TheFirstMeetupOfMinskSilverlightWindowsP_100E0/IMG_1710!_9b01cbed-72a8-428b-8a17-61223f8a9f8a.jpg" width="615" height="411" /&gt;
	&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px;&amp;#xD;&amp;#xA;		border-left-width: 0px" title="IMG_1711!" border="0" alt="IMG_1711!" src="http://www.maxpaulousky.com/blog/images/www_maxpaulousky_com/blog/WindowsLiveWriter/TheFirstMeetupOfMinskSilverlightWindowsP_100E0/IMG_1711!_44aa9572-53c8-433a-951e-43e7d3bbc220.jpg" width="615" height="411" /&gt;
&lt;/p&gt;
&lt;p&gt;
	Hope, soon I will be able to publish photos of my &lt;a title="Wp7 and TDD, BDD, Mocking" href="http://www.maxpaulousky.com/storage/20110530-the-first-public-meet-up-of-minsk-silverlight-windows-phone-group/Paulousky - wp7 TDD, BDD, mocking.pptx" target="_blank"&gt;session&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
	I would like to say thanks to Ciklum Minsk for a hall and catering, to it-job.by
	as a video partner and dev.by as an information partner.&lt;/p&gt;
&lt;p&gt;
	I got some feedback on twitter about the event and it was positive – people like
	it. That means, we will have more meet-ups and will present more sessions about
	Silverlight, &lt;a title="Windows phone official site" href="http://www.microsoft.com/windowsphone/en-us/default.aspx" target="_blank"&gt;Windows Phone&lt;/a&gt; and XNA&lt;/p&gt;
&lt;p&gt;
	Thank you everyone and see you next time!&lt;/p&gt;
&lt;p /&gt;
&lt;p /&gt;
&lt;p /&gt;
&lt;p /&gt;
&lt;p /&gt;
&lt;p /&gt;
&lt;p /&gt;
&lt;p /&gt;
&lt;p /&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px;&amp;#xD;&amp;#xA;	display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ef9683da-889c-4528-9075-22d77353a9e4" class="wlWriterEditableSmartContent"&gt;
	&lt;div class="page_navigation navigation paginate pagination"&gt;
	&lt;/div&gt;
	&lt;p class="post_meta"&gt;
		&lt;span&gt;Tagged: &lt;/span&gt;&lt;a href="http://www.maxpaulousky.com/blog/tags/User+Group/default.aspx" rel="tag" title="View all posts in User Group"&gt;User Group&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/Windows+Phone/default.aspx" rel="tag" title="View all posts in Windows Phone"&gt;Windows Phone&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/Silverlight/default.aspx" rel="tag" title="View all posts in Silverlight"&gt;Silverlight&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/XNA/default.aspx" rel="tag" title="View all posts in XNA"&gt;XNA&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/MIX/default.aspx" rel="tag" title="View all posts in MIX"&gt;MIX&lt;/a&gt;
	&lt;/p&gt;
&lt;/div&gt;
&lt;div class="wlWriterHeaderFooter" style="margin: 0px; padding: 0px 0px 0px 0px;"&gt;
	&lt;div class="post_license"&gt;
		This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;
			Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;img src="http://www.maxpaulousky.com/blog/aggbug/70.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Max Paulousky</dc:creator>
            <guid>http://www.maxpaulousky.com/blog/archive/2011/05/30/the-first-public-meet-up-of-minsk-silverlight-windows-phone-group.aspx</guid>
            <pubDate>Sun, 29 May 2011 21:46:11 GMT</pubDate>
            <comments>http://www.maxpaulousky.com/blog/archive/2011/05/30/the-first-public-meet-up-of-minsk-silverlight-windows-phone-group.aspx#feedback</comments>
            <wfw:commentRss>http://www.maxpaulousky.com/blog/comments/commentRss/70.aspx</wfw:commentRss>
            <trackback:ping>http://www.maxpaulousky.com/blog/services/trackbacks/70.aspx</trackback:ping>
        </item>
        <item>
            <title>Microsoft has updated Windows Phone articles on MSDN with 7.1 mango run-time update</title>
            <link>http://www.maxpaulousky.com/blog/archive/2011/05/24/microsoft-has-updated-windows-phone-articles-on-msdn-with-7.1.aspx</link>
            <description>&lt;p&gt;Today I mentioned on Twitter that MSDN has published updates for Windows Phone documentation.&lt;/p&gt; 
&lt;p&gt;It seems, the official name of a new Windows Phone version is Windows Phone 7.1&lt;/p&gt; 
&lt;p&gt;There are some useful links to new articles&lt;/p&gt; 

 &lt;ul&gt; 
   &lt;li&gt;&lt;a title="MSDN: What's New in Silverlight for Windows Phone" href="http://msdn.microsoft.com/en-us/library/hh237342(v=VS.96).aspx" target="_blank"&gt;What's New in Silverlight for Windows Phone&lt;/a&gt;&lt;/li&gt;    
   &lt;li&gt;&lt;a title="MSDN: New APIs in Silverlight for Windows Phone OS 7.1" href="http://msdn.microsoft.com/en-us/library/hh237343(v=VS.96).aspx" target="_blank"&gt;New APIs in Silverlight for Windows Phone OS 7.1&lt;/a&gt;&lt;/li&gt;    
   &lt;li&gt;&lt;a title="MSDN: Networking in Silverlight for Windows Phone" href="http://msdn.microsoft.com/en-us/library/ff637320(v=VS.96).aspx" target="_blank"&gt;Networking in Silverlight for Windows Phone&lt;/a&gt;&lt;/li&gt;    
   
 &lt;/ul&gt;

&lt;p&gt;Also, today should happen a &lt;a title="Microsoft to Lift the Curtain on Next Major Release of Windows Phone" href="http://www.microsoft.com/presspass/presskits/windowsphone/" target="_blank"&gt;Mango event&lt;/a&gt; where Microsoft will talk about the future of Windows Phone. Probably they will officially announce Mango update and some new Windows Phone devices.&lt;/p&gt; 
&lt;p&gt;Stay tuned!&lt;/p&gt; 
  
  
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0baef023-15e6-42aa-89fd-6ebe26dad939" class="wlWriterEditableSmartContent"&gt;&lt;div class="page_navigation navigation paginate pagination"&gt;     &lt;/div&gt;
 &lt;p class="post_meta"&gt;
 &lt;span&gt;Tagged: &lt;/span&gt;&lt;a href="http://www.maxpaulousky.com/blog/tags/Silverlight/default.aspx" rel="tag" title="View all posts in Silverlight"&gt;Silverlight&lt;/a&gt;, &lt;a href="http://www.maxpaulousky.com/blog/tags/Windows+Phone/default.aspx" rel="tag" title="View all posts in Windows Phone"&gt;Windows Phone&lt;/a&gt;
 &lt;/p&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;div class="post_license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.maxpaulousky.com/blog/aggbug/69.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Max Paulousky</dc:creator>
            <guid>http://www.maxpaulousky.com/blog/archive/2011/05/24/microsoft-has-updated-windows-phone-articles-on-msdn-with-7.1.aspx</guid>
            <pubDate>Tue, 24 May 2011 08:12:23 GMT</pubDate>
            <comments>http://www.maxpaulousky.com/blog/archive/2011/05/24/microsoft-has-updated-windows-phone-articles-on-msdn-with-7.1.aspx#feedback</comments>
            <wfw:commentRss>http://www.maxpaulousky.com/blog/comments/commentRss/69.aspx</wfw:commentRss>
            <trackback:ping>http://www.maxpaulousky.com/blog/services/trackbacks/69.aspx</trackback:ping>
        </item>
    </channel>
</rss>