Skip to main content

What's new in Microsoft .NET Framework 4 Platform Update 1?

Even this Pooh is confused by the new PU!Microsoft today made me happy & sad all at once! Let’s hit the bad news bit first: (rant start) WTF is a Platform Update? The .NET Framework must be the least logically named thing ever! We have had to endure such inconsistencies major releases be a point difference release (.NET 1.0 vs. .NET 1.1 and again with .NET 3.0 vs. .NET 3.5) while other times major releases are major number differences (.NET 2.0 & .NET 4 come to mind), we've had service packs be patch updates until .NET 3.5 SP 1 which included MASSIVE new functionality and had finally .NET 4 dropped the .0 after the 4 (see how many Microsoft staff mess this up still), in contrast to every release before it! There is zero logic or pattern in this naming, which just adds to MASSIVE customer confusion. Today we are introduced to a Platform Update, and not just PU (like Poo or Pooh) but PU1… that implies more is coming… so WTF is it? Rant over, promise.

It is NOT the new name for bug fixes, the PU is in fact the best news for Workflow Foundation people as it includes some seriously powerful new features.

untitled2We finally get a complete state machine in WF (dance):

  • Entry and exit actions for a state
  • Conditional and default transitions that have transition actions
  • Scoped variables for a state machine
  • Improved tracking support

I know this was available on Codeplex for a while (and there is still other good stuff on there for WF not included in this), but this is just awesome to get it officially as this implies to customers a seriousness & support that having on Codeplex does not.

I would be happy if it was just that but they have ALSO given us the ability to use SQL Azure as a store for WF instances!!

This is HUGE!!

Just imagine storing a workflow in the cloud until you need it later? Ideas for roaming devices, workflows that span across devices and, naturally, better usage of worker instances in the cloud themselves all are opened up by this.

Lastly (and least-ly for me) they add the CompensationExtension class, which is used if you are creating your own host and wish to enable support for compensations in workflows. Not a big deal for me, but this could bring new features into my favourite host AppFabric, but we will need to see if that happens in the future.

The update comes in three parts:

  1. The runtime update. You need this to do development & you need to install this on machines that make use of the new features. You can get the update at KB2478063.
  2. The multi-targeting update allows Visual Studio to give you the option for this in VS as a drop down (see below) you can get this from KB2495638.

    untitled

  3. The designer update, which does include both of the above and provides all the bits needed to make use of the new features in VS. You can get it from KB2495593

So what you waiting for?! Go and get your workflow on!

Lightswitch beta - No more files bug

ls-bugIf you are working with the Visual Studio Lightswitch beta and you hit F5, you may sometimes get the USELESS error “There are no more files”.

This will appear shortly after an explorer dialog opens up showing you files. I like to think this is LS way of mocking me: “look files, now there are no more files. hahahaha”

The cause of this you have edited code and something internally gets wonky. Thankfully the workaround is just open a screen or data source and hit F5 and it will work again!

I’ve logged a bug on this, so if you have this issue too please head over there and vote on it!

UPDATED! Info below...

Got to love Microsoft, it took 18min and they responded it is a known bug! Details from them how to fix it:

This is a known issue. There is a setting on Tools|Options, Projects and Solutions, Build and Run called 'For new solutions, use the currently selected project as the startup project'. If this option is enabled when you are using a LightSwitch project, you will get the behavior you see.

The problem is that if this option is enabled when the LightSwitch project is created, the project that is associated with the code file will be used for the debugging startup project. For LightSwitch, the root project should always be the startup project.

This option is automatically enabled for the Web and Web Code VS profiles. This option is turned off by default for the General, VB and C# VS profiles.

We have a fix that will be in the RTM release where we will ignore this option when a project is created and we will use the root LightSwitch project as the startup project.

To fix existing projects, you can right click on the root LightSwitch project and select 'Set as Startup Project' in the context menu.

Community Night: BE THERE

Clipboard01Tomorrow is another community night, and I realised that there is MANY people who do not know about this fun event. This is a gathering of communities (or user groups or interest groups if you prefer) who meet on a regular basis. This is a totally free event which takes place the 2nd Tuesday of every month at Microsoft’s offices in Bryanston.

*Yawn* another Microsoft marketing session? WRONG! This is run by communities and Microsoft has NO say in the content or agenda, unless a community allows them Smile with tongue out Microsoft is really trying to help all communities by providing the facilities – not the content!

MobiZATo give a concrete example MobiZA, a user group focused on mobile development is doing a session on Android! talk about not Microsoft marketing there!

There is also a variety of communities in a attendance so you can also see things you would not have seen before, for example the business user group or the game developer group! And of course there is plenty of corridors for interesting discussions and some even contain food & drinks!

Hopefully I have given you a taste of what is in store and why you should attend and you can find more details on the DPE team blog.

mapFinally, if you have a user group maybe you should think of joining us at community night? Free venue, projectors, seating, food & drink. Plus plenty of people attend, could be a great way to grow your group. I would personally love to see some Linux & PHP groups there because it would allow those who have not had a chance to see the non-Microsoft world an opportunity and hopefully learn that it isn’t so cut & dry out there.

Remember, tomorrow 12th April 2011 @ Microsoft (map to the left) from first sessions kick off at 16:30 and second sessions get started between 17:30 & 18:00!

Trying to get from the sea to the sky: Publishing to Azure via Squid

Sky Squid

Microsoft has some awesome guidelines on how to publish directly from Visual Studio to Azure, however if your IT department has installed Squid, the open source proxy server, you may be out of luck as recent versions only support HTTP 1.0 and publishing requires 1.1.

Through some testing with the IT dept at BBD Software we have found that you need to be on Squid 3.1 or later else you are not going to be able to do it automatically*

* You can still publish to a local file, then upload via the Silverlight based admin console, but that is too close to FTP to be cool Winking smile

DevDays - The event for Microsoft Developers

imageIt’s that time of year again, it is DevDays time again which is the premier conference from Microsoft for developers! This year it is a very different beast from previous years:

  • Cost: For the second year, you’ll need to pay. This year it is R350 and that is excellent value for the event.
  • Cape Town first: It kicks off in Cape Town this year on May 24th and then moves to Johannesburg after that on may 26th!
  • Johannesburg new venue: We are at Gallagher Estate this year! Very excited about the venue!
  • No Durban Sad smile 
  • Hash tag from day one! See complaining to Cliff on Twitter does work so now we can all hash with #DevDaysSA!
  • No SharePoint – I can’t remember a DevDays without SharePoint, but we have so many other awesome SharePoint options now (Information Worker, SharePoint Saturdays etc…) it is good to have some balance.

There is three tracks so you may want to brush up on how to pick good sessions (short answer, mine Winking smile) plus their is special slots for student & community sessions which really excites me to see new presenters getting big stage time!

I am also very glad that BBD Software (previously known as BB&D) is a major sponsor this year!

You can signup, get more details and engage on the official site at: http://www.microsoft.com/southafrica/devdays/

Agenda:

  • End-to-end software testing with Team Foundation Server and Visual Studio
    • Level: 200
      Speakers: Ahmed Salijee & Colin Dembovsky
      Visual Studio 2010 offers a wide range of software testing capabilities: manual testing, automated UI testing, database testing, low-level unit testing and even performance testing tools capable of simulating thousands of active users. It also provides support for test case management, defect tracking as well as configuring and running your tests in virtual and physical environments. But how do you know which tools to choose for your project? This session will, via a demo scenario, walk you through the various testing capabilities to assist you with the most effective use of Visual Studio 2010's testing capabilities. This session will be useful to developers as well as various tester roles including functional, performance and automation.
  • An end-to-end experience of Windows Phone 7 development
    • Level: 200
      Speaker: Rudi Grobler
      An end-to-end walk through for developing Windows Phone 7 applications using Silverlight
  • Blend: Wiring it all together
    • Level: 400
      Speaker: Shane Morris
  • A lap around Internet Explorer 9 for web developers
    • Level: 200
      Speaker: Simon Wilkinson
      Internet Explorer 9 adds new support for HTML5, CSS3 and many other new web standards, and this is the place to find out all about them. Not only will we learn about those, but we'll take a dive into the work the engineering team has done to make the browser faster through it's new JavaScript engine, the work they've done to ensure that the same mark-up works across all browsers and how hardware acceleration will make your site run faster, without any changes to your code!
  • Azure: Development from scratch
    • Level: 200
      Speaker: Gareth Jane
      The Windows Azure platform is a flexible cloud-computing platform which allows developers to rapidly create highly scalable software applications. This session will introduce developers to the various services and components of the Windows Azure Platform. We will create a very simple application on this platform, especially focusing on the areas which distinguish development on Azure from traditional application development
  • ASP.NET web development with MVC
    • Level: 400
      Speaker: Brent Samodien
      Join us in this session and discover the new features in ASP.NET MVC3 and what scenarios you can target with it. Learn more about the improved HTML Helpers and the new updates to Controller/Action/Method that make your code cleaner. Also, explore the richer URL routing and URL route mapping. We will also show how you can use alternative View Engines, including Razor.
  • A website's life: From sketch to publishing
    • Level: 200
      Speaker: Simon Wilkinson
      WebMatrix is a new, free, fully featured, easy to install web development tool that helps you build ASP.NET and PHP websites and perform validation, SEO optimization and one-click publishing. My favourite feature however is a new script syntax for ASP.NET called Razor, which will help you create dynamic websites incredibly easily. We will spend some time sketching/wireframing our website, doing visual design work in Expression Design and then experiencing the rich development toolset in WebMatrix.
  • Let's get ready for the cloud: Building your applications so they
    are cloud ready
    • Level: 400
      Speaker: Robert MacLean
      In a world where you hear people talking about the cloud, here are some guidelines on how to start building and structuring applications that will be easy to migrate to the Azure platform.
  • Code First in entity framework
    • Level: 200
      Speaker: Brent Samodien
      Code First has been a great success with customers, and in this talk, we'll take a deep dive into how it works and talk about its upcoming RTM (Q1 2011). You'll see how Code First uses convention over configuration to improve developer productivity. Its flexibility allows for either automatic database provisioning or the ability to work with an existing database. We'll be demoing features beyond the initial RTM, such as Migrations support, and we'll also talk about the roadmap for Code First going forward
  • Silverlight 5: The Future
    • Level: 200
      Speaker: Shane Morris
  • Exploring Windows Azure storage
    • Level: 400
      Speaker: Gary Hope
      Examine each of the foundation storage capabilities of Windows Azure, Blobs, Tables and Queues. Discover how to create storage accounts; upload and retrieve blobs and blob metadata; create, update and query tables; and create a simple service that uses a message queue for communication
  • LightSwitch basics: Building your first LightSwitch application
    • Level: 200
      Speaker: Robert MacLean
      Visual Studio LightSwitch is the simplest way to build business applications for the desktop and cloud. LightSwitch simplifies the development process by letting you concentrate on the business logic, while LightSwitch handles the common tasks for you. In this demo-heavy session, you will see, end to end, how to build and deploy a data-centric business application using LightSwitch. After that you will discover what is under the hood to better understand the architecture of a LightSwitch application. Finally you will learn how you can use Visual Studio 2010 Professional and Expression Blend 4 to customize and extend its UI and Data layers for when the application's requirements grow beyond what is supported by default
  • Kung Fu Silverlight: Tips and architectural patterns and practices
    • Level: 400
      Speaker: Dave Russell
      Learn about the rewards of using RIA Services together with development patterns, such as the Service Providers, Single Responsibility pattern, Commanding, user Interactions, Messaging, ChildWindows, Design Time Data, Testing, and developing using Model-View/View- Model (MVVM) pattern, to build Silverlight and Windows Phone apps. Hear the top tips you need to know for building data driven Silverlight apps that solve real world problems.

Social everywhere doesn't work

facebook_64x64

linkedin_64x64

twitter_64x64

Not being on a social network is like having a company which doesn’t appear in your favourite search engine - it is just a requirement of being online in our era and for a long time I have tried to get to the utopian world of an integrated social experience where everyone was everywhere and my updates, posts, pictures etc… trickled across all social networks, so no matter what you did you could hear what I had to say or was doing etc…

This was a stupid idea and I thought I would share my learning’s about that process.

Problem 1 – He with the most friends wins

With Facebook I feel into the trap of accepting every friend request, loading my address book into it and basically any other “tricks” I could to increase my friend count. This meant that logging on to Facebook was a stream of conscience from people I really didn’t care about and so overtime I moved away from Facebook as the value I took out of it was low.

The solution to this was to create a set of guides for people to be my friends on Facebook. I am not going to cover all of them, I’ll just focus on two of them but I had about 5 or 6 which I use to decide who to keep or accept requests from:

  1. Time span rule – if I have seen you or had more than a Christmas email for 5 years or more, you are out.
  2. Override – I can keep anyone for any reason breaking any other rule Winking smile 

Using my rule set I trimmed from over 300 friends to less than 90 and Facebook is now a daily visit site because I do care about the thoughts of those 90 people.

Summary: Be very selective of who you follow on your social networks.

Problem 2 – The right tool for the the right job

110772_strip_sundayOne of the problems with Facebook friends, is that many of the those people were “frendors” or people who I just saw in the passages at work. Facebook isn’t meant for great communication around work however there is better choices for them:

  • LinkedIn – This is great for business partners, frendors, business contacts and key direct co-workers. This ensures that the value of the conversation is higher because it is more business focused and people do care deeply about their careers on there.
  • Yammer – This is for people I work with, regardless of anything else. This is also great because it is a walled garden so we can have those private conversations that are company/team specific.
  • Twitter – We met at an event, you want to hear from me or want me to hear from you but we don’t care about much else Twitter makes a great place to put people while I evaluate their value and should I try and add them to other networks. Many people start off here and move to the others.

Sure there are a few people who are on more than one network, but those are exceptions to the rule. Most people end up in one place.

Summary: Facebook for friends & family, LinkedIn for your professional career, Yammer for co-workers & Twitter for all else.

Problem 3 – Auto post is not your friend

I personally spend more time in Twitter than any other network, and I eventually had it setup that every tweet went to Facebook & LinkedIn too. The problem is Twitter is really unfiltered and I do post a lot of jokes or half baked ideas which detract from my professional value on LinkedIn or are so technical that my friends & family on Facebook scratched their heads with confusion.

Thankfully this can be fixed: Don’t auto post. LinkedIn supports this with a setting you must enable, Yammer does this by default and for Facebook don’t use the standard Twitter app rather use the Selective Tweets app. All these require you tag a tweet with a special tag, for it to auto post, i.e. Facebook it is #fb, Yammer is #yam & LinkedIn is #li

So if I post something on Twitter and want it on Yammer & LinkedIn I append the tags and it is on all three networks but not on Facebook!

Summary: Post selectively to the right social networks.

Introducing BBD

BDDAny day I open my email and see an email from Peter Searle (the BIG boss at BBD, where I work) in there, I wonder if a trip to HR is in my near future Winking smile, today though is something far more awesome and rather that tell you myself I thought I would share Peter’s words because it is just fantastic:

More than 25 years ago Barone, Budge and Dominick, also known as BB&D, was begun by a group of people dedicated to delivering software solutions to clients. Initially, the work was done in an attic, and those people were Sandra Barone, Tom Budge and Ralf Dominick. 

The current corporate identity was created in the eighties with the founding of the company.

BB&D now employs more than 400 software professionals. We are South Africa’s largest independent custom software development company, and we serve customers in both South Africa and internationally.

In moving forward, we will never forget where we’ve come from. On the contrary, we will even further imprint the attitudes and values that have made BB&D what it is today.

We are taking the core values, achievements and expectations that have become so entrenched into the company’s make-up and are transitioning them into a fresh new identity that resonates with the next generation of the new BBD.

We are now BBD. And our brand line is – combined intelligence.

BBD work together with our clients, sharing knowledge and ensuring we can deliver solutions that improve their business.  This meeting of minds, connecting and building on each other’s brilliance enables us to design solutions for them that mark the way forward.

In essence, we are more than the simple sum of our parts. Our combined intelligence is the greater whole.

Very proud to be a BBDer Smile

Install Tailspin Travel on Windows 7 SP1

imageIf you try and install the tailspin travel demo on Windows 7 with service pack 1 , it will fail saying the operating system is not supported Sad smile

Thankfully this is easy to fix, in the C:\TailspinTravel\assets folder is a Dependencies.dep  file. Open that in notepad (or text editor of your choice) and navigate to the <os> element. Note the buildNumber attribute is set to: 7000;7100;7600

All you need to so is change it to: 7000;7100;7600;7601

As in the screenshot above, now save and rerun setup and you will succeed!

How to attach to process before the application even starts?

There is many ways to do debugging in Visual Studio, normally you just hit F5, compile & run the code with debugging. However sometimes you need to debug an executable you have already built or debug on another machine. I have mentioned this previously you can use the Attach to Process option to do debug MSCRM assemblies that exist on other machines and/or run by a executable you do not control.

image

This works great but recently I had an issue where the application would start and (silently) die within seconds, but only in test (never in dev). It just happened so quickly that I could not attach the debugger in time. So how can you debug that scenario?

Thankfully this is very easy, just go to your Visual Studio project settings and switch the Start Action to Start External Program, set the path to the executable and then hit F5!

image

What this will do is start the executable, attach the debugger and work with your code all for you – so no more racing against the attach to debugger options Smile

Missing Code Analysis

If you have Visual Studio 2010 you may be annoyed when you want to run code analysis and it is just not there! You can configure it, but cannot run it?!

image

The reason is that code analysis is only available for the selected project, and you likely have the solution selected in the Solution Explorer (or Solution Navigator). You will need to select the project first and it will appear.

image

No solution wide code analysis yet either. However I believe these annoyances will be corrected in the next version of Visual Studio Winking smile