Galin Iliev's blog

Software Architecture & Development

VB 9 Relaxed Delegates

I am reading about new features in Visual Studio 9.0 (Orcas) (while I am playing with it :) ) and I found there is a new feature in Visual Basic called Relaxed Delegates.

What this means!? For instance you can convert methods to delegate even when methods doesn;t have all parameters (if not used)

This is the sample from Amada Silver:

Another great feature that you’ll notice in Beta1 is Relaxed Delegates. In short, relaxed delegates are a way to extend VB’s implicit conversions to delegate types. With relaxed delegates, you can write the following code:

Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) _

  Handles Button1.Click, Button1.MouseClick

    MsgBox("Do Something")

End Sub

You can even omit *all* of the event arguments if your method body doesn’t need them. This improves readability without compromising type safety:

Option Strict On

Public Class Form1

  Private Sub Button1_Click() Handles Button1.Click, Button1.MouseClick

    MsgBox("Do Something")

  End Sub

End Class


A bit unfair to C# but still - this is Visual Basic :)


Use ASP.NET to authenticate users in Winform app

ASP.NET Authentication is very nice and could save a lot of time. Yes, although it covers many cases according Murphy laws you'll need that one that is not covered :). Fortunately there is a way to extend ASP.NET Authentication in order to include all you need. Or even build entirely custom autentication module that works fine with ASP.NET login controls.

But when you want to use single authentication for Windows form and Web applications and decide to use built in ASP.NET Authentication then you will have to write a lot code.

In VS 9.0 (codename Orcas) there is a easy way to use ASP.NET Authentication in Windows Forms application. See sceenshot below:
 




The screenshot is from Visual Studio codename Orcas beta 1
More will be covered soon.

C# 3.0 and Orcas chats

There are several upcoming chats regarding C# 3.0, LINQ and Orcas that could be very interesting

April 23, 2007
11:00 - 12:00 P.M. Pacific Time
Additional Time Zones

C# IDE Chat
C# IDE Chat: Code snippets, enhanced IntelliSense, type colorization, refactoring, improved code navigation, metadata as source, Edit and Continue! There are so many great new C# IDE features in Visual Studio 2005 - there's a lot to talk about! Or perhaps you have a question about Visual Studio 2003 or what we're planning for the next version? It's your choice! Join the C# IDE team for a chat completely directed by your questions.

Add to Calendar

May 7, 2007
11:00 - 12:00 P.M. Pacific Time
Additional Time Zones

C# Compiler and Language Chat
 C# Language Chat. Want to know more about anonymous delegates in C# 2.0, or our design rationale for them? Have some questions about our current thinking on C# 3.0 and LINQ? Perhaps you'd like to share your ideas with other C# users or the C# language team. Join the C# team for all that and more!
Add to Calendar

May 21, 2007
11:00 - 12:00 P.M. Pacific Time
Additional Time Zones

C# LINQ to SQL Chat
The LINQ Project is a codename for a set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations. LINQ to SQL is a component of LINQ which allows access to data stored in relational databases. We’re actively designing and developing this technology - show up and join the LINQ to SQL team to participate in that process or just get a better understanding!

Add to Calendar



For full list of upcoming chats see MSDN Online Chats

LINQ Tutorial - Expression trees

Is has been a long time since my last update on LINQ tutorial. Last two months has been busier than I expected.

This week I found some time I could announce with pride that next part is done and published -LINQ Tutorial - Expression Trees. As there are many resources for English speaking devs this article target Bulgarian speaking audience.

for those who are interested in LINQ and C# 3.0 in English - watch the blog. I am posting interesting links when I find them :)

As always: your feedback is highly appreciated.

LINQ but in ... JavaScript

Probably you've heard about C# 3.0 and LINQ features but can you imagine this can be done in Javascript too?!

Well this is possible - see example here.
It seems this have very good potential in current Web 2.0 wave.

Here is some info from their home page:

» What is jsc?

jsc is a decompiler or a cross compiler if you will. It is not a source-code parser nor an IDE. It is a command line utility like any other compiler. jsc was originally an anagram for csharp to javascript.

» How does it work?

The compiler extracts CIL from a .net assembly (latest javascript screencast, old screencast). It filters out the classes which are marked with the ScriptAttribute. It selects the target language and emits the source.

Each assembly defines which namespaces will be filtered in. Each class in these namespaces mustScriptAttribute, to be opt-in for jsc compilation. Therefore, previously built assamblies will not define be processed.

» What is the current status?
Currently, the jsc project is non-commercial, unsupported and experimental , but free to use :) If any of you manage to create something others would like to see with this, be it java games or ajax apps, post a comment on the blog.
» Who would like to use it?

  • php, javascript developers
  • java developers
  • asp.net developers
  • you!

» What are the limitations? (Will be adressed when the Orcas reaches beta)
  • operator ?? is not supported.
  • lock is not supported.
  • yield is not supported.
  • switch is not supported.
  • goto is not supported.
  • return within try catch finally is not supported.
  • try handler filter is not supported.
  • ref out is not supported.

Interested?! See Build AJAX and JavaME apps in the c# 3.0 language @ Sourceforge

Visual Studio "Orcas" and .NET FX 3.5 Beta1 shipped!

Today MS  signed off on the Beta 1 release for Visual Studio “Orcas” and .NET FX 3.5. 

Go and check here.

Visual Studio Code Name “Orcas” Beta 1

Visual Studio code name "Orcas" is the next generation development tool for Windows Vista, the 2007 Office system, and the Web. Beta 1 consists of multiple releases including, Visual Studio Professional Edition, Visual Studio Team Suite and Visual Studio Team Foundation Server, which are available as installation media ISO images you can use to install the products. Alternatively, you can download VPC images with the software pre-installed. In addition, you can download prerelease versions of Visual Basic Express, Visual C++ Express, Visual C# Express, and Visual Web Developer.

For a better download experience, MSDN Subscribers should use MSDN Subscriber Downloads for both installation media ISO images and VPC images.

 

This news came from Soma

Red bits and green bits in Orcas

Assemblies of next version of .NET Framework are divided in two groups - "green bits" and "red bits" as they are called inside Microsoft.

The red bits include all the libraries that shipped before as part of the .NET Framework 2.0 and 3.0 (such as mscorlib.dll and system.dll). To maintain a high assurance of backward compatibility for Visual Studio "Orcas," changes in the red bits have been greatly limited.

The green bits assemblies are the brand new libraries with additional classes that work on top of the red bits assemblies. Most of the classes listed in this column are in the green bits assemblies (such as system.core.dll), with a few involving limited changes in the red bits assemblies.

The CLR's contributions to the new libraries include:

  • A new add-in hosting model, which was discussed in the last two editions of CLR Inside Out
  • Support for the Suite B set of cryptographic algorithms, as specified by the National Security Agency (NSA)
  • Support for big integers
  • A high-performance set collection
  • Support for anonymous and named pipes
  • Improved time zone support
  • Lightweight reader/writer lock classes
  • Better integration with Event Tracing for Windows® (ETW), including ETW provider and ETW trace listener APIs

There are also new crypto classes that covers Suite B set of cryptographic algorithms.

for more info read New Library Classes in "Orcas"

C# Team forthcoming chats in April and May

C# Community Program Manager Charlie Calvert  posted rough schedule about public chats with C# team

 In the April/May time frame there will be three public chats by the C# Team.

April 23, 2007, 11 AM Pacific Time C# Visual Studio IDE Chat: Talk about C# IntelliSense for LINQ. Discuss what else is planned for Visual Studio Orcas. Plus: Code snippets, enhanced IntelliSense, type colorization, refactoring, improved code navigation, metadata as source, Edit and Continue and all the other great new C# IDE features in Visual Studio 2005. There's a lot to talk about! It's your choice! Join the C# IDE team for a chat completely directed by your questions.

May 7, 2007, 11 AM Pacific Time Compiler and Language Chat: C# Language Chat. Want to know more about anonymous delegates in C# 2.0, or our design rationale for them? Have some questions about our current thinking on C# 3.0 and LINQ? Perhaps you'd like to share your ideas with other C# users or the C# language team. Join the C# team chat for an opportunity to do all that and more!

May 21 2007, 11 AM Pacific Time LINQ to SQL Chat: The LINQ Project is a part of the next version of Visual Studio, code named Orcas. LINQ will provide a set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations. LINQ to SQL is a component of LINQ which allows access to data stored in relational databases. We’re actively designing and developing this technology - show up and join the LINQ to SQL team to participate in that process or just get a better understanding!

C# 3.0 Compiler milestones

Luke Hoban, Program Manager for the C# Compiler posted blog article how is schedulled job for C# 3.0 compiler. This show what are new things and when we could expect to touch them:

Milestone 1

Our first goal was to get the most fundamental new language features implemented, so we could begin building LINQ applications with the Orcas compiler as early as possible.  Many of the features in this first set were also chosen because they were pre-requisites for implementing some of the later language features.  For example, lambdas were important to get in early, because the conversion of lambdas to expression trees depended on this.  Here's what we built first:  

  • Local Variable Type Inference (var)
  • Lambdas
  • Object Initializers
  • Extension Methods (usage)

Milestone 2

For our second milestone, our goal was to replace the C#3.0 prototype compiler that we had shipped with the May 2006 CTP.  When we finished this milestone, we actually moved all of the teams internally who were using C#3.0 over to use the Orcas C# compiler.  This required implementing:

  • Lambdas bound to Expression Trees
  • Extension Methods (definition)
  • Collection Initializers
  • Anonymous Types
  • Query Expressions

Milestone 3

The third milestone was shorter, and our goal for this milestone was to get to a good state for the first Beta.  The results of this milestone are what you'll see in the Orcas February/March CTP and the first Orcas Beta.  We also implemented one of the most requested language features in the history of C# - auto-implemented properties!

  • Auto-Implemented Properties
  • Enhancements to Collection Initializers
  • Non-language features, such as debuggability improvements

Milestone 4

We're now working on the last feature milestone for Orcas.  We're finishing off with one more language feature and a lot of work to improve compiler fundamentals, such as error messages and performance.  Note that this work won't make it into the first Beta:

  • Partial Methods
  • Compiler Error Message Improvements
  • Compiler Performance
  • Compiler Generated IL Performance

It seems most of the features are implemented and we could see them in CTPs. We can touch most of them except Partial Methods. It looks like MS shaped the main VS Orcas features and they will shine them in next months before they release version 9.

 

Visual Studio Codename "Orcas" timetable

Visual Studio Codename "Orcas" timetable was released on MSDN2.

Here is it:

Visual Studio code name "Orcas"

In addition to developer productivity improvements and new supported platforms and technologies in Visual Studio, Visual Studio code-named “Orcas” release will include the following new scenarios, features and improvements to Visual Studio Team System.

Projected Availability:

  • Beta 1 - 2nd Quarter, CY 2007
  • Beta 2 - Mid-year CY 2007
  • RTM - TBA

It seems we will have more stable releases soon :)