JustCode vs Resharper

21 posts, 0 answers
  1. Asit Aithal
    Asit Aithal avatar
    32 posts
    Member since:
    Jul 2005

    Posted 01 Dec 2010 Link to this post

    I already have JustCode. Do I need Resharper? If no, what will I miss?
  2. Michel Corbin
    Michel Corbin avatar
    20 posts
    Member since:
    Apr 2010

    Posted 13 Jan 2011 Link to this post

    No reply for this question. Humm.... Does Telerik afraid to compare his product with Resharper.
    Ok, ok, resharper is a very mature product with a nice Unit test runner and powerful refactoring engine but I think the Unit test Runner of Telerik have a very good potential.
    Personnally, I use Resharper with DevExpress because both have feature that is great to type a ton of code in a minute.
    Let's wait for Telerik to show me what this new product have to grant to the world of Visual studio productivity add-in.
  3. DevCraft banner
  4. Dan
    Dan avatar
    1 posts
    Member since:
    Feb 2011

    Posted 11 Feb 2011 Link to this post

    The "Complete Statement" or "Smart Enter" feature that Resharper and Coderush have is what I miss.  Other than that, I'd be happy with JustCode so far.
  5. Stacey
    Stacey avatar
    14 posts
    Member since:
    Feb 2011

    Posted 17 Feb 2011 Link to this post

    I wish JustCode could work with HTML in .cshtml files. Other than that, I love it. Would love CSS support.
  6. Mike
    Mike avatar
    31 posts
    Member since:
    Sep 2008

    Posted 08 Feb 2012 Link to this post

    Hi

    I have been using Just Code on and off for 6 months or so , more off than on sadly  I must admit. I have recently had major memory error issues with R# and have finally binned it  in favour of Just Code.

    My overall reaction is very positive , any shortfall in features hasn't had me running back to R# yet, and I do have to navigate a lot of "unknown code" so that aspect certainly shines.

    The code analysis is on a separate thread out side of the IDE, it may slow the PC slightly overall but it doesn't slow the IDE and more importantly keeps the memory footprint of the IDE down-- A very Big Point for me.

    In terms of features , R# does have a few more , the snippets hadling is better with their macro ability , but so far the Code Generation of Just Code has not let em down or disappointed me, nor have any "missing features" been that obvious.

    Navigation etc is hard to pick between , code analysis ditto., TestRunning I havn't tried yet.

    The bit I miss is Enhanced Intellesence (eg snippets in the suggestion list , etc) and File structure (I must suggest a feature request here) , but at the moment I am running Viusal Assist X as well , they seem to play well, to make up for that.

    I am committed to using rather than trying JC and maybe will respond later with experiences if that please people.

    Mike
  7. Jon
    Jon avatar
    8 posts
    Member since:
    Sep 2012

    Posted 02 Aug 2013 Link to this post

    I've been using ReSharper for the past 2+ years and just 2-weeks ago started with a company that is using JustCode.  So far it seems ok but there are annoyances.  However, there are annyouance with ReSharper as well.  You can tell that ReSharper is a pretty mature tool and JustCode is a bit less mature.  But I think given time, JustCode will certainly catch up and maybe overtake ReSharper.  But I don't see that just yet.

    Probably the biggest annoance I have so far with JustCode is that I have a box in the status bar that says "2201 errors in 99 files".  When in fact there are no errors.  It seems be struggle with Structures.  I don't use structures often, but the applicaiton that I started working on a few weeks ago, the previous developer used them all over the place.

    I also do not like that JustCode has issue identifying dead code. 

    One of my favorite things about ReSharper is it's ability to refactor Foreach loops into LINQ and other advanced LINQ refactoring.  I haven't seen that in JustCode, but then I have only been using it for a few weeks, so it may be there somewhere.

    I was a bit suprized to find out that JustCode is more expensive that ReSharper.  I figured it would be less expensive since it still has a lot of maturing to do to catch up.

    But all in all I like JustCode.  I don't plan to go back to ReSharper any time soon.  I want to get used to JustCode and see how it comes along in the next release.  But if it continues to have lots of issues with things like dead code and structures, at some point I would abandon it and go back to ReSharper.       

  8. Zdravko
    Admin
    Zdravko avatar
    657 posts

    Posted 06 Aug 2013 Link to this post

    Hi Jon,

     We really appreciate users' feedback and I am glad that you have pointed where we should work to make JustCode better tool according to your needs.

    As you can see in this article we have a Linq conversion, but indeed there is more to be done and the feature is not completely perfect.

    The thing that worries me most are the false positives "2201 errors in 99 files" that you mentioned.
    I would be grateful if you can send me a project or provide some information (project type, framework version and so on) that will help me to reproduce them so we could investigate and fix. We also have a command that reports 'Good Code Reds', but sometimes the issue is context related and a project is the best way to reproduce correctly the problem.
    If you decide to send us your project I want to assure you that it will be used only for the purpose of errors fixing.

    "I also do not like that JustCode has issue identifying dead code."

    We will appreciate an example or some hints for reproducing.
    Thank you.

    I look forward to hearing from you.

    Regards,
    Zdravko
    Telerik
    Share what you think about JustCode with us, so we can help you even better! You can use the built-in feedback tool inside JustCode, our forum, or our JustCode feedback portal.
  9. Jon
    Jon avatar
    8 posts
    Member since:
    Sep 2012

    Posted 06 Aug 2013 Link to this post

    Thanks for your feedback and comments.  I have looked at the LINQ support and it looks interesting.  I will definately use that going forward to get a feel for how it works.  

    After looking a bit closer at this issue, I think the issue is not with JustCode, but that .Net has the ability to deal with this error and fixes it where JustCode just displayes it as an error, as it should be an error. Something is odd here and.Net allows it when I think it should get an error. But the code works fine.  It seems that .Net is able to deal with it.  Let me explain...

    I cannot attach a project without creating a ticket, so I just pasted a VERY simple sample that recreats this issue.  Just setup a new solution with a winForm project and two class libraries.  Then copy the code below and add a label to Form1 in the winForm project.  Reference both class libraries in the winForm project and referenced class library 2 from class library 1.

    Now, in class-library-2 I have setup two structures.  One is public and one is internal.  In class-library-1 I create new objects for both structures.  Now I should NOT be able to create one for the internal structure because the class-libarary-2 assembly is seperate from the class-library-1 assemblt and the structure is internal... but .Net allows it and JustCode gives me an error.  The public structure is fine and neither .Net nor JustCode give me an error.  

    Now, start by leaving the error with the internal structure and just run the code.  Note that it works fine.  JustCode said it was an error, but .Net doesn't seem to care.  Now jump into class-library-1.class1 and look at the errors JustCode is giving you.  These are valid, as the MenuButton strucuture is internal.  But .Net seems to have flipped it to public because it deteremined it should be public.  But JustCode seems to be considering it internal, as it probalby should. 

    Now flip the structure to public... everything is fine.  No errors.

    So the question is... why does .Net allow it?  Maybe JustCode should just give a warning?  Not sure.  It sounds like JustCode is correctly reporting it as an error and .Net just flips it to public to deal with the error.  Interesting.

    If you want to create a ticket, I can attach my sample app that recreates this issue.

    Best regards,
    Jon Rothlander


    ClassLibrary1.Class1 
    - Add a reference to classlibrary2 after you create it.
    Imports ClassLibrary2.Class1
      
    Public Class Class1
      
        Private newPropertyValue As MenuButton
        Public Property NewProperty() As MenuButton
            Get
                Return newPropertyValue
            End Get
            Set(ByVal value As MenuButton)
                newPropertyValue = value
            End Set
        End Property
      
        Public Sub New()
      
            ' Note:  The following line will give an error if the structure in classlibrary2.class1 is internal.
            '
            '        - Flip it to public and JustCode doesn't mark it as an error
            '       
            ' Now it looks like JustCode is handle this correct.  However, why doesn't .Net give you an error when 
            ' it is internal and why does the code actually work in either case?  Does .Net just flip it to public 
            ' because it is being used as if it was public?  It seems so. 
            newPropertyValue = New MenuButton("tag", "name", "tooltip button name", True)
      
            ' Note: This one does not give the error because the structure is public.
            Dim obj2 As New MenuToolStrip
      
        End Sub
      
    End Class

    ClassLibrary2.Class1
    Public Class Class1
      
        Structure MenuButton
            Private m_Indexer As String
            Private m_ButtonTag As String
            Private m_MenuStripName As String
            Private m_ToolTipButtonName As String
            Private m_IsVisible As Boolean
      
            Public Property Indexer() As String
                Get
                    Return Me.m_Indexer
                End Get
                Set(ByVal value As String)
                    Me.m_Indexer = value
                End Set
            End Property
      
            Public Property ButtonTag() As String
                Get
                    Return Me.m_ButtonTag
                End Get
                Set(ByVal value As String)
                    Me.m_ButtonTag = value
                End Set
            End Property
      
            Public Property MenuStripName() As String
                Get
                    Return Me.m_MenuStripName
                End Get
                Set(ByVal value As String)
                    Me.m_MenuStripName = value
                End Set
            End Property
      
            Public Property ToolTipButtonName() As String
                Get
                    Return Me.m_ToolTipButtonName
                End Get
                Set(ByVal value As String)
                    Me.m_ToolTipButtonName = value
                End Set
            End Property
      
            Public Property IsVisible() As Boolean
                Get
                    Return Me.m_IsVisible
                End Get
                Set(ByVal value As Boolean)
                    Me.m_IsVisible = value
                End Set
            End Property
      
            Sub New(ByVal p_buttontag As String, ByVal p_menustripname As String, ByVal p_tooltipbuttonname As String, ByVal p_isvisible As Boolean)
                m_Indexer = ""
                m_ButtonTag = p_buttontag
                m_MenuStripName = p_menustripname
                m_ToolTipButtonName = p_tooltipbuttonname
                m_IsVisible = p_isvisible
            End Sub
      
            Sub New(ByVal p_Indexer As String, ByVal p_buttontag As String, ByVal p_menustripname As String, ByVal p_tooltipbuttonname As String, ByVal p_isvisible As Boolean)
                m_Indexer = p_Indexer
                m_ButtonTag = p_buttontag
                m_MenuStripName = p_menustripname
                m_ToolTipButtonName = p_tooltipbuttonname
                m_IsVisible = p_isvisible
            End Sub
        End Structure
      
        Public Structure MenuToolStrip
            Private m_ToolStripTag As String
            Private m_IsVisible As Boolean
      
            Public Property ToolStripTag() As String
                Get
                    Return Me.m_ToolStripTag
                End Get
                Set(ByVal value As String)
                    Me.m_ToolStripTag = value
                End Set
            End Property
      
            Public Property IsVisible() As Boolean
                Get
                    Return Me.m_IsVisible
                End Get
                Set(ByVal value As Boolean)
                    Me.m_IsVisible = value
                End Set
            End Property
      
            Sub New(ByVal p_toolstriptag As String, ByVal p_isvisible As Boolean)
                m_ToolStripTag = p_toolstriptag
                m_IsVisible = p_isvisible
            End Sub
        End Structure
      
    End Class


    Form1.vb
    - Add a label1 to the form.  Reference class library 1 and 2.
    Imports ClassLibrary2.Class1
      
    Public Class Form1
      
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Dim obj As New ClassLibrary1.Class1
            Dim menuItem = obj.NewProperty()
            Label1.Text = menuItem.ButtonTag
      
        End Sub
      
    End Class

  10. Zdravko
    Admin
    Zdravko avatar
    657 posts

    Posted 07 Aug 2013 Link to this post

    Hi Jon,

     Thanks for the reply.
    This is really weird issue. Structures in VB are public when no access modifier is set. It makes no sense to be fixed when the 'Public' keyword is added.
    We will definitely investigate and fix this.
    As a reward for your assistance you receive 1000 Telerik points to your account.
    Thank you.

    Regards,
    Zdravko
    Telerik
    Share what you think about JustCode with us, so we can help you even better! You can use the built-in feedback tool inside JustCode, our forum, or our JustCode feedback portal.
  11. Jon
    Jon avatar
    8 posts
    Member since:
    Sep 2012

    Posted 07 Aug 2013 Link to this post

    Yeah, this stumped me as well, at least at first.  But after some poking the .Net documentation I final ran into something that I had forgotten... that structures are internal by default, unlike classes which are public by default.  But more importantly here, and what is stumping us, is that a default structure inherits its visibility from it's parent object.  That is why this is happening.  JustCode is not checking the parent object for structures that are set with a default visibility. 

    In summary, my structure is internal by default but because the class that contains it is public, the structure is public.  But JustCode is seeing it as internal.  JustCode needs to look at the parent class for a structure with a default visibility.  I was able to get around JustCode missing this by adding public to the structure so that JustCode understood what I was doing.  But .Net was already seeing it as public.     
     
    Personaly, I like the fact that JustCode caught this because putting public on the structure is what the original developer should have done and probably missed because it did not cause an error.  But I think JustCode should be able to check the parent object and if it sees the parent is public and the structure is internal, offer a warning to the user that a public class is exposing an internal structure as public and recommend that for maintainability and clarity, that the structure be defined as public as well. That would be a very nice warning, as I imagine plenty of developers have ran into similar situations without realizing structures work this way.  It takes a LOT of time to work through something like this and realize what is going on.  Getting back to the origional posting... that would be a very nice feature for JustCode beyound what ReSharper and other offers.
  12. Zdravko
    Admin
    Zdravko avatar
    657 posts

    Posted 07 Aug 2013 Link to this post

    Hello Jon,

     Thanks for the reply.
    According to this article  Structures are Public if no other modifier is set and so their fields. It is not said that they inherit their access modifier from the parent, but maybe the article is not complete.
    However, the issue is logged and a fix awaits. 
    Thank you.

    Regards,
    Zdravko
    Telerik
    Share what you think about JustCode with us, so we can help you even better! You can use the built-in feedback tool inside JustCode, our forum, or our JustCode feedback portal.
  13. Jon
    Jon avatar
    8 posts
    Member since:
    Sep 2012

    Posted 07 Aug 2013 Link to this post

    Yeah, I have seen different articles say different things.  You have to set up a test to prove which one is correct.  That is what I had to do with my sample.  Actually, I think they are all correct but they are just not explaining it very well by mistated something or by not giving you the full story.  I did find one article on MSDN that says the structures with a default access modifier pull it from the parent.  Here's an article on MSDN that says they default to internal.  But this one goes on to provide the rest of the story.  http://msdn.microsoft.com/en-us/library/ms173121.aspx

    "Classes and structs that are declared directly within a namespace (in other words, that are not nested within other classes or structs) can be either public or internal. Internal is the default if no access modifier is specified."

    Then a few lines down...

    "The access level for class members and struct members, including nested classes and structs, is private by default."
     
    I think this is the key.  If a structure is a member of a class, it defaults to private because it is inheriting it from the parent class, which has the default of private since it is a class.  So logically the structure is inheriting it from the parent in that case.  To prove this, just change the parent class to FRIEND (internal in C#).  Note that the structure is now FRIEND as well.  The structure with a default access modifier always has the visibility of the parent object.  Through a simple test like mine, you can prove/disprove this. 

    Very confusing!  Even Microsoft seems to disagree with their selves on this one.  I hope that working through this helps.  I know it has helped me understand this better.  In the end, just don't use the default access modifiers on structures... they are just too confusing!  Maybe that is what JustCode could recommend as a warning.
  14. Zdravko
    Admin
    Zdravko avatar
    657 posts

    Posted 08 Aug 2013 Link to this post

    Hello Asit,

     I just want to point you that the article you have found is C# Programming Guide and your code is in VB as the article I sent you. It seems both languages has this architectural difference which makes them specific.
    Thank you.

    Regards,
    Zdravko
    Telerik
    Share what you think about JustCode with us, so we can help you even better! You can use the built-in feedback tool inside JustCode, our forum, or our JustCode feedback portal.
  15. Jon
    Jon avatar
    8 posts
    Member since:
    Sep 2012

    Posted 08 Aug 2013 Link to this post

    Nice catch!  There is difference between C# and VB.Net in this regards! 

    Now I can see that JustCode was written for the C# version of this and only has an issue with the VB.Net version.  I converted everything to C# and everthing worked fine.  So I even sent so far as to merge VB.Net and C# class in different paterns to identify where the issue was.  After running this back and forth a few times, you can see that in C# all of the rules that you would expect, do in fact work as expected and JustCode has no issues with them.  But in VB.Net is where they do not work as you would expect and JustCode has a problem.

    In C# a struct with a default access modifier, the modifier is internal even when the parent class is public.  I beleive this goes against the article you referenced, as they were VB and not C#.  But test it out and you can see it in action and see how it defines the visiblity of the structure.  In VB.Net if the class in public and the structure is set to default, the structure is private!  In C# if you create a public class and a struct inside the class and do not set an access modifier, the structure is internal.  Interesting. 

    I'm not going based on any of the articles, as I no longer trust tehm.  Just based on setting it up and testing it.  JustCode seems to handle the C# fine but has an issue with the VB.Net default access modifier on a structure.  It looks like the VB.Net ONLY rule where it pulls it's visibility from the parent, that rule is being ignored in JustCode.  But don't trust me or the articles.  Test it yourself and you will see. 


  16. Jon
    Jon avatar
    8 posts
    Member since:
    Sep 2012

    Posted 08 Aug 2013 Link to this post

    Final lesson learned... Don't use default access modifiers on VB.Net structures!   
  17. Isidro Padilla
    Isidro Padilla avatar
    31 posts
    Member since:
    Sep 2012

    Posted 09 Aug 2013 Link to this post

    JustCode will be a great competitor for CodeRush and Resharper. Both CodeRush and Resharper are two good tools but Telerik been shown in several of their tools they can even outperform its competitors. I hope so...
  18. Felickz
    Felickz avatar
    14 posts
    Member since:
    Aug 2012

    Posted 11 Oct 2013 Link to this post

    Just code needs style cop support.
  19. Mike
    Mike avatar
    31 posts
    Member since:
    Sep 2008

    Posted 12 Oct 2013 Link to this post

    Hi

    A Long thread , but back on the original course !!

    I finally gave in and bought a  64 Bit PC and my R# woes went away

    JustCode still doesn't have the File Structure (or whatever we call it ) that R# has and Intellesence is still missing , from my view point these are essential bits of a productivity add in. I have been using a mix of Visual Assist X and R# for 10 years now and really cannot work without these features, which both the competitors have. CodeRush is simply "just different" and is difficult to compare with the other 3

    Just Code showed big improvements initially but I am afraid still lags behind R# which is a very mature product . Ad to that its significantly cheaper to buy and maintain

    Mike
  20. Carlitos
    Carlitos avatar
    18 posts
    Member since:
    Nov 2015

    Posted 25 Feb Link to this post

    I haven't used JC yet. So far R# does all I need/want/love. Any new ideas/features for 2016 as this post is a bit old?
  21. Nikolay Valchev
    Admin
    Nikolay Valchev avatar
    72 posts

    Posted 01 Mar Link to this post

    Hello,

    About a year ago, we announced that JustCode for Visual Studio 2015 is going to be rebuilt to step on Roslyn API, you can read the article - What’s Ahead for JustCode.
    This major change required from us to reimplement all of our C# and Visual Basic features to be re-implemented using this API and it shaped up as our top priority. Since then, we have aligned a lot of our most requested and important features with the ones brought by JustCode for the previous version of Visual Studio, but there is still some work to be done, so it remains as our main focus. Of course, we are always open to new feature requests or any other kind of suggestions and I can assure you that they would be rightly prioritized.

    Best Regards,
    Nikolay Valchev
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
  22. Isidro Padilla
    Isidro Padilla avatar
    31 posts
    Member since:
    Sep 2012

    Posted 02 Mar in reply to Nikolay Valchev Link to this post

    Agree, I will continue this interesting development. Thank you very much for theinformation.

    Isidro Padilla

Back to Top
DevCraft banner