Bookmark and Share
23Jan/11Off

Web.config/Machine.config Optimal Settings For ASP.NET website

These are what we have collected from different sources as our experiences during our life as ASP.NET web developer :) . More update will come...stay in touch with us...

For production websites, it’s important to remember to set the <Compilation debug =”false” /> setting in Web.config. This ensures no unnecessary debug code is generated for release version of website. If you are not using some of the ASP.NET modules such as Windows Authentication or Passport Authentication etc. then these can be removed from the ASP.NET processing pipeline as they will be unnecessarily loaded otherwise. Below is an example of some modules that could be removed from the pipeline:

<httpModules>
<remove name="WindowsAuthentication"/>
<remove name="PassportAuthentication"/>
<remove name="AnonymousIdentification"/>
<remove name="UrlAuthorization"/>
<remove name="FileAuthorization"/>
<remove name="OutputCache"/>
</httpModules>
ASP.NET Process Model configuration defines some process level properties like how many number of threads ASP.NET uses, how long it blocks a thread before timing out, how many requests to keep waiting for IO works to complete and so on. With fast servers with a lot of RAM, the process model configuration can be tweaked to make ASP.NET process consume more system resources and provide better scalability from each server. The below settings can help performance (a cut down version from an excellent article here):
<processModel
enable="true"
timeout="Infinite"
idleTimeout="Infinite"
shutdownTimeout="00:00:05"
requestLimit="Infinite"
requestQueueLimit="5000"
restartQueueLimit="10"
memoryLimit="60"
responseDeadlockInterval="00:03:00"
responseRestartDeadlockInterval="00:03:00"
maxWorkerThreads="100"
maxIoThreads="100"
minWorkerThreads="40"
minIoThreads="30"
asyncOption="20"
maxAppDomains="2000"
/>

Collected from: Code Project

Minimize Calls to DataBinder.Eval (Collected from MSDN)

The DataBinder.Eval method uses reflection to evaluate the arguments that are passed in and to return the results. If you have a table that has 100 rows and 10 columns, you callDataBinder.Eval 1,000 times if you use DataBinder.Eval on each column. Your choice to use DataBinder.Eval is multiplied 1,000 times in this scenario. Limiting the use ofDataBinder.Eval during data binding operations significantly improves page performance. Consider the following ItemTemplate element within a Repeater control usingDataBinder.Eval.

<ItemTemplate>
  <tr>
    <td><%# DataBinder.Eval(Container.DataItem,"field1") %></td>
    <td><%# DataBinder.Eval(Container.DataItem,"field2") %></td>
  </tr>
</ItemTemplate>

There are alternatives to using DataBinder.Eval in this scenario. The alternatives include the following:

Use explicit casting. Using explicit casting offers better performance by avoiding the cost of reflection. Cast the Container.DataItem as a DataRowView.

<%# ((DataRowView)Container.DataItem)["field1"] %>

You can gain even better performance with explicit casting if you use a DataReader to bind your control and use the specialized methods to retrieve your data. Cast theContainer.DataItem as a DbDataRecord.

<ItemTemplate>
  <tr>
     <td><%# ((DbDataRecord)Container.DataItem).GetString(0) %></td>
     <td><%# ((DbDataRecord)Container.DataItem).GetInt(1) %></td>
  </tr>
</ItemTemplate>

The explicit casting depends on the type of data source you are binding to; the preceding code illustrates an example.

Use the ItemDataBound event. If the record that is being data bound contains many fields, it may be more efficient to use the ItemDataBound event. By using this event, you only perform the type conversion once. The following sample uses a DataSet object.

protected void Repeater_ItemDataBound(Object sender, RepeaterItemEventArgs e)
{
  DataRowView drv = (DataRowView)e.Item.DataItem;
  Response.Write(string.Format("<td>{0}</td>",drv["field1"]));
  Response.Write(string.Format("<td>{0}</td>",drv["field2"]));
  Response.Write(string.Format("<td>{0}</td>",drv["field3"]));
  Response.Write(string.Format("<td>{0}</td>",drv["field4"]));
}
Filed under: ASP.NET No Comments
17Jan/11Off

Why Should You Outsource Your Web Development Projects?

There are many ways that financial software can keep your personal finances organized. Discover the features and benefits of financial software for personal budgeting and money management.

Almost every online business seeks the help of web services providers to strengthen their web presence using services such as web design and Web development, Internet marketing, hosting, etc. The number of firms that offer web solutions is growing with each passing day. Many of these companies have plethora of projects to take care of, and often end up overshooting deadlines and the clients’ budgets. It is here that the option of outsourcing can come to their rescue.

It has been observed that most service providers have been hugely benefitted by outsourcing their web application development work to other firms that are able to effectively handle and execute their projects. Listed herewith are the three most common reasons why companies end up choosing the option of outsourcing.

If a big client approaches you for a complex application development project, and you do not have expertise in that technology, what would you do? Let that big project go? That is surely not the most viable option you have. It is here that outsourcing can be a big help. You can easily outsource the web application development to another firm that has the required expertise. By doing so, you not only get to save the business coming from the client, but can also learn about the said technology during your interactions with your outsourcing services provider.

Software development companies often have a huge number of projects at hand. Their project teams are forever busy and are not able to provide the best of services to all clients at a particular time. Such companies can surely consider outsourcing. It will give them the flexibility to successfully manage a big number of client projects as well as the discerning needs of each client.

As a web development company, you might, at any given time, feel the need to expand your business in terms of technology and skill set. With an expansion comes the need for new infrastructure, fresh manpower, as well as training of existing employees. All this can be a huge roadblock if you are not in a position to invest more money. For such companies, the best solution is to outsource the work to the right company.

A number of online services firms are on the lookout for the right outsourcing partner for their business.

17Jan/11Off

Vietnam to invest more on hi-tech development

Vietnam will focus on developing hi-tech industries such as information and communication technology (ICT), biotechnology, automatic technology and new material technology.

The programme, entitled “Developing High Technology Till 2020”, has been approved by the government.

Under the programme, the country by 2020 will have some 500 enterprises specialising in producing hi-tech products and supplying hi-tech services, and about 200 agricultural entities applying high technologies operating in key economic zones.

The programme is also aimed at raising the proportion of hi-tech value in the industrial production to 30 per cent by 2015, and 40 per cent by 2020, and doubling that value in the agricultural production by 2015.

Regarding ICT, the programme focuses on microchips, basic software and technologies that ensure the setting up of modern telecommunications infrastructure, and new-generation internet.

For biotechnology, the programme focuses on gene technologies which will be applied in the diagnosis, assessment and treatment of diseases, and production of recombinant vaccines and protein, genetic modified plants, and microorganisms that have high economic value.

Implementing the programme, 500 leaders of hi-tech production projects, 10,000 engineers and researchers will be trained intensively, while 500 voluntary foreign experts and 1,000 overseas Vietnamese experts will be called for.

Source: VGP