Alexander Smirnov

Development blog & recent changes (Twitter also)

75 posts in this topic

Finally, i've decided to redesign showcase application for GraphX to make it look more appealing. So i've found cool library named ModernUI and began to work in that direction. So far the results are quite satisfying (compared to what i had before :D). Expect new showcase app to be released soon, hopefuly i'll be able to fix all the related problems quickly.

 

PS: Also aiming to fix quite nooby code architecture in showcase app. That is kinda stupid as it was coded in hurry and left untouched and hard to understand. Expect to see new clean and logicaly isolated code parts.

Share this post


Link to post
Share on other sites

Found what was causing rendering troubles. These are:

  • UseLayoutRounding if used globaly will cause vertex drag to became jittery and laggy.
  • TextOptions.TextFormattingMode if set to Display will cause text artifacts with zooming.

Share this post


Link to post
Share on other sites

Version 2.1.7 has been uploaded to GitHub. It contains some bugfixes, major solution cleaning and new showcase app. 

In the next few days i will try to further update showcase app with new examples and make it better suitable for presentation purposes.

 

Also the updated NuGet version of the library is on the way.

Share this post


Link to post
Share on other sites

NuGet version of GraphX has been successfuly updated and is now available right from the Visual Studio NuGet packages. Currently i'm trying to free some time and select new web site design. Current design is quite lame as i have to mess around with Unix and Joomla! instead of ASP.NET (hosting rules!) so it will be good choice to update the design to look modern and lightweight and... nice! Hope i can handle this task with a less blood than it can be :)

 

At the same time it is vital to further enchance showcase app to be more appealing and rich on features. Fingers crossed... let's go!

Share this post


Link to post
Share on other sites

Had some free time recently! Implemented nice new BETA feature for GraphX: edge pointer now can be set as Images for both Source and Target side. Check it on GitHub! :)

And BETA means BETA. No rotation and offset support yet, but i plan to implement them soon. Also may be it will be a good idea to add second Source property for image state when edge is Highlighted.

Share this post


Link to post
Share on other sites

Found smth new about C# coding while working with properties! How to easily check value for null and assign it to var and then return :D

protected EdgeControl EdgeControl { get { return _edgeControl ?? (_edgeControl = GetEdgeControl(VisualParent)); } }

Usualy it involves additional If and several rows of code. Now it's better!

Share this post


Link to post
Share on other sites

Thanks to jorgensigvardsson, we have some nice improvements for GraphX! :) Fixes for edge labels positioning and the whole new calculations cancellation ability.

I plan to release v2.1.8 somewhere next week.

Share this post


Link to post
Share on other sites

Spent almost six hours on GraphX code refactoring and VAESPS fixes. Also occasionaly fixed FR algorithm calculations. Now the namespace names are as they should be... sorry for incoming update troubles >.<

Share this post


Link to post
Share on other sites

Working on some TASTY features for GraphX. All is done for WPF but i have some serious problems with METRO counterpart. As soon as i will deal with all bugs you will be able to:

  • Use enchanced  EfiicientSugiyama algorithm with different layout styles and true orthogonal edge routing
  • Use new highly customizable and accurate edge pointers: image and path, that will completely replace standart Path arrow in following releases.
  • Use new feature: vertex connection points (VCP) that once placed in VertexControl template will allow you to bind edge end to it thus allowing static edge connections and major edge behaviour customizations.
  • GraphX WPF will now work on .NET 4.0 instead of 4.0.3 allowing easier deployment. Features that required 4.0.3 were deprecated.

Hope someone ever reads this! Have a nice day! :)

Share this post


Link to post
Share on other sites

Lock'n'load! I'm on the bug killing spree! :D Uploading promoted changes to GitHub... NOW!

 

Still have more fixes on my TODO list by they are somewhat unrelated to incoming changes.

Share this post


Link to post
Share on other sites

Boss bug incoming, ready to fight! Got OutOfMemory exception on GraphX METRO while trying to zoom-in too close. This is very odd as it seems that everything else works fine.

Share this post


Link to post
Share on other sites

Well, i've been pushed to another strategic decision to further simplify GraphX namespaces by excluding platform specific marks :) This can significantly help to reuse code across different platforms. Still not sure about XAML that references assembly name which is still intact. Maybe i'll change it to seamless name too. So if you're using GraphX from repo you might want to hold on for a while till all refactoring modification comes out.

Share this post


Link to post
Share on other sites

The process is going well. Currently i've managed to unify aprox. 50% of METRO and WPF code. WPF project is the main source container while METRO (and potentialy any other platform) uses linked source files when possible.

During the process i've also implemented many tweaks as the result of code compare between WPF and METRO controls implementation. 

 

Still not sure if it will make any sence to unify core controls as they are way too different in some parts.

Share this post


Link to post
Share on other sites

Pushed in the new load of changes into GraphX repo. Almost all of them is about cross-platform refactoring featuring elimination of METRO files that has been merged with WPF ones with identical logic. The amount of code and code management efforts should be lessened greatly. Also i've implemented some performance tweaks for labels, edge pointers and VCPs which are nice & tasty. Faster = better in most of the cases!

 

I've following plans left up till 2.2.0 release in mind (if i only had enough time...):

  • Finish up the new showcase framework to support small & easy plugin-like showcases for different GraphX features and used techniques. It will also allow you to browse XAML templates right from the showcase app and easily navigate through structured set of showcases to look for what you'd like to.
  • Polish all refactoring results to prevent more breaking changes in the future. There are a lot of them already but it's woth it!
  • Further optimize edge calculations to eleminate scenarios where edges are unnecessarily calculated.
  • I wish to add the new shiny edge routing algorithm but even i am is too sceptical about this :\
  • Anything else critical or tasty i'll see and add in my TODO list :)

 

PS: I've decided to roll out v2.2.0 staright ahead as it contains already too much significant changes to use just another minor increment :)

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.