.NET als Microsofts Entwicklerplattform Frank Prengel Technologieberater Microsoft Deutschland http://blogs.msdn.com/frankpr
Agenda Was ist.net eigentlich? Microsoft.NET heute.net Framework 2.0, 3.0.NET & Devices.NET im Einsatz bei Microsoft und morgen.net Framework 3.5 LINQ, C# 3.0, VB 9.0
Was ist.net nicht?
Was ist.net? Microsofts Vision & Technologie für verteilte Anwendungen
Warum.NET? Bestehende Technologien (Win32, COM, MFC, ) nicht fit für neue Anforderungen Interoperabilität Robustheit, Sicherheit, Skalierbarkeit Lose Kopplung, Dienste, SOA, Höheres Abstraktionsniveau durch OOP Produktivität & Effizienz durch Bibliotheken & Tools
Möglichkeiten Paradigmenwechsel Windows 3.0 Win16 MFC COM Win32.NET Framework 2.0.NET Framework 3.0 Evolution
.NET Framework 1.0 (2001) VB C++ C# J# Common Language Specification Web Services Data and XML Web Forms Windows Forms Base Class Library Visual Studio Common Language Runtime CLI Operating System Hardware
Standardisierung ECMA-334: C# specification ECMA-335: CLI specification ISO/IEC 23270: C# ISO/IEC 23271: CLI ISO/IEC 23272: CLI TR
Alternative Implementierungen Mono Portable.NET / DotGNU Nectar / SmartCard.NET 1.1 ProConOS embedded CLR
.NET Framework 2.0 (2005) Generics public class List<T> { private T[] elements; List<int> intlist = new List<int>(); 64-Bit-Unterstützung SQL-Server-Integration Visual Studio Team System
Web 2.0? ASP.NET AJAX! HTML, Script, ASP.NET AJAX Markup Service Proxies ASP.NET AJAX ASP.NET Pages Web Services Client Script Library ASP.NET AJAX Server Extensions Client Application Services Browser Integration Controls, Components Component Model and UI Framework Base Class Library Script Core Browser Compatibility ASP.NET AJAX Server Controls ASP.NET 2.0 Page Framework, Server Controls App Services Bridge Web Services Bridge Application Services Client Framework and Services Server Framework
.NET Framework 3.0 (2006) Windows Presentation Foundation Next generation user experience Windows Communication Foundation Service-oriented development Windows Workflow Foundation Business process modeling Windows CardSpace Digital identity management
WPF Einheitliche UI-Technologie: Anwendungen, Grafik (2D, 3D, Vektoren), Multimedia, Dokumente, XAML: Deklaratives UI-Markup <Button Width="100"> OK <Button.Background> LightBlue </Button.Background> </Button> Button b1 = new Button(); b1.content = "OK"; b1.background = new SolidColorBrush(Colors.LightBlue); b1.width = 100; Dim b1 As New Button b1.content = "OK" b1.background = New _ SolidColorBrush(Colors.LightBlue) b1.width = 100
WCF Einheitlicher Kommunikationsstack für Integration & Interoperabilität Nachrichtenbasierte Kommunikation & lose Kopplung Client Service Deklarative Beschreibung Endpoint Message [ServiceContract] public interface ICalculator { [OperationContract] int DoMath(int a, int b, string op); } Endpoint Endpoint
.NET Compact Framework Kompatible Teilmenge des.net Frameworks Für Geräte unter Windows Embedded CE & Windows Mobile Geringer Ressourcenbedarf UI, Daten, XML, Webservice-Clients, C# & VB.NET möglich Embedded-DB (SQL Server Compact Edition) verfügbar
.NET Micro Framework ".NET auf der Hardware" (oder auf Host OS) Geringster Ressourcenbedarf < 500 KB, 32-Bit-CPU ohne MMU I/O, Netzwerk, XML, UI (WPF), C# für Anwendungen, Treiber, Interrupts
.NET & Xbox (XNA) XNA Game Studio Express Visual C# Express mit XNA Framework Unterstützung für Spieleprogrammierung XNA Game Studio Express Plattform XNA Framework.NET Game Framework XNA Framework.NET CLR for Xbox 360 Spezielle Version des.net (Compact) Framework 2.0 auf der Xbox 360
Die.NET-Familie NETFx NETFx NETMF NETCF NETCF NETCF
.NET im Einsatz in Visual Studio Team System Expression Blend SQL Server 2005 BizTalk Server Sharepoint Portal Server Tablet PC / UMPC Windows Live Microsoft Dynamics SpeechServer
Quo vadis,.net?.net Framework 3.5 in Vorbereitung (Visual Studio Codename "Orcas") Neuerungen: C# 3.0: Lambda Expressions, Extension Methods LINQ AJAX-Integration Designer-Unterstützung für WPF, WCF, WF
C# 3.0: Innovationen Implicitly typed locals Extension methods Lambda expressions Object initializers Query expressions var x = 5; static void Dump(this object o); c => c.name new Point { x = 1, y = 2 } from where select 100% abwärtskompatibel
Language INtegrated Query (LINQ) VB C# Others.NET Language-Integrated Query LINQ enabled data sources LINQ enabled ADO.NET LINQ To Objects LINQ To Datasets LINQ To SQL LINQ To Entities LINQ To XML <book> <title/> <author/> <price/> </book> Objects Relational XML
LINQ-Architektur var query = from c in customers where c.state == "WA" select c.name; var query = customers.where(c => c.state == "WA").Select(c => c.name); Source implements IEnumerable<T> Source implements IQueryable<T> System.Query.Enumerable Based on Delegates System.Query.Queryable Based on Expression Trees Objects SQL DataSets XML,
Die Microsoft-Plattform devices Operations infrastructure Application infrastructure Information worker infrastructure