Feb 162011
 

Microsoft Corp. today announced that Microsoft Dynamics CRM 2011 for on-premises and partner-hosted deployments has been completed and released for customer download. This release complements the latest version of Microsoft Dynamics CRM Online, which delivers Microsoft Dynamics CRM 2011 as an on-demand service from Microsoft’s datacenters and was launched into 40 markets and 41 languages in January. With a single multitenant code base across cloud and on-premises deployment models, Microsoft Dynamics CRM 2011 delivers the Power of Productivity to sales, service and marketing organizations worldwide.

Microsoft Dynamics CRM 2011 is now globally available and existing customers with active Microsoft Software Assurance agreements can access the new version immediately via the Microsoft Download Center.

In addition, Microsoft announced the new release scaled to 150,000 concurrent users in a single instance while delivering sub-second response times, once again raising the bar for performance and scalability in the CRM industry. The new benchmark results will be detailed in a Microsoft Dynamics CRM performance and scalability white paper that will be delivered in the coming weeks.

Integrated within Microsoft Dynamics CRM 2011, the Microsoft Dynamics Marketplace is available today in 20 markets and currently offers more than 1,400 partner offerings for solutions and services. This online catalog is an easy way for partners to market and distribute solutions to Microsoft Dynamics customers, whether online, on-premises or partner-hosted. The marketplace enables customers to quickly search, discover and apply industry-specific applications and solution extensions from Microsoft and its partners to help them accelerate and extend their CRM and ERP implementations.

Mar 192010
 

Here is the sample code shows how you can create a shortcut link for your application within the code.

Hope this will help you while creating your custom setup or installation projects.

First your need to add the refence in to your project as shown below:

Now, you can run the code after setting the variables “file” and “path” regarding your needs.

using System;
using System.Collections.Generic;
using System.Text;
using IWshRuntimeLibrary;

public static class CreateLink
{
public static void CreateIt()
{


string file = "Complete Path of your executable file";
string path = "Directory of your executable file";

WshShellClass wsh_Shell = new WshShellClass();

/* Code below will create the shortcut on the users desktop place if you change the location
* by setting different options of "Speacial Folder" or by setting any desired location
* string link_location = Environment.GetFolderPath(Environment.SpecialFolder.Startup);
*/
string link_location = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
IWshRuntimeLibrary.IWshShortcut myshorcut = (IWshRuntimeLibrary.IWshShortcut)wsh_Shell.CreateShortcut(link_location+ @"\ISVLabs.lnk");

// Assign shortcut properties:
myshorcut.TargetPath = file;
myshorcut.Description = "ISVLabs";
myshorcut.WorkingDirectory = path;

// Save the shortcut:
myshorcut.Save();
}
}




Mar 182010
 

Well , last week I needed to develop a custom Crm Installer Project and as you can guess I needed to update ISV config within C# code.

Here is the sample solution. Hope this helps you on your way !

DO NOT FORGET TO BACKUP YOUR ISV Config BEFORE TEST YOUR CODE !

QueryExpression iQuery = new QueryExpression();
ColumnSet cols = new ColumnSet();
cols.Attributes.Add("configxml");
query.ColumnSet = cols;
query.EntityName = EntityName.isvconfig.ToString();

BusinessEntityCollection items = iCrmService.RetrieveMultiple(query); // dont forget to init your crmservice object

isvconfig iConfig;

if (items.BusinessEntities.Count > 0)
{
iConfig = (isvconfig)items.BusinessEntities[0];
}
else
{
return ; // or you can put an error code here
}


XmlDocument iConfigXml = new XmlDocument();
iConfigXml.LoadXml(config.configxml);

// merge customizations -- here is my sample ISV xml, you need to replace it with yours
string iNewEntity = @"



";

// select entity nodes in ISV and add your custom xml in it
XmlNode iCustomEntity = iConfigXml.SelectSingleNode("//Entities");
string iExistingXml = iCustomEntity.InnerXml;
string iMergedXml = iExistingXml + iNewEntity ;
iCustomEntity.InnerXml = iMergedXml;

// update isvconfig
config.configxml = iConfigXml.InnerXml;
icrmService.Update(config);




Jan 312010
 

The IIS Search Engine Optimization (SEO) Toolkit helps Web developers, hosting providers, and Web server administrators to improve their Web site’s relevance in search results by recommending how to make the site content more search engine-friendly. The IIS SEO Toolkit includes the Site Analysis module, the Robots Exclusion module, and the Sitemaps and Site Indexes module, which let you perform detailed analysis and offer recommendations and editing tools for managing your Robots and Sitemaps files.

Download SEO Toolkit
Jan 312010
 

BizSpark provides fast and easy access to Microsoft tools and technologies, for their immediate use in design, development, testing, demonstration, and hosted application production and deployment.”
What this means is that if you are a start-up or small business who meets certain criteria, then joining the BizSpark programme will enable you to obtain and use Microsoft software at pretty much zero cost. An eligible business must have the following characteristics at the time of joining:

  1. Actively engaged in development of a software-as-a-service that will form a core piece of its current or intended business
  2. Privately held
  3. In business for less than 3 years
  4. Less than US $1 million in annual revenue

So what do you get if you meet these criteria and sign up to the programme? Well firstly, you get Design, Development, Test and Demonstration licenses for up to 25 developers at NO CHARGE for pretty much all Microsoft development tools (Visual Studio Team System etc.), all server products (SQL Server, SharePoint Server etc.) and all Microsoft Dynamics products (including CRM).
This in itself is great value, however you also get Production licenses that you can use to host customer applications also at NO CHARGE..!!! That’s right, you can develop and host SaaS applications at NO CHARGE whilst you are a member of the programme, using any or all of the following products:

  • Windows Server 2008 Web, Standard and Enterprise editions
  • SQL Server 2008 Web, Standard, Enterprise and Workgroup Editions
  • BizTalk Server 2006 R2 Branch, Standard and Enterprise Editions
  • Office SharePoint Server 2007 for Internet Sites
  • *** Microsoft Dynamics CRM 4.0 (coming soon) ***

So why are we doing this? Well most software start-ups have limited working capital, and many choose to build solutions on free technology platforms simply because they cannot afford the upfront software costs of our software. BizSpark removes this barrier to entry, and will help start-ups by providing access to Microsoft software when they most need it and can least afford it.
You can find out more details (including terms & conditions) and sign up for the programme here – http://www.microsoft.com/bizspark

Jan 312010
 

It’s hard to believe that JavaScript is already well over a decade old.  Often relegated to marginal tasks in its early years, JavaScript has grown to become a pillar of modern web development.  With the current popularity of DHTML and AJAX, it can be difficult to find a site that doesn’t use JavaScript anymore.  One of the driving forces behind JavaScript’s newfound popularity is a proliferation of JavaScript frameworks, such as jQuery.
Why?
Though JavaScript itself is a great programming language, the document object model (DOM) can be a web developer’s worst nightmare.  The DOM is a method through which browsers expose an interface allowing JavaScript code to manipulate elements, handle events, and perform other tasks related to a document within the browser.  While almost every browser implements an ECMA standard version of JavaScript, their DOM implementations are inconsistent and quirky at best.  In fact, if you’ve had bad experiences with client-side programming in the past, it’s likely that the DOM was the true source of your frustrations, not JavaScript itself.  This is exactly the pain point which jQuery addresses.
jQuery abstracts the DOM away, allowing you to focus on behavior instead of implementation.  It provides a simplified, reliable interface to the DOM that works consistently across all major browsers.  Instead of wasting time and effort supporting the idiosyncrasies of these browsers, you can write jQuery code that works the same across them all.

Why jQuery?  What’s in it for me?

  • CSS3 selectors – In jQuery, nearly everything begins with a selector that defines a set of one or more DOM elements.  By implementing a CSS3 compliant selector engine, jQuery provides tremendous flexibility in this area.  Selectors may contain any combination of ID, CSS class, and/or an expanded set of pseudo selectors (e.g. :first, :selected, :input).
  • DOM manipulation – One of the most common client-side tasks is making changes or additions to a rendered HTML document.  Whether updating a snippet of text or adding entire HTML structures, jQuery provides a robust set of utility functions that are up to the challenge.  Combined with the versatile selector engine, complex manipulations are possible with only a few lines of jQuery code.
  • Animation – The core jQuery library contains a few commonly used animations, such as fades and slides, and it also provides for specifying custom animations.  Beyond that, jQuery UI offers animated transitions between CSS classes and a wide variety of easings.
  • AJAX communication – No JavaScript framework would be complete without a way to make asynchronous requests, and jQuery is no exception.  jQuery provides AJAX communication through several methods which allow you to choose an appropriate balance between control and simplicity.
  • Plugins – jQuery’s straightforward extensibility model has led to a thriving plugin ecosystem.  As of this writing, there are almost 2,500 third-party plugins in the repository.  Everything from simple utility functions to entire client-side templating solutions are available as jQuery plugins.  If you can imagine a feature, it’s likely that a plugin already exists to assist you in implementing it.
  • Cross-browser compatibility – As previously mentioned, one of jQuery’s key strengths is that all of its features work consistently across every major browser.  Any jQuery code that you write will produce the same results in Internet Explorer 6.0+, Firefox 2.0+, Safari 3.0+, Opera 9+, and Chrome.
  • Officially supported by Microsoft – For many Microsoft developers, this official blessing is the clincher.  Not only will Microsoft begin including jQuery with Visual Studio, but it is part of the default ASP.NET MVC project template.  What’s more, Microsoft Product Support Services has already begun offering support for jQuery.

Coming from ASP.NET, what should I know?

If you’re coming from an ASP.NET development background, some of jQuery’s idioms may seem foreign at first.  As with any framework, it’s important to learn the conventions and use them to your advantage.  Going against the grain only wastes your time and effort.
In that spirit, these are a few specific tips that I hope will help you flatten the learning curve a bit.

  • Use selectors.  Think in sets. In the ASP.NET world, it’s rare to select sets of controls through queries. Instead, we’re accustomed to referencing a single control by its unique ID.  Of course this is possible in jQuery too, but its selector engine is far more sophisticated.

    Using selectors to identify a set of one or more elements is cleaner and more expressive than the iterative machinations you may be used to in ASP.NET server-side code.  Before parsing out an ID or iterating over a group of elements in search of certain ones, be sure that the task isn’t more easily accomplished through a jQuery selector.

  • Use CSS classes for more than just styling. Another technique that is counterintuitive at first is the use of CSS classes as flags.  Coupled with jQuery’s selector engine, “flag” classes are surprisingly powerful.

    A good object lesson comes from one of my recent contracts, where I was hired to add client-side interactivity to an online card game.  One of the requirements was that the card images should have OnClick handlers applied at particular times, but only to those cards which were face down.

    The .NET developer in me immediately considered maintaining the state of all the cards in some sort of client-side collection.  Then, I could have iterated over that array to set up the appropriate OnClick handlers when necessary.  That would have worked, but it would have been messy, prone to breakage, and generally difficult to maintain.

    Instead, I realized that CSS classes as flags would allow me to implement a more elegant solution.  Within the code that “flipped” the cards face up, I used addClass to add a “flipped” class to the card images.  Then, a simple $(“.card:not(.flipped)”) selected the set of cards which were face down.  Using jQuery’s click(fn) on that set of elements allowed me to implement the entire feature in just a few lines of code.  Perhaps more importantly, that code was far easier to read and understand than the alternative would have been.

  • Understand unobtrusive JavaScript.
    In the ASP.NET world, we use a lot of what’s sometimes termed obtrusive JavaScript.  This means that client-side event handlers are defined as attributes on elements.  For example, several ASP.NET WebControls render an OnClick=”javascript:__doPostBack()”attribute as part of their markup.  This is considered obtrusive JavaScript.

    When ASP.NET was initially being developed, this inline JavaScript was the norm.  However, as browsers began providing more sophisticated faculties for imperatively adding event handlers, this declarative technique quickly lost favor with client-side developers. As a consequence, the preferred approach has shifted toward what’s called unobtrusive JavaScript.

    Unobtrusive JavaScript is now considered a best practice when wiring up client-side event handlers.  This is primarily because it facilitates separation of concerns between behavioral JavaScript and structural HTML markup.  Unobtrusive JavaScript also helps you to write cleaner, more semantic markup, which improves accessibility and often has SEO benefits.

  • Use the console to learn interactively.
    Coming from the save-compile-reload paradigm of statically typed server-si
    de development, it’s natural to approach client-side development in a similar fashion.  While you certainly can write client-side code that way, it’s akin to working blindfolded when you consider the alternatives.

    Since JavaScript is usually interpreted by a browser, the browser is one of the best debugging environments available.  In particular, a JavaScript “console” is terrific for interactively interrogating the DOM, testing jQuery selectors against actual markup, and refining JavaScript code in real-time.

    My preferred browser-based tool is the Firebug addon to Firefox.  I cannot praise this Firebug highly enough.  It has revolutionized how I approach client-side development, both of JavaScript and of CSS.  If you prefer Internet Explorer, IE8’s updated developer tools are also very capable in this department.
    Whatever your browser of choice, I urge you to give these utilities a try when debugging client-side functionality.  Once you become proficient with one of these tools, you’ll be amazed that you ever developed client-side code without it.

  • Get the VSDOC.
    Even though browser-based tools are great for debugging, an ASP.NET developer’s primary editor is still going to be Visual Studio.  When writing jQuery code in Visual Studio, having proper Intellisense can make a tremendous difference in productivity.  The discoverability that Intellisense provides is especially beneficial when you’re unfamiliar with jQuery’s API.

    As part of the official support for jQuery, Microsoft provides a documentation file to provide jQuery Intellisense inside Visual Studio 2008.  This is provided through what’s called a vsdoc file, and is available on the jQuery download page (via the “Documentation: Visual Studio” links).
    Jeff King has assembled an excellent FAQ to help you get Visual Studio 2008’s JavaScript Intellisense working:  http://blogs.msdn.com/webdevtools/archive/2008/11/18/jscript-intellisense-faq.aspx 

From Dave Ward’s nice explanations..

Jan 272010
 

For one of my applications , I needed to get the all the records,found in AdvancedFind and manage these records.
If the record count is less than max display number of grid view ,there is no problem.
Here is the solution in one of my old posts.
What if the the records are more than this number ?
My solutios is to get the Advanced Find FetchXml Query and evaluate it on my custom aspx page through a grid button by using JavaScript.

Here is the JavaScript code which need be placed as JavaScript attribute in custom grid button.In Crm Sdk,you can find how to add a custom button on a grid.

function getAdvFindFetchXml()
{
if(document.getElementById('FetchXml'))
{
return document.getElementById('FetchXml').value;
}
else
{
return '';
}
}
var sUrl = '/ISV/YourPage.aspx';
var sWin = window.open(sUrl,'','height=650,width=750,toolbar=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,modal=yes');

And now , you need to create a custom aspx page to handle the events and FetchXml Query.

1-Create an aspx page.
2-Add an asp:textbox or asp:hiddenfield named “crmAdvFindFetchXml” to your page.
3-Copy and paste the javascript code below before the tag of your page.This code will assign the Advanced Find FetchXml Query to your control.



4-Add an asp:button to your page and create a post back button click event for the button.

5- Copy and paste the code below in the asp:button click event.

string fetchXml=crmAdvFindFetchXml.Text.Trim();
CrmService crmService=new CrmService();
/*
....
init your CrmService regarding your crm instance
....
*/

crmService.Fetch(fetchXml);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(result);
XmlNodeList xmlNodes=xmlDoc.GetElementsByTagName("result");
foreach (XmlNode item in xmlNodes)
{
if (item["accountid"] != null)
/* accountid is just for example ,it can be any fieldid which is retrieved in fetchxml for your needs */
{
Response.Write(item["accountid"].InnerText);
}
}

Cheers,
-

Jan 262010
 

 

Dynamcis Crm & Social Networks integration

Social networking may sound fluffy, but it can translate into real benefits for you and your company. William Baker, a professor of marketing at San Diego State University, surveyed 1,600 executives and found that firms that rely heavily on external social networks scored 24 percent higher on a measure of radical innovation than companies that don’t. Online networks can help you hire the right people, market your product — or even find a manufacturer.
Your brand will also be required to exist outside of your web site. Whether you are providing an RSS feed, syndicating content with a widget, maintaining a presence on services such as Twitter and Facebook, or partnering with a white label affiliate; we ensure that your branding is present and properly represented wherever your content appears online.

  • Publish product announcements and campaigns on Social Networks
  • Retrieve user profiles and user actions ( Comments and Likes) within Dynamics CRM
  • Create leads,contacts,accounts or sales opportunuties
  • Create automated records for your departments ( sales ,marketing ,helpdesk …)
  • Analyse user actions with Dynamics CRM reporting tool
  • Customisable for your business needs

Jan 262010
 
We provide expert advice to businesses in the process of implementing Microsoft CRM. Our consulting services cover the full implementation cycle of a CRM project starting from preparing your business case with you for Microsoft Dynamics CRM all the way through the actual implementation and post delivery activities such as training and support.

XRM represents the versatility of the CRM development platform. We can make CRM work for your business, no matter what your requirements are. With XRM you can tackle any business issue. If you would like to hear how XRM could work in your specific situation take a look some of our solutions below or contact us.

Dynamics Crm Email Marketing Tool 4 Mailchimp


We make it easy to send email newsletters to your customers, manage your subscriber lists, and track campaign performance with advanced reporting options and integrated with Google Analytics. We could make Dynamics CRM and MailChimp work together perfect.

  • Manage your email marketing campaigns within Dynamics CRM
  • Retrieve every single email action as Campaign Response in Dynamics CRM
  • [ Url Clicks
    [ Opens
    [ NotOpens
    [ Bounces
    [ UnSubscriptions
    [ Complaints
  • Create leads,opportunities,quotes,sales orders within Dynamics CRM
  • Google Analytics Integration
  • Email Designer
  • Customisable for your business needs