Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

3 Day Coding Challenge: Creating MySQL Admin. for ASP.NET

DZone's Guide to

3 Day Coding Challenge: Creating MySQL Admin. for ASP.NET

Read on in order to follow a tutorial on how to create a MySQL admin. for ASP.NET.

· Database Zone ·
Free Resource

Download "Why Your MySQL Needs Redis" and discover how to extend your current MySQL or relational database to a Redis database.

I have just finished my "3 days coding challenge" and released a new version of Phosphorus Five, containing a stable, extremely secure, and unbelievably lightweight MySQL admin module that allows you to do most of the important tasks you'd normally need MySQL Workbench or PHPMyAdmin to perform. It features the following:

  • Automatic Syntax Highlighting of your SQL.

  • AutoCompletion of your SQL (click Ctrl+Space/Cmd+Space).

  • Paging with a "never-ending scrolling" experience.

  • Saving SQL snippets, and loading them, to allow you to build a "library" of snippets.

  • Automatically creates pie charts and column charts if your dataset supports it.

  • Rock solid security!

  • Plugin support, +++.

You can see a 3-minute long video of how the system works here.

In addition to the above features, the system is rock solid secure. This was my primary concern, in fact, since my current Linux box gets thousands of HTTP requests every day, from malicious IPs, attempting to break into PHPMyAdmin, which I don't even have on my box for the record. In fact, you can't even see or read its connection string unless you're logged in as root since this is stored in the web.config file, which has "extra protection" in the system. Its usernames and passwords are stored in a file that has added protection and they aren't even available for a root account since the passwords are stored as server-side salted and hashed strings. So, even if a malicious hacker should get a hold of your password file — which should be impossible — he still can't figure out your passwords.

Multiple users is a given. The system also comes with an installation script, which allows you to install it on a Linux/Apache server in 5 minutes, further tightening down the box' security, closing all ports excepts 80, 443 and 22 (SSH) — creating automatic redirect rules from port 80 to port 443, to automatically redirect to encrypted access, if the user is trying to access it insecurely. This script also installs an SSL key pair, and auto-renews it every 90 days. Etc, etc, etc, etc. There are no guarantees when it comes to security. However, this is as close as you come. At least assuming you trust Mono, Linux, MySQL, and Apache.

It doesn't have all the features that PHPMyAdmin or MySQL Workbench have — obviously — since I've only spent three days implementing it, but already I believe it should be a valuable add-on in any sys-admin's/db-admin's toolbox. Two things I'll probably end up implementing in the near future, which I miss myself, is creating and restoring backups, and "in-place editing" on its datagrid. Below are two screenshots of the system. First its "dashboard."

Image title

Then, how it looks if you choose to display your result set as a pie chart, which is automatically done by simply clicking a button, if your result has less than 40 records and two columns, the values in your second column can somehow be converted into a number of some sort.

Image title

The system itself comes with 7 skins out of the box, in addition to 57 different code themes, allowing you to easily change its colors if you're not happy with my default choice. However, to change its "theme," you'll need to do this from Hyper IDE. I still haven't implemented a "settings" button to modify its theme from the system itself.

The system is called (for obvious reasons) — Hyper SQL, and you can download it here.

Read "Developing Apps Using Active-Active Redis Enterprise" and discover the advantages over other active-actve databases.

Topics:
asp .net ,web ,mysql ,database

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}