SubMain - CodeIt.Right The First Time!

/Community

Support Community for SubMain Products
 Home Products Services Download Purchase Support
in Search
 
Home Forums Blogs Tutorials/CIR Tutorials/GD Downloads
Welcome to SubMain Community Sign in | Join | Help

SubMain Blog

Browse by Tags

All Tags » News » CodeIt.Right   (RSS)

  • Released: CodeIt.Right v3.0

    The v3.0 of CodeIt.Right v3 is here – the new major version of our automated code review and code quality analysis product. Here are the v3.0 new feature highlights:

    • VS2017 RC integration
    • Official support for VS2015 Update 3 and ASP.NET 5/ASP.NET Core 1.0 solutions
    • Solution filtering by date, source control status and file patterns
    • Summary report view - provides a summary view of the analysis results and metrics, customize to your needs
    • New Review Code commands – review opened files and review checked out files
    • Improved Profile Editor with advanced rule search and filtering
    • Improved look and feel for Violations Report and Editor violation markers
    • Setting to keep the OnDemand and Instant Review profiles in sync
    • New Jenkins integration plugin
    • Batch correction is now turned off by default
    • Most every CodeIt.Right action now can be assigned a keyboard shortcut
    • New rules

    For the complete and detailed list of the v3.0 changes see What's New in CodeIt.Right v3.0


    Solution Filtering

    The solution filtering feature allows to narrow the code review scope to using the following options:

    • Analyze files modified Today/This Week/Last 2 Weeks/This Month – so you can set the relative date once and not have to change the date every day
    • Analyze files modified since specific date
    • Analyze files opened in Visual Studio tabs
    • Analyze files checked out from the source control
    • Analyze only specific files – only include the files that match a list of file patters like *Core*.cs or Modules\*. See this KB post for the file path patterns details and examples.

    cir-v3-solution-filtering

    New Review Code commands

    We have changed the Start Analysis menu to Review Code – still the same feature and the new name is just highlighting the automated code review nature of the product. Also added the following Review Code commands:

    • Analyze Open Files menu - analyze only the files opened in Visual Studio tabs
    • Analyze Checked Out Files menu - analyze only files that that are checked out from the source control

    cir-v3-profile-filterImproved Profile Editor

    The Profile Editor now features

    • Advanced rule filtering by rule id, title, name, severity, scope, target, and programming language
    • Allows to quickly show only active, only inactive or all rules in the profile
    • Shows totals for the profile rules - total, active, and filtered
    • Improved adding rules with multiple categories

     

    Summary Report

    The Summary Report tab provides an overview of the analyzed source code quality, it includes the high level summary of the current analysis information, filters, violation summary, top N violation, solution info and metrics. Additionally it provides detailed list of violations and excludes.

    The report is self-contained – no external dependencies, everything it requires is included within the html file. This makes it very easy to email the report to someone or publish it on the team portal – see example.

    cir-v3-summary-report-part

    The Summary Report is based on an ASP.NET Razor markup within the Summary.cshtml template. This makes it very easy for you to customize it to your needs.

    You will find the summary report API documentation in the help file – CodeIt.Right –> Help & Support –> Help –> Summary Report API.

    cir-v3-summary-source

     

    How do I try it?

    Download the v5.0 at http://submain.com/download/codeit.right/

    Feedback is what keeps us going!

    Let us know what you think of the new version here - http://submain.com/support/feedback/


    Note to the CodeIt.Right v2 users
    : The v2.x license codes won't work with the v3.0. For users with active Software Assurance subscription we have sent out the v3.x license codes. If you have not received or misplaced your new license, you can retrieve it on the My Account page. Users with expired Software Assurance subscription will need to purchase the new version - currently we are not offering upgrade path other than the Software Assurance subscription. For information about the upgrade protection see our Software Assurance and Support - Renewal / Reinstatement Terms

  • CodeIt.Right v3.0 Release Candidate

    We have just made available the Release Candidate of CodeIt.Right v3.0, here is the new feature highlights:

    • VS2017 RC integration
    • Solution filtering by date, source control status and file patterns
    • Summary report view (announced as the Dashboard in the Beta preview) - provides a summary view of the analysis results and metrics, customize to your needs

    These features were announced as part of our recent v3 Beta:

    • Official support for VS2015 Update 2 and ASP.NET 5/ASP.NET Core 1.0 solutions
    • New Review Code commands:
      • only opened files
      • only checked out files
      • only files modified after specific date
    • Improved Profile Editor with advanced rule search and filtering
    • Improved look and feel for Violations Report and Editor violation markers
    • New rules
    • Setting to keep the OnDemand and Instant Review profiles in sync
    • New Jenkins integration plugin
    • Batch correction is now turned off by default
    • Most every CodeIt.Right action now can be assigned a keyboard shortcut
    • For the Beta changes and screenshots, please see Overview of CodeIt.Right v3.0 Beta Features

    For the complete and detailed list of the v3.0 changes see What's New in CodeIt.Right v3.0

    To give the v3.0 Release Candidate a try, download it here - http://submain.com/download/codeit.right/beta/


    Solution Filtering

    In addition to the solution filtering by modified since specific date, open and checked out files available in the Beta, we are introducing few more options:

    • Analyze files modified Today/This Week/Last 2 Weeks/This Month – so you can set the relative date once and not have to change the date every day
    • Analyze only specific files – only include the files that match a list of file patters like *Core*.cs or Modules\*. See this KB post for the file path patterns details and examples.

    cir-v3-solution-filtering

    Summary Report

    The Summary Report tab provides an overview of the analyzed source code quality, it includes the high level summary of the current analysis information, filters, violation summary, top N violation, solution info and metrics. Additionally it provides detailed list of violations and excludes.

    The report is self-contained – no external dependencies, everything it requires is included within the html file. This makes it very easy to email the report to someone or publish it on the team portal – see example.

    cir-v3-summary-report-part

    The Summary Report is based on an ASP.NET Razor markup within the Summary.cshtml template. This makes it very easy for you to customize it to your needs.

    You will find the summary report API documentation in the help file – CodeIt.Right –> Help & Support –> Help –> Summary Report API.

    cir-v3-summary-source

     

    Feedback

    We would love to hear your feedback on the new features! Please email it to us at support@submain.com or post in the CodeIt.Right Forum.

  • You asked, we answered: Asynchronous Programming Demystified webinar Q&A

    If you didn't make it to the webinar, we recommend you watch the webinar recording first - the questions and answers below will make much more sense then.

    At the last month's webinar, "Asynchronous Programming Demystified" Stephen Cleary, Microsoft MVP, and author of "Concurrency in C# Cookbook" introduced the async and await keywords and describes how they work.

    During the webinar, there were a number of great questions asked from viewers that Stephen didn't have sufficient time to answer. In fact, there were 88 total questions. Fortunately, Stephen was kind enough to provide us with his answers below:

    Q: You showed us how to correctly use and call async methods. But how do I create an async API out of nothing?

    A: The low-level type for this is TaskCompletionSource , which allows you to complete a task manually. There are some higher-level wrappers as well, e.g., Task.Factory.FromAsync will take the old Begin/End style asynchronous methods and wrap them into a task.

    Q: Can we use Async inside LINQ methods (with lambda BLOCKED EXPRESSION?

    A: LINQ is inherently synchronous, so there isn't much you can do asynchronously. E.g., you can use Select with an asynchronous delegate, but that gives you a sequence of tasks, and there isn't much you can do with them other than using something like Task.WhenAll. If you want an asynchronous sequence or stream abstraction, a better fit would be Reactive Extensions.

    Need Async Guidance?
    CodeIt.Right includes extensive Async Best Practices rule set that will guide you through the intricacies of Async. Start a no-cost 14-day trial of CodeIt.Right, SubMain's code quality analysis, automated code review and refactoring for Visual Studio.

    Q: What would be the best approach to implement 3rd party synchronous library/API into let's say our existing asynchronous API? Since we does want to maintain asynchronous should we wrap it into Task Run or something else?

    A: Answered in webinar

    Q: Does async await help with AJAX calls?

    A: Async can exist independently on the server and the client. You can use async on the client to help you call AJAX endpoints (i.e., call several of them concurrently). You can also use async on the server to help you implement AJAX endpoints.

    Q: Will try-catch around await keyword really catch all exceptions that can be raised within the called async method?

    A: Yes; an async method will always place its exceptions on the task it returns, and when you await that task, it will re-raise those exceptions, which can be caught by a regular try/catch.

    Q: Is it true that async method is not in fact started until either await, Wait or .Result is called for it?

    A: No. An async method starts when it is called. The await/Wait/Result will just wait for the method to complete.

    Q: We use MSMQ for a lot of our asynchronous WCF processing. It's heavy and expensive. Can async/await replace some if not all of the MSMQ processing?

    A: Async/await is not a direct replacement for any kind of queuing. You can use async to interact with the queue, though. The MessageQueue class unfortunately does not follow a standard asynchronous pattern, but you can use TaskCompletionSource to create await-compatible wrapper methods. The MSDN docs "Interop with Other Asynchronous Patterns and Types" under "Task-based Asynchronous Pattern" should get you started.

    Q: IAsyncResult fits very nicely with Windows low level and IOPorts. Does async/await have the same high performance?

    A: Answered in webinar

    Q: Can you explain when it is appropriate to use ConfigureAwait(false)?

    A: Anytime that the async method does not need its context, it should use ConfigureAwait(false). This is true for most library code.

    Q: Re. Task.Run() blocking a background thread... even using await will block a thread at some point surely?

    A: No, await does not block a thread. I have more details in my blog post "There Is No Thread".

    Q: Do you need to tweak machine/web config to get greater throughput for asynchrony?

    A: Answered in webinar

    Q: What about WhenAll?

    A: WhenAll can be used to concurrently execute multiple asynchronous operations.

    Q: What are the main problems using ContinueWith? There a lot of companies that have this type of implementation because of legacy code.

    A: ContinueWith is problematic for several reasons. For one, a single logical method must be broken up into several delegates, so the code is much more difficult to follow than a regular await. Another problem is that the defaults are not ideal; in particular, the default task scheduler is not TaskScheduler.Default as most developers assume - it is in fact TaskScheduler.Current. This unexpected task scheduler can cause issues like the one I describe in my blog post "StartNew Is Dangerous".

    Q: Why is button1_Click using the async keyword, when it is calling the async method?

    A: Any method that uses the await keyword must be marked async. Normally, I would make the method an "async Task" method, but since this is an event handler, it cannot return a task, so I must make it an "async void" method instead.

    Q: Are there any means to debug async code easily?

    A: VS2013 has pretty good support for debugging asynchronous code, and the tooling is continue to improve in this area. The one drawback to async debugging is that the call stack is not as useful. This is not a problem of async; we developers have gotten used to the idea that the call stack is a trace of how the program got to where it is - but that mental model is incorrect; the call stack is actually telling the program where to go next.I have an AsyncDiagnostics library that preserves "how the program got to where it is", which is sometimes helpful when trying to track down an issue.

    Q: In ASP.NET there are many queues. What will happen when system is overloaded, and we fulfill Async IO ports. Will it throw exception or will act it as it would without async?

    A: When the queues fill up, it will act the same. Async provides better scalability, but not infinite scalability. So you can still have requests timing out in the queues or being rejected if the queues fill up. Note that when the async request starts, it is removed from the queue, so async relieves pressure on the queues.

    Q: Lets say I have an WinForm app. with a method that renders some image that takes 60 secs for example. When the user presses the Begin button, I want to render to occur and later say "Finished" when done, without blocking during the meantime. Can you suggest a strategy?

    A: Answered in webinar

    Q: Is it acceptable to create asynchronous versions of synchronous methods by just calling the synchronous methods with Task.Run

    A: Answered in webinar

    Q: Is it really bad to wrap async code in sync code? I thought that is a very bad practice, but have seen OAuth packages wrapping async code in sync methods with some kind of TaskHelper eg. GetUser is internally using GetUserAsync

    A: The problem with library code is that sometimes you do want both asynchronous and synchronous APIs. But you don't want to duplicate your code base. It is possible to do sync-over-async in some scenarios, but it's dangerous. You have to be sure that your own code is always using ConfigureAwait(false), and you also have to be sure that any code your code calls also uses ConfigureAwait(false). (E.g., as of this writing, HttpClient does on most platforms but not all). If anyone ever forgets a single ConfigureAwait(false), then the sync-over-async code can cause a deadlock.

    Q: If you have large application with lots of different things to do with async how to handle the correct "flow"? So user will not use application in wrong way. Is there best practices for this?

    A: The approach I usually use is to just disable/enable buttons as I want them to be used. There is a more advanced system for UI management called Reactive UI (RxUI), but it has a higher learning curve.

    Async Guidance at your fingertips!
    CodeIt.Right includes extensive Async Best Practices rule set that will guide you through the intricacies of Async. Start a no-cost 14-day trial of CodeIt.Right, SubMain's code quality analysis, automated code review and refactoring for Visual Studio.

    Q: Is await produces managed code in .NET? Can we write unmanaged code within await/ async blocks?

    A: Await does produce managed (and safe) code. I believe unsafe code can be within an async method (though I've never tried it), but await cannot be used within an unsafe code block.

    Q: Any advice with use of DAL (sync with MSSQL) to use with async call? Use Task.Run or rewrite

    A: I'd recommend using the asynchronous support in EF6 to rewrite the DAL as purely asynchronous. But if you are in a situation where you need UI responsiveness and don't want to take the time to make it asynchronous, you can use Task.Run as a temporary workaround.

    Q: But you do want it for CPU bound code on client UIs (WPF, WinForms, Phone, etc.)

    A: Answered in webinar

    Q: When I am awaiting on several tasks, is it better to use WaitAll or WhenAll?

    A: WaitAll can cause deadlock issues if the tasks are asynchronous, just like Result and Wait do. So, I would recommend "await Task.WhenAll(...)" for asynchronous code.

    Q: You say await Task.Run(() => Method() is Ok to do... I'm assuming it's not best practice or just not the way Stephen uses? I guess is it a common or personal practice?

    A: Answered in webinar

    Q: Can you explain the Server Side Scalability benefit a little more?

    A: Answered in webinar

    Q: If there is a use case where i have to call async call from synchronous code, what is the best way to do that?

    A: "There is no good way to do sync-over-async that works in every scenario. There are only hacks, and there are some scenarios where no hack will work. So, for sure, the first and best approach is to make the calling code async; I have a blog post series on "async OOP" that covers ways to make it async even if it doesn't seem possible at first.

    If you absolutely must do sync-over-async, there are a few hacks available. You can block on the async code (e.g., Result); you can execute the async code on a thread pool thread and block on that (e.g., Task.Run(() => ...).Result); or you can do a nested message loop. These approaches are all described in Stephen Toub's blog post "Should I Expose Synchronous Wrappers for My Asynchronous Methods?"

    Q: Would "unit testing" be part of "Async Best Practices"? As in, would you be giving tips on best way to unit test in that future proposed webinar?

    A: Answered in webinar

    Q: What is the appropriate way to unit test an async method?

    A: Answered in webinar

    Q: The benefit : "Responsiveness on the client side" sounds like a background process. I thought async wasn't a background thing...

    A: Answered in webinar

    Q: I've read and heard often that another thread is not created. I'm struggling to understand how I/O is occurring without a thread managing it while the main thread is released. I comprehend how it gets back, i.e. an event of sorts picking up on the stack where it left off.

    A: I have a blog post "There Is No Thread" that explains this in detail.

    Q: When you implementing the IUserStore for the Identity, there are things that require you to implement a Task returning async method, however, I don't see any need to call async method. Task IUserStoreMethod(){ // no async stuff, but it requires a Task , and it cant be changed because it is from the interface. } How should I write the body? Is Task.Run() inside the method body an exception here?

    A: Normally, I/O is asynchronous. So "saving" a user is an inherently I/O-bound operation, and should be asynchronous if possible. If you truly have a synchronous implementation (e.g., saving the user in memory as part of a unit test), then you can implement the asynchronous method by using Task.FromResult.

    Q: Does Await spin a new thread under the hoods?

    A: Answered in webinar

    Q: What is the best way to call Async Methods from class constructors?

    A: Answered in webinar

    Q: Shouldn't the Click event handler be also renamed to ClickAsync?

    A: Answered in webinar

    Q: Is it possible to communicate progress from the async task?

    A: Yes. An asynchronous method can report progress by taking an IProgress parameter and calling its Report method. UI applications commonly use Progress as their implementation of IProgress . There's more information on MSDN under the "Task-based Asynchronous Pattern" topic.

    Q: How would unit/integration test code coverage influence designs and usage of async/await?

    A: Answered in webinar

    Q: So if my UI uses await/async to call a WebAPI method, the method itself has to be async or else it will be blocking correct?

    A: Answered in webinar

    Q: I have a project that interacts with SharePoint 2010 object model, so bound to .NET 3.5. Any caveats when using TPL for 3.5?

    A: .NET 3.5 is before the TPL was introduced (and well before async/await). There is an AsyncBridge project which attempts to back port the TPL and async support, but I haven't ever used it.

    Q: Can I use Async and await inside a sandboxed CRM Dynamics plugin?

    A: I don't know about Dynamics, sorry. But if they have support for .NET 4.5, I don't see why not.

    Q: How can, for example, the DownloadAsync method be canceled in a proper way from another UI action?

    A: Cancellation is done with the CancellationToken/CancellationTokenSource types in .NET. Usually, asynchronous methods just pass the CancellationToken through to whatever APIs they call. For more information, see the MSDN topics "Task-based Asynchronous Pattern" and "Cancellation in Managed Threads".

    Q: How to call an async method from a synchronous method or controller?

    A: Answered in webinar

    Q: Is .NET 4.5.1 the minimum for async / await?

    A: Answered in webinar

    Q: How do we do exception handling inside the DownloadAsync function?

    A: Answered in webinar

    Q: Can you explain how we can perform unit testing using these new keywords?

    A: Answered in webinar

    Q: Is async/await useful for WPF and Windows Form?

    A: Yes, async is useful in any UI scenario.

    Q: For Task Parallel and async/await which one we should use?

    A: The Task Parallel Library is great for CPU-bound code. Async is better for I/O-bound code.

    Q: If you got an normal MVC controller that returns a standard view... If that view contains AJAX code to fetch data from an async (WebAPI) controller, would the calling thread be blocked while the AJAX call is running? We have a situation at work where we cant switch page before the AJAX call is done... which seems a bit weird to me.

    A: Answered in webinar

    Q: When building async controllers/methods, is there some way to tell that the code is actually running asynchronous? How can I tell that the code is non blocking?

    A: Answered in webinar

    Need Async Guidance?
    CodeIt.Right includes extensive Async Best Practices rule set that will guide you through the intricacies of Async. Start a no-cost 14-day trial of CodeIt.Right, SubMain's code quality analysis, automated code review and refactoring for Visual Studio.
  • Webcast: Asynchronous Programming Demystified - Jan 14th

    Featuring Stephen Cleary, Microsoft MVP

      Date: Wednesday, January 14th, 2015
      Time: 10:00 am PST / 1:00 pm EST

    Register Here!

    Asynchronous code using the new async and await keywords seems to be everywhere these days! These keywords are transforming the way programs are written. Yet many developers feel unsure about Async programming.

    Get demystified with Stephen Cleary, as he introduces the new keywords and describes how they work. Stephen is the author of "Concurrency in C# Cookbook" as well as several MSDN articles on asynchronous programming. Together, we'll cover:

    • How the async and await keywords really work
    • How to think about asynchronous code
    • The difference between asynchrony and parallelism
    • Common mistakes when learning asynchronous programming
    • Fixing Async code smells with CodeIt.Right

    If this time isn't convenient for you, register and we will send you the recording afterwards.

    Register Here!

  • Webcast: Identify and Correct Common Code Smells - Nov 12th

      Featuring Steve Smith, Microsoft Regional Director, Microsoft MVP, ASP Insider 

      Date: Wednesday, November 12th, 2014
      Time: 10:00 am PST / 1:00 pm EST

    Register Here!

    Refactoring is a critical developer skill that helps keep code from collapsing under its own weight. This webinar is based on Pluralsight course "Refactoring Fundamentals" by Steve Smith and covers when and how to refactor code, as well as a wide variety of "code smells" that may indicate some refactoring is warranted.

    Join Steve Smith as he shows some common code issues, and how to identify and refactor them with SubMain's CodeIt.Right code quality tool. In this webcast Steve will cover:

    • What are Code Smells
    • Principle of Least Surprise
    • Rules of Simple Design
    • Explain code smells like, Long Method, Large Class, Primitive Obsession, Data Clumps, Poor Names, Inappropriate Abstraction Level and more
    • Demo using CodeIt.Right to find and resolve code issues

    If this time isn't convenient for you, register and we will send you the recording afterwards.

    Register Here!

  • Released: CodeIt.Right v2.7

    CodeIt.Right v2.7 is a maintenance release that includes:

    • Support for VS2013 Update 3 and newer
    • Improved compatibility with Shared/Universal App projects
    • Exported Violation Report now includes profile name, severity threshold, version of CodeIt.Right and duration of the analysis
    • Exported Violation Report now includes information about Excluded Projects, Files, Rules and Violations
    • Command line version console output shows profile name as well as number of excluded projects, files, rules and violations
    • Other improvements and fixes

    For detailed list please see What's New in CodeIt.Right v2.7

    How do I try it?

    Download v2.7 at http://submain.com/download/codeit.right/

  • Webcast: Microsoft Design Guidelines with CodeIt.Right - June 3rd

      Featuring David McCarter, Microsoft MVP 

      Date: Tuesday, June 3rd, 2014
      Time: 10:00 am PST / 1:00 pm EST

    Register Now

    Join David McCarter and Serge Baranovsky as they discuss Microsoft Design Guidelines, the most popular coding standard among C# and VB teams, provide recommendations, show how CodeIt.Right finds code issues, fixes them and provides painless experience when implementing Microsoft coding standards. In this webcast they will cover:

    >
    • Benefits of coding standards
    • Microsoft Design Guidelines overview
    • Microsoft Guidelines category review and examples
    • Additional notes for VB developers
    • Demo using CodeIt.Right to find and resolve code issues
    • Bonus #1 - ASP.NET Security rules
    • Bonus #2 - Asynchronous programming best practice ruleset
    • Bonus #3 - Refactoring to Patterns

    If this time isn't convenient for you, register and we will send you the recording afterwards.

    Register Now

  • Released: CodeIt.Right v2.6

    CodeIt.Right v2.6 adds support for Shared Projects, introduces automated refractorings for the majority of StyleCop rules (when using StyleCop integration), performance improvements and fixes:

    • Support for Shared Project introduced in VS2013 Update 2
    • In v2.5 we added StyleCop integration into CodeIt.Right analysis. In v2.6 we are adding 93 auto-fix refactorings for StyleCop violations and currently covering automatic correction for 85% of StyleCop based violations (143 out of 164)
    • Improved performance of the built-in profiles by turning off few processing intensive optional rules. You can turn them back on by creating custom profiles
    • Tweaked a number of rules and instances for better conformance to Microsoft Design Guidelines
    • SuppressMessage improvements for local variables
    • Improvements and bug fixes

    For detailed list please see What's New in CodeIt.Right v2.6

    How do I try it?

    Download v2.6 at http://submain.com/download/codeit.right/

  • Webcast: Coding Standards in the Real World - March 25

    A recording of the webcast and a copy of the slides have been posted to the web site - watch it here

    The companion ebook is available here - download Coding Standards in the Real World ebook.

    Enjoy the recording, and please let us know how we can help!


      Featuring David McCarter, Microsoft MVP 

      Date: Tuesday, March 25th
      Time: 10:00 am PST / 1:00 pm EST

    Recording Available

    While it is very important to follow a coding standard and best industry practices, it isn't always easy or straightforward. There are major long term benefits to be gained, but the hurdles of additional cost and human resistance to change must first be overcome. Join David McCarter and Serge Baranovsky as they discuss a tried and tested successful approach that will enable your team to implement and use an agreed coding standard with the least amount of conflict. In this webcast they will discuss:

    • Benefits of coding standards
    • Examples of good and bad coding practices
    • Challenges of implementing coding standards and why so many teams fail
    • Seven step approach for successful implementation
    • Your coding standards checklist
    • How CodeIt.Right helps

      Bonus:  webcast attendees will also receive SubMain's "Coding Standards in the Real World" ebook.

    One lucky person will win a dotNetDave prize package that includes "David McCarter's .NET Coding Standards" book (autographed) and "Rock Your Code" conference DVD.

    If this time isn't convenient for you, register and we will send you the recording afterwards.

    Recording Available

  • Upcoming Webcast: Coding Standards in the Real World - March 25

      Featuring David McCarter, Microsoft MVP  

      Date: Tuesday, March 25th
      Time: 10:00 am PST / 1:00 pm EST

    Register Now

    While it is very important to follow a coding standard and best industry practices, it isn't always easy or straightforward. There are major long term benefits to be gained, but the hurdles of additional cost and human resistance to change must first be overcome. Join David McCarter and Serge Baranovsky as they discuss a tried and tested successful approach that will enable your team to implement and use an agreed coding standard with the least amount of conflict. In this webcast they will discuss:

    • Benefits of coding standards
    • Examples of good and bad coding practices
    • Challenges of implementing coding standards and why so many teams fail
    • Seven step approach for successful implementation
    • Your coding standards checklist
    • How CodeIt.Right helps

      Bonus:   webcast attendees will also receive SubMain's "Coding Standards in the Real World" ebook.

    One lucky person will win a dotNetDave prize package that includes "David McCarter's .NET Coding Standards" book (autographed) and "Rock Your Code" conference DVD.

    If this time isn't convenient for you, register and we will send you the recording afterwards.

    Register Now

  • Released: CodeIt.Right v2.5

    As an active member of the Microsoft Visual Studio Industry Partner (VSIP) program, we again are proud to be VS2013 sim-ship partner and shipping all editions of CodeIt.Right v2.5 today simultaneously with the release of Visual Studio 2013.

    This release includes official and complete support for Visual Studio 2013, new plugin to integrate StyleCop into CodeIt.Right analysis, updated look for Violations Report Export, performance improvements and fixes: codeit.right_v2.5_new_339x213

    • Official Visual Studio 2013 support
    • New plugin integrates StyleCop into CodeIt.Right analysis
      • Run StyleCop rules as part of CodeIt.Right Analysis
      • CodeIt.Right auto-corrections for StyleCop rules
      • Exclude StyleCop rules or violations
      • On Demand Analysis - include StyleCop violations into CodeIt.Right Violations Report
      • Instant Code Review - include StyleCop violations as part of CodeIt.Right Violations Report
      • Instant Code Review - show StyleCop violations in VS Editor and violations bar
      • Command Line - include StyleCop violations into the analysis
    • Revamped XSLT stylesheet for Violations Report Export to XML
    • Auto-corrections in Instant Code Review mode now show "growl" type warnings
    • CRDATA file format change - your existing CRDATA files will convert automatically
    • Async loading of saved violation reports for improved performance

    For detailed list please see What's New in CodeIt.Right v2.5

    How do I try it?

    Download v4.8 at http://submain.com/download/ghostdoc/

  • Released: CodeIt.Right v2.2

    CIR_Violations_ErrorList

    Today we released CodeIt.Right v2.2 - new version that adds introduces 23 new rules – Usage and Asynchronous programming best practices – as well as new feature allowing to output analysis results to Visual Studio Error List in addition or instead of CodeIt.Right Violations Report. Here is high level list of new features:

    • Added 12 new Async Best Practice Rules
      • Call Start on the Task object before instantiating
      • Async method should have "Async" suffix
      • Async method should return Task or Task<t>
      • Avoid "out" and "ref" parameters in async method
      • TAP method parameters should be the same
      • Do not create async Sub method
      • Transform simple async method to non-async
      • Async method should have await statement
      • Await statement method should be async
      • Do not use Task.Yield in async method
      • Do not use Task.Wait in async method
    • Added 11 new Usage Rules
      • Avoid empty methods
      • Avoid System.Console "Write()" or "WriteLine()"
      • Do not explicitly call "System.GC.Collect()" or "System.GC.Collect(int)"
      • Lock both when either set or get is locked for a property
      • Close database connections in "finally" block
      • Avoid control statements with empty bodies
      • Provide "default:" for each "switch" statement
      • Always provide names for threads
      • Avoid use of "new" keyword for hiding methods
      • Always close SQL resources
    • New Show violations in Error List feature- now OnDemand analysis results within Visual Studio can be rendered into Violations Report, VS Error List or both
    • and more

    CodeIt.Right v2.2 has many more features and improvements. For detailed list please see What’s New in CodeIt.Right v2.2

    How do I try it?

    Download the CodeIt.Right v2.2 at http://submain.com/download/codeit.right/

  • CodeIt.Right to sim-ship with Visual Studio 11!

    We posted earlier that on 2/29 when Microsoft announced the Visual Studio 11 Beta, SubMain was one of the first partners with CodeIt.Right product that provided full support for the new VS Beta. We currently are running private Beta program for our GhostDoc product that is also VS11 Beta compatible.

    We are happy to announce that SubMain is one of the partners to sim-ship (Simultaneously Ship) our products together with the Visual Studio 11 RTM! You will be able to enjoy fully compatible version of our products when you install Visual Studio 11 on the release day!

    In the meantime you are welcome to test drive CodeIt.Right and GhostDoc together with Visual Studio 11 Beta:

    Get-VS-11-Beta

  • Released: CodeIt.Right v2.0

    We are excited to announce the release of CodeIt.Right v2.0 - new major version that takes our code quality product to the whole new level. This version introduces new major feature – Instant Code Review – that enables developers to get code quality feedback in real time as they type and refactor code smells right at their introduction. We also added new Personal Edition of the product. Here is the high level new feature list:

    • cir_20_ir_2Instant Code Review feature – get code quality feedback as you code and refactor on the spot!
    • Visual Studio 11 support
    • Multiple categories for a rule
    • Multi-select in Violations Report
    • XAML Parser
    • 8 new Silverlight/WPF/XAML rules
    • 27 new ASP.NET/Security rules
    • Profile Editor - filter for selected/unselected rules
    • Option to require comments when excluding code issue
    • and more
    cir_20_ir_1

    Focus on coding – we will help you with quality

    If you love the CodeIt.Right code quality rules and auto-corrections but want immediate feedback as you code, the new Instant Review feature is for you!

    Instant Review allows to run select set of rules in the background and get real-time code issues feedback to developers in the Visual Studio Editor. The feature highlights in the editor code elements that triggered violation and shows complete list of file code issues in the right violations bar (next to the scrollbar). Violation detail window explains the nature of the issue, offers auto-refactoring options and option to ignore (exclude) the violation. The feature can be turned on/off with a single click, supports multiple user configurable profiles that can be switched in the toolbar or right margin violations bar context menu.

    cir_20_multiselectPersonal Edition

    Starting version 2.0 in addition to Standard and Enterprise editions we are offering new Personal Edition designed for solo developers and freelancers. This edition is priced appropriately for personal use – this is the most affordable edition of CodeIt.Right. With introduction of the new edition, price of the Standard has been adjusted.

    Is that it?

    CodeIt.Right v2.0 has many more features and improvements. For detailed list please see What’s New in CodeIt.Right v2.0

    How do I try it?

    Download the CodeIt.Right v2.0 at http://submain.com/download/codeit.right/

    Note to current users – we have changed licensing schema in v2.0 and your v1.x license codes won’t work with v2.0. For users whose Software Assurance is up-to-date we will be sending v2.x license codes shortly. Users without subscription and those whose subscription lapsed will have the opportunity to purchase new version at the upgrade price.

    Note to current Standard Edition users – in version 2.0 we have added "Standard" edition name to all folder locations (Program Files, My Documents, etc) and registry keys. When you install v2.0 Beta you will need to copy your custom profiles and rules into the new folders.

  • CodeIt.Right v2.0 Beta is available as part of the VS11 Beta Bundle

    As part of the Visual Studio Industry Partner (VSIP) program we have released VS11 Beta compatible version of CodeIt.Right on the ComponentSource website that hosts VS11 Beta Bundle products. And we are very proud that our flagship product is one of the very first VS11 compatible products available as part of the VS11 Beta Bundle on the day of VS11 Beta launch – February 29, 2012!

    Please follow the instructions below to receive the virtual bundle of CodeIt.Right and Visual Studio 11 Beta:

    1. Go to the Visual Studio 11 Beta download site to get the newest version of Visual Studio
    2. After installing Visual Studio 11 Beta, download CodeIt.Right unpack the zip file and run the installer

    component_source_codeit.right

More Posts Next page »
    

This Blog

Syndication

 
     
 
Home |  Products |  Services |  Download |  Purchase |  Support |  Community |  About Us |