Brian’s Top 10 Articles on MSDN

Ok, so I just spent some time surfing around MSDN, looking at the new site and reliving lots of the great content on there.  So I thought I’d pull together my TOP 10 articles for ASP.NET, in no particular order below – these are all must reads for folks getting ready for ASP.NET 2.0.


Brian’s Top 10 Articles on MSDN



ASP.NET 2.0 Security Practices at a Glance

This module presents a set of consolidated practices designed to address ASP.NET version 2.0 security issues. The practices are organized by various categories that represent those areas where mistakes are most often made.   


Building ASP.NET 2.0 Web Sites Using Web Standards

Microsoft ASP.NET 2.0 has many features to help you design and build Web sites that are compliant with XHTML and accessibility standards. This article looks at how and why you should be building these standards-compliant sites.  


Understanding and Extending the Site Navigation System in ASP.NET 2.0

The ASP.NET 2.0 site navigation system is built on a powerful and flexible architecture that has been designed to be extensible. This article examines the site provider architecture, and includes a sample provider that exposes the file system as a data source for site navigation, as an alternative to the standard Web.sitemap XML file.   


ASP.NET 2.0 Provider Toolkit

The provider model is used throughout ASP.NET 2.0. It is a means of writing each of the technologies used so that new versions can easily be created and plugged in. For example, if you need to access a different database or authentication server, you can create a provider for it. ASP.NET 2.0 will then work with that provider just as it works with the existing features. This makes ASP.NET 2.0 much more flexible, expandable and customizable than before.   


GridView Examples for ASP.NET 2.0

This article illustrates how to accomplish a number of common tasks with the Microsoft ASP.NET 2.0 GridView control. Each task is accompanied by a description of the new concepts covered, and the complete working examples are available for download with this article.   


Learn ASP.NET 2.0 with Jeff Prosise

See how to maximize your business potential with Microsoft solutions. This series of presentations by Jeff Prosise of Wintellect introduces you to many of the new features of ASP.NET 2.0.


Getting Started with Visual Web Developer 2005 Express Edition

This video series is designed specifically for individuals who are interested in learning the basics of how to create dynamic Web applications using ASP.NET 2.0 and Visual Web Developer 2005 Express Edition in either Visual Basic or C#.


Introducing the ASP.NET 2.0 Web Parts Framework

Web Parts provide you with the infrastructure for creating customizable Web applications. When you build a Web site with Web Parts, the Web site can be easily customized by either the administrator of the Web site or the individual users of the Web site. Web Parts are all about flexibility.   


ASP.NET 2.0 Localization Features: A Fresh Approach to Localizing Web Applications

Creating global Web applications with Microsoft ASP.NET is becoming more and more important. ASP.NET 2.0 makes it even easier to provide support for multiple cultures and locales through improved runtime and tool support.   


How to Share Session State Between Classic ASP and ASP.NET

An oldie but a goodie for helping share state between ASP and ASP.NET applications.

Comments (6)

  1. Steven says:


    I’ve been reading the article "Gridview Example:"

    I went thru the code and see something new that I don’t get:

    public class ProductDAL


    public static List<Product> GetProducts()


    Can you please tell me what "List<Product>" is ?, why do we need to use it?

    thank you

  2. karl says:


    That’s a generic, a new feature of .Net 2.0.

    if you simply do a search for c# generics (or, they aren’t language specific), you’ll get a lot of hits.

    I like to think of things in simple terms. Basically, generics let you build generic classes 😉 Ok, simple but not useful.

    There’s a class in the framework called List<T> and when you declare a new type of List<T> you substitude T with whatever class you want. like List<int> or List<string> or List<Pruduct>. For that instance, where ever the class <T> exists, it’ll get replaced with whatever class you pass in.

    so if you have a function like

    public void Add(<T> objectToAdd)




    it’ll actually turn, at compile time, into

    public void Add(string objectToAdd) //or whatever you pass into <string>

    The problem with not having generics is that the only two solutions is to create a class that accepts everything (object) or a custom collection for each possible value.

    With the arraylist, which accepts an object, you can do:

    ArrayList arr = new ArrayList();



    arr.Add(new DataSet());

    which is powerful, but often times not needed and can result in (a) performance issues and (b)runtime erros

    With a generic you can do:

    List<string> strings = new List<string>();



    but it won’t compile, because the specific instance only accepts strings. It essentially moved potential run-time errors into compile-time erros, which are 1000x better.

    Do a search and you’ll get a lot more details.

  3. cowgaR says:

    Hi, it is the ‘new’ feature in C# 2.0 called generics. A List is a collection, can store pure objects or if you want to maintain strong typing you make sure List collection will take only Product type objects. And it is also a prerequisite when working with Object DataSources etc.

    e.g. GetProducts() method will return a collection of Product-typed objects, so there is no casting needed when you catch it as in C# 1.0 times, where collection typically stored only object typed values.

  4. Jody says:

    "List<product>" is a respresentation stating that the list is strongly typed (generic). This is part of the whole new generics (yep – generic doesn’t sound quite right but is what it is). You can read up more about generics on MSDN but basically put – it creates strongly typed data so that when compiled you should be notified when you try to assign data that does not match the type of the variable you are trying to populate. Thus, resulting in less errors when an application is actually deployed.