City of Medford A road construction application. Public Works Department Goal Notify citizens and media of road hazards and impediments. Audience: –TV.

Slides:



Advertisements
Similar presentations
Svetlin Nakov Director Training and Consulting Activities National Academy for Software Development (NASD) ASP.NET 3.5 New Features.
Advertisements

Custom REST services and jQuery AJAX Building your own custom REST services and consuming them with jQuery AJAX.
The Kentucky Transportation Cabinet’s use of Server Object Extensions (SOEs) Scott Dickison, GISP.
Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
Developing HTML5 Application using MVVM pattern Pekka Ylenius.
Landscape Change Mapper Ryan Feather and Dan Halloran 4/30/15.
Calendar Browser is a groupware used for booking all kinds of resources within an organization. Calendar Browser is installed on a file server and in a.
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
What’s new in ASP.NET 3.5? Mike Ormond Developer & Platform Group Microsoft Ltd
Visual Organization and Website Design Unit 5 (no CSS) September 19.
SharePoint Saturday Sponsors Gold Bronze Custom REST services and jQuery AJAX Building your own custom REST services and consuming them with jQuery AJAX.
SQL Reporting Services Overview SSRS includes all the development and management pieces necessary to publish end user reports in  HTML  PDF 
RSS RSS is a method that uses XML to distribute web content on one web site, to many other web sites. RSS allows fast browsing for news and updates.
Internet Research Finding Free and Fee-based Obituaries Online.
Prof. James A. Landay University of Washington Spring 2008 Web Interface Design, Prototyping, and Implementation Rich Internet Applications: AJAX, Server.
Agenda What is AJAX? What is jQuery? Demonstration/Tutorial Resources Q&A.
Presented by…. Group 2 1. Programming language 2Introduction.
1 Team Management System (TMS) By DACCIT Pvt. Ltd., Indore.
Sms vs. Normal Advertisements To place an AD in a newspaper ONCE will cost you anything between R500 to R15000 Your AD in a Newspaper with a circular of.
MVC New release IE8 Beta 1 Deep Zoom (sea dragon) Silver light 2.0 Beta 1 Expression Blend 2.5 Preview Instant Messaging API Enhancements to Virtual Earth.
JavaScript & jQuery the missing manual Chapter 11
Day 17. » Client side and Server side » Since PHP is Server side and can output anything we want, we can output to JS. » With JS libraries, we can create.
Introduction to ArcGIS API for JavaScript
BIT 286: Web Applications Lecture 04 : Thursday, January 15, 2015 ASP.Net MVC - Models.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
CS378 - Mobile Computing App Project Overview. App Project Teams of 2 or 3 students Develop an Android application of your choosing subject to instructor.
E X P E R I E N C E Y O U R A M E R I C A Natural Resource Monitoring Database Development Using SQL Server A Comparison Between Visual Basic/ADO.Net and.
Windows Azure Tour Benjamin Day Benjamin Day Consulting, Inc.
U.S. Environmental Protection Agency WATERS Status Update
Hopping On the RIA Train to Solon with Flex Tim Howard GIS Coordinator City of Solon September , 2011 | Hyatt Regency Hotel | Columbus, Ohio.
Do You Have a Web Site?. Everyone does, don’t they?
1 Integration and Design – Part 5 Bonus at the end of the hour – how to invent a foam football… using the “spiral” process.
Web Services An introduction for eWiSACWIS May 2008.
Extending ArcGIS for Server
About Me I have been working with sharepoint since 2008 My blog:
Optimum route finder to the point of interest through public transport By Pratik Mehta Submitted to Dept. Comp. Science and Engineering IIT-Bombay.
Enabling High-Quality Printing in Web Applications
StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.
Sponsors Gold Silver Bronze Custom REST services and jQuery AJAX Building your own custom REST services and consuming them with jQuery AJAX.
ASP/ASP.NET: Tricks and Tips How to get Microsoft’s Programming Language to work for you By Wade Tripp Park University
Lap Around Visual Studio 2008 &.NET 3.5 Enhancements.
2006 Adobe Systems Incorporated. All Rights Reserved. 1 Adobe RIA Technologies: Adobe Flex 3 Cornel Creanga Platform Evangelist
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
New perfSonar Dashboard Andy Lake, Tom Wlodek. What is the dashboard? I assume that everybody is familiar with the “old dashboard”:
Sponsors Gold Silver Bronze Custom REST services and jQuery AJAX Building your own custom REST services and consuming them with jQuery AJAX.
Charles Dunbar, Ben Kallal, Ankit Patel, Peter Purcell, Kody Reynolds.
Extend the Operations Dashboard with Custom Widgets (and more)
Mtivity Client Support System Quick start guide. Mtivity Client Support System We are very pleased to announce the launch of a new Client Support System.
Trunica Inc. 500 East Kennedy Blvd #300 Tampa, FL Cross Platform Mobile Apps With Cordova and Visual Studio 2015 © Copyright 2015.
Extending the Operations Dashboard
UG Project 2008 With LINQ & AJAX Idan Hodor Boaz Farkash Supervisor: Ilana David.
MongoDB First Light. Mongo DB Basics Mongo is a document based NoSQL. –A document is just a JSON object. –A collection is just a (large) set of documents.
Presentation.
A Technical Overview Bill Branan DuraCloud Technical Lead.
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
Jean-Claude Trachsel Senior Consultant, Trivadis AG The good news.
Workflow in Microsoft Office SharePoint Server Jessica Gruber Consultant Microsoft Corporation.
Modern Development Technologies in SharePoint SHAREPOINT SATURDAY OMAHA APRIL, 2016.
by Ondrej Rafaj Open source and other useful projects for iPhone / iPad.
GroupRocket.net How to Choose Collaboration Software for Your Company Click this URL – GroupRocket.netGroupRocket.net.
Danijel Malik Visual Studio ALM MVP Build 2014 What’s new for Visual Studio 2013 and Visual Studio Online.
Software services delivering SharePoint, Mobile, and Business Intelligence solutions Creating mobile applications that integrate with SharePoint 2013 on-
SportSuite Forms – Invitations
Introducing the Microsoft® .NET Framework
Top 8 Best Programming Languages To Learn
AJAX and REST.
Ajax and JSON Jeremy Shafer Department of MIS Fox School of Business
Presentation transcript:

City of Medford A road construction application

Public Works Department Goal Notify citizens and media of road hazards and impediments. Audience: –TV –Newspapers –Citizens –City Staff –Public Safety

A manually managed list Bulk s sent to all users Must call department to be added or removed No mapping, just a description The old system

What can GIS do for you? Standardize notifications Capture data Create maps of work zones –Daily Summary Map –Daily Update –News Release Enable citizens to sign up Create output in KML Consistent URL for users to access road construction info

Flex? –We are a.NET shop  go with your strengths So, which API? No flex!

Silverlight? –We love the functionality and rich user experience –But … this is an internal only application We want to stand up quickly So, which API? No silverlight!

Javscript? –I hate Javascript! No intellisense or real debugging in Visual Studio Javascript can get sloppy... compiled code is organized –I love Javascript! ArcIMS got us all very comfortable with Javascript Javascript is fast JQuery and Dojo are awesome –$ajax() calls to services are so fast and easy »Asynchronous REST calls keep things moving –UI Libraries get us most of the user experience that we want So, which API?

JAVASCRIPT WINS!!!

How it is usedHow it is used (City website) News Release PDF Daily Update PDF How it is usedHow it is used (Events) How it is usedHow it is used (MedfordMaps) Video

DNA of the System Web applicationConsole application Medford MapsServer Object Extension

Web application MVC2 LINQ to SQL JQuery Dojo Javascript API SOE LINQ to SQL Databases ArcGIS Server Public Website SOEREST

Console application SOAP SDK SOE System.Data Scheduled task ArcGIS Server Public Website Databases SOAPSOE

ISSUES

LINQ to SQL Issues Joins! – I typically design my joins in SQL Server Mgmt Studio … easy SQL Looks something like this: SELECT dbo.mp_Users.UserID,dbo. mp_Users.SiteID, dbo.mp_Users.Name, dbo.mp_Users.LoginName, dbo.mp_Users.Lowered , dbo.mp_Users.PasswordQuestion, dbo.mp_Users.PasswordAnswer, dbo.mp_Users.Pwd, dbo.mfr_MailingListUser.MailingListID, dbo.mfr_MailingLists.MailingListName, dbo.mfr_MailingLists.ApplicationName, dbo.mfr_MailingLists.IdentifierName FROM dbo.mfr_MailingLists INNER JOIN dbo.mfr_MailingListUser ON dbo.mfr_MailingLists.MailingListID = dbo.mfr_MailingListUser.MailingListID INNER JOIN dbo.mp_Users ON dbo.mfr_MailingListUser.UserID = dbo.mp_Users.UserID In LINQ it becomes something like this: var mailingListUsers = from u in db.mp_Users from mlu in u.mfr_MailingListUsers join ml in db.mfr_MailingLists on mlu.MailingListID equals ml.MailingListID select u; return mailingListUsers;

LINQ to SQL Issues Database Design – LINQ to SQL strongly typed objects are really nice to use Though, I am finding that I like the Silverlight / WCF model (as I work more with Silverlight) –My database design techniques need to change up a bit Focus more on business objects than on normalization (not mutually exclusive, but can be different) I have always avoided trying to create database objects that look like "objects", rather I just think in terms of how to normalize. –Now is the time to rethink my database design strategies and think about the database as an active participant in my application, rather than simply a storage mechanism for the data... am still sorting this idea out.

MVC Issues Getting accustomed to the MVC way of doing things – Dropdown lists This was a really kind of odd thing for me to get a handle on. It is seemingly trivial, but took some adjustment to figure out public class ContractorRepository { public IQueryable ReturnAllContractors() { return db.Contractors; } public class ProjectsController : Controller { ContractorRepository contractorRepository = new ContractorRepository();... public ActionResult Create() { SelectList contractors = new SelectList(contractorRepository.ReturnAllContractors(), "ContractorID", "Name", project.ContractorID); ViewData["Contractor"] = contractors; }

MVC Issues Serializing JSON –This was eventually another simple solution … eventually. –As with most problems in MVC, there is always an answer public JsonResult GetProjectGroups() { var projectGroups = from p in constructionProjectGroupRepository.ReturnAllProjectGroups() select new { ConstructionProjectID = p.ConstructionProjectID, ConstructionProjectGroupID = p.ConstructionProjectGroupID, StartDate = (DateTime?) p.StartDate, EndDate = (DateTime?) p.EndDate, ReleaseDate = (DateTime?) p.ReleaseDate, Date Sent = (DateTime?) p.Date sSent, AllDay = p.AllDay }; return Json(projectGroups, JsonRequestBehavior.AllowGet); }

MVC Issues Testing and Mail –This application uses Active Directory to get many of the recipients. –Debugging the mail is a huge pain There have been situations where random settings at the network level have prevented users from receiving s Also, how users are stored in Active Directory is an issue when searching for valid Active Directory users –Normal users = 512 –Users who don’t need a password = 544 –Not a good test for valid users depending on how your AD is set up.

SOE Issues There are some large hurdles related to converting to Server Object Extensions –The difference between wrapper functions and business functions Wrapper functions handle to communication back to the client Business functions do the work … called from wrapper function (of the same name) –Registering the SOE We had some registration issues –Our servers (and dev machines) are 64 Bit –The short story … we needed to compile to 32 bit.. long story was longer –Not a whole lot of really good documentation Or in some cases, too much disparate documentation –SOE design on the ArcGIS Server Really designing how SOE’s relate to services on our server is still evolving Probably need to spend more time with Property Pages Awesomeness –No Server Context All ArcObjects – so very nice! –Once you get beyond the SoapMessaging stuff, it is just plain old ArcObjects Steep learning curve initially, but once you get over the hurdles it is smooth sailing

ESRI Support Issues ESRI Support is phenomenal! We buy developer support –Am the only developer in our group, so it is good to have someone to help me see things differently –Get pointed in the right direction –Quickly escalate issue if necessary –I enjoy talking with them and just working through issues with them –Best thing from ESRI we have ever purchased! Shoutouts (for help with SOE configuration) –Xuening –Rahat –Sumedha –Nagendra Shoutouts (for general help) –Yamini –Nakul Thanks ESRI Support!

Thanks! David Renz /