VB.NET GUI choices - vb.net

Can you point me to good non-Windows looking GUIs choices for VB.NET? I'm needing free but with licenses that allow closed proprietary code. Thank you.

From your previous question:
I'll definitely want an attractive looking GUI. And nothing "Windows" looking.
Generally speaking, this is bad. Windows apps should look like windows apps. Otherwise hell will break loose:
alt text http://forum.computerbild.de/attachments/pc-hardware/realtek-hd-audio-manager-front-panel-problem-1470d1205060406-r.jpg
alt text http://www.techfuels.com/attachments/applications/1262d1207391664-gigabyte-easytune-5-pro-gigabyte-easytune-5-pro.jpg
Consider WPF to get a rich UI framework, though.

Well, for what it's worth, I'd advise against using custom-looking controls for the most part, since you're only confusing users (and thinking of several GUIs that use such a thing I can't really say they look more appealing and are easier or better to use).
If you can use .NET 3 or 3.5 you can use the Windows Presentation Foundation (WPF). By default it looks Windows-like but can very easily be styled to your needs (which is what WPF internally uses anyway for trying to look like Windows).
It has a very steep learning curve, however. But once you understood the basic concepts it's a very nice framework to work with and pretty easy to integrate custom looks for controls.

Related

Winforms development - Any recommendations on how to improve the look and feel of UI

My team is currently working on windows forms project using VB.NET. We are curently focused on functionality and the UI seems to very basic (if you drag and drop from the toolbox to your windows forms)
Is there any recommendations or standards when it comes to UI for windows forms development? I want to ensure that the client gets a great UI.
I appreciate your support.
Yes, it's a simple standard: make sure that you follow the Windows User Experience Interaction Guidelines.
There's absolutely nothing wrong with "simple". In fact, in many cases, simple is good!
Your focus should be on making things easy, intuitive, and conform to user's expectations. Modeling your app after other applications, particularly those included with Windows, is a good way to make sure that you're on the right path.
Breaking new ground is dangerous territory; leave that to the big shops like Microsoft. Even new UI concepts that have panels of user interface/experience experts behind them like the Ribbon are slow to be accepted and even slower to be adopted. This isn't where a small software shop wants to be. There's no advantage in being out on the leading edge here.
The recommendations you'll inevitably get to use third-party controls are well-meaning, but ultimately misplaced. There's nothing wrong with the built-in controls and a lot of reasons to prefer them.
Once you've got a functional UI that conforms to the standard guidelines for your platform, the next step is real-world testing with actual human users who have never worked on any aspect of your application.
If they like it and they find it easy to use, then you know you're on the right path. I've never heard a user complain that something looks "too simple". Google Chrome is a huge hit precisely because it's simple. Remember that you're not designing a web page here. Desktop applications are very different.
In fact, it blows my mind how often questions like this one get asked here. Why do desktop app programmers spend so much time wishing that their app looked "cooler"? These are often the same developers who complained loudly because Visual Studio 2010 switched to WPF, broke a lot of their standard expectations, and got a lot slower, with little noticeable benefit. Sure, it looked cooler (unless you didn't like the color blue), but there was little in the way of functionality that the UI change alone was responsible for. Look at the apps you use every day. Do you really pine for a more whiz-bang UI? Or do you appreciate them and integrate them into your workflow because of how they work—because they conform to your hard-learned expectations of how a standard Windows application should work?
Make your app work like that.
Believe it or not, UI is very important to the end user. Its good you focus on functionality first, but when its done, make sure the user will have a good experience with your system. Make it as easier as you can, keep in mind that every user does not know everything about softwares, dont let him/her make a mistake, the look and feel must be very nice from the user's point of view, its not important to the system but it is to the user.
I use to use third party controls that manage the look and feel (DevExpress) you can try but if you are going to try some third party controls, you will have to do it at beginning of development, because the functionality may change.
I hope it can help you some.
Regards.

Rapid web application development with a Web Toolkit

I spend a lot of time (actually too much time) developping back-office applications whose main purpose is content management and web application configurations. Here is how I can describe these apps :
- Made with PHP
- Using a MySQL or Postgres or SQLite database
- Made of a lot of pages and features
- Very simple features, mostly data CRUD (create+read+update+delete into the database)
- Mostly made of forms
- UIs are usually quite simple (html + css + very basic javascript)
All of the data access code in these apps relies on a library I developped years ago and re-use every time I can. This part is not time-consuming.
What's time-consuming is the UI part, and mostly designing data-lists and forms. Using a WYSIWYG editor would make a lot of sense here, except those I tried (Dreamweaver, Frontpage, Expression, Eclipse, ...) don't really make it much faster, because the generated code is often bloated, and these tools can't rely on custom libraries such as the one I made and use.
I figured using a Web Tookit could be another way to spend less time developping these tools. So before I spend too much time looking for the perfect toolkit, I would appreciate your opinions and experiences on that kind of matter.
Disclaimer : I'm not looking for advices on how MVC is the way to go and how CodeIgniter/Zend/WhatEver is the framework I should use. My question is not about the frameworks or the design patterns I should build my applications upon. My question is about using the right tool to make simple web-applications development faster, and their code even more re-usable.
Is there an awesome web-application RAD tool I don't know about ?
Which toolkit do you use for simple but form-heavy web applications ?
Are there good, light, non-bloated, reliable toolkits written in PHP ?
Thanks in advance !
Edit : Not getting much feedback so far :/ I'm aware that my question is very broad, but I'm sure lots of people work on the same kind of projects I'm talking about, and have improved their productivity by using toolkits such as GWT, Wicket and such. Tell me about it, please :)
September 28 edit : Thanks everyone for the interesting answers. What I'm looking for is not covered by any framework I could try in the past months. PHP is probably not the best language to use for my vision of RAD, but since it's a language I know very well, and since I don't want to spend too much time learning Python as well as I know PHP (for the moment), I decided to do it by myself. Everytime I have a specific need for a widget, I code it in the most re-usable way...so far so good :)
I might open-source that toolkit at some point, and will let you guys know.
The PHP project I've been working on the past few years is a lot like that. Heavy on forms, heavy on server-side logic, but lots of redundant form coding. Too make matters worse, it wasn't all forms, sometimes we actually need to do fancy layout (even just doing a tree control is a pain without a library), and the home-grown nature of the UI meant that I would be battling browser quirks from start to finish.
So, I got to thinking about what a better architecture would be. We needed very powerful form controls, rich grids, rich trees, advanced layout, and we needed to migrate to that gradually. None of the PHP frameworks seemed to fit. Then I took a step back and realized that it didn't have to be PHP, it could be javascript also. We already had a requirement on javascript, so it was fine to go the distance with it. First I looked at the smaller libraries, jquery, prototype, but it became obvious that they didn't do enough. So I looked at Dojo, ExtJS, YUI, all the really heavy javascript toolkits, and settled on ExtJS as having the best controls.
We had a UI structure that relied heavily on iframes, a navigation frame on the outside, application frames inside that, feature frames inside that, and so on. What we ended up with is we're migrating those from the outside in. It's all becoming ExtJS, and it's all living in the same page. The server-side code is kept the same, but it's migrated into web services. At the same time we've integrated zend framework, and are porting some of the stuff you really shouldn't do home-grown to it, like authentication and translation.
The end goal is being able to write just the business logic without having to mess with all the boilerplate. It's too early to know if my approach will pan out, but I think my message would be to be critical towards your code base and decide which parts you want to keep writing yourself, and which parts you want to outsource to a library.
Please try http://agiletoolkit.org/. I think it's what you need. Results with minimum time/code.
At the moment I'm using a solid forms class to render HTML forms with client- and server-side validation, and a database class to write the SQL. I can get a CRUD section of my admin console up in about 10 lines of code. I wrote those classes myself so I can re-use them in all my projects. Hopefully that gives you some ideas?
I would stay away from WYSIWYG tools personally.
I'm testing NuBuilder.com, I discovered it does
within days, at first looks promising. If you take a look
please send me your feedbacks!
Maybe adopt or create an "app-based" infrastructure like Django's? In Django's case, the community has created some powerful baselines like Pinax.
I think Symfony may be the way to go because, like your apps:
it's written in PHP
ORM based on Propel/doctrine (so you can use MySQL, Postgres or SQLite)
Architecture and patterns used will help you with complex applicatons
You'll find tools helping you to debug, document, and test your application
Forms creation, validation, l10n & i18n, testing, AJAX is easy (forms within symfony explained here, check it out)
prototyping you webpages while developing your application is easy
Other tools/practices implemented in the symfony framework that will make your life easy:
full configuration using YAML syntax (easy to read and understand)
the scaffolding feature generates for you a simple CRUD interface for editing your data.
you don't have to worry about coding form sanitization, security, caching, ACL; configuration is needed, but no heavy coding.
The only downside, you need to read some documentation to understand "the symfony way of doing things". But hey, a good framework is 20% code and 80% good practices.
My point is, even if you don't want to use Symfony for your project, you should check its features and built-in tools, because that's the kind of tools you want for your project.
I started using Django and it has very helpful features, esp. the built-in admin (for general CRUD stuff) and really great form-handling code & widget rendering. I'd suggest taking a look, even if you don't plan on using python, just to get an idea.
You mentioned that you don't want advice on "Use X framework", since this is more about RAD & UI/forms than system architecture. But I've found that a good framework helps just as much with the UI & forms side of things as it does the architecture. That means that while frameworks are great for big projects, they're also very helpful in reducing code redundancy. I started creating my own helper functions in PHP that I would copy from app to app that would automatically render an HTML form based on a few parameters. Even after a lot of work, this was very rudimentary compared to what Django offers, and basically I was writing my own framework.
I think you may be looking for a GUI-style tool to help, but you might find that a good PHP framework is more helpful in this case. At the very least, have you tried creating your own helper libraries? I know those helped me a lot.
Simple Example:
function renderInput($name, $value="") {
print "<input type=\"input\" name=\"" . htmlentities($name) . "\" value=\"" . htmlentities($value) . "\" >";
}
function renderRadios($name, $value="", $choices=array()) {
for ($choices as $cvalue) {
print "<input type=\"checkbox\" name=\"" . htmlentities($name) . "\" value=\"" . htmlentities($cvalue) . "\" " . ($cvalue == $value ? "checked" : "") . ">";
}
}
And build up from there. Stupid things like this tend to make form creation just that much faster. A good framework will blow this out of the water. And I'm sure the above has some typos, I haven't done PHP in a little bit.
If this isn't what you're looking for, could you add some more to the question? I'm curious.
Although you're asking for PHP + MySql, I would like to recommend you to give a try to the OutSystems Agile Platform.
You can create a simple CRUD app in less that 10 minutes and grow it as you go to a more complex system.
Download the Community Edition for free at www.outsystems.com.
Best,
Not sure but looks like Tibco General Interface (http://www.generalinterface.org ) is what your looking for.

"dynamic addons" is this the right term?

i'm assigned to research something about how to use “addons” on building a program.
Basically, I have one main program that checks for the available components (ocx, dll, etc). Depending on what components there are, it will dynamically create the menus and load the components.
is this possible using .net Framework 2.0 or later
I think you might be looking for the word "plugin" and it is definitely possible with .Net.
For example: http://www.codeproject.com/KB/dotnet/PluginManagerClassBrk.aspx
One thing you could check out is the Microsoft Enterprise Library "Composite UI Application Block." This framework is designed to help build GUIs by combining separate UI components by composing them together based on various conditions.
I'm not sure if I'm a huge fan - it's pretty complicated and seems clunky to work with, but if you work through some of the examples, it might be worth looking into.
http://msdn.microsoft.com/en-us/library/aa480450.aspx

User Interface Markup Language pros and cons

I learnt about some declarative UI languages such as XUL for Mozilla/Gecko and HTA for Microsoft at Wikipedia.
What would be the
advantages/disadvantages of these
markup languages?
Why don't common OSes and
Applications use these techniques?
Do these languages impart flexibility
to the system?
Are there any OSes that use markup
languages for displaying their UI if
not why?...
Examples of these OSes
or Applications however ancient they may be would be welcome..
HTA isn't a markup language. It's basically a container for HTML, which is the markup.
The web is driven around markup languages, so "common" applications do use them.
This is a good place to start reading. Also this.
You might also be interested in Metaprogramming. There's similar ideas to both. You describe something using markup or metadata, and then the program executes it and turns it into something useful.
Many of your questions will be answered in-depth at those links. Except for the last one. I can't think of anything specific on the OS side.
The long and short of my personal experience is that markup is great for defining structures and organization and layout. But behavior isn't well represented. If you want your UI to do something useful, you still need to program it.
Are there any OSes that use markup languages for displaying their UI
The ISPF was a rapid application development system on IBM mainframes which used a declarative markup to define the screens, then Fortran or Cobol code behind it to provide behaviour. One previous job of mine was converting such applications to an XUL based front-end to run on a PC; it was a fairly trivial conversion.
Re #2: I don't know, but I think it's for performance reasons, you couldn't waste time parsing XML on a 486 :)
Re #4: yes, if you count Linux as an OS, GTK uses some kind of markup language for UI. Also XAML in .NET.

What are must-have third party XAML Controls

As I get myself ready to move my Winform applications to XAML, I was wondering what are the must-have third party XAML controls that will save me developing time and will make my app look shiny with little work?
Thanks,
Nestor
XAML is markup language rather than a platform. In fact, you don't even have to use XAML to write WPF applications if you really don't want to. Since you're talking about converting from WinForms I believe that the question you're asking is more one of which third-party WPF control kits exist, so I'll answer on that assumption.
There are a few companies that have pretty extensive suites. As Shoban mentioned above, Telerik is one. You also have Infragistics, Actipro, Component One, to name just a few.
There are also quite a few specialty libraries to aid in Business Intelligence, Graphics Processing and more.
In other words, it's not possibility to make a good recommendation as to specific control libraries, but I can point you in a couple of directions.
WindowsClient.Net attempts to maintain a control gallery (not just for WPF, either). That's a good place to start. There are also software sales companies such as ComponentSource which can also set you in a direction or two.
I tried to link the other companies, but SO apparently thinks I'm too much of a noob to be trusted with high-security stuff such as multiple hyperlinks. :)
Check out Telerik. They have some nice controls.