May, 2011

  • Canadian Solution Developers' Blog

    Another Meeting! Who Really Needs to Attend?

    • 0 Comments

    imageHave you ever been to a meeting where part way through you thought to yourself “I do not need to be here”? It’s happened to all of us. I once asked my husband exactly what he does at work. He thought about it for a minute and answered “I go to meetings.” Meetings are everywhere! Now don’t get me wrong, meetings can be very effective. We want to keep everyone informed, and we do need to consult with different team members when we are making decisions. But how much thought do we put into who to invite to meetings? Most of us err on the side of caution and invite everyone who may have an opinion or wants to be kept informed. After all haven’t we been told over and over again the importance of communication? But sometimes we forget meetings are not the only way to communicate.

    I have done a lot of work with the Information Technology Infrastructure Library, better known as ITIL. Don’t worry I am not going to go into a diatribe on the benefits of MOF (Microsoft Operational Framework) and ITIL here and now (that’s a blog for another day). The reason I bring it up is that in ITIL I came across a wonderful model I have applied very successfully. Its called the RACI model (pronounced racey). RACI is an acronym for Responsible, Accountable, Consulted, Informed. This model can be used to help you run more successful meetings. As they say in Kinect Dance Central…let’s break it down.

    Responsible –  Who are the people responsible for doing the work? The people responsible should definitely be in the meeting. For example, if you are holding a meeting to discuss a bug fix, you definitely want the programmer who is making the bug fix present to explain the effort required to fix the bug, or to explain the cause of the bug.

    Accountable Who is the person who is ‘on the hook’ for the work? This is often the supervisor of the people responsible. Sometime it helps to think of the A as standing for Authority, as in decision making authority. Who has the authority to make decisions? There should only be *one* person identified as accountable. Otherwise you run into problems. There is a Danish proverb that roughly translated says “When you have one clock in the house you know what time it is, as soon as you have two clocks you are are never sure.” You want the person accountable in the meeting, because if they aren’t there you may find the meeting going in circles because there is no-one in the room with the authority to make a final decision on how to move forward. If the person accountable cannot attend, see if they can appoint someone to attend to act on their behalf with their authority. Otherwise, you may want to reschedule the meeting to a time when the person accountable can attend. For the bug fix meeting example, the operations manager or project manager might be accountable. We want them in the meeting because they will have the final decision on if or when we fix the bug based on the effort required, the impact on the users, and the other team priorities.

    ConsultedWho are the people who will want a say in the decision or discussion but are not doing the work itself? Often you can provide these individuals with a summary of the topic to be discussed by email and follow up with them before and after the meeting. They may give you questions that they want answered, but that doesn’t mean they need to attend the meeting itself. Often you can ask the questions on their behalf. If the question is too complicated, then you may invite them to the meeting so they can explain and elaborate as necessary. For example, when you are making a bug fix you may need to consult with the security team to ensure that the fix does not violate security policy. Most of the time, if you let security know what you are going to discuss in the meeting, they will tell you the concerns they need addressed. After the meeting you can let them know the outcomes and give them an opportunity to identify any outstanding issues.

    InformedWho are the people who need to know what is going on? These are the people who need to be kept in the loop, but do not need to attend the meeting. For example, your user community, your client, or the testing team may need to know about the progress on a bug fix but that doesn’t mean they need to attend all the meetings. Often e-mail or a collaboration, project tool like SharePoint or Visual Studio Team System is sufficient to keep them up to date.

    So the next time you are invited to a meeting, ask yourself where you fit in the model, if you are not responsible or accountable, do you really need to attend? If you are holding a meeting, complete the RACI model for the topic being discussed. On some projects, I have documented the RACI model for each programming module, or bug. That way when a change or issue was identified we immediately knew who was responsible, who was accountable, who needed to be consulted, and who needed to be kept informed.

    So in keeping with the meeting theme, here are

    My 5 Tips to successful meetings (there are many more, but I’ll stick to 5 for now)

    1. Complete the RACI model for the meeting.
    2. Email your agenda, or questions to be discussed one to three days before the meeting. That way everyone has a chance to arrive in the meeting prepared. Don’t send it out to far in advance or they will forget about it before the meeting.
    3. Book a suitable meeting room with the required amenities. Make sure you have enough chairs, water, a projector if necessary. It is very frustrating for meeting attendees to spend 20 minutes sitting unproductive while you run around the building trying to find a projector or whiteboard markers.
    4. Use a parking lot! Meetings frequently go off track, do not be afraid to have a flipchart or corner of the whiteboard where you can park issues for follow up later. It is important if you use a parking lot that you do leave a few minutes at the end of the meeting to discuss how you will follow up on each item in the parking lot. A parking lot is not meant to be a black hole.
    5. Do not deliver surprises in a meeting and expect useful feedback. When someone tells us about a new initiative or change, our first reaction is emotional: I love the idea or I hate the idea. It will take me a little while to absorb what you have told me and give you useful feedback. All too often we walk into a meeting and are informed of a major change, then while we are still reacting to the news we are expected to provide constructive criticism. If you tell me today by email or in person, and give me some time to absorb the idea and mull it over I would be in a much better position to discuss it rationally tomorrow in a meeting.
  • Canadian Solution Developers' Blog

    The Basics of Securing Applications

    • 0 Comments

    Visual Studio One on OneIn this next One on One with Visual Studio conversation, we’re joined by Steve Syfuhs (@stevesyfuhs), who is a Canadian developer security MVP. I’ve asked him to chat with us about code security – more specifically, what we can easily do to ensure that our code is safe from common threats and how we can use Visual Studio and Team Foundation Server to do that.

    As in the past, our conversation will be broken down into parts to allow you to squeeze the conversation into your busy schedule. I’d recommend that you go in order as each segment builds on the previous.

    Remember, this conversation is bidirectional. Share your comments and feedback in this Ignite Your Coding LinkedIn discussion. Steve and I will be monitoring the discussion threads and will be happy to hear from you and answer any questions you may have.

    Steve, on behalf of myself and the developers in Canada, I would like to thank you for taking the time to have this conversation with us and for the effort you put into conversation, allowing us to better understand how to secure our applications.

    So without further ado, Steve, take it away.

    Thanks Jonathan, and hello Canadian solution developers.

    Every year or so a Software Security Advocacy group creates a top 10 list of the security flaws developers introduce into their software.  This is something I affectionately refer to as the stupid things we do when building applications listThe group is OWASP (Open Web Application Security Project) and the list is the OWASP Top 10 Project (of which I have no affiliation to either).  In this conversation, we will dig into some of the ways we can combat the ever-growing list of security flaws in our applications.

    Security is a trade off.  We need to balance the requirements of the application with the time and budget constraints of the project. A lot of times though, nobody has enough forethought to think that security should be a feature, or more importantly, that security should just be a central design requirement for the application regardless of what the time or budget constraints may be (do I sound bitter?).

    This of course leads to a funny problem.  What happens when your application gets attacked? There is no easy way to say it: the developers get blamed.  Or if it's a seriously heinous breach the boss gets arrested because they were accountable for the breach.  In any case it doesn't end well for the organization.

    Part of the problem with writing secure code is that you just can't look for the bugs at the end of a development cycle, fix them, and move on.  It just doesn't work.  Microsoft introduced the Security Development Lifecycle to combat this problem, as it introduced processes during the development lifecycle to aid the developers in writing secure code.

    Conceptually it's pretty simple: defense in depth.

    TrainingRequirementsDesignImplementationVerificationReleaseResponse

    In order to develop secure applications, we need to adapt our development model from the beginning of development training, all the way up to application release, as well as how we respond to vulnerabilities after launch to include security requirements. Now, Microsoft, for example, has a vested interest in writing secure code, so it went all in with the SDL.  Companies that haven't made this decision may have considerably more trouble implementing the SDL simply because it costs money to do so.  Luckily we don't have to implement the entire process all at once.

    During this discussion we'll touch on some of the key aspects of the SDL and how we can fit it into the development lifecycle.

    Perhaps the most important aspect of the SDL is that it's important to have a good foundation of knowledge of security vulnerabilities.  This is where the top 10 list from OWASP comes in handy: 

    1. Injection
    2. Cross-Site Scripting (XSS)
    3. Broken Authentication and Session Management
    4. Insecure Direct Object References
    5. Cross-Site Request Forgery (CSRF)
    6. Security Misconfiguration
    7. Insecure Cryptographic Storage
    8. Failure to Restrict URL Access
    9. Insufficient Transport Layer Protection
    10. Unvalidated Redirects and Forwards

    Next up, we'll take a look at a few of these vulnerabilities up close and some of the libraries available to us to help combat attackers. We’;; see how different steps in the SDL process can help find and mitigate these vulnerabilities. After that, we'll take a look at some of the tools Microsoft has created to aid the process of secure design and analysis. Then, we'll dig into some of the architectural considerations of developing secure applications. Lastly, we'll take a look at how we can use Team Foundation Server to help us manage incident responses for future vulnerabilities.

    Looking forward to the discussion.

    About Steve Syfuhs

    Steve Syfuhs is a bit of a Renaissance Kid when it comes to technology. Part developer, part IT Pro, part Consultant working for ObjectSharp.  Steve spends most of his time in the security stack with special interests in Identity and Federation.  He recently received a Microsoft MVP award in Developer Security.  You can find his ramblings about security at www.steveonsecurity.com
  • Canadian Solution Developers' Blog

    Leveraging Windows Azure for Your Next App Idea

    • 0 Comments


    If you’re not already using Windows Azure somehow in your applications, I’m sure you’ve been hearing more and more about how Windows Azure can help you build applications faster by focusing on development and not infrastructure or how it can help you respond faster to customer needs by having IT resources at your disposal the moment you need them. You may have seen the following summary of why to use the Windows Azure platform (it’s on the Windows Azure site):

    image

    The response that I usually get from developers is “That all sounds great, but what does it all mean? Where would I actually use Windows Azure?” It’s a great question but unfortunately there’s no simple answer since the platform is flexible enough that you could use it in many different ways to solve very diverse problems.

    I thought that I would pull together the scenarios that I’ve been seeing lately as I work with developers across the country. It’s my hope that these scenarios will plant the seed in your mind and maybe even compel you to look at that next application idea you’ve been thinking about and see if you can use Windows Azure to make it come to life faster and cost-effectively.

    SharePoint and Dynamics CRM Integration

    Windows Azure is a great fit for the more enterprise level platforms like SharePoint and Dynamics CRM. When thinking about these and Windows Azure, think data integration and content delivery, expandable storage, and business intelligence.

    You can use Windows Azure’s Compute Services to deploy your custom solutions and integrate them with SharePoint by using web services, web parts, and the Business Connectivity Services. Windows Azure Blob storage is a perfect cost-effective mechanism for storing large amounts of SharePoint application data, media files, reports, and much more. For Business Intelligence, you can leverage SQL Azure for reporting data and build SQL Azure Reports that use the data, surfacing the output in SharePoint using web parts.

    The Academy Live Webcast Integrating SharePoint and Windows Azure: Why They’re Better Together explores these concepts. You can also watch the MSDN webcasts Extending your SharePoint Practice via the Cloud and Windows Azure and SharePoint. Once you’ve done that, make sure you download the SharePoint and Windows Azure Development Kit and jump right in.

    Websites/Web Applications

    Of course, there is always websites – building websites and hosting them on Windows Azure is a common scenario. But anyone can host any site at any hoster, so what’s the difference? Where you start seeing the benefits of Windows Azure kick in is when you want to do things like:

    • Scale quickly – let’s say you launched your website today and don’t anticipate too much traffic for the first few months. You provisioned a small server that can handle your forecasted load. All of a sudden, your website catches on and within days, you have double or triple your forecasted load and your small server can no longer handle all of the requests. Now what? With your website deployed to Windows Azure, you can instantaneously provision additional resources, ensuring that your site stays up and running, serving users with no zero impact.
    • Store massive amounts of data – Perhaps your site stores and uses a lot of images, videos, and other large files. Windows Azure’s Storage Services give you the storage you need for all that data at a cost that won’t make you think twice. More importantly, if your users are geographically dispersed, you can take all of that data and locate it geographically closer to them, giving them the most optimal performance experience.
    • Authorization and Authentication made easy – Rather than having users create usernames and passwords for your website, why not leverage all of the identity providers that are already out there, like Windows Live and Facebook? Windows Azure AppFabric’s Access Control Service allows you to do that, plus a whole lot more, with minimal amount of configuration, and potential zero code!

    I could write a whole series on just websites and how Windows Azure for websites makes sense. But I’ll leave the rest for you to discover as you think about the requirements you need for your application. Check out the conclusion at the bottom of the page for how to get your website using Windows Azure.

    For something completely different, have you thought about developing mobile or social applications and/or games?

    Mobile Applications

    When it comes to mobile platforms, such as the phone and slate devices, Windows Azure offers you an easy way to add redundant storage, compute power, database access, queuing, and caching to your applications without having to put strain on the device. This essentially makes Windows Azure the backend of your mobile application. A huge benefit of using Windows Azure for mobile applications is dynamic scale. The mobile platform is expanding rapidly and applications are being downloaded by thousands every day. Your application may be one of those apps, potentially becoming an overnight success. If your application uses data online, you’ll need the infrastructure capacity in the backend to be able to support that success. Windows Azure can do that for you in a matter of a few clicks with no upfront infrastructure or configuration costs – perfect for starting off small and reaching full potential in no time.

    Check out Connecting Windows Phone 7 and Slates to Windows Azure on the Canadian Mobile Developers’ Blog to get a deeper understand of how these platforms can work together. Once you’ve done that, get started by downloading the Windows Azure Toolkit for Windows Phone 7 or for iOS and working through Getting Started With The Windows Azure Toolkit for Windows Phone 7 and iOS.

    Social Applications

    As you know, social applications such as games, sharing, and location-based applications and services are the biggest thing these days. Social applications have the potential to reach millions of users in a short period of time, so like the mobile applications, they need a robust, scalable, and dependable platform on which to run. Just like the mobile apps, social apps can become a success in no time, and you’ll need to be able to provision compute power, storage, and content delivery quickly. More importantly, social networks, like Facebook, aren’t going to host your application or game, but your users will expect the kind of experience (from a responsiveness and availability perspective) as they get from their social network. Deploying to Windows Azure, within the Microsoft data centers and potentially distributing your application worldwide, will ensure you meet or exceed those expectations.

    Find out how Sneaky Games, one of the first game developers to deploy a massive web-based game on Windows Azure, did it and what steps you should take to get started in this video. If you’re looking to target Facebook, Steve Apiki has put together a walkthrough of a sample application that uses the Facebook SDK with Windows Azure to create a simple ‘viral’ marketing application. There’s also an MSDN webcast, Creating Facebook Apps that can Easily Handle a Crowd, coming up on June 1st.

    Conclusion

    These are just some common scenarios that I see out there today, but they are certainly not all of them. Developers are using Windows Azure in many interesting ways, and as such, I highly encourage you to look a bit further into the platform, discover what’s possible, and see how you can leverage Windows Azure for your next application. I’ve included many links above to get you started, but in addition to those, you can also:

    If you’re already leveraging Windows Azure, I’d love to hear your story and maybe even feature it on our blogs – your story could inspire other Canadians to move their applications to the Cloud as well.

  • Canadian Solution Developers' Blog

    Do You Really Need that Web Part? SharePoint 2010 Business Connectivity Services, long name, AWESOME FEATURE!

    • 0 Comments

    ShrPt10_h_cL_epsBusiness Connectivity Services is a feature I have heard about, but never had a chance to try. In the hands on labs at TechEd I sat down and launched a virtual machine and followed step by step instructions to try it out. There were even proctors around to give me a hand when I got stuck. The perfect time to try out BCS!

    BCS (sometimes referred to as BDC Business Data Connectivity) allows you to connect external data to SharePoint. I know you can do that with web parts, but then you have to show your users how to access and use the web parts, they already know lists! With the BCS features in SharePoint 2010 you can create lists that read data from external data sources like flat files and databases. You could do it in SharePoint 2007 but it was a LOT of work to set it up for read and write.  It’s a *lot* easier in SharePoint 2010. You have two choices for setting up BCS: SharePoint designer or Visual Studio. In the lab I was able to try and compare both methods.

    In the first part of the lab I set up a list that pointed to a database table using SharePoint Designer. It took me about 5-10 minutes. The list allowed the user to read and update the database table. Not bad for 10 minutes work! I’ve summarized the steps below, sorry there aren’t any screenshots, that’s the one drawback to using someone else’s hardware. (found a video that shows you how to create the external content type with SharePoint Designer if you want to try it yourself)

    1. Edit your site in SharePoint Designer.
    2. In SharePoint designer, add a new External Content Type.
    3. Set the external system of your content type to point to your data source (for example a SQL Server database)
    4. Use the Data Source Explorer tab to select the table you wish to access
    5. Right click the table name and select Create All Operations to create operations that will be used to read and update the underlying data source.
    6. Use the properties section to map the columns in your data source to your client (for example if you are reading contacts from a database table that you want to access from Outlook, you need to specify which column in the database table contains the e-mail address.
    7. Because your database table may contain millions of records you should also add a filter to limit the number of records returned, this acts like a Where clause restricting the number of records returned.
    8. Now create an External List using your External Content Type. (NOTE: You will need to ensure your users have the necessary permissions to access the External Content Type in the Business Data Connectivity Service)

    During the second part of the lab, I created a list from a flat file using Visual Studio. It took me 50 minutes and that was following step by step instructions that provided all the code in detail! I can tell you right now, if you have a choice, use SharePoint designer! The functionality is great, and more flexible, but just a heads up, if you are going to use Visual Studio to set up your external list, be prepared to spend a fair bit of time going through Help, blogs, and your code to make sure you haven’t missed anything. (found a video on how to set up BDC in Visual Studio 2010)

    Today’s my 5 are tips for SharePoint 2010 developers working with BCS, but they aren’t really My 5, these tips come from Penny Coventry (@pjcov) she was one of the Microsoft Certified Trainers working as a Technical Learning Guide in the Hands On Labs. She knows more about this feature than I do!

    Penny’s 5 Tips for SharePoint Developers getting started with BCS (in no particular order)

    1. Check out the book Professional Business Connectivity Services in SharePoint 2010 by Scott Hiller and Brad Stevenson.
    2. If you are going to do a lot of BCS, check out the tool bcs Meta Man from Lightning Tools.
    3. Work closely with your administrator, to ensure you have the necessary permissions to create your business data connectivity model and to ensure that your users can use your model.
    4. You may need to configure Secure Store Services because by in most situations Windows Authentication cannot be used to connect to your data source (and of course most of us have our SQL databases set up to do Integrated Security! This makes it very difficult to use BCS in SharePoint Foundation because it does not come with Secure Store Services. You can do it, but be prepared for a rather long and arduous battle.
    5. If you need to use the data in workflows, stick to web parts to access your external data, but if all you want to do is give users a way to view and update that data, Business Connectivity Services is the way to go.

    Okay It’s Penny’s 5, but I am adding Number 6, Penny is quite the SharePoint guru and has written her share of SharePoint books as well so I am going to recommend you check out some of her books as well.

  • Canadian Solution Developers' Blog

    Get Excited About Your Job Again–TechEd

    • 0 Comments

    DSCN0091We’ve all been there, you start a new job and you have to learn new technology, new processes, new office politics. But after a while you settle into a routine, you get the hang of the technology, you get to know the people and the procedures. It is easy to settle into a rut. The first time my boss offered to send me to a conference, I’ll be honest, I was excited because it was in Orlando and I had never been to Disneyworld. But that changed very quickly. But when I came back from my first TechEd at my next salary review, instead of asking for a raise, I asked to be sent to TechEd every year and that had nothing to do with visiting Donald and Goofy.

    The first thing that strikes you at a conference is the people. This may sound strange, but at a conference with several thousand people it is easy to feel alone. At a technical conference there are a lot of fellow introverts out there so you may have to be the first one to say hello. But if you make an effort to connect to a few like minded people at the show you will be well rewarded. Now I’m sure you are expecting me to tell you how meeting someone else is good networking, because they may work with the same technology you do, or have contacts that may be helpful to you. But all that aside, don’t underestimate the simple value of having a friend at the show. Connecting with anyone at the show is going to give you a better conference experience, even if they work with Active Directory and don’t understand our desire to go on about the benefits of MVC vs Web Forms.

    The next thing you will notice at a big show like TechEd is the sheer number of learning opportunities. There are sessions doing deep dives on products you work with, sessions giving you sneak peeks of the features in the next version, sessions giving you an overview of products that you want to learn. There are birds of a feather and interactive discussion panels where you can ask questions or just listen to the questions asked by others. There are hands on labs where you can sit down with a product and try out different features. There is an entire area devoted to certification with coaching sessions, practice tests and a testing area to help you pass that certification exam you have been meaning to take. There is a Technical Learning Center where you can talk to product experts one on one to get answers to questions or just an overview of their product, they are *always* happy to show you what they are working on. There is a partner expo where you can find products that will help you at work (some of them are even free!) There are other attendees working with the same product as you. It’s incredible!

    You can’t possibly do everything, so you prioritize, you spend a little time in sessions, you try a couple of labs, you spend a little time the exhibit hall, the entire time you are discovering features you didn’t know, best practices you can apply at work, new features coming down the pipe that will help your project, new tools that you want to try out. By the end of the show you are geeking out to the max! I always come back from a show with a mental to-do list of trial versions I want to download, sessions I want to go back and watch again online, code I want to modify, proofs of concepts I want to try out. My boss used to laugh that you could always tell when I had come back from a conference because I was full of ideas and initiatives I wanted to get underway.

    So why am I telling you all this the day *after* TechEd? Well, partly because I am all pumped up about the show and dying to share the experience with you! The other reason is because there is always next year (which is back in Orlando by the way, time to go back and say hi to Goofy Smile, or there is the “name to be announced “ Microsoft developer conference September 13th in Anaheim, there are the TechDays conferences here in Canada this fall (keep watching dates will be announced soon), there is the upcoming DevTeach/ SQLTeach/ MobileTeach conference May 30th in Montreal there are the IE9/WP7 code camps, user groups, there’s the AzureFest in Waterloo, Prairie DevCon in Regina, the list goes on and on! There is no shortage of opportunities to learn with like minded people. And by the way you can access a lot of TechEd content online.

    But you will get more out of these shows if you make an effort to connect with the others attending the event. Which leads me to this week’s My 5.

    My 5 ways to connect at a conference

    1. Say Hi – sometimes that is all it takes, a small conversation where you ask where they work and what technology they work with is all it takes to find a conference buddy. You are not looking for a best friend, just some conversation and comraderie during the event.
    2. Twitter – Many conferences have twitter hash tags you can follow. You can join in the talk about and around the show, and there are often impromptu get togethers or tweet ups during the show. I loved the fact that I met several people at the conference who only know me as @HockeyGeekGirl
    3. Community luncheons and areas – A Women In Technology luncheon (men are welcome by the way), a SQL User group dinner, a Canadian meet up, are all great chances to meet a new ally.
    4. Breakfast and Lunch – sit at a table with someone new. There is a good chance someone sitting alone at a table would welcome an ally.
    5. Stand out – This is for the more brave of heart, but let me tell you walking around a conference center in the US wearing an NHL hockey jersey allowed me to meet lots of new people this week. Total strangers were yelling Go Sens as we crossed paths on the escalator.
  • Canadian Solution Developers' Blog

    Bridging the Gap Between Developers and Testers Using Visual Studio 2010: Part 13 of 13 - Look Boss, No Hands

    • 0 Comments


    VS-One-on-One---Bridging-The-Gap_thu

    In this post, we’re continuing our One on One with Visual Studio conversation from March 13 with Canadian MVPs Etienne Tremblay and Vincent Grondin, Bridging the Gap Between Developers and Testers Using Visual Studio 2010. If you’ve just joined us, the conversation builds on the previous posts, so check those out (links below) and then join us back here. If you’re re-joining us, welcome back!

    Bridging the Gap Between Developers and Testers Using Visual Studio 2010

    Introduction
    Part 1 of 13 – Migrating VSS to TFS
    Part 2 of 13 – Automating the Build
    Part 3 of 13 – Where’s Our Backlog?
    Part 4 of 13 – Adding a Tester to the Team
    Part 5 of 13 – Tester at Work
    Part 6 of 13 – Bridging the Gap
    Part 7 of 13 – Stop, We Have a Problem!
    Part 8 of 13 – Let’s Get Back On Track
    Part 9 of 13 – Multi-Environment Testing
    Part 10 of 13 – Testing in the Lab
    Part 11 of 13 – UI Automation
    Part 12 of 13 – Validating UI Automation
    Part 13 of 13 – Look Boss, No Hands (This Post)

    In this final session of our conversation, Bridging The Gap Between Developers and Testers Using Visual Studio 2010, Etienne and Vincent go through the full end-to-end process, from running the build, deploying the build, running the automated tests, producing result reports, and creating bugs for issues that were found. As part of the setup to do this, Etienne shows how to configure automated remote deployments and tests. Last but not least, Etienne and Vincent go through ALM reports that can be produced by Team Foundation Server.

    With that, Etienne and Vincent, back to you.

    For more information on the topics covered in this session, check out the following resources:

    This session brings this conversation to an end. Let’s review what was covered in this conversation.

    We saw:

    • How easy it is to migrate from VSS to TFS 2010
    • How easy it is to create a simple build with TFS Build 2010
    • The interaction between developers and testers
    • A simple branch and merge strategy
    • New tools for developers and testers
    • A complete lab environment for the whole team

    Etienne and Vincent, anything else you’d like to share with Canadian developers?

    We hope that you enjoyed the series of videos. Both Vincent and I really enjoyed making them! If you have any questions regarding anything that we discussed, feel free to send an email to bridging.the.gap@live.com. Here are some additional links that will help you get started with these topics:

    Remember, this conversation is bidirectional. Share your comments and feedback on our Ignite Your Coding LinkedIn discussion. Etienne, Vincent, and I will be monitoring the discussion and will be happy to hear from you.

    On behalf of the Canadian solution developers who visit the blog and participate in the conversation, I’d like to thank Etienne and Vincent for being our guides and showing us what’s possible with Visual Studio 2010 and Team Foundation Server 2010.

  • Canadian Solution Developers' Blog

    Weekly Events Calendar Update: May 15 - 21

    • 0 Comments


    Your Microsoft Canada team is always looking into opportunities to bring you training that would help you grow your skills and make you more successful in your career. We’ve put together this weekly events calendar update to make sure you’re always up to date on training opportunities happening in a city near you or online and can therefore schedule work in order to be be able to attend. Look forward to the weekly event calendar update every Sunday.

    New Events To Mention

    No new events to mention this week.

    However, just a reminder, if you haven’t registered already, the following events are coming up:

    Hands on Windows Azure Webinar Online Part 1
    Thursday, May 19, 2011
    12:00 PM – 1:00 PM EST, CST, MST, PST

    Part 2
    Thursday, May 26, 2011
    12:00 PM – 1:00 PM EST, CST, MST, PST

    Part 3
    Thursday, June 2, 2011
    12:00 PM – 1:00 PM EST, CST, MST, PST
         
    Windows Azure Developer Deep Drive Vancouver

    Thursday, May 26th, 2011
    8:00 AM – 5:00 PM

      Toronto

    Thursday, June 16th, 2011
    8:00 AM – 5:00 PM

         

    Upcoming Events - May

    Sunday Monday Tuesday Wednesday Thursday Friday Saturday
    1 2 3 4 5
    Azure at the Movies
    Toronto
    6
    AzureFest
    Moncton
    7
    AzureFest
    Fredericton
    8
    AzureFest
    Halifax
    9 10 11
    IE9 & WP7 Bootcamp
    Ottawa
    12
    AzureFest
    Quebec City
    13 14
    Une journée de formation sur TFS 2010
    Québec City
    15 16 17
    AzureFest
    Montreal

    IE9 & WP7 Bootcamp
    Edmonton
    18
    Operational Excellence with SQL Server 2008 R2 Workshop
    Mississauga

    Drag & Drop for SharePoint: How to Effectively Organize Your SharePoint Documents
    Toronto
    19
    AzureFest
    Winnipeg

    Hands on Windows Azure Webinar: Part 1
    Online
    20 21
    22 23 24 25
    Properly Designing SharePoint Based Solutions
    Toronto
    26
    Hands on Windows Azure Webinar: Part 2
    Online
    27 28
    29 30 31
    AzureFest
    Waterloo
           
  • Canadian Solution Developers' Blog

    Bridging the Gap Between Developers and Testers Using Visual Studio 2010: Part 12 of 13 - Validating UI Automation

    • 0 Comments


    VS-One-on-One---Bridging-The-Gap_thu_thumb

    In this post, we’re continuing our One on One with Visual Studio conversation from March 13 with Canadian MVPs Etienne Tremblay and Vincent Grondin, Bridging the Gap Between Developers and Testers Using Visual Studio 2010. If you’ve just joined us, the conversation builds on the previous posts, so check those out (links below) and then join us back here. If you’re re-joining us, welcome back!

    Bridging the Gap Between Developers and Testers Using Visual Studio 2010

    Introduction
    Part 1 of 13 – Migrating VSS to TFS
    Part 2 of 13 – Automating the Build
    Part 3 of 13 – Where’s Our Backlog?
    Part 4 of 13 – Adding a Tester to the Team
    Part 5 of 13 – Tester at Work
    Part 6 of 13 – Bridging the Gap
    Part 7 of 13 – Stop, We Have a Problem!
    Part 8 of 13 – Let’s Get Back On Track
    Part 9 of 13 – Multi-Environment Testing
    Part 10 of 13 – Testing in the Lab
    Part 11 of 13 – UI Automation
    Part 12 of 13 – Validating UI Automation (This Post)

    In this session of our conversation, Bridging The Gap Between Developers and Testers Using Visual Studio 2010, Etienne and Vincent look at automated functional testing by using assertions and the Coded UI Test Builder. Vincent records the actions he wants to tests, sets the conditions he wants to assert, the Coded UI Test Builders generates the test method, and then Vincent adds the test to the coded UI tests that he runs against the application.

    With that, Etienne and Vincent, back to you.

    For more information on the topics covered in this session, check out the following resources:

    Remember, this conversation is bidirectional. Share your comments and feedback on our Ignite Your Coding LinkedIn discussion. Etienne, Vincent, and I will be monitoring the discussion and will be happy to hear from you.

  • Canadian Solution Developers' Blog

    Not Studying for a Certification Exam

    • 1 Comments


    computer roomRecently, I saw a tweet from Mitch Garvis (@MGarvis) about having completed three certification exams in one day. It got me thinking - how could he possibly have time to study for not one, not two, but three exams all at once all while still working full time? I’m sure the thought of certification has crossed your mind at one point or another and was then quickly dismissed due to time constraints. 

    Determined to figure out what his secret was, I reached out to Mitch and asked him the simple question, “How do you make time to study for three exams at the same time as working full time?” The answer was simple – don’t study. Surprised by this answer, I asked him to elaborate.

    In order to answer the actual question, Mitch thought it was important to understand what certification is and how it differs from a degree. He explained:

    One of my best friends, the best man at my wedding has a degree in Computer Science, but every time something goes wrong with his computer, he calls me. Because of his degree, he can talk binary, he can talk math, he can talk architecture, but his degree is not relevant [to the problem at hand at that point in time]. Likewise, my Windows 2000 certifications are no longer relevant. Certification is an on-going validation, “I am familiar with”, or “I’m up to date with” the technologies with which I’m working.

    If certifications are an on-going validation, there presumably would be a lot of studying involved to make sure that you know the relevant technology for which you’re going to be certified. So how does one find the time to do all of this studying? Is there a magic recipe for studying to maximize the little time there is available for studying?

    I’m going to tell you my secret, that as an MCT, I’ve told hundreds, if not thousands of students over the years – don’t study for certification exams! People look at me and say “how can you say that?”.

    Know the product. I just did an MCTS exam on Active Directory. I didn’t study for that exam. I live in Windows and Windows Server and I know Active Directory. All of the questions on the exam, sure they may be scenario based, saying “You are the __________ [fill in the blank]”, well I am the “fill in the blank", I have been the “fill in the blank”, the people that I speak to every day are that, and I have to know that (the fill in the blank). So that’s like saying “Mitch, can you please study how to make a cup of coffee?” It’s where I live. Likewise, if you don’t live there, you shouldn’t be taking the exam yet.

    When you’re a developer and code for a living, as Mitch says, you live there – in the code, platforms, tools, etc. You may know a lot, but a the exams cover specific areas in depth. How do you know if you have the depth required to be able to answer the questions?

    When looking at the exam that you want to do, look at the objective domains, the outline of what they say is required, and fill in the blanks. “I do this all the time, I do that all the time, but you know what, I’m weak on this”. Focus on that and don’t cram, but review it. If you’re smart, you’re going to go back and implement it before because you can read the words on the paper as many times as you want, do you know what happens when you press the Next button? Sometimes the exam says what happens when you press that Next button. “You’re in this situation. What should you do first?” Well beyond sitting at the computer and turning on your screen, you have to know where to go first and books don’t always tell you that. Experience always tell you that. Experience is what you get a minute after you really needed it. Experience is what is going to make the difference between stressing over taking exams and going to exams and saying “You know what, I have free time today, let me take an exam.”

    In summary, Mitch’s view on exams is that you take them as validation that you have studied, implemented, and experienced what it is that you will be examined on:

    If you’re looking for a new job, new field, you need to study as you wouldn’t have that experience. If you’re in the job, [a certification is] validation that you’ve learned [book or experience, or both] the material.

    Whenever I talk to people about certifications, both with those who have certifications and those who don’t, I get a different answer. Certifications mean different things to different people. As you read last week, Susan (@HockeyGeekGirl) posted her views on certification. Here are Mitch’s thoughts:

    Certifications is not just about getting them done, they are a necessity. We live in a world that is highly competitive. I’m no competing with all of the IT professionals in Oakville for the same jobs. I’m competing with professionals in Oakville, and Toronto, and Scarborough, and Vancouver, and India, and China who all want to come to this great place to work. I have credentials as far as experience goes, but certification is the proof that I have the respect from my profession to not only learn to do something the right way but also demonstrate and quantify that I’ve taken the time to do that.

    Certifications differentiate the IT professional or the dev from the computer guy hacker who sits in his basement and probably does it well, don’t get me wrong, and I know many great computer guys who don’t have certifications, but if we are going to be a profession, we don’t have a BAR association, we don’t have a Charter of Accountants, we don’t have a medical board. We are a self-governing, or not even self-governing – we are an industry that doesn’t have that self-governing or globally governing body that gives me this “hey I’m a doctor”, “I’m a lawyer”, “I’m an accountant”, that doesn’t mean that we’re not professionals. Certifications do that.

    Now It’s Your Turn

    What’s your take on certification? What do certifications mean to you? Share your thoughts on LinkedIn. If you have a certification story that you’d like to share, tips and tricks, etc, please send me an email. I’d love to be able to share it here on the blog.

    Conversation Continued

    In a future post, I’ll share with you the discussion I had with Mitch around exam results – how to learn from passed exams, and more importantly, how to learn from failed exams.

     

    Mitch Garvis

    Mitch Garvis is a Renaissance Man of the IT world with a passion for community.  He is an excellent communicator which makes him the ideal trainer, writer, and technology evangelist. Having founded and led two major Canadian user groups for IT Professionals, he understands both the value and rewards of helping his peers. After several years as a consultant and in-house IT Pro for companies in Canada, he now works with various companies creating and delivering training for Microsoft to its partners and clients around the world. He is a Microsoft Certified Trainer, and has been recognized for his community work with the prestigious Microsoft Most Valuable Professional award. He is an avid writer, and blogs at http://garvis.ca.

  • Canadian Solution Developers' Blog

    Bridging the Gap Between Developers and Testers Using Visual Studio 2010: Part 11 of 13 - UI Automation

    • 0 Comments

    VS-One-on-One---Bridging-The-Gap_thu

    In this post, we’re continuing our One on One with Visual Studio conversation from March 13 with Canadian MVPs Etienne Tremblay and Vincent Grondin, Bridging the Gap Between Developers and Testers Using Visual Studio 2010. If you’ve just joined us, the conversation builds on the previous posts, so check those out (links below) and then join us back here. If you’re re-joining us, welcome back!

    Bridging the Gap Between Developers and Testers Using Visual Studio 2010

    Introduction
    Part 1 of 13 – Migrating VSS to TFS
    Part 2 of 13 – Automating the Build
    Part 3 of 13 – Where’s Our Backlog?
    Part 4 of 13 – Adding a Tester to the Team
    Part 5 of 13 – Tester at Work
    Part 6 of 13 – Bridging the Gap
    Part 7 of 13 – Stop, We Have a Problem!
    Part 8 of 13 – Let’s Get Back On Track
    Part 9 of 13 – Multi-Environment Testing
    Part 10 of 13 – Testing in the Lab
    Part 11 of 13 – UI Automation (This Post)

    In this session of our conversation, Bridging The Gap Between Developers and Testers Using Visual Studio 2010, Etienne and Vincent use a previously manually recorded test to created an automated coded UI test. Etienne also demonstrates a trick on how to setup environment variables with scripts to ensure that the test runs against the version of the application that matches the environment in which you’re testing without the you having to go in and change the code.

    It is important to note that not all platforms support coded UI tests. Here is a summary of coded UI platform support:

    image

    For the latest on the supported platforms, see Supported Configurations and Platforms for Coded UI Tests and Action Recordings.

    With that, Etienne and Vincent, back to you.

    For more information on the topics covered in this session, check out the following resources:

    Remember, this conversation is bidirectional. Share your comments and feedback on our Ignite Your Coding LinkedIn discussion. Etienne, Vincent, and I will be monitoring the discussion and will be happy to hear from you.

  • Canadian Solution Developers' Blog

    Table Valued Parameters Save Code and Traffic

    • 2 Comments

    690px-Microsoft_SQL_Server_Logo.svgDo you use Stored Procedures? I hope so, they are great for performance and security. But, on early versions of SQL Server you could only pass one record at a time to a stored procedure. So those of us who nobly followed best practice and used stored procedures for inserting, updating, and deleting records often found ourselves having to write loop logic to call the same stored procedure over and over to insert, update, or delete multiple records. With Table Valued Parameters you can pass a set of records to a stored procedure. Yay! This feature was long overdue and is one of my favourite developer features added in SQL Server 2008.

    In SQL Server 2005, if you had a table that contained a list of Hockey Players, and you wanted to load three records into that table using a stored procedure, your code would look something like this:

    CREATE TABLE HockeyPlayer
    (id       INT                 NOT NULL,
    name VARCHAR(50) NULL,
    team  VARCHAR(50) NULL)
    GO
     
    CREATE PROCEDURE InsertPlayer
    (@id int, @name VARCHAR(50), @team VARCHAR(50))
    AS
    INSERT HockeyPlayer (id, name, team)
    VALUES (@id, @name, @team)
    GO
     
    EXECUTE InsertPlayer 1,’Michel’,'Ottawa'
    EXECUTE InsertPlayer 2,’Mike’,’Toronto’
    EXECUTE InsertPlayer 3,’Alexei,’Vancouver’

    We had to execute the stored procedure once for every record we wanted to insert.

    In SQL Server 2008, they added a new feature called Table Valued Parameters. This feature allows you to pass a one or more records to the stored procedure. In order to create a stored procedure using Table Valued Parameters, you must perform two steps.

    1. Create a Table Type in the database that defines the structure of the records you will pass to the stored procedure.

    CREATE TYPE PlayerTableType AS TABLE
    (id INT, name VARCHAR(50), team VARCHAR(50))

    2. Create your stored procedure and declare an input parameter with the type set to the Table Type you created. This input variable must be declared as READONLY. (I know my stored procedure isn’t very useful, but you get the idea)

    CREATE PROCEDURE InsertManyPlayers (@PlayerRecords PlayerTableType READONLY)
    AS BEGIN
       INSERT INTO HockeyPlayer (id, name, team)
       SELECT * FROM @PlayerRecords
    END

    Now you have a stored procedure that can accept a record set. Now how do you call it?

    Calling your stored procedure from T-SQL

    To call a stored procedure with a table valued parameter from T-SQL you have to:

    1. Create a variable based on your Table Type
    2. Populate that table variable with the records you want to pass to your stored procedure.
    3. Execute your stored procedure, passing in your table variable

    DECLARE @MyPlayers PlayerTableType

    INSERT INTO @MyPlayers
    VALUES
    (4,’Ken’,’Calgary’),
    (5,’Neil’,’Edmonton’),
    (6,’Mitch’,’Toronto’)

    EXECUTE InsertManyPlayers @MyPlayers

    Calling your stored procedure from .NET

    You can pass a DataTable, a Data Reader or any other object that implements the iList interface to a table valued parameter. When you declare the command parameter in .NET you must specify SqlDbType as Structure, and TypeName as the name of your table type, then execute the call to your stored procedure.

    In the example below, I create a data table with the same structure as the table type and populate the data table with the records I want to send to the stored procedure.

    Dim dt As New DataTable("player")
    dt.Columns.Add("id", System.Type.GetType("System.Int32"))
    dt.Columns.Add("name",System.Type.GetType("System.String")
    dt.Columns.Add("team",System.Type.GetType("System.String"))

    Dim newRow As DataRow = dt.NewRow()
    newRow("id") = 7
    newRow("name") = "Chris"
    newRow("team") = "New York"
    dt.Rows.Add(newRow)

    newRow("id") = 8
    newRow("name") = "Chris"
    newRow("team") = "New York"
    dt.Rows.Add(newRow)

    The DataTable implements the iList interface, so I can pass this data table to a table valued parameter in a stored procedure. The code below defines the SqlParameter that will pass the data table and executes the stored procedure.

    Dim Cmd As New SqlCommand("InsertManyPlayers", myCon)
    Cmd.CommandType = System.Data.CommandType.StoredProcedure
    Dim tvp As New SqlParameter
    tvp.ParameterName = "@PlayerRecords"
    tvp.SqlDbType = SqlDbType.Structured
    tvp.TypeName = "dbo.PlayerTableType"
    tvp.Value = dt Cmd.Parameters.Add(tvp)

    myCon.Open()
    Cmd.ExecuteNonQuery()

    You have now passed multiple records to a stored procedure in the database with a single call using the magic of table valued parameters. SQL rocks Smile.

    Of course I can’t forget My 5. This week:

    My 5 Places you can go learn something new about SQL Server (in no particular order)

    1. SQLTeach May 30 – June 3, 2011, Montreal, driving distance for Eastern Canada and lots of great content!
    2. TechEd North America May 16-19, Atlanta, don’t forget most of the content is also available online after the conference, even if you did not attend the show!
    3. SQLPass October 11-14th, Seattle, fabulous SQL conference for those on the West Coast.
    4. Greg Low’s blog (this guy knows his SQL Server, and he is a great presenter if you ever get a chance to catch one of his sessions)
    5. SQL Server Developer Center has links to lots of great resources including SQL Server compare editions, to compare features, I frequently get asked what is the difference between Express and Standard, between Standard and Enterprise, this is where I always look it up!

    I know many of us are just upgrading to SQL Server 2008 which is why I brought up this particular feature, but I am curious, what do you want to read about in the blog, would you like to be reminded of what is in SQL 2008, or do you want to know what’s new in Denali? Both? Let us know!

  • Canadian Solution Developers' Blog

    Events Calendar Update: May 15 - 21

    • 0 Comments


    Your Microsoft Canada team is always looking into opportunities to bring you training that would help you grow your skills and make you more successful in your career. We’ve put together this weekly events calendar update to make sure you’re always up to date on training opportunities happening in a city near you or online and can therefore schedule work in order to be be able to attend. Look forward to the weekly event calendar update every Sunday.

    New Events To Mention

    No new events to mention this week.

    However, just a reminder, if you haven’t registered already, the following events are coming up:

    Hands on Windows Azure Webinar Online Part 1
    Thursday, May 19, 2011
    12:00 PM – 1:00 PM EST, CST, MST, PST

    Part 2
    Thursday, May 26, 2011
    12:00 PM – 1:00 PM EST, CST, MST, PST

    Part 3
    Thursday, June 2, 2011
    12:00 PM – 1:00 PM EST, CST, MST, PST
         
    Windows Azure Developer Deep Drive Vancouver

    Thursday, May 26th, 2011
    8:00 AM – 5:00 PM

      Toronto

    Thursday, June 16th, 2011
    8:00 AM – 5:00 PM

         

    Upcoming Events - May

    Sunday Monday Tuesday Wednesday Thursday Friday Saturday
    1 2 3 4 5
    Azure at the Movies
    Toronto
    6
    AzureFest
    Moncton
    7
    AzureFest
    Fredericton
    8
    AzureFest
    Halifax
    9 10 11
    IE9 & WP7 Bootcamp
    Ottawa
    12
    AzureFest
    Quebec City
    13 14
    Une journée de formation sur TFS 2010
    Québec City
    15 16 17
    AzureFest
    Montreal

    IE9 & WP7 Bootcamp
    Edmonton
    18
    Operational Excellence with SQL Server 2008 R2 Workshop
    Mississauga

    Drag & Drop for SharePoint: How to Effectively Organize Your SharePoint Documents
    Toronto
    19
    AzureFest
    Winnipeg

    Hands on Windows Azure Webinar: Part 1
    Online
    20 21
    22 23 24 25
    Properly Designing SharePoint Based Solutions
    Toronto
    26
    Hands on Windows Azure Webinar: Part 2
    Online
    27 28
    29 30 31
    AzureFest
    Waterloo
           
  • Canadian Solution Developers' Blog

    Developer Lunch and Learn Webinar: Windows Azure

    • 0 Comments

    image

    I’ve been talking a lot about AzureFest recently as we’re travelling around the country introducing developers to the concepts of Cloud computing, and more specifically, what’s possible with Windows Azure. Many of you have told me that with a schedule defined by the constraints of application build, test cycle, and deployment milestones, taking the time out of your day to come out to an in-person training event is difficult. You also told me that short 1 hour training “sprints” squeezed in during the day are a great way to get your training done while not interfering with your project commitments.

    As a result, I’ve designed a 3-part lunch and learn live webinar series where we can get together for three Thursdays and explore how to build solutions for the Cloud. You’ll see how developing and deploying applications to Windows Azure is fast and easy, leveraging the skills you already have (.NET, Java, PHP, or Ruby) and the tools you already know (Visual Studio, Eclipse, etc.), all in the comfort of your own chair, at the office, or at home.

    We’ll go through an overview of Windows Azure, making sure that you learn everything to you need to know to get up and running with Windows Azure. We’ll cover the Windows Azure platform itself, the Windows Azure SDK, and the Windows Azure Tools for Visual Studio 2010. We’ll then apply the concepts as we migrate a traditional on-premise ASP.NET MVC application to Windows and SQL Azure.

    Unlike other webinars, this is a hands-on event. This means that you will be following along in your own environment and, by the end of the webinar, your application will be running on Windows Azure!

    Click here for the webinar details.

    I look forward to spending Thursday lunches with you learning about the Cloud!

  • Canadian Solution Developers' Blog

    Is Certification Worth It?

    • 2 Comments

    Yes it is! The usual argument I hear against certification is “When I apply for a job, they don’t care if I’m certified, they just care about my experience.” Well of course a hiring manager cares about your experience, but they also care about certifications!

    Earning a certification tells everyone *you* are someone who takes initiative! When you walk up to your boss and say “I want to get certified on Windows Azure”, it says a lot about you. It tells them you want to build your skills, you want to grow, you care enough about your career to make the extra effort, you want to stay on top of technology. When a manager sees someone who keeps their certifications current, it tells them this is someone who can learn and keep up with new technologies, a skill EVERY manager wants their developer to have. It’s also a good way to convince your boss they should send you to a conference as well! TechEd North America has an entire certification area to help you earn a certification while you are at the show. Coming back from a conference certified is a very tangible return on investment.

    Earning a certification will help your day to day development! You build web sites every day, you’ve written multiple ASP.NET applications, you’ve used Ajax and JQuery. You are a strong web developer. Why would you bother getting the ASP.NET certification? Have you looked at LINQ yet? How about ASP.NET MVC? I am not suggesting you should rewrite your old applications every time there is a new feature, but shouldn’t you know the features exist so you will know when you should use them? When you work with a product every day, you become very strong using the 20-50% of the product you use. But what about the features you haven’t used? The features you aren’t even aware of? Sure you have code that calls stored procedures from your applications, but did you know that in SQL Server 2008, you can pass multiple records to a stored procedure? If you had your MCTS SQL Server 2008 Database Development certification you would know that. I can’t tell you how many times I have been studying for a certification exam and had an ‘aha’ moment where I said “no way! You can do that? I wish I had known that 3 months ago on my project”, or 6 months after I passed the exam I had a moment where I said “Wait, we CAN do that, I remember seeing that feature when I was studying for my exam!” Gradually, you will be seen as the person who knows what we can and cannot do with the product, you will become the person who can provide advice on when to migrate to a new version of the product, you are becoming the expert.

    Earning a certification can help you get a job or promotion! Taking a Visual Studio 2010 certification does not guarantee you will be hired as a programmer, because you are competing with others who have been programming for 5-15 years! However, if I am trying to choose between two programmers with similar experience and one of them has the certification MCTS .NET Framework 4, Service Communication Applications. I might decide that someone with a little extra knowledge on how to write and call services will bring more to the team. Certifications are particularly valuable on new tools and technologies. Have you ever tried to hire an experienced SharePoint developer? They are hard to come by! I think many managers would consider the MCTS Microsoft SharePoint 2010 Application Development certification sufficient evidence that you could be hired as a SharePoint developer.

    So there you have it I am a big believer in certification, which is why I agreed to do a webcast with Microsoft Learning to help anyone preparing for the 70-536 .NET Framework Application Development Foundation exam. The webcast was recorded and you can view the recording here.

    This week’s My 5 is all about helping you get certified, so here are

    My 5 Steps to getting certified (in order this time)

    1. Set a goal – Go to the Microsoft Learning website and look at the certifications. Choose a certification you can earn which matches your existing skills and goals. Look up the exam or exams you need to pass to achieve your goal. Once you have set a goal, get it added to your annual commitments at work. Some companies will give you time and resources to study and most employers will pay for the exam.
    2. Find gaps – Look at the exam guide for your exam and check the skills measured tab, purchase a practice test at MeasureUp or Self Test Software, this will help you find out what you need to study to pass the exam.
    3. Fill gaps – Don’t spend a lot of time re-studying the exam content you already know. You found the gaps, now use resources around you to fill in the gaps of your knowledge. Check the Learning Catalog for a Learning Plan for your exam, or check the Preparation Materials tab of the exam guide for suggested books, and courses, and hey don’t forget MSDN and TechNet!
    4. Take the exam – go to the Prometric web site and schedule the exam. Set a date. Otherwise you will never get around to taking the exam, you can study forever! Worst case scenario, you don’t pass the first time you take the exam. Keep an eye out for promotions that give you a free second try Smile
    5. Be proud of yourself! – Some of these exams are pretty tough to pass, it is an achievement to earn a certification, give yourself a pat on the back, put it on your business card or resume. Tell your boss. Send me an e-mail and brag!
  • Canadian Solution Developers' Blog

    Gamers Can Teach Us All a Few Things

    • 0 Comments

    Whether you are developing a website, a windows application, a windows phone application, or a game, there are certain universal truths to application development. Friday evening, I attended the Algonquin college game expo where graduates of the Game Development program showcased their final projects. Teams of students each developed games for the Xbox 360. The team members brought their graphical design and programming skills together to bring their game visions to life. I had some great conversations with them about the challenges they faced during development. It was interesting to discover how the lessons they learned are the same lessons I have seen others learn the hard way in the “real world.”

    I couldn’t resist throwing together a My 5 featuring some very sound advice from the graduates of the Game Development program.

    My 5 (or I guess I should call it Their 5) in no particular order

    What I would do differently if I had to rebuild my application from scratch

    1. Make the code as extendable and reusable as possible.
    2. Get the core functionality working before you start developing the little details, otherwise you have to keep changing the little details over and over as you develop the core functionality.
    3. If you are going to rely on someone else’s code for functionality, identify requirements before you make a final decision, and make sure your chosen product supports those requirements.
    4. Never give up on your original vision. You will encounter problems and make compromises, but always keep the original vision in mind and strive to achieve it!
    5. Think about and design the overall user experience, not just the graphics and screen design. Is your application intuitive? Will users be able to use if effectively? This last point is one I think many of us miss, sure we talk about designing screens, but that is only part of the user experience. There is a very interesting book by Bill Buxton called Sketching User Experiences that will challenge the way you think about design.

    I wonder if next year's students will be using the Kinect SDK! If you are interested in creating games, check out the App hub to access resources to develop for Xbox 360 or Windows Phone. The Go DevMental blog has some great tips too!

Page 1 of 1 (15 items)