News: SUPER SPECIAL OFFER: Upgrade to EZGUI 5.0 Pro for only $39 ! (until 04/30/2015)
New users special offer:  EZGUI 5.0 for only $99 (until 04/30/2015)

Check out our online Video Tutorials ! http://www.youtube.com/user/ComputerWorkshopSoft

TO REGISTER on Forum, contact tech support: http://cwsof.com/support.html
 
Pages: [1]   Go Down
  Print  
Author Topic: Why EZGUI 5.0 Pro ? (The EZGUI mindset)  (Read 3811 times)
0 Members and 1 Guest are viewing this topic.
Chris Boss
Administrator
Hero Member
*****
Posts: 2734


View Profile
« on: December 11, 2013, 04:54:21 PM »

Having worked hard on an app for the Intel App Innovation contest (see: http://www.youtube.com/watch?v=LrmPXtbz4fs&feature=youtu.be  ) I came to appreciate something about EZGUI. I appreciated more, why I created it.

In the community of PowerBasic programmers, EZGUI is often compared to other third party products which are visual designers. Well, to set matters straight, EZGUI is not a Visual Designer, plain and simple. I didn't designed it to be a visual designer. Now of course, I appreciate the value of a visual designer for RAD development, which is why I created my own designer specific to EZGUI, but this still does not mean that EZGUI is a visual designer.

So why did I create EZGUI ?

For a number of reasons, one being the desire to shield myself from the Windows API. I wanted an easier API to deal with, which didn't have the problems the WIN32 API has. I wanted an API which was smart and would dynamically deal with the different versions of Windows. I wanted an API which was less prone to coding errors (for example EZGUI does parameter checking to make sure you don't pass values which could crash your app). I wanted an API which was more friendly to PowerBasic (ie. used native PB strings, etc.).

But one of the biggest reasons I created EZGUI was so I could better tap into the more advanced features of Windows. Maybe in the past one might be satisfied with a simple user interface, but not today. In the Microsoft world, they have moved beyond the WIN32 API. Development engines like Windows Presentation Foundation have changed things a lot. The kind of UI's that PowerBasic programmers create look simple in comparison. Simply put, I wanted more.

What few appreciate is how low level EZGUI really is. Yes, I said low level. EZGUI has a number of high level features in it, but is it also very low level and more easily accessable in the low level areas than the WIN32 API is. In a world where many prefer to just drag and drop high level prebuilt components into their apps, myself I like to be able to write my own customized user interfaces. I don't want to be limited. I want to be able to create whatever I need, rather than live with what is already prebuilt by someone else. It is EZGUI's unique built in customization features which really make it different. You can even see this with EZGUI's new autosize engine (resize controls automatically when form is resized). While the engine is very powerful, it also has a number of ways to customize it at a more low level. There is a hook feature and an event feature, where you can let the autosize engine precalculate based on rules and then tweak those values beyond what the rules allow.

It is this ability to customize that excites me the most about EZGUI. Using ownerdraw I can create totally new and unique controls, which don't exist in other apps. But EZGUI even does more. Rather than simply provide an alternate way of accessing the features in Windows, EZGUI goes further and provides new features not found in the WIN32 API. EZGUI's Canvas control is a good example of this. EZGUI builds upon some core features in Windows (ie. DIB's) to create new higher level features, such as its 2D Sprite engine. Now at first glance this sounds like EZGUI was designed for building games. Actually EZGUI was designed for building business apps and unique consumer apps far beyond just games. The sprite engine provides a feature that should have been in Windows in the first place. That is the ability to have non-rectangular image objects which are separate from their background. Yes, sprites were added to DirectX, but that targets games. EZGUI was designed for building business apps and sprites are a means to building more animated and useful user interface controls. One could even build an entire app just using the Canvas control and using sprites for the user interface objects, if you wanted to. Sprites can do frame animation which can be useful for more realistic, animated user interfaces (ie. build a simple toggle switch control or maybe a LED control). The point is that EZGUI gives you the tools to build something totally new and different, rather than be limited to what the WIN32 provides.

EZGUI is also high level, but in areas where it makes a difference. It comes with a number of custom controls built in, but ones which are more universal in nature. For example the MCI control gives you access to a variety of multimedia features in Windows and without the need to learn the MCI command set in the Windows API. Play videos, MP3's, wave files and midi music. EZGUI has a Property Listbox control, which is one control which is more commonly used in many apps today. The native WIN32 does not have a property listbox and yet this kind of control is one of the most useful ones for building a modern user interface. EZGUI taps into OpenGL with its new glCanvas control, but is is OpenGL made easy ! By should should 3D be limited to full screen or single windowed apps. EZGUI uses OpenGL because it is well suited to being used in a child window (control), so you can use it like any other control. You have multiple opengl child windows on a form using this control. EZGUI makes it easy with a simple 3D scripting language so you don't need to use a single OpenGL API.

With EZGUI, it is all about the GUI Engine, not the visual designer. I built a GUI engine which was intuitive and easy to use, but yet still very powerful.

I think it also important to point out that EZGUI is not the product of a tying together a bunch of open source libraries or code. It is a single product, built from the ground up by me alone. It is a fully integrated engine, with everything designed to work together. It does not need any third party sets of include files. You can even write many EZGUI apps without even using the API include files that come with PowerBasic. Large complex sets of API include files is one of my dislikes of how Windows was designed. EZGUI uses its own include files (for its command set) and it is tiny in comparison to the API includes. All the features in EZGUI, were written by me alone and it does not use any open source libraries, so is not dependent upon anyone elses code. My customers may appreciate this more once they see how rock solid EZGUI is. A great deal of work as gone into making sure EZGUI is reliable and stable. No strange compiler errors which you can't make sense of, because of generated code by a designer. No third party libraries or includes to worry about breaking your code if they happen to change in an update. Plus, since I wrote all the code in EZGUI, I am the one responsible for its reliability. One can not control the code written by others and to attempt to fully check someone elses code for quality control would be challenging to say the least. EZGUI has proven its reliability over the years, as many of my customers can attest to.

Now, EZGUI is not for everyone. It requires a certain degree of commitment to learn how to use it. But once you become proficient in using it, you will likely see a signficant improvement in the quality of your user interfaces, doing things you never thought you could do before. I want customers to push EZGUI to its limits. I want to see customers build something totally new and different. I want to see customers do more than they have been able to in the past.

EZGUI was designed for coders, not "drag and droppers". EZGUI was designed for those who are willing to write a little bit of code, rather than simply be app builders depending upon the visual designer to do all the work. There is a difference between a coder and app builder. RAD tools abound for those who want everything to be high level and who simply want to be app designers, rather than programmers. Such tools have their place. EZGUI was designed for those who want to build their app from the ground app exactly the way they want it, being willing to write a little code to get there.

Maybe this is why, some of the more advanced EZGUI users came from a DOS Basic programming background. DOS Basic coders did not have a lot of choices for RAD tools and are used to coding. EZGUI simply follows that course and gives them more tools than they may have had before, now to build GUI based apps, rather than DOS or console apps.

If you are interested in EZGUI, first consider what do you really want ? Do you simply want to be an app builder, being more of a designer than a coder ? If so, EZGUI is not for you. Are you hooked to your drag and drop environment and require its ease of development over the ability to do more by writing a little code ? Then EZGUI is not for you. Many Visual Basic programmers fall into this catagory. If that is you, I suggest Firely rather than EZGUI. Now if you are willing to write a little code, want to build far more complex user interfaces than before pushing the limits of your software, are willing to learning a slightly different (albeit easier in the long run) style of coding and you are looking for more powerful features, both high level and low level, then maybe EZGUI is right for you.

I have found that for every 100 PowerBasic programmers than only a couple (or even just one) are really suited to using a tool like EZGUI. One needs to have the right mindset to appreciate it. If you are not sure whether EZGUI would be a good fit for you, then ask lots of questions. You can email me any questions you may have about the product and I will try to reply back promptly with detailed answers to your questions. You can send an email to:  chrisboss@centurylink.net or support@cwsof.com

Logged
Pages: [1]   Go Up
  Print  
 
Jump to: