Training and Certification

Rubel Khan's Blog

Learning Snacks: Microsoft Exchange Server 2010

Posted by Rubel Khan on November 9, 2009

If you want to learn more about Exchange Server 2010 but do not have much time, try Learning Snacks. Learning Snacks are short, interactive presentations on popular topics. Each Snack is created by Microsoft Learning experts and delivered by using innovative Microsoft Silverlight technology. Each Snack includes various media, such as animations and recorded demos. At the end of each presentation, you can view additional Snacks, learn more about the topic, or visit a related Web site.

High Availability and Storage in Microsoft Exchange Server 2010
Learn about the high mailbox availability in Exchange Server 2010 and find out how the improved database recovery and storage features help organizations better manage their messaging environment.

Unified Messaging in Microsoft Exchange Server 2010
Discover how unified messaging works and get an overview of its architecture. You also will learn about voice-mail integration in Exchange Server 2010.

Note To view Learning Snacks, you need to install Microsoft Silverlight and enable pop-up windows.

Posted in Exchange Server, Learning Snacks | Tagged: | Leave a Comment »

Great Article: Seven Rules For Succeeding As A Brand-New Leader By Michael D. Watkins

Posted by Rubel Khan on November 9, 2009

Seven Rules For Succeeding As A Brand-New Leader

Michael D. Watkins

You must do certain things even before you start the job.

The actions you take during your first few months in a new role have a major influence on whether you ultimately succeed or fail. Transitions are pivotal times, in part because they are when everyone expects change to occur. They’re also times of great vulnerability, when new leaders lack established working relationships and detailed knowledge of their new roles. If you fail to build momentum during your transition, you will face an uphill battle from then on.

What does it take to make a successful transition into a new role? My research has led me to compile seven rules that can help any newly appointed leader take charge more effectively:

Rule 1: Leverage your time before entry.

Your transition begins during the selection process when you’re being picked for the job, not when you formally enter the organization. If you fail to use the time before your move effectively, you’ll undermine your ability to get on top of the job right from the start. It’s a priceless period for absorbing information about your new organization and beginning to plan. Wise new leaders therefore use the time between the decision to take a new position and the formal start date to jump-start the transition process.

Rule 2: Organize to learn.

Taking on a new role can feel like sailing into a dense fog. You can see only a short distance and must exercise great caution as you strive to get your bearings. Because expectations for you are high and your time is precious, you must be an active learner. This means organizing to learn as efficiently as possible everything you need to learn about your new role. Plan early on to focus on three distinct types of learning: technical, political and cultural. Technical learning means understanding products, markets, customers, strategy and operations. Political learning means assessing how decisions are made, understanding who is most influential and identifying key sources of power. Cultural learning means understanding your new organization’s norms and values, its accepted ways of working and all the habits that make its character unique.

Rule 3: Secure early wins.

By the end of your first few months on the job, you will have to have made substantial progress energizing people and focusing them on solving the business’s most pressing problems. It is crucial that people see momentum building from the start. Tangible improvements motivate employees, encouraging them to try for still more and better. So plan to secure early wins by identifying significant problems that can be tackled in relatively little time. Their solutions must yield identifiable operational and financial improvements in performance.

Rule 4: Lay the foundation for success.

Early wins will help you get off to a good start, but they won’t suffice for continued success. You must also lay a foundation for the deeper changes that can bring sustained improvement in your organization’s performance. Your efforts during the first six months to lay that foundation must focus on building the team, transforming key structures and processes and developing all the skills you yourself will need to achieve your goals.

Rule 5: Construct a personal vision.

To get people to buy in and go the extra mile, you need to conceive a personal vision for your organization and make it a shared vision. You do this through cycles of observation, imaginative visualization and clarification. The new leaders best able to formulate a vision of what they want to accomplish are those who observe most carefully how their new organizations work. Thoughtful observation of the situation at hand, and hard-headed assessment of potential threats and opportunities, enables you to imagine–and communicate–what might be.

Rule 6: Build alliances.

You can only transform an organization if powerful people and groups find that helping you do so is in their own interest. New leaders can learn and plan, but they can achieve little on their own. Armed with knowledge of the political landscape, reach out and consolidate potential sources of support. Strive to convince those who can be convinced. Early in the transition, many people will be neither dedicated supporters nor implacable opponents. They will be indifferent or undecided–and, hence, persuadable.

Rule 7: Manage yourself

Finally, knowing and managing yourself is as important as knowing and managing the organization. The physical demands of a transition are high as you log endless hours traveling and attending meetings and face ever more work. The emotional demands are also great as you try to cope with not only challenges at work but also disruptions in the usual rhythms of life at home. You must therefore prepare for the emotional burden of transition by developing ways to maintain your equanimity. The key is to build the right networks for advice and counsel that can help you to exercise clear-headed judgment, stay focused and maintain emotional evenness.

It’s up to you.

Success in putting these seven rules into practice won’t guarantee a smooth transition. Even the best-laid plans can go awry. But care in planning and carrying out a transition can substantially improve your chance of success–and your chance to get opportunities to make further transitions in the future.

Michael D. Watkins is the author of Your Next Move: The Leader’s Guide to Navigating Major Career Transitions. He is co-founder of Genesis Advisors, a leadership development firm in Newton, Mass., that specializes in transition acceleration programs and coaching. His previous books include The First 90 Days: Critical Success Strategies for New Leaders at All Levels and The First 90 Days in Government: Critical Success Strategies for New Public Managers at All Levels.

Posted in Free Training | Tagged: , | Leave a Comment »

Deploying Microsoft Dynamics CRM 4.0

Posted by Rubel Khan on October 31, 2009

At a Glance:

  • Software components of a CRM system
  • The development lifecycle
  • Elements of a CRM solution
  • A look at multi-tenancy
If you’re used to thinking of CRM as just a sales and marketing management tool, think again. Microsoft Dynamics Customer Relationship Management is a platform for developing applications that manage and track information and processes related to real-world objects. Those objects might be customers, but they can also be just about any entity (and related activities) that you need to manage.
As with any large-scale custom solution, there are some basics related to deployment that need to be understood. In this article, I am going to cover a few fundamental concepts related to Microsoft Dynamics CRM deployment, including how these concepts can be used to support a full product lifecycle deployment. I will also discuss managing multiple deployments as part of a single-solution release, and how multi-tenancy should and should not be used as part of the entire solution lifecycle.
I want to make clear at the outset of this article that when I refer to a Microsoft Dynamics CRM “solution,” I mean the totality of all customizations, extensions, custom coding, schema changes, and so forth. A solution is not just one thing; it is all of your changes together.
Behind the scenes, a Microsoft Dynamics CRM solution is a standard ASP.NET 2.0 and Microsoft .NET Framework 3.5 data-driven Web application. The three-tier system includes the following major components:
Data Tier SQL Server 2005 or SQL Server 2008 database. Using SQL Server 2008 requires a hot fix as described in the Knowledge Base article “Support for Running Microsoft Dynamics CRM 4.0 together with Microsoft SQL Server 2008.”
Middle Tier Microsoft Internet Information Services (IIS) 6.0 or later Web front end; SQL Server Reporting Services (SRS) 2005 or SRS 2008; ASP.NET 3.5; custom Windows Services.
Client Tier Microsoft Internet Explorer 6.0 or later client; ASP.NET 2.0 or later; Microsoft Office Outlook 2003 or Office 2007 client (with optional offline access); others such as SDK consumers and third-party mobile clients.
Microsoft Dynamics CRM also relies on a variety of external systems including Microsoft Exchange Server 2003 or later and Active Directory.
The Solution Development Lifecycle
A Microsoft Dynamics CRM solution goes through the same lifecycle that a custom application development project would, which might look something like the process depicted in Figure 1.
Figure 1 The application development cycle
This entire process would be supported by several environments that together comprise the development, test, and production systems. In the world of any multifaceted enterprise application, this, of course, can turn out to be surprisingly complex. If, for example, you were to mirror your environments, you might end up with something that looks like Figure 2.
Figure 2 Mirroring your dev, test, and production environments
That’s three domains, three domain controllers, three mail servers, three Web servers and three database servers—and this model assumes that SRS and CRM are on the same box, and it does not take into account things such as load balancing. Now let’s imagine you add redundancy and a few external services such as Microsoft Office SharePoint Services (MOSS), and you could end up with a scheme like the one in Figure 3.
Figure 3 Increasing complexity
For cost and complexity reasons, trade-offs might be considered to balance the need for environment isolation against the need to keep costs down and manageability up. Organizations have thus looked to a variety of techniques, such as virtualization and the Microsoft Dynamics CRM built-in multi-tenancy features, to address these challenges.
When designing a set of environments to support your CRM project’s lifecycle, there are several schools of thought and, depending on what principles are important to you, you might choose to go one way or the other. At one end of the spectrum, designers promote total isolation using exact replication. These folks believe that the only way to validate that something will work outside of production is to have a test environment that is 100% identical to the production environment. Every server, every bit, and every setting must be identical and completely isolated from development and production for testers and IT to accept and believe something will work in production.
In contrast, others think that sort of isolation doesn’t really matter at all. If they could, they would develop and test directly in the production environment. They tend to see the redundancy as a waste of time and money, and they are certain delivery would be easier if they could just get in there and make things work.
Hopefully, you fall somewhere in between these extremes and will be open to the idea that when it comes to a Microsoft Dynamics CRM-based solution, it is possible to develop a hybrid that balances complexity, cost, isolation, and manageability.
Elements of a CRM Solution
Microsoft Dynamics CRM solutions components can be divided into four major buckets, and your solution may include one, two, three, or all four.
Customizations They include form, grid, schema, and metadata changes; security roles; workflows; system settings; and templates. Microsoft Dynamics CRM customizations are provided as one or more (typically one or two) zipped XML files. They are imported into a CRM deployment via the Outlook or Web client “Settings | Customization” area and then are “published” to make them active. All of this can be automated using code that is written against the Microsoft Dynamics CRM SDK.
Extensions These include reports and custom code such as plug-ins that must be deployed separately from the customizations. Plug-in registration information is stored as an XML file and can be deployed via either a command-line or Windows Form application provided by Microsoft. This also can be automated via code written against the Microsoft Dynamics CRM SDK.
Custom Code Anything developed as part of your solution, and it might consist of external Web services, custom Web application components, and so forth. The rules and practices for deploying the custom code should be no different than for any other custom Web application.
Data Any information that needs to be imported into an environment for that environment to function. This might include domain data (such as a list of product codes) or users. The data that your solution needs can be deployed into your Microsoft Dynamics CRM instance using scripted code or CRM’s Bulk Import feature, or with some form of external process using BizTalk or other ETL (extract, transform, load) tool. Some data, such as Users, needs to be created manually or through Microsoft Dynamics CRM SDK calls.
I like to think of CRM solution deployments just as though they were custom application development deployments. This means that during development and test, each new build of the solution is installed from a clean base system and the process is as repeatable and scripted as possible.
What about Multi-Tenancy?
Now let’s discuss what the environment you are going to deploy them into should look like. You may have read about the Enterprise Edition of Microsoft Dynamics CRM 4.0 support for a feature called multi-tenancy, which lets you partition multiple instances of Microsoft Dynamics CRM within a single deployment. This means that several completely distinct organizations with their own reports, workflow, customizations, and schemas can be run on the same set of hardware using the same physical servers and the same database instances and IIS Web sites.
At first glance, this might appear to be the panacea that solves all of our manageability, isolation, and cost conundrums. Such a solution might be visualized as in Figure 4.
Figure 4 A multi-tenancy-only solution
This seems logical because each organization gets its own physical database on the shared SQL Server or instance (which includes customizations, workflows, users, roles, and settings) and its own SQL Reporting Services folder.
This model works perfectly well if those distinct organizations are part of different team or departmental solutions. This, after all, is what multi-tenancy was designed for. While it is true that each organization (or tenant) gets its own database, they all share the same organizational unit (OU) and Active Directory groups, and they will all share the same platform services and front-end application as well. This means that the same asynchronous service and IIS Web site will be shared among organizations. The front-end servers are able to “host” these different organizations through a URL provider that determines, based on the URL, which organization to host.
Take these URLs as an example: crmserver/ContosoDevOrg/loader.aspx and crmserver/ContosoTestOrg/loader.aspx. The CRM server looks at the root directory to determine the name of the organization to serve up. If no root organization name is found, as in the case of crmserver/loader.aspx, the server defaults to the first organization created in the deployment or the one where the calling user has access.
Because the same Web site is used for both organizations, if you have custom code as part of your solution, it too will be shared by both organizations; for example, crmserver/ContosoDevOrg/ISV/mycustomdialog.aspx and crmserver/ContosoTestOrg/ISV/mycustomdialog.aspx.
Both point to the same physical file on disk, such as C:\inetpub\wwwroot\isv\mycustomdialog.aspx. Since it is likely that the version of a custom extension would be different between Dev, Test, and Production, this can pose a serious problem. Let’s assume, for example, that Build 11 of your application is currently being developed, while Build 9 is in UAT (user acceptance testing) for test. If you attempt to use multi-tenancy to solve your environment problem, you will have a hard time isolating these two builds. In such situations, some of you might be tempted to try the solution shown in Figure 5.
Figure 5 Attempting to use different IIS servers to segregate your custom solutions code
In that model (if you are no longer using the Network Load Balancing address), users might hit a URL that looks like this:
Development 192.168.1.100/ContosoDevOrg/loader.aspx
Test 192.168.1.105/ContosoTestOrg/loader.aspx
Production 192.168.1.110/Contoso/loader.aspx
This model lets you have three separate front-end servers, hosting three different organizations, with three different code bases on disk. As long as a user doesn’t inadvertently hit the wrong organization on the wrong server, everything should work out perfectly.
Unfortunately, since all front-end servers are considered a part of the same deployment, difficulties start to arise a little further downstream than you might realize at first glance. This really becomes a challenge if your solution uses asynchronous plug-ins or workflows, because while you can control which servers your users hit, you cannot control which asynchronous service will process events and requests for which organizations.
This is because all asynchronous services in a deployment work in a round-robin manner, and, as such, your development server’s asynchronous service might process a workflow, system job, or asynchronous plug-in response to a request from your test server, thus blowing the isolation requirement right out of the water. In addition, if your custom code that is run by this asynchronous process relies on files that must be deployed on disk to the server (such as a configuration file or a file in the Global Assembly Cache, or GAC), you will get version conflicts.
It is important to note that, for the most part, these challenges arise only when you are writing custom code that needs to be deployed on disk or if your custom code relies on resources that would be available only on or from a particular server. If your solution is simple and only uses customizations (schemas, forms, views, and so forth), workflows, and reports, you won’t have any problems using the approach in Figure 4.
So what is multi-tenancy for and when is it a good solution for product lifecycle environments? Multi-tenancy was originally designed to solve a hardware problem related to the hosting of multiple distinct tenants in a production environment, and it does this very well. Previously, in Microsoft Dynamics CRM 3.0, each deployment, or tenant, had to have its own dedicated SQL Server or SQL Server instance, as well as a front-end server.
This was true for many reasons, including the fact that deployment-specific settings used to be stored in the registry and on disk. All of these configurations have now moved to the database, so a single application server is able to handle multiple organizations. Multi-tenancy comes in handy for hosted versions of CRM including Microsoft Dynamics CRM Online.
Design Considerations
Now that you’re aware of some potential issues, let’s discuss some points to keep in mind as you design your deployment. The answer, of course, is that it depends. It is certainly possible to run a full CRM environment (including the domain controller, SQL server, and Web server) on a single box, as you can see on the Microsoft Dynamics CRM 4.0 Virtual Machine demonstration (see the “CRM Resources” sidebar for the URL). It is very common to use a single machine virtual image for a development environment. For test, however, it is important to validate key production environment challenges, and, for this reason, I recommend having your test environment mirror your production environment in terms of structure but not capacity. Your environment might look like the one in Figure 6.
Figure 6 The test environment structure should mirror the production structure
In this approach, you try to minimize physical hardware of the infrastructure using virtualization and further attempt to minimize virtualization resources by virtualizing only key scenarios that need to be tested. You will be able to allow your developers to develop on a single server image (or images, if they have their own virtual machine on their personal desktops) if you ensure that they will pay attention and be aware of the environment to which their solution will be deployed. The issues that developers should be paying attention to are the same issues you should be building your test environment to validate, including:
Make the Settings Configurable Don’t, for example, assume the server will respond to localhost or a particular port.
Be Aware of Multiple Servers Don’t assume things will work without setting up proxy users or trust for delegation.
Keep Load Balancing in Mind Be very careful with session state and caching. Note that Microsoft Dynamics CRM is designed to be completely stateless and work well with a round-robin load balancer.
Think about Multi-Tenancy When multiple tenants are hosted on a single machine, they share the same process space. This means that elements such as caches need to be keyed by the organization name so that users from one organization will not inadvertently utilize data from another organization. In addition, when you have client-side code that has links or calls back to the server, you need to be sure that the calls preserve the organization name in the URL; otherwise, you might hit the default organization or an organization you do not expect.
Key Takeaways
Isolation Is Important When designing your solution, keep in mind which approach (as illustrated in Figures 4, 5, or 6) will work best for you and be aware of when and where your custom code might run. It’s also worth noting when you do not need to worry about such issues because of the type of extensions your solution uses.
Virtualization Virtualization helps reduce complexity in building an environment that mirrors key test scenarios of production. Here is some guidance about the setup. Put CRM and SQL Server on separate servers. This helps verify trust for delegation and other related issues. CRM servers should be load-balanced, which will help identify session, caching, and cross-server issues. Finally, put the domain controller and e-mail on separate servers; this helps in identifying connectivity issues.
Refresh Environment for Each Build As a general rule, it’s a good idea to create backups either of the virtual environments or simply of the Microsoft Dynamics CRM databases (Data and Config) that can then be restored to get the server back to a “vanilla” state. You then do a full clean deployment into a fresh environment each time, including custom code, customizations, plug-ins, and domain data.
Redundancy/Performance Testing Can Be Done Separately Except for very large organizations, you can usually tackle failover and performance testing through isolated simulations and not through “real-world” build-outs. This means that it is not necessary for you to attempt to build out a test environment that enables testing of these scenarios. As an alternative, you can rely on testing them either in production or in separate one-off environments.
In closing, Microsoft Dynamics CRM is a scalable, enterprise-class system that, when appropriately configured and deployed, can handle small teams, enterprise-wide solutions, and every option in between. Trying to determine which product lifecycle environment is right for you will depend on a variety of factors.
Generally speaking, multi-tenancy is not an ideal way to address the product lifecycle development challenges of complex solutions and is best used when it is fully understood. Simple solutions that require only basic customization or that make use of properly coded and isolated custom extensions that don’t rely on disk resources or server-specific access should do just fine following the model depicted in Figure 4.
If your solution demands more isolation, server-specific resources, or access (perhaps an external service is only allowed through your VLAN from one specific server to another), and so forth, I recommend going with the model shown in Figure 6. And I’d recommend avoiding the approach that Figure 5 illustrates, as it is a hybrid hack at best.
Ultimately, Microsoft Dynamics CRM can be deployed in thousands of configurations, and exactly what is right for you will depend on what your solution requires. With a better understanding of multi-tenancy, single-server development environments, virtual test environments, and what testable scenarios are important to you, you should be able to design a product lifecycle deployment that is both functional and cost-effective.
Aaron Elder (Microsoft Dynamics CRM MVP) works for Ascentium, a technology consulting and interactive marketing agency. Visit the Ascentium blog at ascentium.com/blog/crm.

Source: http://technet.microsoft.com/

Posted in Deployment, Dynamics CRM | Tagged: | Leave a Comment »

SharePoint Server: Connect People, Processes, and Information (Videos)

Posted by Rubel Khan on October 31, 2009

Watch these free videos to learn more about Microsoft Office SharePoint Server 2007 whenever and from wherever you want—just click, listen, and learn. Start by clicking the title to learn more about the video. You can then stream it or download to view offline.

MSDN Video: SharePoint in Web 2.0 FireStarter (Part 8 of 8): Page Branding on SharePoint

Posted in SharePoint, SharePoint 2010 | Leave a Comment »

TechNet Webcast Series: SharePoint Internet Business

Posted by Rubel Khan on October 31, 2009

Tune in and learn how you can use Microsoft SharePoint for Internet Business to help you build your public-facing portal.  In this series, you will learn from experienced partners  how to create secure, dynamic web presence with personalization, rich commerce capabilities, catalogue and content management, business analytics, and search capabilities for anytime, anywhere access by customers and business partners. Click here for current schedule and registration

Posted in SharePoint, SharePoint 2010, TechNet | Leave a Comment »

Visual Studio 2010 Exams Update

Posted by Rubel Khan on October 31, 2009

Microsoft just finished up week two of intense exam design sessions yestarday.

Here is the update from Born to Learn http://borntolearn.mslearn.net/2009/10/visual-studio-2010-exams-update

Posted in Exam, Microsoft | Tagged: | Leave a Comment »

Course Release Announcement: 6426B – Configuring and Troubleshooting Identity and Access Solutions with Windows Server 2008 Active Directory

Posted by Rubel Khan on October 31, 2009

Microsoft Learning is proud to announce the release to manufacturing of MOC course 6426B, Configuring and Troubleshooting Identity and Access Solutions with Windows Server® 2008 Active Directory®. This three-day instructor-led course covers creating, maintaining and troubleshooting identity and access solutions with Active Directory services including Active Directory Certificate Services, Active Directory Lightweight Directory Services, Active Directory Federation Services and Active Directory Rights Management Services.

Course 6426B was released to manufacturing on October 26, 2009 and is currently available for download on the MCT courseware download center. The course will be available for ordering by CPLS partners on November 6, 2009.

Posted in Windows Server | Tagged: , , | Leave a Comment »

Workflow Foundation

Posted by Rubel Khan on October 27, 2009

Workflow Foundation (WF) provides significant enhancements in this release such as explicit data model and fully declarative experience for authoring activities, a new Flowchart modeling style, deeper integration with Windows Communication Foundation (WCF) and high performance runtime engine.

Resources

Blog

Forums

Posted in Visual Studio (.NET) | Tagged: | Leave a Comment »

Office Development in Visual Studio 2010

Posted by Rubel Khan on October 27, 2009

Visual Studio 2010 comes with improved Office Development functionality. You can now deploy multiple Office Solutions in one package which will appear as a single entry in the Add/Remove Programs in Windows XP or Programs and Features in Windows Vista. Visual Studio 2010 now also allows you to perform additional actions after the Office solution installation is complete such as copy documents or workbooks to the end user computer, create extra registry keys, or modify a configuration file.

Walkthroughs

How to…

Library

Blog

Forum

Posted in Visual Studio (.NET) | Tagged: , | Leave a Comment »

Silverlight and WPF Data Binding in Visual Studio 2010

Posted by Rubel Khan on October 27, 2009

Visual Studio 2010 now offers Drag and Drop data binding for WPF applications. After you add a data source to your project, you can generate data-bound Windows Presentation Foundation (WPF) controls by dragging items from the Data Sources window to the WPF Designer.

 

Walkthroughs

How to…

Library

Blog

Forum

Posted in Silverlight, Visual Studio (.NET) | Tagged: , | Leave a Comment »