Showing posts with label Application Performance Optimization. Show all posts
Showing posts with label Application Performance Optimization. Show all posts

Tuesday, June 02, 2015

Sql Server Restrict Memory usage

With growing of sql server database size and increase in page views of website, you might run in to memory crunch situation.

Please note:  You might run into memory crunch situation for number of reasons like memory leak in code, etc, but in this article we will be focusing on only one scenario that is restricting sql server memory usage.

Cause of Memory crunch situation:

By default if you have not restricted sql server memory usage, it can use upto 2147483647.
























Solution:

Restrict the memory consumption of SQL Server by changing this limit to something which is reasonably your server can handle.



































If you like commands to change the limit:

— Turn on advanced options
EXEC  sp_configure‘Show Advanced Options’,1;
GO
RECONFIGURE
;
GO

— Set max server memory = 3500MB for the server
EXEC  sp_configure‘max server memory (MB)’,3500;
GO
RECONFIGURE
;
GO

Reference:
https://sqlserverperformance.wordpress.com/2009/10/29/suggested-max-memory-settings-for-sql-server-20052008/


Special Thanks to my friend Pankaj Mishra for sharing this information.

Friday, September 28, 2012

All About ASP.NET Website Performance Improvement

In this article i will be explaining some of quick, easy and must use Asp.net Website Performance Improvement tips.

Asp.net Performance Improvement checklist is divided into 4 broad categories

  1. Identifying which part of asp.net web application requires optimization.
  2. Optimizing Asp.net web project to improve website performance
  3. Tips for writing code in order to enhance performance.
  4. Database Optimization to improve performance (I will be explaining for SQL Server but same tips will also apply to MySQL, Oracle or any other DB by changing syntactical meaning respectively.)
I will be discussing each of asp.net performance improvement categories in detail.

Identifying which part of asp.net web application requires optimization.

It is very important to identify which part of your application requires more attention in order to improve website performance.  

1 Using VS.Net 2010 Profiler
2 Tracing asp.net web application
3 Extension (Firefox Firebug, YSlow, Google Chrome Speed Tracer, IE9 Developer Tools)
4 Monitoring tools like fiddler will also be helpful.


Optimizing Asp.net web project to improve website performance.

In order to improve asp.net web page performance most important thing we should consider is
  • Reduce asp.net page size - By reducing page size page it will get download quickly and thus load quickly on user's browser.  It will also reduce bandwidth consumption of your website.  
  • Reduce number of HTTP request -  It is very important to reduce number of HTTP requests on your server, it will help in reducing the server load and allowing more visitors to access your website.
  • Avoid round trip to server.

In order to reduce asp.net page size.

1) Avoid viewstate - viewstate is used to persist data of web page on page postback.  This increase page size.  I always prefer to turn off viewstate at page level and only turn on viewstate to specific control whose data i need to persist over page postback.  

You can do so by <%@ Page  EnableViewState="false" %>

Situation in which you must avoid viewstate.
  • Only page which take user input or control whose values you want to persist on page postback will require viewstate.  Example: If user press submit button and if there are error on page we should persist user input, so in that case we should make EnableViewState="true" for those control or may be at page level.
  • Display pages or asp.net page which will not require page postback.  Example: Page on which you are displaying customers information in datagrid, doesn't require viewstate so in this situation you can turn of viewstate.
2) Use div instead of table. - Make use of div and css to replace table.  Combination of div and css is much more faster than table.

3) Avoid big name for asp.net server control and CSS class tag - Do not give big name for ID field of asp.net server control,  specially to ContentPlaceHolder  asp.net server control in master page.  ContentPlaceHolder ID name is appended to each and every asp.net server control inside child page, so if you choose a big name for your asp.net server control it will increase html file size.

Similarly if you choose a big name for CSS class tag, it will have long name on every instance you make use of that class tag and in return it increase html size.

For this reason, I prefer to choose very short name for any controls or css tag definition.
Example: <asp:ContentPlaceHolder ID="CC" runat="server">

4) Remove unnecessary white space (Compress generated HTML Size)
  • Remove white spaces between tags and lines of html render by asp.net page.  In order to remove white space dynamically on all page, you should put "render" method inside master page class file.
  • Remove unused tags from CSS file and also remove unused script from Javascript file.
  • Remove white spaces from CSS file while deploying to production server.  Remember, Comments and whitespace inside your CSS and Javascript file are not needed for execution; Removing them will speed up css rendering time and script execution times.  You can add this step to your deployment checklist. You can take advantage of online compress css tool and online javascript compress tool.

5) Make use of JQuery instead of Ajax Control toolkit.  
I have observed that JQuery can do the task with less code and light weight, while Ajax control toolkit is bulkier and increase page size.  Find more on JQuery vs Ajax control toolkit.



Reduce number of HTTP request
With help of Firebug, Firefox extension, you can find out how many resource request was made by your asp.net web page.  It is very important to reduce number of HTTP requests on your server, it will help in reducing the server load and allowing more visitors to access your website.

1) Make minimum use of Images.  Images are good for UI but can increase size of web page and also results in too many http request.

2) Combine multiple db request into single db request.  Find more details on How to avoid multiple database request to improve performance. 

3) Combine 2 or more css file into 1 file, since most of modern browser do cache css file, it will only take little more time for 1st request, all sub subsequent request will be super fast.  Combining multiple css file into 1 will reduce number of http request.

4) Combine 2 or more javascript file into 1 file, since most of modern browser do cache javascript file, it will only take little more time for 1st request, all sub subsequent request will be super fast.  Combining multiple javascript file into 1 will reduce number of http request.

5) Special tips if your web application is using JQuery
    • Try to use Jquery from CDN (Content distribution network) link for google CDN http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
    • While adding JQuery try using min version (Example: jquery-1.6.2.min.js), which is less file size, since space and line break are removed from that.  This will help in faster loading of file and also improves performance of web application.
    • Avoid too many third party jquery controls rather make use of JQuery UI, which supports too many control within one js file.


Avoid round trip to server
In order to give user a lightning fast effect, it is important that you avoid round trip to server.  You can use:
  • Caching
  • JQuery Ajax

Tips for writing code in order to enhance performance.

1 VS.Net 2010 Code Analysis


Database Optimizing tips to improve website performance.
1. Thumb rule decrease as many joins as possible.  It will be very helpful in improving search query performance.
2. In order to avoid too many joins, make optimal use of "xml datatype".  That will help you to reduce needs of number of tables for small data structure, also be helpful in storing complex data-type.  (In summary, I am in love of xml datatype, If you know correct way to use that, you can optimize performance.)
3 Check out DB Optimization tricks
4 Use PL\SQL Programming instead of making too many DB Request.
One of the most resource efficient and performance improvement technique is to make use of PL\SQL Programming inside stored procedure to avoid round trip.  But be careful with this technique if you don't know how to use it efficiently, it may adversely affect performance.
Example: To Improve Performance through


Finally i want to say it is also important to check your asp.net web application architecture.  Try to identify what all bad architectural design was taken in past and how to rectify those in order to improve performance of your web application.  Its very important to design architecture of web application nicely.  I understand that it is not always possible to design things right at first point, but it is continuous improvement process, you should always keep on identifying things and correct it asap.  Hope my checklist had helped you too.

Please note: I have been writing this article since long and I am still in process of improving this article on regular basis.  Please share your suggestions and comments here so that it will help everybody to improve their website performance.  At present most of performance improvement topics here are purely related to asp.net web forms, but i will be going to make a list of asp.net mvc specific performance improvement checklist in my future article.  Thank you. :)

Monday, April 16, 2012

How to avoid multiple database request to improve performance

It is not good to execute multiple db request for loading single page.  Review your database code to see if you have request paths that go to the database more than once. Each of those round-trips decreases the number of requests per second your application can serve. By returning multiple resultsets in a single database request, you can cut the total time spent communicating with the database.

In order to improve performance you should execute single stored proc and bring multiple resultset in to single db request.  In this article i will explain you how to avoid multiple database request and how to bring multiple resultset into single db request.

Consider a scenario of loading a Product Page, which displays

  • Product Information and
  • Product Review Information

In order to bring 2 database request in single db request, your sql server stored proc should be declared as below.

SQL Server Stored Proc

CREATE PROCEDURE GetProductDetails
@ProductId bigint,
AS
SET NOCOUNT ON

--Product Information
Select ProductId,
ProductName,
ProductImage,
Description,
Price
From Product
Where ProductId = @ProductId


--Product Review Information
Select ReviewerName,
ReviewDesc,
ReviewDate
From ProductReview
Where ProductId = @ProductId




Asp.net, C# Code to bring multiple db request into single db request

Code Inside Data Access Class Library (DAL)

public DataSet GetProductDetails()
{
SqlCommand cmdToExecute = new SqlCommand();
cmdToExecute.CommandText = "GetProductDetails";
cmdToExecute.CommandType = CommandType.StoredProcedure;
DataSet dsResultSet = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cmdToExecute);

try
{
    var conString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnStr"];
    string strConnString = conString.ConnectionString;
    SqlConnection conn = new SqlConnection(strConnString);

    cmdToExecute.Connection = conn;

    cmdToExecute.Parameters.Add(new SqlParameter("@ ProductId", SqlDbType.BigInt, 8, ParameterDirection.Input, false, 19, 0, "", DataRowVersion.Proposed, _productId));

    //Open Connection
    conn.Open();

    // Assign proper name to multiple table
    adapter.TableMappings.Add("Table", "ProductInfo");
    adapter.TableMappings.Add("Table1", "ProductReviewInfo");
    adapter.Fill(dsResultSet);

    return dsResultSet;              
}
catch (Exception ex)
{
    // some error occured. 
    throw new Exception("DB Request error.", ex);
}
finally
{
    conn.Close();
    cmdToExecute.Dispose();
    adapter.Dispose();
}
}



Code Inside Asp.net .aspx.cs page

protected void Page_Load(object sender, EventArgs e)
{
   if (Request.QueryString[ProductId] != null)
   {
      long ProductId = Convert.ToInt64(Request.QueryString[ProductId].ToString());  
   
      DataSet dsData = new DataSet();

      //Assuming you have Product class in DAL
      ProductInfo objProduct = new ProductInfo();
      objProduct.ProductId = ProductId;
      dsData = objProduct.GetProductDetails();

      DataTable dtProductInfo = dsData.Tables["ProductInfo"];
      DataTable dtProductReviews = dsData.Tables["ProductReviewInfo"];

      //Now you have data table containing information
      //Make necessary assignment to controls
      .....
      .....
      .....
      .....
      .....  

    }
}


Hope above code gave you basic idea of why it is important to avoid multiple db request and how to bring multiple recordset with single db request.

Sunday, March 11, 2012

How to be ProActive rather than ReActive in Software World

Many times people have habit of speaking be Proactive rather than Reactive and blah... blah...

I found a very good video giving an example on this, In a true sense.  This is what i say "Customer Care".

What i can say guy's be patient and listen to his keynotes till end.  This guy is true genius and thinking out of box.  I really enjoyed every bit of it.






Sunday, May 03, 2009

Image Caching in Asp.net

If your application is using lot of images, and you want to speed up the load time of your website, than you should use Image caching technique in asp.net for avoiding extra bandwidth usage for getting same content and more over improve performance and enhance the user experience.


Image caching can be perform in either of following ways
  1. Image caching in IIS (Easy and fastest way, but you need access to IIS)
  2. Image caching with Custom HttpHandler in asp.net (Complicated way, yet useful when you don't have access to IIS, eg: while using third party web hosting)
Image caching article discus more on this topic and it is very useful.

Please click on Image Caching Article to read more on this topic.

Sunday, September 23, 2007

Tool for checking Patterns and Practise in Asp.net Web Application

It is very hard to implement best practise always while coding, so too make your task easy a Tool is available, which checks for Patterns and Practise Implementation in your asp.net application and will guide you wherever you are not following the rule.

Screenshot of Pattern and Practise Checker Tool




patterns & practices Practices Checker is a tool that helps you verify your applications against the patterns & practices performance recommendations for ASP.NET applications.


Advantage of using Patterns and Practice Checker Tool

  • User Practices Checker to help you perform a manual code inspection by analyzing your application for potential coding and configuration settings that do not adhere to the patterns & practices ASP.NET Performance Checklist.
  • Extend Practices Checker by allowing additional checklists to be created and checked.
  • Developers can utilize built in search routines to search intermediate language, static text files and .configuration files for specific code patterns or settings.

Check out a video on it here.

Download it here.

Monday, September 17, 2007

Best Practise for Improving .NET Application Performance and Scalability

Best Practise for Improving .NET Application Performance and Scalability

This guide provides end-to-end guidance for managing performance and scalability throughout your application life cycle to reduce risk and lower total cost of ownership. It provides a framework that organizes performance into a handful of prioritized categories where your choices heavily impact performance and scalability success. The logical units of the framework help integrate performance throughout your application life cycle. Information is segmented by roles, including architects, developers, testers, and administrators, to make it more relevant and actionable. This guide provides processes and actionable steps for modeling performance, measuring, testing, and tuning your applications. Expert guidance is also provided for improving the performance of managed code, ASP.NET, Enterprise Services, Web services, remoting, ADO.NET, XML, and SQL Server.

Part I, Introduction to Engineering for Performance

This part shows you how to apply performance considerations throughout your application life cycle and introduces fundamental performance and scalability concepts and terminology. Part I includes one chapter:

Part II, Designing for Performance

Performance modeling helps you assess your design choices before committing to a solution. By considering from the start your performance objectives, workload, and metrics for your scenarios, you reduce risk. Use the design guidelines chapter to learn practices, principles, patterns, and anti-patterns that will help you to make informed choices. Part II includes three chapters:

Part III, Application Performance and Scalability

This part provides a series of chapters that provide deep platform knowledge across the .NET Framework technologies. Use these chapters to learn about the key performance and scalability considerations for the various .NET technologies, and to improve the efficiency of your code in these areas. Part III includes nine chapters:

Part IV, Database Server Performance and Scalability

This part shows how to improve SQL Server performance. This part includes one chapter:

Part V, Measuring, Testing, and Tuning

This part shows which metrics monitor and analyze for specific performance aspects. It also explains how to load, stress, and capacity test your applications and how you can tune performance with appropriate application, platform, and system configuration. This part includes three chapters:

Checklists

This section contains printable, task-based checklists, which are quick reference sheets to help you put the information and details that you learned in the individual chapters into action. This section includes the following checklists:

How To Articles

This section contains How To articles that provide step-by-step procedures for key tasks. This section includes the following How To articles:

Sunday, September 16, 2007

20 Tips to Improve ASP.net Application Performance

20 Tips to Improve ASP.net Application Performance

  • Disable Session State
  • Output Buffering
  • Avoid Server-Side Validation
  • Repeater Control Good, DataList, DataGrid, and DataView controls Bad
  • Take advantage of HttpResponse.IsClientConnected before performing a large operation
  • Use HTTPServerUtility.Transfer instead of Response.Redirect
  • Always check Page.IsValid when using Validator Controls
  • Deploy with Release Build
  • Turn off Tracing
  • Page.IsPostBack is your friend
  • Avoid Exceptions
  • Caching is Possibly the number one tip!
  • Create Per-Request Cache
  • Use of StringBuilder for String Manipulation
  • Turn Off ViewState
  • Use Paging
  • Use the AppOffline.htm when updating binaries
  • Use ControlState and not ViewState for Controls
  • Use the Finally Method
  • Option Strict and Option Explicit
Read Article in detail

Parallel Performance for .Net Application

Parallel Performance for .Net Application

Optimize Managed Code For Multi-Core Machines

Tuesday, September 04, 2007

Performance Tunning articles on SQL Server

Performance Tunning articles on SQL Server

Article on AJAX Architecture

A good link for understanding AJAX Architecture

Article on High Performance Asp.net Web Application

A good article on High Performance Asp.net Web Application, it contains some of the good points which are are uncommon from common checklist for High Performance asp.net web application.

10 Tips for Writing High-Performance Web Applications

Performance on the Data Tier
Tip 1—Return Multiple Resultsets
Tip 2—Paged Data Access
Tip 3—Connection Pooling
Tip 4—ASP.NET Cache API
Tip 5—Per-Request Caching
Tip 6—Background Processing
Tip 7—Page Output Caching and Proxy Servers
Tip 8—Run IIS 6.0 (If Only for Kernel Caching)
Tip 9—Use Gzip Compression
Tip 10—Server Control View State
Conclusion

Tuesday, August 14, 2007

SQL Optimization Tips

SQL Optimization Tips

• Use views and stored procedures instead of heavy-duty queries.
This can reduce network traffic, because your client will send to
server only stored procedure or view name (perhaps with some
parameters) instead of large heavy-duty queries text. This can be used
to facilitate permission management also, because you can restrict
user access to table columns they should not see.

• Try to use constraints instead of triggers, whenever possible.
Constraints are much more efficient than triggers and can boost
performance. So, you should use constraints instead of triggers,
whenever possible.

• Use table variables instead of temporary tables.
Table variables require less locking and logging resources than
temporary tables, so table variables should be used whenever possible.
The table variables are available in SQL Server 2000 only.

• Try to use UNION ALL statement instead of UNION, whenever possible.
The UNION ALL statement is much faster than UNION, because UNION ALL
statement does not look for duplicate rows, and UNION statement does
look for duplicate rows, whether or not they exist.

• Try to avoid using the DISTINCT clause, whenever possible.
Because using the DISTINCT clause will result in some performance
degradation, you should use this clause only when it is necessary.

• Try to avoid using SQL Server cursors, whenever possible.
SQL Server cursors can result in some performance degradation in
comparison with select statements. Try to use correlated sub-query or
derived tables, if you need to perform row-by-row operations.

• Try to avoid the HAVING clause, whenever possible.
The HAVING clause is used to restrict the result set returned by the
GROUP BY clause. When you use GROUP BY with the HAVING clause, the
GROUP BY clause divides the rows into sets of grouped rows and
aggregates their values, and then the HAVING clause eliminates
undesired aggregated groups. In many cases, you can write your select
statement so, that it will contain only WHERE and GROUP BY clauses
without HAVING clause. This can improve the performance of your query.

• If you need to return the total table's row count, you can use
alternative way instead of SELECT COUNT(*) statement.
Because SELECT COUNT(*) statement make a full table scan to return the
total table's row count, it can take very many time for the large
table. There is another way to determine the total row count in a
table. You can use sysindexes system table, in this case. There is
ROWS column in the sysindexes table. This column contains the total
row count for each table in your database. So, you can use the
following select statement instead of SELECT COUNT(*): SELECT rows
FROM sysindexes WHERE id = OBJECT_ID('table_name') AND indid < 2 So,
you can improve the speed of such queries in several times.

• Include SET NOCOUNT ON statement into your stored procedures to stop
the message indicating the number of rows affected by a T-SQL statement.
This can reduce network traffic, because your client will not receive
the message indicating the number of rows affected by a T-SQL statement.

• Try to restrict the queries result set by using the WHERE clause.
This can results in good performance benefits, because SQL Server will
return to client only particular rows, not all rows from the table(s).
This can reduce network traffic and boost the overall performance of
the query.

• Use the select statements with TOP keyword or the SET ROWCOUNT
statement, if you need to return only the first n rows.
This can improve performance of your queries, because the smaller
result set will be returned. This can also reduce the traffic between
the server and the clients.

• Try to restrict the queries result set by returning only the
particular columns from the table, not all table's columns.
This can results in good performance benefits, because SQL Server will
return to client only particular columns, not all table's columns.
This can reduce network traffic and boost the overall performance of
the query.
1.Indexes
2.avoid more number of triggers on the table
3.unnecessary complicated joins
4.correct use of Group by clause with the select list
5 In worst cases Denormalization


Index Optimization tips

• Every index increases the time in takes to perform INSERTS, UPDATES
and DELETES, so the number of indexes should not be very much. Try to
use maximum 4-5 indexes on one table, not more. If you have read-only
table, then the number of indexes may be increased.

• Keep your indexes as narrow as possible. This reduces the size of
the index and reduces the number of reads required to read the index.

• Try to create indexes on columns that have integer values rather
than character values.

• If you create a composite (multi-column) index, the order of the
columns in the key are very important. Try to order the columns in the
key as to enhance selectivity, with the most selective columns to the
leftmost of the key.

• If you want to join several tables, try to create surrogate integer
keys for this purpose and create indexes on their columns.

• Create surrogate integer primary key (identity for example) if your
table will not have many insert operations.

• Clustered indexes are more preferable than nonclustered, if you need
to select by a range of values or you need to sort results set with
GROUP BY or ORDER BY.

• If your application will be performing the same query over and over
on the same table, consider creating a covering index on the table.

• You can use the SQL Server Profiler Create Trace Wizard with
"Identify Scans of Large Tables" trace to determine which tables in
your database may need indexes. This trace will show which tables are
being scanned by queries instead of using an index.

• You can use sp_MSforeachtable undocumented stored procedure to
rebuild all indexes in your database. Try to schedule it to execute
during CPU idle time and slow production periods.
sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?')"


For SQL SERVER Frequently Asked Interview Questions

Friday, July 13, 2007

Improving Performance of .Net Application by Avoiding Unnecessary String Creation

Everyone wants faster performance of application and we are been asked frequently on every .net forums that

- “How Can I Improve performance of C# Application”
- “How Can I Improve performance of ASP.net Application”

Well there are many ways but out of them we can also improve performance of .Net Application by avoiding unnecessary string creation

A System.String object is “immutable”. “Immutable” means, any change to a string requires creating a new string object. Unnecessary string creation degrades the performance.

Step1: Avoid Empty string Assignment

Bad Programming
String strMyString = “”;
//It creates an additional empty string, before assignment.

Good Programming
String strMyString = string.Empty;
//It doesn’t require to creates an additional empty string, before assignment.



Step2: Use Case-Insensitive String Comparison or Avoid unnecessary changes to string.

Many times we have habbit of casing the string before comparing, but casing the string creates a new string object. To avoid that use Case-Insensitive string comparison.

Bad Programming
if (strCheck.ToLower() == “yes”)
//It creates new string with strCheck content as lower and assign it.

Good Programming
if (System.String.Compare(strCheck,”yes”,true) == 0)
//System.String.Compare method returns Zero when strings are equal.

One step ahead of our discussion.

In above example you will notice that “yes” is a content which is been used to compare, but think if this comparison is made number of times, and at some point we need to change the comparison criteria from “yes” to “no” in that case it would be tedious task to replace each “yes” with “no”, moreover it is not 100% reliable.

To avoid such situation, one should always declare such data as constant, so changing its value will be reflected to all the places where it is been used.

Let consider above example, in that case you should create a class form, let say “clsConstant” wherein all the constants are been declared.

In clsConstant.cs File
public static string YES = "yes";

In form where it is used.
if (System.String.Compare(strCheck, clsConstant.YES,true) == 0)



Step3: Use StringBuilder class for string concatenations and manipulations.

Strings are immutable, means when you modify string it creates a new string based on your modification. Original string will be therein memory till it is garbage collected. So if your application requires extensive modification of strings, you should use StringBuilder class instead of using String class, as stringbuilder class object is mutable and does in-place modification of string.

Bad Programming
String strResult = “”;
String strAppend = “ABC”;
for( int iCount = 0; iCount < 50; iCount++)
{
strResult = strResult + strAppend;
}
//Here 50 times string is modified, and created

Good Programming
string strResult=string.Empty;
string strAppend = "ABC";

StringBuilder sb = new StringBuilder(strResult);
for(int iCount=0; iCount < 50; iCount++)
{
sb.Append(strAppend);
}
strResult = sb.ToString();

Monday, April 09, 2007

Patterns & Practices VSTS Guidance Project

The patterns & practices VSTS Guidance Project! The purpose of this project is to build some insightful and practical guidance around using Microsoft Visual Studio Team System. It's a collaborative effort between patterns & practices, Team System team members, and industry experts.

What's New : Video Guidance Available

Check it out for all details

Sunday, March 18, 2007

Best Practice Analyzer for ASP.NET

The Best Practice Analyzer ASP.NET (alpha release) is a tool that scans the configuration of an ASP.NET 2.0 application. The tool can scan against three mainline scenarios (hosted environment, production environment, or development environment) and identify problematic configuration settings in the machine.config or web.config files associated with your ASP.NET application. This is an alpha release intended to gain feedback on the tool and the configuration rules included with it.

Download

20 Essential Web Utilities

Optimization

  1. Web Page Analyzer - This tool is fairly comprehensive and may be the only one you really need for website speed analysis. Includes stats on every file and object downloaded and provides approximate download times for different connection rates.
  2. OctaGate Site Timer - This one to be as accurate as the first one because it attempted to download images referenced in my CSS files that were commented out. However, it provides a nicer graphical output that marks when the request was started, when it connected, and the time when the first and last bytes were received. It also highlights 404 errors in red, which is handy for finding missing files or bad URLs.
  3. HttpZip Compression Checker - Use this to check whether files from your website are being served with HTTP Compression on or off.
  4. Dynamic Drive Online Image Optimizer - if you’re hardcore about your image compression, you should check out Ken Silverman’s Utility Page. But if you’re like me and just want a quick and easy web based utility for compressing images, this is your site. It can convert gif, jpg, and png files up to 300kb. It will also do conversions to other image types and display multiple results at various color levels and compression rates so you can pick the best one for your needs.
  5. Javascript Minimizer - This is an extremely simple tool. Paste in your javascript and click the button and reduce the size of your javascripts.
  6. CSS Minimizer - Just like the Javascript minimizer, but for Cascading Style Sheets.

Statistics and Search Engine Optimization

Get a handle on your web traffic with these sites.

  1. Website Grader - Gives your website a score in an attempt measure its effectiveness. Shows your PageRank, meta info, domain info, technoratic stats, etc... It generates a really neat report card for your blog.
  2. Google Webmaster Central - An absolute essential tool for those who care about users finding their site via Google. Especially pay attention to the Webmaster tools which include Sitemap support.
  3. Google Analytics - A free and full featured analytics package for your blog or website. Add some javascript to your page template and you’re in information overload land, but done up with nice charts and graphs.
  4. 103bees Search traffic analysis - Unlike other stats packages, this one is focused purely on natural search engine traffic analytics. What are users searching for when they land on your site? This is a nice complement to Google Analytics. And it’s free! One caveat is that the script can be slow sometimes, which can play havoc with CSS based designs.
  5. Alexa.com - The beauty of this site is that you can easily compare your website’s reach with several other websites on a single graph, thus starting a huge pissing contest.

Spicing Up Your Posts With Images

  1. Wikipedia Public Domain Image Resources - Images can bring a blog post to life. But rather than worrying about receiving a cease and desist letter for misusing copyrighted material, why not use images that are part of the Public Domain? This page is chock full of links to resources for free images.
  2. PicFindr - Despite it’s “Oh so Web 2.0” name (must everything end in a consonant plus “r” these days? At least it doesn’t have BETA anywhere), this tool is really great. It will search a set of free photo sites such as Stock.xchng, for free photographs.
  3. Flickr Creative Commons - Still haven’t found that picture that just hits the point you’re trying to make? Try the Flickr Creative Commons search engine. Remember, these photos are not public domain. You do need to abide by the license. But for the most part, the licenses are pretty lenient for you to reuse the photos in your own blog.
  4. Open Clip Art Library - Maybe you want your image to be iconic rather than photographic. Check out this free Public Domain clip art library to find an icon for every occasion.
  5. WP Clipart - Another Public Domain clip art library, though the quality tends to be less than the Open Clip Art Library.

Create and Improve Your Content

  1. Cliche Finder - Try to avoid using too many tired old cliches by running your post through this web based utility.
  2. HallwayTesting.com - This is a fantastic site for basic hallway usability testing. Just submit your URL and real people will post comments with criticisms and praise for your site. The more specific you are about what you want testers to focus on, the better quality the feedback. Try it out.

Syndication

  1. FeedBurner - This one gets special mention because it fits in so many categories. It’ll help optimize your bandwidth by serving your RSS feeds for you. Also, it includes a basic free stats package as well as a premium stats package that can replace Google Analytics. FeedBurner can also provide features your blogging platform might not, such as subscribing to RSS Feeds via email.

This information was originally shared by Smith

Monday, February 19, 2007

Performing Code Analysis with Microsoft Visual Studio Team Systeam

Performing Code Analysis with Microsoft Visual Studio Team Systeam

Advantage of Performing Code Analysis

The Managed Code Analysis tool provides warnings that are meant to improve managed code libraries in areas such as design, localization, performance, and security. Each warning signifies a violation of a Managed Code Analysis rule. This section provides in-depth discussions and examples for each of the Managed Code Analysis warnings. The information shown in the following table is provided in the rule topic associated with each warning.

It helps in
1 stability of application
2 Improves Performance
3 Ease of Maintainance
4 More Secure
5 Follows a common naming convention for easy of understanding and gives a professional approach for application
And much more...

Explore more @ http://msdn2.microsoft.com/en-us/library/ee1hzekz(VS.80).aspx

Saturday, February 17, 2007

Writing a Quality Code with Microsoft Visual Studio Team System

For Writing a Quality Code with Microsoft Visual Studio Team System

A good set of guidelines to improve coding mistakes and improve quality of code.

http://msdn2.microsoft.com/en-us/library/4dtdybt8(vs.80).aspx

Most Recent Post

Subscribe Blog via Email

Enter your email address:



Disclaimers:We have tried hard to provide accurate information, as a user, you agree that you bear sole responsibility for your own decisions to use any programs, documents, source code, tips, articles or any other information provided on this Blog.
Page copy protected against web site content infringement by Copyscape