In the last few months I started to learn one of the great frameworks from Microsoft named LINQ. In order to get a better understand about the LINQ framework I read a lot from the official Microsoft documentation. I even shared people in my thoughts about the LINQ project (I focused on LINQ to SQL with its pervious name D-LINQ), in my blog. After a while I took a time to read the "Pro LINQ" book. This book exposes me to some fundamentals in the LINQ world which I wasn't familiar with, and helped me to improve my knowledge in the LINQ world.
The LINQ framework is based on some new features from the new C# 3.0. Therefore this book brings a short briefing about these features, each one of them accompanied by good demonstration. Every chapter in this book is (almost) standing alone.
My favorite section in this book was the LINQ to SQL. It's the most powerful and interesting part in the LINQ Framework. The book starts this section with a small chapter that helps the readers to understand the basic terminology about all the LINQ to SQL components. The book contains all the detail about verity options to work with the LINQ to SQL in the real work. Furthermore, the book compares some of these methods and gives us the ability to choose the appropriate solutions based of your needs (like: Projecting into Entity Classes vs. Nonentity Classes, Using the SqlMetal command line or the Object Relational Designer, XML Mapping File Vs. DBML Intermediate File and etc).
The book contains a lot of tips that really can help during the daily work. I'll mention the top 5 tips that can help you to implement LINQ to SQL in your application:
- How to support the legacy code.
- How to use the Data Context Logger.
- Take Advantage of Deferred Queries
- Consider Using Partial Classes or Mapping Files
- Consider Using Partial Methods.
While the book shows the ability of the auto generated sophisticated code, it gives good guidelines of how to write all this code in your own hands and a set of rules about the issues that you should be aware when you implement it by yourself.
I really re commend this book for all people that want to learn about LINQ from introduction to professional level.
- Do you know what Scrum Methodology is?
- What the hell is Methodology?
- It's sound familiar to me, something from the Agile Family, right?
- Scrum is one of the coolest methodologies that I ever meet (I already used it in the past).
- Can you define team?
- Team? I really don't believe in this kind of organization structure… I prefer working alone.
- We have a lot of teams in our organization; it's a good way to create a frame for people. The team leader is the big boss and he always says the last word.
- The team it's like a small family, we are having a lot of fun together. All team members take a commitment together and help each other to accomplish all tasks in time and with high quality.
- How much do you want to be involved in the development process?
- Please let me do my job go home (aka "Live me in your mother"). I don't want to become involve in other things except my current atomic task.
- I want to become more involve in the development process, but I never find the right time to do it.
- The development process is alive! I always have some suggestions about finding the creative solutions to solve the problem.
- Do you love technologies?
- I stuck in Mainframe. And it still does the job…
- If my company will give me a course or/and my boss gives me enough time to learn it, I'll take it.
- My last name is Technology. I'm starving for new technologies. If there is new technology in market I'll be the first one to hear about it.
- What do you think about the fact that you are a programmer?
- It isn't such a big-dill, I earn good money and it's all I want. If you will pay me the same for cleaning your home there is a chance that I'll take it.
- The technology environment is nice and I have a lot of friends around me. Maybe, if I would have an option to chose I think I'll take something more interesting for me.
- This is the coolest job that I have ever done.
- How do you think your organization need to take care for you?
- If I'll get my salary on time it's enough (and I'll thanks G-D).
- I need them to invest in the office environment (the newest computer, a lot of space, a good view and etc).
- The organization need to let me do what I really good at (programming…).
- What will happen if someone will buy your company?
- I think if someone is bought us the first think he'll do is to fire me.
- In the best scenario I'll change my car's logo.
- It's time to pay off my mortgage…
- Do you read technical stuff (blog posts, technical books, articles and etc…)?
- Harry Potter is my man.
- If some one will send my some recommended posts that he already read, there is a good chance that I'll read it too.
- I'm a big fan of Scott Guthrie, Hanselminutes Podcasts is always in my playing list and the framework design guideline book that written by Krzysztof Cwalina and Brad Abrams is one of the most best design books that I have ever read (I'm really waiting for the second edition!).
- How do you fill when you come to work in the beginning of the day?
- How many hours left to the end of this day?
- It's another ordinary day. I have to accomplish some others tasks today.
- Every day is an opportunity for new challenges, to learn some new things from my team mates and to create something creative on my own hands. So, I like my workplace!
- What is your preferred language?
- English.
- Java.
- C# (Versions: 2.0, 3.0, 3.5 and 4.0 – code name "YODA").
How to check you quiz score?
Every answer to option "1" gives you 1 point, "2" gives you 2 points and "3" gives you 3.
Sum your answers and check your result in the next section.
Quiz results:
Your score is lower than 14:
You are an individual man who made a programming course long time ago and started to work in a big software company. You don't have a desire to lean new things, or to change your current position. All what you want to do is to go home and continue to read your Harry Potter book.
Are you sure you chose the appropriate job?
Your score is between 15 to 23:
You are a senior programmer that already accumulates some professional in your job. You are trying to get a better understanding about the development process but in the most of the cases, without success. You really like that people help you to progress, but you should be much initiative and more independent.
You have some tasks to finish today, so, it's time to comeback to work.
Your score is higher than 24:
You are a professional programmer (architect, system designer, super programmer and etc) with high attraction to new technologies. You have a good perspective about the future technologies and methodologies. You sleep less than four hours in a day and you are spending the night on reading and checking new technologies stuff.
If you got this score please leave me a comment/send me an email and I'll hopefully invite you to an interview in my company (in Israel).
These two data access strategies should be shipped in the new Visual Studio 2008 (aka "Orcas") but from some reasons Microsoft decided to cut the entity framework from this release and to ship it in the middle of 2008. So what is the different between these two frameworks? When should I choose the Linq to Sql and when do it really recommended to wait for the Entity framework?
I decided to look for some answers to these questions, just stay with me few more moments…
| Category |
Linq to SQL |
Entity framework |
| Model Type |
Linq to sql is best matching for domain model with specific sql server scheme |
The Entity Framework gives the ability to write to conceptual data model with strongly typed, inheritance, and relationships |
| Databases Supported |
Only SQL Server! |
Design to support variety databases (DB2, MySql, Sybase and more)
* Oracle maybe will support a provider in the next release... |
| Mapping |
Mapping Single class to a single table |
Mapping Single class to multiple tables |
| Data Sources |
Tables in Sql Server |
Tables in Sql Server, Replication, Reporting Services, BI, Integration Services and etc. |
| Development time |
Design to rapid development agent Sql Server scheme |
More complex framework with more flexibility |