The 4th edition of my CLR via C# book is coming out next month and you can order it here. The new edition is updated for Visual Studio 2012, .NET 4.5, and C# 5; there is also some coverage of Windows 8. As the book focuses on the CLR & C#, the majority of the book is the same as in the previous edition since little has changed from the developer’s perspective. As always, I do review each and every chapter, I apply any reported errata improvements, fix any bugs, typos, or improve wording if a reader reported that something was confusing. I also update version numbers, screen shots, and any current thinking that differs from thinking in the past.
However, I have also made some significant enhancements to the 4th edition. I have rewritten the Garbage Collection chapter so the material is updated and presented in more organized fashion. Second, the chapter on Reflection has been rewritten because Microsoft has redesigned the Reflection APIs and the new API is the one that will survive into the future. The old Reflection API still exists for backward compatibility but it will eventually fade away (I removed all content related to the old API). The new Reflection API MUST be used when building Windows Store Apps. The new Reflection APIs have affected other chapters too (such as the delegates chapter where I talk about how to dynamically create delegate instances at runtime).
Speaking of Windows Store Apps, I have updated many of the chapters with considerations when building Windows Store Apps. And, I have added a brand new chapter entitled “Interoperating with WinRT Components” that describes how to consume WinRT components from C#. The chapter also shows how to produce C# WinRT components which can be consumed from other languages (such as JavaScript or native C++).
The only language feature new to C# 5.0 is the support for a new and simplified asynchronous programming model. This model is very similar to the model I produced years ago via my AsyncEnumerator class which has been freely available as part of my Power Threading library. To address C#’s asynchronous programming model, I have completely rewritten the “I/O Bound Asynchronous Operations” chapter. OK, C# has introduced another tiny language feature via Callee custom attributes and I also show how to use them in the same chapter.
When the book goes to the printer, I will post the source code on the Wintellect website.
Work at the Speed of Ideas in Azure.
We are not short on ideas and increasingly businesses want to implement them as quickly as possible. This is putting a burden on development teams to accelerate development without sacrificing quality.
We developed a best of breed platform designed specifically for Azure to enable end-to-end automation and testing. Our service accelerates the deployment of e-commerce sites, corporate websites and portals, and mobile web applications. Customers get to improve time-to-revenue with a reliable, predictable, and repeatable delivery platform.
Consistent through stages.
We enable your teams to work in a logical and linear progression from inception to reality.
Version and release control.
The platform is designed to facilitate a continuous delivery cycle using Agile methodologies.
Accelerate time-to-market.
You will streamline all aspects from identifying problems, rolling back to known good versions, and deploying at anytime of the day.
The Problem with Release Management.
Broken links impact Search Engine Optimization (SEO) which can easily reduce traffic to a site. More importantly, broken links have a direct impact on reputation, customer confidence, and completing a transaction. Broken links are a simple example of a very visible break down in testing and proper release management processes.
This is where automation and testing can become a catalyst to business but it is not as easy as it looks:
- The tools to improve release management are complex, multi-origin, and rapidly changing
- Not all are platform certified for public clouds such as Azure and can be unwieldy to deploy
As a result, many cut corners – they skip automation and don’t leverage testing, sometimes forgoing it altogether.
Put an End to Release Headaches.
We built this service for companies, e-tailers, and web development agencies who demand a better solution to ensure rapid development of content and features. It is ideally suited for automating the release and testing process for a Content Management System (CMS). Users benefit from the ability to:
- Develop new features and capabilities faster and ensure they will not break the site or application as code gets promoted:
- a:1:{i:0;s:3:”yes”;}
- Reduce manual quality control (QC) processes:
- a:1:{i:0;s:3:”yes”;}
- Evolve test coverage over time through an on-going consultative process:
- a:1:{i:0;s:3:”yes”;}
- Manage code promotion across distributed locations:
- a:1:{i:0;s:3:”yes”;}
Focus on your business and deploying the next release, not the infrastructure on which your automation and testing runs. Say goodbye to errors such as broken links!
Benefit from a Platform Based on DevOps Practices.
Agile and DevOps are all the rage but is your IT really enabling them properly?
Atmosera Release Management as a Service is a foundational platform on top of which your teams can drive better agility and quality. It was built for developers to ensure a framework where both infrastructure and operation are harmonized to deliver the ability to:
- Track every change for every version and quickly find the source of a problem within your application
- Leverage a structure which enables you to easily roll back to previous known good versions.
- Log application feedback and add it to a backlog which can be prioritized for the planning phase of a future version.
- Drive Continuous Integration (CI) which means you can deploy your application at any time without fear of losing data, customers, or other services related to your application.