Blog Stats
  • Posts - 34
  • Articles - 0
  • Comments - 14
  • Trackbacks - 0

 

Tuesday, April 9, 2013

Ottawa Code Camp Approaching even FASTER !


Hello all,

 

 just wanted to point out that the Ottawa Code Camp will be held on May 4th 2013 at Algonquin College.

My session will be on "Optimizing your 3 tiers apps with current technologies" and we'll take a look at WCF Threading, Tasks Parallel Library and Async-Await pattern.... all that in VS2012...   Please note that all this can be done in VS2010 if you apply the Async CTP 3 in your environment.

Here are the details: 

http://www.ottawacodecamp.ca/pages2013/default.aspx

Thursday, April 4, 2013

Dev Teach Toronto coming FAST !


Announcing DevTeach Toronto / Mississauga, May 27-31, 2013 !

Lots of great conferences during the main event and also many pre/post conferences, don't miss out on a training you can't get anywhere else !

 

http://www.devteach.com

 

 

 

 

Saturday, March 30, 2013

Exception handling when using Tasks


Tasks are very impressive once you manage to wrap your head around a few concepts.  One subject I’d like to cover in this post is how to deal with exceptions in tasks.  There are a few pitfalls one must not fall into when dealing with exception handling in tasks.  First you must remember that each task is responsible for its own error checking or error handling.  Tasks that do not handle their exceptions will crash your application.  How can you avoid that?  Continuations to the rescue!  There is a concept called Continuations in Tasks and they can easily be implemented to help you deal with exactly that type of problem.  All you have to do is “Continue” your task once it's done executing.  The continuation code (typically an Action<Task>) is the right place to check if an exception happened during the execution of the original task.  There comes the concept of “Observing” a task.  A task is deemed “Observed” if you check for it’s Task.Exception property.  For example,  look at the code below where task1 is continued so that exceptions can be caught.  Inside the continuation, you check to see if an exception occurred in task1 like follows:

 

var task1 = Task.Factory.StartNew(() =>

{

    throw new MyCustomException("Task1 faulted.");

})

.ContinueWith( (originalTask) =>

    {

        if(originalTask.Exception != null)

            {             

                                Console.WriteLine("I have observed a " + originalTask.Exception.Tostring());

}

    });

 

Task1 is now Observed and will not crash your application when it throws the exception.  Would there be other alternatives to this?  Yes, a better way of handling the above would be to pass in the OnlyOnFaulted option to the continuation task (and skip the null check) so the continuation would only happen when the original task is faulted.  Another way would be to NOT use the Continuation at all and having previously hooked your code to the TaskScheduler.UnobservedTaskException global event hanler .  This event is your last chance to log the exception before your application possibly crashes.  Of course, for the application not to crash you'll need to call the SetObserved method on the UnobservedTaskExceptionEventArgs parameter of the event.  Typically I recommand that you use Continuations on each tasks AND hook up to this "Global Task Handler" as an additionnal safety net.

Happy coding all !

 

Saturday, January 5, 2013

How I got burned with Automation Ids and virtualized content in XAML controls...


Not so long ago on our project at work we had to create shared steps in Microsoft Test Manager
for playback later on.  The screen we used contained 2 instances of the same custom made combobox
both displaying a list of countries.  One was located at the top of the screen and the other one at the bottom.
The combobox already supported Automation IDs and could " auto-magically " generate the right
automation id for each entry to be displayed in the list portion of the combobox according
to the key of each element to display, in this case, the country name.  Remember that this portion
of the control is VIRTUALIZED.

Now, the interesting part... We record our test in MTM and in this simple test, we pick a country from
the list of countries at the bottom of the screen.  We had done enough recording and coded ui tests
on this control to know it worked great... When came the playback time, we saw our recording do exactly
what it was supposed to do, pick the country we had selected EXCEPT, it did in in the upper combobox instead
of the bottom one!  HMMM.... How weird!  Both controls had different Automation IDs but had the same automation
ids for the virtualized content because they both displayed the same kind of information being, countries...
 

OK so the solution was simple, concatenate the controls unique Automation ID with the
unique content for each virtualized row...

The code behind for the control overrides PrepareContainerForItemOverride like so:

 //Declare this property inside your control and initialize it inside your constructor
 public BindingBase BindingAutomationId { get; set; }


 protected override void PrepareContainerForItemOverride(DependencyObject element, Object item)
        {
            base.PrepareContainerForItemOverride(element, item);
           
            DataGridRow row = element as DataGridRow;

            //Can't put these lines in the constructor because the GetAutomationId call returns NULL consistantly from inside it
            if(string.IsNullOrEmpty(this.BindingAutomationId.StringFormat))
            {
  //The magic is here
                this.BindingAutomationId.StringFormat = AutomationProperties.GetAutomationId(this) + "_{0}";
            }
           
            row.SetBinding(AutomationProperties.AutomationIdProperty, BindingAutomationId);
        }


So now each virtualized content inside this control has a unique automation id and the playback works perfectly.


Hope this saves you a ton of time trying to figure out why your playback won't pick the control you selected during the recording phase.

 

Wednesday, September 26, 2012

Files for .NET Montreal and VTCC4 conference


Hi,

 here are the files for both the .NET Montreal presentation made Sept the 24th and at the Vermont Code Camp #4 on Sept the 22nd regarding Architecture problems and solutions linked to EF4.0, Async-await keywords and the Task Parallel Library.

This zip file includes both power points in french and english and the DemoApplication which is I REMIND YOU VERY DEMO-WARE and doesn't handle task level exception and context switching. 

ZipFile

Enjoy

 

Tuesday, July 17, 2012

Learning the hard way: Uninstalling .NET Framework 4.5RC


Uninstalling the .NET Framework 4.5RC can be a real mess, let me explain…

I had a perfectly functional VM on which I tried to install the 4.5RC version of the .NET framework to test out some of the new features of EF.  Since what I wanted to test didn’t work and since I THOUGHT 4.5 and 4 where side by side, I decided to go back to simply 4 and uninstall the 4.5RC from the VM.  Big mistake….  Now my Visual Studio would not work at all and kept saying “Unknown Error” when I started it…  After further investigation, I saw this post and as you can see in here http://msdn.microsoft.com/en-us/library/5a4x27ek(v=vs.110).aspx

when you uninstall the 4.5 framework it automatically uninstalls the 4.0 framework and ANYTHING related to it!  D’oh !!!

 

I re-installed the 4.0 framework and SP1 and now Visual Studio 2010 started working again.  But I wasn’t done fixing issues yet…  My application was using EF4 and ODP.NET and now, when I open up the EDMX I would see the following error:

error 175 the specified store provider cannot be found in the configuration or is not valid

 

I was quite annoyed by this so I decided to simply try to regenerate a new EDMX file from database… but I couldn’t !!!  In the drop down box where you choose your provider for the EF connection, Oracle ODP.NET had disappeared !!!!  *me throws holy water all around*  !!!   After much digging around, I found out that the MACHINE.CONFIG file had been modified by the uninstall process and that a very important line had been removed…

If you have this error and you use EF with a particular provider other than SQL Server, check out your machine.config file and see if this section contains the reference to your provider:

 

<system.data>

                <DbProviderFactories>

</DbProviderFactories>

</system.data>

 

Mine needed to look like this:

<system.data>

                <DbProviderFactories>

<add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.0.3, Culture=neutral, PublicKeyToken=89b483f429c47342" />

 

</DbProviderFactories>

</system.data>

 

Restart your VS and your original EDMX will not complain about error 175 anymore…

But that wasn’t all, I ended up re-installing ODP.NET because my machine.config file was really messed up and missed many entries it previously had…  So a word of wisdom (which I didn’t follow, stupid me) is take a snapshot of your VMs before “trying out” 4.5RC and maybe uninstall it later or backup your PC….

Hope this saves you some time…

 

Monday, July 9, 2012

Multiple instances of Intellitrace.exe process


Not so long ago I was confronted with a very bizarre problem… I was using visual studio 2010 and whenever I opened up the Test Impact view I would suddenly see my pc perf go down drastically…  Investigating this problem, I found out that hundreds of “Intellitrace.exe” processes had been started on my system and I could not close them as they would re-start as soon as I would close one.  That was very weird.  So I knew it had something to do with the Test Impact but how can this feature and Intellitrace.exe going crazy be related?  After a bit of thinking I remembered that a teammate (Etienne Tremblay, ALM MVP) had told me once that he had seen this issue before just after installing a MOCKING FRAMEWORK that uses the .NET Profiler API…  Apparently there’s a conflict between the test impact features of Visual Studio and some mocking products using the .NET profiler API…  Maybe because VS 2010 also uses this feature for Test Impact purposes, I don’t know…

Anyways, here’s the fix…  Go to your VS 2010 and click the “Test” menu.  Then go to the “Edit Test Settings” and choose EACH test setting file applying the following actions (normally 2 files being “Local” and TraceAndTestImpact”:

-          Select the Data And Diagnostic option on the left

-          Make sure that the ASP.NET Client Proxy for Intellitrace and Test Impact option is NOT SELECTED

-          Make sure that the Test Impact option is NOT SELECTED

-          Save and close

 

Edit Test Settings

 

Problem solved…  For me having to choose between the “Test Impact” features and the “Mocking Framework” was a no brainer, bye bye test impact…  I did not investigate much on this subject but I feel there might be a way to have them both working by enabling one after the other in a precise sequence…  Feel free to leave a comment if you know how to make them both work at the same time!

 

Hope this helps someone out there !

 

 

 

Tuesday, April 17, 2012

DevTeach Vancouver approaching fast !


Just a friendly reminder for people in the Vancouver area that DevTeach Vancouver is just a few weeks away !  Registration is open and I can't help but promoting a full day of TFS 2010 workshop given by Etienne Tremblay and myself plus we will most likely add extra material to cover for TFS vNext...  The four added topics will be:

Moving from TFS 2010 to TFS vNext

The Storyboarding addin for PowerPoint

Intellitrace in a Production Environment

Exploratory Testing

 

Also I'll be presenting a 1h session on mocking and mocking frameworks during the main event.  We'll compare Isolator, Justmock and Moq....

See you in Vancouver !

Monday, April 16, 2012

Coded UI Test Builder Visual Cues Offset


Wow it's been a long time since I posted anything in here.....

Today I'll be very brief because the subject is quite easy to cover but can be quite puzzling when it happens to you...  These days at work I'm exploring Coded UI Test in VS2010, Microsoft Test Manager 2010 and Microsoft Test Runner 2010 which is cool because I've been digging aroung VS2010 testing tools on my own since a year now and also started focusing on VNext's testing tools...  So when you automate a test you will most likely end up having to use the Coded UI Test Builder shown here  

When inspecting controls on your app with the little "Target" tool, you could be confronted to your controls being highlighted "in the wrong place" on your screen.  Kind of like there would be some sort of offset between the control you are pointing to and the visual rectangle cue created by the tool to say "here's the control I think you're pointing to"... Looking at the picture here you can see it's pretty anoying to point at a control, see the tool inspecting the right object but highlighting it lower and to the right of where the control actually is...  I have no clue if this only happens in WPF but here's the solution or at least what worked for me...  In my case I was using the "Medium - 125%" display setting in the personalization of my Windows 7 laptop...  The Coded UI Test Builder only works well when your display is set to 100% (smallest in my case).  Change that option to 100% and everything will start being highlighted at the right place in the tool...  I do think that this was intentionnal and that the tool was built to work only when using 100%...  What a shame but now you know so stop reading and go back to work !

Happy automating :)

Sunday, September 25, 2011

A full day of Azure conferences...


On October the 15th, the Montreal .NET User Group will hold a special event... a full day of conferences and workshops on Azure !  The speakers for the special event will be our very own Guy Barrette, Azure MVP, Sébastien Warin also and Azure MVP and Cory Fowler who just happens to be yet another Azure MVP !  Ain't that just amazing to see how many of them Azure MVPs we managed to pack in the same room for you to learn from?  All this for one low price... 10$....  and you have to be a registered and paid for member of the .NET Montreal User Group...

 

Circle the date on your calendar, Saturday October 15th, from 9am to 16h30pm at the UQAM university, room R-M110.

 

http://www.dotnetmontreal.com/events/25706911/

 

Cheers !

Friday, September 23, 2011

Dev Teach Ottawa approching FAST !


The long awaited Dev Teach conference approches FAST and will be held in Ottawa on nov the 2nd to nov the 4th!

Very interesting material both in the main event and in pre-conferences with 2 friends of mine, Laurent Duveau and Mario Cardinal both giving a pre-conference workshop !  For my part, I'll be giving a talk on Mocking and Mocking Frameworks as I really think people need to be more aware of their power and the fact that nowadays, effective, responsive, scalable unit testing inevitably equals mocking frameworks...  There is a grand total of 48 sessions planned for the event: 12 sessions by ITProTeach for IT Professionals, 12 sessions by SQLTeach for DBAs and finally 24 sessions by DevTeach for developers.

If you are in the area, you should definitly try to attend the conference.... 

 

Register today !

 

 

 

Tuesday, September 13, 2011

Vote for my talk at Techdays Montreal 2011 !!!


Techdays Montreal approches fast and will be held at the Palais des Congrès on november the 29th and 30th of 2011.

This year, the event content will be decided by you, the attendees !

You can vote for your favorite content here on a track by track basis and voting ends this FRIDAY the 16th !!!!

http://bit.ly/tdcan2011vote

Note that you do not need to fill every page to cast in your vote....  BTW I think they activated IP checking to prevent people from casting multiple votes so vote from HOME, not WORK... and if you vote for me then vote from HOME, WORK, CELL, GF's house, school  etc   :)   Mouhahah !

Please check out the session I'll give on MOCKING and vote for me if that's something you would like to see at Techdays 2011 Montreal !!!

 

Thanks ! 

Tuesday, March 29, 2011

Bridging the Gap - En Français à Québec le 14 Mai 2011 !!!!


Our 13 sessions are now available in english on :

Nos 13 sessions sont maintenant disponibles en anglais sur :

CHANNEL 9 !!!!

 

Bonjour à tous, l'événement "Bridging the Gap Between Developers and Testers Using Visual Studio 2010" sera également présentées LIVE le samedi 14 Mai 2011 à Québec.  Toute une journée de contenu "Real Life" gratuite, présentée par Etienne Tremblay et moi même en personne et EN FRANÇAIS.

 

Pour plus d'informations ou pour vous inscrire, veuillez vous référer au site de DevTeach

Monday, February 14, 2011

Bridging The Gap Between Developers And Testers With VS 2010


On January 29th Etienne Tremblay and I presented infront of roughly 120 people in Ottawa a 7 hours "sketch" on how VS 2010 and TFS 2010 can help both devs and testers in their respective work.  The presentation focused on how a testers' work can positively influence a developers' work and vice versa.  The format was quite unusual as I said it's a "sketch" where Etienne and I "ignore" the audience and we do as if we were at work and the audience is sort of "spying" on us.  In all I'm quite pleased with the content we presented and the format sure was alot of fun to render and I think the audience liked it too...  The good news for you people reading this post is that it got RECORDED and it's now available for download in quick 25 to 35 minutes format on the dev teach web site:

 http://www.devteach.com/ALM-TFS2010-Bridgingthegap.aspx

 

There were 2 cameras, one filming us and one capturing the screen for our demos.  We switch from one to another in an intersting flow and Jean-René Roy made sure he kept all our goofs and didn't edit those funny "oups moments" where we screw-up in the scenario...  Mostly educative but hilarious at times !!!

I encourage you all to download and watch the 13 episodes...  Follow a day at work for a tester and a developper using VS 2010 and TFS 2010 to improve their chemistry ! 

Thanks to Jean-René Roy for all the work he's put into this event and to Microsoft and Pyxis for sponsoring the event.

 

 

Sunday, January 30, 2011

Urban Turtle is such an awesome product !


Mario Cardinal, the host of the Visual Studio Talk Show, is quite happy these days. He works with the Urban Turtle team and they received significant support from Microsoft. Brian Harry, who is the Product Unit Manager for Team Foundation Server, has published an outstanding blog post about Urban Turtle that says: "...awesome Scrum experience for TFS.” You can read Brian Harry's blog post at the following URL: http://urbanturtle.com/awesome.

Thursday, November 25, 2010

Speaker at Tech Days 2010 in Montreal


Thanks to everyone who took part in Tech Days 2010 either as a speaker, attendee or else.

It was a great event where I got to present 2 sessions.  For everyone who might want to material for both sessions, here it is!

My guess is that the audio material should be available soon, on the microsoft tech days site...

 

Cheers

 

Tuesday, September 21, 2010

Conference at Vermont's Code Camp


Well, it's been a long time since my last post and unfortunately it's another simple thread to share my material but I'll resume posting here and there in the next couple weeks...

 

Here's the   link     to my presentation and supporting material which was about Lambdas and Extension Methods using Visual Studio 2010...  The powerpoint is there and so is the small project I used to demo my subjects...  There's also the source code for the Umbrella project...

Cheers !

 

Monday, May 31, 2010

Conference on LinQ at Montreal's ETS


Today I gave a presentation at Montreal's "Ecole de Technologies Supérieure" and I said I would put my presentation and the material itself online in here....  The audience was exclusively composed of teachers from colleges around Montreal. 

There's the link to download the content :

http://cid-bdf9cf467011e705.skydrive.live.com/self.aspx/.Public/LinQ%20at%20Montreal%5E4s%20ETS/LinQ.zip

 

I hope all attendees learned more on LinQ than they knew before!

 

 

Sunday, May 2, 2010

Tips on debugging collections


 

The "Quick Watch" feature of Visual Studio is an awesome tool when debugging your stuff...  I use it all the time and quite often I end up exploring hashtables or lists of all sorts...  One thing I hate is when I have to explore Collections...  Good god did I lose time trying to find the inner member that contains my stuff when exploring collections...  Most collections have the inside member that you can search for and find and explore to see the list of things you wanted to look at.  Something in the likes of this

 

I've known a little trick for a while now and I give it to everyone I end up debugging something with so I figured that probably not many people know about this...  Here's the tip...  Send the collection into an ArrayList in the QuickWatch window!  Yes, you heard me right, just type   

new ArrayList(yourcollectionhere)

in my case:    new ArrayList(this.Controls)

in the expresion textbox and here's the result when you hit reevaluate!

Pretty neat trick to make your debugging experience less of a pain when dealing with collections... 

 

Happy debugging all !

Saturday, April 24, 2010

Developing for 2005 using VS2008!


 
I joined a fairly large project recently and it has a particularity… Once finished, everything has to be sent to the client under VS2005 using VB.Net and can target either framework 2.0 or 3.0… A long time ago, the decision to use VS2008 and to target framework 3.0 was taken but people knew they would need to establish a few rules to ensure that each dev would use VS2008 as if it was VS2005… Why is that so? Well simply because the compiler in VS2005 is different from the compiler inside VS2008…  I thought it might be a good idea to note the things that you cannot use in VS2008 if you plan on going back to VS2005. Who knows, this might save someone the headache of going over all their code to fix errors…
-        Do not use LinQ keywords (from, in, select, orderby…).
 
-        Do not use LinQ standard operators under the form of extension methods.
 
-        Do not use type inference (in VB.Net you can switch it OFF in each project properties).
o   This means you cannot use VB.NET XML Literals.
 
-        Do not use nullable types under the following declarative form:    Dim myInt as Integer? But using:   Dim myInt as Nullable(Of Integer)     is perfectly fine.
 
-        Do not test nullable types with     Is Nothing    use    myInt.HasValue     instead.
 
-        Do not use Lambda expressions (there is no Lambda statements in VB9) so you cannot use the keyword “Function”.
 
-        Pay attention not to use relaxed delegates because this one is easy to miss in VS2008
 
-        Do not use Object Initializers
 
-        Do not use the “ternary If operator” … not the IIf method but this one     If(condition, truepart, falsepart).
 
As a side note, I talked about not using LinQ keyword nor the extension methods but, this doesn’t mean not to use LinQ in this scenario. LinQ is perfectly accessible from inside VS2005 if your client allows you to target framework 3.5. All you need to do is reference System.Core, use namespace System.Linq and use class “Enumerable” as a helper class… This is one of the many classes containing various methods that VS2008 sees as extensions. The trick is you can use them too! Simply remember that the first parameter of the method is the object you want to query on and then pass in the other parameters needed…
That’s pretty much all I see but I could have missed a few… If you know other things that are specific to the VS2008 compiler and which do not work under VS2005, feel free to leave a comment and I’ll modify my list accordingly (and notify our team here…) !
Happy coding all!

Saturday, April 17, 2010

Presenting LinQ to Objects in Ottawa


Here's the material for my introduction on LinQ to Objects at Ottawa's code camp... 

Happy downloading!

http://cid-bdf9cf467011e705.skydrive.live.com/self.aspx/.Public/Blog%20sample%20downloads/Ottawa%20Code%20Camp/Ottawa%20Code%20Camp.zip

 

 

Wednesday, April 7, 2010

Using the “Settings.settings” functionalities in VB.NET can be tricky…


 

Sometime you’re searching for something forever and when you find it, you realize it was right under your nose.  Maybe you were distracted by other things around… or maybe that thing right under your nose was so well hidden that it deserves a blog post…   That happened to me a few days ago while using the “Settings.settings” functionalities in my VB.NET application…  I thought it was a cool feature and I decided to use it… 

So there I am adding new settings with “USER” scope and StringCollection as the data type, testing my application and everything works perfectly fine...  That was before I decided to modify the “Value” of one of my settings…  After changing the value of one of my settings, I start my application again and, to my surprise, my new values aren’t showing!  Hmmm… That’s odd…  My setting was a pretty long list of strings so I was rather angry at myself for not saving my work after I was done…  So I open up the Settings.setting in the designer and click the ellipsis symbol to enter my string collection again, but to my great pleasure (and disbelief) my strings are there!!!  Alright, you rock VB.NET!  You’ve just save me a bunch of typing time and I’m thinking it’s just a simple Visual Studio glitch…  I hit “Save” then “Save All” (just in case) and finally I rebuild everything and fire up my app once again.  Huh?  Where are my darn strings????????  Ok there’s a bug there…  I open up the app.config and my new strings are there!!!  Alright, let’s recap…  My new strings are in the app.config, they show correctly in the Settings.settings designer UI but they aren’t showing at runtime…  Hmmmm?  Let’s try something else…  Let’s start the application but outside Visual Studio this time… I fire up the exe and BAM!  My strings where there!  I “alt-tab” and hit “F5” and BOOM, no strings!  So it’s a bug in the Visual Studio environment… or could it be a FEATURE?  I must admit that I’m a little confused over what’s a bug and what’s a feature in Visual Studio… lol!   Finally I found out there’s a “cache” for your Visual Studio located here: 

C:\Users\<your username>\AppData\Local\Microsoft\<your app name and a very weird temp ID>\<your app version>\user.config

When using the “Settings.settings” with a setting of scope “user”, this file is out of sync with your app.config until you manually decide to update it… The button is right there… under your nose… at the top left corner of your screen in the settings designer…  See the big “Synchronize” button there?  Yep…  Now that’s user friendly isn’t it?  Oh, and wait until you see what it does when you click it…  It prompts you and basically says:  “Would you like your settings to start working inside Visual Studio now that you found out that I exist?” and of course the right answer is yes… or rather “OK”…  Unfortunately, you have to do this every time you edit a value… On the other hand, adding and removing settings seem to work flawlessly without having to click this magical button… go figure!  Oh and I almost forgot… this great “feature” is only available for VB.NET…  A project in C# using Settings.settings will work perfectly EVEN when editing values…

Here’s a screenshot that shows this important button:

Button

Using other data types appears to work perfectly well…   Maybe it’s simply related to the StringCollection data type?  If you are a VB.NET programmer, you should pay attention to this when you plan on using the settings functionalities and your scope is “user” and your data type is StringCollection…

Happy coding all!

Monday, March 15, 2010

Steps to deploying on Windows Azure


Alright, these steps might be a little detailed and of few might not be necessary but still it's a pretty accurate road map to deploying on azure...

 This procedure assumes that you've created a solution with an Azure project into it.

 

1)     Open your solution

2)      Rebuild ALL

3)      Right click on your Azure project and click "Publish"

4)      It should open a windows explorer window with your package to be uploaded (.cspkg ) and its associated configuration (.cscfg) to be uploaded too.  Keep it open, you'll need that path later on...

5)      It should also open a browser asking you to login to your passport account, please do so.

6)      After this you will be redirected to the Azure Portal where you will see your Azure Project Name below the « Projet Name » section.  Click on it.

7)      Then you should be redirected to a detailed view of your account on Azure where you will create a new service by clicking the hyperlink on the top right corner.

8)      Choose the right service type for you, most likely the "Hosted Service" type

9)      Choose a « Label » name and click « next »

10)   Choose a name for your service and validate that the name is available in the cloud by clicking the "Check Availability" button

11)   At the bottom of this same page, you can choose to create a group for your service, use no group or join an existing group.  Creating a group means that all applications that belong to the same group will see no cost to exchanging data between other applications of the same group.  Most of the time when you create a single application, creating a group is not necessary.  You should choose a region that's close to your own region.

12)   On the next window, you should see a "Production" environment and a "Staging" environment.  Beware because "Staging" and "Production" are two different environments in the cloud and applications in "Staging" even when not runing do continue to rack in charges...  Choose an environment and click "Deploy".

13)   In the following window, browse to the path where your cspkg resides and then do the same thing with your cscfg file.  Choose a name for your Label,  and click "Deploy"...

14)   From now on, the clock is ticking and unless you have free Azure hours, your credit card is being billed…

15)   Click on the « Run » button to start your application

16)   Be patient.... be very patient…

17)   Once your application has finished starting, you should see a GREEN circle on the left side of the screen indicating that your application is READY.  Click the URL to test your application and remember that if your application is a service, you have to hit the "svc" class behind the link you see there.  Something in the likes of http://testvince2.cloudapp.net/service1.svc  (this is a fictional link)

18)   Hopefully your application will show up or in the case of a service, you will see your service's wsdl meaning that everything is working fine.

Happy cloud computing all!

 

 

Thursday, March 4, 2010

A few things I learned regarding Azure billing policies


 
 
An hour of small computing time: 0,12$ per hour
 
A Gig of storage in the cloud: 0,15$ per hour
 
1 Gig of relational database using Azure SQL: 9,99$  per month
 
A Visual Studio Professional with MSDN Premium account: 2500$ per year
 
Winning an MSDN Professional account that comes preloaded with 750 free hours of Azure per month:  PRICELESS !!!   
 
But was it really free???? Hmmm… Let’s see.....
 
Here's a few things I learned regarding Azure billing policies when I attended a promotional training at Microsoft last week...
 
 
 
1)  An instance deployed in the cloud really means whatever you upload in there... it doesn't matter if it's in STAGING OR PRODUCTION!!!!   Your MSDN account comes with 750 free hours of small computing time per month which should be enough hours per month for one instance of one application deployed in the cloud...  So we're cool, the application you run in the cloud doesn't cost you a penny....  BUT the one that's in staging is still consuming time!!!   So if you don’t want to end up having to pay 42$ at the end of the month on your credit card like this happened to a friend of mine, DELETE them staging applications once you’ve put them in production! This also applies to the instance count you can modify in the configuration file… So stop and think before you decide you want to spawn 50 of those hello world apps  .
 
 
2) If you have an MSDN account, then you have the promotional 750 hours of Azure credits per month and can use the Azure credits to explore the Cloud! But be aware, this promotion ends in 8 months (maybe more like 7 now) and then you will most likely go back to the standard 250 hours of Azure credits. If you do not delete your applications by then, you’ll get billed for the extra hours, believe me…   There is a switch that you can toggle and which will STOP your automatic enrollment after the promotion and prevent you from renewing the Azure Account automatically. Yes the default setting is to automatically renew your account and remember, you entered your credit card information in the registration process so, yes, you WILL be billed…  Go disable that ASAP    Log into your account, go to “Windows Azure Platform” then click the “Subscriptions” tab and on the right side, you’ll see a drop down with different “Actions” into it… Choose “Opt out of auto renew” and, NOW you’re safe…
 
Still, this is a great offer by Microsoft and I think everyone that has a chance should play a bit with Azure to get to know this technology a bit more...
 
 
Happy Cloud Computing All
 

 

Copyright © Vincent Grondin