Onsite / Offshore Project Enagagements

Summary: In Onsite/Offshore Delivery Model, the outsourcing work is distributed between the service provider’s onsite center and the offshore development center & thereby the client gets the advantage of both types of outsourcing models. It is one of the most successful and popular outsourcing models employed today by many companies. The distribution of work depends on the type of project. Usually 20-30% of the work is done by the onsite center and the rest is done by the offshore development center.

Core Methodology: The Core that we use currently is the “Agile” mode of the development. There might be some variations while we work on daily basis and continual improvement on the way up through the ladder.

Work Distribution: There are two broad level stake holders in this model

1. Onsite Team

2. Offshore Team

Responsibilties of Onsite Team:

1. Requirement gathering through interaction with client.

2. Clear understanding of what needs to be done.

 3. Milestones identification for offshore team.

 4. Progress tracking with offshore team lead.

5. Change management with respect to client feedback.

6. Most importantly dealing with client and maintaining parternership.

Responsibilities of Offsite Team:

1. Requirement understanding.

2. Design level discussion with onshore team.

3. Issues identification while understanding the requirements. (If there are no issues raised at this point, that means we have some problem!)

4. Incremental updates to onsite team with daily builds (if there can be)

5. Daily progress update with onsite team leader.

6. Continual check with onsite team for critical parts of the projects.

7. Development of contigunacy plans with respect to team and its resources for on going project with onsite.

8. Immediate communication of any issue that does not sound clear to onsite team.

Experience:

While working with this model what we have expereienced is that problem arises when onsite/ offsite team does not communicate in time for any problems they face.

So, work with utmost uptime (99%) we need to consider following:

1. On time issue handling, this saves problems at end when you are delivering the final output.

2. There should be some online tracking system for each requirement and any issues related to it. So its visible at all stack holders in one place. With option to send emails to conerned stack holder when something changes in that requirement.

3. Better utilization of the time difference between offshore and onsite teams. For example, if at onsite there is some change in requirement or any issue related to delivered build it should be communicated the same day. So, when offshore team gets in they know what is going on.

4. Onsite team need to be one step a head ALWAYS to get things done.

 5. Close monitoring of the project, but don’t over monitor it and waste time of resources. So that they work more and spend less on the status meetings.

6. Don’t Assume anything will work, CHECK IT (true for both onsite and offshore teams). So, overall it closed partnership between onsite/ offsite team and they both need to work together to get things done. Communication is MUST and it should be quite frequent.

Auto Redirecting to SSL Url

Put following in the default document of your webserver, and it will auto redirect to https://

<html>

<body></body>

<scripttype=”text/javascript”>

var url = “”;
if (window.location.href.toLowerCase().indexOf(“http://&#8221;) > -1)
 url = window.location.href.replace(“http://&#8221;, “https://&#8221;);
if (url.toLowerCase().indexOf(“default.asp”) == -1) {
 if (url.substr(-1) == “/”)
  url = url + “/”;
  url = url + “default.asp”;
 }
window.location.href = url;

</script>

</html>

Reducing XAP Size in Silverlight and Problems

We were having problem with reducing XAP size. Basically third party were not getting picked automatically with the “Application Library Caching” in silverlight.

So searched a little we found out that based on following articals, we needed to have “.extmap.xml” for each assembly that we used in Silverlight.

For Instance InfragisticsSL4.Controls.Editors.v10.3.extmap.xml, now this file contains following mapping xml for that assembly.

<?xml version=”1.0″?>
<manifest xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema“>
  <assembly>
    <name>InfragisticsSL4.Controls.Editors.v10.3</name>
    <version>10.3.20103.1006</version>
    <publickeytoken>7dd5c3163f2cd0cb</publickeytoken>
    <relpath>InfragisticsSL4.Controls.Editors.v10.3.dll</relpath>
    <extension downloadUri=”InfragisticsSL4.Controls.Editors.v10.3.zip” />
  </assembly>
</manifest>

NOTE:

  1. version, publickeytoken should be same as per assembly.
  2. The ExtMap XML files need to be at the Location from where you added refrence to silverlight project. (like some seperate folder for assemblies)
  3. You can download EMM tool fromhttp://blogs.microsoft.co.il/blogs/alex_golesh/archive/2009/07/16/small-utility-extmap-maker.aspx and make your life easy.

References:

http://forums.esri.com/Thread.asp?c=158&f=2455&t=297234

http://blogs.microsoft.co.il/blogs/alex_golesh/archive/2009/07/16/small-utility-extmap-maker.aspx

Thanks,

“Revert To Parent” Option at IIS, The requested content appears to be script and will not be served by the static file handler.

Lately, i h ad changed my local deployment method for webservices that are used during development.

I am directly publishing the web service to iis folder, BUT got stuck with problem that it wont run and give me following error

HTTP Error 404.17 – Not Found

The requested content appears to be script and will not be served by the static file handler.

Now,  everything seemed to be in place but it was handler mapping settings that somehow got lost for the site.

So i used “Revert to Parent” within handler mapping icon under website’s feature view in IIS7.

I hope this helps out some folks.

Thanks,

Dynamic Reports with Telerik (Silverlight4 – Part 2)

We have been work hard to get running with dynamic reports. I admit that Telerik solution for report is pretty cool.

There were are following options to get our work going:

  1. Make use of “Table” API in Telerik Report
  2. Simple approach of making fields and align them properly

Option 1, failed to great extent in terms of loading heavy amounts of data. (1600 rows, between is not heavy). Researched on it today and submitted ticket to telerik 448457. With that i hope they fix the issue of table rendering. There is something seriously wrong with their approach.

That being said, i really like the support they give to people for their solution, help system and follow-ups are quite good. With Video tutorials – it makes life easier when you get stuck into some problem.

Now, we went for other (simpler) approach.

Rough flow of information through the silverlight application

Silverlight -> WCF (ReportService.svc) -> Report_NeedDataSource -> Build Report Columns, and provide the data source itself.

Now, Passing information of the context, connection string and running or making query for report posts lot of questions

  1. Security
  2. How to pass back and forth
  3. Fields to display

With that in mind, we used simple parameter passing with some token that tells us where to look for information. This allow us to not send any connection string infomation though the wire.

// important

((System.ComponentModel.ISupportInitialize)(report)).BeginInit();

//get details section, you can get name of the detail section by looking at definition of

//InitializeComponent

DetailSection detailSection = report.Items[“detail”] as DetailSection;

//set height

detailSection.Height = Unit.Inch(0.2);

String[] fields = ….

foreach (String fld in fields)

{

//Fields

Telerik.Reporting.TextBox numberTextBox = new Telerik.Reporting.TextBox();

Telerik.Reporting.TextBox grpHeaderLabel = new Telerik.Reporting.TextBox();

numberTextBox.Left = Telerik.Reporting.Drawing.Unit.Inch(counter);

grpHeaderLabel.Left = Telerik.Reporting.Drawing.Unit.Inch(counter);

//Your Logic for alignment or any other goes here…

//Add them to respective sections

detailSection.Items.Add(numberTextBox);

grp.GroupHeader.Items.Add(grpHeaderLabel);

counter += 1D;

}

//Make Data Source

Telerik.Reporting.SqlDataSource dataSource = new Telerik.Reporting.SqlDataSource();

//connection code goes here…

//select query

dataSource.SelectCommand = “Select fields from table “;

report.DataSource = dataSource;

//pretty important

((System.ComponentModel.ISupportInitialize)(report)).EndInit();

Ok, thats all you need to do.

Note: Create a Blank Report for Telerik.Reporting and then write code in there.

Thanks,

Dynamic Telerik Reports in Silverlight

Guys,
We are going to start working on the dynamic report building thorugh telerik today. It will be a complete dynamic engine with flexibility to user to define following:

  1. Header
  2. Footer
  3. Column/ Fields that needs to be in the report
  4. Formatting Based on Type of Fields

going to take help from http://www.telerik.com/help/reporting/programmatic-control-of-reports.html, and will keep you people posted.

Keep hitting…

    JOB: Require Senior Asp.NET Developers x 2

    Hi,

    We are require another Asp.net Developer at Vanguard Software Group for their pakistan office.

    Experience Required: 4+

    Number of Post: 2 now …

    What we offer:

    1. Smooth Enviornment
    2. Good work ethics
    3. Laptop
    4. Medical
    5. Paid Leaves
    6. Opportunity to learn new things
    7. No LATE SITTINGS 🙂 – Guaranteed

    So, send in your Cvs to rizwan@vsgsolutions.com / rizworks@gmail.com

    Web: http://www.vsgsolutions.com

    Looking forward for good ones…

    Thanks,

     

    Thanks,