<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4666686089310437101</id><updated>2011-11-06T11:04:12.140-08:00</updated><category term='Client side scripts'/><category term='Crystal Reports'/><category term='JQuery'/><category term='Indian Cuisines'/><category term='MVC'/><category term='Technology'/><category term='Programming'/><category term='ExtJS'/><category term='ASP.NET'/><category term='Food'/><category term='Bellevue'/><title type='text'>Nothing is impossible</title><subtitle type='html'>This space is reserved for technology, programming, food reviews, movie reviews and my experiences ...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nimish-bhonsale.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://nimish-bhonsale.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nims</name><uri>http://www.blogger.com/profile/03546385158927054125</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_zynINnTvBbE/SkMgiL2IdNI/AAAAAAAABhM/M4AlTLIAMN4/S220/Nimish(2009).JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4666686089310437101.post-3627256583591604351</id><published>2011-07-16T11:19:00.001-07:00</published><updated>2011-07-16T11:27:01.588-07:00</updated><title type='text'>SSIS - Never expected it to be so good ...</title><content type='html'>For past 6 months I am looking into SSIS (SQL Server Integration Services) as a ETL technology. Frankly, I never expected that it would be so mature a platform. With SSIS Microsoft directly competes with Informatica (which has ben around for years) in ETL space. At first glance it looked as a battle between a mouse and a dinosaur. However, Microsoft's Business Intelligence Suite is gradually gaining pace and recognition. It is now a very mature platform. The suite consists of Integration Services, Analysis Services and Reporting Services. It has a development environment in form of BIDS (Business Intelligence Studio) which is ok. The provision for C# based custom scripts is quite good. The framework options are also reasonable. The SQL Data validation options are pretty ok. However, debugging the C# custom scripts is still a pain. Overall it is a decent bet given the fact that it ships free with SQL Server as compared to the costs associated with Informatica.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4666686089310437101-3627256583591604351?l=nimish-bhonsale.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimish-bhonsale.blogspot.com/feeds/3627256583591604351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nimish-bhonsale.blogspot.com/2011/07/ssis-never-expected-it-to-be-so-good.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/3627256583591604351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/3627256583591604351'/><link rel='alternate' type='text/html' href='http://nimish-bhonsale.blogspot.com/2011/07/ssis-never-expected-it-to-be-so-good.html' title='SSIS - Never expected it to be so good ...'/><author><name>Nims</name><uri>http://www.blogger.com/profile/03546385158927054125</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_zynINnTvBbE/SkMgiL2IdNI/AAAAAAAABhM/M4AlTLIAMN4/S220/Nimish(2009).JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4666686089310437101.post-835153398415323494</id><published>2011-07-16T11:12:00.000-07:00</published><updated>2011-07-16T11:18:42.633-07:00</updated><title type='text'>WF 4.0 State machine workflow</title><content type='html'>Recently, I have been working on WF 4.0. On the look of it Workflow Foundation looks pretty impressive. The XAML based designer for developing the workflow is pretty responsive. I got a chance to evaluate State Machine workflow and did manage a quick Proof of Concept within just a day or two. The persistence and tracking capabilities with SQL Server are good and robust. However, not support for Oracle persistence which means develop you own custom instance store to persist long running workflows. Hmmm.. something not very impressive ... It is light and performance of WF 4.0 is 10 times faster than that of WF 3.0. However, there are few concerns around testability of XAML based workflow and also maintainability. One needs to carefully devise a strategy to migrate the existing workflow instances when a workflow undergoes a version change. It has decent support for transactions, exception handling and bookmarking. Overall I am pleased with what is on the plate!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4666686089310437101-835153398415323494?l=nimish-bhonsale.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimish-bhonsale.blogspot.com/feeds/835153398415323494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nimish-bhonsale.blogspot.com/2011/07/wf-40-state-machine-workflow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/835153398415323494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/835153398415323494'/><link rel='alternate' type='text/html' href='http://nimish-bhonsale.blogspot.com/2011/07/wf-40-state-machine-workflow.html' title='WF 4.0 State machine workflow'/><author><name>Nims</name><uri>http://www.blogger.com/profile/03546385158927054125</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_zynINnTvBbE/SkMgiL2IdNI/AAAAAAAABhM/M4AlTLIAMN4/S220/Nimish(2009).JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4666686089310437101.post-7263919785365998281</id><published>2011-07-16T11:05:00.000-07:00</published><updated>2011-07-16T11:12:42.805-07:00</updated><title type='text'>WPF 4.0</title><content type='html'>Windows Presentation Foundation (WPF) is Microsoft's user interface technology ... aa much much advanced version of so called "Windows development". It has great graphic capabilities, very responsive and with a great control toolkit. With Expression Studio as far as creativity and rich user experience goes sky is the limit. It has a strong MVVM (Model-View-ViewModel) pattern .. pretty much on the lines of Model-View -Provider. A strong Prism (advanced Composite Application Block) library with unity container for IoC makes enterprise development pretty elegant. Overall the roadmap for WPF looks very promising. With Silverlight which is a subset of WPF for web, Microsoft has captured the attention of developers towards rich user experience on web too. Definitely WPF and Silverlight are excellent technologies to watch out for in future!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4666686089310437101-7263919785365998281?l=nimish-bhonsale.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimish-bhonsale.blogspot.com/feeds/7263919785365998281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nimish-bhonsale.blogspot.com/2011/07/wpf-40.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/7263919785365998281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/7263919785365998281'/><link rel='alternate' type='text/html' href='http://nimish-bhonsale.blogspot.com/2011/07/wpf-40.html' title='WPF 4.0'/><author><name>Nims</name><uri>http://www.blogger.com/profile/03546385158927054125</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_zynINnTvBbE/SkMgiL2IdNI/AAAAAAAABhM/M4AlTLIAMN4/S220/Nimish(2009).JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4666686089310437101.post-5750201636419625548</id><published>2010-04-18T09:46:00.000-07:00</published><updated>2010-04-18T10:23:33.642-07:00</updated><title type='text'>Workflow and .NET</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;b&gt;What is a workflow?&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;A worklfow is a sequence of steps or activities. It depicts interation between humans and the systems. The flow is often depicted using a document that is passed from one step to another.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;b&gt;Elements in a workflow&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Steps: These include steps such as Start,Fail,Suspend,Decision,Custom etc.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Document: Contains the details that are passed across various steps.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Document Fields: These are details contained in a document.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Sequence of steps: Indicates which is next step for a specific step&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Users and Roles: Users and their roles within the workflow&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Condition: Conditions that trigger the steps.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Handlers: Handle specific events&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;b&gt;Workflow Technology in .NET&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;Windows Workflow Foundation is one of the important additions to the .NET 3.0 technologies. It looks promising and worth an evaluation. It is in-process, has a decent designer integrated with Visual Studio and a service interface. However, the key factors for me are Persistence mechanism, Performance and scalability, Clean interaction mechanism with web applications. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Here is the link that describes this technolgy in more details: http://msdn.microsoft.com/library/dd851337.aspx&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4666686089310437101-5750201636419625548?l=nimish-bhonsale.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimish-bhonsale.blogspot.com/feeds/5750201636419625548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nimish-bhonsale.blogspot.com/2010/04/workflow-and-net.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/5750201636419625548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/5750201636419625548'/><link rel='alternate' type='text/html' href='http://nimish-bhonsale.blogspot.com/2010/04/workflow-and-net.html' title='Workflow and .NET'/><author><name>Nims</name><uri>http://www.blogger.com/profile/03546385158927054125</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_zynINnTvBbE/SkMgiL2IdNI/AAAAAAAABhM/M4AlTLIAMN4/S220/Nimish(2009).JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4666686089310437101.post-2761165518214352711</id><published>2010-04-18T09:27:00.000-07:00</published><updated>2010-04-18T09:46:10.524-07:00</updated><title type='text'>Test Driven Development (TDD)</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;What is TDD?&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Test Driven Development (TDD) is a software technique that relies on testing (in an automated fashion) the unit of work before implementing it. &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;It is based on the principle “&lt;/span&gt;&lt;/font&gt;&lt;i&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Red-Green-Refactor&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;”&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Red&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; implies fail&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Green&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; implies pass&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Refactor&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; the code still ensuring that the test passes.&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;TDD has its roots in extreme programming. In TDD the software developer first writes a test that fails. The developer then writes the code to make the failing test pass. Finally, the code is refactored and the test is verified to ensure that it still passes.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;There are quite a number of tools available for TDD. A combination of Nunit (for writing unit tests), NMock (a mocking framework) and Cruise Control.Net (for continuous integration) works well for .NET developers. The test contains assertion indicating the success or failure of the test.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Few Dos and the Don’ts for TDD&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpFirst" style="text-indent:-.25in;mso-list:l0 level1 lfo1"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;font&gt;&lt;font&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Write unit test only for the intended target&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: georgia; font-size: small; "&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;Choose a test name to clearly indicate the intention of the test&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;font&gt;&lt;font&gt;&lt;font style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Write the test as fail first and not pass first i.e. write test to fail and not pass in all cases.&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font&gt;&lt;font&gt;&lt;font style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Write separate unit tests to test separate functionalities rather than reuse the existing ones.&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font&gt;&lt;font&gt;&lt;font style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Do not write unit tests that run incredibly slow. Use mocks instead of slow interfaces.&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font&gt;&lt;font&gt;&lt;font style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Avoid excessive code in setup to set the data for testing the target.&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font&gt;&lt;font&gt;&lt;font style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Avoid God Objects (overdependence on functionality that are center of the implementation)&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: georgia; font-size: small; "&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;Avoid over use of mock objects&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: georgia; font-size: small; "&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;Do not compromise on encapsulation and data hiding to achieve 100% code coverage&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: georgia; font-size: small; "&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;Do not use one unit test to generate data for another unit test&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: georgia; font-size: small; "&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;Do not make environment specific assumption.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: georgia; font-size: small; "&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;Do not use logging or tracing if the test passes.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpFirst" style="text-indent:-.25in;mso-list:l0 level1 lfo1"&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;                        &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Few Useful links&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://weblogs.asp.net/scottdockendorf/archive/2004/10/06/238811.aspx"&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://weblogs.asp.net/scottdockendorf/archive/2004/10/06/238811.aspx&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa730844(VS.80).aspx"&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://msdn.microsoft.com/en-us/library/aa730844(VS.80).aspx&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://codebetter.com/blogs/darrell.norton/articles/50337.aspx"&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://codebetter.com/blogs/darrell.norton/articles/50337.aspx&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://martinfowler.com/articles/mocksArentStubs.html"&gt;&lt;font class="Apple-style-span" face="georgia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://martinfowler.com/articles/mocksArentStubs.html&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4666686089310437101-2761165518214352711?l=nimish-bhonsale.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimish-bhonsale.blogspot.com/feeds/2761165518214352711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nimish-bhonsale.blogspot.com/2010/04/test-driven-development-tdd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/2761165518214352711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/2761165518214352711'/><link rel='alternate' type='text/html' href='http://nimish-bhonsale.blogspot.com/2010/04/test-driven-development-tdd.html' title='Test Driven Development (TDD)'/><author><name>Nims</name><uri>http://www.blogger.com/profile/03546385158927054125</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_zynINnTvBbE/SkMgiL2IdNI/AAAAAAAABhM/M4AlTLIAMN4/S220/Nimish(2009).JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4666686089310437101.post-1913755547071459500</id><published>2010-01-25T19:56:00.000-08:00</published><updated>2010-01-26T04:07:12.501-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Effective software development using SCRUM</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_zynINnTvBbE/S17aCnVSn3I/AAAAAAAABmU/sQkeG5p2a7g/s1600-h/ScrumLargeLabelled.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 149px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5431017939108274034" border="0" alt="" src="http://1.bp.blogspot.com/_zynINnTvBbE/S17aCnVSn3I/AAAAAAAABmU/sQkeG5p2a7g/s320/ScrumLargeLabelled.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;strong&gt;What is SCRUM?&lt;/strong&gt;&lt;br /&gt;SCRUM is an iterative incremental framework and is a perfect fit for small self organizing software teams. It is rapidly being adopted by the developer community. Below I have put a quick brief of the process based on my experience of participating in the same.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Who is involved ...&lt;/strong&gt;&lt;br /&gt;The key roles in SCRUM are: &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Scrum Master: person responsible for maintaining the processes&lt;/li&gt;&lt;li&gt;Product Owner: person who represents the stake holders&lt;/li&gt;&lt;li&gt;The Team: typically 5-9 cross-functional persons&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The stakeholders interact with the Product Owner while the team focuses on the deliverables.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Artifacts ...&lt;/strong&gt;&lt;br /&gt;The list of all the product features (typically written in form of &lt;em&gt;User Stories&lt;/em&gt;) are prioritized by the Product Owner and listed in the &lt;em&gt;Product Backlog&lt;/em&gt;. During each iteration called a &lt;em&gt;Sprint &lt;/em&gt;(of 2-4 weeks duration) a potentially shippable set of user stories from the product backlog is included in the &lt;em&gt;Sprint Backlog&lt;/em&gt;. The selection is purely based on priority computed using business value and effort needed to implement. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;A user story included in the sprint backlog is further divided into more manageable tasks. Typically a task spans 12-15 hours and a day consists of 6 hours. A publicly displayed &lt;em&gt;Burndown Chart&lt;/em&gt; daily tracks the progress of the team during a sprint.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Meetings ..&lt;/strong&gt;&lt;br /&gt;There are a bunch of ceremonies the team needs to participate in. &lt;/div&gt;&lt;ul&gt;&lt;li&gt;Sprint Planning : 6-8 hours begining of each sprint for planning and estimation&lt;/li&gt;&lt;li&gt;Sprint Review : 3-5 hours end of each sprint to review and demo the sprint deliverable&lt;/li&gt;&lt;li&gt;Sprint Retrospective : 3-5 hours end of each sprint to reflect on the completed sprint and brainstorm over the scope for improvements&lt;/li&gt;&lt;li&gt;Daily Scrum : Not more than 15 mins. during which each team member answers 3 Qs: &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;                                   Q1 - What did I do yesterday? &lt;/p&gt;&lt;p&gt;                                  Q2 -What will I do today? &lt;/p&gt;&lt;p&gt;                                  Q3 -Is there anything in my way? &lt;/p&gt;&lt;div&gt;During the sprint planning meeting, the team collectively estimates the tasks using techniques such as Planning Poker. Each team member voluntarily picks up a task based on his velocity. &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;strong&gt;The Advantages ..&lt;/strong&gt; &lt;/div&gt;&lt;div&gt;Significant advantages of adopting SCRUM:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Focuses on business value, stakeholder participation and collective ownership of the product by the team&lt;/li&gt;&lt;li&gt;Fits very well with agile practices such as pair programming, continuous integration, test driven development.&lt;/li&gt;&lt;li&gt;Effective in adapting to changing business needs. &lt;/li&gt;&lt;li&gt;The team is small, more focused and productive.&lt;/li&gt;&lt;li&gt;Stakeholders can see working software more frequently&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4666686089310437101-1913755547071459500?l=nimish-bhonsale.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimish-bhonsale.blogspot.com/feeds/1913755547071459500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nimish-bhonsale.blogspot.com/2010/01/effective-software-development-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/1913755547071459500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/1913755547071459500'/><link rel='alternate' type='text/html' href='http://nimish-bhonsale.blogspot.com/2010/01/effective-software-development-using.html' title='Effective software development using SCRUM'/><author><name>Nims</name><uri>http://www.blogger.com/profile/03546385158927054125</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_zynINnTvBbE/SkMgiL2IdNI/AAAAAAAABhM/M4AlTLIAMN4/S220/Nimish(2009).JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zynINnTvBbE/S17aCnVSn3I/AAAAAAAABmU/sQkeG5p2a7g/s72-c/ScrumLargeLabelled.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4666686089310437101.post-772584339045746873</id><published>2009-09-10T20:55:00.000-07:00</published><updated>2009-09-10T21:13:01.208-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='Client side scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='ExtJS'/><title type='text'>Client side scripting libraries - RIA</title><content type='html'>While surfing over the internet I came across couple of exce&lt;span style="font-family: trebuchet ms;font-size:100%;" &gt;llent lightweight open source&lt;/span&gt;&lt;span style="font-family: trebuchet ms;font-size:100%;" &gt; client s&lt;/span&gt;ide  libraries. These libraries make Rich Internet Application (RIA) development look so easy and powerful.&lt;br /&gt;&lt;br /&gt;http://jqueryui.com/&lt;br /&gt;http://www.extjs.com/&lt;br /&gt;&lt;br /&gt;The significant advantages include:&lt;br /&gt;- Abstraction of lower lever javascript complexities&lt;br /&gt;- Good effects&lt;br /&gt;- Excellent themes&lt;br /&gt;&lt;br /&gt;Microsoft decides to ship JQuery with Visual Studio&lt;br /&gt;For more details visit ...&lt;br /&gt;http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4666686089310437101-772584339045746873?l=nimish-bhonsale.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimish-bhonsale.blogspot.com/feeds/772584339045746873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nimish-bhonsale.blogspot.com/2009/09/client-side-scripting-libraries-ria.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/772584339045746873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/772584339045746873'/><link rel='alternate' type='text/html' href='http://nimish-bhonsale.blogspot.com/2009/09/client-side-scripting-libraries-ria.html' title='Client side scripting libraries - RIA'/><author><name>Nims</name><uri>http://www.blogger.com/profile/03546385158927054125</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_zynINnTvBbE/SkMgiL2IdNI/AAAAAAAABhM/M4AlTLIAMN4/S220/Nimish(2009).JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4666686089310437101.post-2038809978947958999</id><published>2009-06-24T22:59:00.000-07:00</published><updated>2009-06-24T23:35:52.124-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET MVC - Hopefully a good learning experience</title><content type='html'>&lt;div align="justify"&gt;&lt;span &gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span &gt;One of the things on my learning list is ASP.NET MVC. Its still in its early stages and not yet a mature framework ... however it has a good potential to be a killer framework .. Currently, there are plenty of Helper libraries available on the Internet and Codeplex to fill in the missing pieces. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span &gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span &gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span &gt;I am sure the Architecture Gurus and critiques would not have appreciated the framework that Microsoft has come up with. But people .. its just a 1.0 version. It has still a long way to go .. Even ASP.NET took years of quality development to reach where it is today .. I am hoping to see this platform mature with time. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span &gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span &gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span &gt;I intend to learn the MVC framework soon ... Here are a few links for anyone wishes to get his feet wet ... &lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span &gt;ASP.NET MVC Official site: &lt;/span&gt;&lt;a href="http://www.asp.net/mvc/"&gt;&lt;span &gt;http://www.asp.net/mvc/&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span &gt;Scott Guthrie's blog: &lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx"&gt;&lt;span &gt;http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx&lt;/span&gt;&lt;/a&gt;&lt;span &gt; &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span &gt;MVC Contrib: &lt;/span&gt;&lt;a href="http://www.codeplex.com/MVCContrib"&gt;&lt;span &gt;http://www.codeplex.com/MVCContrib&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span &gt;AJAX MVC: &lt;/span&gt;&lt;a href="http://www.codeplex.com/ajaxmvc"&gt;&lt;span &gt;http://www.codeplex.com/ajaxmvc&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span &gt;UI Toolkit for MVC: &lt;/span&gt;&lt;a href="http://telerikwatch.com/2009/01/telerik-mvc-demo-app-now-available.html"&gt;&lt;span &gt;http://telerikwatch.com/2009/01/telerik-mvc-demo-app-now-available.html&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span &gt;Spring.NET IoC + MVC using Dependency Injection: &lt;/span&gt;&lt;a href="http://devlicio.us/blogs/billy_mccafferty/archive/2008/04/04/using-spring-net-and-nhibernate-with-asp-net-mvc.aspx"&gt;&lt;span &gt;http://devlicio.us/blogs/billy_mccafferty/archive/2008/04/04/using-spring-net-and-nhibernate-with-asp-net-mvc.aspx&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="justify"&gt;&lt;span &gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span &gt;Hopefully the learning experience would be enjoyable!&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span &gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4666686089310437101-2038809978947958999?l=nimish-bhonsale.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimish-bhonsale.blogspot.com/feeds/2038809978947958999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nimish-bhonsale.blogspot.com/2009/06/aspnet-mvc-hopefully-good-learning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/2038809978947958999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/2038809978947958999'/><link rel='alternate' type='text/html' href='http://nimish-bhonsale.blogspot.com/2009/06/aspnet-mvc-hopefully-good-learning.html' title='ASP.NET MVC - Hopefully a good learning experience'/><author><name>Nims</name><uri>http://www.blogger.com/profile/03546385158927054125</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_zynINnTvBbE/SkMgiL2IdNI/AAAAAAAABhM/M4AlTLIAMN4/S220/Nimish(2009).JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4666686089310437101.post-6999837716004897429</id><published>2009-06-23T21:31:00.000-07:00</published><updated>2009-06-24T23:37:31.970-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Indian Cuisines'/><category scheme='http://www.blogger.com/atom/ns#' term='Food'/><category scheme='http://www.blogger.com/atom/ns#' term='Bellevue'/><title type='text'>Indian Cuisines in Bellevue ...</title><content type='html'>&lt;div align="justify"&gt;I am a foody and those who know me pretty much know my fascination for food. I like trying out new restaurants and nothing like "Desi khaana in Videsh" Thats the only way I keep in touch with food of India. Each weekend I visit an Indian restaurant.. so I thought I will put together the list of restaurants in Bellevue/Seattle area that I have tried out. &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I have rated them on the scale of 1 to 10. I hope to append to this list as and when it grows. &lt;div&gt;&lt;ul&gt;&lt;li&gt;Chutneys - 8 &lt;/li&gt;&lt;li&gt;Pabla - 6 &lt;/li&gt;&lt;li&gt;Taj Palace - 6&lt;/li&gt;&lt;li&gt;Kanishka - 9 (Good Sunday buffet!)&lt;/li&gt;&lt;li&gt;Mehfil - 6&lt;/li&gt;&lt;li&gt;Kabab Palace - 6 (Nice Kababs and fish pakoda) &lt;/li&gt;&lt;li&gt;Bengal Tiger - 5&lt;/li&gt;&lt;li&gt;Malay Satay Hut - 5&lt;/li&gt;&lt;li&gt;Tandoori Kitchen - 4&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Other restaurants that I have tried:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Mediterranean Kitchen - 7 &lt;/li&gt;&lt;li&gt;Thai Ginger - 6&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next on the list:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Taste of India&lt;/li&gt;&lt;li&gt;Shamiana&lt;/li&gt;&lt;li&gt;Naan &amp;amp; Curry&lt;/li&gt;&lt;li&gt;Udupi Palace / Namasthe (veg)&lt;/li&gt;&lt;li&gt;Curry Leaf&lt;/li&gt;&lt;li&gt;Haveli&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unfortunately, none of them have 10/10. But, I hope to see some better Indian food in future .... &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4666686089310437101-6999837716004897429?l=nimish-bhonsale.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimish-bhonsale.blogspot.com/feeds/6999837716004897429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nimish-bhonsale.blogspot.com/2009/06/indian-cuisines-in-bellevue.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/6999837716004897429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/6999837716004897429'/><link rel='alternate' type='text/html' href='http://nimish-bhonsale.blogspot.com/2009/06/indian-cuisines-in-bellevue.html' title='Indian Cuisines in Bellevue ...'/><author><name>Nims</name><uri>http://www.blogger.com/profile/03546385158927054125</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_zynINnTvBbE/SkMgiL2IdNI/AAAAAAAABhM/M4AlTLIAMN4/S220/Nimish(2009).JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4666686089310437101.post-336714629969617421</id><published>2009-06-23T20:57:00.000-07:00</published><updated>2009-06-24T23:37:01.429-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Crystal Reports'/><title type='text'>My first shot at Crystal Reports ....</title><content type='html'>&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Past 5 days I have spent putting my head into migrating 5 reports from Crystal Enterprise 8.5 to 10.0. I was wished "Best of Luck" when I started my task and soon I figured out what it meant. With ZERO experience on a Reporting tool I was in for some serious "fun".&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;The day 1 was spent in figuring out how to tweak the tables to get the desired result just to discover that the approach totally "rubbish" especially if you have schema changes. After breaking my head in search of right steps .. end of day 4, I came up with 5 reports .. Last day was pretty much integration with the .NET and loads of testing. I felt quite relieved that the effort was not in vain .. though I must admit it could have been much simpler .. In the past, I have seen developers crib about Crystal Reports. However, what amazes me is that it is still used by such a wide developer community. So the question is: Is the tool so bad, or are the developers struggling to learn it?In my opinion its a mix of both!&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Below are some of the things (in my opinion) which Crystal Enterprise 10.0 lacks and I hope are easier in the later versions:&lt;/div&gt;&lt;div align="justify"&gt;1. The designer is not developer friendly and does an average job.&lt;/div&gt;&lt;div align="justify"&gt;2. There is only a specific way to do a task and the developer must know how.&lt;/div&gt;&lt;div align="justify"&gt;3. The online documentation is less .. googling does not help and content in form of books is more (not my style of learning)&lt;/div&gt;&lt;div align="justify"&gt;4. The tool is not consistent and there are issues resolving the references especially if you are using Tables and columns directly as variables in the report.&lt;/div&gt;&lt;div align="justify"&gt;5. Never save the report with the Preview .. does not work!&lt;/div&gt;&lt;div align="justify"&gt;6. Using the subreports is tricky, needs parameter linking and has some limitations.&lt;/div&gt;&lt;div align="justify"&gt;7. Crystal Viewer at times gives weird results and the developer is left clueless why a specific thing is occuring .. easier solution is to reinstall the software. &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Some learnings ...&lt;/div&gt;&lt;div align="justify"&gt;1. Ask the right persons the right questions&lt;/div&gt;&lt;div align="justify"&gt;2. Know the features of a tool and requirements thoroughly before starting a task&lt;/div&gt;&lt;div align="justify"&gt;3. Never get stuck up if an approach fails .. keep thinking about alternate approaches&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Hopefully this reporting experience was a neat one and would help me somewhere down the road ...&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4666686089310437101-336714629969617421?l=nimish-bhonsale.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimish-bhonsale.blogspot.com/feeds/336714629969617421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nimish-bhonsale.blogspot.com/2009/06/my-first-shot-at-crystal-reports.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/336714629969617421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4666686089310437101/posts/default/336714629969617421'/><link rel='alternate' type='text/html' href='http://nimish-bhonsale.blogspot.com/2009/06/my-first-shot-at-crystal-reports.html' title='My first shot at Crystal Reports ....'/><author><name>Nims</name><uri>http://www.blogger.com/profile/03546385158927054125</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_zynINnTvBbE/SkMgiL2IdNI/AAAAAAAABhM/M4AlTLIAMN4/S220/Nimish(2009).JPG'/></author><thr:total>0</thr:total></entry></feed>
