<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" 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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
  <id>http://www.entrancesoftware.com/blog/</id>
  <title>Custom Software</title>
  <updated>2009-10-02T09:20:11+00:00</updated>
  <link href="http://www.entrancesoftware.com/blog/" />
  
  <subtitle>The art, science and business of Custom Software Development and Software Consulting</subtitle>
  <author>
    <name>Entrance Software</name>
  </author>
  <generator uri="http://dotnetblogengine.net/" version="1.0.0.0">BlogEngine.Net Syndication Generator</generator>
  <blogChannel:blogRoll>http://www.entrancesoftware.com/blog/opml.axd</blogChannel:blogRoll>
  <dc:creator>Entrance Software</dc:creator>
  <dc:description>The art, science and business of Custom Software Development and Software Consulting</dc:description>
  <dc:language>en-US</dc:language>
  <dc:title>Custom Software</dc:title>
  <geo:lat>29.756930</geo:lat>
  <geo:long>-95.364910</geo:long>
  <link rel="self" href="http://feeds.feedburner.com/CustomSoftware" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
    <id>http://www.entrancesoftware.com/blog/post/Entrance-Software-attends-Houston-TechFest-2009.aspx</id>
    <title>Entrance Software attends Houston TechFest 2009</title>
    <updated>2009-10-02T09:20:11+00:00</updated>
    <link rel="self" href="http://www.entrancesoftware.com/blog/post.aspx?id=15561ac9-c948-4ff0-bd46-4c624fd4566b" />
    <link href="http://feedproxy.google.com/~r/CustomSoftware/~3/FyJ1z5EzhN4/Entrance-Software-attends-Houston-TechFest-2009.aspx" />
    <author>
      <name>Jim O'Brien</name>
    </author>
    <summary type="html">&lt;p&gt;On September 26th, Entrance Software attended the &lt;a href="http://www.houstontechfest.com/dotnetnuke/default.aspx"&gt;Houston TechFest 2009&lt;/a&gt; event. Despite taking place on a Saturday, some 850+ tech-hungry participants met at the University of Houston campus to learn more about diverse topics such as understanding the SharePoint object model, Windows 7 for developers and Windows Workflow Foundation 3.5.&lt;/p&gt;  &lt;p&gt;The keynote presentation by Sam Gazitt, a product manager in Microsoft's Developer Tools Group, was a special treat as it is rare to see such a figure from Redmond in Houston. He previewed some of the significant new features coming in &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx"&gt;Visual Studio 2010&lt;/a&gt; and Team System including the historical debugger, gated check-in and branch visualization.&lt;/p&gt;  &lt;p&gt;The presentation on &lt;a href="http://msdn.microsoft.com/en-us/netframework/aa663328.aspx"&gt;Windows Workflow Foundation 3.5&lt;/a&gt;, presented by Ryan Andrus, was particularly insightful. Ryan gave an overview of how WWF 3.5 works, including the significant amount of instrumentation required to use it as well as the notable lack of any built-in support for versioning of workflows. Ryan also pointed out the perception among businesspeople that WWF allows them to design workflows themselves via a graphical user interface and how this is a misperception because implementing WWF is still &amp;quot;writing code.&amp;quot; Additionally, Ryan mentioned that State Machine workflows will not be supported in the 4.0 version of Windows Workflow Foundation.&lt;/p&gt;  &lt;p&gt;During the breakout sessions over lunch, members of the local Houston SharePoint users' group met to discuss the SharePoint-focused sessions that morning. Eric O'Connor's presentation on preparing organizations for &lt;a href="http://www.entrancesoftware.com/services/sharepoint-consulting.html"&gt;SharePoint&lt;/a&gt; received very high marks.&lt;/p&gt;  &lt;p&gt;Houston TechFest 2009 was a resounding success and has set a high bar for 2010's event to beat.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CustomSoftware/~4/FyJ1z5EzhN4" height="1" width="1"/&gt;</summary>
    <published>2009-10-02T09:20:11+00:00</published>
    <link rel="related" href="http://www.entrancesoftware.com/blog/post/Entrance-Software-attends-Houston-TechFest-2009.aspx#comment" />
    <dc:publisher>Jim O'Brien</dc:publisher>
    <pingback:server>http://www.entrancesoftware.com/blog/pingback.axd</pingback:server>
    <pingback:target>http://www.entrancesoftware.com/blog/post.aspx?id=15561ac9-c948-4ff0-bd46-4c624fd4566b</pingback:target>
    <slash:comments>0</slash:comments>
    <trackback:ping>http://www.entrancesoftware.com/blog/trackback.axd?id=15561ac9-c948-4ff0-bd46-4c624fd4566b</trackback:ping>
    <wfw:comment>http://www.entrancesoftware.com/blog/post/Entrance-Software-attends-Houston-TechFest-2009.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.entrancesoftware.com/blog/syndication.axd?post=15561ac9-c948-4ff0-bd46-4c624fd4566b</wfw:commentRss>
  <feedburner:origLink>http://www.entrancesoftware.com/blog/post/Entrance-Software-attends-Houston-TechFest-2009.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.entrancesoftware.com/blog/post/About-Microsoft-Silverlight.aspx</id>
    <title>About Microsoft Silverlight</title>
    <updated>2009-07-14T14:06:00+00:00</updated>
    <link rel="self" href="http://www.entrancesoftware.com/blog/post.aspx?id=ba9ec62b-a98f-4017-a5b8-e44dcaa5df0e" />
    <link href="http://feedproxy.google.com/~r/CustomSoftware/~3/vIH-GXIlMkM/About-Microsoft-Silverlight.aspx" />
    <author>
      <name>Carlos Salaverria</name>
    </author>
    <summary type="html">&lt;p&gt;
This article was written based on a presentation given by &lt;a href="http://www.entrancesoftware.com/software-consultants/brad-harris.html"&gt;Brad Harris&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
Silverlight is a Rich Internet Application framework developed by Microsoft. Like other RIA frameworks such as Adobe Flash, it enables developers to create applications that have a consistent appearance and functionality across different web browsers and operating systems. Silverlight provides users with a rich experience, with built-in support for vector graphics, animation, and audio and video playback. 
&lt;/p&gt;
&lt;p&gt;
Although Silverlight is still a relatively new technology, it has already been used for live streaming of high-profile events such as the 2008 Beijing Olympics and the 2009 Presidential Inauguration. It is also being used by major sports organizations to broadcast live content. 
&lt;/p&gt;
&lt;p&gt;
To run Silverlight applications, users must install a browser plug-in, which provides a runtime environment that implements a subset of the .NET Framework. Currently, Silverlight is available on Internet Explorer, Firefox, and Google Chrome for Microsoft Windows and on Safari and Firefox for Mac OS X. 
&lt;/p&gt;
&lt;p&gt;
To start building Silverlight applications, developers need to install Silverlight Tools for Visual Studio 2008 SP1. This add-on is available for download from the official Microsoft Silverlight website: &lt;a href="http://silverlight.net"&gt;http://silverlight.net&lt;/a&gt;. It is compatible with both Visual Studio 2008 and Visual Web Developer 2008 Express. 
&lt;/p&gt;
&lt;p&gt;
The development experience is similar to &lt;a href="http://www.entrancesoftware.com/technologies/ASP-NET.html"&gt;ASP.NET&lt;/a&gt; &amp;ndash; applications are implemented using markup and code-behind. One significant difference is the markup language. Instead of HTML, Silverlight uses a UI definition language known as XAML (eXtensible Application Markup Language). Although there are graphical tools such as Expression Blend that make it easier for designers to produce XAML code, many developers prefer to write XAML by hand. Regardless of the design tool used, learning XAML is essential for developing Silverlight applications. 
&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/CustomSoftware/~4/vIH-GXIlMkM" height="1" width="1"/&gt;</summary>
    <published>2009-07-14T14:06:00+00:00</published>
    <link rel="related" href="http://www.entrancesoftware.com/blog/post/About-Microsoft-Silverlight.aspx#comment" />
    <category term="Software Development" />
    <dc:publisher>Carlos Salaverria</dc:publisher>
    <dc:description>Silverlight, like other RIA frameworks such as Adobe Flash, enables developers to create applications that have a consistent appearance and functionality across different web browsers and operating systems.</dc:description>
    <pingback:server>http://www.entrancesoftware.com/blog/pingback.axd</pingback:server>
    <pingback:target>http://www.entrancesoftware.com/blog/post.aspx?id=ba9ec62b-a98f-4017-a5b8-e44dcaa5df0e</pingback:target>
    <slash:comments>0</slash:comments>
    <trackback:ping>http://www.entrancesoftware.com/blog/trackback.axd?id=ba9ec62b-a98f-4017-a5b8-e44dcaa5df0e</trackback:ping>
    <wfw:comment>http://www.entrancesoftware.com/blog/post/About-Microsoft-Silverlight.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.entrancesoftware.com/blog/syndication.axd?post=ba9ec62b-a98f-4017-a5b8-e44dcaa5df0e</wfw:commentRss>
  <feedburner:origLink>http://www.entrancesoftware.com/blog/post/About-Microsoft-Silverlight.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.entrancesoftware.com/blog/post/How-To-Manage-Database-Development-More-Efficiently.aspx</id>
    <title>How To Manage Database Development More Efficiently</title>
    <updated>2009-06-08T12:18:00+00:00</updated>
    <link rel="self" href="http://www.entrancesoftware.com/blog/post.aspx?id=c6690d99-098c-4dfb-ab80-2540d5e8fd93" />
    <link href="http://feedproxy.google.com/~r/CustomSoftware/~3/OIsHdrDULWI/How-To-Manage-Database-Development-More-Efficiently.aspx" />
    <author>
      <name>Brad Harris</name>
    </author>
    <summary type="html">&lt;p&gt;
This article was written based on a presentation given by &lt;a href="http://www.entrancesoftware.com/software-consultants/eric-carlson.html"&gt;Eric Carlson&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
VS Team System 2008 Database Edition GDR is a component of the Visual Studio Team System suite of tools. It was formerly known as &amp;ldquo;DB Pro&amp;rdquo;. As the General Distribution Release, it is a post-service pack 1 release. It incorporates several of the features slated for Visual Studio 2010 &amp;ldquo;Rosario&amp;rdquo;. It also has SQL Server 2008 support. 
&lt;/p&gt;
&lt;p&gt;
Some of the key features of this Team System release are listed below: 
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;&lt;strong&gt;T-SQL Editor&lt;/strong&gt; &lt;br /&gt;
	The T-SQL Editor support ad hoc queries within Visual Studio without having to rely on SQL Management Studio (finally!). Also like Management Studio, Team System 2008 Database Edition supports client statistics, results as text and results as file. Unfortunately there is no Intellisense for SQL Server 2008 built in. &lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Database Projects&lt;/strong&gt; &lt;br /&gt;
	This tool supports off-line schema development in a file format denoted by *.dbschema files. Being able to develop against non-live files is a huge advantage for shared database development. Version control is also supported to capture schema changes as they are developed. Within the Database Projects, compile-time schema validation and static code analysis are presented as warnings. Refactoring and deployment is also made easier by the Database Project tools. &lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Server Projects&lt;/strong&gt; &lt;br /&gt;
	Server Projects model both shared and server-level objects. This enables a team to define a standard configuration for their SQL servers and reference it within their Database Projects. &lt;/li&gt;&lt;br /&gt;
	&lt;br /&gt;
	 
	&lt;li&gt;&lt;strong&gt;Schema Compare&lt;/strong&gt; &lt;br /&gt;
	While it&amp;#39;s nice to have an integrated schema compare feature, we&amp;#39;ve found that the Red Gate SQL Compare tool is a better product. One big advantage of VS Team System 2008 Database Edition, though, is that you can compare against the *.dbschema files created in Database Projects. &lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Data Compare&lt;/strong&gt; &lt;br /&gt;
	Again, the Data Compare utility is not as robust or feature-rich as RedGate&amp;#39;s SQL Data Compare. That said, it is still useful to have this utility integrated within Visual Studio for simple data comparison. &lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Data Generation Plan&lt;/strong&gt; &lt;br /&gt;
	The Data Generation Plan tool is very powerful for quickly populating an empty schema with valid data for testing purposes. The generator supports filling all primitive types with random data, including int, float, bit, datetime, string and more. It will handle foreign key constraints. The tool allows for regular expression data generation as well as sequential data binding. In terms of populating an entire table, the Data Generation Plan allows the user to specify a distribution for numbers or dates (uniform, exponential, etc.). The user can specify the percentage of null values, the starting seed as well as fields that should be generated as unique. &lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Database Unit Testing&lt;/strong&gt; &lt;br /&gt;
	The Database Unit Testing module allows for a number of predefined test conditions. Some of these include empty result sets, execution time, non-empty result sets, row count or scalar values. Custom test conditions are also possible, such as &amp;ldquo;number of columns expected&amp;rdquo;. This tool will also facilitate automatic generation of test script stubs. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
In conclusion, Visual Studio Team System 2008 Database Edition GDR provides a great deal of helpful tools to aide developers in database creation, comparing, populating and testing. This Team System package is a must-have for any SQL developer. 
&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/CustomSoftware/~4/OIsHdrDULWI" height="1" width="1"/&gt;</summary>
    <published>2009-06-08T12:18:00+00:00</published>
    <link rel="related" href="http://www.entrancesoftware.com/blog/post/How-To-Manage-Database-Development-More-Efficiently.aspx#comment" />
    <category term="Software Development" />
    <dc:publisher>Brad Harris</dc:publisher>
    <dc:description>Visual Studio Team System 2008 Database Edition GDR provides a great deal of helpful tools to aide developers in database creation, comparing, populating and testing.</dc:description>
    <pingback:server>http://www.entrancesoftware.com/blog/pingback.axd</pingback:server>
    <pingback:target>http://www.entrancesoftware.com/blog/post.aspx?id=c6690d99-098c-4dfb-ab80-2540d5e8fd93</pingback:target>
    <slash:comments>2</slash:comments>
    <trackback:ping>http://www.entrancesoftware.com/blog/trackback.axd?id=c6690d99-098c-4dfb-ab80-2540d5e8fd93</trackback:ping>
    <wfw:comment>http://www.entrancesoftware.com/blog/post/How-To-Manage-Database-Development-More-Efficiently.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.entrancesoftware.com/blog/syndication.axd?post=c6690d99-098c-4dfb-ab80-2540d5e8fd93</wfw:commentRss>
  <feedburner:origLink>http://www.entrancesoftware.com/blog/post/How-To-Manage-Database-Development-More-Efficiently.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.entrancesoftware.com/blog/post/Test-Driven-Development-in-NET.aspx</id>
    <title>Test Driven Development in .NET</title>
    <updated>2009-05-18T13:22:00+00:00</updated>
    <link rel="self" href="http://www.entrancesoftware.com/blog/post.aspx?id=1dcfeb0b-5e98-40a5-b6b5-4ca60442e730" />
    <link href="http://feedproxy.google.com/~r/CustomSoftware/~3/pTLBU3mWLyY/Test-Driven-Development-in-NET.aspx" />
    <author>
      <name>Eric Carlson</name>
    </author>
    <summary type="html">&lt;p&gt;
This article was written based on a presentation given by &lt;a href="http://www.entrancesoftware.com/software-consultants/aristo-setiawan.html"&gt;Aristo Setiawan&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
Test-driven development is a development pattern which is characterized by the use of pre-written test cases which are continuously validated via an iterative, incremental development process. 
&lt;/p&gt;
&lt;p&gt;
The basic process is: 
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Write the test.&lt;/li&gt;
	&lt;li&gt;Write the code which is tested by the test from step 1.&lt;/li&gt;
	&lt;li&gt;Validate that the new test and all previously implemented tests run successfully.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
The process is repeated for each test until the code is fully implemented. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Benefits of test-driven development include:&lt;/strong&gt; 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Forces simplicity in the code by breaking down complex tasks into individual subtasks.&lt;/li&gt;
	&lt;li&gt;Ensures that the developer understands the intent of the code before writing it.&lt;/li&gt;
	&lt;li&gt;Allows defects to be detected early in the development lifecycle.&lt;/li&gt;
	&lt;li&gt;Prevents regression by identifying breaking changes prior to release of new versions of the code.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
It is important for buyers of software to understand that a solution developed with automated testing (whether or not it is a result of test-driven development or build-then-test development) will have a higher up-front cost. However, automated testing can be expected to pay for itself over the total software asset lifecycle through reduced occurrence of bugs and the limiting of regression. 
&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/CustomSoftware/~4/pTLBU3mWLyY" height="1" width="1"/&gt;</summary>
    <published>2009-05-18T13:22:00+00:00</published>
    <link rel="related" href="http://www.entrancesoftware.com/blog/post/Test-Driven-Development-in-NET.aspx#comment" />
    <category term="Software Development" />
    <dc:publisher>Eric Carlson</dc:publisher>
    <dc:description>Test-driven development is a development pattern which is characterized by the use of pre-written test cases which are continuously validated via an iterative, incremental development process.</dc:description>
    <pingback:server>http://www.entrancesoftware.com/blog/pingback.axd</pingback:server>
    <pingback:target>http://www.entrancesoftware.com/blog/post.aspx?id=1dcfeb0b-5e98-40a5-b6b5-4ca60442e730</pingback:target>
    <slash:comments>1</slash:comments>
    <trackback:ping>http://www.entrancesoftware.com/blog/trackback.axd?id=1dcfeb0b-5e98-40a5-b6b5-4ca60442e730</trackback:ping>
    <wfw:comment>http://www.entrancesoftware.com/blog/post/Test-Driven-Development-in-NET.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.entrancesoftware.com/blog/syndication.axd?post=1dcfeb0b-5e98-40a5-b6b5-4ca60442e730</wfw:commentRss>
  <feedburner:origLink>http://www.entrancesoftware.com/blog/post/Test-Driven-Development-in-NET.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.entrancesoftware.com/blog/post/Why-use-Linq-instead-of-SQL.aspx</id>
    <title>Why use Linq instead of SQL?</title>
    <updated>2009-04-03T14:49:00+00:00</updated>
    <link rel="self" href="http://www.entrancesoftware.com/blog/post.aspx?id=7a9e56d2-e9f4-4c78-a0ef-57eb283a998e" />
    <link href="http://feedproxy.google.com/~r/CustomSoftware/~3/RYwOuOQ60cA/Why-use-Linq-instead-of-SQL.aspx" />
    <author>
      <name>Tim Bussmann</name>
    </author>
    <summary type="html">&lt;p&gt;To give you an idea of what Linq looks like, and how it compares to SQL code, below are some very simple queries in both SQL and Linq. This assumes a Customer table with columns ID and Name:&amp;#160; &lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="344" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width="155"&gt;SQL&lt;/td&gt;        &lt;td width="187"&gt;Linq&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="155"&gt;SELECT UPPER (c.Name)          &lt;br /&gt;FROM Customer AS c           &lt;br /&gt;WHERE c.Name LIKE '%a%'           &lt;br /&gt;ORDER BY LEN(c.Name) &lt;/td&gt;        &lt;td width="187"&gt;from c in Customers          &lt;br /&gt;where c.Name.Contains (&amp;quot;a&amp;quot;)           &lt;br /&gt;orderby c.Name.Length           &lt;br /&gt;select c.Name.ToUpper () &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;strong&gt;Strongly Typed Queries&lt;/strong&gt;     &lt;br /&gt;Linq queries are all strongly typed since classes are autogenerated to match your database schema. As a result, you also get intellisense all the way through composing a query. For example, in the above query, after typing &amp;quot;c.&amp;quot; you would get an intellisense popup showing the properties of the Customer class, just like regular coding in Visual Studio. This also means that if you change the name of a table or column in the database, you no longer have to hunt through all your stored procedures to change references to the old name, instead you can just follow the trail of build errors in your code. You can even be tricky by doing name refactor from the old name to the new name before updating the schema. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Automatic Joins on Foreign Key Columns&lt;/strong&gt;     &lt;br /&gt;The benefit of strong typing is taken one step further by automatic joins on foreign key references. This can best be demonstrated with an example. Now, in addition to a Customer table with columns ID and Name, we'll use a Purchase table with columns ID, Description, and (foreign key) CustomerID: &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;Simple Join Query&lt;/td&gt;        &lt;td&gt;Result&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;         &lt;br /&gt;SELECT c.NAME + 'got a' + p.Description           &lt;br /&gt;FROM Customer AS c           &lt;br /&gt;INNER JOIN Purchase AS p ON c.ID = p.CustomerID           &lt;br /&gt;          &lt;br /&gt;&lt;/td&gt;        &lt;td rowspan="2"&gt;Column1          &lt;br /&gt;John got a Truck           &lt;br /&gt;John got a Ball           &lt;br /&gt;Mike got a Truck           &lt;br /&gt;Mike got a Dog           &lt;br /&gt;Joe got a Cat           &lt;br /&gt;Sally got a Purse           &lt;br /&gt;Sally got a Dress           &lt;br /&gt;Sally got a Wagon &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;         &lt;br /&gt;from c in Customers           &lt;br /&gt;join p in Purchases on c.ID equals p.CustomerID           &lt;br /&gt;select c.Name + &amp;quot; got a &amp;quot; + p.Description           &lt;br /&gt;// Eliminate the join by using FK reference property:           &lt;br /&gt;from p in Purchases           &lt;br /&gt;select p.Customer.Name + &amp;quot; got a &amp;quot; + p.Description           &lt;br /&gt;          &lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Foreign key reference properties are also generated automatically in the other direction. So, you could get a list of all the Purchase descriptions associated with a Customer object customer using the following expression: customer.Purchases.Select (p =&amp;gt; p.Description).ToList () &lt;/p&gt;  &lt;p&gt;The above expression uses the Linq extension method query style, instead of the special query syntax. The two query styles are functionally equivalent, and in fact the complier first translates query syntax into extension method calls before compiling the code. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;No More CRUD!&lt;/strong&gt;     &lt;br /&gt;In the previous examples, the amount of code needed to perform queries in SQL versus Linq doesn't look so bad, but of course you can't just type that SQL code into your C# file, you have to generate a bunch of CRUD first. Then you have to use a bunch of adapter code just to get at the data. Linq queries can be immediately inserted into your code, no questions asked. But so far, we've only covered selects - what about inserts, updates, and deletes? Glad you asked, but in order to answer this, I need to introduce the DataContext class, since you need a sense of context in order to keep track of state. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CustomSoftware/~4/RYwOuOQ60cA" height="1" width="1"/&gt;</summary>
    <published>2009-04-03T14:49:00+00:00</published>
    <link rel="related" href="http://www.entrancesoftware.com/blog/post/Why-use-Linq-instead-of-SQL.aspx#comment" />
    <category term="Software Development" />
    <dc:publisher>Tim Bussmann</dc:publisher>
    <dc:description>Three reasons to use Linq instead of SQL are strongly typed queries, automatic joins on foreign key columns and no more CRUD!</dc:description>
    <pingback:server>http://www.entrancesoftware.com/blog/pingback.axd</pingback:server>
    <pingback:target>http://www.entrancesoftware.com/blog/post.aspx?id=7a9e56d2-e9f4-4c78-a0ef-57eb283a998e</pingback:target>
    <slash:comments>3</slash:comments>
    <trackback:ping>http://www.entrancesoftware.com/blog/trackback.axd?id=7a9e56d2-e9f4-4c78-a0ef-57eb283a998e</trackback:ping>
    <wfw:comment>http://www.entrancesoftware.com/blog/post/Why-use-Linq-instead-of-SQL.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.entrancesoftware.com/blog/syndication.axd?post=7a9e56d2-e9f4-4c78-a0ef-57eb283a998e</wfw:commentRss>
  <feedburner:origLink>http://www.entrancesoftware.com/blog/post/Why-use-Linq-instead-of-SQL.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.entrancesoftware.com/blog/post/Resume-Tips.aspx</id>
    <title>Resume Tips</title>
    <updated>2009-02-11T13:47:00+00:00</updated>
    <link rel="self" href="http://www.entrancesoftware.com/blog/post.aspx?id=20ace306-9a7b-4c4f-bb38-44048bc16551" />
    <link href="http://feedproxy.google.com/~r/CustomSoftware/~3/3CRAihmFi1U/Resume-Tips.aspx" />
    <author>
      <name>Eric Carlson</name>
    </author>
    <summary type="html">&lt;p&gt;
I want to share some resume writing tips. These are all based on actual things I have personally seen in resumes that I&amp;#39;ve reviewed for software developer positions. However, almost all of these tips are generally applicable to anyone writing a resume. 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;div&gt;
	Proofread for spelling and grammar, especially if English is not your primary language. When I see spelling and grammar mistakes I want to stop reading and throw the resume away. If you have these mistakes, you are digging yourself a hole and the rest of your resume has to be good enough for me to overlook these errors. If you are not adept at spelling and grammar, then find someone else to proofread your resume. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Be specific and avoid using vague words such as &amp;quot;like&amp;quot; and &amp;quot;something.&amp;quot; It is one thing to say you have a skill but it&amp;#39;s completely different to describe how you have used a skill. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Use a cover letter. Most people don&amp;#39;t use a cover letter so by doing so you are already setting yourself apart from everyone else. The only exception to this is if you are responding to a job advertisement that specifically requested that you not include a cover letter. 
	&lt;/div&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;div&gt;
	Don&amp;#39;t use a generic cover letter. Generic cover letters are obvious and a waste of time. The point of a cover letter is to sell yourself and get me excited about reading your resume. The cover letter should call out specific details in your resume that are particularly relevant to the job for which you are applying. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Be clear and concise. In general, try to format your resume so that it can easily be scanned (by a human). As a practical matter I&amp;#39;m not going to actually read every word on a resume so make it easy for me to glean the highlights. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Modify your resume to be specific for the job for which you are applying. This is an extension of my point about being &amp;quot;clear and concise.&amp;quot; If you take a few minutes to specifically tailor your resume to the job for which you are applying, it can make you appear more qualified than a similar candidate with a &amp;quot;generic&amp;quot; resume. The easiest way to tailor a resume is to change the &amp;quot;objective&amp;quot; section to be consistent with the position for which you are applying. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Do not give any reasons for you to be excluded. What I mean by this is that, in general, almost every resume that I read for a given job is at least somewhat qualified for the job. (Otherwise, why would you submit the resume in the first place?) Because of this, when I&amp;#39;m scanning through a stack of resumes I&amp;#39;m basically looking for reasons to discard your resume in the first pass. Following my resume tips will decrease your chance of being discarded in the first pass, assuming you are otherwise reasonably qualified for the position. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	In general, remember that you want to stand out from all the other resumes. A typical job advertisement will result in dozens (if not many more) resumes being submitted. In addition to following my tips, try to find additional ways to make your resume unique and appealing based on the job for which you are applying. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Keep the formatting of your resume reasonably simple. Do not overuse font styles (italic, bold, etc.). Use white space, organization and font styles to make your resume easy to quickly scan. When styling portions of your resume for emphasis, use only one form of emphasis at a time (e.g., all capitals, underline, italic, bold, etc.). 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Give examples, don&amp;#39;t just list technologies. Describe the projects on which you have worked, how you used the relevant technologies, what your role was and what you learned. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	If you are not local (by this I mean not living in the same metropolitan area as the employer), be up-front about this and be clear about your desire to relocate and whether or not you are seeking relocation assistance. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Do not list &amp;quot;expert&amp;quot; level skills without providing any relevant work experience. I think this is self-explanatory. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Do not state obvious things such as &amp;quot;computer literate&amp;quot; if you are submitting an electronic resume for a software development position. 
	&lt;/div&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I hope that these tips will enable you to be successful in&amp;nbsp;your job hunt! 
&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/CustomSoftware/~4/3CRAihmFi1U" height="1" width="1"/&gt;</summary>
    <published>2009-02-11T13:47:00+00:00</published>
    <link rel="related" href="http://www.entrancesoftware.com/blog/post/Resume-Tips.aspx#comment" />
    <dc:publisher>Eric Carlson</dc:publisher>
    <dc:description>A list of basic resume tips to make you stand out from other applicants.</dc:description>
    <pingback:server>http://www.entrancesoftware.com/blog/pingback.axd</pingback:server>
    <pingback:target>http://www.entrancesoftware.com/blog/post.aspx?id=20ace306-9a7b-4c4f-bb38-44048bc16551</pingback:target>
    <slash:comments>4</slash:comments>
    <trackback:ping>http://www.entrancesoftware.com/blog/trackback.axd?id=20ace306-9a7b-4c4f-bb38-44048bc16551</trackback:ping>
    <wfw:comment>http://www.entrancesoftware.com/blog/post/Resume-Tips.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.entrancesoftware.com/blog/syndication.axd?post=20ace306-9a7b-4c4f-bb38-44048bc16551</wfw:commentRss>
  <feedburner:origLink>http://www.entrancesoftware.com/blog/post/Resume-Tips.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.entrancesoftware.com/blog/post/Flexible-Software-Saves-Money!.aspx</id>
    <title>Flexible Software Saves Money!</title>
    <updated>2008-12-03T15:50:00+00:00</updated>
    <link rel="self" href="http://www.entrancesoftware.com/blog/post.aspx?id=675a477a-5c05-4893-8870-35598d86223d" />
    <link href="http://feedproxy.google.com/~r/CustomSoftware/~3/sEvI2SVDY7I/Flexible-Software-Saves-Money!.aspx" />
    <author>
      <name>Software Expert</name>
    </author>
    <summary type="html">&lt;p&gt;
One of the calling cards of poorly or hastily developed software is lack of flexibility: it cannot easily be reconfigured, enhanced or adapted to changes in your business. Rigid software can make adapting your application to evolving business needs extremely time-consuming and expensive. In fact, sometimes it can be more cost effective to consider a &amp;quot;rewrite&amp;quot; than to pursue costly maintenance of inflexibly designed code. 
&lt;/p&gt;
 
&lt;p&gt;
Here are three techniques you can use to improve your software&amp;#39;s flexibility: 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;strong&gt;Configuration files&lt;/strong&gt; - most applications make use of environment setting that are subject to change, such as server names or email addresses. These values should be stored in configuration files where they can be easily modified, not embedded in the source code of an application. Configuration files can also be used in more advanced ways, such as listing the names or locations of code libraries that the system can use to modify or extend its functionality. This means migrating to that new email server takes 15 minutes to update your app and zero down-time, as opposed to hours of coding and an over-night re-release of the software! 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;strong&gt;Code abstraction&lt;/strong&gt; - say an application is being written for a car dealership that currently only sells Fords. The developers could probably save a little coding time by assuming that all cars in the system will be Fords. But with a little extra effort, the application could likely be made to support cars from all manufacturers. The benefit is that if the dealership grows and begins selling Hondas in addition to Fords, the code would not have to be modified or redeployed (NO COST!). Creating code that supports general concepts (automobiles) instead of specific instances of those concepts (Fords) is called code abstraction. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;strong&gt;Regression testing&lt;/strong&gt; - even with the best development practices, it is always possible that new bugs will arise (or old bugs return) when an application is modified, and most businesses would prefer that bugs be &amp;quot;caught&amp;quot; by the development team, not by end users, where errors are much more costly. If unit or functional tests were created during development to make sure the code worked, then re-running all of these tests to make sure no part of the code that was previously working has been broken can be a great way to achieve this preemptive bug detection. Such re-running of tests is commonly referred to as regression testing. 
	&lt;/div&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Entrance Software uses these three techniques as part of our rigorous development methodology to ensure that we deliver high-quality cost-effective solutions that are relevant to our clients&amp;#39; unique business models. If your software is showing signs of inflexibility, please contact one our experts to set up a consultation. 
&lt;/p&gt;
&lt;p&gt;
In summary, if your software does not adequately employ configuration files or code abstraction, then the chances that it can be readily and economically adapted to new environments or business problems are pretty slim. Furthermore, without regression testing, it will likely be your end users or customers that first experience the bugs resulting from application changes, not the development team. If you wonder about these things, ask your internal development team: 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;div&gt;
	Do you&amp;nbsp;use configuration files in my software and if so, to what extent? 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	How do you use abstraction in our application? 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Are we&amp;nbsp;currently doing automated regression testing before we release updates? 
	&lt;/div&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Our &lt;a href="http://www.entrancesoftware.com/services/software-audit.html"&gt;Expert Software Audit&lt;/a&gt; can also help you identify any weaknesses your application may have in these areas and others (Security, Scalability, etc.).&amp;nbsp; 
&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/CustomSoftware/~4/sEvI2SVDY7I" height="1" width="1"/&gt;</summary>
    <published>2008-12-03T15:50:00+00:00</published>
    <link rel="related" href="http://www.entrancesoftware.com/blog/post/Flexible-Software-Saves-Money!.aspx#comment" />
    <category term="Software Consulting" />
    <category term="Software Development" />
    <dc:publisher>Software Expert</dc:publisher>
    <dc:description>Techniques to make your software flexible can save you money.</dc:description>
    <pingback:server>http://www.entrancesoftware.com/blog/pingback.axd</pingback:server>
    <pingback:target>http://www.entrancesoftware.com/blog/post.aspx?id=675a477a-5c05-4893-8870-35598d86223d</pingback:target>
    <slash:comments>10</slash:comments>
    <trackback:ping>http://www.entrancesoftware.com/blog/trackback.axd?id=675a477a-5c05-4893-8870-35598d86223d</trackback:ping>
    <wfw:comment>http://www.entrancesoftware.com/blog/post/Flexible-Software-Saves-Money!.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.entrancesoftware.com/blog/syndication.axd?post=675a477a-5c05-4893-8870-35598d86223d</wfw:commentRss>
  <feedburner:origLink>http://www.entrancesoftware.com/blog/post/Flexible-Software-Saves-Money!.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.entrancesoftware.com/blog/post/Your-Database-May-Be-Abnormal.aspx</id>
    <title>Your Database May Be Abnormal</title>
    <updated>2008-09-18T10:09:00+00:00</updated>
    <link rel="self" href="http://www.entrancesoftware.com/blog/post.aspx?id=883a4232-6f14-4d1a-902e-c7515bd0c45c" />
    <link href="http://feedproxy.google.com/~r/CustomSoftware/~3/F5-zkU1L1b4/Your-Database-May-Be-Abnormal.aspx" />
    <author>
      <name>Software Expert</name>
    </author>
    <summary type="html">&lt;p&gt;
You may never directly see the underlying database structure that holds your company&amp;#39;s valuable data but what you can&amp;#39;t see may be unnecessarily costing you time and money. Database &amp;quot;normalization&amp;quot; is a technical term which describes how the tables, fields, and data relationships are structured in a database. Databases can be under-normalized or over-normalized and finding the right balance of normalization is essential when designing a &lt;a href="http://www.entrancesoftware.com/services/data-management.html"&gt;custom database solution&lt;/a&gt;. 
&lt;/p&gt;
 
&lt;p&gt;
Why should you care about normalization? Under-normalized databases typically represent business data relationships poorly and commonly have individual pieces of data duplicated in multiple locations. This means that poorly designed databases cost more to maintain! If you ever found that you had to maintain one piece of data in more than one place in your application then you may have an under-normalized database. 
&lt;/p&gt;
&lt;p&gt;
Over-normalized databases typically represent data &amp;quot;too well.&amp;quot; How is that possible? The data in an over-normalized database is typically spread out over many tables in a very abstract way which can result in database activity being very inefficient. If you notice your database seems slow, even when performing simple tasks such as reporting, you may be over-normalized! 
&lt;/p&gt;
&lt;p&gt;
Checking a database&amp;#39;s normalization is a key component of Entrance Software&amp;#39;s &lt;a href="http://www.entrancesoftware.com/services/software-audit.html"&gt;Software Audit&lt;/a&gt; and provides great insight into the design and quality of a software application. 
&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/CustomSoftware/~4/F5-zkU1L1b4" height="1" width="1"/&gt;</summary>
    <published>2008-09-18T10:09:00+00:00</published>
    <link rel="related" href="http://www.entrancesoftware.com/blog/post/Your-Database-May-Be-Abnormal.aspx#comment" />
    <category term="Software Consulting" />
    <dc:publisher>Software Expert</dc:publisher>
    <dc:description>Your database may be abnormal if it is under-normalized or over-normalized.</dc:description>
    <pingback:server>http://www.entrancesoftware.com/blog/pingback.axd</pingback:server>
    <pingback:target>http://www.entrancesoftware.com/blog/post.aspx?id=883a4232-6f14-4d1a-902e-c7515bd0c45c</pingback:target>
    <slash:comments>1</slash:comments>
    <trackback:ping>http://www.entrancesoftware.com/blog/trackback.axd?id=883a4232-6f14-4d1a-902e-c7515bd0c45c</trackback:ping>
    <wfw:comment>http://www.entrancesoftware.com/blog/post/Your-Database-May-Be-Abnormal.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.entrancesoftware.com/blog/syndication.axd?post=883a4232-6f14-4d1a-902e-c7515bd0c45c</wfw:commentRss>
  <feedburner:origLink>http://www.entrancesoftware.com/blog/post/Your-Database-May-Be-Abnormal.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.entrancesoftware.com/blog/post/Measure-Twice3b-Cut-Once-Works-in-Software.aspx</id>
    <title>'Measure Twice; Cut Once' Works in Software</title>
    <updated>2008-09-08T14:49:00+00:00</updated>
    <link rel="self" href="http://www.entrancesoftware.com/blog/post.aspx?id=ff2861f4-7328-4038-b5cc-8a1817440238" />
    <link href="http://feedproxy.google.com/~r/CustomSoftware/~3/r5QHz8gXJpQ/Measure-Twice3b-Cut-Once-Works-in-Software.aspx" />
    <author>
      <name>Software Expert</name>
    </author>
    <summary type="html">&lt;p&gt;
Many clients do not understand why they should pay for an up-front &amp;quot;scoping&amp;quot; exercise that does not directly result in software being delivered. &amp;quot;Scoping&amp;quot; allows both the software buyer and the software developer to get on the same page by establishing well-defined expectations for the outcome of the project. Proper scoping is crucial to a successful, on-time and on-budget software project. 
&lt;/p&gt;
&lt;p&gt;
To begin a scoping exercise, a Project Manager will identify the key people involved in defining and ultimately using the software product. The Software Project Manager meets with these stakeholders, documents the existing business processes, discusses ways in which the processes may be improved as a result of the proposed software project, and identifies any other functional requirements of the software. After the meetings are completed, the Project Manager creates a scoping document which describes the solution to be build based on the information gathered. 
&lt;/p&gt;
 
&lt;p&gt;
With a scoping document in hand, a &lt;a href="http://www.entrancesoftware.com/about-us/software-consultants.html"&gt;software&amp;nbsp;consultant&lt;/a&gt; is able to easily develop an effort estimate to implement the project. Scoping projects typically cost no more than 10% to 15% of the actual cost to develop and implement the software solution. As such, a scoping project can generally give a software buyer an &amp;quot;order of magnitude&amp;quot; estimate of the resulting project. Most importantly, however, a detailed scope provides clear direction to the software architects and developers who will be implementing the solution, avoiding unnecessary &amp;quot;back-and-forth&amp;quot; with the software buyer&amp;#39;s staff and ensuring that the resulting software solution precisely meets the buyer&amp;#39;s needs. The result: better results and reduced project risk. 
&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/CustomSoftware/~4/r5QHz8gXJpQ" height="1" width="1"/&gt;</summary>
    <published>2008-09-08T14:49:00+00:00</published>
    <link rel="related" href="http://www.entrancesoftware.com/blog/post/Measure-Twice3b-Cut-Once-Works-in-Software.aspx#comment" />
    <category term="Software Consulting" />
    <category term="Software Development" />
    <dc:publisher>Software Expert</dc:publisher>
    <dc:description>Scoping is an important part of project management in software development.</dc:description>
    <pingback:server>http://www.entrancesoftware.com/blog/pingback.axd</pingback:server>
    <pingback:target>http://www.entrancesoftware.com/blog/post.aspx?id=ff2861f4-7328-4038-b5cc-8a1817440238</pingback:target>
    <slash:comments>2</slash:comments>
    <trackback:ping>http://www.entrancesoftware.com/blog/trackback.axd?id=ff2861f4-7328-4038-b5cc-8a1817440238</trackback:ping>
    <wfw:comment>http://www.entrancesoftware.com/blog/post/Measure-Twice3b-Cut-Once-Works-in-Software.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.entrancesoftware.com/blog/syndication.axd?post=ff2861f4-7328-4038-b5cc-8a1817440238</wfw:commentRss>
  <feedburner:origLink>http://www.entrancesoftware.com/blog/post/Measure-Twice3b-Cut-Once-Works-in-Software.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.entrancesoftware.com/blog/post/Losing-Sight-of-the-Primary-Goal.aspx</id>
    <title>Losing Sight of the Primary Goal</title>
    <updated>2008-09-02T15:00:00+00:00</updated>
    <link rel="self" href="http://www.entrancesoftware.com/blog/post.aspx?id=3b61772c-e817-4918-8d50-2d9e0b17a470" />
    <link href="http://feedproxy.google.com/~r/CustomSoftware/~3/jar_G6EluVE/Losing-Sight-of-the-Primary-Goal.aspx" />
    <author>
      <name>Software Expert</name>
    </author>
    <summary type="html">Outgoing messages, automated attendants, out-of-office emails, online customer service - each of these tools is technology automation at its best ... or is it? In my business, it&amp;#39;s easy to let technology get out of hand and lose sight of the primary goal: serving the customer! I make it a point to exercise technology, but I don&amp;#39;t let it run away with my business. 
&lt;img src="http://feeds.feedburner.com/~r/CustomSoftware/~4/jar_G6EluVE" height="1" width="1"/&gt;</summary>
    <published>2008-09-02T15:00:00+00:00</published>
    <link rel="related" href="http://www.entrancesoftware.com/blog/post/Losing-Sight-of-the-Primary-Goal.aspx#comment" />
    <category term="Software Consulting" />
    <dc:publisher>Software Expert</dc:publisher>
    <dc:description>Using technology without letting it control you is important for success.</dc:description>
    <pingback:server>http://www.entrancesoftware.com/blog/pingback.axd</pingback:server>
    <pingback:target>http://www.entrancesoftware.com/blog/post.aspx?id=3b61772c-e817-4918-8d50-2d9e0b17a470</pingback:target>
    <slash:comments>3</slash:comments>
    <trackback:ping>http://www.entrancesoftware.com/blog/trackback.axd?id=3b61772c-e817-4918-8d50-2d9e0b17a470</trackback:ping>
    <wfw:comment>http://www.entrancesoftware.com/blog/post/Losing-Sight-of-the-Primary-Goal.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.entrancesoftware.com/blog/syndication.axd?post=3b61772c-e817-4918-8d50-2d9e0b17a470</wfw:commentRss>
  <feedburner:origLink>http://www.entrancesoftware.com/blog/post/Losing-Sight-of-the-Primary-Goal.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.entrancesoftware.com/blog/post/Welcoming-Change.aspx</id>
    <title>Welcoming Change</title>
    <updated>2008-08-28T15:13:00+00:00</updated>
    <link rel="self" href="http://www.entrancesoftware.com/blog/post.aspx?id=a494b1fb-334b-437c-bdfe-6dae71d6637d" />
    <link href="http://feedproxy.google.com/~r/CustomSoftware/~3/P4LAo49P7CQ/Welcoming-Change.aspx" />
    <author>
      <name>Software Expert</name>
    </author>
    <summary type="html">Many business owners start companies because they like to ask difficult questions, such as, &amp;quot;Why is it done that way?&amp;quot; and are not satisfied with answers like, &amp;quot;Because that is the way it has always been done.&amp;quot; However, they are often guilty of drinking their own Kool-Aid. They believe that they are smart, capable and &amp;quot;can do that in an Excel spreadsheet.&amp;quot; The sooner they welcome change, which includes technological advancements, the easier their business process will be. 
&lt;img src="http://feeds.feedburner.com/~r/CustomSoftware/~4/P4LAo49P7CQ" height="1" width="1"/&gt;</summary>
    <published>2008-08-28T15:13:00+00:00</published>
    <link rel="related" href="http://www.entrancesoftware.com/blog/post/Welcoming-Change.aspx#comment" />
    <category term="Software Consulting" />
    <dc:publisher>Software Expert</dc:publisher>
    <dc:description>Welcoming change in the technology world is essential to any business' success.</dc:description>
    <pingback:server>http://www.entrancesoftware.com/blog/pingback.axd</pingback:server>
    <pingback:target>http://www.entrancesoftware.com/blog/post.aspx?id=a494b1fb-334b-437c-bdfe-6dae71d6637d</pingback:target>
    <slash:comments>0</slash:comments>
    <trackback:ping>http://www.entrancesoftware.com/blog/trackback.axd?id=a494b1fb-334b-437c-bdfe-6dae71d6637d</trackback:ping>
    <wfw:comment>http://www.entrancesoftware.com/blog/post/Welcoming-Change.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.entrancesoftware.com/blog/syndication.axd?post=a494b1fb-334b-437c-bdfe-6dae71d6637d</wfw:commentRss>
  <feedburner:origLink>http://www.entrancesoftware.com/blog/post/Welcoming-Change.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.entrancesoftware.com/blog/post/Measuring-Success-(and-Failure).aspx</id>
    <title>Measuring Success (and Failure)</title>
    <updated>2008-08-25T15:06:00+00:00</updated>
    <link rel="self" href="http://www.entrancesoftware.com/blog/post.aspx?id=f5e67b53-1b6d-4757-adfd-f840ddf23dc3" />
    <link href="http://feedproxy.google.com/~r/CustomSoftware/~3/Ccb78nclsXs/Measuring-Success-(and-Failure).aspx" />
    <author>
      <name>Software Expert</name>
    </author>
    <summary type="html">In the hit movie &amp;quot;Jerry Maguire,&amp;quot; Tom Cruise&amp;#39;s character declares, &amp;quot;Show me the money!&amp;quot; Well, if Jerry wanted to be a successful entrepreneur, he should have been shouting, &amp;quot;Show me the metrics!&amp;quot; One of my last programming jobs - before I created my own company - was for a company who had the catch phrase, &amp;quot;You can&amp;#39;t manage what you can&amp;#39;t measure.&amp;quot; Without the ability to quantify your business through metrics, sometimes called KPIs (Key Performance Indicators), the business is totally reliant on the instinct of the owner. 
&lt;img src="http://feeds.feedburner.com/~r/CustomSoftware/~4/Ccb78nclsXs" height="1" width="1"/&gt;</summary>
    <published>2008-08-25T15:06:00+00:00</published>
    <link rel="related" href="http://www.entrancesoftware.com/blog/post/Measuring-Success-(and-Failure).aspx#comment" />
    <category term="Software Consulting" />
    <dc:publisher>Software Expert</dc:publisher>
    <dc:description>Metrics are important for measuring success in any business.</dc:description>
    <pingback:server>http://www.entrancesoftware.com/blog/pingback.axd</pingback:server>
    <pingback:target>http://www.entrancesoftware.com/blog/post.aspx?id=f5e67b53-1b6d-4757-adfd-f840ddf23dc3</pingback:target>
    <slash:comments>2</slash:comments>
    <trackback:ping>http://www.entrancesoftware.com/blog/trackback.axd?id=f5e67b53-1b6d-4757-adfd-f840ddf23dc3</trackback:ping>
    <wfw:comment>http://www.entrancesoftware.com/blog/post/Measuring-Success-(and-Failure).aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.entrancesoftware.com/blog/syndication.axd?post=f5e67b53-1b6d-4757-adfd-f840ddf23dc3</wfw:commentRss>
  <feedburner:origLink>http://www.entrancesoftware.com/blog/post/Measuring-Success-(and-Failure).aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.entrancesoftware.com/blog/post/Developing-Systems.aspx</id>
    <title>Developing Systems</title>
    <updated>2008-08-22T10:17:00+00:00</updated>
    <link rel="self" href="http://www.entrancesoftware.com/blog/post.aspx?id=0307e817-0abc-463f-9460-07f39b5fefd8" />
    <link href="http://feedproxy.google.com/~r/CustomSoftware/~3/uN0stsn09zw/Developing-Systems.aspx" />
    <author>
      <name>Software Expert</name>
    </author>
    <summary type="html">&lt;p&gt;
AT&amp;amp;T once had a slogan: &amp;quot;The System is the Solution.&amp;quot; They recognized that repeatability and consistency brought value to the customer and reduced risks to the enterprise. The power of software is that you can &lt;a href="http://www.entrancesoftware.com/services/software-consulting.html"&gt;buy or build a system&lt;/a&gt; that fits your business. It&amp;#39;s a lot like buying a suit. The most precise fit will be the system that&amp;#39;s built specifically for your business, but sometimes &amp;quot;buying off the rack&amp;quot; and having a good tailor brings the best combination of fit and affordability. 
&lt;/p&gt;
&lt;p&gt;
In his bestselling book, &amp;quot;The E-Myth Revisited,&amp;quot; Michael Gerber states, &amp;quot;Once you innovate a process and quantify its impact on your business, once you find something that works better than what preceded it, once you discover how to increase the &amp;#39;yeses&amp;#39; from your customers ... it&amp;#39;s time to orchestrate the whole thing.&amp;quot; 
&lt;/p&gt;
&lt;p&gt;
Automation for you may mean connecting your order entry system directly to your accounting system so that you get bills out faster and without error. It may mean creating a website on which customers can track the status of their projects to replace the multiplicity of spreadsheets on your engineer&amp;#39;s laptops. 
&lt;/p&gt;
&lt;p&gt;
Without systems, all the knowledge needed to solve a problem must be reinvented with each new challenge. 
&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/CustomSoftware/~4/uN0stsn09zw" height="1" width="1"/&gt;</summary>
    <published>2008-08-22T10:17:00+00:00</published>
    <link rel="related" href="http://www.entrancesoftware.com/blog/post/Developing-Systems.aspx#comment" />
    <category term="Software Consulting" />
    <category term="Software Development" />
    <dc:publisher>Software Expert</dc:publisher>
    <dc:description>Developing systems can help automate your business process.</dc:description>
    <pingback:server>http://www.entrancesoftware.com/blog/pingback.axd</pingback:server>
    <pingback:target>http://www.entrancesoftware.com/blog/post.aspx?id=0307e817-0abc-463f-9460-07f39b5fefd8</pingback:target>
    <slash:comments>0</slash:comments>
    <trackback:ping>http://www.entrancesoftware.com/blog/trackback.axd?id=0307e817-0abc-463f-9460-07f39b5fefd8</trackback:ping>
    <wfw:comment>http://www.entrancesoftware.com/blog/post/Developing-Systems.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.entrancesoftware.com/blog/syndication.axd?post=0307e817-0abc-463f-9460-07f39b5fefd8</wfw:commentRss>
  <feedburner:origLink>http://www.entrancesoftware.com/blog/post/Developing-Systems.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.entrancesoftware.com/blog/post/Finding-a-Trusted-Advisor.aspx</id>
    <title>Finding a Trusted Advisor</title>
    <updated>2008-08-20T13:47:00+00:00</updated>
    <link rel="self" href="http://www.entrancesoftware.com/blog/post.aspx?id=b9c951de-5232-414c-b236-e2e6ce4a72bf" />
    <link href="http://feedproxy.google.com/~r/CustomSoftware/~3/gqwzelFmZPc/Finding-a-Trusted-Advisor.aspx" />
    <author>
      <name>Software Expert</name>
    </author>
    <summary type="html">Many business owners, if asked to cite key factors of our success, would include our legal counsel, bankers and CPAs. These are the trusted advisors from whom we seek counsel on issues that are key to our businesses and outside our core competencies. Finding a trusted&amp;nbsp;&lt;a href="http://www.entrancesoftware.com/about-us/software-consultants.html"&gt;software advisor&lt;/a&gt; is a key challenge, because without an experienced guide other challenges may prove daunting. 
&lt;img src="http://feeds.feedburner.com/~r/CustomSoftware/~4/gqwzelFmZPc" height="1" width="1"/&gt;</summary>
    <published>2008-08-20T13:47:00+00:00</published>
    <link rel="related" href="http://www.entrancesoftware.com/blog/post/Finding-a-Trusted-Advisor.aspx#comment" />
    <category term="Software Consulting" />
    <dc:publisher>Software Expert</dc:publisher>
    <dc:description>The challenge for businesses to find a technology advisor is important to face.</dc:description>
    <pingback:server>http://www.entrancesoftware.com/blog/pingback.axd</pingback:server>
    <pingback:target>http://www.entrancesoftware.com/blog/post.aspx?id=b9c951de-5232-414c-b236-e2e6ce4a72bf</pingback:target>
    <slash:comments>3</slash:comments>
    <trackback:ping>http://www.entrancesoftware.com/blog/trackback.axd?id=b9c951de-5232-414c-b236-e2e6ce4a72bf</trackback:ping>
    <wfw:comment>http://www.entrancesoftware.com/blog/post/Finding-a-Trusted-Advisor.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.entrancesoftware.com/blog/syndication.axd?post=b9c951de-5232-414c-b236-e2e6ce4a72bf</wfw:commentRss>
  <feedburner:origLink>http://www.entrancesoftware.com/blog/post/Finding-a-Trusted-Advisor.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.entrancesoftware.com/blog/post/Technology-Challenges-Facing-Businesses-Today.aspx</id>
    <title>Technology Challenges Facing Businesses Today</title>
    <updated>2008-08-19T13:45:00+00:00</updated>
    <link rel="self" href="http://www.entrancesoftware.com/blog/post.aspx?id=f45cb87e-394e-43b3-88e8-302aa6b74dbb" />
    <link href="http://feedproxy.google.com/~r/CustomSoftware/~3/TP1MmWiNMLo/Technology-Challenges-Facing-Businesses-Today.aspx" />
    <author>
      <name>Software Expert</name>
    </author>
    <summary type="html">All business owners face the challenge of scaling a basic business concept or strategy. These days, our growth is accelerated by technology, bringing with it certain hurdles we are forced to jump. My business has faced many of these issues, and I&amp;#39;ve learned how to evolve with the technological times as a result. In the following days I will post some&amp;nbsp;IT-related challenges that are likely to come up in any business and my thoughts on dealing with them. 
&lt;img src="http://feeds.feedburner.com/~r/CustomSoftware/~4/TP1MmWiNMLo" height="1" width="1"/&gt;</summary>
    <published>2008-08-19T13:45:00+00:00</published>
    <link rel="related" href="http://www.entrancesoftware.com/blog/post/Technology-Challenges-Facing-Businesses-Today.aspx#comment" />
    <category term="Software Consulting" />
    <dc:publisher>Software Expert</dc:publisher>
    <dc:description>Technology challenges facing businesses today.</dc:description>
    <pingback:server>http://www.entrancesoftware.com/blog/pingback.axd</pingback:server>
    <pingback:target>http://www.entrancesoftware.com/blog/post.aspx?id=f45cb87e-394e-43b3-88e8-302aa6b74dbb</pingback:target>
    <slash:comments>3</slash:comments>
    <trackback:ping>http://www.entrancesoftware.com/blog/trackback.axd?id=f45cb87e-394e-43b3-88e8-302aa6b74dbb</trackback:ping>
    <wfw:comment>http://www.entrancesoftware.com/blog/post/Technology-Challenges-Facing-Businesses-Today.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.entrancesoftware.com/blog/syndication.axd?post=f45cb87e-394e-43b3-88e8-302aa6b74dbb</wfw:commentRss>
  <feedburner:origLink>http://www.entrancesoftware.com/blog/post/Technology-Challenges-Facing-Businesses-Today.aspx</feedburner:origLink></entry>
</feed>
