# Monday, July 14, 2008

Recently, I purchased a copy of .  I'm not even going to pretend I've scratched the surface of what ReSharper can do, but I can assure you it's a massive time saver when creating classes from scratch.  I'm furiously plugging away, implementing an ORM for RADE, and to do that I needed to create a lot of classes pretty much from scratch (oh, and do I have a few things to say about that, but that's for another day).  Let's look at a simple example.  To get things started, create a new class.  Select the folder in the solution explorer, and press Alt+Insert:

ReSharper Class Creation

Press enter and you are prompted for the class name.  So Visual Studio has this of course, but this is a small example of some of the time savings you can achieve.  Enter the class name and you start off with an empty class.  Next, lets define a couple of private members.   Let's run with the following example.

   1: namespace RADE.BO.Domain
   2: {
   3:     public class SampleClass
   4:     {
   5:         private Int32 _ID;
   6:         private String _Description;
   7:         private Int64 _BiggerInt;
   8:     }
   9: }

 

Simple class.  Three member variables.  Here is where the big time savers come in.  Next, click Alt+Insert again and you will be prompted with the following options:

Some ReSharper Code Generation Tools

Choose Properties.  You will now be given the option to select one or many fields, set the access rights, read only and virtual properties as well a bunch of others. 

ReSharper Properties Generator

Execute that and all of your get/sets are defined.  My one complaint is that ReSharper is not maintaining the type on the properties.  My Int32's become int, and Int64's become long's.  Apparently this is slated to be fixed.  

So yes, this sample class is tiny, but the time savings on larger classes, or projects full of classes are significant.  The last feature I've been using extensively in this project is the generate constructor tool.  Again, a form is displayed with the defined properties, select the ones you want and boom.  You can create half a dozen different constructors in seconds.  I've created a full object model on, roughly 20 different mildly complex objects in less than an hour, around midnight on a Sunday =)

Some of the other things ReSharper does is suggest code cleanup ideas by removing unused directives, easy execution of , improved code completion.  I encourage you to check it out, .

Technorati Tags:
Sunday, July 13, 2008 11:43:17 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |   |  Trackback
# Friday, July 11, 2008

Since moving to Vista x64 I've had a heck of a time with Oracle clients.  The one thing I could not get working until tonight was ODP with Visual Studio / .NET.  Finally I found a solution.

First, download and install . (Link requires registration)   This should get the 32bit stuff installed.   I'm still using an Oracle 10g R2 server.  You will likely need to grab a copy of the TNSnames.ora for your existing client folder and place it in the appropriate tree of the 11g product home.

This however is not enough to get .NET working with ODP.  Go to the folder where you extracted the zip.  We need to find the Oracle.DataAccess.dll.  This can be found in the file named filegroup4.jar, in the stage\components\oracle.ntoledb.odp_net_2.  Winrar will open .jar files if needed.  Extract the Oracle.DataAscess.dll file.

For now, I've put a copy of this file in my projects lib folder.  I then added a reference directly to this file from all projects that need ODP access. 

Keep in mind - before you ship you may want to remove this reference and ensure that the .DLL file doesn't get included in your build.  This should get your Vista x64 box developing with ODP.

To Oracle - come on guys.  Give us some Vista x64 love!

Technorati Tags: ,,,,
.Net | ODP.NET | Oracle | Vista | x64
Thursday, July 10, 2008 11:00:33 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |   |  Trackback
# Monday, July 07, 2008

I had another problem with Mapguide Enterprise 2009 recently pertaining to objects not being selectable.  Unlike my previous post on errors caused by layers, no errors were logged to the Mapguide server logs.  This problem is very likely specific to the enterprise version, as I was using the Autodesk FDO Provider for Oracle.

So a data connection was created pointing to the Oracle 10g schema.  This database contained a number of tables containing Lat/Long point geometry entities.  I created a layer pointing to the table in question.  I created a layer pointing to that data connection.  At this point the entities showed up as expected in the both the DWF and the AJAX viewers.  Once again, I could not select any of the entities.  I checked the server logs, no errors were reported.

In troubleshoot mode, I tried just about everything I could think of but nothing would work.  I simplified the theme, created new layers, removed all other layers from them map.  Eventually I created a new layer from another table.  Luckily, the entities on this layer could be selected.  It must be a problem with the underlying data.  On a hunch, I checked the table definitions - specifically looking at primary keys.  The selectable layer had a primary key defined, the problem layer did not.  (Good thing I cannot take credit for creating this source data =))

So, I created a primary key on the problem table, did a touch on the layer definition (opening the definition in Studio and saving it without any changes) and then left for twenty minutes.  I'm thinking there is some sort of caching going within the server, and I'm not sure how it works.  Immediately reloading the map after adding the primary key did not work - the entities were still not selectable.  When I came back - the items in the viewers were now selectable.

So long story short, if again you cannot select map entities using the Autodesk FDO Provider for Oracle ensure that the source table has a primary key defined.  Hopefully this saves someone some grief =)

Monday, July 07, 2008 2:41:35 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |   |  Trackback
# Sunday, June 29, 2008

Lance now has a blog!  Lance has been working in the / Geospatial space for 25 years.  He holds a masters degree in civil engineering from .  It's entirely like that if you've been in the Autodesk market for an extended period of time, you've met Lance.

A brief history from what I can recall.  He co-founded Rosal Systems, back before the earth cooled. (Sorry Lance, I had to get that one in there).  Rosal split up to become Software Support Ltd.  I have fond memories of SSL.  My first 'job'. At around the age of 6 to 8 or so, I was the official SSL floppy disk formatter.  The kind folks at SSL paid me 10 cents per floppy formatted - and thanks to a circular layout of the office I devised a system wherein after hours I used every machine in the building in a big floppy disk formatting loop.  At the time, my biggest goal was to purchase a "Floppy Disk Formatter" machine - I knew if I had such a machine I would be made of money and could buy all the and games I could handle.  I knew I would one day dominate the floppy disk formatting market.  Fortunately, I never did get such a device, as the market for floppy disk formatting was decimated when some genius decided to sell pre-formatted floppies....

Anyhow, SSL became Generation 5 technology, which then became Kanotech Information Systems.  It was at Kanotech that I started my career in this field...back in like 97 or so.  Sheesh!  Anyhow, thanks for the job Lance!  Eventually Lance moved on to a position at Autodesk.  Back to the present.   Lance is the other mind behind RADE.  We've worked very closely together for the past four years on RADE and here we are today.

So check out Between the Elephant's Toes, Lance's blog wherein he will regale you with tales of the and other topics on the industry, RADE, or whatever else he comes up with =)

Sunday, June 29, 2008 2:20:45 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |   |  Trackback

In response to numerous queries, I put together this post to help answer the question – what is RADE (formerly known as WebRADE). RADE is a development framework that delivers custom web applications using existing data without having to write a single line of code.  RADE provides a rich set of functions including security, prompting queries, configurable reports and charting using existing database and mapping data, without the need for expensive consultants and programmers.

 

RADE includes a configurable web mapping interface that incorporates queries, reports, charts and basic editing tools. These “components” work with the data you have stored in one or more databases (Oracle, SQL Server, Access) and can be used by any application made with RADE. Right now RADE supports MapGuide 6.x, we are in the process however of extending the mapping interface to allow RADE applications to use multiple web mapping engines including MapGuide 6.x, MapGuide Enterprise 2009 / Mapguide Open Source 2.0 and Google Maps. Other mapping engines may be implemented in the future.

 

An application made with RADE is a collection of queries, reports, charts, and of course users/groups managed by the integrated RADE security model. They are your custom solutions founded upon the bedrock that RADE provides.

 

A user with basic knowledge of their underlying database structure can design customized queries, reports, and charts in a matter of hours. Solutions can be as broad or as narrow as needed depending on the requirements of the organization. All of this work is done using RADE’s web-based administration tools.

 

Before RADE, I worked for a provider of customizable desktop GIS, automated map standardization, and facilities management solutions for both government and industry. GIS/Geospatial implementations involved a lot of customized work, specific to particular clients, and could seldom be easily reused. This is when and where I came to realize that there had to be a better way to develop solutions.

 

As RADE developed, we put it to the test and have been developing a series of standalone applications build on its framework. With RADE, we are saving time on projects which results in significant cost savings and rapid delivery for our clients.

 

Out of curiosity one day, I connected RADE to my accounting and bug-tracking databases just to see what would happen. With a little research into the underlying databases — I was able to create both queries and reports on both data sources. No map required.

 

As a developer I have projects that require me to extend RADE with more proprietary code. Take for example. FloorView is a complete vertical application built on top of RADE. It uses the RADE security/authentication system in addition to the RADE queries and reports — but is in itself a full application. This allowed us to leverage the existing functionality saving time, and money. In addition to this, FloorView appears as a RADE application when authorized users login to the site keeping all of the RADE based applications in one convenient location.

 

In addition to FloorView a number of other vertical applications have been developed on top of, or using RADE. They include solutions for address management, disaster planning and recovery, sexual predator and offender tracking, crime mapping and analysis, oil and gas lease management and service request tracking and management.

 

The best analogy I have for RADE is “Developer in a Box”.  Much of the work is already done for you...

Saturday, June 28, 2008 11:21:30 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |   |  Trackback