Wrapping up my first C# project.



I've wanted a desktop database program that I could customize for some time now. Actually there have been a number of programs I've wanted that require a database. But since Microsoft Access is a bit costly and Open Office has yet to release good documentation on programming their "Base" software I've been out of luck.

Recently I've been learning C# well enough that I decided to dive into this project to see if I could do it. Turns out that I CAN! I've found C# to be really easy to pick up.

As a result of my study efforts, I developed a rudimentary database engine and a contacts program that implements this engine.


I found a bogus contacts list CSV file on the internet and wrote a simple import function so I could experiment with my database. So all these contacts are BOGUS (or at least they should be).

Once I had the primary database function set up in the engine I could write an "add-on" library that the engine incorporates into itself and displays as an MDI child window. In this case, it's my "Contacts" program.

In the Contacts program I used Tab Pages with the tabs removed. Then I used button icons so I could switch between the search index page and the detail page. This gives the Contacts form a much cleaner look.


Some of the detail labels are clickable links. For example, clicking the "Address" label will open Google Maps in the default browser to that specific address. Clicking an "Email" link will open the default Email client with that specific email address. The "Phone" links can be used with VoIP programs such as Skype.

The main engine has it's own settings and configuration page. But for Contacts settings I used a trick that grabbed a tab page from a pre-made form in the Contacts program and inserted it into the main settings window. Instead of using button icons I opted for a tree view control.


I searched around for an easy way to implement printing. The best and easiest solution I could come up with was the "web browser" control which has built in printing capability. At least this way I could print contact details and contact lists without too much effort.


Adding a repeating header to each page of the printout was simply a matter of using the right HTML tags and CSS properties.


So far this database engine can use SQLite v3.0 or Microsoft Jet 4.0 (for .mdb files). I plan to implement other database management types such as Microsoft SQL, MySQL and PostgreSQL.

This has been going really well and I'm hoping to have this part of the program wrapped up soon. Then I'll begin on the second phase of my database experiment. I think in total I'll have about 3 programs I've been wanting to write using this engine.

C# has made this really easy for me to do and I've enjoyed programming in this language.


Do keep in mind I do Remote Technical Support for Windows and Mac computers. I also do Web Development and programming. So if you need any of these services feel free to get in contact with me at:

Comments

Popular posts from this blog

Security Bulletin: Microsoft Patch Tuesday and Netflix Freeze scam

Security Bulletin: Ending Windows 7 support, infected phone apps, ransomeware and hacked encryption