Some difficulties of learning ASP.NET

Difficulties 1: Tools
Say, in your company, you are using Visual Studio 2003 and in order to improve your skill, you want to put give more time to learn it at home. But, the problem is you do not have Visual Studio 2003 at home. You went to check and realize that there is one which is free called Visual Web Developer 2005, but it is for ASP.NET 2.0 only.

Solution: Not found yet. (I think I’ll just learn ASP.NET 2.0 at home while in office, I will learn ASP.NET 1.1)

Side-point about ASP.NET framework and Visual Studio IDE:

IDE     Free light version IDE
Visual Studio .NET 2002 Requires 1.0 ASP.NET Framework * Supports 1.0 ASP.NET Framework only Not available
Visual Studio .NET 2003 Requires 1.1 ASP.NET Framework Supports 1.1 ASP.NET Framework only Not available
Visual Studio .NET 2005 Requires 2.0 ASP.NET Framework Supports 2.0 ASP.NET Framework only Visual Web Developer 2005 Express Edition
Visual Studio 2008 Requires 3.5 ASP.NET Framework Supports 2.0, 3.0, 3.5 ASP.NET Framework (2.0 and 3.0 ASP.NET Framework will automatically be installed) Visual Web Developer 2008 Express Edition **
* During the earliest version of ASP.NET, in some places, you might not see the version number. Instead they just put ASP.NET. But this is actually refering to ASP.NET 1.0 version.

** You might bound into different terms like Visual Studio Express Edition instead of Visual Web Developer 2008 Express Edition. This is my understanding. An analogy to explain the word “Studio” is by using Microsoft Office. Under Microsoft Office, there are Microsoft Word, Microsoft Excel and Microsoft PowerPoint. This “Studio” is like Microsoft Office. So, to be more clear and organized, Visual Studio Express Edition consists of:

  • Visual Web Developer 2008 Express Edition
  • Visual Basic (.NET) 2008 Express Edition
  • Visual C# 2008 Express Edition
  • Visual C++ 2008 Express Edition
  • SQL Server 2008 Express Edition
  • Difficulties 2: Terms
    (You already gotten some confusing terms from above.)

    Certains terms in ASP.NET could be quite confusing. And seems like those to come out with this terms, do not realize this problem. Otherwise, there will be more articles and diagrams to clear up this confusion.

    Example: ASP.NET vs .NET Framework vs ASP.NET Framework vs .NET? For my knowledge right know, they all are refering to the same thing.

    More examples: dataset, datagrid, gridview, dataadapter, datareader, datatable, dataview, detailsview, datalist, formview and repeater. Some terms remain the same from .NET 1.1 to .NET 2.0, but some are new terms from .NET 2.0.

    Solution: The second diagram at the bottom at this page helps to clear up some of the above terms.


    Lastly, please correct me if I got any inaccurate information here. Thanks in advance.

    References

  • http://en.wikipedia.org/wiki/.NET_Framework
  • http://en.wikipedia.org/wiki/Microsoft_Visual_Studio
  • http://en.wikipedia.org/wiki/Microsoft_Visual_Studio_Express
  • Debug vs Release Build

    During implementation stage, what we normally do is we build (or compile) it as usual and then copy and paste the dll file from local to development server for testing.

    And after the testing is succesfully, we moved the dll from development server to staging server for testing again and then to production server.

    Everything seems fine but one thing I didn’t realize (or easily forget to do) is there is a release build. The difference between the two:

  • debug build consists of debugging information in Microsoft format and no optimization, which means the dll file size is larger.
  • release build does not consist debugging information in Microsoft format but got optimization, which means the dll file size is smaller. Thus, better performance.
  • I tried. Using debug build, my dll file size is 48 KB, while using release build it is just 44 KB. Not big difference, but imagine if you have many dlls, it counts a lot.

    In conclusion, we should use debug build during our local development while release build during implementation.

    Inline/Dynamic SQL vs Stored Procedures (Just 5 short summarized points)

    After reading some articles and discussions on this topic, my conclusion is:

  • It is a myth to use all inline/dynamic SQL for all the queries in the application.
  • It is a myth to use all Stored Procedure for all the queries in the application.
  • Use Stored Procedure when the query is very complicated, easily will need changes and with many business logics. Reason is easier maintenance. Business logic easily change. Changes in Stored Procedure does not required re-compile of code.
  • Use Stored Procedure when the query will take long time to complete it. Reason is better performance.
  • Other that the two situations above, use inline/dynamic SQL in the code, but it needs to be a parametrized SQL. (classic ASP doesn’t have this but ASP.NET)
  • References

  • http://codebetter.com/blogs/eric.wise/archive/2006/05/24/145393.aspx
  • http://weblogs.asp.net/fbouma/archive/2003/11/18/38178.aspx
  • http://weblogs.asp.net/aaguiar/archive/2006/06/22/Stored-Procs-vs-Dynamic-SQL.aspx
  • http://weblogs.asp.net/fbouma/archive/2003/05/14/7008.aspx
  • http://www.theserverside.net/news/thread.tss?thread_id=31953
  • http://www.codinghorror.com/blog/archives/000292.html
  • http://www.codinghorror.com/blog/archives/000117.html
  • Organize your code with Region

    When you have many related functions, you can consider to group them together using Region.

    Example, if you have four functions which are related to Paging, you can just add a region like below (ASP.NET 1.1, VB.NET syntax):

    #Region "Paging"

    Public Property CurrentPage() As Integer
    ' Your code here ...
    End Property

    Private Sub ImgBtnPrevBottom_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImgBtnPrevBottom.Click
    ' Your code here ...
    End Sub

    Private Sub ImgBtnNextBottom_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImgBtnNextBottom.Click
    ' Your code here ...
    End Sub

    Private Sub ItemsGet()
    ' Your code here ...
    End Sub

    #End Region


    Now, go to your Visual Studio 2003. Click Edit > Outlining > Collapse to Definitions, you will see the below:

    Print Screen - Region

    It is very simple to do, yet useful.