Visual Studio 2010 includes many improvements such as a new WPF-based interface, enhanced debugging tools like call hierarchy and breakpoint labeling, and improved support for technologies like ASP.NET, WPF, and Silverlight. The .NET 4.0 framework features improvements to core types and services, such as new data structures and I/O capabilities. C# 4.0 and VB 10 add functionality like dynamic typing, covariance/contravariance, optional and named parameters to reduce ceremony. Both support the dynamic language runtime for easier interoperability with dynamic languages.
This document provides an overview of new features being introduced in Java 8, with a focus on lambda expressions, default methods, and bulk data operations. It discusses the syntax and usage of lambda expressions, how they are represented at runtime using functional interfaces, and how variable capturing works. New functional interfaces being added to Java 8 are presented, including examples like Consumer and Function. The document also explores how lambda expressions are compiled, showing how invokedynamic bytecode instructions are used to dispatch lambda calls at runtime. In summary, the document serves as an introduction to key new language features in Java 8 that improve support for functional programming and parallel operations.
Vladimir Ulogov - Beyond the Loadable ModuleZabbix
Zabbix loadable module provides a great way to extend capabilities of your Zabbix implementation, but knowing how to integrate your favorite interpreter with Zabbix, will bring you further than just creating the loadable module itself.
Using Python interpreter as an example, I will review the process of such integration, point on possible pitfalls, explain on how to debug your scrips and give you more ideas on how to organize distributed data collection, using Python-Zabbix modules.
Zabbix Conference 2015
The document discusses new features in .NET Framework 4.0 including managed extensibility framework (MEF), language features like optional and named parameters, dynamic typing, variance support in generics, code contracts, parallelism support through task parallel library (TPL) and LINQ to Parallel (PLINQ). It provides an overview of the .NET framework architecture and new capabilities added at each version.
Java 8 introduces several new features that help modernize the Java platform and move it closer to parallelism. These include lambda expressions, which allow treating code as data, and default methods in interfaces, which allow interfaces to evolve while maintaining compatibility. Streams and bulk operations on collections enable a more functional, parallel style of programming. The invokedynamic bytecode instruction is enhanced to allow lambda expressions to be compiled to anonymous methods and executed efficiently by the JVM.
This document provides code examples and explanations of common programming concepts in VB.NET and C#, including comments, program structure, data types, constants, enumerations, operators, conditional statements, loops, arrays, functions, and exception handling. It compares the syntax used for these concepts in both VB.NET and C# to highlight similarities and differences between the two languages.
This document discusses software architecture and design principles. It covers topics like moving from n-tier to service-oriented architectures, SQL to ORM databases, and RAD to MVC design patterns. It also discusses SOLID principles like the single responsibility, open/closed, Liskov substitution, interface segregation and dependency inversion principles. Finally, it provides examples of applying these principles in Delphi code using interfaces and dependency injection.
Java vs. C#
The document compares Java and C# programming languages. It discusses some key differences:
1. Syntax differences such as main method signatures, print statements, and array declarations are slightly different between the two languages.
2. Some concepts are modified in C# from Java, such as polymorphism requiring the virtual keyword, operator overloading restrictions, and switch statements allowing string cases.
3. C# introduces new concepts not in Java like enumerations, foreach loops, properties to encapsulate fields, pointers in unsafe contexts, and passing arguments by reference.
This document provides an overview of new features being introduced in Java 8, with a focus on lambda expressions, default methods, and bulk data operations. It discusses the syntax and usage of lambda expressions, how they are represented at runtime using functional interfaces, and how variable capturing works. New functional interfaces being added to Java 8 are presented, including examples like Consumer and Function. The document also explores how lambda expressions are compiled, showing how invokedynamic bytecode instructions are used to dispatch lambda calls at runtime. In summary, the document serves as an introduction to key new language features in Java 8 that improve support for functional programming and parallel operations.
Vladimir Ulogov - Beyond the Loadable ModuleZabbix
Zabbix loadable module provides a great way to extend capabilities of your Zabbix implementation, but knowing how to integrate your favorite interpreter with Zabbix, will bring you further than just creating the loadable module itself.
Using Python interpreter as an example, I will review the process of such integration, point on possible pitfalls, explain on how to debug your scrips and give you more ideas on how to organize distributed data collection, using Python-Zabbix modules.
Zabbix Conference 2015
The document discusses new features in .NET Framework 4.0 including managed extensibility framework (MEF), language features like optional and named parameters, dynamic typing, variance support in generics, code contracts, parallelism support through task parallel library (TPL) and LINQ to Parallel (PLINQ). It provides an overview of the .NET framework architecture and new capabilities added at each version.
Java 8 introduces several new features that help modernize the Java platform and move it closer to parallelism. These include lambda expressions, which allow treating code as data, and default methods in interfaces, which allow interfaces to evolve while maintaining compatibility. Streams and bulk operations on collections enable a more functional, parallel style of programming. The invokedynamic bytecode instruction is enhanced to allow lambda expressions to be compiled to anonymous methods and executed efficiently by the JVM.
This document provides code examples and explanations of common programming concepts in VB.NET and C#, including comments, program structure, data types, constants, enumerations, operators, conditional statements, loops, arrays, functions, and exception handling. It compares the syntax used for these concepts in both VB.NET and C# to highlight similarities and differences between the two languages.
This document discusses software architecture and design principles. It covers topics like moving from n-tier to service-oriented architectures, SQL to ORM databases, and RAD to MVC design patterns. It also discusses SOLID principles like the single responsibility, open/closed, Liskov substitution, interface segregation and dependency inversion principles. Finally, it provides examples of applying these principles in Delphi code using interfaces and dependency injection.
Java vs. C#
The document compares Java and C# programming languages. It discusses some key differences:
1. Syntax differences such as main method signatures, print statements, and array declarations are slightly different between the two languages.
2. Some concepts are modified in C# from Java, such as polymorphism requiring the virtual keyword, operator overloading restrictions, and switch statements allowing string cases.
3. C# introduces new concepts not in Java like enumerations, foreach loops, properties to encapsulate fields, pointers in unsafe contexts, and passing arguments by reference.
Lambda expressions allow implementing functional interfaces using anonymous functions. Method references provide a shorthand syntax for referring to existing methods as lambda expressions. The Stream API allows functional-style operations on streams of values, including intermediate and terminal operations. The new Date/Time API provides a safer and more comprehensive replacement for the previous date/time classes in Java.
Programming is hard. Programming correct C and C++ is particularly hard. Indeed, both in C and certainly in C++, it is uncommon to see a screenful containing only well defined and conforming code.Why do professional programmers write code like this? Because most programmers do not have a deep understanding of the language they are using.While they sometimes know that certain things are undefined or unspecified, they often do not know why it is so. In these slides we will study small code snippets in C and C++, and use them to discuss the fundamental building blocks, limitations and underlying design philosophies of these wonderful but dangerous programming languages.
This content has a CC license. Feel free to use it for whatever you want. You may download the original PDF file from: http://www.pvv.org/~oma/DeepC_slides_oct2012.pdf
This document compares key features of the C# and Java programming languages, including differences in their type systems, generics, keywords, exceptions handling, and specific features like anonymous classes, properties, delegates, and LINQ. It outlines common conventions and pitfalls between the two languages and provides code examples to illustrate differences in generics, constraints, exceptions, and language features like using blocks and lambda expressions.
Building scalable and language independent java services using apache thriftTalentica Software
This presentation is about the key challenges of cross language interactions and how they can be overcome. We discuss the Apache Thrift as a solution and understand its principle of Operation with code snippets and examples.
This document contains the slides for a presentation on Java 8 Lambdas and Streams. The presentation will cover lambdas, including their concept, syntax, functional interfaces, variable capture, method references, and default methods. It will also cover streams. The slides provide some incomplete definitions that will be completed during the presentation. Questions from attendees are welcome. A quick survey asks about past experience with lambdas and streams.
The document provides an introduction to fundamentals of C++ programming. It discusses C++ program structure including comments, preprocessor directives, header files, the main function and return statements. It also covers data types, variables, constants, naming conventions. The compiling process and different types of errors in programming such as syntax errors, logical errors and runtime errors are described.
This document provides an overview and introduction to Language Integrated Query (LINQ) in 3 sentences or less:
LINQ allows for a common syntax to query different types of data by enabling queries across objects, XML, SQL databases and other data sources using lambda expressions, extension methods, and other new C# 3.0 features. The document outlines the LINQ architecture and demonstrates LINQ to Objects, LINQ to SQL, and LINQ to XML, showing how LINQ provides a consistent query experience across .NET data sources. Key LINQ capabilities include IntelliSense support, deferred query execution, and strong typing checked by the compiler.
This document summarizes the past, present, and future of .NET. It discusses the evolution of the .NET Framework from versions 1.0 to 4.8 and the introduction of .NET Core and .NET Standard. It also previews upcoming features in .NET 5 and beyond like init-only properties, local functions, and records. The document demonstrates some of these features and how they improve the C# language.
This document provides an overview of the CS4200 Compiler Construction course at TU Delft. It discusses the course organization, structure, and assessment. The course is split into two parts - CS4200-A which covers concepts and techniques through lectures, papers, and homework assignments, and CS4200-B which involves building a compiler for a subset of Java as a semester-long project. Students will use the Spoofax language workbench to implement their compiler and will submit assignments through a private GitLab repository.
Mixing Source and Bytecode: A Case for Compilation By Normalization (OOPSLA 2...lennartkats
Language extensions increase programmer productivity by providing concise, often domain-specific syntax, and support for static verification of correctness, security, and style constraints. Language extensions can often be realized through translation to the base language, supported by preprocessors and extensible compilers. However, various kinds of extensions require further adaptation of a base compiler's internal stages and components, for example to support separate compilation or to make use of low-level primitives of the platform (e.g., jump instructions or unbalanced synchronization). To allow for a more loosely coupled approach, we propose an open compiler model based on normalization steps from a high-level language to a subset of it, the core language. We developed such a compiler for a mixed Java and (core) bytecode language, and evaluate its effectiveness for composition mechanisms such as traits, as well as statement-level and expression-level language extensions.
This document contains slides from a lecture on Java basics. It covers:
- A brief history of Java and how it works by using bytecode and a Java Virtual Machine for platform independence.
- Java's data types including primitives and classes/objects.
- How to write a simple Java program, compile and run it, and basic program structure.
- Other basics like variables, methods, control structures, and exceptions.
The slides provide examples and explanations of core Java concepts to teach students the fundamentals of the language.
Start programming in a more functional style in Java. This is the second in a two part series on lambdas and streams in Java 8 presented at the JoziJug.
Lambda expressions, default methods in interfaces, and the new date/time API are among the major new features in Java 8. Lambda expressions allow for functional-style programming by treating functionality as a method argument or anonymous implementation. Default methods add new capabilities to interfaces while maintaining backwards compatibility. The date/time API improves on the old Calendar and Date APIs by providing immutable and easier to use classes like LocalDate.
The document summarizes the structure and contents of an Android project in Eclipse. It describes the important folders like src, gen, res, and files like AndroidManifest.xml. It explains that src contains Java source files, gen contains generated files like R.java, res contains app resources like images and layouts. It provides guidelines on code formatting, naming conventions, and best practices for organizing an Android project.
Visual Studio 2008 provides advanced development tools, debugging features, database functionality, and innovative features for quickly creating tomorrow’s cutting-edge applications across a variety of
platforms.
The document compares and contrasts the Java and C# programming languages. It summarizes that Java is not fully object-oriented as it uses primitive types, while C# makes all types objects. It also discusses various language features introduced over time, showing that C# often introduced useful features earlier than Java, such as generics and LINQ. The document provides code examples to demonstrate how tasks can be expressed more declaratively and concisely in C# compared to Java.
Presentation provides introduction and detailed explanation of the Java 8 Lambda and Streams. Lambda covers with Method references, default methods and Streams covers with stream operations,types of streams, collectors. Also streams are elaborated with parallel streams and benchmarking comparison of sequential and parallel streams.
Additional slides are covered with Optional, Splitators, certain projects based on lambda and streams
The document provides an overview of C# and .NET concepts including:
- C# versions from 1.0 to 5.0 and new features introduced in each version such as generics, LINQ, lambda expressions etc.
- .NET Framework concepts such as Common Language Runtime (CLR), Just-In-Time (JIT) compilation, garbage collection.
- Value types vs reference types, stack vs heap memory.
- Language Integrated Query (LINQ) and expression trees.
- Various C# language concepts are demonstrated through code examples.
C# is an object-oriented programming language where programs consist of objects that interact through methods. The document discusses C# program structure, sample code, how code is executed, and data types in C#. It provides details on value types like integers and floats, reference types like strings, and pointer types. Key features of C# include being case sensitive and requiring semicolons. The document also covers operators, variables, and keywords in C#.
A simple document emphasizing the reasons behind evolution of .Net technology and how it simplified the yester-decade's technology issues. This document is simplified and teaches a lame man as why & how .net framework gained importance and how it is ruling the roost.
The document summarizes new features in .NET 3.5 including implicitly typed local variables, automatic properties, object and collection initializers, extension methods, lambda expressions, query syntax, and anonymous types. Key features are variables that infer type from initialization value, simplified property declarations, initializing objects and collections in a single statement, extending types without inheritance, lambda functions, LINQ query syntax, and anonymous class types without names.
Lambda expressions allow implementing functional interfaces using anonymous functions. Method references provide a shorthand syntax for referring to existing methods as lambda expressions. The Stream API allows functional-style operations on streams of values, including intermediate and terminal operations. The new Date/Time API provides a safer and more comprehensive replacement for the previous date/time classes in Java.
Programming is hard. Programming correct C and C++ is particularly hard. Indeed, both in C and certainly in C++, it is uncommon to see a screenful containing only well defined and conforming code.Why do professional programmers write code like this? Because most programmers do not have a deep understanding of the language they are using.While they sometimes know that certain things are undefined or unspecified, they often do not know why it is so. In these slides we will study small code snippets in C and C++, and use them to discuss the fundamental building blocks, limitations and underlying design philosophies of these wonderful but dangerous programming languages.
This content has a CC license. Feel free to use it for whatever you want. You may download the original PDF file from: http://www.pvv.org/~oma/DeepC_slides_oct2012.pdf
This document compares key features of the C# and Java programming languages, including differences in their type systems, generics, keywords, exceptions handling, and specific features like anonymous classes, properties, delegates, and LINQ. It outlines common conventions and pitfalls between the two languages and provides code examples to illustrate differences in generics, constraints, exceptions, and language features like using blocks and lambda expressions.
Building scalable and language independent java services using apache thriftTalentica Software
This presentation is about the key challenges of cross language interactions and how they can be overcome. We discuss the Apache Thrift as a solution and understand its principle of Operation with code snippets and examples.
This document contains the slides for a presentation on Java 8 Lambdas and Streams. The presentation will cover lambdas, including their concept, syntax, functional interfaces, variable capture, method references, and default methods. It will also cover streams. The slides provide some incomplete definitions that will be completed during the presentation. Questions from attendees are welcome. A quick survey asks about past experience with lambdas and streams.
The document provides an introduction to fundamentals of C++ programming. It discusses C++ program structure including comments, preprocessor directives, header files, the main function and return statements. It also covers data types, variables, constants, naming conventions. The compiling process and different types of errors in programming such as syntax errors, logical errors and runtime errors are described.
This document provides an overview and introduction to Language Integrated Query (LINQ) in 3 sentences or less:
LINQ allows for a common syntax to query different types of data by enabling queries across objects, XML, SQL databases and other data sources using lambda expressions, extension methods, and other new C# 3.0 features. The document outlines the LINQ architecture and demonstrates LINQ to Objects, LINQ to SQL, and LINQ to XML, showing how LINQ provides a consistent query experience across .NET data sources. Key LINQ capabilities include IntelliSense support, deferred query execution, and strong typing checked by the compiler.
This document summarizes the past, present, and future of .NET. It discusses the evolution of the .NET Framework from versions 1.0 to 4.8 and the introduction of .NET Core and .NET Standard. It also previews upcoming features in .NET 5 and beyond like init-only properties, local functions, and records. The document demonstrates some of these features and how they improve the C# language.
This document provides an overview of the CS4200 Compiler Construction course at TU Delft. It discusses the course organization, structure, and assessment. The course is split into two parts - CS4200-A which covers concepts and techniques through lectures, papers, and homework assignments, and CS4200-B which involves building a compiler for a subset of Java as a semester-long project. Students will use the Spoofax language workbench to implement their compiler and will submit assignments through a private GitLab repository.
Mixing Source and Bytecode: A Case for Compilation By Normalization (OOPSLA 2...lennartkats
Language extensions increase programmer productivity by providing concise, often domain-specific syntax, and support for static verification of correctness, security, and style constraints. Language extensions can often be realized through translation to the base language, supported by preprocessors and extensible compilers. However, various kinds of extensions require further adaptation of a base compiler's internal stages and components, for example to support separate compilation or to make use of low-level primitives of the platform (e.g., jump instructions or unbalanced synchronization). To allow for a more loosely coupled approach, we propose an open compiler model based on normalization steps from a high-level language to a subset of it, the core language. We developed such a compiler for a mixed Java and (core) bytecode language, and evaluate its effectiveness for composition mechanisms such as traits, as well as statement-level and expression-level language extensions.
This document contains slides from a lecture on Java basics. It covers:
- A brief history of Java and how it works by using bytecode and a Java Virtual Machine for platform independence.
- Java's data types including primitives and classes/objects.
- How to write a simple Java program, compile and run it, and basic program structure.
- Other basics like variables, methods, control structures, and exceptions.
The slides provide examples and explanations of core Java concepts to teach students the fundamentals of the language.
Start programming in a more functional style in Java. This is the second in a two part series on lambdas and streams in Java 8 presented at the JoziJug.
Lambda expressions, default methods in interfaces, and the new date/time API are among the major new features in Java 8. Lambda expressions allow for functional-style programming by treating functionality as a method argument or anonymous implementation. Default methods add new capabilities to interfaces while maintaining backwards compatibility. The date/time API improves on the old Calendar and Date APIs by providing immutable and easier to use classes like LocalDate.
The document summarizes the structure and contents of an Android project in Eclipse. It describes the important folders like src, gen, res, and files like AndroidManifest.xml. It explains that src contains Java source files, gen contains generated files like R.java, res contains app resources like images and layouts. It provides guidelines on code formatting, naming conventions, and best practices for organizing an Android project.
Visual Studio 2008 provides advanced development tools, debugging features, database functionality, and innovative features for quickly creating tomorrow’s cutting-edge applications across a variety of
platforms.
The document compares and contrasts the Java and C# programming languages. It summarizes that Java is not fully object-oriented as it uses primitive types, while C# makes all types objects. It also discusses various language features introduced over time, showing that C# often introduced useful features earlier than Java, such as generics and LINQ. The document provides code examples to demonstrate how tasks can be expressed more declaratively and concisely in C# compared to Java.
Presentation provides introduction and detailed explanation of the Java 8 Lambda and Streams. Lambda covers with Method references, default methods and Streams covers with stream operations,types of streams, collectors. Also streams are elaborated with parallel streams and benchmarking comparison of sequential and parallel streams.
Additional slides are covered with Optional, Splitators, certain projects based on lambda and streams
The document provides an overview of C# and .NET concepts including:
- C# versions from 1.0 to 5.0 and new features introduced in each version such as generics, LINQ, lambda expressions etc.
- .NET Framework concepts such as Common Language Runtime (CLR), Just-In-Time (JIT) compilation, garbage collection.
- Value types vs reference types, stack vs heap memory.
- Language Integrated Query (LINQ) and expression trees.
- Various C# language concepts are demonstrated through code examples.
C# is an object-oriented programming language where programs consist of objects that interact through methods. The document discusses C# program structure, sample code, how code is executed, and data types in C#. It provides details on value types like integers and floats, reference types like strings, and pointer types. Key features of C# include being case sensitive and requiring semicolons. The document also covers operators, variables, and keywords in C#.
A simple document emphasizing the reasons behind evolution of .Net technology and how it simplified the yester-decade's technology issues. This document is simplified and teaches a lame man as why & how .net framework gained importance and how it is ruling the roost.
The document summarizes new features in .NET 3.5 including implicitly typed local variables, automatic properties, object and collection initializers, extension methods, lambda expressions, query syntax, and anonymous types. Key features are variables that infer type from initialization value, simplified property declarations, initializing objects and collections in a single statement, extending types without inheritance, lambda functions, LINQ query syntax, and anonymous class types without names.
Microsoft started developing the .NET Framework in the late 1990s. It has released major versions 1.0 through 4.5, with each adding new features and functionality. The .NET Framework is a development platform that supports multiple programming languages and enables building applications on Windows and web services. It provides a common language runtime, class libraries, and development tools to simplify application development.
Part 5 create sequence increment value using negative valueGirija Muscut
A sequence was created in SQL called seq1 that increments by -2, has a maximum value of 8 and minimum of 0. When nextval is called on seq1, it returns the values 8, 6, 4, 2, 0, then cycles back to 8 since it hits the minimum value and is set to cycle.
This document discusses a tutorial for beginners on loading and displaying images in a picture box control using Visual BASIC .NET 2012. It includes a link to a YouTube video tutorial, notes that the tutorial is for complete beginners with no programming experience, and provides sample code to load an image file and change the image on click by loading from a resource using two picture box controls, setting their size modes.
This document describes the development of a Plexus system for connecting individuals through shared contacts and subscriptions.
Part One introduces the concept of a "Comfy Chair" for storing connections. Part Two outlines the Plexus architecture, which uses a shared database of connections and APIs for listening, sharing, and requesting contacts. Part Three briefly mentions the idea of "Social2.0" and concludes by thanking the reader.
This document provides information about the LISP and PROLOG programming languages. It defines LISP as a list processing language invented in 1958 that manipulates lists. PROLOG is described as a declarative language where programs are expressed in terms of relations. Examples of simple programs are provided in both LISP using recursion and factorials, and in PROLOG using logic rules. The document outlines some applications and advantages of each language such as artificial intelligence and natural language processing for LISP and expert systems for PROLOG. Similarities and differences between the languages are also summarized.
Part 8 add,update,delete records using records operation buttons in vb.netGirija Muscut
This document discusses code for adding, updating, and deleting records from a database using buttons in VB.NET. It provides code examples for an Add New button that adds a new record to a binding source, an Update button that validates changes and updates all records in a table adapter, and a Delete button that removes the current record and updates the table if confirmed by the user. It also notes that an event handler is needed when leaving a row to save new records added with the Add New button.
Cognitive information science studies how the human mind processes information in the digital age. It draws on theories of cognition from cognitive science and methods from information science to understand challenges like information overload. Throughout history, humans have developed external tools like writing to manage information and enhance cognitive abilities. Now, information technologies are dramatically changing how people process information. Cognitive information science aims to understand these changes and ensure information systems are designed to complement human cognition.
The eXtensible Markup Language (XML) is not a language itself, but rather a meta-language used to create markup languages to suit whatever purpose you may have. In this session you will learn the basic rules of XML and the philosophy behind it. You will also be introduced to the basics of the popular XML editor, oxygen.
Making Information Usable: The Art & Science of Information DesignHubbard One
The document discusses principles of effective information design, including delivering valuable, actionable, and trusted information to the right audience. It covers techniques like using icons, color, and infographics to visually organize and communicate complex data and relationships. The document also discusses streamlining content by showing the most important information, using visual hierarchy and intuitive interactivity. It concludes by discussing responsive design and how design should adapt based on screen size, platform, and orientation.
Python Tools for Visual Studio: Python na Microsoftovom .NET-uNikola Plejic
The document discusses Python, Python Tools for Visual Studio, the Dynamic Language Runtime (DLR) and IronPython. It provides an introduction to the Python programming language and its history. It also discusses how Python Tools for Visual Studio integrates Python with Visual Studio, allowing features like IntelliSense, debugging and profiling. The DLR is explained as a library that makes hosting dynamic languages on the .NET Common Language Runtime easier. IronPython is one such dynamic language hosted on DLR.
Pioneers of Information Science in Europe: The Oeuvre of Norbert HenrichsWolfgang Stock
In this presentation we discuss the works and influence of Norbert Henrichs (born 1935), a pioneer of Information Science in Europe. In the context of philosophy documentation, Henrichs developed in the 1960s a dictionary-independent method of indexing: the Text-Word Method. This method works exclusively with the term material of the documents to be indexed. It starts by using a variant of syntactic indexing, viz. the formation of thematic chains. Documents indexed via the Text-Word Method form the basis for relatively ballast-free information retrieval, but also for studies in the history of ideas. Henrichs was a leading contributor to the formulation and realization of the German Information & Documentation (I&D) program (1974 – 1977). This widely noted political program planned for the world’s entire scientific and technical literature to be made available in 20 specialized information centers. Henrichs served as scientific executive director of the central German infrastructure provision within the I&D program, the “Society for Information and Documentation” (GID), from 1980 to 1985. Over the course of the 1980s, the I&D program broke down—mainly due to a lack of financing. At the Heinrich-Heine-University in Düsseldorf, Henrichs successfully developed a curriculum for information science, which—typically for Germany in the 1980s and 1990s—had no strong ties to either library science or computer science.
C++ open positions and popularity remain high as media has recently, and there is a reason for that: from the many languages and platforms that developers have available today, C++ features uncontested capabilities in power and performance, allowing innovation outside the box (just think on action games, natural user interfaces or augmented reality, to mention some). In this talk you’ll see the new features and technologies that are coming with Visual C++ vNext, helping you build compelling applications with a renewed developer experience. Don’t miss it!!
The document discusses how to work with binding navigators and reports in VB.NET forms. It explains that to display a binding navigator, drag it from the toolbox onto the form design surface. The binding navigator must be configured to the appropriate table binding source to function properly at runtime. The document also provides steps for creating reports from databases in VB.NET, including designing the report layout with text boxes, tables, and columns and viewing the report using a report viewer control.
Debugging in visual studio (basic level)Larry Nung
This document provides an overview of debugging techniques in Visual Studio, including how to set breakpoints, tracepoints, step through code, edit variable values, debug with object IDs, set the next statement, and use edit and continue. Breakpoints can be set, deleted, disabled, enabled, and filtered. Stepping allows debugging line-by-line through code using step into, step over, and step out commands. Variables can be edited during debugging. Edit and continue enables editing code while debugging.
The document provides an overview of lists in Prolog, including:
1) How to define and make lists in Prolog code using brackets [];
2) Examples of nested lists and treating list tails as single objects;
3) The built-in operator "|" for separating list heads and tails;
4) The member/2 predicate for checking if an element is in a list; and
5) Definitions of predicates like concat/3 for concatenating lists and len/2 for calculating a list's length.
This document provides an overview of how information technology is driving transformation. It discusses how IT is a general purpose technology that impacts all aspects of the economy. As IT continues to get better, faster, and cheaper, it enables new business models, innovations, and drives productivity growth. The world is becoming an "information rainforest" as data and intelligence become ubiquitous, accessible from any device in real-time. While some challenges remain, IT opportunities will continue as adoption increases.
Part2 database connection service based using vb.netGirija Muscut
The document discusses creating a service-based database and dataset in VB.NET. It is a 5 step process: 1) Add a dataset to the project and set the .MDF file's copy property. 2) Add a table to the database using server explorer. 3) Enter record values by right clicking the table. 4) Configure the dataset as a data source and drag columns onto a form. 5) Copy the .MDF file path into the app.config connection string to connect the form to the database.
The document discusses new features in Visual Studio 2010 and .NET Framework 4.0, including an improved IDE, new language features in C# 4.0, and the Managed Extensibility Framework. It provides examples of using Parallel LINQ, named and optional parameters in C#, and asynchronous programming in F#.
Visual Studio 2010 includes many new features to improve the developer experience such as breakpoint grouping, parallel debugging tools, and a more extensible architecture. It can be used both as a robust code editor and as a platform for extensions. .NET 4.0 focuses on four main areas: better component integration, improved performance through parallelism and concurrency, enhanced language features, and reducing bugs. It includes new libraries like PLINQ and TPL for parallel programming and MEF for extensibility.
This document summarizes features in Visual Studio 2010, .NET 4, ASP.NET 4 and related technologies. It discusses general framework updates like the new client profile and side-by-side execution. Base class library updates like new types and methods are covered. Language innovations in C# 4 like dynamic typing and covariance/contravariance are summarized. The document also provides overviews of No-PIA for improved COM interop, WPF improvements, Parallel Extensions, and the Dynamic Language Runtime.
This document summarizes the new features in .NET 4.0, including improvements to the CLR, base class library, languages, and frameworks. Key additions include support for parallel programming with task parallel library and PLINQ, a dynamic language runtime for dynamic languages like IronPython, code contracts for design by contract, and the managed extensibility framework for extensibility. Frameworks like WPF, Windows Workflow, and ASP.NET are also updated with new features.
Visual Studio 2010 includes many new features to improve the development experience for programmers. It targets different audiences with various editions that have different feature sets. Key new features include improvements to debugging, web application development, and support for additional programming languages like F#.
The document provides an introduction to Visual Studio .NET and the .NET framework. It discusses what .NET is, the core components including the .NET framework and common language runtime. It also covers Visual Basic .NET and C#, describing new features and how they differ from previous versions. The document aims to help developers understand the transition from older technologies like VB6 to the new .NET platform.
The document provides an introduction to Visual Studio.NET and the .NET framework. It discusses what .NET is, the core components including the .NET framework and common language runtime. It also summarizes the main languages - C# and Visual Basic.NET - and tools in Visual Studio.NET for developing .NET applications.
This document provides an overview and list of C# tutorials, including introductions to C# code, system members, arrays, enums, value types, constructors, static keywords, inheritance, polymorphism, interfaces, delegates, events, multithreading, and networking. It also discusses using the C# compiler and command line arguments. The tutorials cover basic C# syntax and programming concepts.
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0Thomas Conté
This document summarizes the history and features of Microsoft's .NET Framework. It discusses the major releases from .NET 1.0 in 2002 through the current .NET 4.0. For each release, it highlights new capabilities like Windows Forms, ASP.NET, WPF, WCF, and LINQ. It also summarizes new areas in .NET 4.0 like parallel computing, the dynamic language runtime, and improvements to ADO.NET, Entity Framework, and Windows Workflow Foundation.
T4 is a text templating engine that allows generating text output from templates with input. It is used across the Microsoft stack for code generation scenarios. T4 templates use directives like <#@ #> and control blocks like <# #> to define template behavior. Templates can be designed for use at design-time in Visual Studio or as precompiled runtime templates. Microsoft extensively uses T4 for scenarios like ASP.NET MVC and Entity Framework code generation. Care must be taken when extending or modifying generated code to avoid losses during regeneration.
T4 is a template processing engine that allows generating text files like source code from templates. It takes domain models as input, such as class diagrams or database metadata, and uses these to generate code outputs through T4 templates. The templates use T4 syntax including processing directives, text blocks, code blocks, and expression blocks to generate the target files. T4 is commonly used in Visual Studio for code generation scenarios like generating Entity Framework classes or ASP.NET MVC views from models. It provides a way to describe models and have code generated automatically from those descriptions.
This document describes several new features and improvements in Visual Studio 2010 across various areas such as debugging, parallelism, web development, and extensibility. Some key highlights include improved debugging tools for breakpoint labeling, searching and importing/exporting, a redesigned threading window, support for debugging mini-dumps, and enhancements to web, SharePoint and ASP.NET MVC tooling.
This document outlines a course on .NET programming with VB.NET. It introduces key .NET concepts like the Common Language Runtime (CLR) and assemblies. It describes how VB.NET code is compiled to MSIL and executed by the CLR. The course covers building classes and objects in VB.NET, object-oriented programming fundamentals, working with .NET framework classes, creating Windows and web forms applications, and data access with ADO.NET.
This document provides an introduction and overview of .NET including:
1) It describes what .NET is, the .NET framework, advantages of .NET and the CLR, and Visual Studio 2005.
2) It outlines some of the main components of the .NET framework including namespaces, classes, and support for web standards.
3) It compares C# and VB.NET programming languages and highlights some differences in syntax and features.
This document provides an introduction and overview of .NET including:
1) It describes what .NET is, the .NET framework, advantages of .NET and the CLR, and Visual Studio 2005.
2) It outlines some of the main components of the .NET framework including namespaces, classes, and support for web standards.
3) It compares C# and VB.NET programming languages and highlights some differences in syntax and features.
This document provides an introduction and overview of .NET including:
1) It describes what .NET is, the .NET framework, advantages of .NET and the CLR, and Visual Studio 2005.
2) It outlines some of the main components of the .NET framework including namespaces, classes, and support for web standards.
3) It compares C# and VB.NET programming languages and highlights some differences in syntax and features.
This document provides an introduction and overview of .NET including:
1) It describes what .NET is, the .NET framework, advantages of .NET and the CLR, and Visual Studio 2005.
2) It outlines some of the main components of the .NET framework including namespaces, classes, and support for web standards.
3) It compares C# and VB.NET programming languages and highlights some differences in syntax and features.
This document discusses how domain-specific languages (DSLs) can be used to make Java code more readable and maintainable. It describes different types of DSLs including external and internal DSLs built with Java and scripting languages. It also discusses JetBrains MPS, a language workbench that provides a new approach for building DSLs without relying on a specific output language. DSLs allow raising the level of abstraction and separating stable and changing parts of code. Fluent APIs and internal DSLs in Java provide readability benefits, while scripting languages allow further readability through features like closures and list literals.
The document summarizes the evolution and future directions of the C# programming language. It discusses new features in recent versions such as generics in C# 2.0, language integrated query in C# 3.0, and dynamic programming in C# 4.0. It also covers trends toward declarative programming, concurrency, and compiler as a service. The presentation provides examples and demos of new C# 4.0 features like dynamic typing, optional and named parameters, and covariance and contravariance.
Similar to Visual Studio 2010 and .NET 4.0 Overview (20)
This document discusses GraphQL and compares it to REST architectures. It begins by explaining REST and some of its limitations. Then it introduces GraphQL, describing how it allows clients to fetch data through queries with one request. The document demonstrates GraphQL concepts like schemas, queries, mutations, subscriptions, and resolvers through examples. It also discusses common GraphQL architectures and reasons why GraphQL is an improvement over REST APIs.
Elasticsearch is a free and open source distributed search and analytics engine built on Apache Lucene. It allows for easy scaling, a RESTful API, and supports advanced search features like full text search, facets, fuzzy search, and autocomplete. Elasticsearch can be used with .NET through the NEST client, which maps requests and responses to strongly typed objects.
Techorama - Evolvable Application Development with MongoDBbwullems
The document discusses evolvable application development with MongoDB. It provides an overview of MongoDB, including that it is a general purpose, document oriented database using JSON syntax. It discusses how MongoDB allows flexibility in schema design and supports evolutionary changes. The document then covers various aspects of using MongoDB like modeling data, CRUD operations, optimizations like indexing, and aggregation capabilities. It notes some benefits like scalability and ease of use but also drawbacks like lack of data integrity checks. It concludes with a list of additional topics not covered like security, references, write concerns, and sharding.
Centralized Source Control Systems are so 90’s. Forget Team Foundation Server, Subversion,… Today it’s all about Distributed Source Control systems. Working with many developers on the same project, using lots of branches, managing versions and releases will no longer be a painful experience.
Let’s have a (first) look together at GIT and GITHub and how this will simplify your life as a .NET developer.
This session is an introduction to the weird side of JavaScript, and it definitely has a weird side! .NET developers will find a lot of intriguing "features" when they begin to write code in the world's most widely used language. Join us to learn about all the gotchas to watch out for and discover some of the great functionality that JavaScript has to offer…
The document describes a Windows Phone application called TFS Monitor that allows users to monitor, track, and manage projects and data from their mobile phone through an interface connected to Team Foundation Server. Key features highlighted include getting real-time updates on project status, builds, work items and source control changes, as well as notifications of events. The application allows viewing and managing team projects, tracking bugs and tasks, monitoring builds, and viewing build details. It is available for free download from the Marketplace.
Caliburn.Micro is an MVVM framework that aims to simplify building WPF, Silverlight, and Windows Phone applications using common UI patterns like MVVM. It provides features like automatic view-viewmodel resolution through conventions, an event aggregator for loose coupling between components, window management, and coroutines for asynchronous programming. The framework handles common tasks like UI lifecycle management and removes much of the boilerplate code associated with building MVVM applications.
Building an enterprise app in silverlight 4 and NHibernatebwullems
This document discusses building an enterprise application using Silverlight, NHibernate, and following CQRS and MVVM patterns. It recommends using OData to implement the query model in CQRS and NHibernate for the domain model. It then covers implementing the front-end using MVVM principles in Silverlight, including using view models, commands, and an event aggregator for communication between view models. Demo code is provided for various aspects like OData queries, NHibernate usage, implementing a base view model, locator pattern, MEF, and unit testing view models.
1) Convention over Configuration is a software design paradigm that seeks to decrease the number of decisions developers need to make by introducing conventions or standard ways of doing things. This gains simplicity without necessarily losing flexibility.
2) In .NET, configuration was historically used for many things like settings, but this led to problems like "XML Hell" with too much configuration.
3) .NET 4.0 and other frameworks are embracing conventions over configuration, by standardizing naming, structure, and other conventions to remove the need for extensive configuration files and code.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
20 Comprehensive Checklist of Designing and Developing a WebsitePixlogix Infotech
Dive into the world of Website Designing and Developing with Pixlogix! Looking to create a stunning online presence? Look no further! Our comprehensive checklist covers everything you need to know to craft a website that stands out. From user-friendly design to seamless functionality, we've got you covered. Don't miss out on this invaluable resource! Check out our checklist now at Pixlogix and start your journey towards a captivating online presence today.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
12. New Visual Studio 2010 Features… Generate From Usage HTML Snippets Breakpoint Grouping Parallel Tasks Window New Look & Feel Extensible Test Runner Dynamic Data Tooling Click-Once Enhancements for Office Highlight References WPF-based Editor Breakpoint Labeling MVC Tooling Call Hierarchy Improved WPF Tooling Sharepoint Tooling Historical Debugging Web Deploy Inline Call Tree Quick Search Concurrency Profiler Breakpoint Import/Export Document Map Margin 64-bit Mixed-Mode Parallel Stacks Window Minidump Debugging Improved Multi-Monitor JQueryIntellisense web.config Transformation
13. What’s changed in VS.NET? Full WPF IDE (including code editors) Multi-targeting Frameworks: 2.0, 3.0, 3.5, 4.0 General: F# development F# Explorer No dynamic help No object test bench Design Time: Call Hierarchy Explorer Generate from usage Live semantic errors Intellisense Completion vs. Suggestion Mode
14. What’s changed in VS.NET? (Cont.) Enhanced editors and project templates. ASP.NET WPF Silverlight WYSIWYG Editors Entity Framework Architecture Modeling UML Editors Debugging Intellitrace
15. What’s changed in VS.NET? (Cont.) Extensibility Extension Manager MEF
16. Highlighting References CTRL+SHIFT+DOWN ARROW (forward) CTRL+SHIFT+UP ARROW (reverse) Automatic highlighting of a symbol Can be used with declarations, references, and many other symbols
17. Navigate To CTRL + , Provides search-as-you-type support for symbols Enables quick searching based on case usage
18. Docking Windows New Guide Diamond Windows can be docked anywhere Can now pull document windows outside the IDE
19. Call Hierarchy (C# only) CTRL + K, T Used to see calls to and from a method Great way to see calls at design time
20. Zoom CTRL + Mouse Wheel New feature that enhances the size of your code Very useful for pair programming (or similar scenarios)
21. Generate from Usage Used to automatically create stub code Enables you to use classes and members before you define them
22. Intellisense Suggestion Mode CTRL + ALT + SPACE Used when classes and members are used before they are defined Helps to reduce situations where IntelliSense inserts unintended text into the editor
23. Breakpoints Can add labels to breakpoints All breakpoints are now searchable Import / Export now available
28. Base Class Library Core types and services Common Language Runtime Assembly load and execution
29. Base Class Library Improvements Numerics BigInteger, Complex Data Structures Tuple SortedSet<T>, ISet<T> I/O Memory-Mapped File Unified Cancellation Model
30. .NET 4.0 New Runtime First new .NET runtime since 2.0 Side by Side Execution Functional Programming – F# Moving towards language parity – C#/VB Dynamic Language Runtime(DLR) Co- and Contra- Variance Code Contracts Parallel Computing
31. From There to Here… SP1 3.5 3.0 .NET 1.0 .NET 1.1 .NET 2.0 .NET 4 2002 2003 2010 2005-08 CLR 1.0 CLR 1.1 CLR 2.0 CLR 4
33. Functional Programming – F# F# is a functional programming language that runs on top of .NET Function is a first class citizen of a program General PurposeLanguage Important domains Scientific data analysis, data mining, domain-specificmodeling,… open System.IO openSystem.Collections.Generic letreadAllLines(file) = useinp = File.OpenText file let res = new List<_>() while not(inp.EndOfStream) do res.Add(inp.ReadLine()) res.ToArray()
41. Optional and Named Parameters Optional parameters publicStreamReaderOpenTextFile( string path, Encodingencoding, booldetectEncoding, intbufferSize); publicStreamReaderOpenTextFile( string path, Encodingencoding = null, booldetectEncoding = true, intbufferSize = 1024); Named argument OpenTextFile("foo.txt", Encoding.UTF8); OpenTextFile("foo.txt", Encoding.UTF8, bufferSize: 4096); Arguments evaluated in order written Named arguments can appear in any order Named arguments must be last OpenTextFile( bufferSize: 4096, path: "foo.txt", detectEncoding: false); Non-optional must be specified
45. Ceremony in C# 3.0 Ugly COM Interop and the ever-present “ref Missing.Value” var word = newWord.Application(); word.Documents.Add(ref Missing.Value, ref Missing.Value, ref Missing.Value, ref Missing.Value);
49. Ceremony in VB 9 Backing fields for properties are explicit Privatem_nameAs String Public Property Name() As String Get Name = m_name End Get Set(ByValvalueAs String) m_name = value End End Property
50. Ceremony in VB 9 Popularity of lambda-based libraries cause problems for VB developers SubMyMethod() LambdaCall(Function(i) TempMethod(i) End Function) End Sub FunctionTempMethod(ByValparamasInteger) As Object Console.WriteLine(param) Return Nothing End Function Introduction of temporary functions “Hacks” since statement lambdas not supported
51. Ceremony in VB 9 Line continuations must be specified by the developer SomeLongMethodCall(firstParam, _ secondParam, _ thirdParam, _ fourthParam, _ fifthParam)
52. Ceremony in VB 9 Creating collections takes a lot of code Dimnames = NewList(Of String) names.Add("Jason") names.Add("Drew") names.Add("Jonathan")
59. Ceremony in C# 3.0 Dynamic Language interop is painful Calculator calc = GetCalculator(); int sum = calc.Add(10, 20);
60. Ceremony in C# 3.0 Dynamic Language interop is painful object calc = GetCalculator(); TypecalcType = calc.GetType(); object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, new object[] { 10, 20 }); int sum = Convert.ToInt32(res);
61. Ceremony in C# 3.0 Dynamic Language interop is painful ScriptObject calc = GetCalculator(); object res = calc.Invoke("Add", 10, 20); int sum = Convert.ToInt32(res);
62. Essence in C# 4.0 Dynamic Language interop doesn’t have to be painful! Statically typed to be dynamic dynamic calc = GetCalculator(); int sum = calc.Add(10, 20); Dynamic method invocation Dynamic conversion
63. Dynamically Typed Objects Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); object calc = GetCalculator(); TypecalcType = calc.GetType(); object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, newobject[] { 10, 20 }); int sum = Convert.ToInt32(res); ScriptObject calc = GetCalculator(); object res = calc.Invoke("Add", 10, 20); int sum = Convert.ToInt32(res); Statically typed to be dynamic dynamic calc = GetCalculator(); int sum = calc.Add(10, 20); Dynamic method invocation Dynamic conversion
67. Dynamic Language Runtime Provides a common implementation and interoperation substrate for dynamic languages, similar to what the Common Language Runtime and Common Type System provide for statically typed languages Developed for IronPython and IronRuby Included in .NET 4.0 as part of the runtime and type system (e.g. C# 4 knows about the DLR IDynamicObject convention)
71. Co- and Contra-variance .NET arrays are co-variant string[] strings = GetStringArray(); Process(strings); …but not safelyco-variant void Process(object[] objects){ … } void Process(object[] objects) { objects[0] = "Hello"; // Ok objects[1] = newButton(); // Exception! } Until now, C# generics have been invariant List<string> strings = GetStringList(); Process(strings); C# 4.0 supports safe co- and contra-variance void Process(IEnumerable<object> objects) { // IEnumerable<T> is read-only and // therefore safely co-variant } void Process(IEnumerable<object> objects) { … }
72. Safe Co- and Contra-variance publicinterfaceIEnumerable<out T> { IEnumerator<T> GetEnumerator(); } out= Co-variantOutput positions only Can be treated asless derived publicinterfaceIEnumerator<out T> { T Current { get; } boolMoveNext(); } IEnumerable<string> strings = GetStrings(); IEnumerable<object> objects = strings; in= Contra-variantInput positions only publicinterfaceIComparer<in T> { int Compare(T x, T y); } Can be treated asmore derived IComparer<object> objComp = GetComparer(); IComparer<string> strComp = objComp;
73. Generic co- and contravariance If T appears only as an output, it’s safe to passX<TDerived> for X<T> We call this covariance If T appears only as an input, it’s safe to passX<TBase> for X<T> We call this contravariance
74. Fixing The Type System… Covariance and Contravariance… sounds complicated… But it’s not! sort of…
75. Fixing The Type System… How are generic types “broken” today? class Animal { } class Sheep : Animal { } void Speak(IEnumerable<Animal> animals) { // Do something with Animals } Not Allowed: IEnumerable<Animal> != IEnumerable<Sheep> var sheep = new List<Sheep>(); Speak(sheep);
79. Design By Contract Code Contracts introduce a way to specify contractual information that is not represented by a method or type’s signature alone.
80. Code Contracts What does it expect? (Preconditions) Contract.Requires() What does it guarantee? (Postconditions) Contract.Ensures() What does it maintain? (Invariants) Contract.Invariant()
81. A Contract contains… Pre-conditions - must be true before public Rational(int numerator, int denominator) { Contract.Requires(denominator > 0); … } Post-conditions - must be true after public string GetPassword() { Contract.Ensures(Contract.Result<string>() != null); … return password; }
82. A Contract contains… Invariants - must always be true [ContractInvariantMethod] protectedvoidObjectInvariant() { Contract.Invariant(denominator > 0); }
83. Let’s Fix It For Once And All! Design-by-Contract meets .NET! stringGetDescription(intx) { Contract.Requires( 0 < x ); Contract.Ensures(Contract.Result<string>()!=null); … }
96. Additional operators for parallel operationsfrom n in names.AsParallel().WithDegreeOfParallelism(ProcessorsToUse.Value) where n.Name.Equals(queryInfo.Name, StringComparison.InvariantCultureIgnoreCase) && n.State == queryInfo.State && n.Year >= yearStart && n.Year <= yearEnd orderbyn.Year ascending select n;
97. Declarative Data Parallelism Parallel LINQ-to-Objects (PLINQ) Built on top of Tasks Enables LINQ devs to leverage multiple cores Fully supports all .NET standard query operators Minimal impact to existing LINQ model var q = from p in people wherep.Name == queryInfo.Name && p.State == queryInfo.State && p.Year >= yearStart && p.Year <= yearEnd orderbyp.Yearascending select p; .AsParallel()
98. Structured Parallelism Parallel class static (overloaded) methods helper methods to create/work with Tasks encapsulates common patterns
101. Managed Extensibility Framework? The Managed Extensibility Framework (MEF) is a new libraryin the .NET Framework that enables greater reuse of applications and components. Using MEF, .NET applications can make the shift from being statically compiled to dynamically composed
111. Conclusion Visual Studio 2010 and .NET 4.0 is a major release Essence vsCeremony Generic types are no longer “broken” Design by Contract Parallel Developmentbecomes easy
Editor's Notes
About me
One of the coolest new features that you don’t have to do anything to get: Reference Highlighting. When you click on a symbol (variable name, method name, etc…) the IDE will automatically highlight all the references to that symbol.The best part is you can navigate between the highlighted references! NOTE: For demo info, go here-> http://blogs.msdn.com/zainnab/archive/2010/01/18/how-to-use-reference-highlighting.aspx
Menu: Edit -> Navigate ToThe new Navigate To dialog allows you to search for symbols by narrowing the search as you type. But it doesn’t stop there! If you use Pascal Case for your symbols then you can use just the upper-case letters to search.NOTE: For demo info, go here-> http://blogs.msdn.com/zainnab/archive/2010/01/20/how-to-use-navigate-to-vstiptool0006.aspx
The docking guides are very much improved over the previous experience with an updated Guide Diamond. But that’s not the best part…You can NOW FINALLY pull document windows out of the IDE! NOTE: This demo is very straightforward simply dock and undock windows then pull a document tab out of the IDE.
For the C# folks this is one heck of a great tool: Call Hierarchy. It allows you to "visualize all calls to and from a selected method, property, or constructor". To see how it works just right-click on any method, property, or constructor in the Editor and select View Call Hierarchy.It not only allows you to visualize calls To and From but you can Go to references, copy code, and even rearrange the view in the hierarchy.NOTE: Normally you can just stick to right-clicking a method in C# and choosing NOTE: For demo info, go here-> http://blogs.msdn.com/zainnab/archive/2010/01/19/using-the-call-hierarchy-c-only-vstiptool0005.aspx
This is the first of the set of enhancements for agile programming. In pair programing scenarios, you often have two people looking at one set of code at the same time. When you want to focus in on a set of code to make it easier to read you can now just use CTRL + Mouse Wheel to zoom your text.NOTE: This demo is very simple just show zooming behavior. Pair programming is the reason given here but this is also very useful for just making code easier to read when you need it.
The idea behind this feature is simple, it allows you to use classes and members before you define them. Why would you want to do that? Well, Test Driven Development folks like to use classes and members before we create them. There are a lot of reasons for this we won’t go into here but this is an awesome new feature for TDD.NOTE: For demo info, go here-> http://blogs.msdn.com/zainnab/archive/2010/01/21/using-generate-from-usage-vstipedit0011.aspx
In the last demo you may have noticed that Intellisense kicked in. This can be annoying sometimes if you accidentally use one of its suggestions instead of what you meant to type. For this situation we now have Suggestion Mode. By hitting CTRL + ALT + SPACE or going to Edit -> Intellisense -> Toggle Completion Mode. By using this option you can avoid getting unwanted choices.NOTE: This is an easy demo just use the keyboard shortcut or menu option to enable Suggestion Mode. The hardest part here is getting people to understand why they would want to use it. Agile developers will mostly get it while most others will not so be prepared to have offline discussions for those interested.For demo info, go here-> http://blogs.msdn.com/zainnab/archive/2010/01/22/intellisense-suggestion-mode-vstipedit0012.aspx
Breakpoints have undergone some MAJOR improvements to make your life easier. Most notably you can now add labels, search breakpoints, and even do import/export tasks.NOTE: For demo info, go here-> Labels: http://blogs.msdn.com/zainnab/archive/2010/01/26/adding-labels-to-breakpoints-vstipdebug0001.aspxSearching (avail 1/27): http://blogs.msdn.com/zainnab/archive/2010/01/27/searching-breakpoints-vstipdebug0002.aspxImport/Export (avail 1/28): http://blogs.msdn.com/zainnab/archive/2010/01/28/how-to-import-and-export-breakpoints-vstipdebug0003.aspx
DataTips are now like a Super Quick Watch. They can be pinned to source, have comments, and tell you values.NOTE: See the demo doc (Pin a DataTip to source.docx) for a sample demo.
WPF BasedEditorCode Editing & Navigation(QuickSearch, CallHierarchy, …)IntellisensesuggestionvscompletionExtension ManagerBreakpoints and labels SuperQuickwatchDebug export and import datatipsCleanupweb.configJqueryintegrationJqueryIntelisenseHtml snippetsGeneratedependencygraph Beginnen met VS2010TrainingKit demo
Before we get started, I thought it would be a good idea to review where we have come from:In the past we have delivered monolithic releases. You saw this with .NET versions 1.0 and 1.1 before. When .NET 2.0 shipped we decided to make a “layer cake” of improvements where we added on 3.0, 3.5, and finally 3.5 service pack 1. There were a number of reasons for doing this but chief among them was to make sure you didn’t have to completely retest the CLR every time we incremented it. We did this for about 5 years.You can only keep that system up for so long, however, and 4.0 represents some pretty significant changes and updates to the Framework and the CLR. Because of this we decided to make it stand on its own and have incremented the CLR version accordingly. As such, it will probably have to undergo the testing your security teams have in place and we want to set expectations accordingly. NOTE: This is to make sure folks know the bad news up front. We will use the rest of the session to deliver the good news. Here is where you can find the history of .NET Framework versions: http://en.wikipedia.org/wiki/.NET_Framework_version_list
Optional and named parameters
Optional and named parametersDEMO:Shows how the combination of named and optional parameters combine to allow a developer to write simpler code or to simplify existing code. Use One.SimplifyYourCSharpCode from the LanguagesTenInOne solution.FAQ:[Q] Are optional parameters a compiler feature, or a runtime feature?[A] It is a compiler feature. The value of the optional parameter is compiled into the callsite at compile time. This means that if the value of the optional parameters is changed at a later date and the code isn’t recompiled, you could have code that doesn’t work as you expected and could introduce subtle bugs
Tonen code om word doc te openenProblemen is 1 dat we missing moeten gebruiken voor optionele parameters, 2 dat de elementen van het type object moeten zijnDaarna herschrijven naar simpele PIA call
Use Three.VbLanguageImprovements from the LanguagesTenInOne solution.
Auto-Implemented PropertiesCollection InitializersImplicit Line ContinuationMultiline Lambda Support
DynamicDemoAnd Extra Dynamic DynamicObjectCalling the Random shuffler in IronPython from C# (passing in an IEnumerable<int> generated in C#). Use Two.IronPythonInterop from the LanguagesTenInOne solution.
Tonenstringarray vragen of de assignment zalwerkenTonen stringlist vragen of toewijzing aan Ilist werkt, vragen of toewijzing aan Ienumerable werktHanden laten opsteken(Wie denkt dat dit werkt?)
Eerst zonder tonenDan code contracts toevoegenDan opzetten in compilerTonen in reflector
Microsoft has made a major investment in parallel programming. In Visual Studio 2010 there are major additions that have been made: Task Parallel Library (TPL)Parallel LINQ (PLINQ)Data Structures for Parallel ProgrammingParallel Diagnostic ToolsLet’s look at the TPL:The Task Parallel Library (TPL) is a set of public types and APIs in the System.Threading and System.Threading.Tasks namespaces in the .NET Framework version 4. These types rely on a task scheduler that is integrated with the .NET ThreadPool. The purpose of the TPL is to make developers more productive by simplifying the process of adding parallelism and concurrency to applications.The TPL scales the degree of concurrency dynamically to most efficiently use all the processors that are available. Parallel code that is based on the TPL not only works on dual-core and quad-core computers. It will also automatically scale, without recompilation, to manycore computers.When you use the TPL, writing a multithreaded for loop closely resembles writing a sequential for loop. The following code automatically partitions the work into tasks, based on the number of processors on the computer.NOTE:You definitely want them to know about the Concurrency site on MSDN for parallel programming:http://msdn.microsoft.com/en-us/concurrency/My favorite demo to do here is in the training kit. Just show the parallel and non-parallel code samples:C:VS2010TrainingKitDemosParallelForLoopSourceFor more demos, sample code with links to descriptions and pretty much everything else you need can be found here:http://code.msdn.microsoft.com/ParExtSamplesThere is also a parallel demo in the VS2010 Training Kit that can be found here:C:VS2010TrainingKitLabsParallelExtensionsLab.htmlhtmlDocSet_default.html
Parallel LINQ (PLINQ) is a parallel implementation of LINQ to Objects. PLINQ implements the full set of LINQ standard query operators as extension methods for the T:System.Linq namespace and has additional operators for parallel operations. PLINQ combines the simplicity and readability of LINQ syntax with the power of parallel programming. Just like code that targets the Task Parallel Library, PLINQ queries scale in the degree of concurrency based on the capabilities of the host computer.NOTE:The perfect demo here is the Baby Names example in the VS2010 Training Kit. This thing is just great for showing parallel and non-parallel code as well as visually seeing performance:C:VS2010TrainingKitDemosParallelBabyNamesSource
* TaskDemo:Uitleggen wat we juist gaan doen op elke threadRunPool(); Maaktgebruik van threads op de threadpool traag en weinigcontroleRunThreads(); Maaktexplicietalle threads aan weinig efficientRunTasks(); Systeem beslist zelf wat de optimale hoeveelheid tasks is en maakt er optimaal gebruik van* PLinqDemo:Uitvoeren linq query zonder AsParallelDaarna opnieuw uitvoeren met AsParallel toegevoegd* ParallelDemoUitvoeren nonparallelmethod
Nearly 80% of software development costs is in the maintenance of software.
MESSAGING:So, if a MEF-aware application is built of parts, parts can be thought of as the “heart” of a MEF-aware application. Let’s take a look at a simple Part. In this case, it is a class called SimpleMortgageCalculator that has one dependency it needs satisfied, an ILogger. Let’s see how we would use MEF to declare the needs this part has in order to be composed.
MESSAGING:So, if a MEF-aware application is built of parts, parts can be thought of as the “heart” of a MEF-aware application. Let’s take a look at a simple Part. In this case, it is a class called SimpleMortgageCalculator that has one dependency it needs satisfied, an ILogger. Let’s see how we would use MEF to declare the needs this part has in order to be composed.
MESSAGING:So, if a MEF-aware application is built of parts, parts can be thought of as the “heart” of a MEF-aware application. Let’s take a look at a simple Part. In this case, it is a class called SimpleMortgageCalculator that has one dependency it needs satisfied, an ILogger. Let’s see how we would use MEF to declare the needs this part has in order to be composed.
MESSAGING:Now that we’ve declared all our Imports and Exports, how are they all matched up together? This is the job of the container. The container is the “match maker” if you will. An application will ask the configured container for an object of a given type, then the container will take care of building up the entire object graph and returning the necessary object. All of this matching is handled by the container itself, the user doesn’t have to think about it at all.
* Show MEFGameToon App klasse met AggregateCatalogToon Shape klasse in AdditionalShapes met GameShapeAttribute Leg uit dat deze overerft van ExportAttribute* http://devlicio.us/blogs/derik_whittaker/archive/2009/10/27/simple-kick-start-example-using-mef-preview-8.aspx