• Canadian Solution Developers' Blog

    Simplify the Complicated

    • 0 Comments

    2012-04-20_1212

    If you’re reading this, you probably follow this blog in one way or another. In the spirit of simplification, we will be merging our various MSDN (Web Developers, Mobile Developers and Solution Developers) blogs in one – the Canadian Developer Connection. Moving forward, the Canadian Developer Connection will be your one-stop for all development topics - web, mobile, cloud, developer tools, and more!

    Over the next few months, we’ll be working on adding functionality that will make it easier for you to narrow down the content to exactly what you’re looking for and are interested in, amongst other things. But since we’re already going to be looking at making things better, any feedback you might have would be greatly appreciated.

    Join the conversation in the Canadian Developer Connection group on LinkedIn and let us know what you’re thinking. If you’re not already a member, make sure you join. As a group member, you’ll be amongst 4800+ like-minded developers, such as yourself, having informative discussions, asking questions, and getting answers.

    Moving forward, I’ll see you over at the Canadian Developer Connection.

  • Canadian Solution Developers' Blog

    What’s going on across Canada? Lots! Check it out!

    • 0 Comments

    There are so many great events coming up in Canada, I wanted to list some of them here, so you don’t miss out!

    TechDays isn’t your only opportunity to get out and learn about the latest technologies from experts. We hold a number of smaller events throughout the year, and we also sponsor and present at other great events organized by experts across Canada. There is a lot happening in April and May, I am probably missing a few events so if you know of something I missed please comment on this blog post and share!

    Victoria ,BC

    DevTeach Community Event

    Two fantastic presenters bring you some great content. Richard Campbell, MVP and host of DotNetRocks shares Ten Web Performance Tuning Tricks. Medhat Elmasry, BCIT instructor and president of .netBC user group helps you learn how to use Microsoft OData.

    When: Thursday April 5th, 2012, two choices of time slot 3PM or 6PM

    Cost: FREE

    Vancouver, BC

    Windows 8 Camp 

    A Windows 8 Camp is a free, two-day event where developers and designers will discover HANDS-ON how to build their first Metro Style App for Windows 8. At these camps, we’ll also share the next steps on how to get Windows 8 apps out there!

    When: April 3 & 4, 2012

    Cost: Free

    TechFest 2012 

    If you are a developer, the fact Scott Gu is doing the keynote may be enough to get you here alone. But above and beyond that there is lots of great content too! Windows Phone, Windows Azure, .NET Debugging tools, DotNetNuke, Joomla, Windows Server 8, database and design content as well! Several members of the Canada’s Evangelism team will be there: Jonathan Rozenblit, Thomas Lewis, and Paul Laberge. Check it out!

    When: April 28th, 2012

    Cost: $50, $25 for students

    DevTeach, MobileTeach, RubyTeach, SQLTeach

    What’s do you want to learn? mobile development? ALM in Visual Studio 11, database content like T-SQL with guru Itzik Ben-Gan, SharePoint development? The combined experience and knowledge of the speakers at this event ensure everyone will have the opportunity to learn something new to take back and apply. Say hi to Thomas Lewis from our Canadian Evangelism team when you go.

    When: May 28th – June 1st, 2012 (including pre and post conference workshops)

    Ottawa, ON

    Ottawa IT Camp

    With 5 tracks including a track dedicated to Windows 8, there is content here for any geek: SQL Server 2012, SCCM 2012, ASP .NET MVC 4, SharePoint coding, C# ASync. Presenters include Hockey Geek Girl (aka Susan Ibach) from the Microsoft Evangelist team, Arnold Gagnon and Mohamed Sharaf, Premier Field Engineers for Microsoft Canada, Microsoft MVPs Colin Melia, Colin Smith, Jean-Rene Roy, Joel Hebert, and Islam Gomaa

    When: Saturday April 14th, 2012 9 AM

    Cost: $25

    Toronto, ON

    Windows 8 Camp 

    A Windows 8 Camp is a free, two-day event where developers and designers will discover HANDS-ON how to build their first Metro Style App for Windows 8. At these camps, we’ll also share the next steps on how to get Windows 8 apps out there!

    April 16 & 17, 2012

    Cost: Free

    The Lord of TFS – At the movies event

    ObjectSharp presents an At the Movies event where you can learn about the new Microsoft developer tools for 2012. Visual Studio 11,  Metro on Windows 8 and Windows Phone, TFS and Test Manager. Last year’s event sold out, so register soon! Good you get me one of those posters if you go? I need one of those!

    When: May 1, 2012 9AM –Noon

     

    Montreal, QU

    Windows 8 Camp 

    A Windows 8 Camp is a free, two-day event where developers and designers will discover HANDS-ON how to build their first Metro Style App for Windows 8. At these camps, we’ll also share the next steps on how to get Windows 8 apps out there!

    April 10 & 11, 2012

    Cost: Free

  • Canadian Solution Developers' Blog

    Take Your Cloud Like Your Coffee–Half and Half

    • 0 Comments

    What is it that you do with your cup of coffee that makes it taste exactly the way you like it? Aside from the selection of the coffee itself, it is probably how much sugar, milk, and/or cream you add. But what happens if you want the texture of cream, but want a lower butterfat content? You go for half and half!

    (Thinking of the Tim Horton’s coffee that I had this morning… thinking I might need another one…)

    When it comes to evaluating your applications and their suitability for the Cloud, the decision usually comes down to whether you put your applications in the Cloud or whether you keep them on-premises in your own datacenter. But wait - why does it have to be one or the other? Why can’t you take “your” Cloud the way you take your coffee – customizing it to what works for you?

    You can, and you should.

    The way I see it, taking your Cloud like your coffee breaks down as follows:

    • Your selection of coffee provider/flavour (Tim Horton’s, Second Cup, etc) is analogous to your selection of hosting platform as it is the basis to your experience.
    • Your selection of milk, cream, or half and half is analogous to the architecture you choose to go with – either all in, not in, or half and half (hybrid).
    • The amount of sugar you add to your coffee is the final determination of your drinking experience, analogous to the platform’s (of your choosing) ability to deliver on the deployment experience to your expectation.

    Let’s zero in on the milk, cream, or half and half.

    For me, the selection of milk, cream, or half and half is dependent on the coffee I choose. Some coffees go better with milk, and others with the cream. Having said that, it’s no different when looking at the platform that host your applications. Some platforms require you to be all on-premises. Other platforms required you to be all in the Cloud. But where the magic happens – like half and half that gives you the texture of cream, but lower butterfat content – is when you can have the best of both worlds and work with a platform that enables you to run some things on-premises and others in the cloud, taking advantage of the benefits of each.

    When would you need a platform that can do half and half, or better known as hybrid solutions? Here are just a few:

    • Applications that require single-sign on authentication with an existing identity provider, like Active Directory.
    • Applications that work with and/or store sensitive information
    • Applications that store information deemed by regulations as not allowed to leave the country
    • Applications that work with on-premises applications (applications behind a firewall, not exposed to the Internet)
    • Applications that need network access to resources (file shares, applications, internal IPs, etc)

    Without a hybrid option, these types of applications would be constrained to live their entire lifecycle in an on-premises world. With a hybrid capable Cloud platform, like Windows Azure for example, you can remove that constraint.

    Best of Both Worlds

    Hybrid solutions allow you to take advantage of the best of both worlds:

    On-Premises

    • Use existing systems/applications that you have today, without having to duplicate them to the Cloud
    • Use existing operations and monitoring mechanisms to ensure compliance with rules and regulations
    • Use existing identity provider (i.e. Active Directory) to perform authentication and authorization
    • Completely control security and privacy of data
    • Comply with legal, security, and privacy regulations

    Cloud

    • Provision infrastructure only when you need it to make deploying applications faster
    • Deploy applications all over the world to ensure an optimal experience for users regardless of where they are located
    • Scale all or parts of an application as demand dictates
    • Pay for the infrastructure only when you use it, rather than upfront in case you’ll use it

    All of this while not having to make too many changes, if at all, to your existing on-premises applications to support a Cloud component.

    Taking your Cloud like you take your coffee

    So now you can see – taking your Cloud like you take your coffee is, in fact, possible. You just need to ensure that the Cloud platform of your choosing supports it.

    As I close off this post, it seems appropriate to end with a coffee/Cloud order!

      Coffee Cloud
    Coffee Taste Tim Horton’s Original (my preference) Windows Azure
    Milk/Cream/Half and Half Half and Half Hybrid Solution (on-premises and public cloud)
    Sugar 1 2 (One for each. On-premises + public cloud = a sweet solution for applications)

    But this is just a recipe. What’s yours?

    Original photo by Will Keightley

  • Canadian Solution Developers' Blog

    Most frequently requested Visual Studio resources

    • 0 Comments

    In this post, I share some of my favourite and most requested links for Visual Studio resources.

    I taught developer courses for a number of years, and there were certain questions and requests that came up on a regular basis. In this post, I’ve compiled some of the most common requests I received from my students and listed the resources I shared. When you are trying to find the syntax for a specific method, or a code example for a particular API, searching the internet works great! But sometimes more generic information can be harder to find in a sea of websites, blogs, and articles. I hope these resources will help both new and experienced users of Visual Studio to help you get started or get more out of the tool you already have.

    What edition should I buy?

    I always have trouble finding this when I want it so here is the Visual Studio 2010 Comparison

    What can I get for free?

    How can Visual Studio help with testing or aspects other than coding?

    We often think of Visual Studio as just a tool to help us code, but it can help with the whole application lifecycle. There are some good intros to using Visual Studio as an ALM tool here.

    Microsoft Test Manager was added to Visual Studio and helps track test plans, test cases and more on your project. Learn more about how to get started with Test Manager here.

    I’ve been working with Visual Studio for a while, how do I find those “hidden” features?

    Are there labs somewhere I can launch to try out the tool and features?

    • We have some Visual Studio 2010 labs you can launch online at Techdays Canada
    • The Visual Studio team has also made a Virtual Machine and a series of Visual Studio 11 labs you can download and try.

    Where can I learn C#? VB .NET? F#?

    I want to get certified on Web? Windows? Where do I start?

    Check out this blog series that covers how to figure out what certification to take, the exams required, and some tips on how to prepare for the exam itself.

    Looking for anything else, I suggest you check out...

    MSDN Learning Visual Studio – helpful resources to help beginners and seasoned professionals build their skills.

    Microsoft Learning Training Catalog – helps you find both online and in person training resources

    Do you have any great resources or tips to share? Join us on the Canadian Developer Connection on LinkedIn and share it with the Canadian developer community!

  • Canadian Solution Developers' Blog

    Developers just wanna have fun! Kinect for Windows

    • 0 Comments

    KinectforWindows-Sensor angled_h_cL.jpegKinect for Windows and it’s SDK gives us a chance to break away from the ordinary and get creative!

    I have spent many hours writing validation code for forms, code that read or updated databases, or code that looped through collections. Sure I got creative from time to time with how I wrote my code, but coding for Kinect lets me unleash my creativity in a whole new way!

    I had the pleasure of hearing Bill Buxton speak a few months ago. Bill Buxton is the guru of User Experience. User Experience goes beyond just User Interface Design. He challenges us to not just think about making screens that are pretty and easy to use, but to think about the overall user experience. He described some of the ways user experience has evolved:

    When you go to the washroom you wave your hand to get a paper towel. That was Kinect 1.0

    When you leave the grocery store, the door opens automatically as you push your cart through the doorway. That was Kinect 2.0

    So why are doors and paper towel dispensers smarter than our laptops?

    It’s an interesting challenge to us as developers to find new ways to interact with our users. The Kinect opens up so many possibilities. Nissan has created a virtual experience using Kinect which shows how you could use Kinect to create a virtual showroom. Then there’s the Kinect virtual fitting room. Kinect provides us with a whole new set of choices when it comes to user experience and lets be honest, it is also just plain fun! Check out the Nerf Gun and Kinect skeletal tracking to protect your office (you can get the code here) or maybe you’d enjoy using Kinect to control Robosapien. Robosapien is a remote control robot that was a big hit with my kids for a few years, without Kinect you controlled it by pressing commands on the remote, using hand gestures and voice commands through Kinect instead of a remote is pretty cool.

    So get your geek on with Kinect for Windows. You’ll need the SDK which you can download here and you can keep up to date on the latest news and updates for Kinect for windows keep an eye on their blog. Happy coding!

  • Canadian Solution Developers' Blog

    Want to learn more about Visual Studio 11 and .NET 4.5 Beta?

    • 0 Comments

    I know I’m not the only one curious about the contents of Visual Studio 11 and .NET 4.5 so here are some resources to help you see what’s coming!

    Get the beta February 29th!

    The Visual Studio team has gone hog wild the past few days releasing lots of great information about Visual Studio 11 and the .NET 4.5 Beta that will be available February 29th. I just wanted to share with you some of the great articles they have posted so you can start geeking out!

    And one last link, because betas are great to download and explore but if you haven’t bought or renewed your existing Visual Studio license Get ready with MSDN: Save up to 35% on Visual Studio with MSDN

  • Canadian Solution Developers' Blog

    How do I use HTML5 in Visual Studio 2010?

    • 1 Comments

    cadhtml5coaIn this post, I’ll share what I learned about how to get started writing HTML5 code in Visual Studio 2010.

    HTML5 seems to be everywhere these days! I started trying it myself a few months back and I quickly decided that if possible, I wanted to play with it in Visual Studio. I’ve been working with Visual Studio for years, it’s got to be simpler to keep working with the developer tool I already know and love rather than moving to a new tool. Besides I want to be able to incorporate HTML5 into ASP.NET applications!  It took me a bit of messing about to get up and running with HTML5 the way I know there will be greater support for HTML5 in Visual Studio 11. But for now I am working with Visual Studio 2010.  I thought I would share what I learned so hopefully it will be easier for you.

    Here’s what you want to do:

    • Add HTML5 validation and intellisense
    • Create an HTML5 project
    • Set up for <video> and <audio>
    • Play!

    Add HTML5 Validation and Intellisense

    You will definitely want to make sure you have Service Pack 1 installed! By installing Service Pack 1 you get both intellisense (can’t live without that anymore) and validation for HTML5. Don’t forget after you install Service pack 1 to go to Tools | Options | Text Editor | HTML | Validation and set the validation to HTML5 or XHTML5 or the HTML5 validation won’t work.

    First of all there is a really great blog by Burke Holland on how to use the MVC HTML5 template for Visual Studio 2010 here.

    Create an HTML5 project in Visual Studio

    You have a couple of choices here.

    • Modify an existing template to be HTML5 or create your own template. There is a great blog describing how to do that here.
    • Download the MotherEffin ASP.NET MVC HTML5 template that Jacob Gable was kind enough to post on the VisualStudio Gallery.
    • Download the mobile ready ASP.NET MVC HTML5 template that Sammy Ageil was kind enough to post on the Visual Studio Gallery

    Set up for <video> and <audio>

    The first tags I started playing with in Visual Studio were the video and audio tags. I immediately had problems getting an actual video to display on my web page it was really frustrating. Here is what I had to do to get everything working. The basic problem was with the MIME types. When a .avi, or .MP3 file was used on my website, the web server didn’t recognize that those were video and audio files. To get it working I had to edit my web.config file and make sure I had IIS express running in the development environment instead of the development server built into Visual Studio to ensure that my web.config file was being used to figure out the MIME types. You need to do this for the WOFF fonts as well.

    • Install IIS Express
    • Specify the mime types you will be using in your web.config file. Here’s an example:
          <system.webServer>
            <staticContent>
              <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
              <mimeMap fileExtension=".m4v" mimeType="video/mp4" />
              <mimeMap fileExtension=".woff" mimeType="application/x-woff" />
              <mimeMap fileExtension=".webm" mimeType="video/webm" />
              <mimeMap fileExtension=".ogg" mimeType="video/ogg" />
              <mimeMap fileExtension=".ogv" mimeType="video/ogg" />
            </staticContent>
          </system.webServer>

    Change the project settings, by right clicking on the project and changing the settings to Use IIS Express when debugging in Visual Studio.VisualStudioDevelopmentServer

    Play!

    Once you have it up and running you can start exploring the world of HTML5. There are some great resources on learning HTML5 here. Make sure you read up on feature detection since different browsers will support different HTML5 features and because you will need this for backwards compatibility as well!

    If you want to experiment with <video>, I found it handy to just download Big Buck Bunny since you can get it in multiple formats so it’s great for experimenting with the fallback features of HTML5 <video> for different browsers.

    Since a big part of HTML5 is the cross browser support, make sure you try it out in different browsers, or use the F12 developer tools in Internet Explorer to test how your code will work in different browsers or older browsers.

    Most of all have fun!

  • Canadian Solution Developers' Blog

    Your FREE Trial is Actually FREE, Now…

    • 0 Comments

    Too often I get asked whether the Windows Azure trial is actually FREE because you have to enter a credit card when signing up. With the introduction of Spending Limits, yes, yes, it is.

    369849_7853

    Here’s the situation – you’ve been following the Canadian Developer Connection, my blog, or wherever you get your updates on what’s new and exciting in the developer world. You’re sitting down to give Windows Azure a try (check out the Windows Azure Challenge for a fun way to get started with Windows Azure). You go to create your free Windows Azure trial and boom – it asks you for a credit card. You scratch your head and say: “If I put my card in there, I’m going to get charged – but it’s a free trial…”

    The truth is that, up until recently, it was technically possible to get charged for your Windows Azure usage if you went over the resources that come with the free trial. But now – no more. Your FREE trial is actually FREE because of a new feature that was added to Windows Azure called a Spending Limit, and the nice thing is that it is enabled automatically to ensure that you’re protected!

    Now when you sign up for a new trial subscription and deploy applications to Windows Azure, the spending limit, which is by default set to $0 (meaning you don’t want to spend any money) will prevent you from being charged! If and when your usage exceeds the monthly amounts included in your subscription, Windows Azure will disable your service for the remainder of that billing month, which includes removing any apps you have running (though your data in your storage accounts and databases will be accessible as read-only). At the beginning of the next billing month, your subscription will be re-enabled and you will be able to re-deploy your Windows Azure apps and have full access to your storage accounts and databases. Perfect for ensuring that you are not charged for playing around and getting comfortable with Windows Azure.

    Here’s what you’ll see as you approach the limit of your subscription:

    pic0

    and then when you’ve reached the limit, rather than charging your credit card, the subscription is disabled:

    pic1

    No more worries of being charged

    With spending limits in place, there are not more excuses as to why you can’t give Windows Azure a try. Here are two great ways to do so:

    AzureCamp Windows Azure Camp Challenge
    Downloads the tools and a hands-on lab to complete on your own computer. You can then reward yourself with a few drinks on us.
    Go >>
       
    Techdays Logo Basics of Application Development for Windows Azure on TechDays Online
    Use our virtual environments to complete the lab. You won’t have to download or install the tools. Just the remote viewer.
    Go >>

    Join the Conversation

    I’d love to hear all about your first experiences with Windows Azure – what compelled you to give it a try? What was your first time like? Did you have any “ah-ha” moments? Did you come to any realizations? Did you make any sort of conclusions about Windows Azure? Once you’ve gone through one of the above (and/or the many other hands-on labs on TechDays Online), join the conversation about first experiences in Canadian Developer Connection group on LinkedIn.

  • Canadian Solution Developers' Blog

    Because There’s Always More To Learn…

    • 0 Comments

    The title of this post is “Because there’s always more to learn.” Where’s that from? You know it… That’s right – TechDays. But wait… time to talk about TechDays 2012 already? Not quite. But it is time to talk about TechDays Online!

    Whether you were able to attend Tech·Days 2011 (or even 2010!) or not you’ll find it all on Tech·Days Online. It looks like many of you have already been perusing the training content that’s up there, so it’s definitely looking like TechDays Online is how Canadian Developers, like you, are staying on top of the latest technologies and innovations, as well as connecting with the developer community at large.

    So what’s available on TechDays Online?

    From Hands-On Labs to session videos to articles, and more, TechDays Online has the technical training that you need to grow your career:

    • Session Videos. Watch all of the sessions from Tech·Days 2011 and 2010 across all of the different tracks and technologies.
    • Hands-On Labs. Try the technology for yourself with step-by-step instructions and virtual machines that are already set up and ready for you.
    • Blogs and Articles. See what your peers and industry experts have to say on the latest issues with up-to-date blogs and featured articles.

    But wait, there’s more – Introducing TechDays TV

    Starting the end of this month, TechDays TV will air brand new TechDays sessions (exclusive to TechDays Online). The experts will be LIVE and INTERACTIVE which means that throughout the session, as well as after the session, you’ll be able to post your questions via chat or Twitter and have them answered in real-time. You’ll be connecting to technical folks as if they were right there with you at a TechDays tour location.

    Clear your calendar and save the dates – every other Tuesday at 12:00 PM ET, starting February 28.

    So…

    Visit Tech·Days Online now to drive your technical skills into the future—at your own pace and your own convenience and stay tuned for more on TechDays TV.

  • Canadian Solution Developers' Blog

    Do you hate SharePoint? Part 4 of 4

    • 0 Comments

    If the answer is yes, could your hatred be caused by your local implementation? In this final post of our blog series we look at the last of four common problems with SharePoint implementations and how you can address them.

    Once again, a huge thank you to Neil MacIsaac, SharePoint MCT, for putting this entire series together. Happy reading!

    If you missed the earlier posts you can find them here

    1. Business Intelligence

    This week we look at Business Intelligence.

    4. Business Intelligence

    Are there organizations out there that are really striving for Business Unintelligence? Wouldn't everything that an organization does be in an effort to do something better? I love the term Business Intelligence (BI) mainly because of its massive overuse and its wide misunderstanding as 'reporting'. So the question really becomes "How do we maximize our BI?" First, it is important to understand what BI really is. It is about making better decisions. If we have better data, and a better understanding of our data, it would be logical to conclude we would make better decisions right? Not necessarily. The theory is correct, but in practice most organizations fail to implement this properly by not focusing on the decision that they are trying to improve and instead only achieve in bombarding their key decision makers with an avalanche of reports. What is also surprising is that most of the decision makers in an organization are probably the ones asking for the reports in the first place. Let me give you an example. In a sales based business, you might see some monthly sales figures like this (overly simplified for the sake of discussion)

    Sales Member

    Monthly Sales (Units)

    John

    5,437

    Mary

    8,350

    Bob

    3,043

    Jim

    7,410

    Why do we need to see these sales figures? The typical answer you will get will be "Because I need to know if there are any problems and to see if we are doing better or worse than last month or last year." So, with the above numbers, where is the problem? Most people would focus on Bob because his numbers are lower than the others. What isn't shown with these numbers is that Bob is the newest of team and manages the smallest sales area. Can you still spot where the problem is in the above sales numbers? The typical failure in implementing a BI solution within SharePoint is usually in the disregard for a proper BI solution that focuses on those key decisions which strives to achieve a better decision by supplying as much data around the factors and drivers of the data as the data itself. Instead we see fancier reports of the above sales table and hope that our decision makers will 'figure it out'. Another interesting point concerning SharePoint and BI integration is the potential for SharePoint to implement the decision. If our BI solution is focused on key decisions, a good solution should allow the user to implement the decision as quickly and easily as possible.

    Conclusion

    As you can see, SharePoint offers many challenges when deployed into an organization and requires due diligence to maximize your return. I hope that some of my tips may make their way into your organization and perhaps save you from some of the common pitfalls that have trapped others. There is good reason why SharePoint has become as popular as it has and hopefully you will be better able to get the most out of your implementation.

  • Canadian Solution Developers' Blog

    Security requires a prison not a fortress

    • 0 Comments

    PrisonRob Labbe, Senior Security Program Manager at Microsoft challenges us to think about security in a new way: does it matter if someone gets in to your system if you stop them from taking anything out? 

    One of the best parts of doing webcasts is people often ask you questions you hadn’t quite thought about, or make you think about issues in different ways. I just finished recording a security webcast on .NET Rocks with Carl Franklin and Richard Campbell and it got me thinking. Shame they never warned me I’d have to think.

    The information security “industry” has turned out thousands of security products, tools, methodologies, processes, you name it… some of it is even pretty good. Given all that innovation, why is it, at a macro level it appears we’re not getting any better as an IT industry or as developers in security our systems and preventing large scale compromise?

    It can’t be a lack of tools, platforms and processes can it? Given the huge advances in all those areas, I think it is pretty safe to say we have the tools in our toolbox to be more secure. So, if it isn’t the tools, could it be us? Could it be that as developers and IT pros we’re simply looking at security the wrong way?

    Since the beginning of time, when we have something of value we try to protect it by ensuring the bad guys can’t get to it. We build castles, moats, and walls… Banks build vaults, we bury important military installations in the middle of mountains or solid chunks of granite. All that thinking carried over to our IT systems.  We focus on firewalls to keep the bad guys out, intrusion detection to let us know if they find a way in, and all manner of systems and technologies to do it. We’re building a big, digital vault to keep our company crown jewels locked up. In theory it’s a great plan. If we keep all the bad guys out, then there is no way they can steal our stuff.

    Before we have a chance to finish our perfect, high security vault, we get a wrinkle, one I like to call “The Business”. They have requirements, they want to let people into our vault. All sorts of people. Good people, bad people, people we don’t even know about. By the time we’re finished poking holes in our vault for all the services and users want, a complex system can have thousands upon thousands of endpoints, holes and possible entry points.

    I think we need a new analogy. Rather than building a vault or fortress, perhaps we need to design our networks as prisons. Classify our applications and data according to their sensitivity (minimum security right through super max) and flip a lot of our security and detective controls inward. Lets focus on controlling the known, our data, and relatively few users and systems that are within our span of control. Time has proven that we can’t prevent the determined human adversary from finding some foothold in, however we can make great strides in limiting that impact. Does it matter who gets in, if the important data doesn’t get out?

    For IT Pros, most of this comes down to doing a really good job with hygiene tasks: Keeping machines patched, doing a good job with identity management (particularly privileged Identity) and you’re 90% of the way there. For developers, again it is partly hygiene, but we need to remember that our applications need to be installed on systems, so we need to work with the IT pros to ensure least privilege, and intelligent encryption and data protection for data based on the risk and data classification.

    For Developers, to enable good application security hygiene we need a good Security Development Lifecycle. A good SDL will help you build that prison for your key data, help you identify the key assets, identify risks and design security controls to protect those key assets. Regardless of what is going on “out there” the SDL will help you manage and identify those places you need to work with IT to come up with one big plan.

    Over the next several guest blog posts, I’m going to walk through the SDL from a developer’s perspective, using the prison as the analogy, we’ll look at how following good SDL practices will help us not only build a more secure application, but also do it in a way that has minimal impact on the project budget and schedule. It should be a fun ride, stay tuned!

  • Canadian Solution Developers' Blog

    Do you hate SharePoint? Part 3 of 4

    • 0 Comments

    If the answer is yes, could your hatred be caused by your local implementation? In this blog series we look at four common problems with SharePoint implementations and how you can address them.

    We continue our series by Neil McIsaac, SharePoint MCT, for putting this together. Happy reading! If you missed it you can still read Part 1 and Part 2 of the series

    SharePoint is an interesting platform and as it grows as a product and with its already incredible adoption, it is an important cornerstone for many organizations. But ask the people that work with it, and you will find a divided love it or hate it passion for the product.

    Why hate it?

    It’s my experience (which dates back to the site server/dashboard days), that many customers have difficulty handling the product and I mean this a number of ways. Here’s the issue:

    SharePoint will amplify your problems.

    So why do we hate it? I would hate anything that made my problems larger. But did SharePoint create the problem? That would be like blaming the carpenters hammer for building a crooked house. The problems are our own doing in the majority of cases. In my experience, the most common problem SharePoint seems to amplify are the following;

    1. Information Security
    2. Business Intelligence

    This week we look at Information Security.

    3. Information Security

    SharePoint has a confusing security architecture. A friend of mine continually jokes that you can do anything in SharePoint, as long as you know the 6 strategically placed security settings you need to set to allow users to interact with your content. I like to keep things simple. I always start addressing security by asking these 3 basic questions;

    What are the requirements?

    This question is pretty straight forward and we do it relatively well. Who gets access, and who doesn't.

    How do we know we meet the security requirements?

    This is one area where SharePoint poses some difficulty, since it lacks any worthwhile reporting tools and has enough security layers that are hidden in the UI that it feels like finding an answer to this question is akin to finding the meaning of life itself. Paired with the products inability to properly handle security inheritance and the lack of a proper method to deny permissions and you are on a never ending hunt for individualized permissions. Yuck. Unfortunately the best security reporting tools are third party. Your team needs to sit down and address how your organization will address security reporting and auditing.

    When is the last time we checked?

    Security audits are often checked at implementation, but rarely checked afterwards. Permission elevation happens for various reasons such as troubleshooting, making it necessary to schedule our audits. If running an audit is painful because we haven't properly addressed the above question, then scheduling it will hurt that much more. Again, get a good security tool.

    Information Security Tips

    Here are a few tips on implementing security in SharePoint to help make things a little more manageable.

    Libraries/Lists are for security

    I am not a fan of the Shared Documents Library which comes as a default. If you have ever heard me talk on the subject, you know I get a bit worked up about it. I am a fan of lists/libraries in SharePoint and I completely understand Microsoft's position in adding it. It was a necessary evil. The problem that I have with it is what most people put in it. It goes against pretty much every information management principal that we have. Many organizations use this library and why not? It says "Shared" and I want to share my stuff, so why not? The reasons are many, but at a simple level, you will end up with a folder structure that mimics your old file shares, and make it work by placing individual permissions on folders and files to compensate for your lack of proper architecture. If you think of lists and libraries as containers, which if you were paying attention in the previous blog post when I ranted about the importance of structure, you can shape these containers to better store its information. You can change the shape (think 'content types'), and you can change the behaviour (think 'workflows' and 'views') to better aid the end user in the task they have at hand (think 'Use Cases'). Coming back to permissions, if we have a container with similar information in it, we can control permissions to all of its content by controlling permissions to the container. In other words, permissions in SharePoint are best handled at the list and library level and not at the folder or file/item level. Which brings me to a solid point: If you are not sure how many libraries you should have, look at the common permissions to your content. If a group of people need read access to one type of content but not to another type of content, then the content should be in the same list/library and we can control permissions to the content by setting the permissions once on the list or library. So how many lists or libraries should you have? The answer is in how many groups of content with the same permissions you have. This is not always the answer, but it is a good starting point.

    Use SharePoint groups as functional roles

    SharePoint groups are best used to reflect functionality rather than entity. Since we typically use Active Directory groups, adding the AD groups to our SharePoint groups to reflect the same group would be redundant. For example, having a Sales group in AD, which we mimic and create a Sales group in SharePoint usually offers little benefit. Having a group in SharePoint that reflects their ability is preferred. For example, I can create a group in SharePoint called Sales Lead Generators that can better reflect what anyone in that group can 'do' rather than who they are. Not only does it simplify security administration, it makes audit reporting a lot easier to read and verify.

    Use Information Rights Management

    Information Rights Management has been around for some time now. Surprisingly, most organizations that want to secure documents rely on securing the folder or physical media where the file is stored. The problem is that this security simply doesn't follow the document where ever it goes. IRM on the other hand, does! You just have to ask someone if their documents are just as secure after an employee that has proper permissions to the file copies it to a thumb drive, or inadvertently emails it to the wrong person. SharePoint and IRM integrate very well. You can check out more about IRM here.

    Next week, part 4 business intelligence…

  • Canadian Solution Developers' Blog

    Hang out with others who geek out on technology, find your local user group!

    • 0 Comments

    canadamapThere are user groups all over the country where fellow geeks meet, share knowledge, network, and talk technology. Find your nearest user group and check it out!

    I was speaking recently about HTML5 and pinned sites in Internet Explorer 9 to 58 developers in Fredericton, New Brunswick. It was a meeting of the Fredericton Developer  User Group. They meet once a month. A typical evening involves pizza and pop, time to network with the others at the meeting and then a presentation on a topic of interest by either a group member or a guest speaker.

    Sometimes we get so caught up in our own department or our own projects that we forget to take time to learn, grow and just have a little fun from time to time with other people who will get our jokes about constructors and garbage collectors. If you are fortunate, you may get to attend conferences like TechDays, DevTeach, or Prairie DevCon but not all of us can get away for a conference and even if you do those are usually just once a year.

    Joining a user group gives you a chance to be part of a like minded community who deal with the same sorts of challenges you do, day in and day out. It can keep you motivated, interested, and can help you stay on top of technology. We often co-ordinate with user groups when we have new content we want to share across the country. We’ve organized a Windows Phone Mango Tour, Cloud camps, and an ITpro tour tour through local user groups, so you can trust them to know about any significant events and promotions going on in Canada that could help you.

    There are two places you can look up your local user group: MSDN Canadian Community and TechNet Canada User Groups. Check both lists because some user groups are listed on one and not the other. There are even a few virtual user groups if you don’t find one physically located near you.

    Find your nearest user group and go geek out!

  • Canadian Solution Developers' Blog

    My love affair with Visual Studio: Error Correction

    • 0 Comments

    I have been working with Visual Studio for years, and I’ve found a few tricks along the way that make my coding easier. In this blog post I’ll show one of my favourite time savers the Error Correction feature.

    When you are writing code for a form or a class as part of a team, or even if you are just starting work on a project which will be made up of multiple classes, you always end up having to reference classes, properties, or methods in your code that haven’t been written yet. So you either have to comment out those calls, add them later, or add stubs so your code will compile. In Visual Studio 2010 they added a neat little feature that will add the stubs for you!

    Say I am writing code for a click event handler that will create and populate an instance of a Student object who will be registering for a course. I haven’t created the Student class yet so I see a squiggly under the word student and this little rectangle at the end of the squiggly.

    image

    Now comes the cool part, I can carefully hover the mouse over the tiny rectangle and a little warning symbol will appear, if I hover just right it will appear with an arrow beside it that I can click on.

    ErrorCorrectionOptionSmall

    Clicking on that little arrow will bring up a menu of options that will fix the error for me! By the way, if like me, you find using the mouse to bring up the list fiddly, you can use the keyboard to bring up the correction menu by putting the cursor on the word student and hitting CTRL + . that’s CONTROL KEY and a PERIOD.

    ErrorCorrectionListSmall

    Visual Studio is offering to create a Student class for me, or to define a new type (variable essentially). If I click on Generate ‘Class Student’ I can see a new class appear in Solution Explorer called Student.vb

    image

    If I open up the Student class I see it has not only created a class, but because my code called a constructor and passed in two variables, it created a constructor method in the class as well that accepts two variables!

    image

    The code isn’t complete by any means, but it’s enough to get rid of the squiggly on Student in my event handler!

    image

    Of course now I have squiggly lines under vFirstName and vLastName because I haven’t declared those yet, but if I bring up the Error Correction list for those variables I select Generate field for vFirstName and then Generate field for vLastName and it adds the declarations for me!

    image

    Sure, it didn't’ know what data type to make the variables, it’s not perfect, but when I am trying to test something quickly these little Error Correction tools that will generate code stubs for me can be a real time-saver.

  • Canadian Solution Developers' Blog

    Do you hate Sharepoint? Part 2 of 4

    • 0 Comments

    If the answer is yes, could your hatred be caused by your local implementation? In this second part of our blog series we continue to explore four common problems with SharePoint implementations and how you can address them.

    Once again, a huge thank you to Neil McIsaac, SharePoint MCT, for putting this together. Happy reading! If you missed Part 1 – Information Management, you can read it here

    SharePoint is an interesting platform and as it grows as a product and with its already incredible adoption, it is an important cornerstone for many organizations. But ask the people that work with it, and you will find a divided love it or hate it passion for the product.

    Why hate it?

    It’s my experience (which dates back to the site server/dashboard days), that many customers have difficulty handling the product and I mean this a number of ways. Here’s the issue:

    SharePoint will amplify your problems.

    So why do we hate it? I would hate anything that made my problems larger. But did SharePoint create the problem? That would be like blaming the carpenters hammer for building a crooked house. The problems are our own doing in the majority of cases. In my experience, the most common problem SharePoint seems to amplify are the following;

    1. Project Management
    2. Information Security
    3. Business Intelligence

    Last week we looked at Information Management, this week let’s look at Project Management.

    2. Project Management

    There are some interesting numbers on the frequency in which SharePoint projects fail. I won't bore you with numbers mainly because individually they succumb to a lot of subjectivity, but ask anyone that's been around the block a few times and they will tell you that the majority of SharePoint projects fail. Why? Blaming SharePoint for a bad project is kind of like blaming a poor house design on the hammer in the carpenter's hand. SharePoint is a tool, albeit a very complex one, but the result is always the result of its usage and rarely the tool itself. SharePoint has its quirks, the vast majority of products do, and part of a proper SharePoint implementation is to address those quirks as best we can. But that's not where projects tend to fail. The common culprits are the following;

    Scope management

    This is a really tough one to control in a SharePoint project. When the decision has been made to use SharePoint and people soon realize that it has the potential to solve the majority of your organizations problems, many organizations attempt to solve everything at once or completely the opposite, choose to only solve a single problem with SharePoint.

    SharePoint projects are commonly either scoped too large, or too small. Too large a scope, and you are overwhelmed trying to coordinate a very complex solution. You get bogged down with the intricate under wirings of your organization to the point that your project will be stuck in the requirement gathering stages for years. I've seen it. I've seen organizations that have planned for a year and not really yielded any results. On the other hand, organizations that start too small usually create an inadequate solution for growth. So where is the happy medium?

    To properly manage scope within a SharePoint project you need to understand a bit of the big picture of your environment and then focus on one problem at a time. The best place I have found to start is by establishing proper Use Cases for your organization, and not just the ones you think should go into SharePoint. Properly created Use Cases are one of the most powerful architecture tools that we have in IT and is something that every IT department should have on hand already. They truly help focus our solutions to be task oriented and not data oriented. By understanding what our people do or need to be able to do, we can create a better solution for them. After collecting Use Cases, we need to establish an overall vision for the SharePoint solution. This can be a little bit daunting to staff that are new to SharePoint structures. If we look to our Use Cases, we can group the cases that are shared by common roles with the idea being that those roles should be able to complete those tasks as easily as possible. By grouping them, we can establish areas in SharePoint where an employee in that role can go to and complete those tasks. We now have an idea as to the scope of our project - make an area in SharePoint do cases x, y and z. Many areas can be identified with their Use Cases bound to them, and realistic timelines could be better established for each area.

    Requirements Gathering

    Most organizations feel they are pretty good at requirements gathering because they've been doing it for so long. In my experience, they've just established that they don't understand process improvement. It is the question "How can we do this better?" where we establish our daily pursuit of perfection and question our assumed excellence. There is a lot of information elsewhere on different approaches, so I will cut this down as simply as I can. If you are not using an iterative process in your IT projects, you are doing it wrong, plain and simple.

    Have an Architect

    I should expand on this a bit. You should have a qualified SharePoint architect or architecture committee. "We don't have one, so where can we find one?" Good luck. There are a lot of lousy consultants out there for various reasons, but you really need to have a good architect in an IT project who understands the impact of various choices they make. When it comes to SharePoint, I offer this advice. Give your solution architect a business problem you wish them to solve in SharePoint, and ask for 3 different solutions and the pros and cons of each. If they can't do it, RUN! They are obviously under-qualified to be supporting you. A really good architect should be able to rough out more than 3 different solutions.

    Testing

    Wow. This is one of my absolute worst pet peeves of the IT industry. If the only testing you are doing is User Acceptance Testing (UAT), and maybe some regression testing, you have really missed the boat. I have a whole spiel on this topic which I will save for another blog someday. When it comes to SharePoint, test your solutions including your code and go beyond the question of "Does it work", and ask "Does it work well?"

    Use SharePoint to run SharePoint

    This is one of my favourites mainly because it is one of the most overlooked. I often ask my clients how someone in their organization would go about creating a new site, say, to manage a project. The answer is typically that the person making the request would send an email to their manager, where it would eventually be forwarded to IT after a couple of emails going back and forth for approvals and information gathering, an IT staff member would then go and manually create a site for the requestor. My reply usually goes something along the lines of "So, you gather some required information, invoke a workflow with steps for approvals and further data collection, and create a site based on the data. Why isn't that automated in SharePoint?" By using SharePoint to manage SharePoint, you can establish a more consistent structure and daily routine. In the above example, the data can be collected via a list. Workflows can be initiated for the approvals and further data collection and in the end a site could be created automatically as the final successful step in the workflow process. The result would allow IT staff to be involved less, the results more consistent since we reduce the amount of manual steps, and the process to flow much faster. Managing IT requests are also business procedures so don't ignore them when developing your Use Cases for SharePoint.

    Next week part 3 Information Security…

  • Canadian Solution Developers' Blog

    The Challenge is On - Start with 30 minutes a day for a Week

    • 0 Comments

    The shorter version of this interview originally aired on Episode 2 of D³: LIVE & INTERACTiVE, streamed live on January 4, 2012. Watch D³: LIVE & INTERACTiVE every 1st Wednesday of the month and on-demand. More >>

    Continuing with the theme from the last D³: LIVE & INTERACTiVE, starting something, well known community expert, Microsoft MVP, and career coach Miguel Carrasco was on the show to talk about LinkedIn; the opportunities it provides for you to learn, network, and grow; and most importantly, the positive impact it can have on your career. Miguel talks about how to use network connections, recommendations, and groups. He then provides valuable insights from the other side of the desk – the employer. He shares how he (at Imaginet) gets to know job candidates better by checking out their profiles and activity on LinkedIn.

    As a final thought, he introduces a challenge – a challenge that will get you to see the value of LinkedIn.

    Download: WMV (HQ, MQ) | MP4 (HQ, MQ, LQ) | MP3

    Some interesting points

    On LinkedIn in general

    • “LinkedIn is a platform for people to link up and get to know people, especially around the fields that they work in.”
    • “LinkedIn allows you to spread the message of what you’re up to, career-wise, what conferences you’re going to, etc, very effectively, online. It really takes that whole world of user group meetings and conferences and things like that and brings it to the digital realm and makes it [your presence] that much more effective.”
    • “Updating your profile and keeping it up to date (conferences you’re going to, career changes or advancements, new learnings, promotions, and things like that, or switching companies) is incredibly important because it keeps everyone up to date of what you’re doing.”
    • “If you don’t tell people what you’re doing, they’re not going to know [you], they won’t know what you’re interested in…”

    On network connections

    • “By taking connections made via business cards and connecting on LinkedIn, you’ve turned that into an active online business card – you’re able to get [ongoing] information from them.”
    • “If you’re looking for a specific resource or someone (as an example someone who does web development), I can easily use the searching and filtering to find someone and if someone is outside of my network [but they are someone that is interesting], I can very easily add them [to get their ongoing updates].”
    • “You can become that hub/connection point for other people, if you now become that person who connects person A to person B then you can be incredibly successful just by doing that and helping other people get connected.”

    On groups

    • “… you can post survey questions, respond to a survey, ask a question, and 3500 developers [referring to the Canadian Developer Connection group] across Canada are going to get that message. That’s incredibly powerful.”

    LinkedIn from an employer’s perspective

    • “[As an employer] It is incredibly hard to filter resumes because if you think about it, resumes are funny – you are expected to write a resume and talk about yourself and people will always talk about themselves in the best light possible, so while a resume is good to get the points of what people have done, to actually find out how those things went is incredibly difficult (to find out people’s personalities, etc).”
    • “The big things we look for are: we see what they’re up to, are they active in the [online] community, what groups do they belong to, and recommendations…to see what people have said about you, above you [your managers], laterally [peers], below you [your staff], and understand what kind of work the person has done.”
    • “I take a LinkedIn profile much more seriously, in fact, than I would a resume. That’s just the level we’re [the industry] is at today.”

    Miguel’s 30x7 Challenge

    As a last thought, I asked Miguel what advice he has for someone who is not actively using their LinkedIn or has not created a LinkedIn profile in order to understand its value. Miguel’s advice – take the 30x7 challenge. Spend 30 minutes a day for at least 7 days to connect with people, join groups, read questions and answers, post questions of your own, and answer questions if you can. You’ll very quickly be able to see how, through connecting with people, you can learn new things, network, and meet people, ultimately helping you grow your online professional presence and career.

    For more

    Check out Miguel’s 10 LinkedIn Tips and Tricks to Take Your Career to the Next Level.

    Join the Conversation

    Do you consider LinkedIn as important tool to grow your career? What has worked for you on LinkedIn? What hasn’t? Join the conversation and share your thoughts in the Canadian Developer Connection group.

    More on Miguel
    Picture - Miguel CarrascoMiguel Carrasco is a digital marketing thought leader, software developer, architect, team leader, blogger and software development evangelist. Currently, Carrasco is the Director of Imaginet Interactive, and has been a Microsoft MVP for over 4 years. Before that, he was software development manager at E.H. Price, Ltd. for 6 years and chief software architect and head of software development at Anvil Digital. He started his career as solutions developer and Microsoft trainer at Imaginet. He contributes and runs many high profile blogs including MiguelCarrasco.com and Software Development in the Real World.

    Special thanks to Miguel Carrasco for joining me on D³: LIVE & INTERACTiVE.

  • Canadian Solution Developers' Blog

    Want some tips on Release Management?

    • 0 Comments

    EventBannerThursday January 19th, 1PM Eastern time is a free webcast discussing the challenges of Release Management and how you can use Visual Studio features to help.

    Release Management is a tricky business to get right and it’s crucial to the success of a project. There are so many things that need to come together to ensure a release goes smoothly. Applying a few good best practices and leveraging tools that you may already have can certainly help!

    Join Adam Gallant, a Senior Technology Solutions Professional from Microsoft and Claude Remillard the President of InCycle Software as they present The Release Management Challenge and Visual Studio ALM part two of the ALM Webcast series.

    Learn how Release Management practices and tools can help reduce the risks and costs of the go-to-market. Application Release is often complex, brittle and error-prone resulting in delays and many frustrations along the way. Thanks to new tools and approaches, the release process can now be successfully automated and managed. Learn how to integrate Visual Studio 2010-based tools and InRelease to implement fully automated Release Paths for your .Net based applications. We will take you through all the step and tools required from developer check-in to production.

    • Overview of a full Release Cycle
    • Best practices in Release Management
    • Source control and branching strategies with TFS Source Control
    • Build and packaging with Team Build
    • Automated deployments with InRelease
    • Manage test creation and execution with Test Manager
    • Automated functional and performance testing with Visual Studio
    • Automated provisioning of virtual test environments with Lab Manager

    Register today!

  • Canadian Solution Developers' Blog

    Do you hate SharePoint? Part 1 of 4

    • 1 Comments

    If the answer is yes, could your hatred be caused by your local implementation? In this blog series we look at four common problems with SharePoint implementations and how you can address them.

    SharePoint is one of those tools where the line blurs between the developer and the administrator, much like SQL Server and much like SQL Server, SharePoint is everywhere! So even though this post is not about coding for SharePoint, I thought it had some great information that many of us could use when dealing with SharePoint implementations, either as a developer supporting an implementation, or even as an end user (did I mention I use SharePoint at work? Hey boss, you reading this?).  A huge thank you to Neil McIsaac, SharePoint trainer extraordinaire, (bio at the end of the blog) for putting this together. Happy reading!

    SharePoint is an interesting platform and as it grows as a product and with its already incredible adoption, it is an important cornerstone for many organizations. But ask the people that work with it, and you will find a divided love it or hate it passion for the product.

    Why hate it?

    It’s my experience (which dates back to the site server/dashboard days), that many customers have difficulty handling the product and I mean this a number of ways. Here’s the issue:

    SharePoint will amplify your problems.

    So why do we hate it? I would hate anything that made my problems larger. But did SharePoint create the problem? That would be like blaming the carpenters hammer for building a crooked house. The problems are our own doing in the majority of cases. In my experience, the most common problem SharePoint seems to amplify are the following;

    1. Information Management
    2. Project Management
    3. Information Security
    4. Business Intelligence

    Without a doubt, this is not a definitive list of problem areas, but from my experience, these are the key ones that help make or break your experience with SharePoint. So let's take a look at them.

    1. Information Management

    In my mind, this is the biggest problem area and by a considerable margin. Why? Well, if you think about information management, it really encompasses all of the other areas. It is a really broad topic. What is surprising is as an industry whose core revolves around titles such as Information Management and Information Technology; you would think that we'd be better at it. Let's look at an example: The shared documents library within the default team site is fairly widely used by organizations. At face value it seems like a perfect solution for the sharing of documents. After all, it is called the 'shared documents' library.

    When I was a kid, I remember going to the library. I am talking about the real one that had shelves and shelves of books that you couldn't carry around in your pocket. I won't refer to those times as 'the good old days' because they simply weren't. What fascinated me was the organization. I had the power as a kid, to walk in to the library and find various books on a topic that interested me, and to browse some additional information about each book before ever finding the book on the shelf. You might be thinking that I am referring to the ability to sit down in front of a computer and search, but I'm older than that. I'm referring to the cataloguing system called the Dewey Decimal system.

    That's right, no computers. Yet I could search amongst a huge amount of material systematically and rapidly (for the times). 135 years later, and I'm watching organizations fumble with taxonomy and metadata like new borns driving a car.

    So what's the problem?

    If we look at the shared documents library like a real library and a document like a book, if you let your employees simply start saving their document in the library it becomes almost the equivalent of having a library where you open up the front door, and chuck your book into the building. Imagine trying to find that book a week later. For the first hundred books or so, you might be ok, but what about the first thousand? Every time you see the default shared documents library being used, you should picture a real library, with nothing more than a mound of books in the middle of the room and people frantically trying to find things in the pile. The first thing that might come to many peoples mind is that "Well that is what we have Search for!" No we don't. Well, not exactly. Search doesn't organize our data for us; it makes the retrieval faster in larger systems. If you don't believe me, do an internet search for a topic such as Shakespeare and tell me what the most current and correct material is on the subject. So how do we go from a pile of books on the floor, to nicely organized books on the proper shelves? The answer is 2/3rds metadata, and 1/3rd taxonomy.

    Metadata is data that describes data. In the case of the Dewey Decimal system, that data helped to organize books into categories such as fiction or non-fiction, and provide additional tags such as animals, psychology, religion etc. so that you could much more easily identify basic keywords that described the material. In the library system, that information is collected, identified, and then recorded when the book is first brought into the library so that the material can be properly placed as well as be identified within a cataloguing system to be more easily retrieved. Do your SharePoint libraries behave like that?

    Taxonomy is the organization of metadata. In the example of the library, who determined that fiction and non-fiction should be one of the primary organizational metadata to categorize books? Why not hard cover and soft cover? Within your own organization, the determination of metadata and the taxonomy surrounding it is purely yours. It needs to reflect your organizational goals, which is why companies like Microsoft can't exactly make that an out of the box feature. YOU have to address it, and unless you like sorting through a million books, you need to address it yesterday.

    If you haven't already addressed it, let me help you with a few tips.

    Focus on process

    Data is a byproduct of process. Data simply wouldn't exist if it didn't have somewhere to go or something to be done to it. Knowing and understanding the key processes in your organization is a must. What can be more difficult is the identification of key areas where your processes will likely change, or where you would like to change in the future. The reason we need to identify this as best as we can is so that we can better lay the ground work now. In other words, after we know what the current process is, we need to ask "What is likely to change? What additional information might be needed to identify problems or opportunities that we could leverage to further improve the process?" As an example, if we examine a simple project management site where we record change requests and have their statuses updated, could you easily identify the total amount of time it took to go from request to resolution? Could I easily identify the chain of events that happened after receiving a change request? And is either of those 2 details important to me or will be important to me in the future? Questions such as those will help take you beyond simply recording a change request and marking it as 'resolved'. Better metadata = better taxonomy = better processes.

    Have Multiple Taxonomies

    Taxonomy is fairly simple in concept in that it is leveraged metadata. I think I've already established the importance of having some type of taxonomy. Although what I am about to say is really two versions of the same thing, for the sake of the SharePoint argument I am going to separate the taxonomies into 2 types; Navigational taxonomies and categorical taxonomies. The reason for the separation is so they can be planned according to their primary usage in that users are either finding the data they need, or working with the data to make decisions. By focusing on their usage, we can hopefully make a better taxonomy.

    With navigational taxonomies our focus should be on the Use Cases that you have established for the project. By focusing on what people do with the site, we can streamline their access to their data. You won't be able to establish that unless you understand what people do with your site, and Use Cases are the best way to establish that.

    You should also support more than one navigational taxonomy since there isn't only one way to complete a task. The goal of the menu navigation should be task focused, so how do we add a second navigational taxonomy? By adding more menus? No. In SharePoint, we can add these extra navigational taxonomies through the introduction of a Site Directory focused site, and/or through the use of custom search pages and results. Both of these options are relatively easy to implement and will allow your users a second and or third way to find a location in your growing architecture.

    Categorical taxonomy can be a bit harder to implement since it deals directly with content. We need to collect metadata on content to better describe it, but what should that metadata be? How should it be best structured? Great questions and the first answer lies within understanding the various processes surrounding your data. How it will be used, what decisions need to be made on it, etc. The metadata from this is typically well understood and most organizations have little trouble in establishing what the metadata is rather they have trouble in establishing how to best implement it within SharePoint.

    Let me give you some tips in establishing categorical taxonomies;

    Use Content Types

    Content types are a way of establishing a common structure that can be shared amongst lists and libraries. Use them if you want to establish some consistency.

    Use the Managed Metadata Service (MMS)

    You can think of the MMS as a place to store the common vocabulary for your organization which can be used and shared in a number of ways. Another advantage is that you can disseminate the administration of the terms to the people that use them and not IT. Be aware that the MMS interface within the Document Information Panel is only supported within Office 2010.

    Support Views

    Views are a great way to change to look and organization of a list or library. They work by changing the display of the data, such as sort order, which columns are shown etc. Good views require good metadata.

    Support Soft Metadata

    Hard metadata is metadata that directly fulfills a business requirement. In other words, it really needs to be there and usually in a very structured way where we control the terms and their usage. Soft metadata on the other hand is metadata that doesn't have a direct business relationship but can offer some insight to the content. A good example would be in the way that we tag photos. Quite often we will need some hard metadata such as the date that the photo was taken and the location, but we want to support soft metadata so that users are able to tag the photo with open terms, such as 'wildlife' or 'Christmas Party'. But why do we want to support this? To which my answer is 'Do we really want to turn away free information?' Granted there is a minimal support cost to this. In the end, we have content that is simply more usable, and with any luck, could be leveraged one day, so I often tout that the support costs are minimal with a potential for much gain, so why not. SharePoint 2010 can implement this many ways including using keywords, and/or open MMS term stores.

    Archive

    This has been a thorn in my side almost wherever I go. We work in the information age and are so-called masters of information technologies, so why are we so bad at archiving strategies? A common dialog I often have with my clients goes something like this: "Our data retrieval is slow because we have a lot of it, over a million rows.", "Why do you have over a million rows in your table?", "We need to keep our data for X years.", "Did anyone say you need to keep it in the same storage medium as the daily production data?", "Ummm, no.". Archiving data does not have to be offline, it can be online and accessible, it simply has a different purpose than your live, day to day, data, most importantly it should be separated. Every time you create a new location where users can add content, whether it be a list, or a library, or a database, or a file share, you should ask yourself "How does this content retire?" and "When does it change its purpose?" After that, automate the process. Without an archival strategy you are setup for failure, you just don’t know when. By accumulating data over time, you cause the live, day to day, data to slowly become harder to use when it is left in the same storage medium. Retrieving data will be slow, and it will often get in the way of users trying to find the correct content while they are trying to accomplish their day to day tasks.

    Next week Part 2. Project management…

    NeilMcIssacNeil McIsaac (MCPD, MCITP, MCTS, MCSD, MCDBA, MCSE, MCSA, MCT) is an accomplished educator, consultant, and developer who specializes in enterprise application development and integration, application architecture, and business intelligence. As an instructor, Neil shares his knowledge and years of experience with students on a wide range of topics including SharePoint, BizTalk, SQL, .NET development, and PowerShell. He recently did an interview about SharePoint in the Cloud with .NET Rocks

    Neil is an owner of BlueGreen Information Technologies Inc., and has over 18 years experience working in the IT industry in both the private and public sectors. His focus on large scale application development and integration keeps Neil involved almost exclusively with enterprise level companies. However, he also works in every level of government.

    Neil lives in Moncton, New Brunswick Canada. In his spare time, Neil enjoys downhill skiing, golf and a new motorcycle.

  • Canadian Solution Developers' Blog

    Ask a Trainer: Free resources to help you learn SharePoint

    • 0 Comments

    FAST university has free webcasts on Enterprise Search and other SharePoint topics

    At the MCT Summit in October, I had a chance to chat with Larry Kaye, a Microsoft Certified Trainer. Larry works with FAST University. I hadn’t heard of that organization before, so I asked Larry to fill me in on what they do. I’ll summarize the key offerings here, but if you don’t feel like reading, just watch my interview with Larry below (apologies for the camera shake, I am prone to that, I think I should get a tripod)

    FAST University offers training and resources on SharePoint for administrators and developers. Although they cover other topics as well, they offer a lot of training on search features. They have classroom training, and just in case there are no classroom dates or locations convenient for you, they also offer virtual and e-learning courses.

    If you register at their website, you can see a full list of the resources, and access a number of free webcasts! Including the following which I thought might be of interest to SharePoint developers:

    • Architecture of Search in SharePoint 2010 – learn the architecture of search in Microsoft SharePoint 2010 and FAST Search Server 2010 for SharePoint.
    • Business Connectivity Services – Creating a .NET Connectivity Assembly in Visual Studio – learn how to connect SharePoint to external data sources such as SQL Server databases, SAP applications and Web services.
    • FAST Search for SharePoint 2010 – Property Extraction – Learn about the property extraction feature that identifies information such as person names, company names, and geographic names and locations in documents. These properties help you find the “who”, “what”,”when”, and “where” of each document.
    • Fast Search Server for Internet Sites (FSIS) with Content Transformation Services (CTS) – Learn about Content Transformation Services, how to build flows and sub-flows and tips and techniques for building flows in Visual Studio.
    • Search Reporting and Analytics with FAST Search Server – An introduction to Search Reporting and the Search administration tools.

    Here’s Larry talking about FAST University and their courses.

  • Canadian Solution Developers' Blog

    2012 Will Sure Get You Starting Something New

    • 0 Comments

    Happy HolidaysAs 2011 comes to a close and 2012 about to begin, now’s the time to start thinking about starting something new.

    Whoa! I can’t believe it. 2011 is already coming to a close. Where did this year go? Looking back, there were some really amazing things that happened.

    Just off the top of my head:

    But, enough talking about this year. Let’s focus on next year! I can’t talk about the details yet, but there is some serious awesomeness coming your way in 2012. But let’s focus on you - what do you have in store for yourself in 2012? As I always say at this time of the year — “Don’t think about what you didn’t do this year and let it get you down. Rather, think forward. Think about your aspirations and then START SOMETHING!”.

    DevCubedCubeNeed some help? Tune in on January 4 to Developers, Developers, Developers: LIVE & INTERACTIVE. Windows Phone experts Atley Hunter, Barranger Ridler, and Paul Laberge will be on the show to chat about Windows Phone and the Developer Movement. Plus: Miguel Carrasco, well known community personality and career coach, talks about LinkedIn and how it can help you start something new in your career. All LIVE and INTERACTiVE.

    Enjoy the holiday season, and have a safe, happy, and geeky new year!

  • Canadian Solution Developers' Blog

    A Whole Week of Windows Azure Training Opportunities

    • 0 Comments

    This week is jam-packed with opportunities to learn about and get started using Windows Azure. If you haven’t had a chance to look into Windows Azure yet, take some time this week and give it a try by attending these LIVE ONLINE events:

    Details on Windows Azure Camp Online >>
    Details on Learn Windows Azure >>

    image Getting Started with Windows Azure
    LIVE | 12:00 PM ET | Add to Outlook >>
    In this session, You will see how to get started with the Windows Azure, the SDK, and tools to build your first application. You will also learn the key concepts of Windows Azure Compute.
       
    image Speaker Photo ([Left to Right] Scott Guthrie, Dave Campbell, and Mark Russinovich)Learn Windows Azure
    LIVE | 9:00 AM PT | Add to Outlook >>
    LIVE from the Microsoft Redmond Campus, join to learn how to get started building applications for the cloud from Microsoft technical leaders Scott Guthrie, Dave Campbell, and Mark Russinovich.
       
    image Understanding SQL Azure
    LIVE | 12:00 PM ET | Add to Outlook >>
    In this session, you’ll get an overview of SQL Azure, discover the differences between SQL Azure and on-premise SQL Server, and get tips and tricks needed to get started developing new database applications or migrating existing SQL Server databases to the cloud.
       
    image Application Scenarios
    LIVE | 12:00 PM ET | Add to Outlook >>
    In this session you’ll see how you can utilize Windows Azure for several common scenarios including web, technical computing, devices, social games and social apps. You’ll explore the various Windows Azure Toolkits and samples that you can use to build your next cloud application.

    Then, continue your learning next week with additional LIVE sessions:

    image Windows Azure Storage
    LIVE | 12:00 PM ET | Add to Outlook >>
    Windows Azure Storage is a highly available and massively scalable storage service in the cloud for storing a variety of forms of data. In this session, you’ll learn how to get started using Windows Azure storage blobs, tables, queues, and drives.
       
    image Securing, Connecting, and Scaling
    LIVE | 12:00 PM ET | Add to Outlook >>
    In this session, you’ll discover how to use Windows Azure services for authorization and authentication, sending messages to tiers of your application, and how to scale in order to realize the true benefits of the Cloud.

    Details on Windows Azure Camp Online >>
    Details on Learn Windows Azure >>

    If you’re not able to make any of the above, don’t worry. Both the Windows Azure Camp sessions and the Learn Windows Azure sessions will be recorded and posted later for on-demand viewing. Stay tuned to the blog for information on how to access the recordings.

    Happy Learning!

  • Canadian Solution Developers' Blog

    Facebook is fun with friends, but LinkedIn can help you get a job!

    • 0 Comments

    I know most of you are on Facebook. But I know a lot of us are still trying to figure out exactly how to use LinkedIn. I wanted to make sure you aren’t missing out on a tool that can help you find work opportunities.

    Facebook is generally regarded as a tool for keeping in touch with friends near and far, it is also used by companies to share information about promotions and offers. LinkedIn is generally regarded as more business oriented. It has become a tool used by recruiters to find potential employees and a way for professionals to network with other professionals through groups and connections. I also get emails through LinkedIn asking me if I know anyone suitable to fill different job positions, or if I am interested in a specific opportunity.

    I go to Facebook to make comments on my friends photos, I accept friend requests from people I have met over the years and former classmates.

    I go to LinkedIn to share technical resources, to find out about technical events going on in the community, and to build my professional network. It is interesting how often I will be presenting a topic, and will walk around the room and spot someone perusing my Linked In Profile. Creating a Linked In account and setting up your profile is like creating an online resume. There’s a great blog that provides some stats and quotes about how employers use LinkedIn during the hiring process.

    Here are ten tips to help you create a suitable LinkedIn profile in no particular order

    1. DO fill out the summary in your profile, treat it as a mini resume that highlights your skillset and experience, put detailed information about past job positions under experience
    2. DO select some core skills in the skills section
    3. If you are bilingual, DO consider creating your profile in both languages
    4. DO set your public profile URL so you can link to your online resume in emails when you apply to jobs or are introducing yourself to another professional
    5. DO keep the tone professional in all your status updates
    6. DO link to your blog if it is relevant to your professional skills.
    7. If you tweet, DO NOT automatically have all your tweets appear as linked in status updates, use a client that allows you to select which tweets go to linked in with a #li hashtag or some other optional selection
    8. DO try to get 3 recommendations from other people on LinkedIn to help you get a 100% profile
    9. DO start building your connections and network
    10. DO join technical and professional groups on LinkedIn to stay connected and informed (I recommend Canadian Developer ConnectionSmile )
  • Canadian Solution Developers' Blog

    New SQL Azure lab available (How to move data to SQL Azure)

    • 0 Comments

    SQL-Azure_rgbThe SQL Azure labs site is a great place to explore and play with SQL Azure! You are probably already using SQL Server and may be working with or wondering about SQL Azure. Often when I want to explore a technology, I find reading a blog post or MSDN article isn’t enough to make me comfortable. I need something more tangible to help me grasp a new tool or offering. The SQL Azure team provides a series of videos and labs to help you explore and master different SQL Azure technologies.

    There are a number of labs on the SQL Azure site, but I just want to take a minute to point out one in particular that just went live this week.

    The Microsoft Codename “Data Transfer” Lab provides an easy-to-use Web application for importing data into SQL Azure or Blob storage. Learn how to transfer structured data and files into Azure using any standard modern browser. One of the goals for this lab is to take the complexity out of typical operations, such as loading structured data in CSV and Excel files into SQL Azure. The lab service provides simple parsing, type discovery and conversion over files in a wizard-like experience.

    This is a new lab, and the SQL Azure team wants to learn from you! They will use your feedback to shape the service in the future! So if you get a pop-up questionnaire please take the time to answer, you could identify a feature to include in the next release! You can also post on the SQL Azure Labs Support Forum to give feedback as well.

  • Canadian Solution Developers' Blog

    Are you fighting or helping your QA team?

    • 0 Comments

    armwrestling

    QA is an essential part of the development lifecycle. The QA team tests your code and then the bugs they report return to you to get fixed. Sometimes that relationship can be a challenge as we argue over what is really a bug, try to reproduce the defects identified during QA, and determine the severity of each defect. Improving the relationship between QA and development will help your application development. Join Yaron Tsubery, president of the ISTQB, in Toronto Thursday evening  November 23rd, to learn more about how you can work better with your QA team.

    Yaron Tsubery is the CEO and Founder of Smartest Technologies Ltd. He will use his experience on complex projects with strict exit criteria and demanding deadlines to help you speed up your application lifecycle through better collaboration between the QA and development teams.

    SELA Canada & Microsoft Canada present:

    Shorten Release Cycles by Increasing QA and Developer Collaboration

    Many (if not all of us) are searching for the best ways to do their job in order to improve the performance and achieve more. Yes, this is the era which we all are living – many results (which always must be the best results) shall be presented in a very short time – what business persons call TTM (Time To Market). One of our tasks as test engineers or as test managers is to find the path(s) that will lead to effective results based on efficient processes; in the 1st case we are searching for results in terms of better and improved test coverage and in the 2nd case we are searching for large scale, efficient and effective defect detection, both better to be achieved in a short time.

    Many ways are suggested and visible for implementation of both the above paths; few methods are developed for them, but my objective is to present a parallel aspect, related to 'soft skills' and maturity elements, that can accelerate the time to market. I'll present collaboration challenges and actions required to be taken by both the QA and the Development departments. Questions like: How to do it? What is expected from us? Who is leading the collaboration? What's in it for me as a developer and/or as a test engineer? Where (if at all) are the borders between the departments? Tools to measure the progress and the success, and more will be tackled. The practice is focused on projects of complex systems, delivered to telecommunication companies under restricted rules and stiff exit criteria elements – which made this more complex and challenging to handle along with tense delivery timelines. You'll be able to understand what the impact that we achieved through this practice was.

    Register today because you and I both know just telling the QA team “If I can’t reproduce it, I can’t fix it” isn’t really the best answer Smile

  • Canadian Solution Developers' Blog

    SQL Server Roadmap to Denali Webcast Series

    • 0 Comments

    imageSQL Server Denali, so many great features for reporting, high availability, business intelligence, and more. If you haven’t had time to sit down and start learning about what’s new in the latest release of SQL Server, join Microsoft Canada for a weekly webcast series to help discover and understand the benefits of the latest release of SQL Server. Starting on November 9th and continuing every week until December 7th at 1:00 pm EST, you can join in on a series of webcasts all about SQL Server Denali.

    Enterprise Information Management November 9, 2011, 1 – 2pm EST

    Presented by Darren King, Technical Specialist – Data Platform, Microsoft Canada Inc.
    An overview and demonstration of the technology and a chance to see for yourself how SQL Server can empower your EIM strategy today

    BI Semantic Model November 16, 2011, 1 – 2pm EST
    Presented by Howard Morgenstern, Technical Specialist – Business Intelligence, Microsoft Canada Inc.
    Learn how organizations can scale from small personal BI solutions to the largest organizational BI needs with the BI Sematic Model.

    SQL Azure- Reporting Services November 23, 2011, 1 – 2pm EST
    Presented by Richard Iwasa, Senior Consultant, Solution Architect, Ideaca
    Learn how SQL Azure Database can help you reduce costs by integrating with existing toolsets and providing symmetry with on-premises and cloud databases. Discover what SQL Azure can do for you.

    Appliances November 30th, 2011, 1 – 2pm EST
    Presented by Doug Harrison, Solution Specialist – Platform, Microsoft Canada Inc.
    An overview of Microsoft's vision for appliances details on the workloads supported today and in the future.

    Mission Critical Confidence – Enable mission critical environments December 7th, 2011, 1 – 2pm EST
    Presented by Marc Theoret, Technical Specialist – Data Platform, Microsoft Canada Inc.
    Find out how to enable Mission Critical Environments (focusing on availability and performance) with manageable costs.

    As an added bonus, attendees that register and attend all five (5) modules of the webcast will receive a SQL Server Code Name "Denali" USB key and a copy of Windows Azure Step by Step (May 2011) to be mailed 4-6 weeks after the final webcast. Limit one per person.

    Attend the webcasts, download the Denali evaluation and get yourself up and running with SQL Server Denali. Register today!

Page 1 of 5 (108 items) 12345