4 ms·
Visual Studio - One-click build and debug for every project. - One-click publish to web (AWS, BlueMix, Azure, etc.) - CodeLens and its inline code annotation
by Khelavaster 10y ago
Visual Studio
- One-click build and debug for every project.
- One-click publish to web (AWS, BlueMix, Azure, etc.)
- CodeLens and its inline code annotations.
- Unit test runner is multithreaded, runs tests continually in the background as you edit code.
- Completely integrated with bug tracking and task/'Kanban' board provided by on-site TFS installation or by Visual Studio Online. Checkins can be associated with bugs, new bugs and tasks can be created from the IDE, CodeLens shows which snippets of code have been associated with each checkin, etc.
- Built-in style cop/lint tool as well as static code analyzer tool.
- Debugger prints execution time for each line of code passed over.
- Built-in instrumented/trace-based profiling and sampling profiling.
- Built-in REPL (read/evaluate/print loop) console.
- Debugging supports on-the-fly runtime modifications with the Immediate window. Modify a variable in script and see the modified version propagated through the rest of the program.
- Fakes & Shims is the most powerful unit testing framework in existence. Shims let developers arbitrarily overwrite any dll's, including .Net framework dll's, after they've been loaded into memory to redirect method calls to "shimmed", custom implementations of those method calls. Fakes automatically generates mocks from classes you yourself create.
ASP.Net MVC + Web API from Scaffolding with Entity Framework
- Start with a C# class, optionally annotated with DataTypes (e.g. [DataType(DataType.Email), limitations (e.g. [MaxLength(20)]), and database-oriented attributes (e.g. [Key] or [Column(2)])
- Async server methods are as easy as prefacing the controller method with 'async' and 'await'ing on the function you're waiting on.
- Automatically generate a base ASP.Net MVC + Web API website with a set of 6 database tables for member/role-based authorization and basic user authentication tables.
- Automatically generate a set of 5 csHTML webpage templates for index, create, edit, delete, and details views for the C# class you created at the beginning.
- Add a link to this new set of webpages to the automatically generated navigation bar, which already links to example "about", "contact", and "main" pages.
-Data migrations entail:
...1. Once in your entity framework project's lifetime, run "enable-migrations" in the NuGet console.
...2. Whenever you've made a change to your C# entity class and want to update your database, run "add-migration YourArbitraryLabelNameHere"
...3. When you're ready to push the changes to your test database, run "update-database".
.Net Libraries
- Covers all your bases. If it's something you need to frequently do on a Windows computer, there's a library for it. From strings to spreadsheets to speech recognition and synthesis [for accessibility.]
Networking
- Thanks to clever use of generics and a config file, create a ClientBase<TService> MyClient; and you're able to call services remotely with MyClient.ServiceMethod().
- Serialization mode is an enum. It's trivial to switch between binary, JSON, XML, SOAP, and custom serialization.
- Encryption up to TLS 1.2 is trivial by using the correct enum promoting a MemoryStream into an SSLStream.
- Any program can self-host a service or a client by adding a WCF reference and including a config file.
- RESTful HTTP Web APIs out of the box; see auto-generating MVC and Web API sites above.
C# Language
- Built-in async/await and Task/Parallel libraries for effortless multirthreaded, asynchronous, and
- Functions are first-class objects. Func<int, string> GetLength = (s) => { return s.Length; }; GetLength("Hello") = 5;
LINQ Library
- Declaratively filter, transform, and aggregate data on any IEnumerable.
- LINQ to SQL, the .Net ORM querying framework, is always interchangeable with LINQ to Objects. Your data access code remains identical whether you're working with a SQL database or with in-memory objects.
- Virtually eliminate need for foreach loops.
- Powerful base group of features including GroupBy, Select, Where, SelectMany, AggregateBy.
- Easy to mock database collections with in-memory collections for testing.