Latest Tweet:
  • Loading...

Yesterday Somasegar made some big announcements about the F# programming language. F# is originally a Microsoft Research project coming out of the Cambridge Research lab. Microsoft have decided to take the project forward and "productize" F#. This means that F# is becoming a first class citizen on .NET and in Visual Studio. Soma didn't mention which version F# is going to make it into, but I don't expect them to have anything ready for Visual Studio 2008. Perhaps an intermediate release and a full integration in version 2008+1? One could only speculate...

F# is a functional programming language with roots in ML and draws inspiration from languages like Python, Matlab, C#, Haskell, Scheme and more. I've previously blogged about the importance of learning new programming languages and ideas in my "learn the language, live the lifestyle" post, and one of the most rewarding courses of my bachelors degree from NTNU was a functional programming course in Scheme. The fact that Microsoft is bringing both dynamic (Ruby and Python) and functional (F#) languages  to the .NET is great news for developers. We can use the right language for our problem domain, while still leveraging the .NET framework or any other .NET component we might have written. A typical scenario for F# might be to implement a domain problem described in mathematical notation in F# and compile it into a .NET assembly, and then use other .NET languages to expose this functionality through some UI or service.

You learn more about F# over at the Don Syme's blog or the project site up on MSDN.

Last week I blogged about a performance problem I helped a colleague debug. The root of the problem was reflection based cloning of objects. Reflection based cloning can be great for maintainability and productivity, but in some cases you might get into troubles. At least if you don't know that the classes you're using are using reflection.

Anders Norås followed up on my post and blogged about other ways to implement object cloning. Yesterday he posted a great example on how to get blazing fast reflection in .NET. In his post Anders discusses how you can use the CodeDOM to generate reflection optimizers and compile them to in-memory assemblies . An even better alternative is the Lightweight Code Generation (LCG) feature of .NET 2.0. In his example cloning a customer class one million times takes about one minutte using pure reflection. The bytecode enhanced reflection takes about 175 milliseconds. Now that's some serious performance. 

"...You have a couple of options for doing optimized reflection on .NET. In general you will use the CodeDOM to generate the optimizers on .NET 1.x, while you'll use Lightweight Code Generation (LCG) on .NET 2.0. LCG bridges the gap between purely dynamic invocations and statically bound calls. The LCG feature provides the means for generating dynamic methods at runtime..." (from Anders Norås blog)

Anders has several other interesting posts on both Java and .NET development. His posts on DSL's and a LINQ implementation on Java is really interesting reading well worth checking out.

I've uploaded the slides from yesterdays user group presentation in Trondheim. There wasn't really much example code worth uploading, so I just uploaded the Power Point slides. The example code that ships with ATLAS shows most of the stuff I demoed yesterday.

The presentation I gave was about a project me, Gøran and Espen have been working on since early spring. The project is an application that runs in 8 hospitals in the region helping them to track post surgery infections. In the application we used allot of Atlas to improve the user experience. So during the presentation I show cased some of the areas where we used Atlas, and demoed how to implement stuff such as the update panel, the auto complete textbox and the modal popup extender.

I also talked about contentious integration and Cruise Control .NET and how that was a success factor in our project. It turned out that very few knew about CC.NET, so I spent some time discussing it.

After the main presentation I fired up XNA and used the Spacewar starter kit for a friendly competition giving away Francesco Balenas book "Programming Microsoft Visual C# 2005: The Base Class Library".

I've added a set of links relevant to the presentations, including a link to the excellent book "Ship it! A Practical Guide to Successful Software Projects", which discuss continuous integration and other techniques to ship your software project on time.

Oh, and I have to mention that the Norwegian .NET User Group just released a brand new site which looks really promising. Now we just have to fill it with content.

We need more speakers to keep NNUG going, so if you'd like to give a presentation at NNUG Trondheim, drop a mail to trondheim@nnug.no.

If you have any questions or comment related to the presentation just add them as a comment to this blog post.

ScreenshotWant to congratulate Eric Carr (he need to get something up on his site) as the winner of the Gadget development competition I helped arrange as part of MSDN Live spring 2006. Eric wrote three really cool gadgets for Live.com (and MSN Spaces) that you definitely should check out:

Eric is the lucky winner of a Xbox 360! Looking forward to see you online on Xbox Live.

 

During the MSDN Live events this spring we announced an Gadget development competition. Just wanted to write a quick reminder and encourage everyone to give gadget development a try. There haven't been that many contributions, so if you write a gadget you'll have a fair chance at winning the Xbox 360.

So, the rules are simple: Write a Live.com or Vista Sidebar gadget and send it to me at jonas@follesoe.no, or post it in the http://www.microsoftgadgets.com/ gallery.

The deadline for the competition is august 15. The winners will be announced late august/early september.

You'll find all the information needed to get started over at http://www.microsoftgadgets.com/. You can also check out the example code and slides from the MSDN Live events in this blog post.

God summer, and good luck!

As of last Friday WinFX is officially known as .NET 3.0. The change of name is purely a marketing decision, and what  was referred to as "WinFX" is now known as the .NET Framework 3.0.

I think this is a good diction which will make more people adopt "WinFX" technology earlier. I guess the only "issue" I have with the name is that the ASP.NET people might expect there be new stuff for them in the 3.0 release of the .NET Framework. But, who knows, perhaps they'll have Atlas finished by the time 3.0 ships.

Microsoft should also start referring to the Orcas (next Visual Studio) and LINQ (Language Integrated Queries) as .NET 3.5 or something.

Read more up at Somasegar's blog.

In the VS2005 beta and ctp releases the default behavior was that new projects weren’t saved when you created the project. This enabled you to easily create a simple web app or any other VS2005 project, do some testing and discard the files. That way your project folder didn’t get filled up with “Project 1”, “Project 2” and so fourth. Before this functionality came along in VS2005 you would typically use SnippetCompiler to do this kind of “testing”. 

In the final release of VS2005 this isn’t the default behavior, and I’ve been asked a couple of times if Microsoft removed this feature. No, they didn’t. If you go to the Tools – Options – Project and Solutions settings, and uncheck “Save new projects when created” you get this behavior back.

This weekend I was in Oslo for the final round in the “Microsoft days spring 2006” event. I’ve been traveling with Microsoft to the four largest cities in Norway giving presentations on .NET, Gadgets and Windows Presentation Foundation.

 

The presentations in Oslo went well and there where quite a few people who showed up for our “latest news” developer track. The slides and code are available on a previous post.

 

During the Oslo event I also recorded a trimmed down version of my Gadget presentation. I’ll write a new post as soon as the recording is available online. Be sure to check out Sondres ASP.NET 2.0 and RSS slides over at his blog.

 

Thanks to everyone who showed up, and good luck in the Gadget competition!

I’ve finally gotten around uploading the sample code and presentation slides from the MSDN Live presentations I’ve been doing with Microsoft over the last couple of weeks. For those of you who didn’t get a chance to attend MSDN Live / Microsoft days this spring we’ll be recording some of the content in Oslo may 15th. I’ll write a blog post as soon as the content is available online.

In the mean time you can download the slides and Gadget code, and perhaps throw together something your self for the Gadget competition.

Introduction to the .NET Framework
I’ve only uploaded the slides from this presentation. The demos are fairly straight forward, a simple web service and a simple client retrieving data from this service. If you attended this session, and want to learn more, my suggestion is to download the SDK, install VS2005 and play with some of the introduction tutorials. I also have two book recommendations:

These are easy to read, short, fun, and colorful introductions to web and windows development on the .NET platform. It walks you trough a full program, or a full website trough out the book.

The slides from the presentation is available here: Introduksjon til dotNET.ppt


Gadgets, Gadgets, Gadgets
I’ve uploaded the sample code, VS2005 code snippets and slides from this presentation. The sample code contains the “Bussoracle” for the Live.com platform and the Vista Sidebar. If you only want to run the gadget you can download the Sidebar version or click this link to add it to your Live.com start page.

Screenshot of the Live.com and Sidebar version of the Bussoracle Gadget

There are a few things you have to keep in mind when doing gadget development for Live.com:

  • For gadget development you need to add live.com and localhost to your trusted sites list.
  • If you’re doing gadget development on IE7 Beta2 you need to add the following registry key: [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_XMLHTTP_RESPECT_ZONEPOLICY] "Iexplore.exe"=dword:00000001

By default IE7 Beta 2 will ignore your trusted sites for XMLHTTP requests, so in order for you to do local development you need to tell IE to look at your trusted sites before allowing/disallowing an XMLHTTP request.

To use the Visual Studio 2005 Code Snippets I showed during the presentation you need to copy the files to your local snippet folders. By default this is located under “Document and Settings\Your User\My Documents\Visual Studio 2005\Code Snippets\XML”. As I mentioned during the presentation, Visual Studio only supports code snippets for XML, C#, VB.NET and J#. How ever, you can create JavaScript code snippet as XML snippets, and add them to your code inside an XML comment tag, and then cut/paste into your JavaScript file. I’ll show this trick in the recorded version of the session.

For those of you who want to compete in the Gadget competition I’ll write a new post with content rules and details.

The code and slides are available here: Gadgets.zip

Better user experience with Windows Presentation Foundation 
The expression splash screenFor this presentation I’ve only uploaded the slides. The demo is basically a walkthrough of the Fabrikam tutorial that ships with the Expression Interactive Designer. I would strongly suggest walking trough these tutorials your self to get a feel of what Expression Interactive Designer can do.

The presentation is available here: WPF.ppt

I hope you all had a good  time at the MSDN Live / Microsoft Days Event. Any feedback is appreciated!

I gave three presentations in Bergen last Thursday. The presentations went fine, except there could have been a bit more people attending the sessions. I’ll upload the Powerpoints and example code once I get back from the Microsoft days event in Stavanger next week. Stay tuned!

I’ll also be publishing some more information on the Gadget Xbox 360 competition we’re throwing together.

There has been some discussion on the Microsoft RD mailing list lateley about managed code usage internaly at Microsoft. In response to that Kevin Schuler gave us a few managed code line counts from popular Microsoft products:

  • Visual Studio 2005: 7.5 million lines
  • SQL Server 2005: 3 million lines 
  • BizTalk Server: 2 million lines
  • Visual Studio Team System: 1.7 million lines

These products have hundreds of thousands of lines of managed code:

  •  Windows Presentation Foundation: 900K lines
  • Windows Sharepoint Services: 750K lines
  • Expression Interactive Designer: 250K lines  
  • Sharepoint Portal Server: 200K lines
  • Content Management Server: 100K lines

Just some fun trivia for your amusement!

I’ll be giving three presentations at the next round of the “Microsoft days”, a quarterly event held in the four largest cities in Norway. The event has three target groups; PC-users, IT management and technicians (TechNet) and developers (MSDN). The MSDN part of the event has two tracks, one on Team System and one on “the latest and greatest” in development for Office 2007 and Vista.

My first session is a breakfast seminar on “.NET introduction” for totally beginners. The next session is on “Microsoft Gadgets” (Sidebar, Live.com and SideShow), and my final session is on improving the user experience using Windows Presentation Foundation.

My good friend and fellow RD Sondre will be giving three presentations as well. An introduction to Team System, how to improve user experience online using Atlas, and finally “information to the people” using the RSS platform in Vista.

After the sessions there will be an “after tech” where you can hang out with fellow developers, get some food and beer and listen to some live music. All in all the agenda looks great!

The dates to spare are as follow:

  • Bergen 26.april
  • Stavanger 04.may
  • Trondheim 08.may
  • Oslo 15.may

You can read more about the event and sign up at http://www.microsoftdagene.no/. Oh, allmost forgot to mention: the event is absolutely free! Hope to see you there! 

The "Atlas" Control Toolkit is a set of nine great controls and extenders that use "Atlas" technologies and allow developers to easily improve the client experience on their websites.  All of the controls come with full source, and the toolkit also includes Visual Studio 2005 templates to get you started writing your own controls.

You can read more about the Atlas Control Toolkit over at http://atlas.asp.net/default.aspx?tabid=47&subtabid=477 and http://atlas.asp.net/atlastoolkit/.

Xbox360netThe Game Developers Conference 2006 finished a couple of days ago, so some of you might have heard about this already. Microsoft announced a couple of interesting news at the GDC, among then XNA Studio, XNA Framework and XNA Build.

XNA Studio is a customized version of Visual Studio 2005 Team System aimed at game studios. It helps game studios manage the development process and “content pipeline” (getting all the sound, graphics, models, textures etc into the game).

XNA Build is a tool helping the studios to streamline the software build process, kinda Msbuild on steroids.

How ever, the most interesting announcement was the XNA Framework. This is a custom implementation of the .NET Framework that runs both on the PC and the Xbox 360. The framework contains a set of class libraries to help developers build games faster (and cheaper). By leveraging the XNA Framework cross platform development also become much easier. Basically what this mean is that you can write Xbox 360 games in C#. How cool is that?!  By making Xbox 360 game development accessible for smaller game publisher we’ll hopefully see more innovation and cool games coming out. This combined with the Xbox Live Marketplace distribution model opens up lots of new business opportunities for smaller game developers. Now we just have to hope that the rumors about 100$ Xbox 360 debug units are true… The XNA is available for download as a CTP.

Here are some of the information from the press conference where XNA was announced:

"We've been writing games for the last 15 years as monolithic, single-code bases that are growing unwieldy and complex," says Chris Butcher, lead developer at Bungie Studios. "C# on Xbox 360 lets us think about new modes of programming. It lets us get back to creating a game rather than wresting with code, while maintaining the real-time performance that we need."

Read the whole story over at Xbox.com.

Last week I got confirmation from Kevin Schuler that I’ve been nominated to become a member of the Microsoft Regional Director program for a two year period. I received the Regional Director agreement and the NDA agreement yesterday, so I figured it was about time I wrote a blog post about this.

It’s a great honor to become a Microsoft Regional Director. At the moment there are 4 RDs in Norway, and only about 160 world wide (dont know the exact number).

The other Norwegian RDs are

It feels a bit strange to become a member of such a highly qualified and experienced group of people. Many of the RDs have written several books and are well recognized people in the software industry. Even tough I’m not as experienced as many of the other RDs I really think I can do a good job at promoting, evangelizing and educating people on Microsoft technology, and in special .NET development. I’m really looking forward to become an even more active member of the developer community.

Thanks a lot to Petter Schatvet and the other guys in the Norwegian MSDN team for nominating me!

I’ve finally published my article on how to write a Messenger robot. The article is in Norwegian and is published on the Microsoft Student Community Website under out own “Coding4Fun” section.

 

All feedback is appreciated.

The December edition of MSDN Magazine is out, and is as usual available online at http://msdn.microsoft.com/msdnmag. One of the articles well worth checking out is the “Ten Essential Tools: Visual Studio Add-Ins Every Developer Should Download Now”.

The author, James Avery, lists the following ten essential tools:

  • TestDriven.NET (helps you test your code)
  • GhostDoc (helps you write documentation faster)
  • Smart Paster (lets you paste code as comment, string, string builder, region etc)
  • CodeKeep (snippet repository)
  • PInvoke.Net (look up how to access Win32 API calls and get examples online)
  • VSWindowManager PowerToy (store your different VS2005 window layouts)
  • WSContractFirst (helps you write contract first web service applications)
  • VSMouseBindings (speed up your VS2005 development using mouse actions)
  • CopySourceAsHTML (copies your source as formatted HTML)
  • Cache Visualizer (visualise the ASP.NET cache during debug)

The article contains more information about the tools and download links. The article can be found at http://msdn.microsoft.com/msdnmag/issues/05/12/VisualStudioAddins/default.aspx.

Another great list of excellent tools can be found at Scott Hanselmans blog: Scott Hanselman’s 2005 Ultimate Developer and Power Users Tool List.

<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910