Platforma.NET Wykład 2 Składowe platformy.net Marek Sawerwain Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 10 marca 2011 V1.1 1/ 47
Spis treści 1 Wprowadzenie Plan wykładu 2 Elementy.NET / Biblioteka klas Analiza składowych platformy.net Common Language Runtime (CLR) Common Language Specification Common Type Systems (CTS) Przegląd języków programowania.net Analiza biblioteki klas 3 Podzespół/IL Budowa podzespołu Język pośredni Kompilacja i wykonywanie programów IL Przykłady programów Tabela instrukcji wybór 4 Już za tydzień na wykładzie V1.1 2/ 47
Plan wykładu Plan wykładu tydzień po tygodniu (1) Informacje o wykładzie, pojęcie platformy, podstawowe informacje o platformie.net, (2) Składowe platformy.net: CLR, CTS, języki programowania, biblioteki klas, pojęcie podzespołu (ang. assembly), (3) Programowanie w C# środowisko VS, MonoDevelop, syntaktyka C#, wyjątki, współpraca z DLL, (4) Programowanie w C# model obiektowy, typy uogólnione, lambda wyrażenia, (5) Programowanie w C# aplikacje okienkowe, programowanie wielowątkowe. (6) Programowanie w F# podstawy, przetwarzanie danych tekstowych, (7) "Klasówka I", czyli wstęp do egzaminu cześć pierwsza (8) Dostęp do baz danych V1.1 3/ 47
Plan wykładu Plan wykładu tydzień po tygodniu (9) Język zapytań LINQ (10) Obsługa standardu XML (11) Technologia ASP.NET (12) ASP.NET Model View Controller (13) Tworzenie usług sieciowych SOA i WCF (14) Bezpieczeństwo aplikacji.net (15) "Klasówka II", czyli wstęp do egzaminu cześć druga V1.1 4/ 47
Plan wykładu Plan wykładu 1 Elementy.NET 1 główne elementy.net, 2 reguły CLS, 3 system typów. 2 Biblioteka klas 1 podział typów, 2 typy wbudowane oraz typy w kontekście C#, 3 podstawowe klasy w przestrzeni System. 3 Podzespół (assembly)/język pośredni 1 rola podzespołu, 2 budowa i model, 3 język pośredni. V1.1 5/ 47
Analiza składowych platformy.net Elementy platformy.net Wspólne środowisko uruchomieniowe oraz biblioteka klas, Web Services zestandaryzowana technologia publikacji serwisów WWW, SOAP Simple Object Access Protocol, HTTP protokół stosowany do przesyłania informacji pomiędzy serwisami WWW, Visual Basic C++ C# Perl Python Message Queuing XML Web Services ADO.NET and XML.NET Framework Class Libray Common Language Runtime COM+ (Transactions, Partitions, Object Pooling) User Interface IIS WMI XML opis danych. WIN32 / WIN64.NET Framework oferuje ustalony sposób produkcji oprogramowania w oparciu o platformę w której nie akcentuje się żadnego języka programowania. Platforma zawiera wspólne środowisko uruchomieniowe, bibliotekę klas dodatkowe serwery oraz narzędzia. V1.1 6/ 47
Analiza składowych platformy.net Cztery główne filary platformy.net Common Language Runtime (CLR) środowisko wykonawcze programów.net odpowiedzialne za lokalizację, wczytanie oraz zarządzanie typami/obiektami platformy.net Common Language Infrastructure (CLI) ECMA-335 Common Language Specification (CLS) zespół zasad oraz reguł niezbędnych do spełniania aby określony język programowania mógł współpracować z CLI. Common Type System (CTS) definicja sposobu reprezentacji typów danych w pamięci maszyny. Common Intermediate Language (CIL) język pośredni (IL) stanowiący niezależny zestaw instrukcji od istniejących rozwiązań procesorowych, do którego kompilowane są wszystkie programy pracujące w ramach środowiska.net, metadane. Common Language Runtime (CLR) Common Language Specification (CLS) Base Class Library (BCL) Metadata Definition and Semantics Common Type System (CTS) Common Intermediate Language (CIL) Instruction Set V1.1 7/ 47
Common Language Runtime (CLR) Środowisko wykonawcze maszyna wirtualna Zadaniem maszyny wirtualnej jest kontrola nad odwołaniami uruchamianego programu do sprzętu i systemu operacyjnego. W przypadku braku pewnych funkcji na poziomie sprzętowym zdaniem maszyny jest symulacja brakującej funkcjonalności. W ten sposób aplikacja/program nie jest wstanie sprawdzić, czy jest uruchomiony na prawdziwym, czy też udawanym/wirtualnym sprzęcie. Maszyny wirtualne to m.in.: Uwaga! interpretery, szczególnie interpretery kodu bajtowego, kompilatory JIT, emulatory rzeczywiście istniejącego sprzętu, np. emulatory starszych komputerów, konsol do gier. Nie zawsze jednoznacznie można określić wprost, czy faktycznie mamy do czynienia z maszyną wirtualną przykładem może być Java. V1.1 8/ 47
Common Language Runtime (CLR) Zastosowania maszyn wirtualnych Maszyny wirtualne są używane do różnych celów, min. do: 1 uruchamiania starszych aplikacji i/bądź starszych systemów operacyjnych w innych środowiskach niż pierwotne, 2 zapewnienia uniwersalnego środowiska uruchomieniowego, 3 bezpiecznego rozdzielania zasobów (min. mainframe, superkomputery), 4 uruchamiania jednocześnie różnych systemów operacyjnych na jednym komputerze (bez konieczności resetu tzw. systemu goszczącego), 5 tworzenia programowych klastrów, 6 analizowania jego pracy/debuggowania tworzonych systemów operacyjnych, 7 optymalizacji tworzonych aplikacji/programów, poprzez zapewnienie kontroli nad ich środowiskiem działania. Wymienione właściwości mogą występować łącznie lub być ograniczone, istotną własnością jest zupełność, czyli dana maszyna wirtualna W powinna być w stanie uruchomić swoją własną kopię. V1.1 9/ 47
Common Language Runtime (CLR) Znane maszyny wirtualne Kilka współczesnych programowych maszyn wirtualnych: Nazwa Model Zarząd. pam. Bezpie. Inter. JIT C. CL O.Model Dynam. typ. CLR stack auto/man Y N Y Yes Yes Mono stack auto/man Y Y Y Yes Yes DotGNU stack auto/man Y N Y Yes N JVM stack auto Y Y Y Yes N LLVM register man. N Y Y Yes N Parrot register auto N Y N Yes Yes Legenda: Zarząd. pam. Zarządzanie pamięcią, Bezpie. Bezpieczeństwo, Inter. Interpreter, JIT C. Just-in-time compiler, CL O.Model model obiektowy, Dynam. typ. dynamiczne typowanie. Maszyny wirtualne można podzielić na dwa podstawowe modele: rejestrowy oraz stosowy. Istotnym problemem jest wydajność maszyny, dlatego obecność kompilatora JIT jest niezbędna, aby dane rozwiązanie oferowało odpowiednio wysoką wydajność. V1.1 10/ 47
Common Language Runtime (CLR) Common Language Runtime (CLR) Usługi określone przez CLR: 1 zarządzanie kodem, czyli jego uruchamianie oraz nadzór nad jego wykonaniem, 2 zarządzanie pamięcią w przypadku obiektów zarządzanych 3 izolacja obszarów pamięci przydzielonych poszczególnym aplikacją.net, 4 konwersja języka IL do kodu maszynowego, 5 dostęp do metadanych (informacja o typach), 6 zabezpieczenia w dostępie kodu do zasobów, 7 weryfikacja i zgodność typów, 8 obsługa wyjątków (przekazywanie ich pomiędzy różnymi językami jak np.: F# oraz C#), 9 współpraca kodu zarządzanego z niezarządzanym, obsługa COM i bibliotekami DLL, 10 automatyzacja tworzenia obiektów, 11 usługi wspomagające tworzenie oprogramowania jak debuggowanie oraz profilowanie V1.1 11/ 47
Common Language Runtime (CLR) Common Language Runtime (CLR) Wymagania, co do środowiska wykonawczego zostały określone w dokumencie ECMA-335: http://www.ecma-international.org/publications/standards/ecma-335.htm. Base Class Library Support Thread Support COM Marshaler Type Checker Exception Manager Security Engine Debug Engine IL to native code (JIT compiler) Code Manager Garbage (GC) Collector Class Loader Istniejące implementacje wspólnego środowiska wykonawczego: CLR implementacja Microsoftu, MONO http://www.mono-project.com, DotGNU/Portable.NET www.gnu.org/projects/dotgnu/, http://dotgnu.org/. V1.1 12/ 47
Common Language Runtime (CLR) Rozwój CLR Kolejne wydania platformy.net naturalnie pociągają za sobą modyfikację CLR: WCF WPF WF EF Parallel WCS LINQ DLR CLR 1.0 CLR 1.1 CLR 2.0 CLR 2.0 CLR 2.0 CLR.NET 1.0.NET 1.1.NET 2.0.NET 3.0.NET 3.5 (SP1).NET oznacza to, iż dokument ECMA-335 jest poddawany modyfikacjom w momencie wydawania nowych wersji platformy.net, ostatnia pochodzi z grudnia 2010. V1.1 13/ 47
Common Language Specification Common Language Specification (CLS) Rola CLS CLS to zestaw reguł których spełnienia ma zapewnić współpracę pomiędzy różnymi językami programowania w ramach platformy.net. Trzy główne obszary/poziomy, gdzie stosowane są reguły CLS: 1 framework poziom bibliotek/technologii/zestawów klas, 2 consumer język programowania lub narzędzie dostarczające dostęp do funkcjonalności platformy, 3 extender język programowania lub narzędzie dostarczające dostęp do funkcjonalności platformy oraz rozszerza jej możliwości, V1.1 14/ 47
Common Language Specification Reguły szczegółowe CLS z dokumentu ECMA 335 Przykłady reguł ze standardu: CLS Rule 17 Unmanaged pointer types are not CLS-compliant. Note: CLS (consumer) There is no need to support unmanaged pointer types. CLS (extender) There is no need to provide syntax to define or access unmanaged pointer types. CLS (framework) Unmanaged pointer types shall not be externally exported. CLS Rule 23 System.Object is CLS-compliant. Any other CLS-compliant class shall inherit from a CLS- compliant class. CLS Rule 25 No longer used. [Note: In an earlier version of this standard, this rule stated The accessibility of a property and of its accessors shall be identical. The removal of this rule allows, for example, public access to a getter while restricting access to the setter. end note] V1.1 15/ 47
Common Language Specification Reguły szczegółowe CLS z dokumentu ECMA 335 Przykłady reguł ze standardu: CLS Rule 38 Properties and methods can be overloaded based only on the number and types of their parameters, except the conversion operators named op_implicit and op_explicit, which can also be overloaded based on their return type. Note: CLS (consumer) Can assume that only properties and methods are overloaded, and need not support overloading based on return type unless providing special syntax for operator overloading. If return type overloading isn t supported, then the op_implicit and op_explicit can be ignored since the functionality shall be provided in some other way by a CLS-compliant framework. Consumers must first apply the hide-by- name and hide-by-signature-and-name rules ( 8.10.4) to avoid any ambiguity. CLS (extender) Should not permit the authoring of overloads other than those specified here. It is not necessary to support operator overloading at all, hence it is possible to entirely avoid support for overloading on return type. CLS (framework) Shall not publicly expose overloading except as specified here. Frameworks authors should bear in mind that many programming languages, including object-oriented languages, do not support overloading and will expose overloaded methods or properties through mangled names. Most languages support neither operator overloading nor overloading based on return type, so op_implicit and op_explicit shall always be augmented with some alternative way to gain the same functionality. V1.1 16/ 47
Common Type Systems (CTS) Common Type System (CTS) Wspólny system typów Wspólny system typów określa w jaki sposób typy są deklarowane, używane oraz zarządzane w czasie wykonania (run-time). Najważniejsze funkcje udostępniane przez CTS to min: 1 bezpieczeństwo typów, szybkie wykonywanie kodu, utworzenie niezbędnej struktury do integracji między językowej, 2 pełny model zorientowany obiektowo implementowany w wielu językach programowania.net, 3 określa warunki, które muszą być spełnione przez określony język.net, co pozwala na interakcje pomiędzy obiektami pomiędzy różnymi językami.net. Główne zadanie CTS Obecność CTS pozwala na integrację języków, bowiem języki programowania obecne w.net współdzielą te same typy podstawowe określone przez CTS. V1.1 17/ 47
Common Type Systems (CTS) Ogólny podział typów Type Value Types Refernces Types (identity within app. domain) Built-in Value Types (special encoding in signature) User Defined Integer Types Enums Floating Point Types Typed References V1.1 18/ 47
Common Type Systems (CTS) Ogólny podział typów Refernces Types (identity within app. domain) Self-Describing Interface Pointer Built-In Reference Types Name Equivalent Function String Delegates Managed (might be in heap) Object Boxed Value Types Unmanaged Boxed Enums Structural Equivalent Arrays V1.1 19/ 47
Common Type Systems (CTS) CTS typy wbudowane built-in Podstawowe typy obecne we wspólnym środowisku wykonawczym. Nazwa CIL Typ CLS Nazwa BCL Opis bool Yes System.Boolean True or false value char Yes System.Char Unicode 16-bit char object Yes System.Object Object or boxed value type string Yes System.String Unicode string float32 Yes System.Single IEC 60559:1989 32-bit float float64 Yes System.Double IEC 60559:1989 64-bit float int8 No System.SByte Signed 8-bit integer int16 Yes System.Int16 Signed 16-bit integer int32 Yes System.Int32 Signed 32-bit integer int64 Yes System.Int64 Signed 64-bit integer native int Yes System.IntPtr Signed integer, native size native unsigned int No System.UIntPtr Unsigned integer, native size typedref No System.TypedReference Pointer plus exact type unsigned int8 Yes System.Byte Unsigned 8-bit integer unsigned int16 No System.UInt16 Unsigned 16-bit integer unsigned int32 No System.UInt32 Unsigned 32-bit integer unsigned int64 No System.UInt64 Unsigned 64-bit integer V1.1 20/ 47
Common Type Systems (CTS) CTS a typy w języku C# (I) Typy wartościowe: (1) Proste typy numeryczne i znakowe: (a) wielkość integer ze znakiem: sbyte, short, int, long, (b) wielkość integer bez znaku: byte, ushort, uint, ulong, (c) znak unicode: char, (d) IEEE floating point: float, double, (e) liczby o dużej precyzji: decimal, (f) boolean: bool. (2) Typ enum: enum EName {... }, (3) Typ struct: struct SName {... }, (4) Typy nullable : typy mają możliwość przyjęcia wartości null. (II) Typy referencyjne: (1) Typ klasowy: (a) typ podstawowy dla typu obiektowego: object, (b) łańcuchy znaków unicode: string, (c) klasy zdefiniowane przez użytkownika: class CName {... }, (2) Typ interface: interface IName {... }, (3) Typ tablicowy: jedno i wielowymiarowe tablice zdefiniowane przez użytkonika: int[], int[,], (4) Typ delegate : typy użytkownika: delegate int DName(... ). V1.1 21/ 47
Przegląd języków programowania.net Opracowano ponad 40 języków dla.net V1.1 22/ 47
Przegląd języków programowania.net Najważniejsze języki Najważniejsze języki dostępne z pudełka to: C#, Visual Basic.NET, C++/CLI, J# (odmiana języka Java opracowany przez Microsoft), JScript.NET (kompilowana odmiana języka JScript). Inne ważne języki: 1 COBOL, Delphi.NET, Oxygen, 2 Eiffel, Fortran, Lisp, 3 Nemerle, F#, Python, P# (Prolog). V1.1 23/ 47
Przegląd języków programowania.net F# język funkcyjny Definicja funkcji rekurencyjnej fib obliczającej liczby ciągu Fibbonaciego: let rec fib x = match x with 1 -> 1 2 -> 1 x -> fib (x - 1) + fib (x - 2) printfn "(fib 2) = %i" (fib 2) printfn "(fib 6) = %i" (fib 6) printfn "(fib 11) = %i" (fib 11) i elementy ciągu Lucasa: let rec luc x = match x with x when x <= 0 -> failwith "value must be greater than 0" 1 -> 1 2 -> 3 x -> luc (x - 1) + luc (--x - 2) printfn "(luc 2) = %i" (luc 2) printfn "(luc 6) = %i" (luc 6) printfn "(luc 11) = %i" (luc 11) printfn "(luc 12) = %i" (luc 12) V1.1 24/ 47
Przegląd języków programowania.net Konwersja liczby całkowitej na postać binarną: let BitsNum = 32 ;; let binary_of_int n = [ for i in BitsNum - 1.. -1.. 0 -> if (n >>> i) % 2 = 0 then "0" else "1" ] > String.concat "" ;; let x1 = binary_of_int 1431 ;; let x2 = binary_of_int ( -1123 ) ;; V1.1 25/ 47
Analiza biblioteki klas Zadania i funkcje biblioteki klas Standard ECMA-335 określa także postać standardowej biblioteki klas, zaliczane są następujące pakiety (zachowane zostało oryginalne nazewnictwo standardu): 1 Run-time infrastructure library 2 Base Class Library (BCL) 3 Network library 4 Reflection library 5 XML library 6 Extended numerics library 7 Extended array library 8 Vararg library 9 Parallel library V1.1 26/ 47
System.Windows Style Trigger UIElement3D NEW Visibility Window System.Windows.Controls Border Button CheckBox ColumnDefinition ContextMenu ControlTemplate DockPanel FlowDocumentReader Frame Grid Image InkCanvas ItemCollection ItemsPresenter ListBox ListView MediaElement Menu MenuItem Page PasswordBox ProgressBar RadioButton RichTextBox System.Messaging Message MessageQueue System.Net Dns FtpWebRequest HttpListener HttpWebRequest WebClient System.Net.Mail MailMessage SmtpClient System.Net.NetworkInformation NetworkInterface NetworkChange Ping System.Net.PeerToPeer NEW Cloud NEW PeerName NEW PeerNameRecord NEW PeerNameResolver NEW System.Net.PeerToPeer.Collaboration NEW ContactManager NEW PeerApplication NEW PeerCollaboration NEW PeerContact NEW PeerNearMe NEW System.Net.Security NegotiateStream SslStream System Array Boolean Byte Char Console DateTime DateTimeOffset NEW Decimal Delegate Enum Environment EventArgs Exception Int32 Int64 Math Object String TimeZoneInfo NEW Type Uri RowDefinition ScrollViewer Slider SpellCheck StackPanel TabControl TabItem TextBlock TextBox ToolBar ToolTip TreeView UIElementCollection ViewBox Viewport3D VirtualizingStackPanel WrapPanel System.Windows.Controls.Primitives Popup RepeatButton ScrollBar StatusBar TabPanel Thumb ToggleButton UniformGrid System.Windows.Data Binding CollectionView DataSourceProvider MultiBinding System.Net.Sockets NetworkStream Socket TcpClient TcpListener UdpClient System.ServiceModel NetMsmqBinding NetTcpBinding OperationBehaviorAttribute OperationContractAttribute ServiceBehaviorAttribute ServiceContractAttribute ServiceHost WorkflowServiceHost NEW WSHttpBinding System.ServiceModel.Activation AspNetCompatibilityRequirementsAttribute ServiceHostFactory WorkflowServiceHostFactory NEW System.ServiceModel.Channels Binding CommunicationObject IChannel Message System.ServiceModel.ComIntegration ServiceMoniker System.AddIn.Contract NEW IContract NEW INativeHandleContract NEW System.AddIn.Hosting NEW AddInProcess NEW AddInSecurity NEW AddInStore NEW AddInToken NEW System.AddIn.Pipeline NEW CollectionAdapters NEW ContractBase NEW ContractHandle NEW FrameworkElementAdapters NEW System.Collections ArrayList HashTable IEnumerable ObjectDataProvider XmlDataProvider System.Windows.Documents Block Bold Figure FixedDocument Floater FlowDocument Hyperlink Inline Italic List ListItem Paragraph Run Section Span Table TableCell TableColumn TableRowGroup TextPointer TextRange TextSelection Underline System.Windows.Documents.Serialization SerializerDescriptor SerializerProvider SerializerWriter DurableServiceAttribute NEW IEndpointBehavior IOperationBehavior IServiceBehavior MetadataExporter MetadataImporter OperationDescription ServiceEndpoint ServiceDescription WebHttpBehavior WebScriptEnablingBehavior NEW WorkflowRuntimeBehavior NEW System.ServiceModel.Diagnostics PerformanceCounterScope System.ServiceModel.Dispatcher ClientOperation ClientRuntime DispatchOperation DispatchRuntime System.ServiceModel.MsmqIntegration MsmqIntegrationBinding System.ServiceModel.PeerResolvers CustomPeerResolverService System.ServiceModel.Persistence NEW PersistenceProvider NEW PersistenceProviderFactory NEW SqlPersistenceProviderFactory NEW System.Collections.Generic Dictionary<K,V> HashSet<T> NEW IEnumerable<T> List<T> Queue<T> Stack<T> System.ComponentModel Component TypeConverter System.Configuration Configuration System.Diagnostics Debug EventLog EventSchemaTraceListener NEW Process Trace System.Windows.Forms.Integration ElementHost WindowsFormsHost System.Windows.Input Cursor Cursors FocusManager InputDevice Keyboard KeyboardNavigation Mouse Stylus System.Windows.Interop BrowserInteropHelper HwndHost InteropBitmap WindowInteropHelper System.Windows.Markup MarkupExtension XamlReader XamlWriter System.Windows.Media Colors DrawingBrush ImageBrush LinearGradientBrush RadialGradientBrush System.ServiceModel.Security SecurityAlgorithmSuite SecurityMessageProperty SecurityVersion System.ServiceModel.Syndication NEW Atom10FeedFormatter NEW Rss20FeedFormatter NEW SyndicationFeed NEW SyndicationItem NEW System.ServiceModel.Web NEW WebGetAttribute NEW WebInvokeAttribute NEW WebOperationContext NEW WebServiceHost NEW System.Web.Services WebService System.Web.Services.Protocols SoapHttpClientProtocol System.Workflow.Activities CodeActivity SequenceActivity ParallelActivity ReceiveActivity NEW SendActivity NEW StateMachineWorkflowActivity System.Workflow.Activities.Rules Rule RuleAction RuleCondition RuleSet System.Diagnostics.Eventing NEW EventDescriptor NEW EventProvider NEW EventProviderTraceListener NEW System.Diagnostics.Eventing.Reader NEW EventLogInformation NEW EventLogReader NEW EventLogRecord NEW EventLogWatcher NEW EventRecord NEW ProviderMetadata NEW System.Diagnostics.PerformanceData NEW CounterData NEW CounterSet NEW System.DirectoryServices DirectoryEntry DirectorySearcher System.DirectoryServices.ActiveDirectory Domain Forest RotateTransform ScaleTransform SolidColorBrush System.Windows.Media.Animation DoubleAnimation StoryBoard Timeline System.Windows.Media.Effects BlurBitmapEffect DropShadowBitmapEffect System.Windows.Media.Imaging BitmapImage RenderTargetBitmap WritableBitmap System.Windows.Media.Media3D AmbientLight DiffuseMaterial DirectionalLight GeometryModel3D ModelVisual3D PerspectiveCamera SpecularMaterial System.Windows.Navigation BaseUriHelper JournalEntry NavigationWindow PageFunction<T> System.Workflow.Activities.Rules.Design RuleConditionDialog RuleSetDialog System.Workflow.ComponentModel Activity ActivityExecutionContext CompositeActivity System.Workflow.ComponentModel.Compiler WorkflowCompiler System.Workflow.ComponentModel.Design ActivityDesigner System.Workflow.ComponentModel.Serialization WorkflowMarkupSerializer System.Workflow.Runtime WorkflowInstance WorkflowRuntime System.Workflow.Runtime.Hosting WorkflowLoaderService WorkflowPersistenceService WorkflowRuntimeService WorkflowSchedulerService System.Workflow.Runtime.Tracking TrackingService System.EnterpriseServices ServicedComponent System.Globalization Calendar CultureInfo RegionInfo TextInfo System.IdentityModel.Claims Claim ClaimSet System.IO Directory File FileStream Path Stream StreamReader StreamWriter System.IO.Compression GZipStream System.Windows.Shapes Ellipse Line Path Polygon Rectangle System.Windows.Threading DispatcherObject DispatcherTimer System.Windows.Xps VisualsToXpsDocument XpsDocumentWriter System.Windows.Xps.Serialization XpsSerializationManager XpsSerializationManagerAsync System.IO.IsolatedStorage IsolatedStorage System.IO.Pipes NEW AnonymousPipeClientStream NEW AnonymousPipeServerStream NEW NamedPipeClientStream NEW NamedPipeServerStream NEW PipeSecurity NEW PipeStream NEW System.IO.Ports SerialPort System.Linq NEW IQueryable<T> NEW Queryable NEW System.Linq.Expressions NEW Expression<T> NEW Expression NEW System.Data DataColumn DataRow DataSet DataTable DataView System.Data.Common DbCommand DbConnection DbDataAdapter DbDataReader DataContext NEW EntityRef<T> NEW EntitySet<T> NEW Table<T> NEW System.Data.Linq.Mapping NEW AttributeMappingSource NEW MetaModel NEW XmlMappingSource NEW System.Data.Odbc OdbcCommand OdbcConnection OdbcDataAdapter OdbcDataReader System.Data.OleDb OleDbCommand OleDbConnection OleDbDataAdapter OleDbDataReader System.Reflection Assembly FieldInfo System.Drawing Bitmap Brush Color Font Icon Image Pen System.Drawing.Printing PrintDocument PrinterSettings System.Media SoundPlayer System.Windows.Forms MemberInfo MethodInfo Button CheckBox ComboBox DataGrid DateTimePicker Form Label ListBox ListView MessageBox NumericUpDown OpenFileDialog PictureBox ProgressBar RadioButton PropertyInfo System.Reflection.Emit AssemblyBuilder MethodBuilder TypeBuilder System.Resources ResourceManager System.Runtime.Serialization DataContractAttribute DataContractSerializer DataMemberAttribute ISerializable XmlDictionaryReader XmlDictionaryWriter RichTextBox TabControl TextBox TreeView UserControl WebBrowser System.Data.OracleClient OracleCommand OracleConnection OracleDataAdapter OracleDataReader System.Data.SqlClient SqlCommand SqlConnection SqlDataAdapter SqlDataReader SqlNotification System.Xml XmlAttribute XmlDocument XmlElement XmlNode XmlReader XmlWriter System.Xml.Linq NEW XAttribute NEW XDocument NEW XElement NEW XName NEW XNamespace NEW XNode NEW XText NEW System.Xml.Schema XmlSchema XmlSchemaSet XmlSchemaValidator System.Web System.Xml.Serialization XmlSerializer System.Xml.XPath XPathDocument XPathExpression XPathNavigator System.Xml.Xsl XslCompiledTransform XsltArgumentList System.Runtime.Serialization.Json NEW DataContractJsonSerializer NEW JsonReaderWriterFactory NEW System.Security SecureString SecurityManager System.Security.AccessControl AccessRule FileSecurity ObjectSecurity SHA1 TripleDES System.Security.Cryptography.X509Certificates X509Store HttpApplication HttpCookie HttpRequest HttpResponse HttpRuntime HttpServerUtility System.Web.ApplicationServices NEW AuthenticationService NEW ProfileService NEW RoleService NEW System.Web.Caching Cache System.Web.ClientServices NEW ClientFormsIdentity NEW ClientRolePrincipal NEW ConnectivityStatus NEW System.Web.ClientServices.Providers NEW ClientFormsAuthenticationMembershipProvider NEW ClientRoleProvider NEW System.Web.Compilation BuildProvider System.Web.Configuration WebConfigurationManager System.Security.Principal WindowsIdentity System.ServiceProcess ServiceBase System.Text Encoding StringBuilder System.Text.RegularExpressions Regex Semaphore Thread WaitHandle System.Transactions Transaction System.Web.Hosting ApplicationManager System.Web.Management WebBaseEvent System.Web.Security FormsAuthentication FormsIdentity Membership Roles System.Web.SessionState HttpSessionState System.Web.UI Control MasterPage Page ScriptManager NEW UpdatePanel NEW UpdateProgress NEW UserControl System.Web.UI.HtmlControls HtmlButton HtmlControl HtmlForm HtmlInputControl System.Web.UI.WebControls NEW Content DetailsView FormView GridView LinqDataSource NEW ListView NEW LogIn Menu ObjectDataSource TreeView Wizard System.Web.UI.WebControls.WebParts WebPart Analiza biblioteki klas Ogólny schemat Base Class Library BCL.NET 3.5 Microsoft.NET Framework 3.5 Commonly Used Types and Namespaces 3.05 Windows Presentation Foundation Windows Forms ASP.NET Communications and Workflow Fundamentals System.ServiceModel.Description DurableOperationAttribute NEW DATA, XML, and LINQ DbProviderFactory System.Data.Linq NEW System.Security.Cryptography ECDsaCng NEW System.Threading ReaderWriterLockSlim NEW What is the.net Framework? The.NET Framework is the managed code programming model for Windows. It provides a highly productive environment for software developers and offers excellent skills reuse across multiple application architectures. The.NET Framework is available with the same consistent API across different development platforms, including the full.net Framework for the desktop and server, the.net Compact Framework for mobile devices, the.net Framework on SQL Server, the.net Micro Framework for small embedded systems such as SPOT watches, and Silverlight version 1.1 for cross-platform, cross-browser development of rich Internet applications. The.NET Framework is used by 90% of Fortune 100 companies and is easily deployable to end user PCs. Key NEW New with the.net Framework 3.5. 3.0 New with the.net Framework 3.0. CF Also available in the.net Compact Framework 3.5. SL Planned for implementation in Silverlight 1.1. (Subject to change.) Additive versions of the.net Framework Part number: 098-108905 http://msdn.microsoft.com/netframework plakat autorstwa firmy Microsoft V1.1 27/ 47
Wprowadzenie Elementy.NET / Biblioteka klas Podzespół/IL Już za tydzień na wykładzie Analiza biblioteki klas Ogólny schemat Base Class Library BCL.NET.NET Framework 4 Universe A selection of new types and namespaces Workflow System.WorkflowModel Activity WorkflowElement System.WorkflowServiceModel WorkflowServiceHost2 System.Web.Mvc System.Web.UI CompositeScriptReference System.Web.DynamicData DataModel DynamicControl DynamicDataManager DynamicField Axis Chart ControllerFactory IViewEngine ViewPage Sys.Binding Route Sys.Observer RouteTable Sys.Data.DataSource System.ComponentModel.DataAnnotations DataTypeAttribute ChartArea DisplayFormatAttribute DataPoint RangeAttribute Legend RegularExpressionAttribute Series RequiredAttribute UIHintAttribute ValidationAttribute System.Web.UI.WebControls Core Ajax System.Web.Routing System.Web.UI.DataVisualization.Charting Annotation ActionResult Controller Sys.UI.DataView Sys.UI.Template Sys.UI.TemplateResult BigInteger Complex System.IO.MemoryMappedFiles Web CompositionContainer ExportAttribute ImportAttribute ClientOperation DbQuery ReceiveMessage DbUpdate SendMessage ServiceOperation Flowchart Persist Sequence StateMachine D3dImage TouchPoint TouchPointCollection TouchDevice System.Collections.Concurrent System.Threading LazyInit Parallel SpinLock Data D3dImage System.Windows.Controls WebBrowser System.Windows.Media.Effects DataGrid PixelShader DatePicker Ribbon RibbonWindow ShadeEffect VisualStateGroup VisualStateManager IExtendedDataRecord DbCommandTree DbExpression DataServiceException XamlWriter DataServiceHost XamlType IDataServiceConfigulation XamlProperty IDataServiceProvider ISynchonizationProvider DataServiceKeyAttribute DbCommandDefinition Service.Document AtomPub10ServiceDocumentFormatter System.ServiceModel.Channels CompensationFlowAttribute VisualState EntityKey System.Data.Common.CommandTrees ChangeInterceptorAttribute DataService XamlReader System.ServiceModel.Syndication System.Windows Effect System.Data System.Data.Services System.Data.Services.Provider IDataServicesProvider System.Data.Services.Client System.ServiceModel Calendar Communications System.Windows.Controls System.WorkflowModel.Activities.Rules RuleSet QueryInterceptorAttribute ActiveXHost System.Windows.Media.Imaging WorkflowInstanceContext TrackingProfile System.Windows.Input System.Windows.Interop System.WorkflowServiceModel.Dispatcher TypeIdentifierAttribute System.Xaml Client System.Runtime.Interop.Services System.Linq ParallelEnumerable SortedSet CompensationScope System.WorkflowModel.Tracking System.Collections.Generic System.ComponentModel.Composition EntityDataSource System.Threading.Tasks System.Numerics System.WorkflowServiceModel.Activities System.WorkflowModel.Activities DbExpressionBuilder DbQueryCommandTree System.Data.Common DbProviderServices EntitySqlParser System.Data.Objects CompiledQuery CorrelationOperationBehavior DataServiceContext ObjectContext OperationContact DataServiceRequest ObjectParameter Service ServiceContract System.ServiceModel.Discovery DataServiceResponse DataServiceQuery ObjectQuery ObjectStateManager System.Data.Metadata.Edm System.Data.EntityClient AnnouncementClient EntityCommand ComplexType AnnouncementService EntityConnection EdmType DiscoveryClient EntityDataReader EntityType ServiceDiscoveryBehavior EntityTransaction RelationshipType The award winning Addison-Wesley Microsoft.NET Development Series provides professional developers with the most comprehensive and practical coverage of the latest.net technologies. To discover more go to informit.com/msdotnetseries. _300 Forewords by Miguel de Icaza and Anders Hejlsberg Microsoft Programming An instant classic. From the Foreword by Miguel de Icaza Architect, Microsoft John Montgomery Principal Group Program Manager, Developer Division, Microsoft Q Q Q Q Q Q Q Q Q Q Create object-oriented cross-browser JavaScript that supports.net style classes, interfaces, inheritance, and method overloading Work with components, behaviors, and controls, and learn how they relate to DOM elements Learn Sys.Application and the part it plays in object creation, initialization, and events in the Microsoft AJAX Library Build Extender and Script controls that provide integrated script generation for their corresponding client-side counterparts Develop highly interactive controls using the AJAX Control Toolkit Understand AJAX Control Toolkit architecture and build controls that utilize the toolkit Architect, Microsoft John Montgomery Principal Group Program Manager, Developer Division, Microsoft This foremost series on.net contains vital information for developers who need to get the most out of the.net Framework. Our authors are selected from the key innovators who create the technology and are the most respected practitioners of it. Cover photograph by Douglas Peebles/CORBIS Duffy aims to give application, system, and library developers the tools and techniques needed to write efficient, safe code for multicore processors. This is important not only for the kinds of problems where concurrency is inherent and easily exploitable such as server applications, compute-intensive image manipulation, financial analysis, simulations, and AI algorithms but also for problems that can be speeded up using parallelism but require more effort such as math libraries, sort routines, report generation, XML manipulation, and stream processing algorithms. For.NET Framework 3.5 Concurrent Programming on Windows has four major sections: The first introduces concurrency at a high level, followed by a section that focuses on the fundamental platform features, inner workings, and API details. Next, there is a section that describes common patterns, best practices, algorithms, and data structures that emerge while writing concurrent software. The final section covers many of the common system-wide architectural and process concerns of concurrent programming. This is the only book you ll need in order to learn the best practices and common patterns for programming with concurrency on Windows and.net. Group Program Manager, Microsoft Includes Free 45-Day Online Edition ISBN-13: 978-0-321-51444-8 ISBN-10: 0-321-51444-0 9 Adam Calderon Joel Rumerman informit.com/msdotnetseries 5 4 9 9 9 Text printed on recycled paper 780321 514448 Don Box Architect, Microsoft This is a great resource for professional.net developers. It covers all bases, from expert perspective to reference and how-to. Books in this series are essential reading for those who want to judiciously expand their knowledge base and expertise. John Montgomery Principal Group Program Manager, Developer Division, Microsoft This foremost series on.net contains vital information for developers who need to get the most out of the.net Framework. Our authors are selected from the key innovators who create the technology and are the most respected practitioners of it. Brad Abrams Group Program Manager, Microsoft ISBN-13: 978-0-321-43482-1 ISBN-10: 0-321-43482-X Cover photograph by istockphoto.com 5 4 9 9 9 Text printed on recycled paper 9 $49.99 U.S. $54.99 CANADA 0321545613 Mundie, Chief Research and Strategy Officer, Microsoft Microsoft Programming Whether this is the first time or the fifty-first time you re using WCF, you ll learn something new by reading this book. Nicholas Supported by the leaders and principal authorities of core Microsoft technologies, this series has an author pool that combines some of the most insightful authors in the industry with the lead software architects and developers at Microsoft and the developer community at large. Joe Duffy is the development lead, architect, and founder of the Parallel Extensions to the.net Framework team at Microsoft. In addition to hacking code and managing a team of developers, he works on long-term vision and incubation efforts, such as language and type system support for concurrency safety. He previously worked on the Common Language Runtime team. Joe blogs regularly at www.bluebytesoftware.com/blog. Allen, Program Manager, Web Services, Microsoft Windows Communication Foundation (WCF) is the easiest way to produce and consume Web services on the Microsoft platform. With.NET 3.5, WCF has been extensively revamped and Visual Studio 2008 gives developers powerful new tools for utilizing it. Essential Windows Communication Foundation shows developers exactly how to make the most of WCF with.net 3.5 and Visual Studio 2008. Concurrent Programming on Windows Drawing on extensive experience working with early adopters, three Microsoft insiders systematically address the topics developers ask about WCF. The authors approach each subject with practical advice and present best practices, tips, and tricks for solving problems. Throughout, you ll find detailed explanations, solutions for the pain points of WCF development, and an extensive collection of reusable code examples. Coverage includes Joe Duffy 780321 434821 www.informit.com/msdotnetseries Cover photograph by PhotoLink/Getty Images, Inc. Includes FREE 45-Day Online Edition Development Series Development Series Using WCF contracts to define complex structures and interfaces Understanding WCF s channel stacks and channel model architecture Configuring the WCF communication stack to use only the protocols you need Using standard and custom service behaviors to manage concurrency, instances, transactions, and more Serializing data from.net types to XML Infosets and representing Infosets on the wire Hosting WCF services via IIS, managed.net applications, and Windows Activation Services WCF security, in depth: authentication; transport and message-level security; and Internet and intranet scenarios Improving reliability: exception handling, diagnostics, and more Workflow services: new integration points between WCF 3.5 and Windows Workflow Foundation Building client-to-client, peer network-based applications Utilizing WCF for non-soap Web services: AJAX and JSON examples and.net 3.5 hosting classes This series is a great resource for developers using the.net Framework and Web services. It covers all the bases from reference to how-to. The books in this series are essential reading for developers who want to write solid managed code. John Montgomery Director, Developer Platform and Evangelism Division, Microsoft Corporation This series is supported by the leaders and principal authorities of the Microsoft.NET Framework and its languages. It has an author pool that combines some of the most insightful authors in the industry with the software architects and developers at Microsoft. Microsoft s Steve Resnick, Richard Crane, and Chris Bowen are technology experts at the Microsoft Technology Center in Boston. They specialize in helping customers improve their technical agility by applying WCF and related technologies. Resnick has specialized in Internet technologies and distributed computing at Microsoft since 1995. He is a frequent speaker at Microsoft events and is now technology director for the U.S. Microsoft Technology Centers. Crane has more than 15 years of experience in senior software development roles. He specializes in large-scale Web sites, distributed computing, transactional systems, and performance analysis. Bowen has been an architect and developer for more than 15 years at companies such as Monster.com and Staples and is co-author of Professional Visual Studio 2005 Team System. Don Box Architect, Microsoft Corporation Foreword by Steve Maine, Program Manager, Microsoft Programming/C# Windows Communication Foundation, Microsoft From the Foreword by Don Box The popular C# programming language combines the high productivity of rapid application development languages with the raw power of C and C++. Now, C# 3.0 adds functional programming techniques and LINQ, Language INtegrated Query. The C# Programming Language, Third Edition, is the authoritative and annotated technical reference for C# 3.0. Written by Anders Hejlsberg, the language s architect, and his colleagues, Mads Torgersen, Scott Wiltamuth, and Peter Golde, this volume has been completely updated and reorganized for C# 3.0. The book provides the complete specification of the language, along with descriptions, reference materials, code samples, and annotations from nine prominent C# gurus. For.NET Framework 3.5 The many annotations a new feature in this edition bring a depth and breadth of understanding rarely found in any programming book. As the main text of the book introduces the concepts of the C# language, cogent annotations explain why they are important, how they are used, how they relate to other languages, and even how they evolved. Development Series This book is the definitive, must-have reference for any developer who wants to understand C#. Anders Hejlsberg is a programming legend. He is the architect of the C# language and a Microsoft Technical Fellow. He joined Microsoft Corporation in 1996, following a thirteen-year career at Borland, where he was the chief architect of Delphi and Turbo Pascal. Mads Torgersen is the Program Manager for the C# Language at Microsoft and runs the C# design meetings. Prior to joining Microsoft in 2005, he was an associate professor at the University of Aarhus, doing programming language research. 5 4 9 9 9 780321 440068 $49.99 U.S./$54.99 CANADA Architect, Microsoft John Montgomery Principal Group Program Manager, Developer Division, Microsoft This foremost series on.net contains vital information for developers who need to get the most out of the.net Framework. Our authors are selected from the key innovators who create the technology and are the most respected practitioners of it. Essential C# 3.0 is an extremely well-written and well-organized no-fluff guide to C# 3.0, which will appeal to programmers at all levels of experience with C#. This fully updated edition dives deep into the new features that are revolutionizing programming, with brand new chapters covering query expressions, lambda expressions, extension methods, collection interface extensions, standard query operators, and LINQ as a whole. Brad Abrams Group Program Manager, Microsoft ISBN-13: 978-0-321-56299-9 ISBN-10: 0-321-56299-2 Cover photograph by istockphoto.com Text printed on recycled paper 9 Don Box This is a great resource for professional.net developers. It covers all bases, from expert perspective to reference and how-to. Books in this series are essential reading for those who want to judiciously expand their knowledge base and expertise. Before leaving Microsoft, Peter Golde was the lead developer of the C# compiler. informit.com/msdotnetseries ISBN-13: 978-0-321-44006-8 ISBN-10: 0-321-44006-4 Text printed on recycled paper C# Supported by the leaders and principal authorities of core Microsoft technologies, this series has an author pool that combines some of the most insightful authors in the industry with the lead software architects and developers at Microsoft and the developer community at large. Scott Wiltamuth is Partner Program Manager for Visual Studio. While at Microsoft, he has worked on a wide range of developer-oriented projects, including Visual Basic, VBScript, JScript, Visual J++, and Visual C#. Steve Resnick Richard Crane Chris Bowen 9 5 4 4 9 9 780321 562999 The C# Programming Language Author Mark Michaelis covers the C# language in depth, and each important construct is illustrated with succinct, relevant code examples. (Complete code examples are available online.) Graphical mind maps at the beginning of each chapter show what material is covered and how each topic relates to the whole. Topics intended for beginners and advanced readers are clearly marked. From the Foreword by Charlie C# primitive data types, value types, reference types, type conversions, and arrays Operators and control flow, loops, conditional logic, and sequential programming Methods, parameters, exception handling, and structured programming Classes, inheritance, structures, interfaces, and object-oriented programming Well-formed types, operator overloading, namespaces, and garbage collection Don Box Architect, Microsoft This is a great resource for professional.net developers. It covers all bases, from expert perspective to reference and how-to. Books in this series are essential reading for those who want to judiciously expand their knowledge base and expertise. John Montgomery Generics, collections, custom collections, and iterators Principal Group Program Manager, Developer Division, Microsoft Delegates and lambda expressions Standard query operators and query expressions LINQ: language integrated query Reflection, attributes, and declarative programming Threading, synchronization, and multithreaded patterns Interoperability and unsafe code The Common Language Infrastructure that underlies C# This foremost series on.net contains vital information for developers who need to get the most out of the.net Framework. Our authors are selected from the key innovators who create the technology and are the most respected practitioners of it. Group Program Manager, Microsoft Mark Michaelis is a software architect and trainer at Itron and IDesign and is the founder of intellitechture. He is a Microsoft Regional Director and serves on several Microsoft software design review teams, including C#. Mark holds a B.A. in philosophy from the University of Illinois and an M.S. in computer science from the Illinois Institute of Technology. $44.99 U.S. $48.99 CANADA Essential C# 3.0 For.NET Framework 3.5 Brad Abrams Whether you are just starting out as a programmer, are an experienced developer looking to learn C#, or are a seasoned C# programmer interested in learning the new features of C# 3.0, Essential C# 3.0 gives you just what you need to quickly get up and running writing C# applications. Anders Hejlsberg informit.com/msdotnetseries Mads Torgersen mark.michaelis.net/essentialcsharp Wiltamuth Cover photographscott by istockphoto.com Text printed on recycled paper Peter Golde Calvert, Community Program Manager, Visual C#, Microsoft Supported by the leaders and principal authorities of core Microsoft technologies, this series has an author pool that combines some of the most insightful authors in the industry with the lead software architects and developers at Microsoft and the developer community at large. Following an introduction to C#, readers learn about Third Edition $49.99 U.S. $54.99 CANADA 0321514440 If you want to be a C# developer, or if you want to enhance your C# programming skills, there is no more useful tool than a well-crafted book on the subject. You are holding such a book in your hands. Special Annotated Edition for C# 3.0 Based on my own experience, I can safely say that every.net developer who reads this will have at least one aha moment and will be a better developer for it. Essential Windows Communication Foundation Michaelis Krzysztof Cwalina Brad Abrams From the Foreword by Craig Mundie, Chief Research and Strategy Officer, Microsoft Corporation Author Joe Duffy has risen to the challenge of explaining how to write software that takes full advantage of concurrency and hardware parallelism. In Concurrent Programming on Windows, he explains how to design, implement, and maintain large-scale concurrent programs, primarily using C# and C++ for Windows. Advanced ASP.NET AJAX Server Controls Brad Abrams Hejlsberg Torgersen Wiltamuth Golde $49.99 U.S. $54.99 CANADA Don Box This is a great resource for professional.net developers. It covers all bases, from expert perspective to reference and how-to. Books in this series are essential reading for those who want to judiciously expand their knowledge base and expertise. Resnick Crane Bowen informit.com/msdotnetseries 5 4 9 9 9 780321 545619 Foreword by Craig the importance of clean architecture and design is critical... This places an emphasis on understanding not only the platform s capabilities but also emerging best practices. Joe does a great job interspersing best practices alongside theory throughout his book. Supported by the leaders and principal authorities of core Microsoft technologies, this series has an author pool that combines some of the most insightful authors in the industry with the lead software architects and developers at Microsoft and the developer community at large. Localize ASP.NET AJAX controls including client script Discover ASP.NET AJAX client and server communication architecture and the new support for Windows Communication Foundation (WCF) Understand ASP.NET AJAX Application Services Create custom Application Services Design controls for a partial postback environment Understand the AJAX Control Toolkit architecture and the many features it provides Q Q Adam Calderon is the Application Development Practice Lead at InterKnowlogy and a Microsoft MVP. He has been involved with ASP.NET AJAX since the Alpha release, participated in the ATLAS First Access program, and is a member of the Microsoft UI Server Frameworks Advisory Council where he contributes to the future direction of the ASP.NET platform. Adam is also heavily involved in the development community; he has taught classes at UCSD and has spoken at TechEd, user groups, and Code Camps throughout southern California. Joel Rumerman, Senior.NET Developer at The CoStar Group, develops line-of-business applications that rely heavily on ASP.NET AJAX. He s an expert with JavaScript and an ASP.NET programmer who has been involved with ASP.NET AJAX since it was codenamed Atlas. Joel is currently working on a large scale Virtual Earth mash-up that plots commercial real estate information. Duffy ISBN-13: 978-0-321-54561-9 ISBN-10: 0-321-54561-3 9 Second Edition Adam Calderon and Joel Rumerman first review the core Microsoft AJAX Library and JavaScript techniques needed to support a rich clientside experience. Next, they build upon these techniques showing how to create distributable AJAX-enabled controls that include rich browserindependent JavaScript client-side functionality. The authors thoroughly explain both the JavaScript and.net aspects of control development and how these two distinct environments come together to provide a foundation for building a rich user experience using ASP.NET AJAX. Conventions, Idioms, and Patterns for Reusable.NET Libraries Calderon Rumerman Text printed on recycled paper Cwalina Abrams informit.com/msdotnetseries Cover photograph by Getty Images, Inc. Microsoft Programming/Concurrent Programming Foreword by Nikhil Kothari, When you begin using multi-threading throughout an application, Software Architect,.NET Developer Platform, Microsoft Microsoft Programming/ASP.NET ASP.NET AJAX server controls can encapsulate even the most powerful AJAX functionality, helping you build more elegant, maintainable, and scalable applications. This is the first comprehensive, code-rich guide to custom ASP.NET AJAX server controls for experienced ASP.NET developers. Unlike other books on ASP.NET AJAX, this book focuses solely on server control development and reflects the significant improvements in ASP.NET 3.5 AJAX and the latest Visual Studio 2008 features for streamlining AJAX development. Framework Design Guidelines Essential C# 3.0 Don Box This is a great resource for professional.net developers. It covers all bases, from expert perspective to reference and how-to. Books in this series are essential reading for those who want to judiciously expand their knowledge base and expertise. The C# Programming Language Third Edition Supported by the leaders and principal authorities of core Microsoft technologies, this series has an author pool that combines some of the most insightful authors in the industry with the lead software architects and developers at Microsoft and the developer community at large. A companion DVD includes the Designing.NET Class Libraries video series, instructional presentations by the authors on design guidelines for developing classes and components that extend the.net Framework. A sample API specification and other useful resources and tools are also included. Essential Windows Communication Foundation Guidelines for and examples of common framework design patterns Concurrent Programming on Windows The general philosophy and fundamental principles of framework design Naming guidelines for the various parts of a framework Guidelines for the design and extending of types and members of types Issues affecting and guidelines for ensuring extensibility How (and how not ) to design exceptions Framework Design Guidelines, Second Edition, is the only definitive source of best practices for managed code API development, direct from the architects themselves. Krzysztof Cwalina is a Principal Program Manager in the.net Application Frameworks Core group at Microsoft. He was responsible for the design of a large part of the Framework APIs, and for the development of the.net Framework Design Guidelines. Brad Abrams is the Product Unit Manager of the Application Framework team at Microsoft. He was the primary author of the.net Framework Design Guidelines, the Common Language Specification, and the class libraries for the ECMA CLI specification. Advanced ASP.NET AJAX Server Controls This book can improve the work of any.net developer producing code that other developers will use. It includes copious annotations to the guidelines by thirty-five prominent architects and practitioners of the.net Framework, providing a lively discussion of the reasons for the guidelines as well as examples of when to break those guidelines. Microsoft architects Krzysztof Cwalina and Brad Abrams teach framework design from the top down. From their significant combined experience and deep insight, you will learn Guidelines in this book are presented in four major forms: Do, Consider, Avoid, and Do not. These directives help focus attention on practices that should always be used, those that should generally be used, those that should rarely be used, and those that should never be used. Every guideline includes a discussion of its applicability, and most include a code example to help illuminate the dialogue. Framework Design Guidelines Second Edition Framework Design Guidelines, Second Edition, teaches developers the best practices for designing reusable libraries for the Microsoft.NET Framework. Expanded and updated for.net 3.5, this new edition focuses on the design issues that directly affect the programmability of a class library, specifically its publicly accessible APIs. IDesign ISBN-13: 978-0-321-53392-0 ISBN-10: 0-321-53392-5 5 4 9 9 9 9 780321 533920 Mark Michaelis $49.99 U.S. $54.99 CANADA 032143482X 0321440064 Visit Safaribooksonline.com for early access to Rough Cuts of forthcoming.net titles. plakat autorstwa firmy Addison-Wesley 0321562992 0321533925 0321577841 0321604741 0321562313.NET 4 Poster Compliments of the.net Development Team and V1.1 28/ 47