Online MSDN Library – Switch View Feature

I was looking up some documentation on MSDN today I noticed a new button has appeared in the bottom right hand corner named Switch View. (Not sure how long it has been there!)

Clicking on the button give you the option of changing the style of MSDN from Classic to either Lightweight or ScriptFree

As you can see from the examples below changing to one of the other views are much easier on the eyes. They are also much faster in loading.

Classic

image

Lightweight

image

ScriptFree

image

One of the other nice features is around code examples within the library. With the classic view you are sometimes have to trawl through lots of examples for all the different languages.

image

With the Lightweight view this changes to a tab view that you use to change the language.

image

The ScriptFree view shows the code as that of the classic view.

As the Lightweight view is in Beta you can send feedback back to MS by clicking on the Feedback button which is next to the Switch View

image

Programming for Absolute Beginners

One of the questions I get asked lot is { our kid | son | daughter | parent | granny | dog | add own tag } (* delete appropriately) is wanting to start programming what’s the best place to start this thing called .Net?

I while back I posted about the Ramp Up which are free community-based learning course, but for people with a little background, but wouldn’t it be good if there was a site which started you off from scratch?

In my usual Monday morning blog read, I came across a post from Scott Hanselman about the MSDN Beginner Developer Center. The what I hear you cry! It was new to me, so it might be something that has missed you by as well.

image_5DB12285

This is an outline of the course contents for the Web Track

Introduction to Visual Web Developer

> Introduction to Visual Web Developer 2008 Express Edition

> Visual Web Developer 2008 Express Feature Tour

Introduction to Web Development

> Introduction to the Web as a Platform

> Introduction to CSS

> Introduction to JavaScript

Introduction to Programming Languages

> Introduction to the Visual Basic Programming Language

> Introduction to the C# Programming Language

Bits & Bytes

> Bits & Bytes: Lesson 1 Problem Solving in Life and Technology

> Bits & Bytes: Lesson 2 Things, Things, and More Things

> Bits & Bytes: Lesson 3 The Data Game

> Bits & Bytes: Lesson 4 Computer IQ

> Bits & Bytes: Lesson 5 Life before Mice

Introduction to ASP.NET

> Introduction to ASP.NET

> Visual Basic: Beginning Website Development Module 1

> Visual C#: Beginning Website Development Module 1

Absolute Beginner Series in Visual Basic

> Absolute Beginner’s Series Lesson 1: Getting Started

> Absolute Beginner’s Series Lesson 2: Creating a User Interface

> Absolute Beginner’s Series Lesson 3: Events and Postback

> Absolute Beginner’s Series Lesson 4: Web application state

Absolute Beginner Series in Visual C#

> Absolute Beginner’s Series Lesson 1: Getting Started

> Absolute Beginner’s Series Lesson 2: Creating a User Interface

> Absolute Beginner’s Series Lesson 3: Events and Postback

> Absolute Beginner’s Series Lesson 4: Web application state

ASP.NET

> Visual Basic: Beginning Website Development Module 2

> Visual C#: Beginning Website Development Module 2

Absolute Beginner Series in Visual Basic

> Absolute Beginner’s Series Lesson 5: Debugging and Tracing

> Absolute Beginner’s Series Lesson 6: Style sheets and Master Pages

> Absolute Beginner’s Series Lesson 7: Databinding

> Absolute Beginner’s Series Lesson 8: GridView and FormView controls

> Absolute Beginner’s Series Lesson 9: Membership and Login controls

> Absolute Beginner’s Series Lesson 10: Configuring, Building and Deploying

> Absolute Beginner’s Series Lessons 11 – 14: Building a Quiz engine

Absolute Beginner Series in Visual C#

> Absolute Beginner’s Series Lesson 5: Debugging and Tracing

> Absolute Beginner’s Series Lesson 6: Style sheets and Master Pages

> Absolute Beginner’s Series Lesson 7: Databinding

> Absolute Beginner’s Series Lesson 8: GridView and FormView controls

> Absolute Beginner’s Series Lesson 9: Membership and Login controls

> Absolute Beginner’s Series Lesson 10: Configuring, Building and Deploying

> Absolute Beginner’s Series Lessons 11 – 14: Building a Quiz engine

If you want more information then pop along to the site, or have a read of Scott’s blog which gives more details.

Scott Hanselman’s Computer Zen – Programming for Absolute Beginners

Are you new to developing in .Net and looking for Free Training?

Microsoft has posted some free online training course for developers as part of their Ramp Up series.

I came across this a while ago but there has been some new content released.

Ramp Up

Ascend to New Heights

Ramp Up is a free, online, community-based learning program that will help you build professional development skills. Join Ramp Up (it’s free!) and help advance your career.

Currently there are 11 courses

  • Web Development with ASP.NET
  • Move from PHP to ASP.NET
  • Move from ASP to ASP.NET
  • Develop Windows Mobile 6 Applications
  • SharePoint for Developers – Part 1
  • SharePoint for Developers – Part 2
  • Visual Studio 2008
  • For the VS 2002/2003 Developer: Learn VS 2005
  • For the VB 6.0 Developer: Learn VB 2005
  • For the Java Developer: Learn .NET
  • Developer Basics

Ramp Up home page.

Astoria – Online Data Service

At the moment I’m recovering from a bad cold, today is the first time I’ve felt like logging on and I am catching up with my reading.

One thing on this weeks UK MSDN news cast (Note: guys at MSDN Ireland I read your email as well!!) was Microsoft Codename "Astoria".

With more and more applications being written using AJAX and Silverlight, there needs an easy way of getting the data used by the client side code which is then rendered to the client.

One way to do this is with SOAP and web services, however this can become difficult with creating the HTTP payload that needs to sent and there can be some interop issues when different clients all try and use then same data source. Do not get me wrong, for large B2B applications SOAP, Web Services and WS-* are still the way forward, but when you are looking for a light-weight system then you need to look at a different solution.

A fair few years ago a technique using URLS, HTTP and XML called Representational State Transfer (REST). This technique uses simple HTTP verbs (Get, Put, Delete etc.) with conjunction with queries being built up and sent in urls for example

http://myserver/company would get summary information about all the companies

http://myserver/company/Novosco would get detailed information about a specific company.

Each query would then return either XML or even JASON (which is data simply delimitated which can be easily parsed by technology such as JavaScript.

When I did look REST 3 years ago they wasn’t really set ways structuring the queries and where I did contemplate writing a .Net version I didn’t have enough time on the project I was on at the time.

Astoria http://astoria.mslivelabs.com/Default.aspx (currently in CTP) is Microsoft REST-like implementation technology which you can easily expose data sets to the net and like REST used URLS, HTTP.

An Astoria query looks like

http://myserver/data.rse/Customers

http://myserver/data.rse/Customers%5BNovosco%5D

Microsoft have put up a series of examples and documentation on the Astoria site as well as a sandbox that you can try out the technology.

“Orcas” March CTP Released

Well that’s my weekend blown…

The next version of Visual Studio has been released as a Community Technology Preview (CTP).

There are two ways that you can download  the CTP, the individual componants or as a Virtual PC image.

My personal choice would be for the Virtual PC image, which will save all the messing around, installing and configuring (The CTP includes the next version of Team Foundation Server). It will also keep your current dev environment separate from the pre-release software (which is always a good thing!!!). Virtual PC 2007 was recently released (and it’s free!!!)

The only problem with things being delivered as Virtual PC image it takes up more space and puts some load on the host machine (Not too sure until I extract it what OS it is running and therefore how much free memory you’ll need). The virtual hard drive image is split over 9 (Yes 9!!!!) compressed rar files, with 8 parts @ 700MB and 1 part @ 656.1MB.

FYI: The other install is 7 rar file 6 @ 700MB and 1 @ 433.2MB.

I’ll kick off the downloads now and they might be ready for a quick preview at NIMTUG tonight.

From the CTP download page.

The highlights of this CTP include:

  • LINQ
    The LINQ Project: this CTP represents a major milestone in the LINQ project. For more information about LINQ click here.
    • VB 9.0 Language Support: This CTP contains the following language features:
      • Query Expressions: Basic querying, filtering, and ordering support
      • Object Initializers
      • Extension Methods
      • Local Variable Type Inference
      • Anonymous Types
      • XML literals
      • XML properties
      • New Line and Expression IntelliSense
    • C# 3.0 Language Support: This CTP implements all of the C#3.0 language features from the May LINQ CTP including:
      • Query Expressions
      • Object and Collection Initializers
      • Extension Methods
      • Local Variable Type Inference and Anonymous Types
      • Lambdas bound to Delegates and Expression trees
      • Complete design-time support: Intellisense, Formatting, Colorization
    • LINQ to ADO.NET
      • ADO.NET is fully integrated with LINQ and offers many options for using LINQ in various scenarios: LINQ to SQL provides direct access to database tables from the programming environment, LINQ to Entities enables developers to use LINQ over EDM models, and LINQ to DataSet allows the full expressivity of LINQ to be used over DataSets.
      • LINQ to Entities enables developers to program against a relational database using a view of the data that is appropriate for the application they are building, independent of the structure of the underlying database. The use of the Entity Data Model (EDM) enables developers to design models that follow the concepts built into the application, instead of having to map them to constructs available in relational stores. LINQ to Entities is built on the ADO.NET Provider model and will support working against different back end relational stores in addition to Microsoft SQL Server. This CTP includes a LINQ to Entities provider for SQL Server and SQL Server Compact Edition.
      • LINQ to SQL (previous name DLinq) has enhanced the functionality from the May 2006 LINQ CTP. You can find it in System.Data.Linq namespace in System.Data.Linq.dll. New in this release is that DataContext provides optimized modes for read-only use and serialization . Also new is that DataShape streamlines eager loading capabilities and adds the ability to set queries on relationships
    • LINQ To SQL Designer
      • Methods can be created from stored procedures and functions within the designer.
      • Better handling of database schemas.
      • Improved inheritance support in the designer.
    • LINQ over XML (XLinq)
      • System.Xml Bridge Classes added – There is a set of extension methods allowing XPath / XSLT to be used over LINQ to XML trees, allow XSLT transformations to produce an LINQ to XML tree, and to validate an XElement tree against an XML Schema.
      • Event Model – This allows LINQ to XML trees to be efficiently synchronized with a GUI, e.g. a Windows Presentation Foundation application
      • Class hierarchy changes – XObject class added, XStreamingElement class (temporarily) removed
      • Various understandability / usability improvements – There have been a number of relatively minor changes done in response to internal reviews, usability studies, and external feedback to make the API more clean and consistent.
    • LINQ to Objects API
      • The LINQ to Objects API supports queries over any .NET collection, such as arrays and Generic Lists. This API is defined in the System.Linq namespaces inside System.Core.dll.
  • ADO.NET
    • Extended, more powerful data APIs with the ADO.NET Entity Framework
      • With the ADO.NET Entity Framework developers will be able to model the view of the data that is appropriate for each one of the applications they are building, independently of the structure of the data in the underlying database. The use of the Entity Data Model (EDM) enables developers to design models that follow the concepts built into the application, instead of having to map them to constructs available in relational stores. Once the model is in place, the powerful ADO.NET Entity Framework API is used to access and manipulate the data as .NET classes or as rows and columns, whatever is appropriate for each application.
    • Added paging and stored procedures for update (“update customization”) for ADO.NET Entity Framework:
      • Paging: the paging support in the ADO.NET Entity Framework allows developers to “page” over data in a database by indicating the start row and number of rows to be included in the result. Paging is available through Entity SQL (using the LIMIT AND SKIP keywords) and through the query-builder methods in the ObjectQuery <T> class (Top and Skip). In a future CTP the feature will also be enabled to be used in LINQ queries by means of the standard Take and Skip LINQ operators.
      • Stored-procedures for update customization: the Entity Framework by default automatically generates SQL statements for insert, update and delete operations when processing changes to entities in memory to be sent to the database. With the stored-procedures update customization feature developers have the option to override the automatic SQL generation and instead provide stored-procedures that will perform the insert, update and delete operations, which the system will call during entity change processing. Among other things, this enables scenarios where direct access to tables is restricted in the database and the only way to make changes to the data is through stored-procedures.
    • Microsoft Synchronization Services for ADO.NET
      • Provides an application programming interface (API) to synchronize data between data services and a local store. The Synchronization Services API is modeled after the ADO.NET data access APIs and gives you an intuitive way to synchronize data. It makes building applications for occasionally connected environments a logical extension of building applications where you can depend on a consistent network connection. For details please visit http://go.microsoft.com/fwlink/?LinkId=80742 .
  • Web
    • Improvements for web development in this CTP include:
      • New ASP.NET WebForms design-surface with advanced XHTML and CSS features
      • JScript intellisense for ASP.NET AJAX and browser DOM
      • Multi-targetting for .NET Framework 2.0, 3.0, and 3.5 in websites and web applications
      • LINQ to SQL designer integration in websites and web applications
  • Client App-Level Services
    • Enable client application developers to use the same user profile and login services as your Web applications. This enables customers to utilize on set of backend storage for user personalization and authentication regardless of the applications type.
  • C# Workflow Rules
    • Workflow Rules allows users to enter rules (and conditions) in a code-like manner
      • Support the use of the new C# Extension methods features in their rules
      • Enable operator overloading and the new operators in their rules
  • XML
    • XML Tools: XSLT Debugger
      • Enables Input Data Breakpoints allowing the user to break the execution of the style-sheet whenever a certain node in input document is hit.
    • XML Editor Performance Improvements
      • Performance in the Xml Editor for Intellisense, schema validation etc is improved by implementing incremental parsing of the XML Document.
    • Seamless transition between XML Editor and XSD Designer
      • Improves the experience a user has when working with an XML Schema in textual and graphical mode at the same time.
  • MSBuild
    • Parallel/Multi-Processor Builds
      • Building multiple projects in parallel, as much as possible based on the use of dependency information in projects to parallelize
      • Allowing the developer/builder to control the parallelism by providing them the ability to specify the number of processors to use for build.
  • UAC Manifests in the Managed Build Process
    • Support for manifests that are embedded into the final executable via the Build process.
  • IDE
    • Windows Presentation Foundation (WPF) Designer (“Cider”) & Application Tools to deliver the ability to:
      • Create, edit, build, run and debug WPF projects
      • Use the WPF Designer to:
        • Preview any XAML in the designer including user defined controls and types
        • Design Windows, Pages and UserControls
        • Do basic layout tasks in a Grid
        • Do basic property editing using the new property browser
        • Easily understand and navigate “document structure” using the Document Outli
        • See changes in the designer immediately in the XAML
      • Use the XAML Editor to:
        • Edit XAML with intellisense
        • See changes in the XAML immediately in the designer
        • Build design time for WPF controls
    • UAC manifests in the IDE for Windows Vista applications
      • Enable developers on Windows Vista to easily include the UAC manifest as an embedded resource.
  • CLR
    • Add IRI support (RFC 3987) to URI related classes
      • This allows resource identifiers to be specified using a character set that supports all languages.
    • New Async model on Socket class
      • A new Async model is reduces the per I/O overhead compared to the current I/O model
    • Peer Networking Classes
      • Delivers a set of peer-to-peer network APIs that allow a developer to easily extend an application with compelling collaboration functionality.
    • WMI.NET Provider Extension 2.0
      • WMI.NET Provider Extension 2.0 simplifies and enhances the development of WMI providers in the .Net framework to enable the management of the .NET applications while minimizing the impact on the development time.
        • Delivers equivalent access to WMI features and functions available to native code providers.
        • Exposes property updates and methods to managed code.
        • Improved scalability for large collections of WMI entities.
  • Office
    • Enable ClickOnce deployment for Microsoft Office applications
    • Developers now have an easy to use and version resilient security model for their applications that will exist for future versions of Visual Studio and Office. With full support for ClickOnce deployment of all Office 2007 customizations and applications, developers and administrators now have the right tools and framework for easy deployment and maintenance of their Office solutions.
  • Team Architect
    • Top-down service design
      • Top-down system design allows an application architect/lead developer to perform the design of a business solution without having to be confronted with technology decisions. It enables the user to progressively refine a high-level system design, designing new sub-systems and applications in the context of the system in which they are to be used.
    • Architectural Roles on System, Applications and Endpoints
      • Enables an architect, while working on the high-level design of a system’s architecture using the System Designer, to introduce elements into the design that play a specific pre-defined architectural role(s) within architectural patterns.
  • Team Developer
    • Profiler Support for WCF Applications
      • Enable profiling of WCF based applications to improve application performance
    • Customize and extend code correctness policies
      • Code Analysis Check-in Policy improvements to communicate to a developer why the check-in policy failed and to provide guidance on how to pass the policy requirements.
    • Customize and extend code correctness policies
      • Code Analysis Check-in Policy improvements to communicate to a developer why the check-in policy failed and to provide guidance on how to pass the policy requirements.
    • Performance tune an enterprise application
      • Enables developers to run profiling during load and test procedures for a system, to see how it behaves, and use integrated tools to profile, debug and tune. This also enables performance base-lining, so that users can save a baseline profile and then, if the performance degrades, compare up-to-date traces to identify the source of the regression
  • Team Test
    • Unit Test Generation Improvements
      • Improvements to unit test generation provide an easy way for the user to specify what methods to test, and generate test methods and helper code to do unit testing, as well as providing unit test support for generics.
    • Web Test Validation Rule Improvements
      • Web Test rules improvements enable testers to create more comprehensive validation rules for the application being tested. These improvements include the following functions:
        • Stop test on error
        • Search request and response
        • Add validation rule for title
        • Redirect validation
        • Provide test level validation rules
        • Expected HTTP code
        • Warning level for errors on dependents
    • Better Web Test Data Binding
      • This feature allows users to data bind .CSV and XML files, as well as databases to a web test, using a simple databinding wizard.
    • Improved Load Test Results Management
      • With this feature user can open or remove an existing load test result from the load test repository. User can also import and export load test results files.
  • Team Foundation Server
    • Team Build
      • Support multi-threaded builds with the new MSBuild.
      • Continuous Integration – There are many components to this, including build queuing and queue management, drop management (so that users can set policies for when builds should be automatically deleted), and build triggers that allows configuration of exactly how when CI builds should be triggered, for example – every checkin, rolling build (completion of one build starts the next), etc.
      • Improved ability to specify what source, versions of source, etc to include in a build.
      • Improved ability to manage multiple build machines.
      • Simplified ability to specify what tests get run as part of a build
    • Version Control support
      • Destroy- The version control destroy operation provides administrators with the ability to remove files and folders from the version control system. The destroyed files and folders cannot be recovered once they are destroyed. Destroy allows administrators to achieve SQL server disk space usage goals without constantly needing to add more disks to the data tier machine. Destroy also facilitates removing versioned file contents that must be permanently removed from the system for any other reason.
      • Annotate – Annotate is a feature that allows developers to inspect a source code file and see at line-by-line level of detail who last changed each section of code. It brings together changeset data with difference technology to enable developers to quickly learn change history inside a source file.
      • Folder Diff – Team Foundation Server now supports compare operations on folders, whereby the contents of the folder are recursively compared to identify files that differ. Folder diff can compare local folders to local folders, local folders to server folders, and server folders to server folders. It’s a great way of identifying differences between branches, files that you’ve changed locally, and files that have changed between two points in time.
      • Get Latest on Checkout – As an optional setting on a team project or on an individual basis, you can have Team Foundation Server always download the latest version of a file when you check it out. This helps ensure that you don’t have to merge your changes with somebody else’s when you check the file back in.
    • Performance and Scale
      • This release includes numerous improvements in performance and scalability of Team Foundation Server.
  • Visual C++
    • Easily add the Windows Vista “Look and Feel” to native C++ applications
      • Developers can use Visual Studio to build ISV applications that exhibit the Windows Vista “look & feel”. A number of the Windows Vista “look & feel” features are available simply by recompiling an MFC application. Deeper integration that requires more coding or design work on the part of the developer is also simplified with Visual Studio’s integrated support for the Windows Vista native APIs.
  • Windows Communication Foundation and Workflow Foundation
    • WF Designer and Debugger integration with Visual Studio
    • WF & WCF integration:
      • New WCF Send and Receive Activities
      • Enhanced Workflow and Service hosting
    • Enhancement to WF Rules:
      • Added support for operator overloading
      • Added support for the “new” operator to allow users to new up objects and arrays from WF Rules
      • Added support for extension methods to make user’s experience calling extension methods from WF Rules compatible with how they code in C#
    • Partial Trust support in WCF when using the BasicHttpBinding
    • Enhanced REST/POX Support in WCF
    • RSS and Atom Programming Model
    • Atlas Integration, end-to-end programming model for building Ajax style web applications using WCF services.
    • Support for OASIS specifications WS-AtomicTransaction 1.1, WS-Coordination 1.1, WS-ReliableMessaging 1.1, WS-SecureConversation 1.3, and WS-Trust 1.3
    • New Templates for simplified WCF Service Authoring

Roll up of the Latest Software and Services packs

SQL Server 2005 SP2 – This has been in CTP for what seams like ages, and I for all but one project have been holding off installing it for my development environments. As well as the usual fixes and enchancements they have put alot of work in data anaylsis features as well as releasing along side it a set of add-ins for Excel to do Data Mining straight from Excel. SQL Server 2005 SP2 Download Page. Check out the SQL Server Feature Pack for links to the add-ins

Virtual PC 2007 – The latest version of MS’s FREE desktop virtualisation softrware has been released. Both Rob Burke and Dave Northey from Microsoft Ireland have recently both been talking about the benefits features of virtualisation and VPC. Virtual PC 2007 Home Page

Reflector 5.0 – Everyones favourite Reflector tool can be downloaded here here. If your after add-ins for reflector then you can find the list on CodePlex (NET Reflector 5.0 Add-Ins).

NIMTUG Event: Generics – Kathleen Dollard (1st March)

The next NIMTUG event is going to be on the 1st March and should be a right treat, we’re very fortunate to have Kathleen Dollard from the States coming over to Northern Ireland and having the time to do a talk for us.

Generics (for thoses of you who don’t know) is a programing pattern which improves the amount of code and efficency of your hard typed code. Generics support in .Net came with the release of .Net v2.0, but it still a programming method, that I believe, has not been taken up by the majority of programmers.

You can find out more about the event and registration link here

VS 2005: Gotcha DataGrid Dataset and uniqueidentifier (GUIDS)

I’ve never been a great fan of the point and click nature of the DataGrid in .Net, it all seams too easy and there was always the problem with the bloat that was the ViewState.

I’m having to put together a quick proto-type atm so I’m just dragging and dropping controls as fast as my little mouse can go ;). I hit a problem when I was trying to update a GUID though the Edit / Update.

The problem is not with the DataGrid itself but with the underlying DataSource. The problem is that is by default the dataset asp:parameters convert any GUID (uniqueidentifier in SQL) to a object type.

 

1 <asp:SqlDataSource ...> 2 <InsertParameters> 3 <asp:Parameter Name="UserId" Type="Object" /> 4 ... 5 </InsertParameters> 6 </asp:SqlDataSource>

 

This is a bug that was noted in Beta 2 but got in to production. The work around is if you remove the Type="Object" then it work.

 

1 <asp:SqlDataSource ...> 2 <InsertParameters> 3 <asp:Parameter Name="UserId" Type="Object" /> 4 ... 5 </InsertParameters> 6 </asp:SqlDataSource>

 

Thanks to Scott Mitchell Inserting with a SqlDataSource Using uniqueidentifier Parameters