Here is a small method to help you determine if a User is a member of a specified Team:

Just a reminder that today is the last day to register for next week’s workshop:

JavaScript Development with Dynamics CRM

Join while you can.

This turned out to be a very valuable article.


Email Router configuration error "Incoming Status Failure: No results were found"

In our case, it was because the mailbox was hidden.



  • Dynamics CRM 2013
  • Exchange 2007

Hi Everyone,

Just wanted to send you a reminder that next month we are holding two workshops for Dynamics CRM developers:

Plugin Development with Dynamics CRM

JavaScript Development with Dynamics CRM

This may be the last offerings of these workshops for the remainder of the year.

Let me know if you have any questions.

Thanks, Mitch

Just wanted to send everyone a final note about the CRM Architect class that starts next week.

You may register using the following link:

Registration ends at 1:00pm CDT on Monday, August 25th.

The purpose of this class is to discuss the basic technical areas of expertise and skillsets that must be developed on your path to becoming a Dynamics CRM architect. In part, if not in full.

Much of the class involves group discussions for scenarios based on the requirements of real–world Dynamics CRM customers. We will discuss the requirements, the options, and finally the proper solution.

Finally, we will actually design, from scratch, a Dynamics CRM system for two separate customers.



Week 1: August 26th and August 28th

Week 2: September, 2th and September, 4th

Week 3: September, 9th and September, 11th

Week 4: September, 16th and September, 18th

Week 5: September, 23rd and September, 25th

Week 6: September 30th and October 2nd


8:00am–10:00am CDT (UTC -5)



$2,495 per student




Week 1: Introduction to the Dynamics CRM tools and technologies.

The two sessions of the first week will be exploring the tools and technologies that an architect needs to know and understand in order to properly select solutions for a given problem or requirement. The Tuesday session will focus on server–based technologies while the Thursday session will be focused on client technologies.


Week 2: Feature–based scenarios.

Week 3: Feature–based scenarios.

Week 4: Feature–based scenarios.

These sessions will consist of scenario–based training where we will review the requirements for a specific aspect of a customer’s CRM system, discuss the alternatives, and select what we feel is the proper solution to the problem. Each session will usually cover four scenarios but that will vary depending on the breadth of the requirement.


Week 5: Case study and system design. Scenario #1: Sarah’s Personal Concierge Service

Sarah has been a personal concierge for the past five years and would like to grow her business, bring on additional employees, while maintaining the personal feel that has made her in such demand.


Week 6: Case study and system design. Scenario #2: Billy Joe’s Oil and Gas Works

Billy Joe is an up and coming wildcatter who wants to build an oil and gas exploration company using cutting–edge technology and processes so he can get the most productivity with the lowest overhead possible.

Please let me know if you have any questions

I was trolling the Xamarin.Forms forum when I saw this question:

Can you limit a Slider to only allow integer values? (Hopefully snapping to the next integer)

I dug around a bit I found this solution on StackOverflow.  I did a quick and dirty conversion to Xamarin.Forms, but wanted to make it a little better, more Xamarin.Formy.

So, here is the answer to this question:


ExtendedSlider Class

The first thing we need to do is create a new Slider class that has our “stop” value, which we do using the following code:

public class ExtendedSlider : Slider
    public static readonly BindableProperty CurrentStepValueProperty = 
           BindableProperty.Create<ExtendedSlider, double>(p => p.StepValue, 1.0f);

    public double StepValue
        get { return (double)GetValue(CurrentStepValueProperty); }

        set { SetValue(CurrentStepValueProperty, value); }

    public ExtendedSlider()
        ValueChanged += OnSliderValueChanged;

    private void OnSliderValueChanged(object sender, ValueChangedEventArgs e)
        var newStep = Math.Round(e.NewValue / StepValue);

        Value = newStep * StepValue;

All this really does is converts the current slider value from a double, into an integer.


Demonstration Page

Here is a fully functional demonstration page:

public class SliderDemo : ContentPage
    public SliderDemo()
        var sliderMain = new ExtendedSlider
            Minimum = 0.0f,
            Maximum = 5.0f,
            Value = 0.0f,
            StepValue = 1.0f,
            HorizontalOptions = LayoutOptions.FillAndExpand,

        var labelCurrentValue = new Label
            HorizontalOptions = LayoutOptions.CenterAndExpand,
            BindingContext = sliderMain,

                                        new Binding("Value", BindingMode.OneWay, 
                                            null, null, "Current Value: {0}"));

        var grid = new Grid
            Padding = 10,
            RowDefinitions =
                new RowDefinition {Height = GridLength.Auto},
            ColumnDefinitions =
                new ColumnDefinition {Width = new GridLength(1, GridUnitType.Star)},
                new ColumnDefinition {Width = new GridLength(1, GridUnitType.Star)},
                new ColumnDefinition {Width = new GridLength(1, GridUnitType.Star)},
                new ColumnDefinition {Width = new GridLength(1, GridUnitType.Star)},
                new ColumnDefinition {Width = new GridLength(1, GridUnitType.Star)},

        for (var i = 0; i < 6; i++)
            var label = new Label
                Text = i.ToString(CultureInfo.InvariantCulture),

            var tapValue = i; // Prevent modified closure

            label.GestureRecognizers.Add(new TapGestureRecognizer
                Command = new Command(() => { sliderMain.Value = tapValue; }),
                NumberOfTapsRequired = 1

            grid.Children.Add(label, i, 0);

        Content = new StackLayout
            Padding = new Thickness(10, Device.OnPlatform(20, 0, 0), 10, 10),
            Children = { grid, sliderMain, labelCurrentValue },
            Orientation = StackOrientation.Vertical,
            HorizontalOptions = LayoutOptions.FillAndExpand,
            VerticalOptions = LayoutOptions.FillAndExpand

If anyone has a better way of doing this, then please let me know.

I’ll probably add this to the Xamarin.Forms Labs project sometime this week.


I am holding another Dynamics CRM Plugin Development workshop next month. The goal of the class is for me to teach you everything I know about plugin development.


Monday, September 15th through Thursday, September 18th. 1:00pm – 5:00pm CST each day.



Online using GoTo Meeting



This is a hands-on workshop with each student provided their own virtual development environment for the duration of the class



$895 per person (multi-student discounts available)

Note: Due to the interactive nature of this workshop, it will be limited to 10 students.

Eventbrite - Plug-in Development with Dynamics CRM (September)



  • Plugin architecture and design
    • The Dynamics CRM execution pipeline
    • The how, why, and where of plugging into Dynamics CRM
    • Performance considerations
    • Working in the sandbox
  • The development environment
    • Setup
    • Source control
    • Working in teams
  • Deploying plugins
    • To CRM
    • In a solution
    • To CRM Online (if applicable to the student population)
  • Debugging plugins
    • Synchronous vs. asynchronous
    • Full-trust vs. sandboxed
  • Custom activity architecture
  • Design features
  • Deployment
  • Asynchronous process monitoring
  • System job cleanup and maintenance
  • Open-lab time
  • Upgrade scenarios
  • Code-recovery of lost source plugin code

Thanks to our virtual development environments, the majority of our time will be spent actually designing and developing real-world plugins. Think labs. Lots and lots of labs.

Students will also be asked to bring one project with them that they would like to create while additional resources are available to them. This is strictly optional, but it is available.

In addition to the workshop materials, each student will receive additional tools and code templates to help increase their productivity as a Dynamics CRM plugin developer.

Finally, all students are free to keep any work produced during their lab-time as well as the tools and templates used in class.

Eventbrite - Plug-in Development with Dynamics CRM (September)

I am very excited to announce that my workshop on Dynamics CRM JavaScript Development is now ready. The goal of the class is for me to give you a very thorough introduction to using JavaScript within Dynamics CRM.


Monday, September 8th through Thursday, September 11th. 1:00pm-5:00pm each day.


Online using GoTo Meeting.


This is a hands-on workshop with each student provided their own virtual development environment for the duration of the class.


$895 per person (multi-student discounts available)

Note: Due to the interactive nature of this workshop, it will be limited to 10 students.


Eventbrite - JavaScript Development with Dynamics CRM (September)


Student Prerequisite Knowledge:

  • Each student must have working knowledge of Dynamics CRM 2011.
  • Knowledge of JavaScript is also required.

Note: For those students that have not worked with JavaScript previously, a short introduction webinar will be conducted the week of September 1st (actual date TBD). Students attending this webinar will be expected to have completed the accompanying self-study materials before Monday's class begins. Everyone must be ready to run on Monday for the main class.


Each classroom day will run from 1:00pm to 5:00pm (CST) with the virtual environments available for student use until midnight of September 4th.

And thanks to our virtual development environments, the majority of our time will be spent actually developing JavaScript solutions for Dynamics CRM.

Think labs. Lots and lots of labs. And homework. There will be homework.

We'll cover the following topics:

  • Creating a development environment
    • Setup
    • Source control
    • Working in teams
    • Working with Visual Studio
  • Working with Web Resources
  • Working with Solutions
  • Working with Forms
    • JavaScript libraries
    • Form events
    • Form Event Handler Execution Context Reference
  • Working with the Xrm.Page Object Model
    • Working with Collections
    • Data operations
    • Tabs and Sections
    • Working with Controls
    • Working with iFrames
    • Working with Navigation Items
  • Ribbon button and JavaScript connection
  • Opening Dynamics CRM Forms and Web Resources via JavaScript
  • Using the XrmSrcToolkit to CRM-related data operations

We will be using about 75 of the methods found in the Xrm.Page object model so you should leave class with a fairly good understanding of where things are and how to access them.

If we have time, we will also cover some of the freely available JavaScript components that can be used to aid in your development efforts and to increase your user's productivity.

Students will also receive a draft copy of my upcoming book on Dynamics CRM JavaScript development along with sample code and utility web resources that should help you kick start your CRM JavaScript development efforts.

Please email me if you have any questions: mitch at crmaccelerators dot net

Eventbrite - JavaScript Development with Dynamics CRM (September)

Hey everyone, I am rolling off a long-term gig in California and am looking for new projects.

Give me a shout if you’ve got some interesting Dynamics CRM development or architecture underway.

Thanks, Mitch

So I am coming out of stealth-mode to announce what I think we all can agree is a “game changing application,” that runs across iOS, Android, and Windows Phone.


Announcing Beer:30



I had planned to submit Beer:30 for this year’s Xammy Awards but I just didn’t have time to finish all of the bells and whistles I have planned.  So, this is my non-entry.

I just wanted to other contestants how close they came to being a no-show since I surely would have won multiple Xammy categories.

So, without further ado, here is why Beer:30 will be the breakthrough application of 2014:


Beer:30 is Transformative

The sole purpose of Beer:30 is to tell you where in the world it is 5:00pm, what kinds of beer are probably being consumed, and otherwise give you that smallest of excuses as to why you should leave work early.  Transformational? You bet!


Beer:30 is Innovative

NDA. Sorry.


Beer:30 is Revolutionary

Think about it.  Beer: The fuel of revolutions.  Now at your fingertips.  What is not to love about that?


Beer:30 is Versatile

As @JosephHill mentioned, it is indeed a BYOB world out there and one must come prepared.  Who knows, today Beer:30 is on your phone; tomorrow it could be powering off your work computer and preprogramming you in-car navigation system to deliver you to your favorite pub.  The possibilities are endless.

Note: These are examples only!  Please do not ask us about future developments. Those are still under NDA…


Beer:30 is Descriptive

Now this is where it get’s really scary.  So I have been working on Beer:30, off and on, on the iOS platform for about 5 years.  I think.  Actually, I have no idea, but a long time.  And yes, I know, that is a long time, but perfection cannot be rushed.  That and the fact that time zone calculations are horrible.

Anyway, a couple of weeks ago, I converted the whole damn thing to Xamarin.Forms in about an hour.  This is including research time to find a really cool PCL-based date library that would work across platforms.


In Conclusion

So that is about it folks.  Stay tuned and hopefully my perfectionism and product schedule will coincide and I will have Beer:30 finished in time for Evolve 2014.

See you in Atlanta!

Sign up for our new KnowledgeBits service and get news, tips and tricks and more, delivered straight to your inbox.