Galin Iliev's blog

Software Architecture & Development

.NET Framework source code is LIVE for stepping into it

.NET source code was promised to be open a while ago and now this is fact. Shawn Burke posted on his blog steps to enable it.

Here are basic ones:

  1. Install the Visual Studio 2008 QFE. (If you get an error installing the Hotfix , try inserting your VS 2008 DVD and then running the Hotfix EXE again. the work in this is in progress)
  2. Start Visual Studio 2008 and bring up Tools > Options > Debugging > General.  If you are running under the Visual Basic Profile, you will need to check the box on the lower left of the Options Dialog marked "Show All Settings" before continuing (other profiles won't have this option).

    Set the following two settings:

    • Turn OFF the "Enable Just My Code" setting
    • Turn ON the "Enable Source Server Support" setting

  3. Next, bring up the "Symbols" Page and set the symbols download URL and a cache location.  Specifically, set the three settings below:

    • Set the symbol file location to be: http://referencesource.microsoft.com/symbols
    • Set a cache location.  Make sure this is a location that your account has read/write access to.  A good option for this is to place this path somewhere under your user hive (e.g. d:\cache\vs2008\symbols)
    • Enable the "Search the above locations only when symbols are loaded manually" option.

    image

(via Shawn's blog)

And this is it....Enjoy!

Read the full blog post at Shawn's blog

ADO.NET Data Services CTP is released!

ADO.NET Data Services aka Project "Astoria" December CTP is released. Mike Flasko (PM @ Astora team) posted some key points:

The following features are in this CTP:

  • Support to create ADO.NET Data Services backed by:
    • A relational database by leveraging the Entity Framework
    • Any data source (file, web service, custom store, application logic layer, etc)
  • Serialization Formats:
    • Industry standard AtomPub serialization
    • JSON serialization
  • Business Logic & Validation
    • Insert custom business/validation logic into the Request/response processing pipeline
    • simple infrastructure to build custom access policy 
  • Access Control
    • Easily control the resources viewable from a data service
  • Simple HTTP interface
    • Any platform with an HTTP stack can easily consume a data service
    • Designed to leverage HTTP semantics and infrastructure already deployed at large
  • Client libraries:
    • .NET Framework
    • ASP.NET AJAX
    • Silverlight (coming soon)
  • For more information see ADO.NET Data Services official site.

    VS 2008 and .NET Feature Specifications

    Feature specifications are posted on MSDN so everyone who is interested how to write specifications or how looks like specifications inside Microsoft can take a look at Feature Specifications for Visual Studio 2008 and .NET Framework 3.5 in MSDN. All documents are in XPS format.

    Technology Area

    Feature Specification

    Developer Tools Plaform

    Command Bar Improvements

    MSO File Dialog Removal

    File Tab Channel Improvements

    IDE Navigator

    MSBuild Multi-Targeting

    Object Browser Support for New Language Features

    Segoe UI Font Support

    Tool Window Docking Targets

    Tool Window Frames and Tabs

    VS Color Service and VS Gradient Service: Vista Palette Addition

    Windows Framework Support in Object Browser and Find Symbol

    Menu Improvements

    Splash Screen Improvements

    Pseudo Multi-targetting

    Updated Branding

    Visual Studio Proxy Service

    Visual Studio Settings Migration

    Visual Studio for Devices

    eVC: VS2005 Migration

    Visual C++

    Friend Templates

    STLCLR

    .NET Framework Multitargeting in Visual C++

    Versioning of Visual C++ Libraries

    Asmmeta.exe

    Dialog Templates

    File Dialogs

    Marshaling Library

    MFC Support for Common Controls

    Scope Reduction in VC Libraries

    UAC for VC

    Vista Common Controls

    Network Class Libraries

    Internationalized Resource Identifier Functional Specification

    VSTO & VSTA

    VSTO & VSTA Project Upgrade

    VSTA

    Dynamic Programming Model

    Office Workflow Tools

    Setup

    Uninstall Wizard UI

    UI Frameworks

    ListView

    Partial Page Rendering

    Visual C#

    Mapping Format

    XLinq

    .NET Compact Framework

    Microsoft.WindowsCE.Forms.SystemSettings Extensions

    Team Architect

    Support for Web Application Projects

    Architectural Roles

    Enterprise Developer

    ASP.NET AJAX: Debugging Breakpoint Mapping

    ASP.NET AJAX: Script Explorer in Solution Explorer

    VS 2008 and .NET 3.5 are RELEASED !!!

    I've just read ScottGu's blog post  (from an hour ago) where he announces that Visual Studio 2008 and .NET 3.5 Released  as well as many many links for info about new IDE version.

    You can download (90-days free trial edition) of:

    I guess MS bandwidth will be filled in next days ;)

    Using LINQ to Objects in .NET 2.0 projects

    If you've played with C# 3.0 and LINQ you might feel bored with good old .NET 2.0 projects. But wait! There is a way to use LINQ to Objects in .NET 2.0 projects. LINQBridge makes this possible. But how?

    First, it's important to understand that C# 3.0 and Framework 3.5 are designed to work with CLR 2.0-the same CLR version that Framework 2.0 uses. This means that the C# 3.0 compiler emits IL code that runs on the same virtual machine as before.

    This makes Framework 3.5 additive-just as Framework 3.0 was additive-comprising additional assemblies that enhance the existing 2.0 Framework and CLR. So there's nothing to stop us from writing our own assemblies that do the work of Framework 3.5 (at least, the critical bits required for local LINQ queries).

    Can I use LINQBridge with C# 2.0 and Studio 2005?

    You can-but the query operators will be awkward to use without lambda expressions, extension methods, query syntax, etc.

    More info you can find at LINQBridge official page as well as source code. Thanks to Joe Albahari!

    Getting started with Astoria (screenshots story)

    Today I will lead you through the process of creating Astoria service. It is pretty easy as you’ll see.  In my previous post I described the required packages to run Astoria.

    There are mainly to stages:

    • Create and setup Entity Framework data Model
    • Create Astoria Service

    Once you have them you can start Visual Studio 2008 Beta 2

    Then select form the menu Project -> Add new Item… and select ADO.NET Entity Data Model

    Then we follow the EF wizard to Generate Model from database

    We select accordingly the connection to MS SQL Server which has AdventureWorks dabatase.

    On next screen we select objects that will be added to EF Schema and click Finish button:

    And we have the schema ready to use:

    Now we are ready to setup Astoria Service:

    Select form the menu Project -> Add new Item…

    When we have class generated all we have to done is to set Context Object for EF Model. We enter AdventureWorksModel.AdventureWorksEntities and compile.

    And this is all! We are ready to use it. It was pretty easy,  wasn’t it?

    Now let’s test it. All we have to do is loading AdventureWorks.svc from the browser:

    On this screen we see all entities in the schema. We could navigate further with just changing URL:

    You could play with some other Astoria specific queries like those (change your host:port to match yours):

    There is one very good tool that you can use http://astoria.sandbox.live.com/tools/raw.htm . On order to use the page you must host it on same application as Astoria service otherwise browser single origin check will stop the requests. So Save the page and add it to your project


    In next post I will show you how to consume the data from Javascript

    Visual Studio 2008 links

    Scott Guthrie posted a great compilation of links to his blog regarding Visual Studio 2008 features. Here is the list (cross-posted):

    General:

    VS 2008:

    ASP.NET in .NET 3.5:

    LINQ to SQL:

    New Language Features:

    Scott, Thank you for all this educational and interesting info :)