Mitchell Bosecke, Greg Burlet, David Dietrich, Peter Lorimer, Robin Miller
MitchellBosecke,GregBurlet,DavidDietrich, - - PowerPoint PPT Presentation
MitchellBosecke,GregBurlet,DavidDietrich, - - PowerPoint PPT Presentation
MitchellBosecke,GregBurlet,DavidDietrich, PeterLorimer,RobinMiller 0 Introduction 0 ASP.NET 0 WebServicesandCommunication 0 MicrosoftVisualStudio2010 0 Mono 0
0 Introduction
0 ASP .NET 0 Web Services and Communication 0 Microsoft Visual Studio 2010 0 Mono 0 Support and Usage Metrics
.NET
What is .NET?
0 Framework for developing software in Microsoft
Windows
0 Large library 0 Several languages supported, allows language
interoperability
0 Initial Release: February, 2002 0 Current Version: .NET 4.0
C# and VB.NET
C#
0 Syntax extremely similar to Java and C 0 Extremely common language for Windows
development VB .NET
0 Relatively easy to learn 0 Friendly for non‐developers to use
Lambda Expressions
0 Greatly reduce the amount of code needed 0 Supported starting in .NET 3.5 0 Custom Sorting!
(a,b) => a.Length.CompareTo(b.Length); Nothing like it in Java, planned for JDK 8, not until late 2012
0 Introduction
0 ASP .NET
0 Web Services and Communication 0 Microsoft Visual Studio 2010 0 Mono 0 Support and Usage Metrics
ASP.NET
What is it?
0 Web application framework 0 Supports dynamic websites, web applications, and
web services
0 Developer can use any .NET language
ASP.NET
Browser requests ASP.NET `ile IIS1 passes request to ASP.NET engine on the server Engine reads the `ile line by line and executes the scripts in the `ile ASP.NET `ile is returned to browser as plain HTML
1 IIS – Internet Information Services
ASP.NET
Pros
0 Can program in VB.NET, C#, Delphi.NET, Chrome, etc.
0 Can even use multiple languages in one application
0 Object oriented programming approach 0 Support for web services 0 Very easy to use XML support 0 Easy migration for windows developers to switch to
web development
ASP.NET
Cons
0 Microsoft platform needed for deployment 0 Not open source 0 Possibly steep learning curve
ASP.NET
ASP.NET vs. PHP
0 ASP.NET is compiled where PHP is scripted
0 Room for better performance with compilation
0 Updates to ASP.NET are much more drastic than PHP
so more effort is needed to keep up
0 Use ASP.NET if developers already have experience
with Windows
0 Introduction 0 ASP .NET
0 Web Services and Communication
0 Microsoft Visual Studio 2010 0 Mono 0 Support and Usage Metrics
Web Services and Communication
0 Many modern web applications require the ability to
interface with other applications
0 SOAP (Simple Object Access Protocol)
0 Sends commands to a single server via POST in XML
documents
0 Single endpoint
0 REST (Representational State Transfer)
0 Uses the web's infrastructure (like URLs) to send
commands
0 Distributable endpoint
Web Services and Communication
0 (WCF) Windows Communication Foundation API
0 Supports SOAP natively and REST with add on package
0 Other 3rd party packages
0 XML Parsing (ex. Chilkat)
0 Can integrate other services
0 ex: Google Maps 0 ex: Amazon Store
0 Introduction 0 ASP .NET 0 Web Services and Communication
0 Microsoft Visual Studio 2010
0 Mono 0 Support and Usage Metrics
Visual Studio 2010
0 Microsoft’s Solution to Development
0 A collection of products integrated into one
environment ranging from design to deployment.
0 Divided into packages such as Visual Studio Ultimate,
Premium, Professional and Express.
Development Made Easy
Visual Studio 2010 Pros
0 Allows for development in multiple languages for
multiple platforms. i.e. PC, XBOX and Windows 7 phone
0 Easy project creation and management. 0 Easy design and deployment of ASP .NET applications 0 Intellisense ‐ advanced code completion. 0 Easy layout management 0 Great technical support.
Maybe Not That Easy
Visual Studio 2010 Cons
0 Proprietary. 0 It’s not cheap either ranges from $800 ‐ $12 000. 0 Large overhead for small projects. 0 Heavy resource consumption.
.NET and Visual Studio
0 .NET 4 SDK ‐ development optimized in Visual Studio. 0 Visual Studio has support for ALL .NET languages
C#, ASP.NET, VB.NET, etc..
0 Microsoft products play well together.
0 Introduction 0 ASP .NET 0 Web Services and Communication 0 Microsoft Visual Studio 2010
0 Mono
0 Support and Usage Metrics
Hypothetical Situation
0 Economic recession forces your company to reduce costs.
You look into Linux because not only is it free, but it has free, open‐source software leading to signi`icant cost reductions.
0 Your code base contains various .NET applications critical
to your business.
0 Your business employs developers skilled in .NET and VS.
Either employ new developers (costs go up) or push current developers out of their comfort zone leading to a learning curve, initial mistakes (costs go up)
0 Problem: .NET applications do not run in the Linux
environment
An open source implementation of .NET framework. A software platform designed to promote easy development of cross‐platform .NET applications.
Options, options, options
Portability Flexibility
0 Develop and run .NET
applications on Linux, Microsoft Windows, Mac OS X, BSD, Sun Solaris, Nintendo Wii, Sony PlayStation 3, Apple iPhone
0 Mono is cross‐platform
itself. It runs on the aforementioned platforms
0 Write code in your
favourite programming language supported by CLR (Common Language Runtime).
0 Code is interoperable
between CLR languages.
Hassle‐Free Installation
0 Linux
Distribution packages (apt‐get) or manual source‐ code compilation disclaimer: manual compilation probably isn’t hasslefree
0 Windows, OS X, BSD, Solaris
Automated installers
Compatibility
0 Now supports everything included in .NET 4.0 except:
Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), and Windows Forms (WF)
0 These features are projected to be completed in Mono
3.0 Olive
0 As well as supporting most of .NET 4.0 features, Mono
also has it’s own extended frameworks
Mono Tools for Visual Studio
0 Microsoft Visual Studio plugin allows developers to
create .NET applications to deploy on mono‐enabled platforms.
0 Sets everything up for you
Mono caters to web as well as desktop applications!
Mono for the Web
Apache/Nginx Web Services/Consuming Database Connection
Apache: Mod_Mono
0 Mod_Mono is a module providing ASP.NET support for
the widely used HTTP web server Apache.
0 Mod_Mono passes ASP.NET page requests to external
program, modmonoserver which handles the request instead of apache.
Socket:TCP
host multiple independent applications
Results
0 Can route speci`ic URL’s to different modmonoserver
processes running under one virtual machine Example: testing server runs experimental code apart from production code.
0 Set speci`ic quotas (CPU, disk, memory) to different
server processes
0 Mod_Mono Con`iguration Tool – automatically
generates conf.d `ile to deploy application immediately Con: works well for simple applications. Anything more
complex requires extensive con`iguration text `ile tweaking
Porting Applications between OS
0 Web applications easier to port than desktop apps
Complications mostly arise with data access, authentication, and other OS speciQic code and database migration (i.e. Microsoft SQL Server > PostgreSQL) MoMa (Mono Migration Analyzer)
0 Tool that helps identify platform speci`ic calls
*MoMa might fail to report more complex problems or report problems which are not really issues.
0 Useful method to estimate the ease of porting your code
base to the Mono framework before investing lots of time.
0 Introduction 0 ASP .NET 0 Web Services and Communication 0 Microsoft Visual Studio 2010 0 Mono
0 Support and Usage Metrics
Support
Documentation
- MSDN API Reference
- Online Tutorials & Code Snippets
Community
- Blogs
- Forums/Mailing Lists
- Ask a developer
Tracking
- Microsoft Connect: bug reports and suggestions
- Change logs