The document discusses leveraging .NET development for SQL Server developers. It summarizes a presentation given by Marco Parenzan on developing a CRM application using .NET instead of only SQL. The presentation discusses using Entity Framework, ASP.NET MVC, web services and other .NET technologies to access and manage data in SQL Server. It provides examples of how a SQL Server developer could develop applications by consuming SQL Server and data via .NET libraries, web applications and other methods instead of only using T-SQL. The presentation encourages SQL Server developers to explore opportunities in .NET to develop applications more fully instead of just focusing on SQL Server.
4. About me
Formazione & Innovazione con Servizi CGN
Formazione & Divulgazione con 1nn0va
@marco_parenzan
it.linkedin.com/in/marcoparenzan
www.facebook.com/parenzan.marco
codeisvalue.wordpress.com
www.marcoparenzan.it
www.slideshare.net/marco.parenzan
github.com/marcoparenzan
marco [dot] parenzan [at] libero/live [dot] it
(Tentative of) Cloud Developer
Developer e Architect…in .NET?
Dicembre 13th, 2013
#sqlsat264
5. Agenda
I’m not alone...:)
.NET state of the art
A story from a SQL Server Developer
Create a DB in a Developer way
Two other stories
Dicembre 13th, 2013
#sqlsat264
6. From Alessandro and Gian Maria session...
There can be more Developer life in your Sql
life
ALM
(Unit) Testing
DB vs. Codice
Domain, Code
Dicembre 13th, 2013
#sqlsat264
7. .NET State of the Art
Mature environment
2002+
8 versions
Consistent
(Server side) pervasive
environment
Devices, Web
(HTML5/CSS3/Javascript) are
here to stay
Possibility of a scale-out model
Data services
ASP.NET .NET/WCF
Dicembre 13th, 2013
#sqlsat264
8. C# State of the Art
Mature and powerful and expressive language
Declarative approach is in general correct
But it’s not (always) confortable
Imperative language
Tell how to do it…
…not just what you want...
…sometimes is faster…
Many functional/SQL goodies
LINQ
Many scalability goodies
Parallelism
Async
Start talking about «cost of manteinance»
Not performances
Dicembre 13th, 2013
#sqlsat264
9. .NET: where we are
.NET 4.5.1
C# 5.0
Visual Studio 2013
ASP.NET (MVC) 5.0: one ASP.NET
Entity Framework 6.0
Team Foundation Server (on premise)
Visual Studio Online (aka Team Foundation Service cloud)
...and we now have a three week scrum sprint releases
MVC 5.1
Visual Studio 2013.1
Dicembre 13th, 2013
#sqlsat264
10. Many good «forgotten» tools
Powershell 3.0
SQL Server Data Tools
Windows Azure
Dicembre 13th, 2013
#sqlsat264
11. Many good «third party» tools
ASPOSE.Total 8.5
NoSQL
Raven DB
Dicembre 13th, 2013
#sqlsat264
12. A story from a SQLServer
Developer
Dicembre 13th, 2013
#sqlsat264
13. The story is about a CRM
Among many others
Just change CRM with * (it’s the same)
The story is about a boy…
…that is SQL-based (a BI guy!)
…that tries to solve all things with SQL
Sometimes (I think) he does things
«complicated»
could be «declarative vs. imperative»
programming
But this is another story
Dicembre 13th, 2013
#sqlsat264
14. Create a DB in a Developer way
Remembering #sqlsat176
http://www.slideshare.net/marco.parenzan/sql-server-data-tools15242283
Remembering Gian Maria Ricci’s session
“Database projects strikes back”
As a project inside Visual Studio
SQL Server Data Tools
A «restart» for Database Project…
Model based
Differential Updates
All aspects for SQL Server Database developments
Not administration
Just Model
Also SQL CLR
Dicembre 13th, 2013
#sqlsat264
15. A story from a SQLServer Developer:
needs
I need to
do it «@
home»
I need to
import
data
I need to
admin
data
I need to
handle
data
I need to
share the
data
Dicembre 13th, 2013
Start here
I need to
edit data
The only thing I can’t do (?)
#sqlsat264
16. A story from a SQLServer Developer: SQL solutions
@home
Import
Data/ETL
Management
Studio + SQL
Stored
Procedures
Export
Data/ETL
Dicembre 13th, 2013
Start here
????
Access???
No way!
#sqlsat264
17. A story from a SQLServer Developer: solutions
Consume
.NET inside
SQL Server
SQL Server
Access by
System.Data
+ Libraries
Consume
Data and SQL
Server via
Powershell
+ Libraries
SQL Server by
Entity
Framework 6.0
Expose Data
as Data
Services
Dicembre 13th, 2013
Start here
Web Apps
with ASP.NET
MVC 5.0
The only thing I can’t do (?)
#sqlsat264
18. SQL Server Access by System.Data
Connected Way
The faster way
Magic strings
Write SQL!
Tables/Views/Stored Procedures
From the beginning (2002)…
…here to stay!
Dicembre 13th, 2013
#sqlsat264
19. SQL Server Access from other data
Excel Workbooks, Xml, Json
Just Import Data?
Libraries libraries libraries
For exampleASPOSE.Cells
Complete implementation of a Excel object model
No dependencies from Office
Good for Server Side scenarios
And other office tools are the same
Dicembre 13th, 2013
#sqlsat264
20. Pros & Cons
Pros
Rich data manipulation
Speed of coding (imperative way)
Cons
Speed of execution
Dicembre 13th, 2013
#sqlsat264
21. SQL Server by Entity Framework 6.0
Programmers love objects
Impedance Mismatch (Davide…where are you?)
EF 6.0
A step forward
Finally, Create/Update/Delete methods mappable on
SP!
And we can work with ViewModels
A modern approach to applications
No more «one model for all»
Dicembre 13th, 2013
#sqlsat264
22. Pros & Cons
Pros
Modeling in a more intuitive way
Recover speed of execution with store procs
Cons
Impedance Mismatch (analisys more
importat)
Dicembre 13th, 2013
#sqlsat264
23. Web Apps with ASP.NET MVC 5.0
Scaffolding! Scaffolding! Scaffolding!
Scaffolding! Scaffolding! Scaffolding!
Here I can say it!
It’s not a good pattern for Enterprise-grade
applications…
…but sometime is useful
No, I’m not speaking about Javascript, just
HTML5 (and CSS3)
Your apps will be «nice»
Dicembre 13th, 2013
#sqlsat264
24. Expose Data as Data Services
JSON is here to stay
Web Services are REST
XML is just a Server to Server Scenario
BI and Cloud models loves it!
Dicembre 13th, 2013
#sqlsat264
25. Pros & Cons
Pros
Powerful way to express data
More control over execution
Json and Xml
Cons
Impedance Mismatch (analisys more
importat)
Dicembre 13th, 2013
#sqlsat264
26. Consume Data and SQL Server via Powershell
Powershell is the new Command Line
How many times did you hear it?
Don’t be lazy (me too!)
Expressive
Verbs-Noun
Objects Metadata
Pipelining (functional)
Rich imperative language
Powershell is entirely .NET
Extendable with .NET: CmdLets
Dicembre 13th, 2013
#sqlsat264
27. Consume Data and SQL Server with Libraries
Why reports only with Reporting Services?
Why not a…
…word document
…excel workbook with graph and pivot
…a Powerpoint presentation
…a Visio Graph?
…Bar codes?
Manupulate data for presentation
ASPOSE…again
I don’t sell ASPOSE…
…but I love it!
Again: it’s just one of many
Dicembre 13th, 2013
#sqlsat264
28. Consume .NET inside SQL Server
Host C# (CLR) code inside SQL Server
Stored Procedures
UDT
Access to «all» .NET libraries
Just a little bit of dependencies
UNSAFE
It’s not a real issue
Just create another DB
Dicembre 13th, 2013
#sqlsat264
30. The Cloud is here to stay!
Windows Azure is a real opportunity for the
.NET Developer
I think for ALL developers
This year:
Scott Guthrie and Mark Russinovick in Azure Team
A lot of updates this year! Developer friendly!
Dicembre 13th, 2013
#sqlsat264
31. The tools are no more where to start
.NET or C# or ASP.NET are not where to start
They are not a pillar or a constraint
It’s the consequence of an analysis (what we can
call «bounded context» in Domain Driven Design –
the right choice is for each context)
Is the same for SQL Server developer?
I think so
ALM is important
Dicembre 13th, 2013
#sqlsat264
34. There were three guys in front of a
pizza…
…last month!
Live confortable with SQL Server…
…but don’t look just inside your garden!
If you don’t believe me, just try by yourself:
I’m not saying use .NET….
…I’m saying «there is .NET»
Technology is good because you can fall in
love more times…
...at the same time!
Dicembre 13th, 2013
#sqlsat264