- The document discusses .NET and its key components including the Common Language Runtime (CLR) which provides a virtual execution system, common type system, and development environment.
- It also summarizes the key features of C# versions 1-5 including generics, lambda expressions, extension methods, and dynamic binding.
- Finally, it discusses Microsoft Azure and how it supports existing .NET applications and development while enabling mobile and cloud-first scenarios.
.NET Fundamentals and Business Application Development
1.
2. Facebook/twitter : @himskim
Blog : http://himskim.egloos.com
관심분야
Distributed Computing Architecture
Multimedia Networking
Microsoft
Developer Experience & Evangelism
Sr. Technical Evangelist / Evangelist Lead
Microsoft
Developer Support Core
Escalation Engineer
nhn
Next Generation Game Platform
Architect
STI
Co-Founder / CTO
C/C++, C# 부문 Microsoft MVP
10. Type
Value Types
Built-in Value
Types
Integer Types
Floating Point
Types
Typed references
User Defined
Enums
Reference Types
Self-Describing
Name Equivalent
Delegates
Boxed Value
Types
Boxed Enums
Structural
Equivalent
Arrays
Interface Pointer
Function
Managed
Unmanaged
Built-in
Reference Types
String
Object
11.
12. The CLS is intended to
. These rules shall be
followed in order to conform to the CLS
CLS Rule 1: CLS rules apply only to those parts of a type that are accessible or visible outside of the defining assembly
CLS Rule 2: Members of non-CLS compliant types shall not be marked CLS-compliant.
CLS Rule 48: If two or more CLS-compliant methods declared in a type have the same name and, for a specific
set of type instantiations, they have the same parameter and return types, then all these methods shall be
sematically equivalent at those type instruction
.
.
.
13.
14.
15.
16. New types are introduced into the CTS via
In addition,
metadata is a
to locate and load
classes, lay out instances in memory, resolve
method invocations, translate CIL to native code,
enforce security, and set up runtime context
boundaries.
17.
18. The Virtual Execution System (VES)
. It
provides direct support for a set of built-in data
types, defines a hypothetical machine with an
associated machine model and state, a set of
control flow constructs, and an exception handling
model.
19. .NET Framework
Microsoft's original commercial implementation of the CLI. Its Virtual Execution System is the
Common Language Runtime and its implementation of the Standard Libraries is the Framework
Class Library.
.NET Compact Framework
Microsoft's commercial implementation of the CLI for portable devices and Xbox 360.
20. .NET Micro Framework
an open source implementation of the CLI for resource-constrained devices
Shared Source Common Language Infrastructure
a reference implementation of the CLI available from Microsoft, under the Shared Source licensing
program.
Mono Development Platform
an open source implementation of CLI and accompanying technologies, sponsored by Xamarin
Portable.NET
part of the dotGNU project, is a free software implementation of ECMA-335 by Free Software
Foundation
43. Code Execution Engine
The Mono runtime contains a code execution engine that translates ECMA CIL byte codes into
native code and supports a number of processors: ARM, MIPS (in 32-bit mode only), SPARC,
PowerPC, S390 (in 64-bit mode), x86, x86-64 and IA-64 for 64-bit modes.
Core components
C# Compiler(5.0 supported), CLI, Core Class Library based on ECMA-334/335
Mono/Linux/GNOME development stack
GTK#, Mozilla for working with Gecko rendering engine, Unix integration libraries(Mono.Posix),
database connectivity libraries, security stack, XML schema language(RelaxNG)
Microsoft compatibility stack
ADO.NET, ASP.NET, Windows Forms and others
78. Shift from dynamic, server-generated Web
pages to static initial markup with dynamic
sections of the page generated from client-
side script communicating with backend
Web APIs through AJAX requests.
81. The process that runs the application and can be anything from IIS or
a standalone executable
Responsible for binding to a TCP port, constructing the environment
dictionary and processing requests through an OWIN pipeline.
The name given to all of the components that handle requests in an
OWIN pipeline
This is your code
102. Established application patterns
Foundational applications for the business
Web and desktop applications
Centered on existing business processes
Modern 비즈니스 응용 프로그램
Small/Medium
Business Applications
Productivity
Easy to get started
Large Mission-Critical
Business Applications
Long-Term
Core-Business
Emerging application patterns
End-user centric
Innovation
Mobility & Cloud
Foundational
Business
New
Experiences
Extending
Fixed
On-Premises
Elastic Cloud
and Hybrid
Evolving
103. 중소 규모
비즈니스 응용 프로그램
대규모 Mission-Critical
비즈니스 응용 프로그램
104. Why .NET: 중소 규모 비즈니스 앱
Productivity
Easy to
get started
105. Why .NET: 중소 규모 비즈니스 앱
Rapid time to market; easy to get started; quality out-of-the-box
Tools: Visual Studio is the best IDE and ALM environment available
Common dev-platform across environments (On-prem. & Cloud)
107. Why .NET: 대규모 Mission-Critical 앱
Top QoS and great fit for loosely coupled architectures
.NET languages (C# and F#) are ahead of the competitors
Sustained productivity in large development projects
108. Why .NET: 대규모 Mission-Critical 앱
Complete Visual Studio Testing environments for the enterprise
One consistent dev-platform across environments (On-prem. & Cloud)
Tools and technologies for the entire application lifecycle
112. SUMMARY
• Windows Phone 8.1 Launch
• Cortana Digital Assistant
• Windows Phone for Business
• Additional Windows Phone 8.1 features
• Windows 8.1 update
• Universal apps for Windows
• Cross platform apps, WinJS open source
• Kinect v2 for Windows
• New Nokia Devices(930, 630/635)
• 9인치 이하 Windows/Windows Phone
License 무료
• IaaS features, VM, Storage, Networking
• Web, Web Sites
• Mobile Service, Active Directory, Notification
Hub, SQL Database
• Roslyn open source
• .NET Foundation
• New Azure Portal
• Supporting existing technology investment
including desktop, WPF, and embedded
• Cloud and mobile first development
• Maximizing business opportunities across
platform
113.
114.
115. 2008 2009 2010 2011 2012 2013 2014
Announced the Windows Azure Platform
First CTP of Windows Azure
Announced SQL Azure Relational Database
Updated Windows Azure CTP
Enabled full trust, PHP, Java, CDN CTP and more
Announced VM Role, Project Sidney, Pricing and SLAs
Windows Azure Platform commercially available
Windows Azure Update
SQL Azure Update (Service Update
3)
Windows Azure Virtual Machine Role
Role enhancements
Admin mode, Startup tasks
Full-IIS support
Extra Small Instances
Access to on-premise resource for cross-premise apps
Support for Domain-joining VMs
Direct role-instance connectivity for easier development
Use your existing remote administration tools
New Windows Azure Platform Management Portal
Multiple users & roles for management
Remote Desktop
Enhanced Dev Tools
PHP Development
Marketplace
Traffic manager
SQL Azure reporting
HPC scheduler
Web Sites
Virtual Machines for Windows and Linux
Python SDK
New portal
Locally redundant storage
Windows Azure renamed to Microsoft Azure
New BETA preview management portal released
HISTORY
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135. Self-Service Restore
Point-in-time Restore
Restore points available up to 35 days back
Creates a side-by-side database copy, non-disruptive
REST API, PowerShell or Azure Portal
Available in Premium edition
Programmatic “oops recovery” of
data deletion or alteration
Geo-
replicated
Restore from
backup
Azure StorageSQL Database
Backups
sabcp01bl21 sabcp01bl21
136.
137.
138. Self-service activation
Create up to 4 readable secondary replicas
Replicate to any Azure region
Automatic data replication, asynchronous
REST API, PowerShell or Azure Portal
Available in Premium edition
Active Geo-Replication
Mission-critical business continuity on y
our terms
139.
140.
141. CLI Compatible Language(C#, VB, …)
CTS Compatible Library(FCL, 3rd Party Library, …)
Common Language Runtime(CLR)
Tool, IDE(Visual Studio, Mono Develop, …)
Application Building Block(ASP.NET, WPF, WCF, …)
.NET Architecture
Editor's Notes
Time: 1 minute
Flow
This is an optional slide. It allows to go deeper on the VS 2013 / .NET 4.5.1 value proposition, in the context of a modern business application and bringing Windows, Windows Server and Windows Azure. If you decide to use this slide we should move part of the messaging from the previous slide to this, so we leave the previous slide as just an announcement.
Visual Studio 2013 and .NET 4.5.1 provide the tools and the framework for building those modern business apps enabled by the Cloud OS.
A modern business applications spans across on-premises and the cloud in one hybrid environment.
A modern business application is accessed through multiple devices and form factors.
Visual Studio 2013 and .NET 4.5.1 provide a common experience across this heterogeneous world. It gives you a consistent application development environment for both Windows Server and Windows Azure. It allows you to target Windows devices with differentiated experiences or create web applications and services that can be consumed from any device.
Quotes to look for
n/a
Transition to next slide
But the CloudOS is not only a platform to target, it also allows VS to move into a new era…
Time: 1 minute
Flow
Cloud OS also provides a platform for Visual Studio to innovate as a development solution. Actually, the Cloud OS enables Visual Studio to move to the next era of application development. An era where Visual Studio goes beyond tooling, and provides additional services that you can consume and acquire on your terms.
Quotes to look for
“Today, a new era starts for Visual Studio. Today marks the beginning of a new generation of development services provided by Visual Studio, as a core part of Microsoft’s Cloud OS vision”
Transition to next slide
A new era needs an announcement.
Time: 3 minutes
Flow
I am happy to announce today… Visual Studio Online.
Visual Studio Online is a set of development services and offerings, part of Microsoft’s Cloud OS vision and closely integrated with Windows Azure, thought for helping you to create the next generation of applications targeting devices and services.
With Visual Studio Online, we are extending development tools with services. The Visual Studio IDE combined with those services will provide an incredible experience, but the services can be used separately or from other development tools such as Eclipse. By adding services we have a whole new world of possibilities to make every task involved in the development process easier:
Coding… that can be enhanced by connecting it to the information you need from the cloud.
Work… helping any team to be agile by lowering the friction to embrace ALM
Build… removing the need of any local infrastructure to perform continuous builds.
Test… dramatically reducing the investments needed for complex scenarios such as load testing
Deploy and Insights, to continuously integrate development and operations (also known as DevOps) so you can embrace a rapid delivery cadence and learn from your application in production.
Quotes to look for
“Microsoft takes Visual Studio to the cloud”
“Microsoft announces Visual Studio Online for next generation cloud development”
“Visual Studio Online is a set of development services and offerings, part of Microsoft’s Cloud OS vision, that will help you create the next generation of applications”
“Visual Studio Online takes your team collaboration to the cloud, dramatically reducing the friction for your team to embrace agility”
“Visual Studio Online and Windows Azure enables agile operations closely integrated with the development, also known as DevOps”
Transition to next slide
Let’s take a quick look to VS Online…
Time: 1.5 minutes
Flow
A question that you may be asking is… what about the IDE? Can it be a service too? We asked ourselves that question too.
The Visual Studio IDE provides the richest experience for you to create applications. It supports every single task and it targets multiple platforms and architectures, including differentiated native device apps, high scale services, web sites, desktop applications… in one integrated environment.
But for some scenarios a browser-based experience can be very interesting. We want you to have a complementary browser-based experience for Visual Studio. An experience which is friction-free, so no need to install anything and accessible from any device.
Quotes to look for
n/a
Transition to next slide
Today we are announcing a first step in this vision.
Time: 1 minute
Flow
I am happy to announce Visual Studio Online “Monaco”, a coding environment in the cloud for the cloud.
It complements the Visual Studio IDE as a low friction experience that will help you to get started or make changes to an existing cloud service. And it is integrated with Visual Studio Online.
Today we are releasing a preview for one of the scenarios that Monaco will provide. In this first scenario you will be able to edit directly in the browser your Windows Azure Websites, from any browser, on any modern device.
Monaco is already being used as a technology in several platforms and we plan to keep enhancing this experience and extending it to more platforms in the future, so you can have a complementary experience to the Visual Studio IDE.
Quotes to look for
n/a
We have had an ALM solution for many years that has been hosted on-premises through Visual Studio and Team Foundation Server. It has provided us the foundational ALM capabilities that we have built on over the years.
Microsoft, in its transformation to a devices & services company, is now providing services to developers & development teams through the Visual Studio Online platform which is adding on top of those foundational ALM capabilities.
Customers have a choice on how they can use our ALM platform – either in the cloud with Visual Studio Online or on-premises with Team Foundation Server. It’s up to them.
Customers who use TFS on-premises can also choose to use the Visual Studio Online services that make the most sense to them without moving all of their ALM activities to Visual Studio Online. For example, teams can take advantage of the Load Testing Service on-demand.
Teams are solving their impediments for delivering value rapidly and you have seen the DevOps space flourish.
In our own engineering organization, we have had to learn how to solve to get to a point where we are rapidly delivering new value in Visual Studio and Visual Studio Online. It wasn’t a transformation that has occurred overnight. The great thing is that we have taken those learnings and incorporated those so that our customers can leverage our investments into solving the impediments to delivering rapidly and reliably today.
A lot of those learnings has been how to really learn from what’s happening in “production” and short wire the communication connection with the development team.
Some of the key impediments we have learned where we have made investments are in the phases you are familiar with:
Planning
Development + Test
Release
Monitor + Learn
As you can see from this char from Forrester, 57% of custom developed applications use .NET.
As you can see from this char from Forrester, 57% of custom developed applications use .NET.
And when you start looking for growth trends, Gartner’s projecting expanded uses of .NET for large, mission critical applications (shown as Extreme Enterprise on the chart).
Source:
Gartner—Examining Java EE and Microsoft Software Platforms: Competitive Trends and Future Directions
Published: 22 November 2011
Enterprise & Large core-business
Device
Device
.NET empowers today’s established business applications, for any organization and size.
.NET enables application modernization, extending on-premises applications to the cloud and new experiences across devices.
Nowadays, there is a new era of application development in order to stay competitive. Businesses need is to create innovative and compelling systems that reach directly to customers through new connected multi-device channels (or even omni-channel, that is, they work everywhere instead of just developing traditional business applications for a concrete type of client computer.
What is a Modern Application? Modern applications span multiple devices, contextualize data from multiple sources, can be rapidly built and deployed, are always up to date, and always available.
Based on this definition, one of the core characteristics is that the application must cross the boundaries of the enterprise and offer a direct engagement to end users and other entities (such as partners or providers). Because of that direct engagement, mobility and “reaching the person” (including through social networks), are the most important differentiators here. Though, you must also be concerned about modernizing your backend systems from on-premises to cloud, and scale-out as needed in order to support unpredictable scalability needs coming from these new users and channels using those modern applications. This is why a modern business application goes much further than simple systems of engagement or isolated mobile apps.
Examples of these kinds of applications are mobile online banking, engaging mobile catalog apps for sales forces, business dashboards for touch devices like tablets and smartphones, and mobile real-time follow-up systems. Essentially, this boils down to applications especially made for concrete and quite narrow and specialized business scenarios, such as looking for new channels and possibilities.
But new mobile business apps cannot be successful on their own—it is not just a matter of creating apps for smartphones and tablets. Mobile business apps must be part of the larger enterprise ecosystem and must really extend those foundational business applications. It doesn’t matter if those foundational systems are established and legacy applications or they are new large mission-critical applications built from scratch with new, scalable and elastic services. At some point, the mobile apps must rely on the foundational business applications while at the same time evolving the legacy applications toward updated and more elastic back-end systems. The goal is to modernize the foundational business applications rather than to simply create mobile apps.
Modern Applications
Therefore, the foundational business applications are really the pillars of end-to-end modern applications, as shown above in Figure 3‑5. This also illustrates the difference between simple consumer Mobile-Apps versus Modern Business Applications (which is really the whole figure). Modern Business Applications not only cover mobile client applications but also use Continuous Services relaying on the foundational business applications. The .NET ecosystem and frameworks are fundamental when building those continuous services. Finally, it must evolve toward hybrid IT scenarios. Those Hybrid IT scenarios integrate elastic and highly scalable cloud services (like Windows Azure) with actual on-premises enterprise infrastructure.
Because of new innovative channels and new mobile users (many times, unpredictable amount of users), elastic services are needed more than ever. A modern business application must be able to have infrastructure elasticity in order to have the ability to scale up (or down) on demand, which means that application-infrastructure sizing is now also an iterative activity, thanks to the cloud elasticity, which helps contributes to reduced upfront costs. Traditional applications didn’t have that advantage.
Going further, modern business applications must not be isolated in the cloud. They must be able to integrate to on-premises systems in order to have end-to-end control. That is why hybrid IT (cloud integration) is also a critical part of the business application modernization process.
You should be considering how your app will compete in the rapidly changing technological landscape. Even if you decide not to cloud-enable or build a mobile version of your app in the short term, Microsoft technologies can help you modernize and keep in step with the industry. But, make no mistake about it, you should already be considering those new experiences and channels. The software development landscape is changing rapidly. It is really a revolution of the devices and the cloud. You’ll need to be on board in order to survive.