COME, CLICK WITH US 
 OMNIA CONNECT BLOG

Archive for the ‘Uncategorized’ Category

Getting started with Managed Extensibility Framework (MEF)

Monday, November 30th, 2009

Recently I got a chance to work with WordPress and Drupal, those are the coolest PHP based blogging and content management systems out there, while I was impressed with the simplified installation and configuration, one thing that struck me was how simple it is to add plugins to the system. For instance I wanted a photogallery, so I downloaded the plug-in from WordPress.com, unzipped, dropped it in the plugins folder, went to the Administration panel and there it was, the plug-in sitting right there ready to activate.

Fortunately .NET now gets its own plug-in architecture framework in the form of Managed Extensibility Framework or MEF.

I wrote a post that shows how to make your applications extensible with MEF, read it here

“Application Lifecycle Management in VS2010” session of TechiesUAE

Sunday, November 22nd, 2009

I attended this session of TechiesUAE presented by Rolf Eleveld. First he took us through the installation and configuration steps required to run Team Foundation Server 2010 and Visual Studio 2010 beta 2.

Rolf then showed some of the new features in TFS 2010 version control and its integration with VS2010 including the web interface of TFS.

Also during the session, one of the interesting tool that he showed us is the new Problem Steps Recorder (or PSR) that ships with Windows 7.

psr

This tool can help developers and IT Pros know the steps required to reproduce any problem to resolve it more quickly. For more info on it watch this video  

During the session we also discussed the use of Entity Framework & Linq to Entities in the enterprise and also saw the demo of the interesting new Lab management capabilities introduced in VSTS 2010. This helps testers test the software in a virtual environment and raise any bugs, the developers can then launch the virtual machine from the IDE and find all the rich information along with the check point link included in the bug, for more info on this read this post on Soma’s blog.

The session lasted more than 3 hours.

Omnia Connect launches interactive campaign monitoring solution to track and manage user behaviors And enhance effectiveness

Sunday, October 4th, 2009

Dubai, United Arab Emirates (October 05, 2009) - Knowing user behavior data is a critical key to managing successful viral campaigns. Now, Omnia Connect created that key to unlock new possibilities for effective interactive marketing campaign management with the launch of their new Campaign Manager software.

Designed and developed by the UAE’s digital media experts, Omnia Connect, this proprietary interactive campaign monitoring tool enhances a campaign’s effectiveness by providing new capabilities in tracking, management and overall marketing campaign intelligence.

Campaign Manager, through its ability to leverage web analytics, social media metrics and viral measurement, is an instant advantage for understanding user behavior and interactive campaign performance results.

Designed as a powerful, integrated management tool for interactive campaigns, the Campaign Manager software provides intelligent insights into the web traffic, site visitors and the user behaviors that occur across the spectrum of the online marketing campaign. Because it is programmed into the campaign’s website or microsite, Campaign Manager works as a seamless tool for tracking and reacting to user behaviors.

Simple customization of the open API system also allows for extendable user behavior monitoring and engagement design evaluation. Campaign Manager also boasts an “Accumulative Data Collection” feature, allowing the interactive campaign to collect user information and activity data over a period of time. This data is gathered and recorded automatically for use in campaign measurement or analyzation to better visualize the campaign’s rate of success.

Additional Features of Omnia Connect’s Campaign Manager:

  • Activity Monitor: Compare user actions, make determinations in what actions are driving the most success in the campaign.

  • Designed Email Templates: Built-in email template system, allows for the dispatch of personalized emails, building trust and loyalty with site users.
  • Email Statistics: Stats for emails sent and open rates, help indicate campaign message effectiveness.
  • Time Span: View each metric by selecting a start and end date, compare in terms of weeks or months of activity.
  • Data Collection: Fortified with capabilities that enhance rich data collection and Accumulative Data Collection, exported to Excel or other spread sheet software.

An interactive campaign is only as effective as its tools allow it to be. Campaign Manager is available for implementation into your next interactive marketing project exclusively with Omnia Connect. Visit: www.omniaconnect.net

Top 100 websites of 2009

Tuesday, August 4th, 2009

Yes Youtube is no more #1 (19th!)

Check out the full listing on PCMag (thanks Hammad)

Adding Service References and ‘The system cannot find the path specified’ error

Tuesday, August 4th, 2009

I was facing this problem recently in a project when adding a reference to a WCF Service simply gave me this error.

wcferror

I google’d it for a while but in vain, I also removed the auto-gen service entries from the web.config but that did not work either.

Then I realized that earlier I had deleted the Service References folder from the application root, re-add and it worked as expected.

Funny thing is that Visual Studio will not tell you what went wrong, neither folder name appears under Add > ASP.NET Folders nor Visual Studio attempts to recreate it.

HOW TO BLOG USING WINDOWS LIVE WRITER

Thursday, July 30th, 2009

Hi,

For those with Windows PCs (sorry MAC guys) there’s this nice little tool name Windows Live Writer from Microsoft that can be used for blogging right from the desktop.

Download the tool above and once you install it take a look at the screenshots below that show how I used it to post the last entry.

and BTW, this post is written using WLW ;)

– Add a blog account

1.jpg

-  Choose the Blog service

2.jpg

- Put the URL and your credentials

3-thumb.jpg

- Hit Next, setup starts

4.jpg

-  Just about finished

5.jpg

- Write your post, hit Publish…

6.jpg

..and you’re done..blog away..

7.jpg

Using a static class for logging exceptions using ELMAH

Thursday, July 30th, 2009

If you have used Elmah for logging exceptions in your Visual Studio projects, you must have used the following syntax in the try..catch blocks

try
{
   ....
}catch
{
    ErrorSignal.FromCurrentContext().Raise(ex);
}

Or if you want to log a custom message you do something like

try
{
...
}
catch
{
    ErrorSignal.FromCurrentContext().Raise(new Elmah.ApplicationException(Message));
}

Or also include the exception object with the message like this

try
{
....
}
catch
{
    ErrorSignal.FromCurrentContext().Raise(new Elmah.ApplicationException(Message,ex));
}

As you can see this is a lot of text to be put in each try..catch block, so to make it look a little bit nice I made a static class that looks like this

/// <summary>
    /// This class logs exception in ELMAH
    /// </summary>
    public static class Error
    {
        /// <summary>
        /// Logs the exception in ELMAH with a custom message
        /// </summary>
        /// <param name="Message">Custom message</param>
        /// <param name="ex">Exception object</param>
        public static void Log(string Message, Exception ex)
        {
            ErrorSignal.FromCurrentContext().Raise(new Elmah.ApplicationException(Message,ex));
        }

        /// <summary>
        /// Logs the message in ELMAH
        /// </summary>
        /// <param name="Message">Custom message</param>
        public static void Log(string Message)
        {
            ErrorSignal.FromCurrentContext().Raise(new Elmah.ApplicationException(Message));
        }

        /// <summary>
        /// Logs the exception in ELMAH
        /// </summary>
        /// <param name="ex"></param>
        public static void Log(Exception ex)
        {
            ErrorSignal.FromCurrentContext().Raise(ex);
        }
    }

Now the try..catch block looks like this

try
{
.....
}
catch (Exception ex)
{
  Error.Log("this is a custom error",ex);
}

Take it away here

Adding interactive google map to a web page

Tuesday, July 28th, 2009

The Google Map API provides a number of options for manipulating maps and adding content to the map through a variety of services, allowing you to create maps applications on your website.

Here I  explored the google map’s  Info Window method a bit and demonstrated how to add dynamic content to it.

Suppose in a contact page we have a list company branch information and when clicking each branch, an info window should popup with the corresponding address  in a google map placed in the same page.

First of all we need to create an HTML <ul> list with all branch information

untitled-2

The information under each heading either you can make it hidden completely or make it as an accordion.

The html block should look like


&lt;ul id=&quot;BranchList&quot;&gt;
&lt;li&gt;&lt;a rel=&quot;25.096803,55.157306&quot; href=&quot;#&quot;&gt; Head Office&lt;/a&gt; &lt;div class=&quot;&lt;span style=&quot;color: #ffffff;&quot;&gt;Hidden&lt;/span&gt;&quot; &gt;
&lt;p&gt;&lt;span&gt;Corniche Road, &lt;br/&gt;
Golden Beach Tower, &lt;br/&gt;
Penthouse Level,&lt;br/&gt;
P.O. Box 8206, Abu Dhabi, U.A.E.&lt;/span&gt;&lt;br/&gt;
Tel: +971 2 409 0700 &lt;br/&gt;
Fax: +971 2 622 1707&lt;br/&gt;
Email: &lt;a href=&quot;mailto:info@noreply.com&quot;&gt;info@noreply.com&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div id=&quot;GoogleMap&quot;&gt;&lt;/div&gt;

add the latitude and longitude values as a coma separated list as highlighted.

now you need to invoke the javascript function to read the information from the html and place it in the Google Map at the right location.

&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
InitiateGoogleMap(&quot;GoogleMap&quot;,&quot;BranchList&quot;);
// --&gt;&lt;/script&gt;

final1

and the javascript function is below

function InitiateGoogleMap(GoogleMapDivId,AddressListElementId){
/*
- To display info window on google map on click of a particular link or button -
GoogleMapDiv : The Id of the div where the map is to be displayed
AddressListElementId : the Id of a UL list where the information displayed.
*/
 if (GBrowserIsCompatible()) {
  var Map = new GMap2(document.getElementById(GoogleMapDiv)); // Initializing the map
  var Coordinates={}; // lat/long values
  var Address = $(this).parent().find(&quot;.Hidden&quot;).html(); // getting the info to be displayed
  var point = new GLatLng(parseFloat(Coordinates[0]), parseFloat(Coordinates[1])); //Creating a marker point
  var Location = new GMarker(point); initializing a marker

  Map.setCenter(new GLatLng(25.096803, 55.157306), 13); // centering the map in a default location
  Map.setMapType(G_SATELLITE_MAP); // Setting the Map type
  $(&quot;#&quot; + AddressListElementId + &quot; li a:first&quot;).click(function(){ //Click function

  Coordinates = $(this).attr(&quot;rel&quot;).split(&quot;,&quot;); lat/long values
  Map.addOverlay(Location); //Creating a marker
  Map.openInfoWindow(point, $(&quot;#&quot;+AddressListElementId +&quot; li:first&quot;).find(&quot;.Hidden&quot;).html()); //Opening the first Item Description in the Map Info Window when the page load

  GEvent.addListener(Location, &quot;click&quot;,
  function() {
   Map.openInfoWindow(point, Address);
  });
  return false;
 });
 Map.addControl(new GSmallMapControl());
 Map.addControl(new GMapTypeControl());
 }
}

Note: Jquery plugin and googlemap API references are required to make this work.

You can use Google Map plugins to skin the info window


27 Inspirational Horizontal Scrolling Websites

Thursday, July 23rd, 2009

Horizontal Scrolling was considered evil before, but now it’s considers as one of a unique way (mostly for showcasing Things) of approach in web design

http://dzineblog.com/2009/07/web-design-ideas-27-horizontal-scrolling-websites.html