title: Getting component fields without having to query the underlying XML
body: <p>Using the Core Service API, is there any way to retrieve the fields of a component without having to resort to querying the underlying XML or using a third party(?) wrapper class?</p>
  
  <p>It's fairly simple when using the TOM.NET API</p>
  
  <pre><code>Tridion.ContentManager.ContentManagement.Component component = [get a component];
  var componentFields = new Tridion.ContentManager.ContentManagement.Fields.ItemFields(component.Content, component.Schema);
  var summary = ((Tridion.ContentManager.ContentManagement.Fields.TextField)componentFields["summary"]).Value;
  </code></pre>
  
  <p>But when I start using the Core Service API it seems a little more complicated as there is no <code>Tridion.ContentManager.ContentManagement.Fields.ItemFields</code> class to wrap around the <code>component.Content</code>.</p>
  
  <p>I understand Frank van Puffelen has written a set of <a href="https://code.google.com/p/tridion-practice/wiki/ChangeContentOrMetadata" rel="nofollow">classes</a> to implement this wrapper functionality but I am a bit wary of using code that is not officially supported by SDL (or is it?).</p>
  
  <p>At the moment it seems to me the functionality to gracefully retrieve fields from a component using the Core Service API has not been fully implemented. I hope I will be proved wrong!</p>