This article seems to have been re-posted by everyone, so I am not miss it.
Top 10 skills in Asp. Net Programming
In this document, we will discuss how programmers use ASP. 10 tips that need to be paid attention to when developing applications. These skills involve changing the default control and form name to the use of StringBuilder class, which helps programmers adapt as soon as possible.. NET environment.
1. When using Visual Studio. NET, do not use the default name unless it is a direct or non-referenced object.
One of the benefits of. NET is that all source code and configuration files are plain text files and can be edited using any text editor such as Notepad or WordPad. If you do not want to, we do not have to use Visual Studio. NET as the integrated development environment. However, with Visual Studio. NET, we can see the file in Windows File Manager or browse the file content from a text editor outside Visual Studio. NET.
Using Visual Studio. NET as an integrated development environment has many advantages, of which the most significant advantage is that it greatly improves production efficiency. With Visual Studio. NET, we can develop software faster at a low cost. As part of the integrated development environment, intelliisense provides Automatic Code Completion, dynamic help when entering methods or functions, real-time syntax error prompts, and other functions that can improve production efficiency.
As with other complex tools, Visual Studio. NET also brings us a sense of frustration before learning how to give full play to its role and grasp its "habits. Sometimes, it is like a hard-to-understand black box, it will generate a large number of files and a lot of useless code.
One function of Visual Studio. NET is to provide a default name for a new object, whether it is an object in a class, control, or form. For example, if we create a new ASP. NET Web Application, the default name is WebApplication1. In the "new project" dialog box, we can easily change the name of the application, but only the name of the application's namespace and its virtual directory are changed, the default names of source code files are still WebForm1.aspx and WebForm1.aspx. cs (C # project) or WebForm1.aspx. vb (VB.. NET project ).
We can change the file names used by ASPX and code in the solution browser, but the webpage class name will still be WebForm1. If a button is generated on the Web form, the default name is button1. In fact, the names of all controls are composed of the control type and number.
We can also change the names of all forms and controls in the application to meaningful names. For a small demo program, the default name is also competent, but if the application consists of multiple forms, each form contains many buttons and labels, form names such as frmStartup, frmDataEntry, and frmReports are easier to understand and maintain than Form1, Form2, and Form3.
If the form control needs to be referenced elsewhere in the code, it is more important to have a meaningful name. The names such as btnOK, btnCancel, and btnPrint make it easier for code users to understand and maintain controls such as Button1, Button2, and Button3.
A good way to modify a name that appears in all files in a project is in Visual Studio. in the. NET menu, select "edit"-& gt; "discover and replace"-& gt; "replace.
When looking at the code we wrote two weeks ago, we often see the code for the first time, so it is necessary to make them have a name that helps us understand its meaning.
2. Even if you do not use Visual Studio. NET for programming, using code to support files can also improve application performance.
Visual Studio. NET uses code support files in all ASP. NET Web projects such as Web applications, Web Services, and Web controls. Code support files make the project better organized and coherent, and more suitable for development teams composed of multiple people. It also improves the performance.
The content of the Code support file is compiled into a class in the composite file, which is generally a DLL file and sometimes an EXE file. The file resides in the high-speed buffer of the application assembly, and can be obtained immediately when the application starts.
If the code is included in the & lt; script & gt; tag or the ASPX file code, it will still be compiled into a webpage class. In this case, every time the web page is loaded for the first time in the application conversation, it needs to be re-compiled, and the compiled class will reside in the memory. This file must be re-compiled whenever the computer is started, IIS is stopped, restarted, or the source code or configuration file is changed. Although not big, this causes considerable performance loss.
3. Minimize form delivery
Every time you click the Button, LinkButton, or ImageButton control on a Web page, the form is sent to the server. If the AutoPostBack attribute of the control is set to true, if the status of the control such as CheckBox and CheckBoxList is changed, the form will be sent back to the server.
Each time a form is sent back to the server, it is reloaded, The Page_Load event is started, and all code in the Page_Load event processing program is executed. It is most appropriate to put the webpage initialization code here. We often want to execute some code each time a webpage is loaded, but we want to execute other code only when the webpage is loaded for the first time, I even want some code to be executed each time except for the first loading.
You can use the IsPostBack feature to complete this function. When a webpage is loaded for the first time, the value of this attribute is false. If the webpage is reloaded due to sending back, the value of the IsPostBack attribute is set to true. Through testing, you can execute the Specified Code at any time. The following is the relevant C # code:
Protected void Page_Load (Object sender, EventArgs e)
{
// Operations performed each time a webpage is loaded
If (! IsPostBack)
{
// The operation performed when the page is loaded for the first time
}
Else
{
// The operation performed during the delivery.
}
// Operations performed when a webpage is loaded
}
We hope to avoid sending back as much as possible (the server is required to perform a series of operations each time), even if it causes sending back. We also hope to perform as few operations as possible. Large-scale and time-wasting operations (such as database searches) should be avoided in particular because they can prolong the application response time.
4. Use the StringBuilder class
The string is immutable In the. NET Framework, which means that the operators and methods for changing the string will return the modified copy of the string, which means there is still room for improvement in performance. When performing a large number of string operations, using the StringBuilder class is a good choice.
The following C # code tests the time required to generate a string from the 10000 substring in two ways. A simple String concatenation operation was used for the first time, and the StringBuilder class was used for the second time. To view the result string, remove the annotation symbol of the annotation line in the following code:
& Lt; % @ Page Language = "C #" % & gt;
& Lt; script runat = "server" & gt;
Void Page_Load (Object Source, EventArgs E)
{
Int intLimit = 10000;
DateTime startTime;
DateTime endTime;
TimeSpan elapsedTime;
String strSub;
String strWhole = "";
// First perform the string connection operation
StartTime = DateTime. Now;
For (int I = 0; I & lt; intLimit; I ++)
{
StrSub = I. ToString ();
StrWhole = strWhole + "" + strSub;
}
EndTime = DateTime. Now;
ElapsedTime = endTime-startTime;
LblConcat. Text = elapsedTime. ToString ();
// LblConcatString. Text = strWhole;
// Use the stringBuilder class for the same operation
StartTime = DateTime. Now;
StringBuilder sb = new StringBuilder ();
For (int I = 0; I & lt; intLimit; I ++)
{
StrSub = I. ToString ();
Sb. Append ("");
Sb. Append (strSub );
}
EndTime = DateTime. Now;
ElapsedTime = endTime-startTime;
LblBuild. Text = elapsedTime. ToString ();
// LblBuildString. Text = sb. ToString ();
}
& Lt;/script & gt;
& Lt; html & gt;
& Lt; body & gt;
& Lt; form runat = "server" & gt;
& Lt; h1 & gt; String Concatenation Benchmark & lt;/h1 & gt;
Concatenation:
& Lt; asp: Label
Id = "lblConcat"
Runat = "server"/& gt;
& Lt; br/& gt;
& Lt; asp: Label
Id = "lblConcatString"
Runat = "server"/& gt;
& Lt; br/& gt;
& Lt; br/& gt;
StringBuilder:
& Lt; asp: Label
Id = "lblBuild"
Runat = "server"/& gt;
& Lt; br/& gt;
& Lt; asp: Label
Id = "lblBuildString"
Runat = "server"/& gt;
& Lt;/form & gt;
& Lt;/body & gt;
& Lt;/html & gt;
The difference between the two methods is quite large: The Append method using the StringBuilder class is nearly 200 times faster than the string connection. The comparison result is as follows:
(Figure: picture01)
5. Use server-side controls only when necessary
ASP. NET introduces a new control called Web Server Controls running on the Server. In the code, they are often described through the following syntax:
& Lt; asp: TextBox id = "txtLastName" size = "40" runat = "server"/& gt;
They are also known as ASP controls. The server control is indicated by the runat attribute, and its value is always "server ".
By adding the runat attribute, the general HTML control can be easily converted to the server for running. The following is a simple example:
& Lt; input type = "text" id = "txtLastName" size = "40" runat = "server"/& gt;
You can use the name specified in the id attribute to reference controls in the program. You can set attributes and obtain values programmatically. Therefore, server-side processing is flexible.
This flexibility has a certain price. Each Server Control consumes resources on the server. In addition, unless the view state is explicitly disabled by the control, webpage, or application, the control state is included in the hidden field of the view state and will be passed in each delivery, this will cause serious performance degradation.
A good example in this regard is that for applications that control tables on webpages, if you do not need to reference the elements in the table in the code, you can use HTML tables that do not require server processing. We can still place server controls in HTML table cells and reference server controls in code. To reference any table element, such as a specified unit, the entire table must be a server control.
6. Differences between HyperLink controls and LinkButton controls
For Web visitors, the HyperLink and LinkButton controls are the same, but they still have major functional differences.
When a user clicks the control, the HyperLink control will immediately "navigate" the user to the target URL, and the table pieces will not be sent back to the server. The LinkButton control first sends the table to the server, and then navigating the user to the target URL. If server-side processing is required before the target URL is reached, use the LinkButton control. If server-side processing is not required, you can use the HyperLink control.
7. Comment on the code
This technique is not intended for ASP. NET, but it is a good programming habit.
Annotations should not only describe what operations the code performs, but also indicate the reason. For example, not just in comments, it indicates that the traversal array is to calculate a value based on an algorithm, unless the algorithm is quite simple, otherwise, the algorithm should be briefly described.
Different programming languages in the. NET project have different annotations. The following is a brief description:
HTML & lt ;! -- Comment -- & gt;
JavaScript // Annotation
Vbscript' comment
VB. net' Annotation
C # // Annotation
/* Multiline content
Annotations
*/
SQL -- Comment
There is no annotator In the start and end tags of the server control, but the server can ignore all attributes that it cannot recognize. Therefore, we can insert comments by using unspecified attributes. The following is an example:
& Lt; asp: TextBox
Id = "txtLastName"
Size = "40"
Comment = "this is my comment"
Runat = "server"/& gt;
It is very easy to annotate the source code in Visual Studio. NET. The lines to be annotated are displayed in High Brightness. Press Ctrl + K + C to add comments. To delete a comment, you only need to display the commented code with High Brightness and press Ctrl + K + U.
In the C # project, we can also use the // input XML comment section at the beginning of each line. In the annotations section, we can use the following XML tag to organize Annotations:
& Lt; summary & gt; & lt;/summary & gt;
& Lt; remarks & gt; & lt;/remarks & gt;
& Lt; param & gt; & lt;/param & gt;
& Lt; returns & gt; & lt;/returns & gt;
& Lt; newpara & gt; & lt;/newpara & gt;
To view the formatted reports of these XML annotations in Visual Studio. NET, select the "Tools" menu item and then select the "Create annotation Web page" menu item.
8. Use the trace method and trace properties to record the execution of webpages in the Page Directory.
An old technique of debugging a program is to insert an output statement into the key points of a program. Normally, the output information contains the values of important variables, relevant information can be output to the screen, log file, or database.
In ASP. NET, this debugging technology is easier to use by using the trace attribute in the Page command. The Page command is a line of code at the beginning of the ASPX file, which provides the compiler instructions. The Page command contains one or more attributes to provide the compiler with information such as the programming language used, the location of the Code support file, or the name of the class to be inherited.
One of the attributes in the Page command is trace, whose values may be true or false. Below is a typical Page command, where the trace attribute value is true:
& Lt; % @ Page language = "c #" trace = "true" % & gt;
If the trace attribute value is set to true, the web page generated by the ASPX file is displayed. In addition to the webpage, a large amount of other information about the page is displayed. The information is displayed in the following table:
• The Request details provide the Session ID, Request time, and Request status code.
• Trace Information contains a list of Trace logs and web page lifecycle steps in chronological order. You can also add custom information to it.
• The Control tree lists all controls on a web page in a hierarchical manner, including the size of each control in bytes.
• The Cookies set lists all Cookies created on this webpage.
• Header sets HTTP headers and their values.
• Server variables are Server environment variables related to the webpage.
Trace logs contained in the Trace Information section are the most useful. Here we can insert our own Trace commands. There are two methods in the trace class to insert the command in the Trace log: trace. write and Trace. warn, except Trace. the Warn command displays and traces in red. the Write command is displayed in a black font, and they are the same. Below is a screen snapshot of the tracking log, which contains several Trace. Warn commands.
The most convenient feature in tracking logs is that we can insert Trace into the entire code during development and testing. write and Trace. warn statements. When the application is finally delivered, you can change the trace attribute value in the Page command to disable these commands from working, instead of deleting these output statements before deploying the application.
9. Use stored procedures
Microsoft's SQL Server and other modern relational databases use SQL commands to define and process queries. An SQL statement or a series of SQL statements are submitted to SQL Server. SQL Server parses the command, creates a query plan, optimizes it, and executes the query plan, this takes a lot of time.
Stored procedures are a series of SQL commands pre-parsed and optimized by the query processor. These commands are stored and can be executed quickly. A stored procedure is also called sprocs. It can receive input parameters so that a single stored procedure can process a large range of specific queries.
Because sprocs is pre-parsed, it is more important for complex queries, and its query plan is pre-optimized. Therefore, calling the query process is much faster than executing SQL statements with the same function.
10. Use the. NET command line
The. NET command line tool runs in the Command Prompt window. To make the command executable, it must reside in the current directory of the command prompt, or by setting the PATH environment variable.
. Net sdk installs a menu item on the "Start" menu, which can open a command prompt window that correctly sets the PATH environment variable. You can click Start> Programs> Microsoft Visual Studio. NET "-& gt;" Visual Studio. NET tool "-& gt;" Visual Studio.. NET command prompt.
By dragging this menu item from the menu to the desktop and pressing Ctrl + C, you can copy the shortcut of this menu item to the desktop, which is very convenient to use.