in

Dot Net Mafia

Group site for developer blogs dealing with (usually) .NET, SharePoint 2013, SharePoint 2010, Office 365, SharePoint Online, and other Microsoft products, as well as some discussion of general programming related concepts.

This Blog

Syndication

Archives

Corey Roth [MVP]

A SharePoint MVP bringing you the latest time saving tips for SharePoint 2013, Office 365 / SharePoint Online and Visual Studio 2013.

September 2005 - Posts

  • C# 3.0 features: var

    There is a new type called var in C# 3.0.  Var simply means that the compiler infers the type from whatever you assign to it.  Before I start, it is not a variant and it is not something that is loosely typed.
    Take these examples (pre C# 3.0):
    string myString = “hello”;
    int myInt = 5;
    float myFloat = 5.5f;
    
    Here is how they can be represented in C# 3.0:
    var myString = “hello”;
    var myInt = 5;
    var myFloat = 5.5f;
    
    In this case, myString is declared as a string when it comes down to it.  If you later try to assign an int to it, you would get an error.  The power of this is that you can create whole new data types dynamically without having to actually create them first.
    This is one of the primary technologies used in Language Integrated Query (LINQ).  There are several more things like this that I will show you soon.  The article below provides even more detail.
  • ConfigurationManager (Where is it?)

    As I might have pointed out in the past, the ConfigurationSettings object is deprecated and has been replaced with the ConfigurationManager object.  This object gives you direct access to sections of the web.config or machine.config including the new <connectionStrings> section.  Sometimes when you try to use it, you may notice it doesn't compile or work with intellisense.  This is because they moved the configuration classes out of System.dll and into the new System.Configuration.dll.  So therefore, if you want to make use of it you have to include that reference in your project. 

    The syntax is the same as the ConfigurationSettings class.
    ConfigurationManager.AppSettings["MyString"];
    
    or
    ConfigurationManager.ConnectionStrings["MyConnectionString];
    
  • WinFX September CTP Setup only works on Beta 2

    As I suspected, the WinFX September CTP only works on Beta 2.  This blog entry describes which products from the PDC work together.
     
  • Strongly Typed Resources

    In ASP.NET 2.0, the use of resource files actually does not suck any more.  In fact it is pretty cool and will allow us to do everything we have done in the past plus probably more.  The first thing is that resources are now strongly typed.  For example if you create a new resource file called MyResources with a key of HelloWorld, the resource can be accessed programmatically by the line below.
    MyTextBox.Text  = Resources.MyResources.HellowWorld;
    The value of resources can also be accessed by using an expression inside your markup.
    <%$ Resources:MyResources,HelloWorld %>
    On top of that if you want to bind the value of a resource to a control, you can use the meta:resourcekey attribute.
    <asp:Label ID="Label1" runat="server" 
    meta:resourcekey="resource-key-prefix" /> 
    The limitation there is that it only works with local resources (lame).  There are two types of resources global and local.  Local are specific to a particular page (i.e.: index.aspx.resx) and are contained in the App_LocalResources folder.  Global Resources can be used anywhere and are stored in the App_GlobalResources folder.
    Cultures can be autodetected by using a compiler directive or can be overridden and set manually by overriding the InitializeCulture event.  In this event you can set the culture with a statement like this.
    Thread.CurrentThread.CurrentCulture = 
    CultureInfo.CreateSpecificCulture(UserCulture);
    There is a good chance we will start using resources in ASP.NET 2.0 as opposed to our own proprietary solution.  We sitll may have to do some tweaking but I think it will provide us a good foundation.
  • Beta 2 Uninstallation Instructions

    Obviously, coming back from last week I have a ton to talk about over the next couple of days.  First and foremost is that we get everone upgraded to RC1 of Visual Studio 2005.  Here are the uninstallation instructions.
     
     
    If you didn't notice like me, they already have an auto-uninstall tool. 
     
  • Visual SourceSafe Installation

    The installation of SourceSafe is no longer integrated with Visual Studio.  Kevin has discovered that the location of Source Safe is in the VSS folder on the Release Candidate DVD.
  • WinFX Reference Poster

    Want a cool WinFX reference poster like the one in my cube?  Well, now you don't have to steal mine, you can print out your own.  
     
  • Want to participate in the Office 12 Beta?

    Beta 1 of Office 12 will be available in "a couple of months".  If you want to register to join the beta, go to http://beta.microsoft.com, sign in with your passport, and then use GuestID: PDCOffice (it is case sensitive).  Then just fill out the survey and wait.
  • Language Integrated Query (LINQ)

    One of the new innovations coming in C# 3.0 is the concept of Language Integrated Query. This bridges the gap between a programming language like C# and T-SQL. It introduces a form of syntax that will probably look pretty alien to you at first. This won't be around under the next version of Visaul Studio (next year when Vista comes out), but its good to know what it is.
    Here is an example query.
    IEnumerable<string> expr = from s in names  where s.Length == 5
     orderby s
     select s.ToUpper();
    
    At some point I will go into more detail of how it works once I fully understand it, but if you are interested in reading more about it, the article below is the place to start.
  • Cache Profiles

    We have a ton of static pages on our sites. Most of these could probably be cached with similar parameters (i.e.: VaryByParam: none, CacheDuration="60" or whatever). Now the OutputCache compiler directive supports the new CacheProfile attribute. This says go find that profile in the web/machine.config and use those settings.
    For example:
    <%@ OutputCache CacheProfile="CacheDaily" VaryByParam="name" %>
    
    Then the web.config would have something like:
    <caching>
    <outputCacheSettings>
    <outputCacheProfiles>
    <add name="CacheDaily" duration="86400" />
    </outputCacheProfiles>
    </outputCacheSettings>
    </caching>
  • Final Version Number of .NET Framework 2.0

    If you are curious, the final version of the .NET Framework 2.0 has been announced as being v2.0.50727.
2015 dotnetmafia.
Powered by Community Server (Non-Commercial Edition), by Telligent Systems