<?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>Technology Bits and Bytes &#187; Uncategorized</title>
	<atom:link href="http://blogs.circlesource.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.circlesource.com</link>
	<description>CircleSource Technical Talent ShowCase</description>
	<lastBuildDate>Thu, 10 Dec 2009 20:01:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to grow in an organization</title>
		<link>http://blogs.circlesource.com/2009/04/07/how-to-grow-in-an-organization/</link>
		<comments>http://blogs.circlesource.com/2009/04/07/how-to-grow-in-an-organization/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 09:50:38 +0000</pubDate>
		<dc:creator>Sanchit Jain</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.circlesource.com/?p=378</guid>
		<description><![CDATA[I read a story in my high school English book written by a famous Indian author (I forgot the name) – There was an old blind man who used to work in a grocery store. He was very good at mathematics. He used to sit next to the shop owner. Whenever a customer bought goods [...]]]></description>
			<content:encoded><![CDATA[<p>I read a story in my high school English book written by a famous Indian author (I forgot the name) – There was an old blind man who used to work in a grocery store. He was very good at mathematics. He used to sit next to the shop owner. Whenever a customer bought goods from the shop, the owner would speak out the product list. The old man would quickly calculate the total amount payable with his impeccable strong hold on mathematics. He also had a good memory and knew the prices of all the products. One day when he came to the shop, he came to know that the owner had bought a new device called a calculator. The calculator could do all the maths and much faster! Slowly the old man became obsolete. The owner had not asked him to leave but he felt he was not doing much at the shop and became restless.</p>
<p>One day when he was sitting next to the owner as usual, with the owner doing all the maths on the calculator, the owner wanted to know the price of a product. The old man of course had this information handy through years of working in the shop. In fact he also knew how much quantity of that product was in the shop. From that day his role changed, he would advice the owner on inventory management, cost price and selling price of each product.</p>
<p>A few days later on being asked by someone what was he still doing in the shop, when the owner now had the calculator, the old man said that he had been promoted to be a manager!</p>
<p>The morale of the story is simple. To grow in an organization, make yourself replaceable. Grow your fellow employees to take your place. Growing your team should be the higher objective, and you’ll see that your own growth was a natural consequence.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.circlesource.com/2009/04/07/how-to-grow-in-an-organization/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Process Training during Induction</title>
		<link>http://blogs.circlesource.com/2009/04/03/process-training-during-induction/</link>
		<comments>http://blogs.circlesource.com/2009/04/03/process-training-during-induction/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 12:00:07 +0000</pubDate>
		<dc:creator>Sanchit Jain</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.circlesource.com/?p=364</guid>
		<description><![CDATA[It is a celebrated fact that software development is no longer an art but a science where results can be predicted to a high degree of accuracy, thanks to the processes or quality management system of an organization. The QMS of any organization is an integral part of its DNA, which predicts and maintains consistency [...]]]></description>
			<content:encoded><![CDATA[<p>It is a celebrated fact that software development is no longer an art but a science where results can be predicted to a high degree of accuracy, thanks to the processes or quality management system of an organization. The QMS of any organization is an integral part of its DNA, which predicts and maintains consistency of quality in the projects.</p>
<p>Each organization has its own unique set of processes and tools. At CircleSource we have created our own Software Development Methodology customized to suit the kind of product development we undertake in our organization. This is a simple one page document, figuratively explaining the various phases and associated deliverables. We use two main tools &#8211; SVN for version control and Trac for project management. We have customized both these tools to our needs. Besides, we have many other documented processes e.g. Release Management, Roll out of the application on the production server,  Pre Release Checks.<br />
The key is the dissemination of this information to the employees on a continual basis. It takes extreme importance for new joinees who have to be quickly taken under the wings of CircleSource&#8217; QMS. We provide training to all new employees on our tools and processes, and strive to do this within a week of their inception. No employee can be part of a live project unless he/she has undergone these trainings. This initiative, which is a combined effort of the HR/Quality Team/Engineering Team of CircleSource, ensures that our team adheres to processes and  delivers value  from day one of the project!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.circlesource.com/2009/04/03/process-training-during-induction/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dynamically creation of web controls and binding Validations Using ASP.NET</title>
		<link>http://blogs.circlesource.com/2009/02/05/dynamically-creation-of-web-controls-and-binding-with-validations/</link>
		<comments>http://blogs.circlesource.com/2009/02/05/dynamically-creation-of-web-controls-and-binding-with-validations/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 12:20:50 +0000</pubDate>
		<dc:creator>MANOJ MATHE</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[Dynamically creation of web controls and binding Validations]]></category>
		<category><![CDATA[Dynamically creation of web controls and binding Validations Using ASP.NET]]></category>

		<guid isPermaLink="false">http://blogs.circlesource.com/?p=229</guid>
		<description><![CDATA[CreatingDynamicControls_Source
Introduction:-
As we know we can bind the controls to our page (aspx) in 2 ways
1. Statically :- Binding the controls while Designing
2. Dynamically :- Binding the controls at runtime
Everyone know how to bind statically but there may be some cases where we need to bind the control dynamically .One of those cases is when our [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-236" href="http://blogs.circlesource.com/2009/02/05/dynamically-creation-of-web-controls-and-binding-with-validations/creatingdynamiccontrols2/">CreatingDynamicControls_Source</a><br />
<strong>Introduction:-</strong></p>
<p>As we know we can bind the controls to our page (aspx) in 2 ways<br />
1. Statically :- Binding the controls while Designing<br />
2. Dynamically :- Binding the controls at runtime</p>
<p>Everyone know how to bind statically but there may be some cases where we need to bind the control dynamically .One of those cases is when our controls are keep on changing like I have a registration site in which the control type may keep on changing then I may need to go for binding the controls dynamically .<br />
<strong><br />
Approach:</strong></p>
<p>For binding the controls I need the data what are the controls I want to bind and what is the id to be given and what are the properties to be provided etc.,</p>
<p>This can be provided by 2 ways </p>
<p><span id="more-229"></span></p>
<p>1. Using database (This is my approach)<br />
2. Using Xml file</p>
<p>I am creating one example (registration Page) where I am getting the data from the database as a table and based on this table I will be binding my controls to the page as we can see below</p>
<p><img class="aligncenter size-full wp-image-231" src="http://blogs.circlesource.com/wp-content/uploads/2009/02/picture1.bmp" alt="picture1" width="577" height="219" /></p>
<p>My Controls Data from database</p>
<p><strong>ControlText : </strong>- Text to be Displayed</p>
<p><strong>ControlType :</strong>-</p>
<p>1 &#8211; TextBox Control<br />
2 &#8211; DropDown Control<br />
3 &#8211; DateTime Control<br />
4 &#8211; Buttom Control</p>
<p><strong>MaxLength:</strong>- Defining the maximum length for textbox</p>
<p><strong>Manditory :</strong>- Based On this we will be binding the required field validation</p>
<p><strong>HelpText :</strong>- This is used to bind as ToolTip for the control</p>
<p><strong>Source :</strong>- Use for binding data source for dropdown controls</p>
<p><img class="aligncenter size-full wp-image-232" src="http://blogs.circlesource.com/wp-content/uploads/2009/02/picture2.bmp" alt="picture2" /></p>
<p>Page in which all the controls are generated dynamically</p>
<p><strong>Implementation:</strong></p>
<p>As we know all the server control are under System.Web.UI.WebControls namespace</p>
<p>I will be getting the tabel into a dataset for suppose the name is controlsDataSet</p>
<p><code>///<br />
/// Method usd to bind the controls<br />
///<br />
///<br />
private void BuldControls(DataSet controlsDataSet)<br />
{<br />
Table table = new Table();<br />
table.Style.Add("align", "center");</code></p>
<p>// Looping the dataset and get the values<br />
foreach (DataRow datarow in controlsDataSet.Tables[0].Rows)<br />
{<br />
int controlType =<br />
Convert.ToInt32(datarow["ControlType"].ToString());<br />
string controlText = datarow ["ControlText"].ToString();</p>
<p>TableRow newRow = new TableRow();<br />
TableCell textCell = new TableCell();</p>
<p>// Binding the text<br />
textCell.Text = controlText;<br />
newRow.Cells.Add(textCell);</p>
<p>TableCell valueCell = new TableCell();<br />
Control[] cntrlCollection=new Control[4];</p>
<p>// Checking the control Type<br />
switch(controlType)<br />
{<br />
// If TextBox<br />
case 1:<br />
cntrlCollection = this.BindTextBox(control);<br />
break;</p>
<p>// If DropDown<br />
case 2:<br />
cntrlCollection = this.BindDropDown(control);<br />
break;</p>
<p>// If DateTime<br />
case 3:<br />
cntrlCollection = this.BindDateTime(control);<br />
break;</p>
<p>// If Button<br />
case 4:<br />
cntrlCollection = this.BindButton(control);<br />
break;</p>
<p>}</p>
<p>// Adding th controls to the table cell<br />
foreach (Control cntrl in cntrlCollection)<br />
{<br />
if (cntrl != null)<br />
{<br />
valueCell.Controls.Add(cntrl);<br />
}<br />
}</p>
<p>newRow.Cells.Add(valueCell);<br />
table.Rows.Add(newRow);<br />
}</p>
<p>// Adding the table to the main panel<br />
this.pnlControls.Controls.Add(table);<br />
}</p>
<p>Creating controls dynamically is not a big matter but we have bind in such a way that when we are retriving it should not be a problem so we need to give the ids of the controls as below</p>
<p>///<br />
/// Method to bind the DropDown<br />
///<br />
///<br />
///<br />
private Control[] BindTextBox(DataRow datarow)<br />
{<br />
// Retriving the values from the datarow<br />
int controlId = Convert.ToInt32(datarow["Id"].ToString());<br />
int length = Convert.ToInt32(datarow["MaxLengh"].ToString());<br />
bool required =<br />
Convert.ToBoolean(datarow["Manditory"].ToString());<br />
string helpText = datarow["HelpText"].ToString();<br />
string controlText = datarow["ControlText"].ToString();</p>
<p>// Creating the controls array<br />
Control[] controls = new Control[4];</p>
<p>// creating the textbox<br />
TextBox textbox = new TextBox();<br />
textbox.ID = string.Concat(&#8220;txt&#8221;, controlId);<br />
textbox.ToolTip = helpText;</p>
<p>// Checking the length<br />
if (length != 0)<br />
{<br />
textbox.MaxLength = length;<br />
}</p>
<p>// Adding the textbox to the control array<br />
controls[0] = textbox;</p>
<p>// Checking id manditory<br />
if (required)<br />
{<br />
controls[1] = this.BindRequiredvalidator(controlId,<br />
textbox.ID, controlText);<br />
}<br />
return controls;<br />
}</p>
<p>Suppose I am bind for the name column the textbox id becomes like this<br />
“txt_1” and while saving also we can save accordingly.</p>
<p>So this is the way how to bind the controls and now coming to validation controls (I and using the controls provided my the VS).I am showing you a example where I am bind a validation control to textbox as shown below</p>
<p>private RequiredFieldValidator BindRequiredvalidator(int Id, string<br />
controlId, string controlText)<br />
{<br />
RequiredFieldValidator requiredFieldValidator = new<br />
RequiredFieldValidator();<br />
requiredFieldValidator.ID = string.Concat(&#8220;rfv&#8221;, Id);<br />
requiredFieldValidator.ControlToValidate = controlId;<br />
requiredFieldValidator.SetFocusOnError = true;<br />
requiredFieldValidator.ErrorMessage = string.Concat(&#8220;Enter &#8220;,<br />
controlText);<br />
return requiredFieldValidator;</p>
<p>}</p>
<p>For this method I will be passing the Id , ControlId (Like textbox control id) which need to be validated ,controlText used for error messaeges</p>
<p>And after doing all these we can see the paeg with validation controls like this</p>
<p><img class="aligncenter size-full wp-image-233" src="http://blogs.circlesource.com/wp-content/uploads/2009/02/picture3.bmp" alt="picture3" /></p>
<p>With Validation controls</p>
<p><strong>Advantages over binding controls statically:</strong></p>
<p>1. Suppose we need to add 10 controls and we are using those statically but now I need to change my control type like a textbox to be changed to dropdown then I need to change all my code once again but this easier while binding controls dynamically.<br />
2. Can bind any validation to any control dynamically.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.circlesource.com/2009/02/05/dynamically-creation-of-web-controls-and-binding-with-validations/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>UML: Usecase Diagrams and Class Diagrams</title>
		<link>http://blogs.circlesource.com/2009/02/02/uml-usecase-diagrams-and-class-diagrams/</link>
		<comments>http://blogs.circlesource.com/2009/02/02/uml-usecase-diagrams-and-class-diagrams/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 15:58:57 +0000</pubDate>
		<dc:creator>murulidhara.k</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.circlesource.com/?p=199</guid>
		<description><![CDATA[Uses Cases and Class Diagrams
The use cases and class diagrams are very useful in order to plan and designing any project. Before understanding use cases and diagrams we need to know regarding UML.
UML can be abbreviated as Unified Modeling Language, which is used in order to provide a common modeling for various
problems/projects which are platform [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><strong><span style="font-size:14.0pt;line-height:115%">Uses Cases and Class Diagrams</span></strong></p>
<p class="MsoNormal" style="text-indent:.5in">The use cases and class diagrams are very useful in order to plan and designing any project. Before understanding use cases and diagrams we need to know regarding UML.</p>
<p class="MsoNormal" style="text-indent:.5in">UML can be abbreviated as Unified Modeling Language, which is used in order to provide a common modeling for various<br />
problems/projects which are platform independent, technology independent and support purely object oriented programming languages.</p>
<p class="MsoNormal" style="text-indent:.5in">The use cases can be defined in simple word as scenario in which the given problem solution will be used and what are all the cases that may arise while using the project/solution.</p>
<p class="MsoNormal" style="text-indent:.5in">The use cases helps the system design and development easier by providing the necessary and mandatory cases that are the users of any project.  The use cases can be represented by using standard notations.  The following are the notations which are used in order derive the use cases most commonly.</p>
<p class="MsoNormal"><img class="aligncenter size-medium wp-image-218" src="http://blogs.circlesource.com/wp-content/uploads/2009/02/image001-300x123.jpg" alt="image001" width="300" height="123" /></p>
<p class="Section1">In order to understand the use cases in better way, let me explain an example, consider the video conference system as a problem/project, in order to implement this project first I need to gather the information from user/client properly once the required information is gathered by using any of the information gathering techniques, I can start on writing the use cases for video conference system.</p>
<p class="MsoNormal" style="text-indent:.5in">The use cases are formed or designed by considering the main functional requirements of the system not mapped one-to-one and it shows what behavior the actor can expect and not how the system will work to provide the service.</p>
<p class="MsoNormal">In order to write the use cases we need to know two things properly in use cases</p>
<p class="MsoNormal" style="margin-left:.75in;text-indent:-.25in">1.  Actor,the external agent who will make use of the system</p>
<p class="MsoNormal" style="margin-left:.75in;text-indent:-.25in">2. Service provided by the System</p>
<p class="MsoNormal" style="text-indent:.5in">In the video conference system the actors are the persons who will make use of the system by connecting to the system, and the services provided by the system are login authentication, video conferencing, video recording, text messaging.  These are all the main functional requirements which are identified in order to develop the video conferencing system.  The following are the different use cases those can be derived or drawn by considering the video conferencing system and the services provided by the system.</p>
<p class="MsoNormal" style="text-indent:.5in">The following are the example/illustrative use case diagrams with respect to web based video conferencing system, which is used for video conferencing over the internet.</p>
<div class="Section1">
<ul>
<li>
<div class="MsoNormal">Login Authentication</div>
</li>
<li>
<div class="MsoNormal">Video Conferencing</div>
</li>
<li>
<div class="MsoNormal">Chat: Text Messaging</div>
</li>
<li>
<div class="MsoNormal">Video Recording</div>
</li>
</ul>
</div>
<p> </p>
<p class="MsoNormal">  <img class="size-medium wp-image-205 alignnone" src="http://blogs.circlesource.com/wp-content/uploads/2009/02/image002-300x159.jpg" alt="image002" width="300" height="159" /></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> <img class="aligncenter size-medium wp-image-206" src="http://blogs.circlesource.com/wp-content/uploads/2009/02/image003-300x167.jpg" alt="image003" width="300" height="167" /></p>
<p class="MsoNormal"> </p>
<p><img class="aligncenter size-medium wp-image-210" src="http://blogs.circlesource.com/wp-content/uploads/2009/02/image0041-300x185.jpg" alt="image0041" width="300" height="185" /></p>
<p><img class="aligncenter size-medium wp-image-211" src="http://blogs.circlesource.com/wp-content/uploads/2009/02/image0052-300x258.jpg" alt="image0052" width="300" height="258" /><img class="aligncenter size-medium wp-image-213" src="http://blogs.circlesource.com/wp-content/uploads/2009/02/image006-300x123.jpg" alt="image006" width="300" height="123" /> </p>
<p class="MsoNormal">The use case diagrams does have extension, aggregation and interface concept those can be represented pictorially as above.</p>
<p><span style="font-size:11.0pt;line-height:115%;font-family:"><br />
</span></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><strong><span style="font-size:14.0pt;line-height:115%">Class Diagrams</span></strong></p>
<p class="MsoNormal">                The class diagrams are diagrams which are used in order to represent the classes used or to be used in any solution<br />
implementation using notations.  The class diagrams makes the understandability of the project flow and the pictorially represents the different classes used and how they were connected to each other  and which are all the classes that depends on the other classes can be represented.</p>
<p class="MsoNormal" style="text-indent:.5in">The class diagram can be represented by following notation and it does mainly have 3 parts first part is the name of the class, the second box or part is declaration of members or variables which are used in the class, the third part/box will be list of all the methods which are implemented in the class in order to perform the operations on class data members.</p>
<p class="MsoNormal">The following notations are used in drawing class diagrams.</p>
<p><img class="aligncenter size-medium wp-image-214" src="http://blogs.circlesource.com/wp-content/uploads/2009/02/image0071-300x133.jpg" alt="image0071" width="300" height="133" /></p>
<p class="MsoNormal" style="text-indent:.5in">The Class diagrams can be used to represent all the available variants of classes in Object oriented languages.</p>
<p class="MsoNormal" style="text-indent:.5in">The example class diagram used in web based video conferencing system.</p>
<p class="MsoNormal" style="text-indent:.5in"><img class="aligncenter size-medium wp-image-215" src="http://blogs.circlesource.com/wp-content/uploads/2009/02/image008-300x157.jpg" alt="image008" width="300" height="157" /></p>
<p class="MsoNormal" style="text-indent:.5in">In this diagram, as we can see the class is of type public and class name is enter_002dconf2_jsp used in web based video conferencing system, the member of the class is<strong> _dependants</strong> of  type Vector and access mode is private.</p>
<p class="MsoNormal" style="text-indent:.5in"><img class="aligncenter size-medium wp-image-216" src="http://blogs.circlesource.com/wp-content/uploads/2009/02/image009-300x119.jpg" alt="image009" width="300" height="119" /></p>
<p class="MsoNormal" style="text-indent:.5in">The two methods are defined of type public in order to perform the required operation, the <strong>getDependants() ,</strong><br />
method will get all the necessary dependents needed to start the video conferencing service, and the second method will <strong>_jspService()</strong> will start the service and write the required information on to the browser, if the required dependents are present then the client application will run through which the user can able to perform video conferencing, if not then the<br />
necessary information will be written on to the browser.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.circlesource.com/2009/02/02/uml-usecase-diagrams-and-class-diagrams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advantage of Reporting Framework</title>
		<link>http://blogs.circlesource.com/2009/01/31/why-reporting-framework-is-required/</link>
		<comments>http://blogs.circlesource.com/2009/01/31/why-reporting-framework-is-required/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 19:07:13 +0000</pubDate>
		<dc:creator>sheshagiri.sn</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[jasper]]></category>
		<category><![CDATA[reporting framework]]></category>
		<category><![CDATA[SQL server reporting service]]></category>
		<category><![CDATA[SSRS]]></category>

		<guid isPermaLink="false">http://blogs.circlesource.com/?p=195</guid>
		<description><![CDATA[Most of the reporting engine libraries or tool (like JasperReports, SQL server reporting services) are bundles with useful apis or utilities to generate the reports based on report design files (like .jrxml files, rdl file). These apis take data source, compiled report file, and other report parameters (i.e export type options like pdf/csv/excel/html, report type [...]]]></description>
			<content:encoded><![CDATA[<p>Most of the reporting engine libraries or tool (like JasperReports, SQL server reporting services) are bundles with useful apis or utilities to generate the reports based on report design files (like .jrxml files, rdl file). These apis take data source, compiled report file, and other report parameters (i.e export type options like pdf/csv/excel/html, report type options like charts/drilldown reports etc). There are useful report designer applications which help us creating report design files. For example, JasperReport reports can be designed using iReport or JasperAssistant; SQL server reporting services provide report builder, report designer tool build with visual studio.<br />
Every report generation basically needs the following information<br />
•	Compiled report design files<br />
•	Data Sources (Type of the data source like xml, resultsets, pojo objects and also datasource creation for each report based on report filters)<br />
•	Report Filters (usually input by the users). This may additionally include sorting, grouping and pagination information<br />
•	Report type (charts/tabular/drilldown etc)<br />
•	Export type (export formats like excel/pdf/csv/html usually selected by the user)<br />
•	Report parameters (usually input by the user or input by system at runtime like report creator name/ timestamp etc). The report parameters also include headers, footers and summary.<br />
Every report relies on data source (dynamically built based on report filters) and report parameters collected from input or system.<br />
Reports are usually launched by the user using report filter screens or reporting feature can be a regular feature in most of the search screens to send the search results as report.  From report launch to report generation, user has to go through complex reporting logic to generate the required report using the reporting engine’s api.<br />
So considering the complex logic of generating the each report, we can design a reporting framework where user will concentrate on important tasks of creating report design files and datasource and rest all other things can be handled by the reporting framework. This reporting framework will be a subset of main application framework and will take advantage of security features from main application framework.<br />
<strong></strong></p>
<p><strong>Advantage for developing against a reporting framework:</strong><br />
<strong></strong></p>
<p><strong>Development Efficiency</strong><br />
Most of the tedious reporting logic is written once and encapsulated in a reusable reporting component. Instead of copying the code from page to page or starting from scratch, we can leverage the reusable component whenever needed. This speeds up the report generation significantly which will help in meeting the project deadlines and keep the project on time and on budget.</p>
<p><strong> Accuracy</strong><br />
As speed increases, accuracy normally decreases. Coding against a framework allows us to create reports faster without adverse effects on accuracy. Because most of the complex reporting logic is encapsulated in reusable component, the errors will be less as we are touching less code.<br />
<strong>Consistency</strong><br />
Using a reporting framework also ensures all the report pages are consistent.  In absence of reporting framework, every user may use different method of creating reports there by creating inconsistency in report generation process and also report content. Consistency is imperative for user experience.<br />
In general, reporting framework will give following features</p>
<ol>
<li> Standard way to collect the input (for both data source and report parameters) for the report in the form of report filters (implemented as bean, data models or datasource).</li>
<li>All these report filters will implement a standard interface or extend from an abstract class. (In case of web applications, we can have a separate report servlet to handle this input collection and forwarding the request.)<br />
Input forms are still specific to each report and they initiate the report generation process in report framework.<br />
User has to give data source implementation for each report based on input filter but this is handled in a consistent way.</li>
<li>User has to specify the report design files for each type of report and export allowed and reporting framework has to dynamically find this based on the report type and export type. These things can be externally configured using property files.</li>
<li>Reporting framework has to set the data source and report parameters (standard one’s like report creator/timestamp/any standard headers/footers/summary and any user supplied report parameters specific to the report being generated.)</li>
<li>The report design files can be compiled each time or cached by the reporting framework.</li>
<li>Finally, the reporting framework has to call the report engine’s api to generate the report and show to the user in the export format requested by the user.</li>
<li>In addition to this, to handle the complex reports, report framework can also include support for handling sub reports in a consistent way.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blogs.circlesource.com/2009/01/31/why-reporting-framework-is-required/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Be a Miser&#8230;&#8230;&#8230;.</title>
		<link>http://blogs.circlesource.com/2008/07/30/be-a-miser/</link>
		<comments>http://blogs.circlesource.com/2008/07/30/be-a-miser/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 12:52:32 +0000</pubDate>
		<dc:creator>sandeverma</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.circlesource.com/?p=15</guid>
		<description><![CDATA[If a loaf can full your appetite then why to order for two loafs and waste the other one. But to this people call them stereotype of miser that is wealthy and greedy, a man who lives intelligently in order to save and increase his treasure. Same thing I have seen while creating a table [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="normal;"><span>If a loaf can full your appetite then why to order for two loafs and waste the other one. But to this people call them stereotype of miser that is wealthy and greedy, a man who lives intelligently in order to save and increase his treasure. Same thing I have seen while creating a table and columns and assigning the data-types and their sizes, if we can full fill the requirement of the data by providing the accurate or approximate size then it will not only increase the treasure(or in technical terms we used to call performance) but also we can reduce the risk which prevails in any application. If we can use tiny int and get our work done then why to use small int or simple int and burden the database and decrease the performance. Use the best data-type matching your requirement, if it is varchar don&#8217;t just define varchar, but if you know the size define it like varchar(20) or something else. Below are few data-types and the values they accommodate. I know this is the basic of but sometimes these basic things make a major difference. So when ever creating the tables <strong>BE MISER&#8230;</strong> and don&#8217;t <strong>BE SPENDTHRIFT</strong></span></p>
<table class="MsoNormalTable" style="592.5pt;" border="0" cellspacing="0" cellpadding="0" width="790">
<tbody>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><span> </span></p>
<p class="MsoNormal" style="normal;"><strong><span>bigint</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Integer data from -2^63 through   2^63-1</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>int</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Integer data from -2^31 through   2^31 &#8211; 1</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>smallint</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Integer data from -2^15 through   2^15 &#8211; 1</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>tinyint</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Integer data from 0 through 255</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>bit</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Integer data with either a 1 or 0   value</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>decimal</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Fixed precision and scale numeric   data from -10^38 +1 through 10^38 -1</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>numeric</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Fixed precision and scale numeric   data from -10^38 +1 through 10^38 -1</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>money</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Monetary data values from -2^63   through 2^63 &#8211; 1</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>smallmoney</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Monetary data values from   -214,748.3648 through +214,748.3647</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>float</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Floating precision number data   from -1.79E + 308 through 1.79E + 308</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>real</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Floating precision number data   from -3.40E + 38 through 3.40E + 38</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>datetime</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Date and time data from January 1,   1753, through December 31, 9999,with an accuracy of 3.33 milliseconds</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>smalldatetime</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Date and time data from January 1,   1900, through June 6, 2079,with an accuracy of one minute</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>char</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Fixed-length character data with a   maximum length of 8,000 characters</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>varchar</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Variable-length data with a   maximum of 8,000 characters</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>text</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Variable-length data with a   maximum length of 2^31 &#8211; 1 characters</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>nchar</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Fixed-length Unicode data with a   maximum length of 4,000 characters</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>nvarchar</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Variable-length Unicode data with   a maximum length of 4,000 characters</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>ntext</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Variable-length Unicode data with   a maximum length of 2^30 &#8211; 1 characters</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>binary</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Fixed-length binary data with a   maximum length of 8,000 bytes</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>varbinary</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Variable-length binary data with a   maximum length of 8,000 bytes</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>image</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>Variable-length binary data with a   maximum length of 2^31 &#8211; 1 bytes</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>timestamp</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>A database-wide unique number that   gets updated every time a row gets updated</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>uniqueidentifier</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>A globally unique identifier</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>sql_variant</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span>A data type that stores values of   various data types,except text, ntext, timestamp, and sql_variant</span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span> varchar(max)</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span> Maximum 1,073,741,824 characters </span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span> text </span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span> Maximum 2GB of text data </span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span> nvarchar(max) </span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span> Maximum 536,870,912 characters </span></strong></p>
</td>
</tr>
<tr>
<td style="82.7pt;" width="110" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span> ntext</span></strong></p>
</td>
<td style="509.8pt;" width="680" valign="bottom">
<p class="MsoNormal" style="normal;"><strong><span> Unicode data. Maximum 2GB of text data</span></strong></p>
</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blogs.circlesource.com/2008/07/30/be-a-miser/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
