<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Eduardo Dias</title><link>http://weblogs.asp.net:80/eduardodias/</link><description>Thoughts on Architecture, Methodologies, Domain Design and .NET Technologies.</description><item><title>Small Dependency Injection Framework with Lambda Expressions</title><link>http://weblogs.asp.net:80/eduardodias/small-dependency-injection-framework-with-lambda-expressions</link><description>&lt;p&gt;Hi everyone, I was evaluating some frameworks for Dependency Injection for a given project here in the company. Frameworks such as Ninject and Unity are very good, but four needs, to 'big'. So we came up with a more 'minimalist' solution.&lt;/p&gt;  &lt;p&gt;Based on the Service Locator pattern, we have create the following and quite small service registry:&lt;/p&gt;  &lt;pre class="brush: csharp"&gt;
public sealed class ServiceRegistry
{
    private static readonly Dictionary&amp;lt;Type, Func&amp;lt;Object&amp;gt;&amp;gt; Services = new Dictionary&amp;lt;Type, Func&amp;lt;object&amp;gt;&amp;gt;();

    public static T Resolve&amp;lt;T&amp;gt;() where T : class
    {
        var type = typeof (T);
        if (Services.ContainsKey(type))
            return Services[type]() as T;
        return default(T);
    }

    public static void Bind&amp;lt;T&amp;gt;(Func&amp;lt;T&amp;gt; expression) where T : class
    {
        var type = typeof (T);
        if (Services.ContainsKey(type))
            Services.Remove(type);
        Services.Add(type, expression);
    }
}
&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Using lambda expressions we can bind dynamic type resolvers for our interfaces with no problems and, if necessary, using runtime elements such as configuration parameters and session values.&lt;/p&gt;

&lt;p&gt;So, how we use it? It is very simple and straight forward, we just need to bind the types in our application initialization and when required ask for the registry to resolve it (please see the following example):&lt;/p&gt;

&lt;pre class="brush: csharp"&gt;
protected void Application_Start()
{
    //Simple type binding
    ServiceRegistry.Bind&amp;lt;IEmailService&amp;gt;(() = new SmtpEmailService());

    //'Complex' binding using environment variables
    ServiceRegistry.Bind&amp;lt;IIdentityVerifier&amp;gt;(() =&amp;gt; {
        var session = HttpContext.Current.Session;
        return new MockIdentityVerifier(session[&amp;quot;current-user&amp;quot;]);
    });
}
&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;The use would be as simple as:&lt;/p&gt;

&lt;pre class="brush: csharp"&gt;
//...
var identityVerifier = ServiceRegistry.Resolve&amp;lt;IIdentityVerifier&amp;gt;();
identityVerifier.Verify(user);
//...
&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;I hope you all enjoy! 
  &lt;br /&gt;

  &lt;br /&gt;

  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Thank you,&lt;/p&gt;

&lt;p&gt;Eduardo&lt;/p&gt;</description><pubDate>Mon, 10 Dec 2012 19:22:18 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/eduardodias/small-dependency-injection-framework-with-lambda-expressions</guid></item><item><title>Introducing Native Query Filters for Running Objects</title><link>http://weblogs.asp.net:80/eduardodias/introducing-native-query-filters-for-running-objects</link><description>&lt;p&gt;In my previous &lt;a title="Creating Multiple Queries for Running Objects" href="http://weblogs.asp.net/eduardodias/archive/2012/09/24/creating-multiple-queries-for-running-objects.aspx#.UMIa8oOjajI"&gt;&lt;strong&gt;post&lt;/strong&gt;&lt;/a&gt; we have discussed how to create queries and associate them to domain models. To create these queries, the developer can use &lt;strong&gt;Dynamic LINQ API&lt;/strong&gt; using string values parameters (as shown below)&lt;/p&gt;  &lt;p&gt;&lt;img alt="Regular Query" src="http://dl.dropbox.com/u/1625447/ro/screens/query-attribute-applying.png" /&gt;&lt;/p&gt;  &lt;p&gt;It is powerful and complete, but we still miss the power of the IntelliSense and the ability to compose an native query and after an good conversation with Noah Coad (&lt;a title="Noah Coad" href="https://twitter.com/noahcoad"&gt;@noahcoad&lt;/a&gt;), he asked me: &lt;i&gt;Eduardo, why you don't implement native LINQ instead of Dynamic LINQ?&lt;/i&gt;&lt;/p&gt;  &lt;blockquote&gt;&lt;/blockquote&gt;  &lt;p&gt;Well, we all know that, unfortunately, it's not possible to include lambda expressions to an Attribute. Considering this, I have implemented the native LINQ by using what I call &amp;quot;&lt;em&gt;type delegation&lt;/em&gt;&amp;quot;, where we just need to inform the type of the filter that it will be properly activated during the query execution. &lt;/p&gt;  &lt;p&gt;Now we can create even more powerful queries using native LINQ and with no restrictions:&lt;/p&gt;  &lt;p&gt;&lt;img alt="Native Query Filter" src="https://dl.dropbox.com/u/1625447/ro/screens/native-query-example.png" /&gt;&lt;/p&gt;  &lt;p&gt;I hope you enjoy it and feel free to give your feedback! :)&lt;/p&gt;  &lt;p&gt;See you!&lt;/p&gt;</description><pubDate>Fri, 07 Dec 2012 17:18:47 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/eduardodias/introducing-native-query-filters-for-running-objects</guid></item><item><title>Creating Multiple Queries for Running Objects</title><link>http://weblogs.asp.net:80/eduardodias/creating-multiple-queries-for-running-objects</link><description>&lt;p&gt;Running Objects combines the power of LINQ with Metadata definition to let you leverage multiples perspectives of your queries of objects. By default, RO brings all the objects in natural order of insertion and including all the visible properties of your class. In this post, we will understand how the &lt;em&gt;QueryAttribute&lt;/em&gt; class is structured and how to make use of it.&lt;/p&gt;  &lt;h2&gt;The &lt;em&gt;QueryAttribute&lt;/em&gt; class&lt;/h2&gt;  &lt;p&gt;This class is the responsible to specify all the possible perspectives of a list of objects. In other words, is using this attribute that you will be able to create different lists of the same class. &lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" src="http://dl.dropbox.com/u/1625447/ro/screens/query-attribute-structure.png" /&gt;&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="3" width="698"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="105"&gt;&lt;strong&gt;Property&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="592"&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="105"&gt;&lt;strong&gt;Id&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="592"&gt;A unique identifier associated to each Query, it is automatically generated in case of not being supplied.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="105"&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="592"&gt;The label to be used in the UI and that will be used to describe the query in the class metadata model. If not specified, its value will be “All Items”.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="105"&gt;&lt;strong&gt;Select&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="592"&gt;The list of properties being selected. The query will display properties in order of selection. Each property must be separated by a comma and with no spaces in between.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="105"&gt;&lt;strong&gt;Where&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="592"&gt;Use common LINQ expressions to specify the criteria for your query. Running Objects makes use of Dynamic LINQ API, so you can use keywords such as &lt;em&gt;it &lt;/em&gt;and also make use of regular parameters using the regular notation (@0, @1, @n).&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="105"&gt;&lt;strong&gt;OrderBy&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="592"&gt;The purpose of OrderBy is quite simple and straight forward, the only difference is that it contains a special notation (quite easy as well). You can specify multiple criteria of sorting separated by comma with no spaces. The order of sorting can be specified by the keywords &lt;em&gt;Asc&lt;/em&gt; and &lt;em&gt;Desc&lt;/em&gt; where you should have colon separating the property and direction (e.g.: &lt;em&gt;PropertyName:Asc &lt;/em&gt;).&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="105"&gt;&lt;strong&gt;Skip&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="592"&gt;The number of items to skip. &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="105"&gt;&lt;strong&gt;Take&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="592"&gt;The number of items to take.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="105"&gt;&lt;strong&gt;Includes&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="592"&gt;An array with the name of properties that should being loaded.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="105"&gt;&lt;strong&gt;Parameters&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="592"&gt;The values of parameters specified in the Where property.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="105"&gt;&lt;strong&gt;IsDefault&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="592"&gt;Mark as true to define as the default query of the class. If multiple queries are marked as default, Running Objects will bring the first of them.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="105"&gt;&lt;strong&gt;CacheDuration&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="592"&gt;Set the number of seconds you want to have this query being cached. Once its value is specified, the cache will automatically be activated.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="105"&gt;&lt;strong&gt;Paging&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="592"&gt;Mark as true to enable paging for the given query.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="105"&gt;&lt;strong&gt;PageSize&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="592"&gt;If you want to customize the number of items to be loaded, specify the value of PageSize property.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Using &lt;em&gt;QueryAttribute&lt;/em&gt;&lt;/h2&gt;  &lt;p&gt;Using the class Director from our Movie Database example (accessible here), we can see how beneficial it can be.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://dl.dropbox.com/u/1625447/ro/screens/query-attribute-applying.png" /&gt;&lt;/p&gt;  &lt;p&gt;This will result in two different filters in UI and also to be used by the RESTful service layer (we will discuss it later). The following images show the two queries being applied and rendered to the user.&lt;/p&gt;  &lt;h3&gt;All Items&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://dl.dropbox.com/u/1625447/ro/screens/query-attribute-all-items.png" rel="lightbox" target="_blank"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; border-top: 0px; border-right: 0px; padding-top: 0px" border="0" src="http://dl.dropbox.com/u/1625447/ro/screens/query-attribute-all-items.png" width="600" height="207" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;All With Movies&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://dl.dropbox.com/u/1625447/ro/screens/query-attribute-all-with-movies.png" rel="lightbox" target="_blank"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; border-top: 0px; border-right: 0px; padding-top: 0px" border="0" src="http://dl.dropbox.com/u/1625447/ro/screens/query-attribute-all-with-movies.png" width="600" height="189" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Conclusion&lt;/h2&gt;  &lt;p&gt;I hope now you can improve even more your Running Objects application. If you have questions and/or suggestions leave a comment.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Take care!&lt;/p&gt;  &lt;p&gt;Eduardo&lt;/p&gt;</description><pubDate>Mon, 24 Sep 2012 13:57:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/eduardodias/creating-multiple-queries-for-running-objects</guid><category>Agile</category><category>ASP.NET</category><category>ASP.NET MVC</category><category>C#</category><category>DDD</category><category>General Software Development</category><category>running objects</category></item><item><title>Running Objects – Associations and Relationships</title><link>http://weblogs.asp.net:80/eduardodias/running-objects-associations-and-relationships</link><description>&lt;p&gt;After the introduction to the Running Objects with the tutorial Movie Database in 2 Minutes (&lt;a href="http://runningobjects.azurewebsites.net/p/movie-database-in-2-minutes" target="_blank"&gt;available here&lt;/a&gt;), I would like to demonstrate how Running Objects interprets the Associations where we will cover:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Direct Association – A reference to another complex object. &lt;/li&gt;    &lt;li&gt;Aggregation – A collection of another complex object. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;For those coming with a database perspective, by demonstrating these associations we will also exemplify the underline relationships such as 1 to Many and Many to Many relationships.&lt;/p&gt;  &lt;p&gt;We will perform the following steps to accomplish our goal:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Creating the Application Project &lt;/li&gt;    &lt;li&gt;Modeling our Domain Models &lt;/li&gt;    &lt;li&gt;Implementing our Classes &lt;/li&gt;    &lt;li&gt;Running the Objects ;) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Creating the Application Project&lt;/h2&gt;  &lt;p&gt;As in the Movie Database tutorial, the first step is to create a ASP.NET MVC 3 project and then select the Running Objects template as shown in the images below:&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="0" width="787"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="508"&gt;&lt;strong&gt;Create a new ASP.NET MVC 3 Web Application&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="277"&gt;&lt;strong&gt;Select the Running Objects project template&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="507"&gt;&lt;a href="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-new-project-dialog.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" src="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-new-project-dialog.png" width="472" height="230" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="278"&gt;         &lt;p&gt;&lt;a href="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-new-project-dialog-ro-template.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 0px 0px 10px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" src="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-new-project-dialog-ro-template.png" width="250" height="225" /&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Modeling our Domain Models&lt;/h2&gt;  &lt;p&gt;Now that we have created the project we can start working in our model. To demonstrate how to use associations between classes with Running Objects we will create the class model as the following figure:&lt;/p&gt;  &lt;table style="align: center" border="0" cellspacing="0" cellpadding="0" width="500"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="498"&gt;         &lt;p align="left"&gt;&lt;strong&gt;Movie Database Class Model&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="498"&gt;&lt;a href="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-associations-diagram.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" border="0" src="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-associations-diagram.png" width="460" height="290" /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;We can see that we have an aggregation of Movies in Category and an aggregation of Categories in Movie, it represents our Many-to-Many relationship. In the other side, we have a 1 to Many relationship through a direct association from Movie to Director and we also have an aggregation of Movies in Director.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Implementing our Classes&lt;/h2&gt;  &lt;p&gt;Now that we have designed our model, we need to implement the classes. Lets take a look at the source code and see how it is implemented.&lt;/p&gt;  &lt;table style="align: center" border="0" cellspacing="0" cellpadding="0" width="787"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="242"&gt;         &lt;p align="left"&gt;&lt;strong&gt;Category&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="276"&gt;         &lt;p align="left"&gt;&lt;strong&gt;Director&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="267"&gt;         &lt;p align="left"&gt;&lt;strong&gt;Movie&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="255"&gt;&lt;a href="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-category-class.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" src="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-category-class.png" width="231" height="211" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="271"&gt;&lt;a href="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-director-class.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" src="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-director-class.png" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="263"&gt;&lt;a href="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-movie-class.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" src="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-movie-class.png" width="244" height="186" /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Basically this is what you need to develop to get the application running. But as we are using Entity Framework as our repository, we need to create the Data Context class for it. It is very simple and straight forward, we just need to tell Entity Framework about our model.&lt;/p&gt;  &lt;table style="align: center" border="0" cellspacing="0" cellpadding="0" width="365"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="363"&gt;         &lt;p align="left"&gt;&lt;strong&gt;Entity Framework Data Context&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="363"&gt;&lt;a href="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-data-context.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" src="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-data-context.png" width="340" height="192" /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Now that we have developed everything we need, what is next? How to configure Running Objects to understand this model?&lt;/p&gt;  &lt;p&gt;Well, we don’t need to do anything. The previous configuration from the tutorial &lt;a href="http://runningobjects.azurewebsites.net/p/movie-database-in-2-minutes" target="_blank"&gt;Movie Database in 2 Minutes&lt;/a&gt; is enough to make RO to understand our model. But for highlighting purposes, let see how is the configuration for our project.&lt;/p&gt;  &lt;table style="align: center" border="0" cellspacing="0" cellpadding="0" width="365"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="363"&gt;         &lt;p align="left"&gt;&lt;strong&gt;Running Objects Configuration&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="363"&gt;&lt;a href="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-ro-configuration.png" rel="lightbox" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" src="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-ro-configuration.png" /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Running the Objects &lt;/h2&gt;  &lt;p&gt;Now, we just need to run the application. In the first run it will create the database (Entity Framework does it automatically) and consequently take more time to run, after that everything will be fast and fine. &lt;/p&gt;  &lt;p&gt;The following screen demonstrate constructor of movie receiving a collection of Categories and one Director.&lt;/p&gt;  &lt;table style="align: center" border="0" cellspacing="0" cellpadding="0" width="365"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="363"&gt;         &lt;p align="left"&gt;&lt;strong&gt;New Movie using Associations&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="363"&gt;&lt;a href="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-new-movie-with-categories.png" rel="lightbox" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" src="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-new-movie-with-categories.png" width="351" height="294" /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;h3&gt;Download the Source&lt;/h3&gt;  &lt;p&gt;The source code of our application is available &lt;a href="http://dl.dropbox.com/u/1625447/ro/files/RO-MovieDatabase-Relationships.zip" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Conclusion&lt;/h2&gt;  &lt;p&gt;Running Objects handles associations naturally, it uses the principles of Object Orientation and the power of .NET reflection to instruct and understand our model. We will cover more topics in how to use RO in the next posts.&lt;/p&gt;  &lt;p&gt;See you!&lt;/p&gt;  &lt;p&gt;Eduardo&lt;/p&gt;</description><pubDate>Wed, 05 Sep 2012 19:24:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/eduardodias/running-objects-associations-and-relationships</guid></item><item><title>Movie Database in 2 Minutes with Running Objects</title><link>http://weblogs.asp.net:80/eduardodias/movie-database-in-2-minutes-with-running-objects</link><description>&lt;p&gt;Demonstrating how to use Running Objects, we have published a tutorial in how to create a Movie Database, like the one from Stephen Walther, in just 2 minutes. The tutorial demonstrate how to create the application end-to-end.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: gray 1px solid; border-left: gray 1px solid; border-top: gray 1px solid; border-right: gray 1px solid;width:98%;" src="http://dl.dropbox.com/u/1625447/ro/screens/movie-db-using-list.png" /&gt;&lt;/p&gt;  &lt;p&gt;You can access the tutorial in the following URL:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://runningobjects.azurewebsites.net/p/movie-database-in-2-minutes"&gt;http://runningobjects.azurewebsites.net/p/movie-database-in-2-minutes&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I hope you enjoy it!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Regards,&lt;/p&gt;  &lt;p&gt;Eduardo&lt;/p&gt;</description><pubDate>Fri, 31 Aug 2012 23:32:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/eduardodias/movie-database-in-2-minutes-with-running-objects</guid><category>Agile</category><category>ASP.NET MVC</category><category>C#</category><category>jQuery</category><category>running objects</category></item><item><title>Introduction to Running Objects</title><link>http://weblogs.asp.net:80/eduardodias/introduction-to-running-objects</link><description>&amp;#160; &lt;p&gt;In the last years, the fast and constant evolution of business requirements together with the high priority and short development schedule became the main problems for thousands of developers trying to tackle the challenge of deliver high quality applications in the shortest time possible. In the same time, we have several initiatives that try to support the development community and solve these problems. &lt;/p&gt;  &lt;p&gt;Methodologies such as Scrum for project management with its iterative delivery; development approaches such as Domain-Driven Design that suggests to focus on the domain and its logic; patterns such as Model-View-Controller that supports the development isolating areas such as presentation and domain logic, coordinating them through a control layer and Service Oriented Architecture that aids the integration design of applications through the exposure of services are essential elements to achieve the existing software development requirements. &lt;/p&gt;  &lt;p&gt;To fulfill these requirements and provide developers with a tool that supports the latest methodologies, patterns and architectures, enabling them to deliver the highest business value in the shortest time possible was born Running Objects. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;a href="http://dl.dropbox.com/u/1625447/Virb/screen-sample.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="" border="0" alt="Running Objects" align="right" src="http://dl.dropbox.com/u/1625447/Virb/screen-sample.png" width="297" height="172" /&gt;&lt;/a&gt;&lt;/h2&gt;  &lt;h1&gt;What is Running Objects?&lt;/h1&gt;  &lt;p&gt;Running Objects is a framework that allows you to use simple OO concepts, focus on your business domain and do not waste time with areas that are not relevant to your application. You will build better software, with less time and with no pain.&lt;/p&gt;  &lt;p&gt;It’s built on top of ASP.NET MVC using a refined mix of concepts such as Domain-Driven Design, Naked Objects, Object-Oriented UI and Design Patterns. Basically, everything that is necessary to let you aggregate the highest business value in the shortest time to your application.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;What can it do for you?&lt;/h1&gt;  &lt;h3&gt;&lt;a href="http://dl.dropbox.com/u/1625447/Virb/code-sample.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" align="right" src="http://dl.dropbox.com/u/1625447/Virb/code-sample.png" width="306" height="288" /&gt;&lt;/a&gt;&lt;/h3&gt;  &lt;h2&gt;Domain-Driven Development with Object-Oriented Modeling&lt;/h2&gt;  &lt;p&gt;Use the power of DDD and OO to develop your applications. Your OO design and model will be your application. You don't need to worry with developing Data Access Components and/or User Interface code. Keep the focus in your business requirements.&lt;/p&gt;  &lt;h2&gt;Test-Driven Development with ease&lt;/h2&gt;  &lt;p&gt;Making use of OO concepts, Running Objects let you create a clean code, ready for unit testing. You can ask &amp;quot;But do I need to do something else to create the unit tests”, we will answer &amp;quot;Yes, the unit tests”.&lt;/p&gt;  &lt;h2&gt;Automatic RESTful service generation&lt;/h2&gt;  &lt;p&gt;Expose your objects as REST services automatically. Running Objects follows the HATEOAS (Hypermedia as the Engine of Application State) REST constraint to generate the RESTful service layer of your objects.&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://dl.dropbox.com/u/1625447/Virb/running-objects-configuration.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" align="left" src="http://dl.dropbox.com/u/1625447/Virb/running-objects-configuration.png" width="278" height="159" /&gt;&lt;/a&gt;&lt;/h3&gt;  &lt;h2&gt;Fluent Security Configuration&lt;/h2&gt;  &lt;p&gt;No more hassles configuring security of your application. Use the code based configuration to create high-coherent security settings. You will never have an out of date security configuration again!&lt;/p&gt;  &lt;h2&gt;Extensible User Interface&lt;/h2&gt;  &lt;p&gt;Running Objects provides a default set of views that automatically generates the user interface based on your objects. But if you want to customize them, feel free to take the control and create your own views, templates and mix them all!&lt;/p&gt;  &lt;h2&gt;Transparent Persistence&lt;/h2&gt;  &lt;p&gt;Using the Repository Pattern, Running Objects let you use the persistence you want! It has an Entity Framework Repository ready to use, so if you are using Entity Framework, it will be just 1 line of configuration to use it!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;What are the next steps?&lt;/h1&gt;  &lt;p&gt;For more information about the Running Objects, please check it out the official website at &lt;a href="http://runningobjects.com"&gt;http://runningobjects.com&lt;/a&gt;, take a look at the get started tutorial and download it! We are currently working in more blog posts, webcasts and tutorials, so stay tuned!&lt;/p&gt;</description><pubDate>Tue, 31 Jul 2012 19:50:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/eduardodias/introduction-to-running-objects</guid></item></channel></rss>