Just picked up that Microsoft has released Visual Studio 2010 and .NET 4.0 CTP. Go and grab the bits here and enjoy!

Monday, October 27, 2008 9:06:53 PM (W. Europe Standard Time, UTC+01:00) 
  Permalink  |  Comments [2]  |  View blog reactions  | 

Microsoft Oslo is soon to be announced at PDC and I’ve found out that they have opened their developer center at MSDN web site and I just wanted you to give you this link. I also wanted to share my thoughts on what I think “Oslo” is all about.

Imagine a world where data would drive your applications. Not classes, services nor assemblies, but the actual content of your application. Excel is a good example of this, you create a new spreadsheet and start adding data and structure it (moddeling) in various ways. Then you begin to summarize and add more advance features into your spreadsheet. And if you think about it, what really drives the Excel spreadsheets is the data you add into it. What if we could develop applications in the same manner? Where we let the data drive the structure of the application (metaprogramming). I think this is Microsoft’s respond to Domain Driven Design.

Today when we are developing application based on .NET we have two separate worlds. We have the compile- and run-time world of the application. Compile-time is where we define and structure of the application using classes and assemblies. Then we compile it and run it, in this world we have interconnected objects that communicates with each other. These objects load data from databases, web services, the file system etc, they interact with the user and they also process data based on the logic of the domain we are in. As a young developer it is hard to differentiate and understand these two completely different worlds. I hope Oslo can balance this, and open up our mind for domain modelling and Domain Driven Design.

“Oslo” contains a textual modeling language called M, a visual modeling tool called Quadrant and a repository for managing Domain Models. I think the models will be stored inside a SQL Server database.

Imagine a future where you can define your model in a textual DSL or visual tool. Then adding the data needed to expand your model. And the next level is to scaffold some user interfaces based on the model, and bang! you have a data driven application.

Read more about Oslo on the MSDN Developer Center or at Chris Sells blog.

Happy reading!

I would also like to add that I'm not attending PDC, I'm sitting home monitoring live video streams, twitter and RSS feeds. So some of this information might not be 100 percent correct, it's my interpretation of content gathered from various sources.

Monday, October 27, 2008 7:00:12 PM (W. Europe Standard Time, UTC+01:00) 
  Permalink  |  Comments [2]  |  View blog reactions  | 

I’m watching the PDC keynote live stream at the moment. I was so impressed and inspired of the content presentment that I couldn't wait to tell you about it. Windows Azure was just announced, and it’s the Windows Operating System for the Cloud (internet). Azure is running upon several datacenters owned by Microsoft around the world (Windows container). This enables Azure to scale and guarantee uptime for your services in the cloud.

So we have this big operation system in the cloud, but what can we do with it? I like to think about Azure as an Operating system. It’s a platform where we can deploy services (WCF, SQL Services, Web applications etc) to the cloud - exactly like we can with a regular Windows OS. And this operating system will guarantee scalability and availability for your services. The .NET platform is also a part of Azure, and this enables you to leverage upon your existing .NET and C# skills.

Imagine you are about to start up a Web 2.0/3.0 company where your business model relay on your services in the cloud. Doing this requires lots of planning and money in order to build datacenters that will scale and handle the load from your users. Do you remember all the problems Twitter had about a year ago, when their services went up and down all the time? Azure has embedded patterns and best practices explored while developing large scale computing systems like Windows Live Search, Windows Live Messenger etc. While building your cloud services upon Azure you can utilize upon a system that will scale and be available.

Imagine how easy it will be to develop the next generation of Twitter based on .NET that will run upon Azure. You will have a platform that is guaranteed to scale and be available around the globe 24/7. The only think you need to think about is to develop your service and enable it for Azure. This will open a new area of services in the cloud. I think we might see a boom of companies that will base their services on Azure! I can’t wait to see where this is going!

I’m curious about the business model of Azure – how is Microsoft going to earn money on this product?

And I can only imagine what we can achieve with Azure together with Oslo.

You can follow Windows Azure on its public website and the product team blog.

I would also like to add that I'm not attending PDC, I'm sitting home monitoring live video streams, twitter and RSS feeds. So some of this information might not be 100 percent correct, it's my interpretation of content gathered from various sources.

Monday, October 27, 2008 6:03:19 PM (W. Europe Standard Time, UTC+01:00) 
  Permalink  |  Comments [1]  |  View blog reactions  | 

Lars Wilhelmsen started this meme and he is curious about what addins and customizations for Visual Studio 2008 other fellow developers use in their daily work. Lars actually uses lots of useful tools that I’ve never heard of, so it was quite useful for me to read his list.

In my daily practice as a software craftsman I use a lot of tools, but very few of them integrate with Visual Studio. Therefore I would like to raise another question, and that is; what other tools beside Visual Studio 2008 do you have in your tool belt when developing applications based on the .NET platform?

iStock_000005579883Small

Here is my list of addins and customization to Visual Studio 2008:

Addins

  • TestDriven.NET – A test-runner that supports various sets of testing frameworks; NUnit, MBUnit, XUnit etc.
  • AnkhSvn – Subversion Source Control into Visual Studio
  • Theme: Distant Shores
  • Font: Consolas 15pt

Templates and snippets

  • PresentationModel snippet – A snippet I originally created for personal use. I use it when I’m developing WPF application and use the Presentation Model (Mode-View-ViewModel) design pattern. The snippet generate properties

Shortcuts

  • Alt + shift + F10 – Activate smart tag. I use it to import namespaces and generate implementation of interfaces that my class implements
  • Ctrl + K, K – Bookmark a line of in source file
  • Ctrl + K, N – Moves to the nest bookmark in document
  • Ctrl + K, P – Moves to the previous bookmark
  • Ctrl + B, C – Clear all bookmarks in file
  • Ctrl + J – IntelliSense
  • Shift + Alt + Enter – full screen
  • Ctrl + E, C – Add comment
  • Ctrl + E, U – Remove comment
  • Ctrl + Shift + B – Build solution

Other tools (developer tool belt)

  • XUnit – Unit testing framework
  • NUnit – Another unit testing framework
  • Moq – Mocking framework
  • RhinoMocks- Another mocking framework
  • Boo – One of my new favorite languages on the .NET platform. Why? Syntax extensions with macros. You can actually extend this language with your own syntax
  • Specter – Unit testing framework implemented in Boo. What’s nice about Specter is that it’s based on the BDD ideology and has a nice DSL for writing those test cases. I also use it for writing tests for code implemented in C# and other .NET languages
  • SharpDevelop – Open Source IDE which I use when writing Boo code
  • WiX (Windows Installer Xml) – A neat tool for building Windows Installation packages. My friend Jon Arild has some really good posts about this tool
  • FinalBuilder – Use this tool for Build Automation and release management. What’s nice about this tool is that it represents the build process in a Visual manner. This certainly lowers the bus factor
  • Automise – Visual Batch scripting tool. With this tool it’s really easy to automize manual procedures
  • CruiseControl.NET – Continuous Integration (my favorite for years!)
  • MSBuild – The main build tool for the .NET platform. Did you know, when compiling your solution in Visual Studio, you are actually starting an MSBuild script? I use MSBuild to script build tasks like compile and unit testing
  • Reflector - If you need to have a look at or reverse some compiled .NET applications (MSIL), this is the tool
  • Tortoise – Client for Subversion which integrate nicely into your Operating System shell
  • Blend – Use Blend for creating GUI (XAML) for Silverlight and WPF
  • XAMLExport – Illustrator to XAML export
  • XAML Debuggers (Mole, Woodstock) – Use them for XAML debugging
  • jQuery

Let me emphasize that I’m using lots of tools, and I’ve probably forgot some of them, but this is the tools that immediately came into my mind.

There is no good reason for me not to use Visual Studio IDE extensions like ReSharper or CodeRush. I’ve several times started to use ReShaper, but there has been something missing every time. For instance, the last time I took it for a test run they didn’t support LINQ, which they do now. I have actually decided to install ReSharper after I’ve published this post, and then take it out for a new test run.

I’m also interested to hear what other fellow developers use for Visual Studio 2008 and other tools they use as a software craftsman. I’m tagging the follow persons:

Saturday, October 25, 2008 10:08:54 AM (W. Europe Standard Time, UTC+01:00) 
  Permalink  |  Comments [24]  |  View blog reactions  | 

A couple of weeks ago Microsoft announced that they will ship jQuery with future versions of Visual Studio.

"We will distribute the jQuery JavaScript library as-is, and will not be forking or changing the source from the main jQuery branch.  The files will continue to use and ship under the existing jQuery MIT license." - Scott Guthrie

Let me emphasize that this is as far as I know the first time I've ever heard that Microsoft is going to incorporate an Open Source project into one of their products. Usually they track down the creators of the Open Source projects, hire them and re-invent the project and then incorporate - like they did with NUnit.

By Microsoft making jQuery a part of their official development platform is a huge statement. They show willingness to collaborate with the community and embrace new and upcoming standards. - I like the new open Microsoft. Not only is this a huge statement, but also a recognition to the jQuery project. Thumbs up for Microsoft and the jQuery team!

What does this means for me?

If you are a .NET web developer you probably already heard some buzz about the jQuery framework in the blogosphere, and you might also have taken it for a test run - if not, check it out.

I believe that we will see built-in support for jQuery in future versions of their web frameworks (ASP.NET WebForms and ASP.NET MVC frameworks). I guess they will release a new sets of controls that are developed on top of jQuery. Maybe we will get a jQuery Toolkit, like we did with the Ajax Toolkit?

According to Scott Guthrie, Microsoft has received lots of requests from the developers that they want support for selection and animations. - I think it's here jQuery really shines.

"Rather than duplicate functionality, we thought, wouldn't it be great to just use jQuery as-is, and add it as a standard, supported, library in VS/ASP.NET, and then focus our energy building new features that took advantage of it?  We sent mail the jQuery team to gauge their interest in this, and quickly heard back that they thought that it sounded like an interesting idea too." - Scott Guthrie


We will have an richer experience when developing on the client-side. jQuery is a framework which makes it easy to manipulate the DOM (Document Object Model) and to implement Ajax functionality. Guthrie has already announced that there will be intelliSense support for jQuery in Visual Studio - even richer developer experience.
So if you want to be ready for future versions of the web development frameworks on the .NET platform, you better check out jQuery!

Where to start?

I previously written a couple of posts about jQuery and using it with the ASP.NET framework. Start by checking them out: Hello jQuery! and jQuery for ASP.NET MVC Unleashed.

Rick Strahl has written lots of good stuff on jQuery - check them out.

DotNetRocks has a podcast about jQuery.

And Scott Guthrie has linked to some good jQuery resources.

Happy coding!

Monday, October 13, 2008 9:01:22 AM (W. Europe Standard Time, UTC+01:00) 
  Permalink  |  Comments [4]  |  View blog reactions  |