<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WinSQL</title>
	<atom:link href="http://www.winsql.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.winsql.com</link>
	<description>A better way to get IT done</description>
	<lastBuildDate>Thu, 22 Sep 2011 14:39:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Solution Architecture &#8211; Tightly Coupled Components</title>
		<link>http://www.winsql.com/2011/08/22/solution-architecture-tightly-coupled/</link>
		<comments>http://www.winsql.com/2011/08/22/solution-architecture-tightly-coupled/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 20:32:19 +0000</pubDate>
		<dc:creator>wiadmin</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[separation of concerns]]></category>
		<category><![CDATA[single responsibility principle]]></category>
		<category><![CDATA[solution architecture]]></category>
		<category><![CDATA[tightly coupled]]></category>

		<guid isPermaLink="false">http://www.winsql.com/?p=291</guid>
		<description><![CDATA[Recently I was asked by a client to review some in-house applications. The client explained his pain point -&#160;&#8220;Every time we make a change something else breaks&#8221;. This is a portent for solutions that violate two important principles:&#160;&#160;separation of concerns and the single responsibility&#160;principle. These solutions have serious drawbacks. Components are tightly coupled &#8211; change one and you have to change many others. Identifying and isolating the impact of changes in this type of architecture is difficult even with great documentation. These applications are often developed over time in environment with little knowledge of development methodology. Testing is adhoc and &#8230;]]></description>
			<content:encoded><![CDATA[<p>Recently I was asked by a client to review some in-house applications. The client explained his pain point -&nbsp;<em>&ldquo;Every time we make a change something else breaks&rdquo;.</em></p>
<p>This is a portent for solutions that violate two important principles:&nbsp;&nbsp;separation of concerns and the single responsibility&nbsp;principle. These solutions have serious drawbacks. Components are tightly coupled &ndash; change one and you have to change many others. Identifying and isolating the impact of changes in this type of architecture is difficult even with great documentation. These applications are often developed over time in environment with little knowledge of development methodology. Testing is adhoc and documentation non existent so isolating change is virtually impossible.</p>
<p>What is <a href="http://en.wikipedia.org/wiki/Separation_of_concerns" target="_blank">separation of concerns</a>? Separation of concerns is the process of architecting a solution into distinct logical units that overlap in functionality as little as possible. A concern is synonymous with features or behaviours.</p>
<p>The <a href="http://en.wikipedia.org/wiki/Single_responsibility_principle" target="_blank">single responsibility principle </a>states that every object or class has a single responsibility and one, and only one, reason for change.&nbsp; An&nbsp;object or&nbsp;class&nbsp;should be focused on a single concern.</p>
<p>Let&rsquo;s look at a simple example. You are asked to write a suite of management reports in SQL Server Reporting Services. The Finance and Marketing departments have specified their respective reports however some of the reports are common to both departments. What is the best strategy to design the reports? There are two possibilities:</p>
<ul>
<li>Create stored procedures for each unique reports</li>
<li>Create stored procedures for each unique reports for each department</li>
</ul>
<p>Marketing requests a change to a common report &ndash; which solution requires the least effort to make the change? Which requires the least amount of testing? Which is more maintainable?</p>
<p>Here is&nbsp;another example.&nbsp;The release of Visual Studio 2003 introduced design-time data tools for ADO.NET data access.&nbsp; This gave rise to&nbsp;&quot;facade-like&quot; design&nbsp; pattern that used data adapters&nbsp;and strongly typed datasets in&nbsp;monolithic VB.NET&nbsp;applications.&nbsp; Data adapters are ADO.NET objects that reference SQL commands or stored procedure.&nbsp; Typed datasets are defined by an XML schema file and a DataSet object.</p>
<p>This &quot;facade-like&quot; pattern is implemented by using a Windows form&nbsp;as a container to host the data connection, data adapters and&nbsp;typed dataset objects.&nbsp;The schema file is created at&nbsp;design-time&nbsp;by the dataset objects.&nbsp; The result&nbsp; is several tightly coupled data access objects in your application.</p>
<p>Let us add a new column in an underlying table in the database.&nbsp; To propagate the schema change, you have to use the design-time tools&nbsp;to update the data adapter,&nbsp;generate a new schema file, test, recompile and release the application.&nbsp; This is a non-trivial exercise if you have 100 users and you simply added a new column to a table.</p>
<p>In the December 2004 issue of MSDN Magazine, John Papa discussed <a href="http://msdn.microsoft.com/en-us/magazine/cc163877.aspx" target="_blank">strongly typed datasets</a>&nbsp;and makes this important point.</p>
<blockquote>
<p>Keep in mind that when you use a typed DataSet, if the corresponding schema changes in the underlying database table, you will need to synchronize the schema in the typed DataSet. This is not a big deal because when you use an untyped DataSet you would still likely have to change some client code if the underlying schema changes.</p>
</blockquote>
<p>It is true that some schema&nbsp;modifications require&nbsp;change in your code&nbsp;however this is not always the case.&nbsp; In a loosely coupled application with good separation of concerns, change to&nbsp;client code is the exception rather than the rule.&nbsp;&nbsp;With tightly coupled data access components, code changes are always necessary when the underlying tables are modified.</p>
<p>The solution architecture of a client application can anticipate change with these simple rules:</p>
<ul>
<li>Avoid monolithic application</li>
<li>Use loosely coupled components</li>
<li>Refactor database code&nbsp;based on the&nbsp;single responsibility principle</li>
<li>Design components&nbsp;with good separation of concerns</li>
</ul>
<p>Solutions&nbsp;developed with this approach are easier to maintain and embrace&nbsp;rather than resist change.&nbsp;&nbsp;You turn a pain point into a benefit&nbsp;and you more likely to hear&nbsp;<em>&quot;Every time we make a database&nbsp;change&nbsp;it&#39;s transparent to my applications&quot;.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.winsql.com/2011/08/22/solution-architecture-tightly-coupled/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solution Architecture &#8211; Principles and Patterns</title>
		<link>http://www.winsql.com/2011/08/22/solution-architecture-principles-and-patterns/</link>
		<comments>http://www.winsql.com/2011/08/22/solution-architecture-principles-and-patterns/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 19:52:41 +0000</pubDate>
		<dc:creator>wiadmin</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[principles and patterns]]></category>
		<category><![CDATA[solution architecture]]></category>

		<guid isPermaLink="false">http://www.winsql.com/?p=268</guid>
		<description><![CDATA[As an introduction to this series of post on solution architecture, I have outlined the key principles and patterns that I use to design and architect real world applications. Domain Driven Design Domain driven design is a collection of principles and patterns based on two premises: that complex designs should be based on a model and that the primary focus should be on the domain and domain logic rather than the technology used to implement the system. The basic tenets of domain driven design are ubiquitous language, bounded contexts, principle of single responsibility and principle of least knowledge. These principles &#8230;]]></description>
			<content:encoded><![CDATA[<p>As an introduction to this series of post on solution architecture, I have outlined the key principles and patterns that I use to design and architect real world applications.</p>
<h2>Domain Driven Design</h2>
<p>Domain driven design is a collection of principles and patterns based on two premises: that complex designs should be based on a model and that the primary focus should be on the domain and domain logic rather than the technology used to implement the system.<br />
The basic tenets of <a href="http://msdn.microsoft.com/en-us/magazine/dd419654.aspx">domain driven design</a> are ubiquitous language, bounded contexts, principle of single responsibility and principle of least knowledge.</p>
<p>These principles are a subset of the <a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod">classic OOD design concepts</a> expounded to solve poor dependency management that leads to code that is hard to change, fragile, and non-reusable.</p>
<h2>Ubiquitous Language</h2>
<p>Domain experts use company or industry standard terminology.  In domain driven design, this vocabulary is referred to as <strong>Ubiquitous Language</strong>.  It is used consciously and as a disciplined rule throughout the solution architecture and database design to reduce the mismatch between business and technological language helping to deliver business value.<br />
<br />
The language can be further refined into <a href="http://www.winsql.com/2011/07/25/234/">naming conventions</a> that are clear, concise, descriptive, and imply intent, form, and function to design discoverability and maintainability at the heart of the project.</p>
<h2>Bounded Contexts</h2>
<p>A bounded context is an area of the solution architecture which has explicitly defined borders, has its own model and maintains its own code.  Each bounded context has a specific responsibility and can operate in a semi-autonomous fashion. The splitting of a large application into many context yields the advantages of modularity, separation of concerns and loose coupling.</p>
<h2>Single Responsibility Principle</h2>
<p>Entities should have one, and only one, reason to change.  This leads to two benefits:</p>
<ul>
<li><strong>Increase Separation </strong>— Breaking code into multiple classes improves the readability and maintainability of a system and helps isolate the effect of changes.</li>
<li><strong>Increase Testability </strong>— Dependencies are reduced.  This facilitates unit testing and reduces test friction.</li>
</ul>
<h2>Principle of Least Knowledge</h2>
<p>This principle is also known as the <strong>Law of Demeter</strong>.  The principle strives to achieve low coupling among objects and reduces the interactions between objects to just a few close friends.  The fundamental notion is that a given object assumes as little as possible about the properties and structure of other objects. This leads to software that is more maintainable and adaptable.<br />
Given that change is constant in a software project, this principle provides many benefits when rightfully applied:</p>
<ul>
<li><strong>Increase Maintainability </strong>— Code is easier to maintain because any change can be isolated to a very limited number of objects. This focus on behaviour of a limited number of objects helps with code that is easier to understand, use and reuse because objects are not tightly related to a web of other objects.</li>
<li><strong>Increase Service Alignment </strong>— Adoption of this design principle allows the evolution of components in the solution architecture as they are not tightly coupled with other components.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.winsql.com/2011/08/22/solution-architecture-principles-and-patterns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Database Version, Editions and Compatibility</title>
		<link>http://www.winsql.com/2011/07/25/database-version-edition-and-compatibility/</link>
		<comments>http://www.winsql.com/2011/07/25/database-version-edition-and-compatibility/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 15:53:55 +0000</pubDate>
		<dc:creator>wiadmin</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[database compatibility]]></category>
		<category><![CDATA[database editions]]></category>
		<category><![CDATA[database version]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.winsql.com/?p=232</guid>
		<description><![CDATA[With the upcoming release of SQL Server Code Name “Denali”, the next version of Microsoft SQL Server,  the supported upgrade paths have changed and are an important consideration for customers on a down-level version of SQL Server. There is some confusion on the differences between database version, database edition and database compatibility and how these relate to supported upgrade paths. Database Releases Kalen Delaney has written concise history of SQL Server in Chapter 1 of Inside SQL Server 2000 by Microsoft Press. The various Microsoft SQL Server releases since 1991 are shown in the following table. Release Release Name Product Version &#8230;]]></description>
			<content:encoded><![CDATA[<p>With the upcoming release of SQL Server Code Name “Denali”, the next version of Microsoft SQL Server,  the supported upgrade paths have changed and are an important consideration for customers on a down-level version of SQL Server. There is some confusion on the differences between database version, database edition and database compatibility and how these relate to supported upgrade paths.</p>
<h2>Database Releases</h2>
<p>Kalen Delaney has written concise history of SQL Server in <a href="http://insidesqlserver.com/companion/History%20of%20SQL%20Server.pdf">Chapter 1</a> of Inside SQL Server 2000 by Microsoft Press.</p>
<p>The various Microsoft SQL Server releases since 1991 are shown in the following table.</p>
<table style="width: 100%; height: 15px;" border="0" cellspacing="1" cellpadding="1" align="center">
<tbody>
<tr bgcolor="#164d8e">
<td><span style="color: white;"><strong>Release</strong></span></td>
<td><span style="color: white;"><strong>Release Name</strong></span></td>
<td><span style="color: white;"><strong>Product Version</strong></span></td>
</tr>
<tr bgcolor="#b5d7fa">
<td>11</td>
<td>SQL Server Code Name “Denali”</td>
<td> </td>
</tr>
<tr bgcolor="#1c8afb">
<td>10.5</td>
<td>SQL Server 2008 R2 Service Pack 1</td>
<td>10.50.2500.0</td>
</tr>
<tr bgcolor="#1c8afb">
<td> </td>
<td>SQL Server 2008 R2 RTM</td>
<td>10.50.1600.1</td>
</tr>
<tr bgcolor="#b5d7fa">
<td>10.0</td>
<td>SQL Server 2008 Service Pack 2</td>
<td>10.00.4000.00</td>
</tr>
<tr bgcolor="#b5d7fa">
<td> </td>
<td>SQL Server 2008 Service Pack 1</td>
<td>10.00.2531.00</td>
</tr>
<tr bgcolor="#b5d7fa">
<td> </td>
<td>SQL Server 2008 RTM</td>
<td>10.00.1600.22</td>
</tr>
<tr bgcolor="#1c8afb">
<td>9.0</td>
<td>SQL Server 2005 Service Pack 4</td>
<td>9.00.5000.00</td>
</tr>
<tr bgcolor="#1c8afb">
<td> </td>
<td>SQL Server 2005 Service Pack 3</td>
<td>9.00.4035</td>
</tr>
<tr bgcolor="#1c8afb">
<td> </td>
<td>SQL Server 2005 Service Pack 2</td>
<td>9.00.3042</td>
</tr>
<tr bgcolor="#1c8afb">
<td> </td>
<td>SQL Server 2005 Service Pack 1</td>
<td>9.00.2047</td>
</tr>
<tr bgcolor="#1c8afb">
<td> </td>
<td>SQL Server 2005 RTM</td>
<td>9.00.1399</td>
</tr>
<tr bgcolor="#b5d7fa">
<td>8.0</td>
<td>SQL Server 2000 Service Pack 4</td>
<td>8.00.2039</td>
</tr>
<tr bgcolor="#b5d7fa">
<td> </td>
<td>SQL Server 2000 Service Pack 3a</td>
<td>8.00.760</td>
</tr>
<tr bgcolor="#b5d7fa">
<td> </td>
<td>SQL Server 2000 Service Pack 3</td>
<td>8.00.760</td>
</tr>
<tr bgcolor="#b5d7fa">
<td> </td>
<td>SQL Server 2000 Service Pack 2</td>
<td>8.00.534</td>
</tr>
<tr bgcolor="#b5d7fa">
<td> </td>
<td>SQL Server 2000 Service Pack 1</td>
<td>8.00.534</td>
</tr>
<tr bgcolor="#b5d7fa">
<td> </td>
<td>SQL Server 2000 RTM</td>
<td>8.00.194</td>
</tr>
<tr bgcolor="#1c8afb">
<td>7.0</td>
<td>SQL Server 7.0 RTM</td>
<td> </td>
</tr>
<tr bgcolor="#b5d7fa">
<td>6.5</td>
<td>SQL Server 6.5</td>
<td> </td>
</tr>
<tr bgcolor="#1c8afb">
<td>6.0</td>
<td>SQL Server 6.0</td>
<td> </td>
</tr>
<tr bgcolor="#b5d7fa">
<td>4.21</td>
<td>SQL Server 4.21</td>
<td> </td>
</tr>
</tbody>
</table>
<p> </p>
<h2>Database Version</h2>
<p>To determine the version of SQL Server you can use one of these methods.</p>
<pre class="brush: sql; title: ; notranslate"> SELECT @@version</pre>
<pre class="brush: sql; title: ; notranslate">
SELECT SERVERPROPERTY('productversion') AS SqlVersion,
SERVERPROPERTY('productlevel) AS SqlLevel,
SERVERPROPERTY ('edition') AS SqlEdition </pre>
<p>
<h2>Database Editions</h2>
<p>Database editions package different performance, security, availability and scalability features for licensing purposes.   For example, Enterprise edition exposes enterprise features that are not available in Standard edition. You can get more information on features supported by the various edition of SQL Server <a title="Editions and Components of SQL Server 2008 R2" href="http://msdn.microsoft.com/en-us/library/ms144275.aspx" target="_blank">here</a>.</p>
<p>Many clients develop database applications using SQL Server Developer edition from MSDN.  Developer edition has the same feature set as Enterprise edition.  An important point here is that if your database uses Enterprise only features, this will limit your options for deployment, disaster recovery and upgrade paths.  The four features that are in this category are:</p>
<ul>
<li>Partitioning</li>
<li>Transparent data</li>
<li>encryption</li>
<li>Change data capture</li>
</ul>
<p> As a rule, you can upgrade to the same edition or one that has more features however it is not possible to downgrade to an edition with less features.</p>
<p>Paul Randall has a good <a title="SQL Server 2008: Does my database contain Enterprise-only features?" href="http://www.sqlskills.com/BLOGS/PAUL/search.aspx?q=sku%20persisted" target="_blank">post</a> on the pitfalls on Enterprise only features in disaster recovery situations. You can use the DMV &#8211; <em>dm_db_persisted_sku_features</em> -  to check your database for Enterprise Only features.</p>
<pre class="brush: sql; title: ; notranslate"> SELECT * FROM sys.dm_db_persisted_sku_features </pre>
<p>
<h2>Database Compatibility</h2>
<p>SQL Server is not up-level compatible. You cannot attach a database that was created or upgraded on SQL Server 2008 to any earlier version of SQL Server.</p>
<p>You also cannot attach a database that was created on an earlier version without going through the proper upgrade procedures. Jonathan Kehayias has great <a title="Database Version vs Database Compatibility Level " href="http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/07/28/database-version-vs-database-compatibility-level.aspx" target="_blank">post</a> on the database upgrade process.</p>
<p>New databases inherit the compatibility level of <em>model</em> database.  The default compatibility level of a database depends on the database release.</p>
<ul>
<li>60 = SQL 6.0</li>
<li>65 = SQL 6.5</li>
<li>70 = SQL 7.0</li>
<li>80 = SQL 2000</li>
<li>90 = SQL 2005</li>
<li>100 = SQL 2008</li>
</ul>
<p>The compatibility level of a database affects the <a title="ALTER DATABASE Compatibility Level (Transact-SQL)" href="http://msdn.microsoft.com/en-us/library/bb510680.aspx" target="_blank">behaviour</a> of new features.  New features might work with older compatibility level but you may have to modify SET options.</p>
<p>An upgraded database retains its compatibility level unless the compatibility level is altered after the database is upgraded.</p>
<pre class="brush: sql; title: ; notranslate"> ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 } </pre>
<p>
<h2>SQL Server 2012 and Upgrade Paths</h2>
<p>Microsoft has published the <a href="http://blogs.msdn.com/b/petersad/archive/2011/06/10/sql-server-code-name-denali-next-version-of-sql-server-supported-oses-and-upgrade-paths.aspx">matrix of supported operating system for the next version of SQL Server</a> and the supported upgrade paths.</p>
<p>Upgrades will only be supported from the following SQL Server versions:</p>
<ul>
<li>SQL Server 2005 Service Pack 4 or later</li>
<li>SQL Server 2008 Service Pack 2 or later</li>
<li>SQL Server 2008 R2 Service Pack 1 or later</li>
</ul>
<p>This implies that &#8220;Denali&#8221; will only support the following database compatibility levels.</p>
<ul>
<li>90 = SQL 2005</li>
<li>100 = SQL 2008</li>
<li>110 = SQL 2012</li>
</ul>
<p>Customers with databases on down-level versions of SQL Server should start early to review their migration options and upgrade to a &#8220;Denali&#8221; supported version of SQL Server.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.winsql.com/2011/07/25/database-version-edition-and-compatibility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Design Patterns: What&#8217;s in a name?</title>
		<link>http://www.winsql.com/2011/07/25/234/</link>
		<comments>http://www.winsql.com/2011/07/25/234/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 11:12:39 +0000</pubDate>
		<dc:creator>wiadmin</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[database design]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[guidelines]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[standards]]></category>

		<guid isPermaLink="false">http://www.winsql.com/?p=234</guid>
		<description><![CDATA[Jeff Atwood wrote in 2007 on how discipline makes strong developers and expanded on Scott Koon’s post about the importance of discipline as a developer trait: But there is one quality that all successful developers possess. One trait that will make or break every project. Discipline. An undisciplined developer will not be able to ship on time and will not write code that is easy to maintain. A disciplined developer will not only enable the success of a project, but will raise the level of productivity in others. Software architects and developers do themselves a disservice when they attribute their &#8230;]]></description>
			<content:encoded><![CDATA[<p>Jeff Atwood wrote in 2007 on how <a href="http://www.codinghorror.com/blog/archives/000931.html" target="_self">discipline makes strong developers</a> and expanded on Scott Koon’s post about the importance of discipline as a developer trait:
</p>
<blockquote><p>But there is one quality that all successful developers possess. One trait that will make or break every project.</p>
<p><strong>Discipline.</strong></p>
<p>An undisciplined developer will not be able to ship on time and will not write code that is easy to maintain. A disciplined developer will not only enable the success of a project, but will raise the level of productivity in others. Software architects and developers do themselves a disservice when they attribute their success to whatever methodology they have adopted. It really boils down to how disciplined you are.</p></blockquote>
<p></p>
<p>A recent project to restructure a legacy credit derivative system reminded me that discipline takes many forms. One of the most important aspect of software engineering discipline often overlooked by software architects and developers is the design and adoption of naming standards and conventions for their project.</p>
<p>Here are some examples of poor names from the legacy system and better names after the restructure project.</p>
<table border="0" width="100%">
<tbody>
<tr>
<td width="40"> </td>
<td><strong>Bad Names</strong></td>
<td><strong>Better Names</strong></td>
</tr>
<tr>
<td width="40"> </td>
<td>ai</td>
<td>calculation_type_id</td>
</tr>
<tr>
<td width="40"> </td>
<td>q</td>
<td>quantity</td>
</tr>
<tr>
<td width="40"> </td>
<td>RSON</td>
<td>reason_code</td>
</tr>
<tr>
<td width="40"> </td>
<td>sec_id</td>
<td>security_id</td>
</tr>
<tr>
<td width="40"> </td>
<td>sec_name</td>
<td>security_name</td>
</tr>
<tr>
<td width="40"> </td>
<td>sec_desc</td>
<td>security_description</td>
</tr>
</tbody>
</table>
<p></p>
<p>What’s is a name you may ask? A name should be clear, concise, descriptive and imply form and function where possible. Naming conventions allow the development team to design discovereability and maintainability at the heart of the project.</p>
<p>A good naming convention takes time to evolve but once it’s in place it allows the team to move forward with a common language. A good naming convention grows organically with the project. A good naming convention easily copes with changes during the longest and most important phase of the software lifecycle – service management in production.</p>
<p>Naming is hard but in every organisation there is someone who can name things and in every software team there should be someone who takes responsibility for namings standards and ensures that naming issues like ’sec_id’, ‘sec_value’ and ‘security_id’ get resolved early before they get baked into the project.</p>
<p>So what are the basic tenets of a good naming convention and standards: -</p>
<ul>
<li>Use the language of your client and your solution domain</li>
<li>Be descriptive</li>
<li>Be consistent</li>
<li>Disambiguate, reflect and refactor</li>
<li>Don’t use abbreviations unless they are clear to everyone</li>
<li>Don’t use SQL reserved keywords as column names</li>
</ul>
<p></p>
<p>For a wider perspective, Stackoverflow has some interesting <a href="http://stackoverflow.com/questions/7662/database-table-and-column-naming-conventions/7715#7715" target="_self">community answers</a> on SQL naming convention guidelines.</p>
<hr />
<em>This post was originally written in 2008 when I decided to start blogging on a (<em>not so</em>) regular basis.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.winsql.com/2011/07/25/234/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Case of the Missing Application Name</title>
		<link>http://www.winsql.com/2011/07/15/the-case-of-the-missing-application-name/</link>
		<comments>http://www.winsql.com/2011/07/15/the-case-of-the-missing-application-name/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 09:49:18 +0000</pubDate>
		<dc:creator>wiadmin</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[application name]]></category>
		<category><![CDATA[connection string]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.winsql.com/?p=223</guid>
		<description><![CDATA[Developers take great care in adding assembly attributes, like title, description, company name, product, copyright, version and culture information, to their applications. However, application names are seldom used in SQL Server connection strings. This is somewhat unfortunate as the application name can be extremely useful in troubleshooting and performance tuning. You can easily add an application name to a connection string as shown here. The application name must be 128 characters or less and defaults to &#8216;.NET SQLClient Data Provider&#8216; when no value is provided. You can now see the application name in SQL Server Management Studio Activity Monitor as &#8230;]]></description>
			<content:encoded><![CDATA[<p>Developers take great care in adding assembly attributes, like title, description, company name, product, copyright, version and culture information, to their applications.</p>
<p>However, application names are seldom used in SQL Server connection strings. This is somewhat unfortunate as the application name can be extremely useful in troubleshooting and performance tuning.</p>
<p>You can easily add an application name to a connection string as shown here.</p>
<pre class="brush: plain; title: ; notranslate">
Persist Security Info=False;Integrated Security=true;Initial Catalog=MyDatabase; _
server=(local);Application Name=MyApp
</pre>
</p>
<p>The application name must be 128 characters or less and defaults to &#8216;<em>.NET SQLClient Data Provider</em>&#8216; when no value is provided.</p>
<p>You can now see the application name in</p>
<ul>
<li>SQL Server Management Studio Activity Monitor as Application</li>
<li>SQL Profiler as Application Name</li>
<li>sp_who2 as ProgramName</li>
<li>APP_NAME()</li>
<li>sys.dm_exec_sessions in program_name column (SQL Server 2005 or later)</li>
<li>sysprocesses in program_name (SQL Server 2000 or later)</li>
</ul>
</p>
<p>Trace can be filtered on Application Name.</p>
<p>Resource governor can control CPU and memory resources by application name.</p>
<p>You can also create a connection pool per application by adding the application name to connection strings.</p>
<p>For all this goodness, it makes sense to use of this optional parameter in your connection strings.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.winsql.com/2011/07/15/the-case-of-the-missing-application-name/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Books and Career Calculus</title>
		<link>http://www.winsql.com/2011/07/04/books-and-career-calculus/</link>
		<comments>http://www.winsql.com/2011/07/04/books-and-career-calculus/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 11:05:59 +0000</pubDate>
		<dc:creator>wiadmin</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://www.winsql.com/?p=214</guid>
		<description><![CDATA[Two weeks ago at SQL Cruise Alaska, I was privileged to attend Buck Woody’s (b / t) sessions on career development and communications. After two and half hours, I realized that I needed to refocus on the first derivative of my career. During the sessions, I recalled Erick Sink’s Career Calculus. Your Cluefulness(C) is the result of your natural Gifting (G) plus your rate of Learning (L) as Time (T) goes by. C = G + LT C is Cluefulness.  It is defined as an overall measure of your capabilities, expertise, wisdom and knowledge in the field of software development.  &#8230;]]></description>
			<content:encoded><![CDATA[<p>Two weeks ago at <a href="http://sqlcruise.com/2011/06/sqlcruise-alaska-wallpaper/">SQL Cruise Alaska</a>, I was privileged to attend Buck Woody’s (<a href="http://blogs.msdn.com/b/buckwoody/">b</a> / <a href="http://twitter.com/buckwoody">t</a>) sessions on career development and communications. After two and half hours, I realized that I needed to refocus on the first derivative of my career.</p>
<p>During the sessions, I recalled Erick Sink’s <a href="http://www.ericsink.com/Career_Calculus.html">Career Calculus</a>. Your Cluefulness(C) is the result of your natural Gifting (G) plus your rate of Learning (L) as Time (T) goes by.</p>
<blockquote><p><strong>C = G + LT</strong></p>
<p>C is <strong>Cluefulness</strong>.  It is defined as an overall measure of your capabilities, expertise, wisdom and knowledge in the field of software development.  It is the measure of how valuable you are to an employer.  It is the measure of how successful your career is.  When you graph your career, C is on the vertical axis.</p>
<p>G is <strong>Gifting</strong>.  It is defined as the amount of natural cluefulness you were given &#8220;at the factory&#8221;.  For each individual, G is a constant, but it definitely varies from person to person.</p>
<p>L is <strong>Learning</strong>.  It is defined as the rate at which you gain (or lose) cluefulness over time.</p>
<p>T is <strong>Time</strong>.  It is on the horizontal axis of your career graph.</p></blockquote>
<p>Your career success is determined by three variables only one which you can control. The key to a great career is focus on the rate of change of learning over time. What you want is to always have a positive L, so that you keep improving and gain more capabilities, expertise, wisdom and knowledge.</p>
<p>Buck laid down a <a href="http://blogs.msdn.com/b/buckwoody/archive/2011/06/07/head-in-the-clouds-eyes-on-the-books.aspx">challenge for everyone</a> at SQL Cruise Alaska.  The challenge is for each of us to read 12 books that will help advance our careers and review these on our respective blogs.  Here are my book choices to help increase my cluefulness:</p>
<ol>
<li><a href="http://www.amazon.co.uk/gp/product/1430229616/ref=ox_sc_act_title_1?ie=UTF8&amp;m=A3NIDACO13J8AK">Pro SQL Azure</a> by Scott Klein and Herve Roggero</li>
<li><a href="http://www.amazon.co.uk/gp/product/184968054X/ref=ox_sc_sfl_title_7?ie=UTF8&amp;m=A3P5ROKL5A1OLE">Applied Architecture Patterns on the Microsoft Platform</a> by Richard Seroter, Ewan Fairweather, Stephen W. Thomas,  Mike Sexton and Rama Ramani</li>
<li><a href="http://www.amazon.co.uk/Modernist-Cuisine-Art-Science-Cooking/dp/0982761007/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1308841298&amp;sr=1-1">Modernist Cuisine: The Art and Science of Cooking</a> by Nathan Myhrvold, Chris Young and Maxime Billet</li>
<li><a href="http://www.amazon.co.uk/Crucial-Conversations-Tools-Talking-Stakes/dp/0071401946/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1308209600&amp;sr=1-1">Crucial Conversations: Tools for Talking When  Stakes are High</a> by  Kerry Patterson, Joseph Grenny, Ron McMillan and Al Switzler</li>
<li><a href="http://www.amazon.co.uk/Fifth-Discipline-practice-learning-organization/dp/1905211201/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1308209543&amp;sr=1-1http://www.amazon.co.uk/Fifth-Discipline-practice-learning-organization/dp/1905211201/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1308209543&amp;sr=1-1">The Fifth Discipline: The art and practice of the learning organization</a> by Peter M. Senge</li>
<li><a href="http://www.amazon.co.uk/Pragmatic-Programmer-Andrew-Hunt/dp/020161622X/ref=sr_1_3?ie=UTF8&amp;qid=1308225613&amp;sr=8-3">The Pragmatic Programmer: From Journeyman to Master</a> by Andrew Hunt and David Thomas</li>
<li><a href="http://www.amazon.co.uk/Server-2008-Service-Broker-Hardback/dp/1590599993/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1308841270&amp;sr=8-1">Pro SQL Server 2008 Service Broker</a> by Klaus Aschenbrenner</li>
<li><a href="http://www.amazon.co.uk/Server-2008-Replication-Experts-Voice/dp/143021807X/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1308841541&amp;sr=8-1">Pro SQL Server 2008 Replication</a> by Sujoy Paul</li>
<li><a href="http://www.amazon.co.uk/Server-2008-Mirroring-Experts-Voice/dp/1430224231/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1308841579&amp;sr=1-1">Pro SQL Server 2008 Mirroring</a> by Robert Davis and Ken Simmons</li>
<li>On  Writing Well: The Classic Guide to Writing Nonfiction by William Zinsser</li>
<li> <a href="http://www.amazon.co.uk/Adapt-Success-Always-Starts-Failure/dp/1408701529/ref=sr_1_1?ie=UTF8&amp;qid=1308842361&amp;sr=1-1">Adapt: Why Success Always Starts with Failure</a> by Tim Harford</li>
<li><a href="http://www.amazon.co.uk/Visual-Display-Quantitative-Information/dp/0961392142/ref=sr_1_1?ie=UTF8&amp;qid=1308842713&amp;sr=8-1">The Visual Display of Quantitative Information</a> by Edward R. Tufte</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.winsql.com/2011/07/04/books-and-career-calculus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>External Audit Letters and Data Warehouse</title>
		<link>http://www.winsql.com/2010/12/13/external-audit-letters-and-data-warehouse/</link>
		<comments>http://www.winsql.com/2010/12/13/external-audit-letters-and-data-warehouse/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 19:04:03 +0000</pubDate>
		<dc:creator>wiadmin</dc:creator>
				<category><![CDATA[casestudies]]></category>

		<guid isPermaLink="false">http://web160.globalbases.com/?p=195</guid>
		<description><![CDATA[To enhance the accuracy and control of response to external audit requests from clients and their auditors, the Audit Depart of the London Branch of major European bank replaced a Microsoft Visual Basic 6.0 application with a new Microsoft Visual Basic .NET Windows form application. Given development timescale of four weeks, the Microsoft .NET Framework and Microsoft Visual Studio .NET 2003 was chosen as the development platform of choice. Business analysis revealed that the back office deals data required by the new solution was loaded separately into three Microsoft SQL Server 2000 databases using different jobs and schedules on the &#8230;]]></description>
			<content:encoded><![CDATA[<p>To enhance the accuracy and control of response to external audit requests from clients and their auditors, the Audit Depart of the London Branch of major European bank replaced a Microsoft Visual Basic 6.0 application with a new Microsoft Visual Basic .NET Windows form application. Given development timescale of four weeks, the Microsoft .NET Framework and Microsoft Visual Studio .NET 2003 was chosen as the development platform of choice. Business analysis revealed that the back office deals data required by the new solution was loaded separately into three Microsoft SQL Server 2000 databases using different jobs and schedules on the AS/400 mainframe and three distinct processes on Microsoft Windows 2000 Advanced Server. One question remained: How best to consolidate these separate data extracts into a single data warehouse solution? The bank chose a data warehouse solution based on Microsoft SQL Server 2000, Enterprise Edition.</p>
<p><strong>Client</strong><br />
London Branch of Major European bank</p>
<p><strong>Customer Profile </strong><br />
The bank attracts deposits and provides banking services. The bank offers mortgage, consumer, and corporate loans, securities trading, insurance, and credit card services. The bank manages investment funds, offers private banking and structured finance services, advises on mergers, acquisitions, buy-ins, and buy-outs, and underwrites securities issues. The bank operates about 2.5 million private customer accounts and about 800,000 business accounts.</p>
<p><strong>Business Situation </strong><br />
Develop and deploy a reliable, trusted application to respond to adhoc audit requests from clients and their auditors in London.</p>
<p><strong>Solution Description</strong><br />
To enhance the accuracy and control of response to external audit request from clients and their auditors, the Audit Depart  of the London Branch of major European bank replaced a Microsoft Visual Basic 6.0 application with a new Microsoft Visual Basic .Net Windows form application. Given development timescale of four weeks, the Microsoft .NET Framework and Microsoft Visual Studio .NET 2003 was chosen as the development platform of choice. Business analysis revealed that the back office deals data required by the new solution was loaded separately into three Microsoft SQL Server 2000 databases using different jobs and schedules on the AS/400 mainframe and three distinct processes on Microsoft Windows 2000 Advanced Server. One question remained: How best to consolidate these separate data extracts into a single data warehouse solution? The bank chose a data warehouse solution based on Microsoft SQL Server 2000, Enterprise Edition. Performance and availability is guaranteed by using a Compaq DL-580 dual processor 2-node cluster in active-active configuration running Microsoft Windows 2000 Advanced Server with Clustering Services.</p>
<p><strong>Benefits</strong></p>
<ul>
<li>Enhanced accuracy, control and reduced reputational risk in handling external audit requests from clients and their auditors</li>
<li>Reliable, trusted application to respond to adhoc audit requests.Streamlined data warehouse solution for deals data from back office system.</li>
<li>Greater developer productivity with  Microsoft .NET Framework and Microsoft Visual Studio .NET 2003 to help deliver a solution within shot timescales.</li>
<li>Simplified, lower-cost application support and  systems administration.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.winsql.com/2010/12/13/external-audit-letters-and-data-warehouse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Misys Meridian Middleware Implementation</title>
		<link>http://www.winsql.com/2010/12/13/189/</link>
		<comments>http://www.winsql.com/2010/12/13/189/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 18:53:18 +0000</pubDate>
		<dc:creator>wiadmin</dc:creator>
				<category><![CDATA[casestudies]]></category>

		<guid isPermaLink="false">http://web160.globalbases.com/?p=189</guid>
		<description><![CDATA[The London Branch of Major European bank Replaced Manual Deal Input from Reuters Kondor+ Front-Office Dealing System into Misys Midas BackOffice with a Straight Through Processing Solution using Misys Meridian Middleware, IBM MQSeries and Microsoft SQL Server 2000, Enterprise Edition and Microsoft Windows 2000 Advanced Server with Clustering Services A number of technical architecture options were evaluated with the key question: How to leverage the existing skills set and investment in Microsoft SQL Server 2000 and provide a reliable lower cost solution? The chosen solution also included an intranet site (Observatory) hosted on Microsoft Internet information Server using Active Server &#8230;]]></description>
			<content:encoded><![CDATA[<p>The London Branch of Major European bank Replaced Manual Deal Input from Reuters Kondor+ Front-Office Dealing System into Misys Midas BackOffice with a Straight Through Processing Solution using Misys Meridian Middleware, IBM MQSeries and Microsoft SQL Server 2000, Enterprise Edition and Microsoft Windows 2000 Advanced Server with Clustering Services</p>
<p>A number of technical architecture options were evaluated with the key question: How to leverage the existing skills set and investment in Microsoft SQL Server 2000 and provide a reliable lower cost solution? The chosen solution also included an intranet site (Observatory) hosted on Microsoft Internet information Server using Active Server Pages (ASP) for monitoring transaction status, throughput and management information within Misys Meridian Middleware Repository and a Microsoft Visual Basic 6.0 application ( Prospero) for the maintenance of static data required by the new interface. Business logic is encapsulated in stored procedures and data transformations from the Reuters Kondor+ front-office dealing system are encapsulated in Data Transformation Services (DTS) packages for maintainability and recoverability. Performance and availability is guaranteed by using a Compaq DL-5000 2- node cluster in active-active configuration running Microsoft Windows 2000 Advanced Server with Clustering Services.<br />
Customer Profile The bank attracts deposits and provides banking services. The bank offers mortgage, consumer, and corporate loans, securities trading, insurance, and credit card services. The bank manages investment funds, offers private banking and structured finance services, advises on mergers, acquisitions, buy-ins, and buy-outs, and underwrites securities issues. The bank operates about 2.5 million private customer accounts and about 800,000 business accounts.</p>
<p><strong>Client:</strong> The London Branch of a Major European Bank</p>
<p><strong>Business Situation </strong><br />
Develop and deploy a straight through processing interface between Reuters Kondor+ front-office dealing system and Misys Midas BackOffice.</p>
<p><strong> Solution Description</strong><br />
The London Branch of a major European bank replaced manual deal input from Reuters Kondor+ into Misys Midas with a straight through processing solution using Misys Meridian Middleware, IBM MQSeries, Microsoft SQL Server 2000, Enterprise Edition and Microsoft Windows 2000 Advanced Server with Clustering Services. A number of technical architecture options were evaluated with the key question: How to leverage the existing skills set and investment in Microsoft SQL Server 2000 and provide a reliable lower cost solution? The chosen solution also include an intranet site (Observatory) hosted on Microsoft Internet information Server using Active Server Pages for monitoring transaction status, throughput and management information within the Misys meridian Middleware Repository and a Microsoft Visual Basic 6.0 application (Prospero) for the maintenance of static data required by the new interface. Business logic is encapsulated in stored procedures and data transformations from the Reuters Kondor front-office dealing system are encapsulated in Data Transformation Services (DTS) packages for maintainability and recoverability.  Performance and availability is guaranteed by using a Compaq DL-5000 2- node cluster in active-active configuration running Microsoft Windows 2000 Advanced Server with Clustering Services.</p>
<p><strong>Benefits</strong></p>
<ul>
<li>Improved control and greatly reduced operational risk in deal input.</li>
<li>Reliable, high-performance, trusted and flexible infrastructure in the middle office.</li>
<li>Modular solution which builds on expertise of project team in Microsoft technologies.</li>
<li>Greater agility through flexible resource re-allocation.Simplified, lower-cost application support and  systems administration.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.winsql.com/2010/12/13/189/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Application Support Services</title>
		<link>http://www.winsql.com/2009/05/22/application-support-services/</link>
		<comments>http://www.winsql.com/2009/05/22/application-support-services/#comments</comments>
		<pubDate>Fri, 22 May 2009 19:00:50 +0000</pubDate>
		<dc:creator>wiadmin</dc:creator>
				<category><![CDATA[casestudies]]></category>

		<guid isPermaLink="false">http://web160.globalbases.com/?p=86</guid>
		<description><![CDATA[London Branch of a Major European Bank Bank Outsources High Availability Application Support Services to WinSQL as Part of Ongoing Long Term Business Relationship in London As part of a long term ongoing relationship, the London Branch of major European bank outsourced high availability application support services to Windows &#38; SQL Programmers Ltd (WinSQL). A service level agreement was agreed between the bank and WinSQL to provide on-site support from 08:30 to 18:00 Monday-Friday. The service includes incident troubleshooting through problem resolution and includes the escalation and tracking of incidents with third party vendors. The service has been expanded to &#8230;]]></description>
			<content:encoded><![CDATA[<p><strong>London Branch of a Major European Bank</strong></p>
<p><em>Bank Outsources High Availability Application Support Services to WinSQL as Part of Ongoing Long Term Business Relationship in London</em></p>
<p>As part of a long term ongoing relationship, the London Branch of major European bank outsourced high availability application support services to Windows &amp; SQL Programmers Ltd (WinSQL). A service level agreement was agreed between the bank and WinSQL to provide on-site support from 08:30 to 18:00 Monday-Friday. The service includes incident troubleshooting through problem resolution and includes the escalation and tracking of incidents with third party vendors. The service has been expanded to meet the bank ongoing requirements to include a number of third-party software and applications in addition to internally developed Microsoft Visual Basic and Microsoft SQL Server   applications.</p>
<p><strong>Business Situation</strong></p>
<p>The Bank attracts deposits and provides banking services. The Bank offers mortgage, consumer, and corporate loans, securities trading, insurance, and credit card services. The bank manages investment funds, offers private banking and structured finance services, advises on mergers, acquisitions, buy-ins, and buy-outs, and underwrites securities issues. The bank operates about 2.5 million private customer accounts and about 800,000 business   accounts.</p>
<p><strong>Background</strong></p>
<p>As part of a long term ongoing relationship, the London Branch of major European bank outsourced high availability application support services to Windows &amp; SQL Programmers Ltd.</p>
<p>A service level agreement was agreed between the bank and WinSQL to provide on-site support from 08:30 to 18:00 Monday-Friday. The service covers incident troubleshooting through problem resolution and includes the escalation and tracking of incidents with third party vendors&#8217; technical support services. The service initially covered only in-house developed Microsoft Visual Basic and Microsoft SQL Server applications. Due to WINSQL&#8217;s continued high standards and quality in service delivery, the service has been expanded to meet the bank&#8217;s ongoing requirements to include the following third-party   software:</p>
<ul>
<li>All   internally   developed   Microsoft   Visual   Basic and Microsoft   SQL Server applications</li>
<li>Microsoft Windows family of   operating systems</li>
<li>Microsoft Office System and applications</li>
<li>Sybase  Open Client</li>
<li>IBM  MQSeries IBM Client Access</li>
<li>Hardcat  Fixed Assets Inc Hardcat</li>
<li>GoldMine  Software Corporation Heat</li>
<li>Sunguard  IntelliMatch</li>
<li>Sunguard IntelliTracs</li>
</ul>
<p><strong>Benefits</strong></p>
<p><em>Dedicated Resource</em></p>
<p>A dedicated support professional trained to a premium Microsoft certification level is available on-site and integrated within the IT department&#8217;s help desk team with access to second and third level support through Windows &amp; SQL programmers Ltd and software vendors partner programmes. In particular with in-house developed application, the service provides a framework in which application support services, previously done by the development team, can be formally handed over to application supports with appropriate documentation, procedures,   and training.</p>
<p><em>Flexibility</em></p>
<p>The service offers great flexibility. The service operates on all Euro business working days including UK bank holidays. All version of third party applications are supported. The delivery of the application support services can be tailored to the bank&#8217;s requirements &#8211; on-site or via telephone   support.</p>
<p><em>Great value</em></p>
<p>Application support services offers great value with an average cost  per user of £5 per week.</p>
<p>Microsoft Windows Server System is the comprehensive, integrated, and interoperable server infrastructure that helps reduce the complexity and costs of building, deploying, connecting, and operating agile business solutions. Windows Server System helps customers create new value for their business through the strategic use of their IT assets. With the Windows Server platform as the foundation, Windows Server System delivers dependable infrastructure for data management and analysis; enterprise integration; customer, partner, and employee portals; business process automation; communications and collaboration; and core IT operations including security, deployment, and systems   management.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.winsql.com/2009/05/22/application-support-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Timesheet Application</title>
		<link>http://www.winsql.com/2008/08/03/timesheet-application/</link>
		<comments>http://www.winsql.com/2008/08/03/timesheet-application/#comments</comments>
		<pubDate>Sun, 03 Aug 2008 17:05:03 +0000</pubDate>
		<dc:creator>wiadmin</dc:creator>
				<category><![CDATA[casestudies]]></category>

		<guid isPermaLink="false">http://web160.globalbases.com/?p=98</guid>
		<description><![CDATA[The IT Department in London Branch of major European bank implemented a flexible and inexpensive solution for time, annual leave and absence recording that leverages the bank&#8217;s investment in Microsoft Exchange 2000 Server using Microsoft Outlook forms, a Microsoft SQL Server 2000, Enterprise Edition database and Microsoft Access 2000 for management reporting to help in the efficient allocation of project and support costs and effective management of annual leave and absences. Client: London Branch of a Major European Bank Customer Profile The bank attracts deposits and provides banking services. The bank offers mortgage, consumer, and corporate loans, securities trading, insurance, &#8230;]]></description>
			<content:encoded><![CDATA[<p>The IT Department in London Branch of major European bank implemented a flexible and inexpensive solution for time, annual leave and absence recording that leverages the bank&#8217;s investment in Microsoft Exchange 2000 Server using Microsoft Outlook forms, a Microsoft SQL Server 2000, Enterprise Edition database and Microsoft Access 2000 for management reporting to help in the efficient allocation of project and support costs and effective management of annual leave and absences.</p>
<p><strong>Client:<br />
</strong>London Branch of a Major European Bank</p>
<p><strong>Customer Profile </strong><br />
The bank attracts deposits and provides banking services. The bank offers mortgage, consumer, and corporate loans, securities trading, insurance, and credit card services. The bank manages investment funds, offers private banking and structured finance services, advises on mergers, acquisitions, buy-ins, and buy-outs, and underwrites securities issues. The bank operates about 2.5 million private customer accounts and about 800,000 business accounts.</p>
<p><strong>Business Situation </strong><br />
Develop and deploy a flexible, inexpensive solution for time, annual leave and absence recording application in London.</p>
<p><strong>Solution Description </strong><br />
The IT department in London implemented a flexible and inexpensive solution for time, annual leave and absence recording to leverages the bank&#8217;s investment in Microsoft Exchange 2000 Server using Microsoft Outlook forms,  a Microsoft SQL Server 2000, Enterprise Edition database and Microsoft Access 2000 for management reporting to help in the efficient allocation of project and support costs and the effective management of annual leave and absences.</p>
<p><strong>Benefits</strong></p>
<ul>
<li>Improved and efficient allocation of project and support costs.</li>
<li>Effective management of annual leave and absences for the IT department.</li>
<li>Flexible, inexpensive, solution for time, annual leave and absence recording application.</li>
<li>Simplified, lower-cost application support and  systems administration.Smooth deployment across mix of desktop platforms and Microsoft Office versions.</li>
<li>Leverages existing investment in Microsoft Exchange 2000 platform</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.winsql.com/2008/08/03/timesheet-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

