The standard DataGrid is quite unresponsive when it comes to displaying large amounts of information. I tried SourceGrid and can live with the results, but see room for improvement. Can anyone think of any other free alternatives to the standard DataGrid that can handle large amounts of data? I am open to creative ideas.
After looking into XPTable and trying out ObjectListView, I've decided that SourceGrid is superior (speed wise) to both for large quantities of data, scrolling feels much smoother.
How about XPTable on CodeProject? Ok, it is a modified form of ListView but that might suffice and lighter. The source code is on sourceforge as it is more up-to-date then on CodeProject. A newer clone is available on github.
There is also a custom DataGrid here on CodeProject called SourceGrid, the source repository resides on github here.
I've heard good things about ObjectListView but I haven't used it. It seems to have a very rich feature set. In the past when I used Windows Forms I would have killed for some of the issues it solves as compared to ListView. Note that it's not a DataGrid however.
Not to sound like a shill but although you said free alternative, I still should mention the best Windows Forms datagrid I've ever used was Developer Express's XtraGrid. I've yet to see any grid in any UI technology come close to it in terms of usability and features.
Component Factory's Krypton toolkit has a nice looking one. It is free, however, I've never used it so I can't speak for or against it.
Related
I am writing a UWP app which needs to show milestones against multiple, grouped tasks along a timeline of a video. Basically showing when a task occurred in the timeline. Image below of a crappy excel mock up of what I am talking about.
I have searched and can find some charting option but they are for WPF, javascript or .Net Framework.
Was thinking I could have a go at one myself using a grid as a base and I'm OK on this front for the moment, I am wanting to know if anyone knows of any suitable timeline controls for UWP or can think of another way to visualise this sort of data using available controls.
There are a number of options for UWP if you wanting to just xaml output a DataGrid the only free one I've seen is this
https://github.com/RSuter/MyToolkit
However if your willing to fork some cash there are lots of options. The obvious solution would be which is free for non-commercial use so you can give it a test.
http://www.telerik.com/universal-windows-platform-ui which has a great datagrid
the concept would be removing the first column and adding a new one at the end in a poll
The other option which I thought about mentioning before is https://www.syncfusion.com/ they have a graph library for UWP I have never used there product so I can't really say much about it except I believe they do have a timeline graph.
This is quite old now but I have just had the same issue. After a day of research I have discovered the SyncFusion CellGrid does this perfectly.
https://help.syncfusion.com/uwp/cellgrid/getting-started
For a long time now, I have been stuck with Windows Forms development (started with VB6, and has continued through to C# .NET 4.5), and I have pretty much hit the limit of what Windows Forms can do, both using pure .NET, and special effects with Native Code.
I have tried to learn WPF and XAML, but I get stuck right at WPF's new designer. It really seems very difficult to use in comparison to the Windows Forms designer.
I want to know if there are any alternatives to .NET's WPF designer, that are more suited to Windows Forms developers?
I like to blog about beginner articles for WPF, and there are a few in particular that may help you out:
Understanding the change in mindset when switching from WinForms to WPF
What is this "DataContext" you speak of?
A Simple MVVM Example
To summarize, the biggest difference between Winforms and WPF is that in WPF your data layer (the DataContext) is your application, while in Winforms your UI layer is your application.
To look at it another way, with WPF your application consists of the objects you create, and you use Templates and other UI objects to tell WPF how to draw your application components.
That's the opposite of WinForms where you build your application out of UI objects, and then supply them with the data needed.
Because of this, the designer isn't actually used that much since your application components are designed in code, and the designer is only needed to draw a user-friendly interface that reflects your data classes (typically Models and ViewModels)
And personally, I prefer to type all my XAML out by hand since it's faster and doesn't make as much of a mess as the drag/drop WPF designer does, although I do use the Designer on occasion to preview what my UI will look like.
So to your answer your question about if there's other WPF designers suited for WinForms developers, I would suggest that instead of looking for another designer, instead look to learn how to use WPF in the way it's meant to be used. Using WPF like it's WinForms means you miss out on much of what makes it so great :)
Well although, some people don't agree, I would also recomment to not use the VS designer. At least not to create an interface. If you may want to get a first impression of your implementation without starting the application, it's a good viewer at least as long no sophisticated things like Styles and Templates are used. But, IMHO, its drag and drop result should only be used as prototype and therefore be discarded after it's no longer needed.
Here are some reasons which are important for me not to use it.
The VS designer is working with fix margins and alignments (which is usually not necessary, if you're using the layout controls), means you have to touch many controls, if the requirements are changed. If you're deep in XAML and the WPF mechanics you can create an applications which can be modified with small effort, regarding the look and feel.
Since the designer is generating the xaml, the composition is not optimal and the UI may perform badly. I didn't measure it, it's just a feeling.
A much better alternative is MS Blend, although the start is everything else but easy. Its drag and drop result is much better that the result of the VS designer.
But it's a pretty powerful tool, which helps you to use pretty powerful elements to create a state of the art UI. I recommend to visit at least a short workshop to get an idea of its opportunities.
Back to your question, IMHO, and I think many people agree, get yourself a good book e.g. WPF Unleashed and later, if you want to know more about the details, WPF Pro. There are a lot of features which are different to Winforms. You won't get to know them by using any designer. I think that's the best approach.
Please also consider that there are many frameworks and libraries (e.g. MVVM light, WPFToolkit) out there, which are already solving some common problems. So it's not necessary to reinvent the wheel.
I know this is an old question but for the benefit of anyone else looking at this, I think I should redress the balance a bit - reading some of the other answers, I get the feeling that some of the 'don't use the designer' sentiment comes from not using it properly.
This tutorial is quite good to get you going and answers some of the criticisms in the other posts.
For instance, you can switch from the Winforms-like margin-based layout that is the default when you drop a control, to a more WPF-ish style by right-clicking and selecting 'Reset Layout'
This video covers similar ground.
I still prefer the VS2010 designer on balance - VS2013 seems to be a bit buggy when dragging and dropping onto TabItems **, (which my current project uses a lot) - but the VS2013 Document Outline view lets you move things around in that view too, which can be a real plus.
Really, though, to get the most out of WPF and xaml you need to be reasonably fluent in both the designer view and the xaml view and switching between them; if you shy away from the designer, you are missing out on something that can help you a lot.
** Edit - although this seems to have been improved in Update 3 for VS 2013, and in previews of VS14, to date I still get odd behaviour at times.
First of all, in WPF (XAML) in Visual Studio deisgner, you should always use the xaml code to build you UI and do not drag and drop you control! You need to keep your code clean. You can use Expression Blend to help you, it's more graphic oriented with drag and drop, but it's not free.
It's not a big learning curve, but I think you should learn how to do your xaml by hand instead of searching for alternative.
I've been through this process as you did. Afterwards I was teaching everyone in my company WPF. There are a couple of important lessons I have learned and everybody I know who works with WPF.
If you are working with UI controls in the code behind, .... Then you are doing it wrong. There is absolutely no need for you to deal with UI controls in the code behind.
You do not need the visual developer for clicking on it. You are much more productive by only dealing with XAML.
Use Copy/Paste. Do not trust in your typing capabilities. It will save a lot of headaches.
Think of the XAML just as a window that loks over the data. In the code behind you are changing the data. In XAML you are defining how the UI will interpret the data.
Converters are amazing. As soon as you get a key amount of Converters, your productivity will rocket Sky high. They will take over the role of the crazy amount of control eventhandlers that hide or resize, or what ever about UI,
It makes UI development fun. Especially once you find out how it likes to play along with Asyc processes. It really takes away a lot of the headaches that were caused by Winforms.
I would like start writing an application that will let my user design the interface by choosing some basic controls as Labels, TextBoxes etc. Once done I would like to save the layout in an xml file and be able later on runtime to reconstruct what user choose.
Is there anything similar ready and pre-made?
Can you suggest me the approach?
Any suggestion is welcome!
Cheers
Creating your own designer is a lot like building your own submarine in your basement. Programmers tend to take the quality of the Winforms or WPF designers as a standard of measure. Both are however the result of multi man-year efforts at Microsoft. Reproducing their work from scratch is a daunting task.
Best thing to do is leverage what's already done by them. Possible with the Winforms designer, this magazine article is excellent to help you get started. It is dated but I'm fairly sure it is still relevant, little has changed in Winforms in the past 6 years.
Examples could be Infragistics or DevExpress.
But I'm also looking for your opinions on other frameworks. It could even be WPF if that is your favorite.
Infragistics is very good. I think they have a better product for windows than the web. However, I get very upset using their products sometimes. I just want to find some hidden property, and it is impossible to find. They have way to many properties. Sure, you can do anything with their grid, but it should be easier. All of these vendors are leap frogging each other. You really have to compare all of them every year or two. I am currently using Infragistics on most web and windows project. If I could switch today, I would go to DevExpress for Web and Windows. Everything that Mark Miller and the guys at DevExpress produce is beautiful, and thoughtful. On a side point, you should check out CodeRush and Refacter. I may sound like a salesman, but I am not. I just could no longer code without CodeRush. It would feel like coding with one hand. If you are going to spend $1000 or more on a framework, you should also get CodeRush.
I've used Telerik RAD Controls for Asp.Net and it is a very comprehensive suite of controls that are easily converted to AJAX. The support is top notch, with the forum as a first place to go to for research before contacting the staff.
The client side API is fairly easy to understand, and they have good examples of mixed implementations with client and server side code.
I would say Infragistics
Haven't used it before, but I've heard good things about Telerik. My experience with the Infragistics Web components has been less than stellar. I found there were a lot of hidden features that I required, which were undocumented and had to go hunt around in the sample code for examples.
These toolkits can make sense for intranet applications but when you start providing it out on the web, the functionality can come at the cost of a bigger download for users. Just something to keep in mind.
What frameworks are you looking for? I currently use Janus Grids for grids on the winform side, but DevExpress has an awesome web grid that is amazing.
For current Winforms development my favorite is Infragistics. DevExpress seems to have more Silverlight controls in the works, but Infragistics may deliver.
I don't do much non-web development, but if I do I like to use gtk# for Mono (screenshots). It's much more fun and very easy to program then winforms. WPF looks good to, but I only tried an Hello World.
Infragistics has got good controls for Applications. WinGrid is one of the most important ones which would help you displaying information professionally and is quick.
the only drawback is the time consuming process of contacting their helpdesk or searching for the hidden properties. But they do work after you get to know them !
I would say go for DevExpress seems to be the most elegant, intuitive and well document suite out there.
To see their product offering in action demos.devexpress.com
Do the same for any component suite check out their demos and see which best suit you needs.
Is anyone using the Obout controls in C# .Net? How would you rate these controls, especially the Grid Control?
I was thoroughly impressed with them. Of all the other control sets out there (infragistics, telerik) this is the only (more than) respectable one I've worked with that was 1) free! and 2) lightweight!. The only caveat to Obout is I had trouble with merging some of these controls and some of the stock AJAX components.
Infragistics is by far my favorite (my comment about Obout being "lightweight" is in comparison with the heavy use of viewstate in some of the Infragistics controls) but it's around 1000-1500 a seat, so it can get expensive if you have a larger team.
I like obout for their lightweight'ness. Their licensing policy is very fair (pay once free updates for life) and they also give (free) educational licenses.
However, I had to use Developer Express on one of my projects and never looked back since. Very powerful and not as bloated as Infragistics.
Basically, if you decide to go obout way, you probably will not regret it.
I like obout for their simplicity and functionality. They have pretty good documentation and samples of almost everything. And they cost a fraction of price than others (Componentart/Telerik). I am currently testing their Grid control ( after I gave up on Componentart grid for client side functionality) and find it pretty straightforward.
I purchased the license a few years ago and have been using it ever since. The support is pretty good and the controls are great. I have looked at some of the other vendors (telerik, etc) but haven't moved any where because of cost transition. The nice thing with obout is that I bought it a few years ago and they still give me free updates. That may change inthe future, but for now, its great. The products work as expected and they are always making updates to the software.
This is the first time I was working with obout controls.Previously,I was working with telerik controls and so,I had a good chance of comparing these two set of controls.I would prefer Obout for its light weight and functionality.
I used their tree for a project. Not bad for free controls.
I have been using their Calendar control for nearly 2 years. All of a sudden it stops working on Google Chrome (Vr: 17.0.963.56 m). Even their live demos don't work, try scrolling through the months a few times and it will just hang with the error 'Uncaught TypeError: this is not a Date object.'.
I've emailed the company on two occasions regarding this issue as it has brought my site down and I'm getting customers contacting me incessantly. I'm afraid as of yet no reply!! Very frustrating!!
It's really a shame because the tool is otherwise excellent...If they could at least acknowledge the fault and assure me they are working on a solution that would be something, but to be left in the dark shows a complete lack of basic customer service etiquette.