The document discusses creating and using custom attributes in C#. It explains how to define a custom attribute class, apply the AttributeUsage attribute, name and construct the attribute, and apply it to a target element. It also covers retrieving metadata about custom attributes at runtime using reflection and the main uses of reflection like viewing metadata, type discovery, and late binding.
This document discusses object-oriented programming using C#. It covers multiple topics related to multithreading like implementing multiple threads, identifying thread priority, using synchronization in threads, and communication between processes. It also provides an example of developing a Hangman game application.
The document discusses object-oriented programming using C# and covers several topics:
1) Handling exceptions by using try, catch, and finally blocks to handle errors.
2) Implementing user-defined exceptions by deriving from the ApplicationException class.
3) Implementing threads to allow concurrent execution, with the main thread created automatically and additional child threads created using the Thread class.
This document discusses object-oriented programming concepts in C#, including constructors, destructors, polymorphism, function overloading, and operator overloading. Constructors initialize objects, destructors release objects from memory, and polymorphism allows one interface to have multiple implementations. Function overloading uses the same name for functions that differ in parameters, while operator overloading extends operators to user-defined types.
This document discusses object-oriented programming concepts in C#, including delegates, events, and attributes. It explains that delegates allow methods to be passed as arguments and invoked, and that there are single-cast and multicast delegates. Events use the publisher-subscriber model where a publisher raises an event and subscribers handle the event. Attributes provide metadata for classes, methods and other code elements.
The document discusses object-oriented programming concepts in C#, including overloading unary and binary operators, identifying relationships between classes like inheritance and composition, and using classes and inheritance. It provides examples and demonstrations of these concepts.
The document discusses object-oriented programming using C#. It covers using static variables and functions, components of the .NET framework including the common language runtime and class library, and using the Visual Studio IDE to create and run projects. Specifically, it will teach how to use static variables and functions, identify .NET framework components, and use the Visual Studio IDE.
The document discusses object-oriented programming concepts in C#, including describing memory allocation for value and reference types, using structures, enumerations, arrays, collections, and ArrayList. It provides examples of declaring and initializing these items as well as manipulating array elements and properties/methods of collections.
The document provides an overview of object-oriented programming using C#. It discusses the rationale for using an object-oriented approach and describes the key concepts like classes, objects, states, behaviors, and interactions. It also outlines the objectives of learning about features of OOP methodology, defining classes and variables in C#, and writing and executing C# programs. The document uses examples like a car class to illustrate concepts like classes, objects, states and behaviors.
This document discusses object-oriented programming using C#. It covers multiple topics related to multithreading like implementing multiple threads, identifying thread priority, using synchronization in threads, and communication between processes. It also provides an example of developing a Hangman game application.
The document discusses object-oriented programming using C# and covers several topics:
1) Handling exceptions by using try, catch, and finally blocks to handle errors.
2) Implementing user-defined exceptions by deriving from the ApplicationException class.
3) Implementing threads to allow concurrent execution, with the main thread created automatically and additional child threads created using the Thread class.
This document discusses object-oriented programming concepts in C#, including constructors, destructors, polymorphism, function overloading, and operator overloading. Constructors initialize objects, destructors release objects from memory, and polymorphism allows one interface to have multiple implementations. Function overloading uses the same name for functions that differ in parameters, while operator overloading extends operators to user-defined types.
This document discusses object-oriented programming concepts in C#, including delegates, events, and attributes. It explains that delegates allow methods to be passed as arguments and invoked, and that there are single-cast and multicast delegates. Events use the publisher-subscriber model where a publisher raises an event and subscribers handle the event. Attributes provide metadata for classes, methods and other code elements.
The document discusses object-oriented programming concepts in C#, including overloading unary and binary operators, identifying relationships between classes like inheritance and composition, and using classes and inheritance. It provides examples and demonstrations of these concepts.
The document discusses object-oriented programming using C#. It covers using static variables and functions, components of the .NET framework including the common language runtime and class library, and using the Visual Studio IDE to create and run projects. Specifically, it will teach how to use static variables and functions, identify .NET framework components, and use the Visual Studio IDE.
The document discusses object-oriented programming concepts in C#, including describing memory allocation for value and reference types, using structures, enumerations, arrays, collections, and ArrayList. It provides examples of declaring and initializing these items as well as manipulating array elements and properties/methods of collections.
The document provides an overview of object-oriented programming using C#. It discusses the rationale for using an object-oriented approach and describes the key concepts like classes, objects, states, behaviors, and interactions. It also outlines the objectives of learning about features of OOP methodology, defining classes and variables in C#, and writing and executing C# programs. The document uses examples like a car class to illustrate concepts like classes, objects, states and behaviors.
The document discusses object-oriented programming using C#. It covers implementing reading and writing text and binary files, the Windows file system, and exceptions. Key topics include using StreamReader/StreamWriter for text files, BinaryReader/BinaryWriter for binary files, and DirectoryInfo/FileInfo to work with directories and files. Exceptions occur when errors happen at runtime, and include syntax errors, runtime errors, and logical errors.
The document discusses object-oriented programming concepts in C#, including abstract classes, sealed classes, interfaces, and file input/output operations. Abstract classes provide a partial implementation of an interface and contain abstract methods to be implemented in derived classes. Sealed classes cannot be inherited from. Interfaces define properties and methods without implementation. File input/output uses streams to read from and write to files, with the FileStream class opening and accessing files.
This document discusses object-oriented programming concepts like abstraction, encapsulation, and methods. It defines abstraction as extracting only relevant information and encapsulation as packaging components together. It also explains how to implement encapsulation using access specifiers, define methods by specifying elements like return types and parameters, and call methods by passing relevant arguments.
This document provides an overview of GUI application development using the .NET framework. It discusses how users interact with applications through graphical user interfaces using windows and controls. It aims to teach students core skills for developing Windows Forms applications in .NET. Key topics covered include GUI controls, features of the Windows environment like event-driven programming, and components of the .NET framework.
The document discusses variables, constants, data types, operators, and representing decisions in flowcharts. It provides examples of flowcharts that accept input values, perform calculations using variables and operators, and make decisions based on conditional logic. The key concepts covered include declaring variables, numeric and character data types, arithmetic, relational and logical operators, and using decision boxes in flowcharts to represent conditional statements. Exercises are included to apply these concepts in drawing flowcharts to solve problems involving decisions and calculations.
This document provides an overview of key Java programming concepts including: identifiers, primitive and reference data types, variables, objects, casting, conditional statements like if/else and switch, and looping statements like for, while, and do-while loops. It describes how to declare variables, construct objects, pass arguments, use this, and control flow with break/continue. The goal is to teach basic Java syntax and programming structures.
The document discusses Java event handling and GUI components. It defines events as objects that describe user actions, and event handlers as methods that process events from components like buttons. It explains how to create listeners for common event types like action events and mouse clicks, and how to add menus, menu items, and control colors in Java GUI applications.
The document provides an overview of key Java programming concepts including: the features of Java technology; the primary goals and functions of the Java Virtual Machine and garbage collection; how Java source files are compiled and executed; the three main tasks of the JVM; modeling concepts like abstraction and encapsulation; and how to declare classes, methods, and constructors in Java. It also summarizes how packages, imports, and the Java API documentation work.
The document provides an overview of key Java programming concepts including final classes and methods, enumerated types, static imports, abstract classes and interfaces, exceptions, assertions, and creating custom exceptions. It discusses how to use these concepts and includes code examples.
Win32/Flamer: Reverse Engineering and Framework ReconstructionAlex Matrosov
In this talk one wouldn’t see any speculations on state-sponsored cyber-espionage and сonspirology theories on cyber weapon development. In the presentation authors will concentrate on different approaches to analysis of the malware based on object oriented architecture with respect to one of the most complex threat ever known while AV industry exists: Win32/Flamer. The authors will present methods of analysis of the malware developed in the course of research of such threats as Stuxnet, Duqu and Festi. The talk will shed light on the problems the researchers face during investigation of complex threats and the ways to deal with them using tools by Hex-Rays. The authors will also present the result of research on reconstructing framework which was used to construct Win32/Flamer and will show its similarity with Stuxnet/Duqu/Gauss with respect to code and architecture.
The document discusses using dry run tables and iteration in programming logic and techniques. It provides examples of using dry run tables to step through sample data and evaluate program output. It also provides examples of using iteration and loops to repeatedly perform steps, such as summing a series of numbers or collecting details from a list of employees. The document demonstrates creating flowcharts to represent iterative logic and using dry run tables to test sample data.
The document discusses casting and conversion in Java. It covers implicit and explicit type conversions, including widening, narrowing, and casting conversions. It also discusses overloading constructors in Java by defining multiple constructor methods with the same name but different parameters. The document provides examples of casting integer and double values to byte type, as well as overloading the Cuboid constructor to calculate volumes for rectangles and squares.
Design and Implementation patterns have changed in object-oriented languages such as C# with the introduction of new language features, advances in object-oriented design, and the inclusion of functional language aspects. This session will explore the impact this has on design and implementation patterns and how they can be leveraged to build more elegant systems.
C++ was developed from C by adding features like non-object-oriented extensions from C, object-oriented extensions, and generic programming extensions. C++ is a superset of C, with minor exceptions. Key C++ features include declarations and definitions, namespaces to avoid name collisions, constants declared with const, and new input/output methods using objects like cout and cin instead of library functions. New casts like static_cast and const_cast were also introduced to replace old C-style casts.
The document provides an introduction to the Java programming language. It discusses Java's characteristics like being simple, object-oriented, portable, and secure. It also describes Java's architecture including the Java programming language, class files, Java Virtual Machine, and Application Programming Interface. Additionally, it covers Java fundamentals like data types, variables, literals, and arrays.
Class diagrams using UML model the static relationships between classes in a system. They show classes, attributes, operations, and relationships like associations and generalizations. Associations describe links between classes, like a customer ordering products. Generalizations define inheritance between superclasses and subclasses, where the subclass inherits structure and behavior from the parent class.
This document is a presentation on D Programming by Jonathan Mercier. It includes an introduction to D Programming and covers topics like objects, functions, parallelism, and basics of the language. The presentation is divided into sections on introduction, basics, GTK D, and thanks. It also provides context on why a new language was needed by listing the dates of other major languages like C++, Java, Python, and Ruby.
The document provides an overview of the Java Virtual Machine (JVM) including its lifetime, architecture, and data types. It discusses that a JVM can refer to the specification, an implementation, or a runtime instance. A JVM lives to run one Java application and dies after completion. It has subsystems like the class loader and runtime data areas shared among threads like the method area and heap. The document also details the primitive and reference data types used in the JVM like integers, floats, and object references.
Write native iPhone applications using Eclipse CDTAtit Patumvan
Learn how to use the Eclipse C Development Toolkit (CDT) to program native applications for the Apple iPhone, using open source tools to enable iPhone OS development on any Eclipse-supported platform.
By PJ Cabrera (pjcabrera@pobox.com)
This presentation introduces basic concepts about the Java Remote Method Invocation, a.k.a. RMI. These slides introduce the following concepts:
- Remote interfaces
- Dynamic code loading
- Serialization
- Security manager
- Exporting remote objects
- Compiling and running RMI programs
- Distributed garbage collection
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
Slides to understand and present Advanced .net topics with c# language. Topics like delegates, Indexer, Reflection API, Attributes, Collections in c#, File and I/O manipulation etc. are described with examples too.
This document discusses attributes and reflection in C#. It begins by explaining what attributes are and how they can be used to associate declarative metadata with code entities. It then provides examples of using predefined attributes like Obsolete. It discusses user-defined attributes and the AttributeUsage attribute. It covers conditional methods and the Conditional attribute. The document explains reflection and how the Type class is central to it. It provides examples of using reflection to identify types that implement an interface or are subclasses of a given type. It concludes with a test case that gets the constructors of the String class using reflection.
The document discusses object-oriented programming using C#. It covers implementing reading and writing text and binary files, the Windows file system, and exceptions. Key topics include using StreamReader/StreamWriter for text files, BinaryReader/BinaryWriter for binary files, and DirectoryInfo/FileInfo to work with directories and files. Exceptions occur when errors happen at runtime, and include syntax errors, runtime errors, and logical errors.
The document discusses object-oriented programming concepts in C#, including abstract classes, sealed classes, interfaces, and file input/output operations. Abstract classes provide a partial implementation of an interface and contain abstract methods to be implemented in derived classes. Sealed classes cannot be inherited from. Interfaces define properties and methods without implementation. File input/output uses streams to read from and write to files, with the FileStream class opening and accessing files.
This document discusses object-oriented programming concepts like abstraction, encapsulation, and methods. It defines abstraction as extracting only relevant information and encapsulation as packaging components together. It also explains how to implement encapsulation using access specifiers, define methods by specifying elements like return types and parameters, and call methods by passing relevant arguments.
This document provides an overview of GUI application development using the .NET framework. It discusses how users interact with applications through graphical user interfaces using windows and controls. It aims to teach students core skills for developing Windows Forms applications in .NET. Key topics covered include GUI controls, features of the Windows environment like event-driven programming, and components of the .NET framework.
The document discusses variables, constants, data types, operators, and representing decisions in flowcharts. It provides examples of flowcharts that accept input values, perform calculations using variables and operators, and make decisions based on conditional logic. The key concepts covered include declaring variables, numeric and character data types, arithmetic, relational and logical operators, and using decision boxes in flowcharts to represent conditional statements. Exercises are included to apply these concepts in drawing flowcharts to solve problems involving decisions and calculations.
This document provides an overview of key Java programming concepts including: identifiers, primitive and reference data types, variables, objects, casting, conditional statements like if/else and switch, and looping statements like for, while, and do-while loops. It describes how to declare variables, construct objects, pass arguments, use this, and control flow with break/continue. The goal is to teach basic Java syntax and programming structures.
The document discusses Java event handling and GUI components. It defines events as objects that describe user actions, and event handlers as methods that process events from components like buttons. It explains how to create listeners for common event types like action events and mouse clicks, and how to add menus, menu items, and control colors in Java GUI applications.
The document provides an overview of key Java programming concepts including: the features of Java technology; the primary goals and functions of the Java Virtual Machine and garbage collection; how Java source files are compiled and executed; the three main tasks of the JVM; modeling concepts like abstraction and encapsulation; and how to declare classes, methods, and constructors in Java. It also summarizes how packages, imports, and the Java API documentation work.
The document provides an overview of key Java programming concepts including final classes and methods, enumerated types, static imports, abstract classes and interfaces, exceptions, assertions, and creating custom exceptions. It discusses how to use these concepts and includes code examples.
Win32/Flamer: Reverse Engineering and Framework ReconstructionAlex Matrosov
In this talk one wouldn’t see any speculations on state-sponsored cyber-espionage and сonspirology theories on cyber weapon development. In the presentation authors will concentrate on different approaches to analysis of the malware based on object oriented architecture with respect to one of the most complex threat ever known while AV industry exists: Win32/Flamer. The authors will present methods of analysis of the malware developed in the course of research of such threats as Stuxnet, Duqu and Festi. The talk will shed light on the problems the researchers face during investigation of complex threats and the ways to deal with them using tools by Hex-Rays. The authors will also present the result of research on reconstructing framework which was used to construct Win32/Flamer and will show its similarity with Stuxnet/Duqu/Gauss with respect to code and architecture.
The document discusses using dry run tables and iteration in programming logic and techniques. It provides examples of using dry run tables to step through sample data and evaluate program output. It also provides examples of using iteration and loops to repeatedly perform steps, such as summing a series of numbers or collecting details from a list of employees. The document demonstrates creating flowcharts to represent iterative logic and using dry run tables to test sample data.
The document discusses casting and conversion in Java. It covers implicit and explicit type conversions, including widening, narrowing, and casting conversions. It also discusses overloading constructors in Java by defining multiple constructor methods with the same name but different parameters. The document provides examples of casting integer and double values to byte type, as well as overloading the Cuboid constructor to calculate volumes for rectangles and squares.
Design and Implementation patterns have changed in object-oriented languages such as C# with the introduction of new language features, advances in object-oriented design, and the inclusion of functional language aspects. This session will explore the impact this has on design and implementation patterns and how they can be leveraged to build more elegant systems.
C++ was developed from C by adding features like non-object-oriented extensions from C, object-oriented extensions, and generic programming extensions. C++ is a superset of C, with minor exceptions. Key C++ features include declarations and definitions, namespaces to avoid name collisions, constants declared with const, and new input/output methods using objects like cout and cin instead of library functions. New casts like static_cast and const_cast were also introduced to replace old C-style casts.
The document provides an introduction to the Java programming language. It discusses Java's characteristics like being simple, object-oriented, portable, and secure. It also describes Java's architecture including the Java programming language, class files, Java Virtual Machine, and Application Programming Interface. Additionally, it covers Java fundamentals like data types, variables, literals, and arrays.
Class diagrams using UML model the static relationships between classes in a system. They show classes, attributes, operations, and relationships like associations and generalizations. Associations describe links between classes, like a customer ordering products. Generalizations define inheritance between superclasses and subclasses, where the subclass inherits structure and behavior from the parent class.
This document is a presentation on D Programming by Jonathan Mercier. It includes an introduction to D Programming and covers topics like objects, functions, parallelism, and basics of the language. The presentation is divided into sections on introduction, basics, GTK D, and thanks. It also provides context on why a new language was needed by listing the dates of other major languages like C++, Java, Python, and Ruby.
The document provides an overview of the Java Virtual Machine (JVM) including its lifetime, architecture, and data types. It discusses that a JVM can refer to the specification, an implementation, or a runtime instance. A JVM lives to run one Java application and dies after completion. It has subsystems like the class loader and runtime data areas shared among threads like the method area and heap. The document also details the primitive and reference data types used in the JVM like integers, floats, and object references.
Write native iPhone applications using Eclipse CDTAtit Patumvan
Learn how to use the Eclipse C Development Toolkit (CDT) to program native applications for the Apple iPhone, using open source tools to enable iPhone OS development on any Eclipse-supported platform.
By PJ Cabrera (pjcabrera@pobox.com)
This presentation introduces basic concepts about the Java Remote Method Invocation, a.k.a. RMI. These slides introduce the following concepts:
- Remote interfaces
- Dynamic code loading
- Serialization
- Security manager
- Exporting remote objects
- Compiling and running RMI programs
- Distributed garbage collection
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
Slides to understand and present Advanced .net topics with c# language. Topics like delegates, Indexer, Reflection API, Attributes, Collections in c#, File and I/O manipulation etc. are described with examples too.
This document discusses attributes and reflection in C#. It begins by explaining what attributes are and how they can be used to associate declarative metadata with code entities. It then provides examples of using predefined attributes like Obsolete. It discusses user-defined attributes and the AttributeUsage attribute. It covers conditional methods and the Conditional attribute. The document explains reflection and how the Type class is central to it. It provides examples of using reflection to identify types that implement an interface or are subclasses of a given type. It concludes with a test case that gets the constructors of the String class using reflection.
Reflection in C# allows examining and modifying program code, objects, and types at runtime without knowing their internal representations, enabling discovery of class information and accessing metadata. Key aspects of reflection include Type objects that represent types, MemberInfo classes that provide metadata about members, attributes that mark elements of code, and the System.Reflect namespace that contains classes for core reflection functionality. Reflection can be used for tasks like late binding, inspecting types, activating objects, and generating code on the fly.
Building & Designing Windows 10 Universal Windows Apps using XAML and C#Fons Sonnemans
Met het Universal Windows Platform wordt het voor jou als developer gemakkelijker om apps op maat te maken voor verschillende devices. Dankzij recente ontwikkelingen wordt het creëren van Universal Windows Apps eenvoudiger dan ooit!
XAML UI heeft met haar nieuwe controls en features een flinke stap gemaakt in het vereenvoudigen van het ontwikkelen van apps voor verschillende devices. Daarnaast is de performance geoptimaliseerd met nieuwe en verbeterde features zoals nieuwe diagnostics tools, een nieuwe Blend tool, Compiled data binding en meer!
Tijdens het seminar geeft Fons Sonnemans (trainer, developer, spreker op TechDays NL en tweemaal beloond met een Microsoft MVP award) inzicht in deze nieuwe features en tools – daar wil jij natuurlijk graag bij zijn!
.NET Attributes and Reflection - What a Developer Needs to Know...Dan Douglas
An overview of .NET Attributes and Reflection. Pro's, Con's, and when to use them along with a practical demo of .NET reflection in use.
Video demos can be found here:
http://dandouglas.wordpress.com/talks-webcasts/
This document discusses advanced C# features including delegates, events, anonymous methods, lambda expressions, anonymous types, dynamic types, and extension methods. Delegates allow type-safe callbacks and are used to handle events. Anonymous methods and lambda expressions provide concise ways to handle events without standalone methods. Anonymous types define encapsulated data without associated methods, and are typically used with LINQ. Dynamic types have members that are resolved at runtime rather than compile time, without static type checking.
We've all seen the big "macro" features in .NET, this presentation is to give praise to the "Little Wonders" of .NET -- those little items in the framework that make life as a developer that much easier!
Constructors and destructors are special member functions in C++ that are used for initializing objects and cleaning up resources. Constructors are called automatically when an object is created and are used to initialize member variables. Destructors are called when an object is destroyed in order to clean up resources. There are different types of constructors like default, parameterized, and copy constructors. Constructors can be invoked implicitly, explicitly, or through initialization. Destructors have the same name as the class preceded by a tilde and are used to de-allocate memory allocated by the constructor.
The document discusses how to code for accelerometer and Core Location in Objective-C. It provides code snippets for reading accelerometer data using UIAccelerometer and handling orientation changes. It also explains how to get the user's current location using the Core Location framework by initializing a CLLocationManager instance and setting a delegate to receive location updates.
Use Eclipse technologies to build a modern embedded IDEBenjamin Cabé
This document discusses requirements for developing an embedded integrated development environment (IDE) using Eclipse technologies. It describes using Eclipse Modeling Framework (EMF) to model embedded projects. It also discusses using EMF validation, Graphical Modeling Framework (GMF) editors, Xpand for code generation, and the CDT and DLTK plugins for code editing. The IDE will integrate model and code editing with compilation, communication with targets via the Target Communication Framework (TCF) and Remote System Explorer (RSE). The goal is to leverage the Eclipse ecosystem to quickly create a complex IDE environment focused on embedded development.
This document discusses various topics related to core development with the Microsoft .NET Framework 2.0 Foundation, including:
1. Configuring assemblies using configuration files, configuration elements, and custom types to validate configuration values.
2. Performing installation tasks like configuring the runtime version of .NET Framework, assembly locations and versions, and registering remote objects using configuration files.
3. Managing event logs, which are used to store entries for application activities and actions, and can be viewed using the EventLog class.
This document discusses .NET reflection, which allows examining types at runtime to access metadata and dynamically invoke methods, properties, and fields without knowing the specific types at compile time. It describes using the System.Reflection and System.Type classes to reflect on types and members. Dynamic loading of external assemblies and late binding techniques are also covered, along with attributed programming and some predefined attributes in .NET. Building custom attributes by inheriting from the System.Attribute class is demonstrated.
This document discusses component interfaces in PeopleSoft. It defines a component interface as a means to access PeopleSoft applications without using PeopleSoft pages. Component interfaces expose PeopleSoft components for synchronous access from external applications. This allows external applications to access underlying data and business logic without needing to understand page structures and component definitions. The document then describes the key elements and architecture of component interfaces, including components, properties, collections, methods, and how to create and work with component interfaces.
This document provides an overview of attributes in .NET, including:
- Attributes are declarative tags that convey information to the runtime and are stored as metadata.
- Common attributes include general attributes, COM interoperability attributes, and transaction handling attributes.
- Custom attributes can be defined and their scope and usage specified. Attribute classes derive from System.Attribute and define properties and constructors.
- Attribute values can be retrieved by examining class metadata using MemberInfo and querying for attribute information using GetCustomAttributes.
The document summarizes projects completed by the author as part of a .NET Masters Program. The projects utilized n-tier architecture with presentation, entity, business, and data access layers. The first project focused on core C# skills and building class libraries. Subsequent projects included a Windows forms application for a library management system and expanding it with LINQ-to-SQL entities and stored procedures to interface with a SQL Server database while handling exceptions.
This document discusses implementing object-oriented programming in Visual Basic .NET. It outlines objectives like identifying classes, objects, structures, abstract classes, interfaces and assemblies. It describes creating a class with members to store customer data, and a Windows form with controls to accept this data. The data will be stored in member variables of a Customer class instance. The form will have labels, textboxes and buttons. Entering data will instantiate the Customer class and store information in its members.
1. Constructors are special methods used to initialize objects when they are created. Even if a constructor is not explicitly defined, a default constructor is provided.
2. The process of creating an object involves allocating memory using the new keyword and initializing the object by calling a constructor.
3. A default constructor has public accessibility, the same name as the class, no return type, expects no arguments, and initializes all fields to default values like 0, false, or null.
Constructor and Destructor in C++ are special member functions that are automatically called by the compiler.
Constructors initialize a newly created object and are called when the object is created. Destructors destroy objects and release memory and are called when the object goes out of scope. There are different types of constructors like default, parameterized, and copy constructors that allow initializing objects in different ways. Destructors do not have arguments or return values and are declared with a tilde symbol preceding the class name.
Constructors are special class functions which performs initialization of every object. The Compiler calls the Constructor whenever an object is created. Destructor on the other hand is used to destroy the class object.
The document discusses various design patterns including Factory Method, Abstract Factory, Builder, Singleton, Adapter, Bridge, and Decorator patterns. It provides definitions and explanations of the intent, structure, participants, and sample code for implementing each pattern. The Factory Method pattern allows subclasses to determine which object to create, Abstract Factory creates families of related objects without specifying their concrete classes, and Builder separates object construction from representation. Singleton ensures only one instance, Adapter converts interfaces, Bridge decouples abstraction and implementation, and Decorator adds responsibilities dynamically. Design patterns provide reusable solutions to common programming problems.
The document discusses object-oriented programming concepts like classes, objects, encapsulation, and access modifiers. It provides examples of constructors, destructors, and copy constructors in C# and explains how they are used to initialize and cleanup class instances. It also discusses friend functions and how they allow non-member functions to access private and protected members of a class.
Secrets of .NET Assemblies and Memory ManagementAbhishek Sur
The session demonstrates how .NET assemblies are laid out in the system. It introduces some of its secrets which you might not know and also finishes with Memory Management and Garbage Collection
This document discusses chapter 9 of the book "Microsoft Visual C# 2010, Fourth Edition" which covers using classes and objects in C#. It provides objectives for the chapter which include creating classes, objects, properties, constructors, and overloading constructors. It also discusses concepts like the this reference, passing objects to methods, and using object initializers to assign values when instantiating objects.
The document discusses creating .NET components and user-defined controls. To create a component, a developer must define its properties, methods, and constructors. .NET supports public, internal, and private constructors. There are three types of user-defined controls: user controls which combine existing controls, controls inherited from an existing control which can override methods like OnPaint, and custom controls inherited from Control.
L0043 - Interfacing to Eclipse Standard ViewsTonny Madsen
Eclipse contains a large number of standard views that can be extended to support new languages or data models. This model focus on the interface to the most common Eclipse views: Problems View, Outline View, and the Properties View.
The document discusses legacy connectivity and protocols. It describes legacy integration as integrating J2EE components with legacy systems. The key approaches to legacy integration are data level integration, application interface integration, method level integration, and user interface level integration. Legacy connectivity can be achieved using Java Native Interface (JNI), J2EE Connector Architecture, and web services. JNI allows Java code to call native methods written in other languages like C/C++. The J2EE Connector Architecture standardizes connectivity through resource adapters. Web services provide a platform-independent approach through XML protocols.
The document discusses messaging and internationalization. It covers messaging using Java Message Service (JMS), including the need for messaging, messaging architecture, types of messaging, messaging models, messaging servers, components of a JMS application, developing effective messaging solutions, and implementing JMS. It also discusses internationalizing J2EE applications.
The document discusses Java 2 Enterprise Edition (J2EE) application security. It covers security threat assessment, the Java 2 security model, and Java security APIs. The Java 2 security model provides access controls and allows downloading and running applications securely. It uses techniques like cryptography, digital signatures, and SSL. The Java Cryptography Extensions API provides methods for encrypting data, generating keys, and authentication.
The document discusses various security tools in Java including keytool, jarsigner, and policytool. Keytool is used to manage keystores containing private keys and certificates. It can generate key pairs, import/export certificates, and list keystore contents. Jarsigner signs JAR files using certificates from a keystore. Policytool creates and edits security policy files specifying user permissions. The document provides details on using each tool's commands and options.
This document discusses EJB technology and provides summaries of key concepts:
1. It defines the EJB container model and describes features like security, distributed access, and lifecycle management.
2. It compares the lifecycles of stateless session beans, stateful session beans, entity beans, and message-driven beans.
3. It contrasts stateful and stateless session beans and discusses differences in client state, pooling, lifecycles, and more. It also compares session beans and entity beans in terms of representing processes versus data.
This document discusses behavioral design patterns and J2EE design patterns. It provides descriptions and class diagrams for several behavioral patterns, including Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, and Visitor. It also defines what a J2EE design pattern is and notes that J2EE patterns are categorized into the presentation, business, and integration tiers of an enterprise application.
This document provides an overview of EJB in J2EE architecture and EJB design patterns. It discusses the key characteristics of using EJB in J2EE architecture, including supporting multiple clients, improving reliability and productivity, supporting large scale deployment, developing transactional applications, and implementing security. It also outlines several EJB design patterns, such as client-side interaction patterns, EJB layer architectural patterns, inter-tier data transfer patterns, and transaction/persistence patterns.
This document discusses design patterns and provides examples of structural and behavioral design patterns. It describes the adapter, bridge, composite, decorator, facade, flyweight, proxy, chain of responsibility, and command patterns. Structural patterns are concerned with relationships and responsibilities between objects, while behavioral patterns focus on communication between objects. Examples of UML diagrams are provided to illustrate how each pattern can be modeled.
The document discusses UML diagrams that can be used to model J2EE applications, including use case diagrams, class diagrams, package diagrams, sequence diagrams, collaboration diagrams, state diagrams, activity diagrams, component diagrams, and deployment diagrams. It provides examples of each diagram type using a case study of an online bookstore system. The use case diagram shows use cases and actors, the class diagram shows classes and relationships, and other diagrams demonstrate how specific interactions, workflows, and system configurations can be modeled through different UML diagrams.
This document discusses design patterns and selecting appropriate patterns based on business requirements. It provides an overview of design patterns available in TheServerSide.com pattern catalog, which are organized into categories like EJB layer architectural patterns, inter-tier data transfer patterns, transaction and persistence patterns, and client-side EJB interaction patterns. Examples of patterns in each category are described. Best practices for developing class diagrams and using proven design patterns are also mentioned.
This document provides an overview of J2EE architecture. It defines architecture as the study of designing J2EE applications and discusses architectural concepts like attributes, models, and terminology. It describes the role of an architect and phases of architectural design. The document outlines the various components of J2EE like clients, web components, business components and containers. It also discusses key aspects of J2EE architecture like application areas, issues, technologies and available application servers.
The document discusses various topics related to collaboration and distributed systems including network communication in distributed environments, application integration using XML, and legacy integration technologies. Specifically, it covers factors that affect network performance like bandwidth and latency. It also describes using XML for data mapping between applications and data stores. Finally, it discusses different legacy integration methods like screen scraping, object mapping tools, and using off-board servers.
The document discusses JavaBean properties, property editors, and the classes used to implement them in Java. It describes the PropertyEditorSupport class and its methods for creating customized property editors. The PropertyDescriptor class and BeanInfo interface provide information about JavaBean properties, events, and methods. The document also provides tips on using sample JavaBeans from BDK1.1 in Java 2 SDK and creating a manifest file for multiple JavaBeans. Common questions about JavaBeans are answered.
The document discusses JavaBean properties and custom events. It defines different types of JavaBean properties like simple, boolean, indexed, bound, and constrained properties. It also explains how to create custom events by defining an event class, event listener interface, and event handler. The event handler notifies listeners when an event occurs. Finally, it demonstrates creating a login JavaBean that uses a custom event to validate that a username and password are not the same.
The document introduces JavaBeans, which are reusable software components created using Java. It discusses JavaBean concepts like properties, methods, and events. It also describes the Beans Development Kit (BDK) environment for creating, configuring, and testing JavaBeans. BDK includes components like the ToolBox, BeanBox, Properties window, and Method Tracer window. The document provides demonstrations of creating a sample JavaBean applet and user-defined JavaBean using BDK. It also covers topics like creating manifest and JAR files for packaging JavaBeans.
The document provides information on working with joins, the JDBC API, and isolation levels in Java database applications. It discusses different types of joins like inner joins, cross joins, and outer joins. It describes the key interfaces in the JDBC API like Statement, PreparedStatement, ResultSet, Connection, and DatabaseMetaData. It also covers isolation levels and how they prevent issues with concurrently running transactions accessing a database.
The document discusses various advanced features of JDBC including using prepared statements, managing transactions, performing batch updates, and calling stored procedures. Prepared statements improve performance by compiling SQL statements only once. Transactions allow grouping statements to execute atomically through commit and rollback. Batch updates reduce network calls by executing multiple statements as a single unit. Stored procedures are called using a CallableStatement object which can accept input parameters and return output parameters.
The document introduces JDBC and its key concepts. It discusses the JDBC architecture with two layers - the application layer and driver layer. It describes the four types of JDBC drivers and how they work. The document outlines the classes and interfaces that make up the JDBC API and the basic steps to create a JDBC application, including loading a driver, connecting to a database, executing statements, and handling exceptions. It provides examples of using JDBC to perform common database operations like querying, inserting, updating, and deleting data.
The document discusses classes and objects in Java, including defining classes with data members and methods, creating objects, using constructors, and the structure of a Java application. It also covers access specifiers, modifiers, compiling Java files, and provides a summary of key points about classes and objects in Java.
The document discusses operators in Java, including unary, binary, arithmetic, bitwise, shift, and instanceof operators. It provides examples of how to use various operators like increment, decrement, arithmetic assignment, bitwise AND, OR, NOT, XOR, right shift, left shift, and unsigned shift. It also covers operator precedence and demonstrates how operators in an expression are evaluated based on their predetermined precedence order.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
Conversational agents, or chatbots, are increasingly used to access all sorts of services using natural language. While open-domain chatbots - like ChatGPT - can converse on any topic, task-oriented chatbots - the focus of this paper - are designed for specific tasks, like booking a flight, obtaining customer support, or setting an appointment. Like any other software, task-oriented chatbots need to be properly tested, usually by defining and executing test scenarios (i.e., sequences of user-chatbot interactions). However, there is currently a lack of methods to quantify the completeness and strength of such test scenarios, which can lead to low-quality tests, and hence to buggy chatbots.
To fill this gap, we propose adapting mutation testing (MuT) for task-oriented chatbots. To this end, we introduce a set of mutation operators that emulate faults in chatbot designs, an architecture that enables MuT on chatbots built using heterogeneous technologies, and a practical realisation as an Eclipse plugin. Moreover, we evaluate the applicability, effectiveness and efficiency of our approach on open-source chatbots, with promising results.
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...Jason Yip
The typical problem in product engineering is not bad strategy, so much as “no strategy”. This leads to confusion, lack of motivation, and incoherent action. The next time you look for a strategy and find an empty space, instead of waiting for it to be filled, I will show you how to fill it in yourself. If you’re wrong, it forces a correction. If you’re right, it helps create focus. I’ll share how I’ve approached this in the past, both what works and lessons for what didn’t work so well.
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor IvaniukFwdays
At this talk we will discuss DDoS protection tools and best practices, discuss network architectures and what AWS has to offer. Also, we will look into one of the largest DDoS attacks on Ukrainian infrastructure that happened in February 2022. We'll see, what techniques helped to keep the web resources available for Ukrainians and how AWS improved DDoS protection for all customers based on Ukraine experience
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyScyllaDB
Freshworks creates AI-boosted business software that helps employees work more efficiently and effectively. Managing data across multiple RDBMS and NoSQL databases was already a challenge at their current scale. To prepare for 10X growth, they knew it was time to rethink their database strategy. Learn how they architected a solution that would simplify scaling while keeping costs under control.
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...DanBrown980551
This LF Energy webinar took place June 20, 2024. It featured:
-Alex Thornton, LF Energy
-Hallie Cramer, Google
-Daniel Roesler, UtilityAPI
-Henry Richardson, WattTime
In response to the urgency and scale required to effectively address climate change, open source solutions offer significant potential for driving innovation and progress. Currently, there is a growing demand for standardization and interoperability in energy data and modeling. Open source standards and specifications within the energy sector can also alleviate challenges associated with data fragmentation, transparency, and accessibility. At the same time, it is crucial to consider privacy and security concerns throughout the development of open source platforms.
This webinar will delve into the motivations behind establishing LF Energy’s Carbon Data Specification Consortium. It will provide an overview of the draft specifications and the ongoing progress made by the respective working groups.
Three primary specifications will be discussed:
-Discovery and client registration, emphasizing transparent processes and secure and private access
-Customer data, centering around customer tariffs, bills, energy usage, and full consumption disclosure
-Power systems data, focusing on grid data, inclusive of transmission and distribution networks, generation, intergrid power flows, and market settlement data
This talk will cover ScyllaDB Architecture from the cluster-level view and zoom in on data distribution and internal node architecture. In the process, we will learn the secret sauce used to get ScyllaDB's high availability and superior performance. We will also touch on the upcoming changes to ScyllaDB architecture, moving to strongly consistent metadata and tablets.
The Microsoft 365 Migration Tutorial For Beginner.pptxoperationspcvita
This presentation will help you understand the power of Microsoft 365. However, we have mentioned every productivity app included in Office 365. Additionally, we have suggested the migration situation related to Office 365 and how we can help you.
You can also read: https://www.systoolsgroup.com/updates/office-365-tenant-to-tenant-migration-step-by-step-complete-guide/
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfChart Kalyan
A Mix Chart displays historical data of numbers in a graphical or tabular form. The Kalyan Rajdhani Mix Chart specifically shows the results of a sequence of numbers over different periods.
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving
What began over 115 years ago as a supplier of precision gauges to the automotive industry has evolved into being an industry leader in the manufacture of product branding, automotive cockpit trim and decorative appliance trim. Value-added services include in-house Design, Engineering, Program Management, Test Lab and Tool Shops.
What is an RPA CoE? Session 1 – CoE VisionDianaGray10
In the first session, we will review the organization's vision and how this has an impact on the COE Structure.
Topics covered:
• The role of a steering committee
• How do the organization’s priorities determine CoE Structure?
Speaker:
Chris Bolin, Senior Intelligent Automation Architect Anika Systems
In the realm of cybersecurity, offensive security practices act as a critical shield. By simulating real-world attacks in a controlled environment, these techniques expose vulnerabilities before malicious actors can exploit them. This proactive approach allows manufacturers to identify and fix weaknesses, significantly enhancing system security.
This presentation delves into the development of a system designed to mimic Galileo's Open Service signal using software-defined radio (SDR) technology. We'll begin with a foundational overview of both Global Navigation Satellite Systems (GNSS) and the intricacies of digital signal processing.
The presentation culminates in a live demonstration. We'll showcase the manipulation of Galileo's Open Service pilot signal, simulating an attack on various software and hardware systems. This practical demonstration serves to highlight the potential consequences of unaddressed vulnerabilities, emphasizing the importance of offensive security practices in safeguarding critical infrastructure.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
Essentials of Automations: Exploring Attributes & Automation ParametersSafe Software
Building automations in FME Flow can save time, money, and help businesses scale by eliminating data silos and providing data to stakeholders in real-time. One essential component to orchestrating complex automations is the use of attributes & automation parameters (both formerly known as “keys”). In fact, it’s unlikely you’ll ever build an Automation without using these components, but what exactly are they?
Attributes & automation parameters enable the automation author to pass data values from one automation component to the next. During this webinar, our FME Flow Specialists will cover leveraging the three types of these output attributes & parameters in FME Flow: Event, Custom, and Automation. As a bonus, they’ll also be making use of the Split-Merge Block functionality.
You’ll leave this webinar with a better understanding of how to maximize the potential of automations by making use of attributes & automation parameters, with the ultimate goal of setting your enterprise integration workflows up on autopilot.
Session 1 - Intro to Robotic Process Automation.pdfUiPathCommunity
👉 Check out our full 'Africa Series - Automation Student Developers (EN)' page to register for the full program:
https://bit.ly/Automation_Student_Kickstart
In this session, we shall introduce you to the world of automation, the UiPath Platform, and guide you on how to install and setup UiPath Studio on your Windows PC.
📕 Detailed agenda:
What is RPA? Benefits of RPA?
RPA Applications
The UiPath End-to-End Automation Platform
UiPath Studio CE Installation and Setup
💻 Extra training through UiPath Academy:
Introduction to Automation
UiPath Business Automation Platform
Explore automation development with UiPath Studio
👉 Register here for our upcoming Session 2 on June 20: Introduction to UiPath Studio Fundamentals: https://community.uipath.com/events/details/uipath-lagos-presents-session-2-introduction-to-uipath-studio-fundamentals/
AppSec PNW: Android and iOS Application Security with MobSFAjin Abraham
Mobile Security Framework - MobSF is a free and open source automated mobile application security testing environment designed to help security engineers, researchers, developers, and penetration testers to identify security vulnerabilities, malicious behaviours and privacy concerns in mobile applications using static and dynamic analysis. It supports all the popular mobile application binaries and source code formats built for Android and iOS devices. In addition to automated security assessment, it also offers an interactive testing environment to build and execute scenario based test/fuzz cases against the application.
This talk covers:
Using MobSF for static analysis of mobile applications.
Interactive dynamic security assessment of Android and iOS applications.
Solving Mobile app CTF challenges.
Reverse engineering and runtime analysis of Mobile malware.
How to shift left and integrate MobSF/mobsfscan SAST and DAST in your build pipeline.
AppSec PNW: Android and iOS Application Security with MobSF
13 iec t1_s1_oo_ps_session_19
1. Object-Oriented Programming Using C#
Objectives
In this session, you will learn to:
Create custom attributes
Retrieve metadata using reflection
Ver. 1.0 Session 19 Slide 1 of 19
2. Object-Oriented Programming Using C#
Creating Custom Attributes
The .NET Framework allows creation of custom attributes,
which can be used to store information and can be retrieved
at run time.
This information can be related to any target element
depending upon the design and the need of an application.
To create custom attributes, you need to:
1. Define a custom attribute.
2. Name the custom attribute.
3. Construct the custom attribute.
4. Apply the custom attribute to a target element.
Ver. 1.0 Session 19 Slide 2 of 19
3. Object-Oriented Programming Using C#
Creating Custom Attributes (Contd.)
Defining a Custom Attribute:
– A New custom attribute class is derived from the
System.Attribute system class.
– You need to then apply the attribute target using a predefined
attribute to the new custom attribute class, AttributeUsage, as
shown in the following code statement:
[AttributeUsage(AttributeTargets.Class |
AttributeTargets.Constructor |
AttributeTargets.Field |
AttributeTargets.Method |
AttributeTargets.Property,
AllowMultiple = true)]
Ver. 1.0 Session 19 Slide 3 of 19
4. Object-Oriented Programming Using C#
Creating Custom Attributes (Contd.)
The AttributeUsage attribute allows two arguments.
• One argument is a set of flags that indicates the target element.
• The other argument is a flag that indicates whether a given
element might be applied with more than one such attribute.
– Besides the AllowMultiple property there are other
properties that can be used with the attributes. These
properties are:
Inherited
ValidOn
Ver. 1.0 Session 19 Slide 4 of 19
5. Object-Oriented Programming Using C#
Creating Custom Attributes (Contd.)
– The following table lists the various member names of the
AttributeTargets enumerator.
Member Name Attribute Targets
All Elements including assembly, class, class member, delegate, enum, event, field, interface, method,
module, parameter, property, or struct
Assembly Assembly only
Class Instances of the class
ClassMembers Classes, structs, enums, constructors, methods, properties, fields, events, delegates, and interfaces
Constructor Class constructors
Delegate Delegate methods
Enum Defined enumeration
Event Defined events
Field Fields
Interface Interfaces
Method Defined methods
Module A single module
Parameter Parameters of a method
Property Properties (both get and set, if implemented)
Struct Structs
Ver. 1.0 Session 19 Slide 5 of 19
6. Object-Oriented Programming Using C#
Creating Custom Attributes (Contd.)
Naming the Custom Attribute:
The normal convention is to append the word Attribute to the
attribute name.
The compiler supports appending by allowing you to call the
attribute with the shorter version of the name.
Ver. 1.0 Session 19 Slide 6 of 19
7. Object-Oriented Programming Using C#
Creating Custom Attributes (Contd.)
Constructing the Custom Attribute:
– Every attribute must contain at least one constructor.
– Positional parameters are passed through the constructor in
the order declared in the constructor, as shown in the following
code snippet:
public BugFixingAttribute(int BugNo, string
Developer,
string DateFixed)
{
this.BugNo = BugNo;
this.Developer = Developer;
this.DateFixed = DateFixed;
}
Ver. 1.0 Session 19 Slide 7 of 19
8. Object-Oriented Programming Using C#
Creating Custom Attributes (Contd.)
Named parameters are implemented as properties, as shown
in the following code snippet:
public string Remarks
{
get
{
return Remarks;
}
set
{
Remarks = value;
}
}
Ver. 1.0 Session 19 Slide 8 of 19
9. Object-Oriented Programming Using C#
Creating Custom Attributes (Contd.)
– It is common to create read-only properties for the positional
parameters:
public int BugNo
{
get
{
return BugNo;
}
}
Ver. 1.0 Session 19 Slide 9 of 19
10. Object-Oriented Programming Using C#
Creating Custom Attributes (Contd.)
Applying the Custom Attribute:
The attribute can be applied by placing it immediately before its
target.
To test the BugFixAttribute attribute for the preceding example,
you can create a program for a simple class named Calculator
and give it four functions.
You need to assign the BugFixAttribute to the target element
class to record its code-maintenance history, as shown in the
following code snippet:
[BugFixingAttribute(125,"Sara Levo","08/15/06",
Remarks="Return object not specified")]
[BugFixingAttribute(159,"Sara Levo","08/17/06",
Remarks="Data Type Mismatch")]
public class Calculator
Ver. 1.0 Session 19 Slide 10 of 19
11. Object-Oriented Programming Using C#
Retrieving Metadata Using Reflection
• Reflection is used in the process of obtaining type
information at runtime.
• The classes that give access to the metadata of a running
program are in the System.Reflection namespace.
• The System.Reflection namespace contains classes
that allow programmers to obtain information about the
application that is running and to dynamically add types,
values, and objects to that application.
Ver. 1.0 Session 19 Slide 11 of 19
12. Object-Oriented Programming Using C#
Retrieving Metadata Using Reflection (Contd.)
Reflection is generally used for the following tasks:
Viewing metadata
Performing type discovery
Late binding to methods and properties
Reflection emit
Ver. 1.0 Session 19 Slide 12 of 19
13. Object-Oriented Programming Using C#
Retrieving Metadata Using Reflection (Contd.)
Viewing Metadata:
– To view metadata using reflection, the MemberInfo object of
the System.Reflection namespace needs to be initialized.
– This object helps discover the attributes of a member and to
provide access to metadata.
Ver. 1.0 Session 19 Slide 13 of 19
14. Object-Oriented Programming Using C#
Retrieving Metadata Using Reflection (Contd.)
Performing Type Discovery:
– Reflection also helps to explore and examine the contents of
an assembly.
– It helps find the types associated with a module; the methods,
fields, properties, and events associated with a type, as well as
the signatures of each type of methods; the interfaces
supported by the type and the type's base class.
– Performing type discovery can also be achieved through the
Object Browser window of Visual Studio .NET IDE.
Ver. 1.0 Session 19 Slide 14 of 19
15. Object-Oriented Programming Using C#
Retrieving Metadata Using Reflection (Contd.)
Late Binding:
– Binding a method at runtime is called late binding.
– Reflection provides the flexibility of choosing an object you will
bind at runtime and calling it programmatically.
Ver. 1.0 Session 19 Slide 15 of 19
16. Object-Oriented Programming Using C#
Using Delegates with Events
Reflection Emit:
Reflection emit allows creation of new types at run time and
further use those types to perform certain tasks.
Reflection emit enables you to define new modules and new
types with methods.
Ver. 1.0 Session 19 Slide 16 of 19
17. Object-Oriented Programming Using C#
Demo: Creating and Querying Custom Attribute Information
Problem Statement:
– John is a developer in a software development company. The
program manager wants John to ensure proper documentation
of the business logic of the Calculator application as a part of
development process. Although, the company maintains a
separate sheet to describe the use of classes and their version
number, the program manager wants to attach that sheet to
classes.
[Hint: Use the Calculator class given in the preceding section
for providing the business logic.]
Ver. 1.0 Session 19 Slide 17 of 19
18. Object-Oriented Programming Using C#
Demo: Creating and Querying Custom Attribute Information
(Contd.)
Solution:
To create a console based application for Calculator
application, John needs to perform the following tasks:
1. Create a console-based application.
2. Build and execute an application.
Ver. 1.0 Session 19 Slide 18 of 19
19. Object-Oriented Programming Using C#
Summary
In this session, you learned that:
Custom attributes are attributes that you create according to
your requirement.
The element to which you attach an attribute is called an
attribute target.
Reflection is used in the process of obtaining type information
at run time.
Reflection is generally used for the following tasks:
• Viewing metadata
• Performing type discovery
• Late binding to methods and properties
• Reflection emit
Ver. 1.0 Session 19 Slide 19 of 19
Editor's Notes
Students have learnt the structure of different types of dimensions and the importance of surrogate keys in Module I. In this session, students will learn to load the data into the dimension tables after the data has been transformed in the transformation phase. In addition, students will also learn to update data into these dimension tables. Students already know about different types of dimension tables. Therefore, you can start the session by recapitulating the concepts. Initiate the class by asking the following questions: 1. What are the different types of dimensions? 2. Define flat dimension. 3. What are conformed dimension? 4. Define large dimension. 5. Define small dimension. 6. What is the importance of surrogate key in a dimension table? Students will learn the loading and update strategies theoretically in this session. The demonstration to load and update the data in the dimension table will be covered in next session.
Students know the importance of surrogate keys. In this session students will learn the strategy to generate the surrogate key. Give an example to explain the strategy to generate the surrogate keys by concatenating the primary key of the source table with the date stamp. For example, data from a Product table has to be loaded into the Product_Dim dimension table on Feb 09, 2006. The product_code is the primary key column in the Product table. To insert the surrogate key values before loading the data into the dimension table, you can combine the primary key value with the date on which the data has to be loaded. In this case the surrogate key value can be product_code+09022006.
Students know what is the structure of Flat dimension. You can initiate the session by asking the following questions: 1. What are flat dimension tables? 2. What is the structure of flat dimension? 3. Given examples of a flat dimension? Next, tell the strategy to load the data into the flat dimension table. You can explain the loading strategy with the help of the example given in SG. Continue this session by asking the following questions: 4. What are large flat dimension tables? 5. Give examples of large flat dimensions? Then, explain the strategy to load data into the large flat dimension table. Before explaining the strategy to load data into the small dimension table ask the following questions and the tell the strategy to load the data into the dimension table. 6. What are small flat dimension tables? 7. Give examples of small flat dimension tables. With the help of these questions, students will be able to recall about flat dimensions, they have learnt in Module I. Explain this topic with the help of an example given in SG.
Students know what is the structure of Flat dimension. You can initiate the session by asking the following questions: 1. What are flat dimension tables? 2. What is the structure of flat dimension? 3. Given examples of a flat dimension? Next, tell the strategy to load the data into the flat dimension table. You can explain the loading strategy with the help of the example given in SG. Continue this session by asking the following questions: 4. What are large flat dimension tables? 5. Give examples of large flat dimensions? Then, explain the strategy to load data into the large flat dimension table. Before explaining the strategy to load data into the small dimension table ask the following questions and the tell the strategy to load the data into the dimension table. 6. What are small flat dimension tables? 7. Give examples of small flat dimension tables. With the help of these questions, students will be able to recall about flat dimensions, they have learnt in Module I. Explain this topic with the help of an example given in SG.
Students know what is the structure of Flat dimension. You can initiate the session by asking the following questions: 1. What are flat dimension tables? 2. What is the structure of flat dimension? 3. Given examples of a flat dimension? Next, tell the strategy to load the data into the flat dimension table. You can explain the loading strategy with the help of the example given in SG. Continue this session by asking the following questions: 4. What are large flat dimension tables? 5. Give examples of large flat dimensions? Then, explain the strategy to load data into the large flat dimension table. Before explaining the strategy to load data into the small dimension table ask the following questions and the tell the strategy to load the data into the dimension table. 6. What are small flat dimension tables? 7. Give examples of small flat dimension tables. With the help of these questions, students will be able to recall about flat dimensions, they have learnt in Module I. Explain this topic with the help of an example given in SG.
Students know what is the structure of Flat dimension. You can initiate the session by asking the following questions: 1. What are flat dimension tables? 2. What is the structure of flat dimension? 3. Given examples of a flat dimension? Next, tell the strategy to load the data into the flat dimension table. You can explain the loading strategy with the help of the example given in SG. Continue this session by asking the following questions: 4. What are large flat dimension tables? 5. Give examples of large flat dimensions? Then, explain the strategy to load data into the large flat dimension table. Before explaining the strategy to load data into the small dimension table ask the following questions and the tell the strategy to load the data into the dimension table. 6. What are small flat dimension tables? 7. Give examples of small flat dimension tables. With the help of these questions, students will be able to recall about flat dimensions, they have learnt in Module I. Explain this topic with the help of an example given in SG.
Students know what is the structure of Flat dimension. You can initiate the session by asking the following questions: 1. What are flat dimension tables? 2. What is the structure of flat dimension? 3. Given examples of a flat dimension? Next, tell the strategy to load the data into the flat dimension table. You can explain the loading strategy with the help of the example given in SG. Continue this session by asking the following questions: 4. What are large flat dimension tables? 5. Give examples of large flat dimensions? Then, explain the strategy to load data into the large flat dimension table. Before explaining the strategy to load data into the small dimension table ask the following questions and the tell the strategy to load the data into the dimension table. 6. What are small flat dimension tables? 7. Give examples of small flat dimension tables. With the help of these questions, students will be able to recall about flat dimensions, they have learnt in Module I. Explain this topic with the help of an example given in SG.
Students know what is the structure of Flat dimension. You can initiate the session by asking the following questions: 1. What are flat dimension tables? 2. What is the structure of flat dimension? 3. Given examples of a flat dimension? Next, tell the strategy to load the data into the flat dimension table. You can explain the loading strategy with the help of the example given in SG. Continue this session by asking the following questions: 4. What are large flat dimension tables? 5. Give examples of large flat dimensions? Then, explain the strategy to load data into the large flat dimension table. Before explaining the strategy to load data into the small dimension table ask the following questions and the tell the strategy to load the data into the dimension table. 6. What are small flat dimension tables? 7. Give examples of small flat dimension tables. With the help of these questions, students will be able to recall about flat dimensions, they have learnt in Module I. Explain this topic with the help of an example given in SG.
Student already have learnt about type 2 SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 2 SCDs? Given an example to explain type 2 SCDs. This will recapitulate what they have learnt about type 2 SCD in Module 1. Now explain the strategy to update the data into these dimension tables with help the example given in SG. After explaining the examples, you can ask students to think of an example of a type 2 SCD and then tell the strategy to update the data into this dimension table.
Student already have learnt about SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 1 SCDs? Given an example to explain type 1 SCDs. This will recapitulate what they have learnt about type 1 SCD in Module 1. Now explain the strategy to load the data into these dimension tables with help of the given diagram. Relate this diagram to the example given in SG.
Student already have learnt about SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 1 SCDs? Given an example to explain type 1 SCDs. This will recapitulate what they have learnt about type 1 SCD in Module 1. Now explain the strategy to load the data into these dimension tables with help of the given diagram. Relate this diagram to the example given in SG.
Student already have learnt about SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 1 SCDs? Given an example to explain type 1 SCDs. This will recapitulate what they have learnt about type 1 SCD in Module 1. Now explain the strategy to load the data into these dimension tables with help of the given diagram. Relate this diagram to the example given in SG.
Student already have learnt about SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 1 SCDs? Given an example to explain type 1 SCDs. This will recapitulate what they have learnt about type 1 SCD in Module 1. Now explain the strategy to load the data into these dimension tables with help of the given diagram. Relate this diagram to the example given in SG.
Student already have learnt about SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 1 SCDs? Given an example to explain type 1 SCDs. This will recapitulate what they have learnt about type 1 SCD in Module 1. Now explain the strategy to load the data into these dimension tables with help of the given diagram. Relate this diagram to the example given in SG.
Student already have learnt about SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 1 SCDs? Given an example to explain type 1 SCDs. This will recapitulate what they have learnt about type 1 SCD in Module 1. Now explain the strategy to load the data into these dimension tables with help of the given diagram. Relate this diagram to the example given in SG.
Student already have learnt about SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 1 SCDs? Given an example to explain type 1 SCDs. This will recapitulate what they have learnt about type 1 SCD in Module 1. Now explain the strategy to load the data into these dimension tables with help of the given diagram. Relate this diagram to the example given in SG.
Student already have learnt about SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 1 SCDs? Given an example to explain type 1 SCDs. This will recapitulate what they have learnt about type 1 SCD in Module 1. Now explain the strategy to load the data into these dimension tables with help of the given diagram. Relate this diagram to the example given in SG.
Student already have learnt about SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 1 SCDs? Given an example to explain type 1 SCDs. This will recapitulate what they have learnt about type 1 SCD in Module 1. Now explain the strategy to load the data into these dimension tables with help of the given diagram. Relate this diagram to the example given in SG.
You can summarize the session by running through the summary given in SG. In addition, you can also ask students summarize what they have learnt in this session.