10 Things You Should Know About Microsoft’s .NET Core 1.0

On June 27th, Microsoft announced the release of a project several years in the making — .NET Core. The solution resulted from the need for a nonproprietary version of Microsoft’s .NET Framework — one that runs on Mac and several versions of Linux, as well as on Windows. This cross-platform .NET product offers programmers new opportunities with its open-source design, flexible deployment, and command-line tools. These features are just part of what makes .NET Core an important evolution in software development. The following are ten key facts you should be aware of when it comes to Microsoft’s .NET Core 1.0 and its impact on software.

1. The .NET Core Platform Is Open-Source

.NET Core is part of the .NET Foundation, which exists to build a community around and innovate within the .NET development framework. The .NET Core project builds on these priorities, starting with its creation by both Microsoft’s .NET team and developers dedicated to the principles of open-source software.

Your advantages in using this open-source platform are many — you have more control in using and changing it, and transparency in its code can provide information and inspiration for your own projects based on .NET Core. In addition, .NET Core is more secure, since you and your colleagues can correct errors and security risks more quickly. Its open-source status also gives .NET Core more stability, because unlike that of proprietary software defined and later abandoned by its creators, the code behind this platform’s tools will always remain publicly available.

2. It Was Created and Is Maintained Through a Collaborative Effort

Related to its development using open-source design principles, the .NET Core platform was built with the assistance of about 10,000 developers. Their contributions included creating pull requests and issues, as well as providing feedback on everything from design and UX to performance.

By implementing the best suggestions and requests, the development team turned .NET Core into a community-driven platform, making it more accessible and effective for the programming community than if it had been created purely in-house. The .NET Core platform continues to be refined through collaboration as it is maintained by both Microsoft and GitHub’s .NET community. As a developer, you have the opportunity to influence the future advancement of .NET Core by working with its code and providing your feedback.

3. The Main Composition of .NET Core Includes Four Key Parts

The first essential aspect is a .NET runtime, which gives .NET Core its basic services, including a type system, garbage collector, native interop, and assembly loading. Secondly, primitive data types, app composition types, and fundamental utilities are provided by a set of framework libraries (CoreFX). Thirdly, the .NET Core developer experience is created by a set of SDK tools and language compilers that are part of .NET Core. Finally, the “dotnet” app host selects and hosts the runtime, allowing .NET Core applications to launch. As you develop, you’ll access .NET Core as the .NET Core Software Development Kit (SDK). This includes the .NET Core Command Line Tools, the .NET Core, and the dotnet driver — everything you need to create a .NET Core application or a .NET Core library.

4. Flexible Deployment Means More Options for Using .NET Core

One of the defining features of .NET Core is its flexible deployment — you can install the platform either as part of your application or as a separate installation. Framework-dependent deployment (FDD) is based on the presence of .NET Core on the target system and has many advantages. With FDD, your deployment package will be smaller. Also, disk space use and memory use are minimized on devices, and you can execute the .NET Core app on any operating system without defining them in advance.

Self-contained deployment (SCD) packages all components (including .NET Core libraries and runtime) with your application, in isolation from other .NET Core applications. This type of deployment gives you complete control of the version of .NET Core used with your app and guarantees accessibility of your app on the target system. The unique characteristics of each deployment type ensure you can deploy .NET Core apps in a way that works best for your particular needs.

5. The .NET Core Platform Is a Cross-Platform Design

This unique software platform already runs on Windows, Mac OS X, and Linux, as its cross-platform nature was one of the main priorities for its development. While this may seem like a strange move for Microsoft, it’s an important one in a technological world that’s increasingly focused on flexibility and segmented when it comes to operating systems and platforms. .NET Core’s availability on platforms other than Windows makes it a better candidate for use by all developers, including Mac and Linux developers, and also gives the entire .NET framework the benefit of feedback and use from a much wider set of programmers. This additional feedback results in a product that works better for all of its users and makes the .NET Core platform a move forward for software-defined, rather than platform-defined applications.

6. Modular Development Makes .NET Core an Agile Development Tool

As part of its cross-compatibility design, the software development platform includes a modular infrastructure. It is released through NuGet, and you can access it as feature-based packages rather than one large assembly. As a developer, you can design lightweight apps that contain only the necessary NuGet packages, resulting in better security and performance for your app. The modular infrastructure also allows faster updates of the .NET Core platform, as affected modules can be updated and released on an individual basis. The focus on agility and fast releases, along with the aforementioned collaboration, positively positions .NET Core within the DevOps movement.

7. .NET Core Features Command-Line Tools

Microsoft states that .NET Core’s command-line tools mean that “all product scenarios can be exercised at the command-line.” The .NET Core Command Line Interface (CLI) is the foundation for high-level tools, such as Integrated Development Environments, which are used for developing applications on this platform. Like the .NET Core platform, this CLI is cross-platform, so that once you’ve learned the toolchain, you can use it the same way on any supported platform. The .NET Core CLI is the basis for applications to be portable whether .NET Core is already installed or an application is self-contained.

8. .NET Core Is Similar to .NET Framework

While .NET Core was designed to be an open-source, cross-platform version of the .NET Framework, there are differences between the two that go beyond those key features. Many of these comparisons result from the design itself as well as the relative newness of the .NET Core software development platform. App models built on Windows technologies are not supported by .NET Core, but console and ASP.NET Core app models are supported by both .NET Core and .NET Framework.

.NET Core has fewer APIs than the .NET Framework, but it will include more as it develops. Also, .NET Core only implements some of .NET Framework’s subsystems in order to maintain the simplified, agile design of the platform. These differences may limit the .NET Core platform in some ways now — however, the advantages of its cross-platform, open-source design should definitely outweigh any limitations as the platform is further enhanced.

9. The .NET Core Platform Is Still Under Construction

The nature of this software development platform makes it a work in progress, continually refined by both Microsoft’s .NET Core team and invested developers worldwide. The .NET Core 1.1 release, scheduled for this fall, is set to bring greater functionality to the platform. One of the intended features is an increase in support for APIs at the BCL level — enough to make .NET Core equal to the .NET Framework as well as Mono. In addition, .NET Core 1.1 will transition the platform’s default built system and project model to MSBuilt and csprog. The .NET Core roadmap on GitHub also cites changes in middleware and Azure integration as goals for the 1.1 release. These features are just a small subset of the purported changes for .NET Core based on natural goals for its development as well as contributions from .NET developers.

10. The .NET Core Platform Is Part of a Digital Transformation

This uniquely conceived and crafted platform for software development is far more than just a new tool for application developers. It represents a much larger shift in technology — one in which you can more easily deploy applications to multiple platforms by using the same initial framework and tools. This is a big change from the traditionally fragmented implementation of the .NET Framework across various platforms — or even across different applications on the same platform.

This addition to software development puts more freedom and control into your hands while you develop, especially when it comes to deploying and updating .NET Core applications in the way that you choose. Although quite new and destined to undergo significant changes in the near future, .NET Core should definitely be a tool of interest to all developers, as it takes the field of programming in an exciting direction.

Learn more

Find out how AppDynamics .NET application monitoring solution can help you today.

The Top 10 Takeaways from Microsoft Ignite 2016

In the old days, before 2012, software engineers would often go to the Consumer Electronics Show (CES) in Las Vegas to catch up on the latest developments in software and hardware. CES tended to be more of a hardware show, however. A few years ago, Microsoft recognized this fact and decided to follow Apple’s lead, saying that CES was not the right place to showcase its best and brightest advances in the software world.

The company announced, “We have decided that this coming January will be our last keynote presentation and booth at CES. We’ll continue to participate in CES as a great place to connect with partners and customers across the PC, phone, and entertainment industries, but we won’t have a keynote or booth after this year because our product news milestones generally don’t align with the show’s January timing.”

Apple has run its own Worldwide Developers Conference for decades, and Google’s I/O grew increasingly friendly to enterprise software. In response, Microsoft announced in the summer of 2014 that it would sponsor the Ignite Conference, which would take the place of scattered events such as the Management Summit, Exchange, SharePoint, Lync, Project and TechEd conferences. Ignite was designed to cover everything related to enterprise software. It would join their other specialized conferences such as Convergence for solution platforms, Build for developers, and Worldwide Partners for the channel.

The first Ignite kicked off in May of 2015 in Chicago, and it sold out its 20,000 tickets in five months. The biggest news coming out of it was related to developments in Advanced Threat Analytics and a preview of Office 2016. This year’s event brought a great deal more.

Quotes from Microsoft Ignite 2016

Microsoft’s sophomore conference this fall was held over four days in Atlanta and brought a slightly larger crowd of 23,000. The keynote was given by Microsoft CEO Satya Nadella. His main points were centered around channeling the explosive growth of data and democratizing AI. Here are some of the most interesting quotes from Nadella’s keynote:

“In 1450 or so when the printing press came out, the Guttenberg Bible got published, and removable type became prevalent. Before that we had something like 30,000 books in the world. And 50 years after the printing press, we had 12 million books. It changed how humans both created information and used information. You can, in fact, trace back everything in the modern era to our ability to create and diffuse information and learn.”

“We have four core pillars to what we’re going to do. It’s agents, applications, services, and infrastructure.”

“We have 133 million active users each month using Cortana across 116 countries and they’ve already asked 12 billion questions. And that is what’s driving the skills ecosystem of Cortana, the fact that we have these SDKs that allow developers to be able to infuse Cortana with more intelligence is what makes Cortana even more relevant every day for our everyday use.”

“The goal of intelligence is to be able to reason about your sales data model, not inside just your CRM system, but outside. So we are building the relationship assistant that’s going to ship in November as part of Dynamics CRM to truly transform our CRM application from the inside out. So when you login to a CRM system, what you’re going to see are these cards, these cards that allow you to take action inside the system based on activity that is happening outside.”

“In order to build a bot, you need to have these building block services that have conversational understanding, know how to parse natural language, how to have a dialogue. So that’s what we’ve now encapsulated in this Bot Framework so that you can build a bot that is available on Skype, available online, and available on Facebook. So, again, we’re taking an approach where any bot you build is not captive to any one conversational canvas. It is available everywhere. And since Build, which is when we launched it for the first time, we have had 45,000 developers building these bots, Hipmunk in travel, Star Trek, StubHub, Getty Images, so many, many developers taking advantage of the bot framework already.”

“It’s never about our technology. It is really, to me, about your passion, your imagination, and what you can do with technologies that we create. What societal problem, what industry will you reshape? That is what we dream about, what we’re passionate about. We want to pursue democratizing AI just like we pursued information at your fingertips. But this time around, we want to bring intelligence to everything, to everywhere, and for everyone.”

10 Takeaways for Programmers

The event’s most notable offerings were announcements of new features, arguments for the enterprise version of Windows 10, and Microsoft’s answer to Google Drive for Work. Here are the top 10 takeaways related to software-defined capabilities, application development, and emerging technology.

1. The Return of SharePoint

In 2015, people walked out of Ignite wondering about the future of SharePoint. Those concerns were put to rest by a host of sessions on the subject and an announcement of a new Feature Pack for SharePoint. It’s also providing new integrations with mobile apps, improvements to security and a sync/share integration for OneDrive.

2. Office 365 Becomes More Collaborative

Office 365 Groups are now a priority. That’s making it easier for internal and external customers to come together for project management in the cloud. Office 365 Advanced Threat Protection includes dynamic delivery, which lets you read an email while its attachment is in quarantine.

3. Windows Server 2016 Updates

This fall’s upgrade of Windows Server presents additional layers of security and streamlined integrations with Azure for cloud-based apps. The big reveal was a discussion about a collaboration with Docker that will run as native in the new Windows Server.

4. Azure Stack Preview

Many engineers came to the conference with questions about integrating Azure Stack IaaS into the data center. The most common questions centered around a hardware management dashboard and monitoring alerts. The new preview addressed as many of these as it could, with a breakout session on tooling tips and tricks.

5. People Cards Carry Rich Details

As Nataya suggested in his keynote, the next generation of modern document libraries and OneDrive browsers will come with built-in People Cards. These will automatically pull in updated contact info, biographical info on the web, work info from sites such as LinkedIn, and related documentation that could prove useful for CRM.

6. Dynamics 365 and Adobe

Nadella brought Adobe’s CEO Shantanu Narayen on stage to announce that the Adobe Marketing Cloud was being built into Dynamics 365. Narayen said, “Adobe and Microsoft will bring together the cloud horsepower and end-to-end capabilities brands need to design and deliver great digital experiences.”

7. DevOps in the Spotlight

Networking specialists conducted a mini DevOps summit, using Azure Stack to demonstrate why everyone needs DevOps. They covered the rapid deployment and maintenance of apps both on premises and in the cloud.

8. ExpressRoute Connectivity

Everyone wants to get faster at deploying apps for Office 365 that connect to the cloud or the intranet. ExpressRoute lives up to its name by connecting Office 365 subscribers to a Layer 3 MPLS network and, from there, to an internet backbone like Equinix.

9. Microsoft Accepts iOS and Android

Mobile-first makes sense, but until now, everyone assumed Microsoft would still be making a play for Windows phones. Most of Nadella’s demos of mobile apps ran on an Apple device. There were many more examples throughout the week of native iOS and Android integration.

10. AI in 2017

Plans are in the works for the Ignite 2017 in Orlando, FL on September 25 – 29. Engineers are already discussing proposed leaps in AI and chatbot development frameworks at next year’s event.

More Coverage

Every time you look away from the software community for a minute, it expands in one hundred different directions. That’s why you really need to stay informed from conferences like Microsoft Ignite, where all the latest trends are pulled together. If you missed it this year or didn’t plan on shelling out $2,000 or more for an all-access pass, hopefully these vitals brought you up to speed. Continue to watch our blog for more coverage of the latest trends in software and performance.

How to Run AppDynamics in Microsoft Azure

“Is it possible to run the AppDynamics controller within my own Microsoft Azure IaaS?”

I hear this question fairly regularly and would like to walk you through how to host the controller in your own Azure cloud. First off, the pros of having AppDynamics with Azure:

  • Have full control and ownership of the data collected by AppDynamics
  • Provide additional security to access the data (for example, lock it down to a corporate VPN only).
  • Enable easy integration between AppDynamics and your services, such as Active Directory for authentication or internal bug tracking system for alert notifications. These would typically require opening custom ports when you leverage the AppDynamics SaaS environment.
  • AppDynamics works by placing an agent running on your servers which reports to the controller. It’s common to have several agents monitoring your applications. To further the ease of use, we monitor Java, .NET, PHP, Node.js, and now, C++ all in one single pane of glass. Your Azure architecture might look something like this:

    Screen Shot 2014-09-24 at 3.32.03 PM
    A unique feature for AppDynamics is flexible deployment. Typically, legacy APM solutions rely on on-premise deployment, whereas newer companies are Saas-only. At AppDynamics you can run the controller on-premise, leverage the AppDynamics SaaS option, or deploy a hybrid mixture.

    To run the controller in your Azure IaaS you can leverage the security of the on-premise deployment option and install the controller the same way as if you would in your datacenter. This allows you to have full control over the your data and be the gatekeeper to access that data.

    Important to note:

  • Properly size the controller — you can estimate the CPU/memory/disk requirements based on number of agents you are going to deploy. This is covered in the AppDynamics online documentation.
  • Configure the VM for maximum I/O.
  • The second is very important to configure as the controller installs a database which requires high I/O throughput. The recommended best practice is to treat the VM the same as you would be running a SQL server on it. http://msdn.microsoft.com/en-us/library/azure/dn133149.aspx

    If you forget to do this, you run the risk that the performance of the controller will slow down. This will not slow down your monitored applications as the agents are implemented to be non-blocking. However, the slowness will cause controller UI to lag and hard to visualize the collected data.

    Hope this helps and you can choose the option which works the best for your organization! Try it out now, for FREE!

    Instrumenting .NET applications with AppDynamics using NuGet

    Introduction

    One of the coolest things to come out of the .NET stable at AppD this week was the NuGet package for Azure Cloud Services. NuGet makes it a breeze to deploy our .NET agent along with your web and worker roles from inside Visual Studio. For those unfamiliar with NuGet, more information can be found here.

    Our NuGet package ensures that the .NET agent is deployed at the same time when the role is published to the cloud. After adding it to the project you’ll never have to worry about deploying the agent when you swap your hosting environment from staging to production in Azure or when Azure changes the machine from under your instance. For the remainder of the post I’ll use a web role to demonstrate how to quickly install our NuGet package, changes it makes to your solution and how to edit the configuration by hand if needed. Even though I’ll use a web role, things work exactly the same way for a worker role.

    Installation

    So, without further ado, let’s take a look at how to quickly instrument .NET code in Azure using AppD’s NuGet package for Windows Azure Cloud Services. NuGet packages can be added via the command line or the GUI. In order to use the command line, we need to bring up the package manager console in Visual Studio as shown below

    PackageManager

    In the console, type ‘install-package AppDynamics.WindowsAzure.CloudServices’ to install the package. This will bring up the following UI where you can enter the information needed by the agent to talk to the controller and upload metrics. You should have received this information in the welcome email from AppDynamics.

    Azure

    The ‘Application Name’ is the name of the application in the controller under which the metrics reported by this agent will be stored. When ‘Test Connection’ is checked we will check the information entered by trying to connect to the controller. An error message will be displayed if the test connection is unsuccessful. That’s it, enter the information, click apply and we’re done. Easy Peasy. No more adding files one by one or modifying scripts by hand. Once deployed, instances of this web role will start reporting metrics as soon as they experience any traffic. Oh, and by the way, if you prefer to use a GUI instead of typing commands on the console, the same thing can be done by right-clicking on the solution in Visual Studio and choosing ‘Manage NuGet Package’.

    Anatomy of the package

    If you look closely at the solution explorer you’ll notice that a new folder called ‘AppDynamics’ has been created in the solution explorer. On expanding the folder you’ll find the following two files:

    • Installer of the latest and greatest .NET agent.
    • Startup.cmd
    The startup script makes sure that the agent gets installed as a part of the deployment process on Azure. Other than adding these files we also change the ServiceDefinition.csdef file to add a startup task as shown below.

    Screen Shot 2013-11-27 at 8.11.27 PM

    In case, you need to change the controller information you entered in the GUI while installing the package, it can be done by editing the startup section of the csdef file shown above. Application name, controller URL, port, account key etc. can all be changed. On re-deploying the role to Azure, these new values will come into effect.

    Next Steps

    Microsoft Developer Evangelist, Bruno Terkaly blogged about monitoring the performance of multi-tiered Windows Azure based web applications. Find out more on Microsoft Developer Network.

    Find out more in our step-by-step guide on instrumenting .NET applications using AppDynamics Pro. Take five minutes to get complete visibility into the performance of your production applications with AppDynamics Pro today.

    As always, please feel free to comment if you think I have missed something or if you have a request for content in an upcoming post.

    AppDynamics Pro on the Windows Azure Store

    Over a year ago, AppDynamics announced a partnership with Microsoft and launched AppDynamics Lite on the Windows Azure Store. With AppDynamics Lite, Windows Azure users were able to easily monitor their applications at the code level, allowing them to identify and diagnose performance bottlenecks in real time. Today we’re happy to announce that AppDynamics Pro is now available as an addon in the Windows Azure store, which makes it easier for developers to get complete visibility into their mission-critical applications running on Windows Azure.

    • Easier/simplified buying experience in Windows Azure Store
    • Tiered pricing based on number of agents and VM size
    • Easy deployment from Visual Studio with NuGet
    • Out-of-the-box support for more Windows Azure services

    “AppDynamics is one of only a handful of application monitoring solutions that works on Windows Azure, and the only one that provides the level of visibility required in our distributed and complex application environments,” said James Graham, project manager at MacMillan Publishers. “The AppDynamics monitoring solution provides insight into how our .NET applications perform at a code level, which is invaluable in the creation of a dynamic, fulfilling user experience for our students.”

    Easy buying experience

    Purchasing the AppDynamics Pro add-on in the Windows Azure Store only takes a couple of minutes. In the Azure portal click NEW at the bottom left of the screen and then select STORE. Search for AppDynamics, choose your plan, add-on name and region.

    4-choose-appdynamics

    Tiered pricing

    AppDynamics Pro for Windows Azure features new tiered pricing based on the size of your VM (extra small, small or medium, large, or extra large) and the number of agents required (1, 5 or 10). This new pricing allows organizations with smaller applications to pay less to store their monitoring data than those with larger, more heavily trafficked apps. The cost is added to your monthly Windows Azure bill, and you can cancel or change your plan at any time.

    AppDynamics on Windows Azure Pricing

    Deploying with NuGet

    Use the AppDynamics NuGet package to deploy AppDynamics Pro with your solution from Visual Studio. For detailed instructions check out the how-to guide.

    2-vs-package-search

    Monitoring with AppDynamics

    • Monitor the health of Windows Azure applications
    • Troubleshoot performance problems in real time
    • Rapidly diagnose root cause of performance problems
    • Dynamically scale up and scale down their Windows Azure application based on performance metrics

    AppDynamics .Net App

    Additional platform support

    AppDynamics Pro automatically detects and monitors most Azure services out-of-the-box, including web and worker roles, SQL, Azure Blob, Azure Queue and Windows Azure Service Bus. In addition, AppDynamics Pro now supports MVC 4. Find out more in our getting started guide for Windows Azure.

    Get started monitoring your Windows Azure app by adding the AppDynamics Pro add-on in the Windows Azure Store.

    Glassdoor proves AppDynamics is a Great Place to Work!

    AD TeamIt’s been almost two years since I joined AppDynamics and it’s been one of the best career moves I’ve ever made. I used to work at a competitor, and quickly realized I was working for the wrong company. Sometimes you just have to trust your gut feeling when it comes to technology–you’ve either got a product that’s special or you don’t, and I know what it’s like to experience both feelings.

    At AppDynamics the technology is definitely special, but I also joined a group of like-minded people who shared the same passion as I did for application monitoring. The no-compromise approach to figuring out new ways of doing things that couldn’t be done previously, along with a laser-focus on solving real world problems for customers, is pretty inspiring. Things are never perfect at any company but the passion to make our customers successful, and the will to win business professionally, is unique at AppDynamics. We really believe that enterprise software doesn’t have to suck, it should never be shelfware, and it should be affordable by everyone–which is one of the reasons why we created a free product AppDynamics Lite that now has over 100,000 users and our commercial product AppDynamics Pro is reasonably priced.

    In just two years we’ve disrupted an application monitoring market that was previously dominated by expensive complex solutions that quite frankly sucked. This disruption was one of the reasons why Gartner recognized AppDynamics as a Leader in their 2012 APM Magic Quadrant, and we’ve only been selling our product for two years! This speaks volumes for what we’ve achieved in such a short period of time. What’s also great is that our customers are very vocal about their success; our case study page is packed with customer success stories, with several customers willing to publish actual ROI results from their AppDynamics deployments. How many real customer ROI stories have you read recently from any vendor? My guess is not many.

    One online community that provides an accurate inside look at companies is Glassdoor.com. It basically lets employees rate different aspects of the company they work for, from compensation all the way through to culture and leadership. If you search for all the APM companies on Glassdoor.com that are currently recognized in the Gartner’s APM Magic Quadrant, here is what the top 10 looks like:

    Glassdoor APM ratings

    *Glassdoor ratings correct as of 1/10/2013

    I’m pretty proud to work for a company where employees are very satisfied and give their CEO 100% approval. That says a lot about the success and leadership of the company–happy employees also means a happy place to work and trust me, this is pretty important when you spend most of your life at work!

    One company that didn’t score well was Compuware. Only 38% of employees would recommend a friend and only 68% approve of their CEO. Not particularly encouraging when you need your employees to innovate, run through walls, and beat the competition. A hedge fund recently put an offer on the table to take Compuware private–let’s hope those guys can get the employees jazzed.

    If you’re looking for the next challenge, cool technology and a great place to work, you should consider joining AppDynamics. We’ve got 21 positions currently open and we need great people to help scale the great company we’re building!

    With customers like Netflix, Orbitz, Fox News, Vodafone and Yahoo you’ll experience the ins and outs of monitoring some of the largest applications in the world.

    Oh, and you get to work with a superhero like me!

    Appman.