Welcome Guest, you are in: Login

FDOT Wiki

RSS RSS

Navigation (EnterpriseLibrary)



Search the wiki
»
Version 4.0 of the FDOT Enterprise Library follows the service-based approach of version 3.0 with several enhancements to improve maintainability and take advantage of improved support for WCF in .Net 4.0.

Click here to download a Visual Studio 2010 solution with a number of code snippets and examples presented to the FDOT district liaisons.




What do I need?

The services below are provided by the FEL 4, and each is available as a separate NuGet package that contains everything necessary for making net.tcp connections. Most of the services also support direct access from client script via RESTful HTTP endpoints.


Where can I find it?

.NET client

Version 4 of the FEL is available as a set of NuGet packages that are intended to work "out of the box" for internal FDOT development. External or offline development is also supported via a set of client facades that can consume JSON serialized local data or connect to a set of Internet-accessible endpoints. The facades are designed to fall back to service calls in the absence of local data. Service calls from the .NET client packages connect via the net.tcp endpoints, which are provided by all the available services.


jQuery

Optionally, most of the FEL 4 services expose a REST endpoint that can be consumed directly via client script, or by using the jQuery API available at the following locations:


Note that either location can be referenced, as they're not specific to any particular environment level; however, the production copy will be less volatile, while the Unit/System copy will be more frequently updated as services and operations are added.



How do I use it?

Click here to download a Visual Studio 2010 solution with a number of code snippets and examples presented to the FDOT district liaisons. The code in that solution was presented to internal staff, and a video of that presentation is available here.

Calling a service from code is straightforward. ChannelProvider.Default provides a net.tcp proxy to a service implementing the service contract specified by T at the appropriate environment level.

Example using .Net client

var proxy = ChannelProvider<IDotCodeService>.Default;
var codes = proxy.GetCodes("GEODIST").ToList();
codes.ForEach(x => Trace.TraceInformation("{0}: {1}", x.Value, x.Description));

Version 4.0 of the FDOT Enterprise Library follows the service-based approach of version 3.0 with several enhancements to improve maintainability and take advantage of improved support for WCF in .Net 4.0.

Click here to download a Visual Studio 2010 solution with a number of code snippets and examples presented to the FDOT district liaisons.


Example using jQuery

The following example uses the jQuery.getJSON() function to request a list of DoT codes from the DotCodeService http endpoint.

< script src="http://code.jquery.com/jquery.js" type="text/javascript"></script >      
< script type="text/javascript">
	$(document).ready(function () {
			$.getJSON('http://dot-wdap027/fel4_u/DotCodeService.svc/dotcodes/GEODIST?callback=?', null, function (response) {
			console.log(response);
		});
	});
</script >

Example using the client API

The client API is slightly more verbose because it includes two calls - the first to the discovery proxies for an endpoint, and a second call for the actual operation. During the discovery call, the API attempts to use the host address to determine the appropriate environment level for endpoint resolution. This library does not have any dependencies on any other library and supports cross-origin requests.


< script src="http://dot-wdap027.co.dot.state.fl.us/fel4_client/all.js" type="text/javascript"></script>

< script type="text/javascript">
  //create the service
  var svc = new FDOT.Enterprise.Client.Script.Services.DotCodeService({
    onReady: function() {
      //only access the service after it is ready.
      svc.GetCodes({
        columnName: "GEODIST",
        //service calls are asynchronous, so a success callback should be specified
        success: function(columns) {
          //print each of the returned columns
          for(var i = 0; i < columns.length; i++) console.log(columns[i]);
        }
      });
    }
  });
</script>


Another Example, Using Staff Service:


< script src="http://dot-edap027.co.dot.state.fl.us/fel4_client/all.js" type="text/javascript"></script>
	   
< script type="text/javascript">
  var StaffService = FDOT.Enterprise.Client.Script.Services.StaffService, svc = new StaffService();

  //multiple subscriptions to the ready event of the same service can be made in this way 
  //(as opposed to only specifying one "onReady" callback).
  svc.ServiceReady.subscribe(function () {
    //methods mirror their FEL4 counterparts, so get a staff search criteria object to do a search
    svc.GetNewStaffSearchCriteria({
      success: function(criteria) {
        //criteria can now be altered
        criteria.IncludeActive = true;
        criteria.RacfId = "KNATCSS";

        //run the search
        svc.SearchStaffBySearchCriteria({
          staffSearchCriteria: criteria,
          success: function (data) {
            //log the results
            console.log(data);
          }
        });
      }
    })
  });
</script>

Currently, this library appears to be out of date, and should be updated to match the services in FEL4.



Discovery Proxies

FEL v4 uses discovery proxies to resolve service endpoints. As services come online, they register with the proxies and continue to ping them at regular intervals so the proxies can provide an accurate list of what services are up, what contracts they implement, and what environment level they service. The following is live information from the proxies. Clicking on a service will navigate to its help page, which lists the available operations along with brief descriptions and usage examples. These help pages are generated on demand from the service metadata, so they are current.

discovery proxies
http://dot-wpap050.dot.state.fl.us/fel4_discovery/discoveryproxyservice.svc
http://dot-wdap027.dot.state.fl.us/fel4_discovery/discoveryproxyservice.svc



serviceenvironmentpathprotocols
ActiveDirectoryServiceUnitdot-wdap020.dot.state.fl.us/fel4_u/ActiveDirectoryService.svchttp | net.tcp
ActiveDirectoryServiceUnitdot-wdap027.dot.state.fl.us/fel4_u/ActiveDirectoryService.svchttp | net.tcp
ActiveDirectoryServiceUnitdot-wpap050.dot.state.fl.us/fel4_u/ActiveDirectoryService.svchttp | https | net.tcp
ActiveDirectoryServiceUnitfel4s.fdot.gov/fel4_u/ActiveDirectoryService.svchttps
ActiveDirectoryServiceUnitinterdev.dot.state.fl.us/fel4_u/ActiveDirectoryService.svchttps
ActiveDirectoryServiceSystemdot-wdap027.dot.state.fl.us/fel4_s/ActiveDirectoryService.svchttp | net.tcp
ActiveDirectoryServiceSystemdot-wpap050.dot.state.fl.us/fel4_s/ActiveDirectoryService.svchttp | https | net.tcp
ActiveDirectoryServiceSystemfel4s.fdot.gov/fel4_s/ActiveDirectoryService.svchttps
ActiveDirectoryServiceProductiondot-wdap027.dot.state.fl.us/fel4_p/ActiveDirectoryService.svchttp | net.tcp
ActiveDirectoryServiceProductiondot-wpap050.dot.state.fl.us/fel4_p/ActiveDirectoryService.svchttp | https | net.tcp
ActiveDirectoryServiceProductionfel4s.fdot.gov/fel4_p/ActiveDirectoryService.svchttps
ConfigurationServiceUnitdot-wdap020.dot.state.fl.us/fel4_u/ConfigurationService.svchttp | net.tcp
ConfigurationServiceUnitdot-wdap027.dot.state.fl.us/fel4_u/ConfigurationService.svchttp | net.tcp
ConfigurationServiceUnitdot-wpap050.dot.state.fl.us/fel4_u/ConfigurationService.svchttp | https | net.tcp
ConfigurationServiceUnitfel4s.fdot.gov/fel4_u/ConfigurationService.svchttps
ConfigurationServiceUnitinterdev.dot.state.fl.us/fel4_u/ConfigurationService.svchttps
ConfigurationServiceSystemdot-wdap027.dot.state.fl.us/fel4_s/ConfigurationService.svchttp | net.tcp
ConfigurationServiceSystemdot-wpap050.dot.state.fl.us/fel4_s/ConfigurationService.svchttp | https | net.tcp
ConfigurationServiceSystemfel4s.fdot.gov/fel4_s/ConfigurationService.svchttps
ConfigurationServiceProductiondot-wdap027.dot.state.fl.us/fel4_p/ConfigurationService.svchttp | net.tcp
ConfigurationServiceProductiondot-wpap050.dot.state.fl.us/fel4_p/ConfigurationService.svchttp | https | net.tcp
ConfigurationServiceProductionfel4s.fdot.gov/fel4_p/ConfigurationService.svchttps
ConnectionStringServiceUnitdot-wdap020.dot.state.fl.us/fel4_u/ConnectionStringService.svcnet.tcp
ConnectionStringServiceUnitdot-wdap027.dot.state.fl.us/fel4_u/ConnectionStringService.svcnet.tcp
ConnectionStringServiceUnitdot-wpap050.dot.state.fl.us/fel4_u/ConnectionStringService.svcnet.tcp
ConnectionStringServiceSystemdot-wdap027.dot.state.fl.us/fel4_s/ConnectionStringService.svcnet.tcp
ConnectionStringServiceSystemdot-wpap050.dot.state.fl.us/fel4_s/ConnectionStringService.svcnet.tcp
ConnectionStringServiceProductiondot-wdap027.dot.state.fl.us/fel4_p/ConnectionStringService.svcnet.tcp
ConnectionStringServiceProductiondot-wpap050.dot.state.fl.us/fel4_p/ConnectionStringService.svcnet.tcp
DocumentManagementUnitdot-wdap020.dot.state.fl.us/fel4_u/DocumentManagement.svcnet.tcp
DocumentManagementSystemdot-wdap027.dot.state.fl.us/fel4_s/DocumentManagement.svcnet.tcp
DocumentManagementProductiondot-wpap050.dot.state.fl.us/fel4_p/DocumentManagement.svcnet.tcp
DotCodeServiceUnitdot-wdap020.dot.state.fl.us/fel4_u/DotCodeService.svchttp | net.tcp
DotCodeServiceUnitdot-wdap027.dot.state.fl.us/fel4_u/DotCodeService.svchttp | net.tcp
DotCodeServiceUnitdot-wpap050.dot.state.fl.us/fel4_u/DotCodeService.svchttp | https | net.tcp
DotCodeServiceUnitfel4s.fdot.gov/fel4_u/DotCodeService.svchttps
DotCodeServiceUnitinterdev.dot.state.fl.us/fel4_u/DotCodeService.svchttps
DotCodeServiceSystemdot-wdap027.dot.state.fl.us/fel4_s/DotCodeService.svchttp | net.tcp
DotCodeServiceSystemdot-wpap050.dot.state.fl.us/fel4_s/DotCodeService.svchttp | https | net.tcp
DotCodeServiceSystemfel4s.fdot.gov/fel4_s/DotCodeService.svchttps
DotCodeServiceProductiondot-wdap027.dot.state.fl.us/fel4_p/DotCodeService.svchttp | net.tcp
DotCodeServiceProductiondot-wpap050.dot.state.fl.us/fel4_p/DotCodeService.svchttp | https | net.tcp
DotCodeServiceProductionfel4s.fdot.gov/fel4_p/DotCodeService.svchttps
EmailRelayServiceUnitdot-wdap020.dot.state.fl.us/fel4_u/EmailRelayService.svcnet.tcp
EmailRelayServiceUnitdot-wdap027.dot.state.fl.us/fel4_u/EmailRelayService.svcnet.tcp
EmailRelayServiceUnitdot-wpap050.dot.state.fl.us/fel4_u/EmailRelayService.svcnet.tcp
EmailRelayServiceSystemdot-wdap027.dot.state.fl.us/fel4_s/EmailRelayService.svcnet.tcp
EmailRelayServiceSystemdot-wpap050.dot.state.fl.us/fel4_s/EmailRelayService.svcnet.tcp
FinancialProjectServiceProductiondot-wdap027.dot.state.fl.us/fel4_p/FinancialProjectService.svchttp | net.tcp
FinancialProjectServiceProductiondot-wpap050.dot.state.fl.us/fel4_p/FinancialProjectService.svchttp | https | net.tcp
FinancialProjectServiceProductionfel4s.fdot.gov/fel4_p/FinancialProjectService.svchttps
IsaServiceUnitdot-wdap020.dot.state.fl.us/fel4_u/IsaService.svcnet.tcp
IsaServiceUnitdot-wdap027.dot.state.fl.us/fel4_u/IsaService.svcnet.tcp
IsaServiceUnitdot-wpap050.dot.state.fl.us/fel4_u/IsaService.svcnet.tcp
IsaServiceSystemdot-wdap027.dot.state.fl.us/fel4_s/IsaService.svcnet.tcp
IsaServiceSystemdot-wpap050.dot.state.fl.us/fel4_s/IsaService.svcnet.tcp
IsaServiceProductiondot-wdap027.dot.state.fl.us/fel4_p/IsaService.svcnet.tcp
IsaServiceProductiondot-wpap050.dot.state.fl.us/fel4_p/IsaService.svcnet.tcp
OrgCodeServiceUnitdot-wdap020.dot.state.fl.us/fel4_u/OrgCodeService.svchttp | net.tcp
OrgCodeServiceUnitdot-wdap027.dot.state.fl.us/fel4_u/OrgCodeService.svchttp | net.tcp
OrgCodeServiceUnitdot-wpap050.dot.state.fl.us/fel4_u/OrgCodeService.svchttp | https | net.tcp
OrgCodeServiceUnitfel4s.fdot.gov/fel4_u/OrgCodeService.svchttps
OrgCodeServiceUnitinterdev.dot.state.fl.us/fel4_u/OrgCodeService.svchttps
OrgCodeServiceSystemdot-wdap027.dot.state.fl.us/fel4_s/OrgCodeService.svchttp | net.tcp
OrgCodeServiceSystemdot-wpap050.dot.state.fl.us/fel4_s/OrgCodeService.svchttp | https | net.tcp
OrgCodeServiceSystemfel4s.fdot.gov/fel4_s/OrgCodeService.svchttps
OrgCodeServiceProductiondot-wdap027.dot.state.fl.us/fel4_p/OrgCodeService.svchttp | net.tcp
OrgCodeServiceProductiondot-wpap050.dot.state.fl.us/fel4_p/OrgCodeService.svchttp | https | net.tcp
OrgCodeServiceProductionfel4s.fdot.gov/fel4_p/OrgCodeService.svchttps
RacfServiceUnitdot-wdap020.dot.state.fl.us/fel4_u/RacfService.svcnet.tcp
RacfServiceUnitdot-wdap027.dot.state.fl.us/fel4_u/RacfService.svcnet.tcp
RacfServiceUnitdot-wpap050.dot.state.fl.us/fel4_u/RacfService.svcnet.tcp
RacfServiceSystemdot-wdap027.dot.state.fl.us/fel4_s/RacfService.svcnet.tcp
RacfServiceSystemdot-wpap050.dot.state.fl.us/fel4_s/RacfService.svcnet.tcp
RacfServiceProductiondot-wdap027.dot.state.fl.us/fel4_p/RacfService.svcnet.tcp
RacfServiceProductiondot-wpap050.dot.state.fl.us/fel4_p/RacfService.svcnet.tcp
SearchServiceUnitdot-wdap020.dot.state.fl.us/fel4_u/SearchService.svchttp | net.tcp
SearchServiceUnitdot-wdap027.dot.state.fl.us/fel4_u/SearchService.svchttp | net.tcp
SearchServiceUnitdot-wpap050.dot.state.fl.us/fel4_u/SearchService.svchttp | https | net.tcp
SearchServiceUnitfel4s.fdot.gov/fel4_u/SearchService.svchttps
SearchServiceUnitinterdev.dot.state.fl.us/fel4_u/SearchService.svchttps
SearchServiceSystemdot-wdap027.dot.state.fl.us/fel4_s/SearchService.svchttp | net.tcp
SearchServiceSystemdot-wpap050.dot.state.fl.us/fel4_s/SearchService.svchttp | https | net.tcp
SearchServiceSystemfel4s.fdot.gov/fel4_s/SearchService.svchttps
SearchServiceProductiondot-wdap027.dot.state.fl.us/fel4_p/SearchService.svchttp | net.tcp
SearchServiceProductiondot-wpap050.dot.state.fl.us/fel4_p/SearchService.svchttp | https | net.tcp
SearchServiceProductionfel4s.fdot.gov/fel4_p/SearchService.svchttps
StaffServiceUnitdot-wdap020.dot.state.fl.us/fel4_u/StaffService.svchttp | net.tcp
StaffServiceUnitdot-wdap027.dot.state.fl.us/fel4_u/StaffService.svchttp | net.tcp
StaffServiceUnitdot-wpap050.dot.state.fl.us/fel4_u/StaffService.svchttp | https | net.tcp
StaffServiceUnitfel4s.fdot.gov/fel4_u/StaffService.svchttps
StaffServiceUnitinterdev.dot.state.fl.us/fel4_u/StaffService.svchttps
StaffServiceSystemdot-wdap027.dot.state.fl.us/fel4_s/StaffService.svchttp | net.tcp
StaffServiceSystemdot-wpap050.dot.state.fl.us/fel4_s/StaffService.svchttp | https | net.tcp
StaffServiceSystemfel4s.fdot.gov/fel4_s/StaffService.svchttps
StaffServiceProductiondot-wdap027.dot.state.fl.us/fel4_p/StaffService.svchttp | net.tcp
StaffServiceProductiondot-wpap050.dot.state.fl.us/fel4_p/StaffService.svchttp | https | net.tcp
StaffServiceProductionfel4s.fdot.gov/fel4_p/StaffService.svchttps

While FEL v4 uses the discovery proxies, they're not restricted to FEL services only. The FEL services derive from FDOT.Enterprise.Discovery.DiscoveryAnnouncementService. By descending from that base class, and with some minor additions to the web.config, any WCF service can register itself with the proxies. In doing so, it will appear on this page and will be immediately visible to other applications. FDOT.Enterprise.Discovery is currently not available in NuGet, pending documentation and a simple example service.

ScrewTurn Wiki version 3.0.4.560. Some of the icons created by FamFamFam.