{"id":239,"date":"2010-03-08T22:28:23","date_gmt":"2010-03-09T06:28:23","guid":{"rendered":"http:\/\/www.andreanolanusse.com\/en\/?p=239"},"modified":"2011-02-02T03:17:36","modified_gmt":"2011-02-02T11:17:36","slug":"using-linq-to-objetcs-in-delphi-prism","status":"publish","type":"post","link":"http:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/","title":{"rendered":"Using LINQ to Objetcs in Delphi Prism"},"content":{"rendered":"<p><a href=\"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-246\" title=\"Delphi Prism\" src=\"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism.png\" alt=\"\" width=\"175\" height=\"175\" srcset=\"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism.png 175w, http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism-48x48.png 48w, http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism-36x36.png 36w, http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism-120x120.png 120w, http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism-144x144.png 144w\" sizes=\"auto, (max-width: 175px) 100vw, 175px\" \/><\/a>During the last 10 year languages, frameworks and development platforms became better and better, we know many of this improvement, but in my opinion LINQ is one of the biggest innovations in the last 10 years.<\/p>\n<p>LINQ is a set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations. It extends all .NET Language like Delphi Prism with native language syntax for queries and provides class libraries to take advantage of these capabilities<\/p>\n<p>There are many ways to use LINQ, querying objects, XML and database, there are other implementations which allow you to query other artifacts.<\/p>\n<p>To start to understanding LINQ, I will exemplify the use of LINQ to Objects querying a list of objects.<\/p>\n<p>The source code used in this post is part of the Delphi Prism demos, folder Linq under Delphi Prism demos. I developed these samples and later we added to the product.<\/p>\n<p>The following example shows a simple query over an Array of String.<\/p>\n<pre class=\"brush: delphi\">type\r\n  Words = public class\r\n  private\r\n    words : Array of String := ['hello', 'Delphi Prism', 'wonderful', 'linq', 'beautiful', 'world' ];\r\n  public\r\n    method SimpleSelect;\r\n    method ComplexSelect;\r\n  end;<\/pre>\n<p>The following code shows the implementation for the methos SimpleSelect using LINQ to return a list of words whose length is less than or equal to five characters.<\/p>\n<pre class=\"brush: delphi\">implementation\r\n\r\nmethod Words.SimpleSelect;\r\nbegin\r\n  var shortwords := From word in words\r\n                    Where word.Length &lt;= 5\r\n                    Select word;\r\n\r\n  Console.WriteLine('Simple select statment');\r\n  Console.WriteLine;\r\n\r\n  for each word in shortwords do begin\r\n    Console.WriteLine(word);\r\n  end;\r\n\r\nend;<\/pre>\n<p>Let&#8217;s step by step on this code.<\/p>\n<li><strong>Vari\u00e1vel shortwords<\/strong> &#8211; represent a collection of strings, because in this case we represent each element of the collection as string.<\/li>\n<li><strong>From word<\/strong> &#8211; variable that represent each element selected in the Array de String<\/li>\n<li><strong>in words<\/strong> &#8211; collection where LINQ will interact, in the database world it will be our table<\/li>\n<li><strong>Where word.Length &lt;= 5<\/strong> &#8211; condition, filter all words with length less or equal 5, look we are using the variable word<\/li>\n<li><strong>Select word<\/strong> &#8211; represented each element of the collection returned<\/li>\n<pre class=\"brush: delphi\">  var shortwords := From word in words\r\n                    Where word.Length &lt;= 5\r\n                    Select word;\r\nend;<\/pre>\n<p>Using a simple for..each syntax you will be able to interact through the collection shortwords collection, see the code below.<\/p>\n<pre class=\"brush: delphi\">  for each word in shortwords do begin\r\n    Console.WriteLine(word);\r\n  end;<\/pre>\n<p>So far you ask about the capability to order, group by, etc. Simples answer, YES you can. The following example return the words grouped by length, ordered descending and returning a class and not more a string.<\/p>\n<pre class=\"brush: delphi\">  var groups := From word in words\r\n                Order by word asc\r\n                Group word by word.Length into lengthGroups\r\n                Order by lengthGroups.Key desc\r\n                select new class (Length:=lengthGroups.Key,Words:=lengthGroups);<\/pre>\n<p>We add the clause Order by and Group, where Key represents the string Length for each collection element.<\/p>\n<p>One of the most powerful feature is the ability to create dynamic classes using the syntax <strong>new class<\/strong>, beyond that we are using the lambda expression.<\/p>\n<p>Lambda expressions are a special type of expression that can be best thought of as mapping a set of one or more values to a result, using a function, sample below Length:=lengthGroups.Key .<\/p>\n<pre class=\"brush: delphi\">select new class (Length:=lengthGroups.Key,Words:=lengthGroups);<\/pre>\n<p>In case you need to interact through the group, just loop the variable groups, where the property Words represent the list of words for each group.<\/p>\n<pre class=\"brush: delphi\">  for each grupo in groups do begin\r\n    Console.WriteLine('Words of length ' + grupo.Length);\r\n    for each word in grupo.Words do\r\n      Console.WriteLine('   ' + word);\r\n  end;<\/pre>\n<p>Next post I will explain LINQ to XML, see you soon.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>During the last 10 year languages, frameworks and development platforms became better and better, we know many of this improvement, but in my opinion LINQ is one of the biggest innovations in the last 10 years. LINQ is a set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations. It [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":246,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_s2mail":"","footnotes":""},"categories":[29],"tags":[62,31],"class_list":["post-239","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-delphi-prism-net","tag-delphi-prism","tag-linq"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Using LINQ to Objetcs in Delphi Prism | Andreano Lanusse | Technology and Software Development<\/title>\n<meta name=\"description\" content=\"During the last 10 year languages, frameworks and development platforms became better and better, we know many of this improvement, but in my opinion LINQ\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using LINQ to Objetcs in Delphi Prism | Andreano Lanusse | Technology and Software Development\" \/>\n<meta property=\"og:description\" content=\"During the last 10 year languages, frameworks and development platforms became better and better, we know many of this improvement, but in my opinion LINQ\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/\" \/>\n<meta property=\"og:site_name\" content=\"Andreano Lanusse | Technology and Software Development\" \/>\n<meta property=\"article:published_time\" content=\"2010-03-09T06:28:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2011-02-02T11:17:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism.png\" \/>\n\t<meta property=\"og:image:width\" content=\"175\" \/>\n\t<meta property=\"og:image:height\" content=\"175\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Andreano Lanusse\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andreano Lanusse\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/\"},\"author\":{\"name\":\"Andreano Lanusse\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b\"},\"headline\":\"Using LINQ to Objetcs in Delphi Prism\",\"datePublished\":\"2010-03-09T06:28:23+00:00\",\"dateModified\":\"2011-02-02T11:17:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/\"},\"wordCount\":461,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b\"},\"image\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism.png\",\"keywords\":[\"Delphi Prism\",\"LINQ\"],\"articleSection\":[\"Delphi Prism (.NET)\"],\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/\",\"url\":\"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/\",\"name\":\"Using LINQ to Objetcs in Delphi Prism | Andreano Lanusse | Technology and Software Development\",\"isPartOf\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism.png\",\"datePublished\":\"2010-03-09T06:28:23+00:00\",\"dateModified\":\"2011-02-02T11:17:36+00:00\",\"description\":\"During the last 10 year languages, frameworks and development platforms became better and better, we know many of this improvement, but in my opinion LINQ\",\"breadcrumb\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/#primaryimage\",\"url\":\"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism.png\",\"contentUrl\":\"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism.png\",\"width\":175,\"height\":175},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.andreanolanusse.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using LINQ to Objetcs in Delphi Prism\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#website\",\"url\":\"https:\/\/www.andreanolanusse.com\/en\/\",\"name\":\"Andreano Lanusse | Technology and Software Development\",\"description\":\"Where Andreano Lanusse talk about technology, software development, programming techniques, databases, games and more through articles, tutorials and videos\",\"publisher\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.andreanolanusse.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b\",\"name\":\"Andreano Lanusse\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/49ab23ef70c249c0cb3469f14ef07edc?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/49ab23ef70c249c0cb3469f14ef07edc?s=96&d=mm&r=g\",\"caption\":\"Andreano Lanusse\"},\"logo\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/image\/\"},\"description\":\"Andreano Lanusse is an expert and enthusiastic on software development industry, at Embarcadero he is focused on helping to make sure the products being developed meet the expectations of Embarcadero's customers, as well as defining market strategies for Latin America. Today as Latin Lead Evangelist he spends great deal of time in developer conferences, tradeshows, user group, and visiting customers throughout Latin America. Before Embarcadero, he worked 13 years for Borland, Andreano has worked as Support Coordinator, Engineer, Product Manager, including Product Line Sales Manager, where was responsible to manage the relationship with Brazil developer community, also has worked as Principal Consultant for Borland Consulting Services on the development and management of critical applications. He previously served as Chief Architect for USS Solu\u00e7\u00f5es Gerenciadas (now USS Tempo). Andreano holds a bachelor's degree in Business Administration Marketing Emphasis from Sumare Institute, MBA in Project Management from FGV, certification in Microsoft products, all Borland ALM products, and all CodeGear product line.\",\"sameAs\":[\"http:\/\/www.andreanolanusse.com\",\"https:\/\/x.com\/andreanolanusse\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Using LINQ to Objetcs in Delphi Prism | Andreano Lanusse | Technology and Software Development","description":"During the last 10 year languages, frameworks and development platforms became better and better, we know many of this improvement, but in my opinion LINQ","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/","og_locale":"en_US","og_type":"article","og_title":"Using LINQ to Objetcs in Delphi Prism | Andreano Lanusse | Technology and Software Development","og_description":"During the last 10 year languages, frameworks and development platforms became better and better, we know many of this improvement, but in my opinion LINQ","og_url":"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/","og_site_name":"Andreano Lanusse | Technology and Software Development","article_published_time":"2010-03-09T06:28:23+00:00","article_modified_time":"2011-02-02T11:17:36+00:00","og_image":[{"width":175,"height":175,"url":"https:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism.png","type":"image\/png"}],"author":"Andreano Lanusse","twitter_misc":{"Written by":"Andreano Lanusse","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/#article","isPartOf":{"@id":"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/"},"author":{"name":"Andreano Lanusse","@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b"},"headline":"Using LINQ to Objetcs in Delphi Prism","datePublished":"2010-03-09T06:28:23+00:00","dateModified":"2011-02-02T11:17:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/"},"wordCount":461,"commentCount":2,"publisher":{"@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b"},"image":{"@id":"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/#primaryimage"},"thumbnailUrl":"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism.png","keywords":["Delphi Prism","LINQ"],"articleSection":["Delphi Prism (.NET)"],"inLanguage":"en","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/","url":"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/","name":"Using LINQ to Objetcs in Delphi Prism | Andreano Lanusse | Technology and Software Development","isPartOf":{"@id":"https:\/\/www.andreanolanusse.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/#primaryimage"},"image":{"@id":"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/#primaryimage"},"thumbnailUrl":"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism.png","datePublished":"2010-03-09T06:28:23+00:00","dateModified":"2011-02-02T11:17:36+00:00","description":"During the last 10 year languages, frameworks and development platforms became better and better, we know many of this improvement, but in my opinion LINQ","breadcrumb":{"@id":"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/"]}]},{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/#primaryimage","url":"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism.png","contentUrl":"http:\/\/www.andreanolanusse.com\/en\/wp-content\/uploads\/2010\/03\/Icon_DelphiPrism.png","width":175,"height":175},{"@type":"BreadcrumbList","@id":"https:\/\/www.andreanolanusse.com\/en\/using-linq-to-objetcs-in-delphi-prism\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.andreanolanusse.com\/en\/"},{"@type":"ListItem","position":2,"name":"Using LINQ to Objetcs in Delphi Prism"}]},{"@type":"WebSite","@id":"https:\/\/www.andreanolanusse.com\/en\/#website","url":"https:\/\/www.andreanolanusse.com\/en\/","name":"Andreano Lanusse | Technology and Software Development","description":"Where Andreano Lanusse talk about technology, software development, programming techniques, databases, games and more through articles, tutorials and videos","publisher":{"@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.andreanolanusse.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"},{"@type":["Person","Organization"],"@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b","name":"Andreano Lanusse","image":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/49ab23ef70c249c0cb3469f14ef07edc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/49ab23ef70c249c0cb3469f14ef07edc?s=96&d=mm&r=g","caption":"Andreano Lanusse"},"logo":{"@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/image\/"},"description":"Andreano Lanusse is an expert and enthusiastic on software development industry, at Embarcadero he is focused on helping to make sure the products being developed meet the expectations of Embarcadero's customers, as well as defining market strategies for Latin America. Today as Latin Lead Evangelist he spends great deal of time in developer conferences, tradeshows, user group, and visiting customers throughout Latin America. Before Embarcadero, he worked 13 years for Borland, Andreano has worked as Support Coordinator, Engineer, Product Manager, including Product Line Sales Manager, where was responsible to manage the relationship with Brazil developer community, also has worked as Principal Consultant for Borland Consulting Services on the development and management of critical applications. He previously served as Chief Architect for USS Solu\u00e7\u00f5es Gerenciadas (now USS Tempo). Andreano holds a bachelor's degree in Business Administration Marketing Emphasis from Sumare Institute, MBA in Project Management from FGV, certification in Microsoft products, all Borland ALM products, and all CodeGear product line.","sameAs":["http:\/\/www.andreanolanusse.com","https:\/\/x.com\/andreanolanusse"]}]}},"_links":{"self":[{"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/posts\/239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/comments?post=239"}],"version-history":[{"count":0,"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/posts\/239\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/media\/246"}],"wp:attachment":[{"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/media?parent=239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/categories?post=239"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/tags?post=239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}