choosing a diagramming library for .Net [closed] - c#

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I have a customer who needs to convert a diagramming application (which was developed in MFC a long time ago) to C#.
The application displays large networks (lots of graphical elements), and lets the user edit/manipulate the data through a graphical ui.
I decided that it would be best to use a library rather than to develop all from scracth (all graphic objects/selection/tools/events/etc)
I am looking for a commercial solution.
I found three that seem to be very mature, and I wonder if
anyone had used them and can write his/her opinon:
Tom Sawyer Visualization
IBM ILog Diagrammer for .Net
yWorks - yFiles for .Net
thanks
Yaron

I am not familiar with this libraries, but one of my old projects we have use GoDiagram library, and can suggest that too

For making good looking diagrams in .Net you should check out Frank Hileman's VG.Net. He's a reputed MVP and I believe his solution is really good:
http://www.vgdotnet.com/

I recommend MindFusion's Flowchart.NET. It's very easy to use and is very affordable considering it comes with a multitude of powerful layouting algorithms. Previously we used GoDiagram, but I recommend against it because their licensing system is a nightmare if you have build machines, and it's much more expensive.

I believe Dundas charts is the most famous one...or at least the most advertised one:
http://www.dundas.com/Microsite/ChartNET/Default.aspx?Campaign=GoogleCSharpChart&gclid=CM-wncOq354CFUmK3godxENfMQ

I know this probably isn't the best solution but I'm going to put it out there anyway.
I've done something similar to this using .Net's System.ComponenetModel.DesignSurface. This is the same design service used in Visual Studio's Windows Forms so all you do is create your controls, add your control designers if you want and you're good to go. You can use the PropertyGrid to display the data for each object as they are selected. Code Project has several articles about this like this one.
That said it's not going to be the best performance wise, I've got several thousand controls on my DesignSurface in some cases and it gets sluggish. You may be able to get around this by using another root designer type (WPF maybe?).
This could be a very good option if you already know how to do custom Windows Forms controls. And best of all it’s free!

Have a look at Orbifold. They have got WPF based solutions (commercial) or libraries supporting GDI+ (free).
It's also a good starting point for information about diagramming algorithms in general.

Related

C# Windows Application Developer - 3rd Party Tools [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
Scenario
I have recently graduated from university with a degree in Computer Science.
My degree mainly focused on C#.
I want to learn more and get better at what I do.
I notice a lot of companies always want their developers to know and use 3rd party tools.
Question
If I was developing C# Windows Forms applications, what 3rd party tools/libraries/controls etc. would be of use to me and for what reason?
The answer to this question depends on how you define "3rd party tools". I usually take that to mean products from companies other than MS but excluding free open source software. When it comes to 3rd party products (for-profit) I cannot think of any common products that I've used or been asked to learn over the last decade that I've been doing .Net development. Most MS shops I've worked with turn to MS solutions (for good or ill depending on your personal view).
That said, in recent years the number and quality of the various FOSS solutions out there has risen dramatically. I use the following whenever I can:
Logging: log4net
Inversion of Control Container (plus more): Castle Windsor
ORM: NHibernate
Unit Testing: NUnit
Mocks for unit testing: Rhino Mocks
For most of these projects there are many other options, these are just my current favorites. Learn to use these (and WHY they are needed) and you'll be many steps above the average .Net developer (sad but all to true).
The DevExpress and Telerik controls are pretty popular, but not free.
Some 3rd party .Net component providers that I've seen used in companies most often:
Telerik
Infragistics
They are not free. These kinds of providers offer large libraries of controls that you'd pick from to achieve your specific goals.
Many good suggestions here, I would also add a few other categories of tools:
Software configuration management/version control: CVS, Subversion, Git/Mercurial/Bazaar, Perforce, etc. Good use of SCM is essential for professional software development.
Issue tracking: Bugzilla, Trac, FogBugz, etc. I would also consider an issue tracking system to be a critical piece of software.
Documentation: Like it or not, it becomes very handy to know your way around Microsoft Word. Knowing how to manipulate styles, headings, numberings, cross-references, etc. can make your life a lot easier when writing documentation.
You'd probably want to have a look at Silverlight. It's a Microsoft alternative to Flash and uses C#. WPF are also something to look at for interfacing.
It might also be worthwhile looking at MOSS.
I've always liked the Xceed controls. In a lot of cases you could always build your own controls. The biggest advantage to using some of these packages is that it saves you the time and they have also been well tested (if not by the company then by the people that are using them).
I've used a couple of different packages over the years and found that if you can use one it's not that hard to use another. The biggest thing is knowing what is available out there so you don't spend two weeks building something that you could have just paid a few hundred dollars for.
You should know about resharper (helper for VS)
Crystal reports - for reports,
Some Grid tools (google it, there are many - I wouldn't bother to learn until need one)
and study advanced topics like: WCF, WPF
Cruise control or other building tool, bugnet or trac - bug management tools...
And of course - AQtime or other Profiling tools.
.NET Reflector
Hawkeye - The .Net Runtime Object Editor
Infragistics
I'd throw mono in there as well. Since you're looking to give yourself an advantage over other developers and improve your value to companies - having cross platform experience is advantageous as well.
There are a lot of 3rd party controls that will help you achieve more in less time. But I don't think many of them will really improve your coding skills (calling someone else to do all the work doesn't teach you much about how to actually do thise things yourself, but familiarity with them and the ability to learn new libraries is a good skill to practice)
Resharper is good for improving your coding skills (code analysis), coding style (autoformatting), and it's a great refactoring tool. It's expensive, though.
Microsoft do some free code analysis tools for Visual Studio (FXCop for code analysis, and there is also a Static Analysis addin) which will help improve your code quality.
AtomineerUtils (my own addin) encourages excellence in documentation and generally improves your code quality (by encouraging good naming style, etc)
Focus more on the tools used in the software development process. Enterprise Architect is used for designing applications from a high level. Once you design you application's business classes you can generate your classes' skeletons. You will be responsible for you code implementation once the class structure has been created.
For implementation purposes look at several C# platforms mentioned earlier. You want to focus Microsoft's WPF, WCF, WF. WPF is ok but it can not be used prior to .net 3.0 so check your client's requirements. I'm working on a project that targets the .net 2.0 because of restrictions by the client so the applicaiton was designed in WinForms. Silverlight is an option as well.
In addition, read up on design patterns as this will help you avoid creating high maintenance applications. A good book is Design Patterns in C#.
For testing look at the Visual Studio TFS system or third party programs like NUnit. You can google NUnit. This will help you ensure that your code does what you intended it to do on a granular scale.
Also, take a look at some of the source control software avaialbel like Subversion, Rational ClearCase, Visual SourceSafe. For large projects with multiple developers you'll need a source control tool that has multiple branches so that each developer has his or her own sandbox within the source control system.
I'm a big proponent of ComponentOne and use it in my new applications regularly. I find that if you're proficient in .NET winforms in general, C1 are very easy to pick up on and usually do what you want with little effort.
A couple people mentioned Telerik. I demoed it fairly extensively and found them to be a bit more complicated because they contain a ton of configuration options for look and feel. Awesome if you're some sort of graphic designer, but unless you're building the next Windows Media Player, I think it's overkill. The learning curve for the theming seemed a bit much for what I was trying to accomplish.
C1 and Telerik both run about $1000 to $1300 depending on what license you get.
You should also check out the Krypton toolkit. It free and has a lot of nice controls.

Where can I learn to build desktop applications with C#? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
My background is in web programming, mostly scripting with Perl. And I've recently been tasked with creating a desktop application. I'm wondering, where can one learn such concepts like making executables, what DLLs are for, how UIs are made, what threads are, etc.
I already have C# in Depth by Jon Skeet and C# in a Nutshell. I'm not worried about learning C# itself as much as I am learning about the workflows involved with using it on the desktop, things that are typically not done in web development.
Where should I look?
One starting point would be WindowsClient.net (Microsoft). Lots of videos too. But maybe a little less suited for the absolute beginners.
I only recently began learning C# myself - so I have quite the array(... ;) ) of links:
C-Sharp Corner
CSharp Friends
CSharp Help
CSharp for absolute beginners - Very good
CSharp-online
Hope these help.
For learning .NET application development (the only way people should write apps on windows boxes without requirements otherwise), start with the excellent book CLR Via C# by Jeffrey Richter. Save the first couple chapters for later. You'll get everything you need to know about C# and the 2.0 CLR, which is the basis of all .NET application development (in C#, anyhow.)
Once you're done with that, look into Linq. Linq covers a number of different language feature updates that came in 3.0 and 3.5 versions of the framework and their associated language updates. With the basics + a good understanding of Linq, you'll be creating decent apps in no time.
Now, for which framework to use when constructing desktop apps: Winforms, or WPF.
If you're a web developer, throw that old winforms crap away and get with WPF. You'll feel much more comfortable with editing WPF forms in xaml than dealing with winforms.
The best thing about WPF is the amazing databinding support. In fact, the WPF version of MVC is based on the databinding support in WPF.
Check out the databinding cheat sheet, then learn about MVVM.
A good place to start would be to read MCTS Exam 70-546 Windows-based client development, then read 70-548 Designing and Developing Windows-based application. After that, you will probably need to read books focused on the specific technologies your app will use.
Surprised no one has answered this yet:
Programming Windows With C#, by Charles Petzold. Great book, easy read. Example based, but well organized for people that want to jump directly to a particular topic. He actually explains what's going on in each example, and why he's doing what he's doing. Really, a great resource.
(Note: this is a Windows Forms book...no WPF. Great for what it does, but if you're looking for WPF, look elsewhere.)
Old question, but i had to learn the same thing recently. I got the Visual C# 2012 step by step book. It teaches C# along with WPM. A good way to learn.
From what I hear and the little I have read of it Chris Sells's book on WinForms would be useful that. If I am not mistaken he has also done a book on WPF, but I don't know if it is any good.
Check Windows Developer Training Resources and for sure you will need the help of a book and some videos
You can start by building a new project in Visual Studio and selecting the one of the project templates under C#\Windows. This will build a simple application so you can see the basic elements of the project. For example select 'Windows Forms Application' this will start you off with a form where you can drag and drop additional page elements. You can then use Intellisence to explore the options on the controls. Also load the sample projects so you can see working examples.
That's how I would do it.
I recommend you the C# Yellow Book (Rob Miles) it's free and very useful to learn C# basics fast.

Where can I find a nice .NET Tab Control for free? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I'm doing this application in C# using the free Krypton Toolkit but the Krypton Navigator is a paid product which is rather expensive for me and this application is being developed on my free time and it will be available to the public for free.
So, I'm looking for a free control to integrate better into my Krypton application because the default one doesn't quite fit and it will be different depending on the OS version...
Any suggestions?
P.S: I know I could owner-draw it but I'm trying not to have that kind of work... I prefer something already done if it exists for free.
EDIT:
I just found exactly what I wanted:
http://www.angelonline.net/CodeSamples/Lib_3.5.0.zip
If you need an updated lib with Office 2010 Palettes: http://www.angelonline.net/CodeSamples/Lib_4.2.0.zip
My first suggestion would be to talk to Phil at ComponentFactory. I find him to be a very reasonable fellow. Maybe he can give you a special deal or make a design suggestion on how to customize the existing tab control.
But your's is more of a design/subjective question that, I think, would benefit from a screenshot to better communicate the design challenge you need to "integrate better". Saying "the default one doesn't quite fit" is pretty vague.
After that, people will have a better starting point for making suggestions. In the mean time, I would look at the WindowsClient.NET control gallery.
I don't know of any open source or free tab controls, but I wonder why you don't just use the framework's tab control. Is there something you are trying to do that the Forms.TabControl doesn't do?
Download the Flat Tab Control (.NET) from Code Project. Takes about 30 seconds to get this working, and it gets you away from the default Windows tab control look and feel. But it's not Kryptonized.
See this post on a slick custom Kryptonized Tab Control based on the Flat Tab control you built in Step 1. You can download the control assembly on this downloads page (it's a little hard to find). So far as I know, the source code isn't available, however, Reflector can be of use here if you're curious as to how the Krypton-theming was done.
Replace the Flat Tab display logic (Paint, etc.) with Krypton-aware display logic. This is straightforward, because there's not a lot of code to the Flat Tab control.
If anyone is looking for the latest version of the AC.ExtendedRenderer.ToolKit which is mentioned in other posts, then the following links point to the central source of them. However the website is dead....even WaybackMachine can't help us get to the DLLs :(!
http://web.archive.org/web/20130725145918/http://www.advancedcomputing.ch/Downloads/tabid/62/Default.aspx
The latest I have been able to find is 4.1.6b here:
http://web.ticino.com/angelo/CodeSamples/Lib_4.1.6b.zip
If anyone knows where the later versions can be downloaded, please let us know.
EDIT:
The Component Factory Krypton components were migrated to https://github.com/ComponentFactory/Krypton
You could look at the Magic TabControl project over at CodeProject.

User Interface Design Tool [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I'm searching for a User Interface Design tool to visualize a possible GUI in a documentation. I must not generate code. I know that Microsoft Visio provides a functionality. But are there any alternatives?
Which software do you use for visualizing a GUI?
PS. Another well-known tool is The Pencil Project.
An awesome and easy one is balsamiq: http://www.balsamiq.com/
I also quite like Axure.
Give a look to Firefox Pencil Extension, is a basic tool for GUI prototyping and simple sketching....
I am posting here a summary of recommendations based on my 10-years experience as a UX designer/information architect. The original article can be found here:
[Best prototyping tools out there? A review of Axure, Justinmind, and other UX tools] (http://www.humaneinterface.net/best-prototyping-tools/)
With interfaces becoming more and more dynamic, interactive prototypes are the best way to provide an in-depth, contextual and responsive documentation. If you are a professional designer, I’d recommend using either Axure RP Pro or Justinmind Prototyper for both static, low-fidelity prototypes and more sophisticated, interactive ones. Both offer rather affordable licenses.
If you are not a professional designer and you are looking for a tool that is cheap and allows to create static wireframes once in a while, I’d recommend Moqups as a quick prototyping tool. I prefer it over Balsamiq. WireframeSketcher is also an interesting alternative.
If you are looking for something not as complex as Axure/Justinmind but more powerful than Moqups/Balsamiq, you could also consider Infragistics’ Indigo Studio (which can import static mockups from Balsamiq and make them interactive) and Protoshare. Both of them, and in particular Indigo Studio, offer price plans that are not so convenient, and considering the limited set of functionality, I wouldn’t recommend them as a first choice. A third option is UXpin, which boasts the most elegant, clean and user-friendly interface I’ve seen so far, in the whole landscape of the UX tools available today.
For mobile prototyping, you can use both Axure and Justinmind if you want full control, the second seems to be a better choice at the time of writing (even though I did not test it directly). If you are looking for an easy way to build prototypes that are not too complex, you can consider the above mentioned Indigo Studio, or the more affordable Proto.io.
If your client is an organization that can afford a very expensive license, you can also consider iRise, a very comprehensive design platform for enterprises.
If you need to design static diagrams to represent user journeys, you might consider tools such as Draw.io or LucidChart, but Axure still provides decent diagramming tools that can reference to portions of your prototype. Justinmind seems a bit limited. Microsoft Visio (now part of Office 365 as a web app, and therefore also available on a Mac) is still great if you need maximum flexibility and want to draw very elegant flowcharts.
Keep an eye on JQuery UI components, even if you are not going to incorporate javascript libraries into your prototype. If you like to code directly, but you don’t necessarily need to reuse your code, you can also consider using CSS frameworks in combination with WYSIWYG editors such as Jetstrap.
Use paper to play with origami rather than prototyping.
You may want to have a look at Joel's article The Iceberg Secret, Revealed, as well as the articles discussion.
I don't know wether this is relevant to yout task, but since reading it I definitely prefer to use handdrawns sketches of a UI if I want to present it to a customer. (A 'Pencil Project' in the true sense of the meaning ;-)
If you are in Linux you might try Glade.
Take a look at the tools mentioned in the answers to this question:
Prototyping Tools for non-programmers - Expression?
I'd still recommend Balsamiq Mockups. The resulting GUI mockups look like sketches, making it a great tool for communicating the idea that this is not the final GUI, but merely a visualization of GUI concepts.
The "must not" seems odd... if you use an IDE designer to throw some controls down, but don't use the code, is that sufficient?
Or use "blend" - that generates xaml, which is just layout - no code.
justinmind prototyper may work for you. It gives you an HTML to check how an interface will work.

Best guide for creating Windows Services in C# .NET? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I'm looking to convert a small .NET console application into a Windows Service. I'd like to build two versions, one using .NET 2.0 and another with .NET 3.5 .
Are there radically different approaches that need to be taken, or will the 2.0 version be roughly equivalent to the 3.5 version? Where's a good source of information (i.e. a web-based guide) that can walk me through the steps of setting up the service?
Thanks!
P.A.
Actually, .NET 3.5 does change the C# code a little. For example, you can use the var keyword, and you can use the hidden private variables for properties. It is still based on CLR 2.0.
There is a pretty good article at msdn that talks about windows services and walks you through building one.
To supplement Rick's answer, I'd suggest the MSDN Walkthrough
It is incredibly verbose and touches on event logging as well as an installer.
The thing to remember is that .NET 3.5 is a set of additional libraries on top of .NET 2.0, so, unless you are planning on taking advantage of any additional features provided by .NET 3.5 (or .NET 3.0) like LINQ or WCF the code would be identical.
Try looking at the documentation for ServiceBase, which is the base class that you will need to inherit, to get things started.
This I believe is a decent walk through with screenshots and code samples. I think it may have been what I used for the first windows service I wrote. I think it was written back in .NET 1.1, but should still help walk you through the process. As far as the differences between 2.0 and 3.5, I would say there can/will be as much difference as you want there to be. I don't believe you will be required to change anything, but as other posters have mentioned and as you can find all over SO, there are a lot of new features that can be very beneficial that came with .NET 3.5.
There is at least one place where service code will need some attention to make it work in .net2/vs2005 vs. .net35/vs2008.
This is especially true if you write your service and installer using in c# 2.0 and compile and deploy using .net35/vs2008, the link below might save you a bit of time:
Custom Actions Changed
Here is guide to learn about windows service.

Categories

Resources