Mobile apps are programs designed to run on mobile devices like smartphones and tablets. There are three main types - native apps written for a specific platform, web apps that run in a mobile browser, and hybrid apps that are native apps with a web view component. Native apps have direct access to device features but must be developed for each platform separately, while web apps can be used across platforms but have limited features. Popular mobile platforms include Android, iOS, and Windows Phone, each with their own programming languages, SDKs, and IDEs for app development. Mobile UIs are optimized for touchscreens and mobility with gestures, simple designs, and standard interface elements.
This document provides a software requirements specification for a social networking website. It contains 3 milestones that outline the purpose, functions, and design of the social networking site. Milestone 1 introduces the document and defines the product scope. Milestone 2 describes the product perspective, functions, operating environment, and interface requirements. It includes flow diagrams and interface designs. Milestone 3 covers the design phase, work distribution, and planning chart for the social networking website project. The document was prepared by 5 individuals and provides a requirements specification for developing a social media site.
This document provides an overview of advanced C# concepts, including:
- C# can be used to create various types of applications like console apps, Windows forms, web services, and ASP.NET MVC apps.
- Assemblies are deployment units that contain code and metadata. They can be EXEs or DLLs.
- Types in C# can contain fields, methods, properties, and events. Methods are not virtual by default. Access modifiers include private, protected, internal, and public.
- Objects are allocated in memory and cleaned up through constructors, finalizers, and the garbage collector. Exceptions provide a way to handle errors.
This document discusses iterators and custom iteration in .NET. It explains that data structures know how to iterate themselves by default, but sometimes additional ways of iteration are needed. The iterator pattern provides a nice abstraction for defining custom ways to iterate over data. Iterators are implemented using yield return, which allows iteration to be lazy and only occur when the sequence is iterated. LINQ takes this further by allowing declarative specification of queries over data using keywords like select, where, orderby etc. This avoids explicitly writing iteration code and makes queries more readable and reusable.
The document discusses problems with imperative code and how functional programming ideas in C# can help address these problems. It introduces delegates as a way to treat code as data by storing functions in variables and passing them as parameters. This allows separating logic from execution through higher-order functions like mapping and filtering collections. Lambdas and closures make code more concise. Together these techniques help write less, more reusable code with fewer bugs.
The document summarizes key classes in the C# standard library including generics, extension methods, Math, DateTime, Regex, collections, Nullable<T>, Path, DriveInfo, Directory, File, encodings, streams, and serialization/deserialization. It provides code examples and links to Microsoft documentation for each topic.
This document provides an overview of advanced C# concepts, including:
- C# can be used to create various types of applications like console apps, Windows forms, web services, and ASP.NET MVC apps.
- Assemblies are deployment units that contain code and metadata. They can be EXEs or DLLs.
- Types in C# can contain fields, methods, properties, and events. Methods are not virtual by default. Access modifiers include private, protected, internal, and public.
- Objects are allocated in memory and cleaned up through constructors, finalizers, and the garbage collector. Exceptions provide a way to handle errors.
This document discusses iterators and custom iteration in .NET. It explains that data structures know how to iterate themselves by default, but sometimes additional ways of iteration are needed. The iterator pattern provides a nice abstraction for defining custom ways to iterate over data. Iterators are implemented using yield return, which allows iteration to be lazy and only occur when the sequence is iterated. LINQ takes this further by allowing declarative specification of queries over data using keywords like select, where, orderby etc. This avoids explicitly writing iteration code and makes queries more readable and reusable.
The document discusses problems with imperative code and how functional programming ideas in C# can help address these problems. It introduces delegates as a way to treat code as data by storing functions in variables and passing them as parameters. This allows separating logic from execution through higher-order functions like mapping and filtering collections. Lambdas and closures make code more concise. Together these techniques help write less, more reusable code with fewer bugs.
The document summarizes key classes in the C# standard library including generics, extension methods, Math, DateTime, Regex, collections, Nullable<T>, Path, DriveInfo, Directory, File, encodings, streams, and serialization/deserialization. It provides code examples and links to Microsoft documentation for each topic.