This document discusses the evolution of data access from 1990 to 2010, focusing on object-relational mapping (ORM) techniques. It provides an overview of ORM as an abstraction technique for working with relational data as objects. The document outlines several ORM options available for .NET developers and describes Microsoft's strategic ORM technologies - LINQ to SQL and the ADO.NET Entity Framework. It provides details on Entity Framework's Entity Data Model and how to consume an EDM to query and manage data.
Learn Entity Framework in a day with Code First, Model First and Database FirstJibran Rasheed Khan
Learn Entity Framework in a day with Code First, Model First and Database First
•Introduction to Entity Framework (EF)
•Architecture
•What’s new!
•Different approaches to work with (Code first, Database first and model first)
•Choosing right work model
•Pictorial Tour to each model
•Features & Advantages
•Question & Answer
for any help and understanding feel free to contact
thank you
Entity Framework Core session on .NET core workshop. This slides contains the presentation on getting started on with Entity Framework Core 2.2. This was presented on Workshop On .Net
event held at Academia International College Tyagal - Lalitpur, Nepal. https://www.facebook.com/events/507837526666020/
And codes on the workshop is available on github https://github.com/kiranshahi/Todo-App
This presentation gives introduction to ADO.Net.
Basic introduction to connected & Disconnected architecture.
and explain the each every component in Ado.net
Learn Entity Framework in a day with Code First, Model First and Database FirstJibran Rasheed Khan
Learn Entity Framework in a day with Code First, Model First and Database First
•Introduction to Entity Framework (EF)
•Architecture
•What’s new!
•Different approaches to work with (Code first, Database first and model first)
•Choosing right work model
•Pictorial Tour to each model
•Features & Advantages
•Question & Answer
for any help and understanding feel free to contact
thank you
Entity Framework Core session on .NET core workshop. This slides contains the presentation on getting started on with Entity Framework Core 2.2. This was presented on Workshop On .Net
event held at Academia International College Tyagal - Lalitpur, Nepal. https://www.facebook.com/events/507837526666020/
And codes on the workshop is available on github https://github.com/kiranshahi/Todo-App
This presentation gives introduction to ADO.Net.
Basic introduction to connected & Disconnected architecture.
and explain the each every component in Ado.net
Cloud Application Development – The Future is nowSPEC INDIA
Cloud computing has been carving a niche for itself in each and every business, be it any domain, any geography. Providing a big relief to the business owners in terms of maintaining infrastructure, costs, efficiency, security and profitability, Cloud Application Development has a strong hold in the present as well as in the future to come. Have a look at certain attributes that makes cloud computing as the technology of today and tomorrow.
Get More at: http://blog.spec-india.com/cloud-application-development-set-rule-today-tomorrow/
ECMAScript is the name of the international standard that defines JavaScript. ES6 → ECMAScript 2015. Latest ECMAScript version is ES7 which is ECMAScript 2016.
Basically it is a superset of es5
Data science in ruby is it possible? is it fast? should we use it?Rodrigo Urubatan
These are the slides I used in my presentation about Data Science in Ruby during the first Rubyconf Thailand
Really great event!
feel free to send questions
Accesibilidad práctica con HTML5, CSS3 y WAI-ARIAManuel Razzari
Presentado por Camilo Kawerín y Manuel Razzari el 28/11/2012 en http://ux2012.com.ar La Jornada Anual de Experiencia de Usuario en Argentina, organizado por IxDA Buenos Aires.
Have you looked at any Gutenberg code recently?
If you’re not familiar with React and it’s proprietary JSX “language”, it can make your head spin a bit.
This is slide deck from the WordPress Gwinnett meetup where Micah Wood gives an introduction to React's JSX syntax, gotchas, and nuances.
You can view the accompanying video here: https://www.youtube.com/watch?v=js0mD2mDaa0
Equivalences and diffrences between SysML and Arcadia / CapellaObeo
Designing complex and critical systems requires a level of rigor in engineering practices that only formalized and tool-supported modeling approaches can provide.
The Arcadia / Capella solution embeds a methodological guidance that constitutes one of its most significant originalities and success factors. By lowering the learning curve for systems engineers, Capella is an enabler for large scale MBSE adoption.
Largely inspired from several industry standards, Arcadia / Capella simultaneously form an enrichment and a simplification of SysML: a large proportion of the core concepts of the Arcadia method are aligned on the SysML ones, and most SysML diagrams have twins in Capella.
In this webinar, we will:
- Show to which extent Arcadia / Capella can be considered as a “SysML-like” solution, by illustrating diagrams and concepts equivalences
- Present the main differences between SysML and Arcadia / Capella
and provide rationales
Leveraging Knowledge Graphs in your Enterprise Knowledge Management SystemSemantic Web Company
Knowledge graphs and graph-based data in general are becoming increasingly important for addressing various data management challenges in industries such as financial services, life sciences, healthcare or energy.
At the core of this challenge is the comprehensive management of graph-based data, ranging from taxonomy to ontology management to the administration of comprehensive data graphs along with a defined governance framework. Various data sources are integrated and linked (semi) automatically using NLP and machine learning algorithms. Tools for securing high data quality and consistency are an integral part of such a platform.
PoolParty 7.0 can now handle a full range of enterprise data management tasks. Based on agile data integration, machine learning and text mining, or ontology-based data analysis, applications are developed that allow knowledge workers, marketers, analysts or researchers a comprehensive and in-depth view of previously unlinked data assets.
At the heart of the new release is the PoolParty GraphEditor, which complements the Taxonomy, Thesaurus, and Ontology Manager components that have been around for some time. All in all, data engineers and subject matter experts can now administrate and analyze enterprise-wide and heterogeneous data stocks with comfortable means, or link them with the help of artificial intelligence.
Relational databases were conceived to digitize paper forms and automate well-structured business processes, and still have their uses. But RDBMS cannot model or store data and its relationships without complexity, which means performance degrades with the increasing number and levels of data relationships and data size. Additionally, new types of data and data relationships require schema redesign that increases time to market.
A native graph database like Neo4j naturally stores, manages, analyzes, and uses data within the context of connections meaning Neo4j provides faster query performance and vastly improved flexibility in handling complex hierarchies than SQL.
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...Dmitry Andreev
Майкрософт, по совету наших пользователей, пересмотрел линейку продуктов VSTS и объединил издание для разработчиков с изданием для баз данных. VSTS 2010 предоставляет разработчикам ряд возможностей для улучшения процесса разработки БД, упрощения работы со структурами баз данных, генерации тестовых данных и организации развертывания и тестирования с помощью инструментария по управлению сборками. Интерпретация схемы объектов и взаимозависимостей между объектами БД позволяет разработчикам находить и устранять ошибки на более ранних стадиях проектирования. Интеграция исходников БД и кода приложения значительно упростит процесс разработки без дополнительных материальных затрат.
В докладе будет рассказано о том, как организовать процесс разработки базы данных в Visual Studio Team System 2010 в контексте новых возможностей.
Cloud Application Development – The Future is nowSPEC INDIA
Cloud computing has been carving a niche for itself in each and every business, be it any domain, any geography. Providing a big relief to the business owners in terms of maintaining infrastructure, costs, efficiency, security and profitability, Cloud Application Development has a strong hold in the present as well as in the future to come. Have a look at certain attributes that makes cloud computing as the technology of today and tomorrow.
Get More at: http://blog.spec-india.com/cloud-application-development-set-rule-today-tomorrow/
ECMAScript is the name of the international standard that defines JavaScript. ES6 → ECMAScript 2015. Latest ECMAScript version is ES7 which is ECMAScript 2016.
Basically it is a superset of es5
Data science in ruby is it possible? is it fast? should we use it?Rodrigo Urubatan
These are the slides I used in my presentation about Data Science in Ruby during the first Rubyconf Thailand
Really great event!
feel free to send questions
Accesibilidad práctica con HTML5, CSS3 y WAI-ARIAManuel Razzari
Presentado por Camilo Kawerín y Manuel Razzari el 28/11/2012 en http://ux2012.com.ar La Jornada Anual de Experiencia de Usuario en Argentina, organizado por IxDA Buenos Aires.
Have you looked at any Gutenberg code recently?
If you’re not familiar with React and it’s proprietary JSX “language”, it can make your head spin a bit.
This is slide deck from the WordPress Gwinnett meetup where Micah Wood gives an introduction to React's JSX syntax, gotchas, and nuances.
You can view the accompanying video here: https://www.youtube.com/watch?v=js0mD2mDaa0
Equivalences and diffrences between SysML and Arcadia / CapellaObeo
Designing complex and critical systems requires a level of rigor in engineering practices that only formalized and tool-supported modeling approaches can provide.
The Arcadia / Capella solution embeds a methodological guidance that constitutes one of its most significant originalities and success factors. By lowering the learning curve for systems engineers, Capella is an enabler for large scale MBSE adoption.
Largely inspired from several industry standards, Arcadia / Capella simultaneously form an enrichment and a simplification of SysML: a large proportion of the core concepts of the Arcadia method are aligned on the SysML ones, and most SysML diagrams have twins in Capella.
In this webinar, we will:
- Show to which extent Arcadia / Capella can be considered as a “SysML-like” solution, by illustrating diagrams and concepts equivalences
- Present the main differences between SysML and Arcadia / Capella
and provide rationales
Leveraging Knowledge Graphs in your Enterprise Knowledge Management SystemSemantic Web Company
Knowledge graphs and graph-based data in general are becoming increasingly important for addressing various data management challenges in industries such as financial services, life sciences, healthcare or energy.
At the core of this challenge is the comprehensive management of graph-based data, ranging from taxonomy to ontology management to the administration of comprehensive data graphs along with a defined governance framework. Various data sources are integrated and linked (semi) automatically using NLP and machine learning algorithms. Tools for securing high data quality and consistency are an integral part of such a platform.
PoolParty 7.0 can now handle a full range of enterprise data management tasks. Based on agile data integration, machine learning and text mining, or ontology-based data analysis, applications are developed that allow knowledge workers, marketers, analysts or researchers a comprehensive and in-depth view of previously unlinked data assets.
At the heart of the new release is the PoolParty GraphEditor, which complements the Taxonomy, Thesaurus, and Ontology Manager components that have been around for some time. All in all, data engineers and subject matter experts can now administrate and analyze enterprise-wide and heterogeneous data stocks with comfortable means, or link them with the help of artificial intelligence.
Relational databases were conceived to digitize paper forms and automate well-structured business processes, and still have their uses. But RDBMS cannot model or store data and its relationships without complexity, which means performance degrades with the increasing number and levels of data relationships and data size. Additionally, new types of data and data relationships require schema redesign that increases time to market.
A native graph database like Neo4j naturally stores, manages, analyzes, and uses data within the context of connections meaning Neo4j provides faster query performance and vastly improved flexibility in handling complex hierarchies than SQL.
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...Dmitry Andreev
Майкрософт, по совету наших пользователей, пересмотрел линейку продуктов VSTS и объединил издание для разработчиков с изданием для баз данных. VSTS 2010 предоставляет разработчикам ряд возможностей для улучшения процесса разработки БД, упрощения работы со структурами баз данных, генерации тестовых данных и организации развертывания и тестирования с помощью инструментария по управлению сборками. Интерпретация схемы объектов и взаимозависимостей между объектами БД позволяет разработчикам находить и устранять ошибки на более ранних стадиях проектирования. Интеграция исходников БД и кода приложения значительно упростит процесс разработки без дополнительных материальных затрат.
В докладе будет рассказано о том, как организовать процесс разработки базы данных в Visual Studio Team System 2010 в контексте новых возможностей.
Building nTier Applications with Entity Framework Services (Part 1)David McCarter
Learn how to build real world nTier applications with the new Entity Framework and related services. With this new technology built into .NET, you can easily wrap an object model around your database and have all the data access automatically generated or use your own stored procedures and views. The session will demonstrate how to create and consume these new technologies from the ground up and focus on database modeling including views and stored procedures along with coding against the model via LINQ. Dynamic data website will also be demonstrated.
Building nTier Applications with Entity Framework Services (Part 1)David McCarter
Learn how to build real world nTier applications with the new Entity Framework and related services. With this new technology built into .NET, you can easily wrap an object model around your database and have all the data access automatically generated or use your own stored procedures and views. The session will demonstrate how to create and consume these new technologies from the ground up and focus on database modeling including views and stored procedures along with coding against the model via LINQ. Dynamic data website will also be demonstrated. Lots of code! Make sure to attend Part 2.
Building N Tier Applications With Entity Framework Services 2010David McCarter
Learn how to build real world nTier applications with the new Entity Framework and related services introduced in .NET 3.5 SP1. With this new technology built into .NET, you can easily wrap an object model around your database and have all the data access automatically generated or use your own stored procedures and views. Then learn how to easily and securely expose your object model using WCF with just a few line of code using ADO.NET Data Services. The session will demonstrate how to create and consume these new technologies from the ground up. Lots of code!
Windows Azure Platform: Articles from the Trenches, Volume OneEric Nelson
Developers have been exploring the possibilities opened up by the Windows Azure Platform for Cloud Computing. This book pulls together great articles from many of those developers who have been active with the Windows Azure Platform to hopefully help others become successful. There are twenty articles in this first volume covering everything from getting started to implementing best practices for elastic applications.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
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.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
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.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
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.
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!
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
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
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.
1. Eric Nelson
Developer & Platform Group
Microsoft Ltd
eric.nelson@microsoft.com
http://geekswithblogs.net/IUpdateable
http://twitter.com/ericnel
2. Accessing data in 1990
• ODBC, embedded SQL
Accessing data in 2000
• ADO, Stored Procedures
Accessing data in 2005
• ADO.NET, Datasets, DataReaders
Accessing data in 2010
• ORM baby!
3. What is it?
an Abstraction
technique for working with relational tables as if they
were objects in memory
Intention is to hide away the complexity of the
underlying tables and give a uniform way of working
with data
Why use it?
Developer productivity
Retain database independence
Note:
Using an ORM does not mean you must use the ORM!
4. Many ORMs out there
LLBLGen Pro http://www.llblgen.com/
Nhibernate http://www.hibernate.org/343.html
EntitySpaces http://www.entityspaces.net/Portal/Default.aspx
Open Access http://www.telerik.com/products/orm.aspx
DevForce http://www.ideablade.com/
XPO http://www.devexpress.com/Products/NET/ORM/
Lightspeed
http://www.mindscape.co.nz/products/LightSpeed/default.aspx
Plus many, many more
No clear “winner” = relatively little
adoption of ORM
Developers waiting on Microsoft
Of 31 .NET ORMs in 2003, 9 lasted to 2008
5. Typed Datasets (cough) – shipped
ObjectSpaces “v1” – never shipped
ObjectSpaces “v2” – never shipped
Microsoft Business Framework – never shipped
WinFS – never shipped
LINQ to SQL - shipped November 2007
Visual Studio 2008 & .NET Framework 3.5
LINQ to Entities - shipped August 2008
Visual Studio 2008 SP1 & .NET Framework 3.5 SP1
Note: LINQ to Entities is the most visible part of the
ADO.NET Entity Framework
6. Entity Framework and LINQ to Entities is our strategic
technology
Entity Framework v2 in VS2010 and .NET Framework 4.0
Best of LINQ to SQL moves into LINQ to Entities
Microsoft is using it
Data Services - shipping
Reporting Services
Microsoft “M”
Partners supporting it
Database Vendors – IBM,OpenLink, Data Direct, Devart etc
ORM vendors supporting it
DevForce now target Entity Framework, replacing their own
LLBLGen v3 will target Entity Framework as well as their own
It is not just about ORM
7. What is LINQ?
LINQ is not about databases, it is about objects
LINQ = Language-Integrated Query
Extensions to programming languages to query objects in memory
Why use it?
Productivity!!! LINQ rocks
www.linqpad.net
We ship
LINQ to Objects
LINQ to XML
LINQ to Datasets
LINQ to SQL – just SQL Server
LINQ to Entities – added in .NET Framework 3.5 SP1
Others make LINQ to Flickr etc
9. LINQ to SQL LINQ to Entities
Database Support SQL Server SQL Server, DB2,
Oracle, Sybase,
MySQL ...
Object Relational Simple Complex
Mapping
Capabilities
Not strategic
Status Strategic
Often
Annoying Rarely
10. Entity Framework is not just about ORM
Entity Framework v1 is being adopted
Typically on applications expected to “live” a
long time
Entity Framework is only .NET 3.5 SP1 and
above
Entity Framework is probably not the best
choice for a “short lived” SQL Server
applications
Entity Framework v1 has “warts”
Designer
It is annoying – buggy, clunky
Exposes subset of the functionality
Does not support model first
N-tier story
Stored Procedure Support
Foreign Keys
PoCo
Guids
SQL 2008 New Types
11. “EF is still cutting
development time
“the entity framework
in half. Ya gotta
can kiss my damn
love it.”
ass - this shit is
ridiculous”
12.
13. What is it?
Tools and services to create an Entity Data Model
EDM gives ORM to SQL Server, Oracle, DB2 etc
Tools and services for consuming an Entity Data
Model
Why use it?
Productivity
Complex mapping between entities and database
tables
Works great with ADO.NET Data Services
Notes
Strategic but just released...
14. Entity Data Model
Application model
Mapped to a persistence
store
Conceptual
Comprised of three
layers:
Conceptual (CSDL)
Mapping (MSL) Mapping
Storage (SSDL)
Database agnostic
Comprised of:
Storage
Entities
Associations
Functions
18. Queries materialized as Objects
ObjectContext
ObjectQuery<T>
Built on top of Entity Client
Two query options:
Entity SQL
LINQ
Runtime services:
Unit of work
Identity tracking
Eager/explicit loading
20. ORM is an abstraction layer about data
• Productivity
• Database Independence
Microsoft has two ORMs
• LINQ to SQL – only SQL Server
• Entity Framework (includes LINQ to Entities) – many RDBMS, strategic
ADO.NET Entity Framework includes all the other bits
• EDM, Linq to Entities, ESQL, Object Services
• Part of .NET Framework 3.5 SP1
Entity Data Model – mapping from conceptual to store
• CSDL = Conceptual Schema Definition Language
• SSDL = Store Schema Definition Language
• MSDL = Mapping Schema Definition Language
Two query languages
• ESQL = Entity SQL. Read only query language similar to SQL
• LINQ to Entities = Language Integrated Query to the EDM
21. • .NET Framework 4.0
Entity Framework v2 • http://blogs.msdn.com/efdesign
Entity Framework • Across MS Products and Technologies
more widely adopted • Reporting Services vNext
• Better ORM capabilities in LINQ to Entities
Rough edges
• POCO support, N-Tier, Model First
removed
Technologies work • e.g. ASP.NET Dynamic Data and Entity
Framework
better together
• Less xml editing during development
Better tooling
22. 1990 to • Data Access technology remained
reasonably static
2007 - • Procedural, API access
• Surfaced the database schema
Tables • No clear ORM choice
• LINQ – excellent addition to the .NET
2008 – languages
• Entity Framework and the EDM – strategic
Objects investment
• Productivity leap
Estimated Time: 6 minutesTalking Points: When we talk about the Entity Framework, we’re actually talking about two things: The Entity Data Model (EDM) The Entity Framework It’s important to delineate the two as separate, but complementing technologies The EDM is a set of layers that make up your application’s model, as well as it’s mapping to an underlying data store. Made up of three files: CSDL (Conceptual Schema Definition Language) MSL (Mapping Specification Language) SSDL (Storage Schema Definition Language) This separation of concerns allows great flexibility: Model your application the way you want regardless of the state/structure of its underlying data store Normalize your database as much as you need without worrying about affecting the interface of the application’s object model The EDM represents a re-useable application model that can be leveraged from within many applications/environments and persisted across numerous databases. The Entity Data Model is RDMS agnostic, and numerous database vendors are currently developing providers: Oracle, DB2, MySQL, PostgreSQL, VistaDB, SQLite, Sybase, Informix, etc. The Entity Data Model primarily of three main concepts: Entities, which represent your domain objects. Associations, which represent a relationship between two entities. Functions, which represent stored procedures or UDFs in your database that can be mapped to model-level functionality. Because there will be plenty of situations where you’ll need to use stored procedures, the Entity Data Model allows you to map functions in your model to a store procedure in your database. This is useful because you can leverage a stored procedure without having to write ADO.NET code to call it, you can simply call a function on your model. EDM functions are represented as methods on your ObjectContext class.
Estimated Time: 3 minutesTalking Points: This diagram helps to illustrate how each of the Entity Framework’s query options relate to each other. At the core of it all is the database-specific provider. This layer is what translates the query into the SQL flavor required for the underlying data source. Above that is the Entity Client API, which takes the Entity Framework query and passes in down to the database specific provider. If you want to use the Entity Client API directly, you see that you’re only query option is Entity SQL, and because it sits below Object Services, you don’t get any of its benefits. If you want to materialize your queries as objects, and get things like change tracking, identity mapping, relationship loading, etc. then you would use object services, that delegates its queries down to the Entity Client layer. When using Object Services you can leverage both Entity SQL and LINQ to make your queries.
Estimated Time: 4 minutesTalking Points: The Entity Client is an Entity Framework “port” of the familiar object model of classes used in traditional ADO.NET programming, including:EntityCommandEntityConnectionEntityConnectionStringBuilderEntityDataReaderEntityParameterEntityTransaction Because of this fact it makes it a prime choice for developers migrating to the Entity Framework from ADO.NET. Just like traditional ADO.NET, your queries are returned as sequential text-based data that can iterated over using an EntityDataReader. This is great for performance, but lacks the rich object model that was created as part of your EDM. Entity Client gives you read-only access to your EDM. If data modification is required, you’ll have to use Object Services, which we’ll talk about in a bit. When using Entity Client, your queries are written using Entity SQL, which we’ll talk about in the next slide.
Estimated Time: 5 minutesTalking Points: While the Entity Client API is great and performant, it lacks the use of our created object model, as well as the ability to update data in our model. The Object Services API sits on top of Entity Client, and provides object materialization on top of our queries. This means that instead of getting text-based results, we get back a collection of CLR objects that we can easily work with. The two mains components of the Object Services taxonomy are: ObjectContext, and ObjectQuery<T>ObjectContext is equivalent to an EntityConnection, and is what manages our connection to the EDM as well as provides crucial services for working with our data.ObjectQuery is equivalent to an EntityCommand and represents a single query executed against our EDM, that is manifested back as strongly-typed objects. Object Services allows you to write queries using two flavors: Entity SQL LINQ To Entities The same Entity SQL queries you would write using Entity Client can be leveraged with Object Services, but with the added benefits you get with the higher abstraction level (i.e. object materialization). While Entity SQL is great for scenarios that require a dynamic query, or greater control over your query’s shape, you’re still working with a string that is error-prone. In addition to Entity SQL, Object Services allows you to write your queries against it in LINQ which provides you with strong-typing, error-checking, and a higher level of abstraction from Entity SQL. If you are already familiar with LINQ, then you don’t have to master Entity SQL in order to query an EDM, because LINQ To Entities will make the translation for you. In addition to object materialization, object services provides you with other benefits/services: Unit of work Your Object Context represents your unit of work, which aggregates all changes made to all entities attached/contained in it, so that when you want to push those changes back to the server, you can do so in a single batch. Identity tracking The ObjectContext keeps track of the entities you’ve queried for by key, so that if you later request the same entity (by key), using the same ObjectContext instance, it will return you the instance it already has instead of re-hitting the database. Eager/explicit loading The Entity Framework doesn’t pre-load any relationship properties for you. If you want to query an entity as well as some of it’s related entities, you’ll need to explicitly request that by performing a “span” using the Include method of the ObjectQuery<T> class. Alternatively you can call the Load method on your entity’s relationship property.
LINQ has two syntaxesLambda/Method Syntax = customer.Select(...)Comprehension/Query Syntax = from c in customer ...