I'm still trying to avoid the migration to AMD myself but I think you might need to focus on the API versions 3.4, 3.5, or 3.6. A good place to start is the "What's New" section of the Concepts site (link for the What's New for v3.4).I don't know about the custom module side of things but a few gotchas to pay attention to when moving from 2.8 to the 3.x series of APIs:1. djConfig in your HTML header changes to dojoConfig2. Remove any "lang=EN" from your <HTML> tag! For some darn reason, this breaks your app so, if you have it, remove it.3. Any code that references the esri namespace can't run until after all the modules have loaded. In the 2.8 days, I might have a global variable for the initial extent declared outside of my initMap function like this:var initExtent = new esri.geometry.Extent({
"xmin": -13592500,
"ymin": 6060280,
"xmax": -13506825,
"ymax": 6166129,
"spatialReference": {"wkid": 3857}
});
This chokes in the 3.x APIs because of the esri.* reference. The solution is like this:var initExtent;
function initMap() {
initExtent = new esri.geometry.Extent({
"xmin": -13592500,
"ymin": 6060280,
"xmax": -13506825,
"ymax": 6166129,
"spatialReference": {"wkid": 3857}
});
}
dojo.Ready(initMap);
I now also use dojo.Ready() instead of dojo.OnLoad() to call the map setup function at page load. I think these are the biggest issues in general when updating from v2.8. Hopefully someone else can provide some wisdom about your situation with the custom modules.Good luck!Steve