Introduction
I started
working as CAD-GIS engineer on 2nd of March, and ever since I haven't been
posting anything new.
Recent activity
As I try to
build a recap on what I have done so far I thought I’d share what’s been realized
so far. Although I won’t be sharing the whole project here, I’ll be posting
some portions and insights on how I dealt with the given assignment.
Let’s start
by explaining what I had to accomplish.
My first small project
Too save
you from a long story … In short …
I had to
compare the contents of 2 AutoDesk Autocad DWG drawings on a few layers. Two
technical drawers started on the same drawing and had to classify some objects
on those layers. Because both can classify them differently, I had to compare
the differences once they end their classification.
They had to
be able to see and localize the differences and fix them in an appropriate
manner afterwards.
That’s the
project in a nutshell J
Architecture
My goal was
to build a Data Access Layer that has the potential to be used in other
projects as well. I also integrated some classes I wrote 1-2 years ago to make
the application much more stable and flexible. I did the best I could to build
a Model-View-ViewModel environment.
Let’s start
by sharing a picture of the architecture I used within the project.
Database Assembly DAL
The Data Access Layer is only the start of what should become a wrapper around the Autocad Libraries. The wrapper allows you to decouple layers and gives you the possibility to Unit-Test your project with sample data without the necessity of having a Autodesk product at hand to test the decoupled layers.
Although this method seems tedious at first, it should result in a gain of speed when developing new applications.
Objective DAL
Basically you're building a library that gives you access to clean and tested code which reduces bugs and errors in future development.
At the moment, I am only working inside a Map environment, but if adjusted slightly, this setup should allow you to extend the framework to support programming towards other CAD Autodesk products build on AutoDesk AutoCad and expose their API.
Looking at
this picture, it is quite obvious that using other products, build on AutoDesk
Autocad's basic module, will end up using a AutoDesk Autocad Drawing as well.
Object oriented programming and libraries
Because we
program in an object oriented environment it's an ideal opportunity to exploit
this and build a reusable library. Although this is a first step to build
something flexible and reusable, the path towards a good library won't be
without it's pitfalls and setbacks.
What might be reusable and valid code for
your library in one project, might become unusable in certain particular
situations. I'll try to prevent that as much as possible but I still have a
long way to go to become a better object oriented programmer to exclude that
from happening completely. Using the correct methods and pattern to build
robust and flexible libraries will be a big challenge.
If you talk
about objected oriented design, libraries and flexible code, we can't exclude
the use of interfaces. That's why I'll be using those throughout this project
because they are very powerful and give you the possibility to program flexible
environments.
What's next?
In a next post I'll be explaining what I've done with the DAL and I'll create an example in C# demonstrating what the methods inside the classes do.
What's next?
In a next post I'll be explaining what I've done with the DAL and I'll create an example in C# demonstrating what the methods inside the classes do.
No comments:
Post a Comment