Build automation as the word implies means automating the build process. But the build automation does not end at compiling your code. It encompasses several tasks such as
compiling source code (taken directly from a repository, here TFS)packaging into binary coderunning tests (optional)deployment of binary code to production environment (optional)
When your team size is small (1-2 developers), you can compile the code on your machine to verify the accuracy of your and probably your team’s code. But in large teams, it becomes essential that only code checked-in is the code that compiles and quality of code is not compromised. This indirectly saves time and cost for the organizations. Build automation allows you to configure set of schedules and processes to ensure that the above objectives are met. You can have your code built on demand, or schedule it at a particular time (nightly-builds, incremental builds, etc.) or have gated-build to be triggered when any check-in is done.
Scheduled and gated-builds are examples of Continuous Integration (CI)
Table of Contents
Part I: Starting From a Firm Foundation Chapter 1: Best Practices Chapter 2: Libraries, Frameworks, and Plugins
Every step or interruption between a consumer and the task they want to complete creates friction and engagement drop-off. Some studies show such interruptions can significantly reduce a user's likelihood of signing up for the app," said Steve Guggenheimer, corporate vice president and chief evangelist, developer platform evangelism, Microsoft.
A study commissioned by Janrain found 92 percent of U.S. respondents leave an experience due to forgotten login information or the need to create a new account. Facebook Login addresses that challenge, and Facebook has documented that the Login function can lead to conversion rates above 70 percent.
25 secrets for faster ASP.NET apps, a free eBook about ASP.NET and SQL Server peformance problems
Free eBook: 25 Secrets for Faster ASP.NET Applications25 tips from the ASP.NET community for boosting performance in your web applications.Learn the secrets of your fellow developers and read advice from MVPs and other experts.Covers async/await, Web API, ORMs, interactions between your code and your database, and more.
The trends clearly favor those with “breadth” and “depth”, as well as the tangible (execution) and intangible (exploration), implying having both a big-picture outlook and an attention to detail from being a practitioner. “E-Shaped People”have a combination of “4-E’s”: experience and expertise, exploration and execution. The last two traits – exploration and execution – are really necessary in the current and future economy.
Arthur Minduca's insight:
The E-shaped profile covers the requirements of the so-called T-shaped professionals. Moreover, this trend adds the "execution" parameter, that demands pratical production work and/or a portfolio to prove your strengths, and the "exploration" word to indicate your degree of curiosity that leads to innovation and diversification.
There seems to be three popular business models for an Internet software as a service (SaaS) company:
Freemium: Have a free subscription plan and paid subscription plans that have more features than the free planFree trial: Have a free trial period and then charge customers after the period is overPaywall: In order to use the service, a user will have to pay first
Despite the many benefits of automatic memory management in .NET, there are still a few perils which we must avoid. One of the most common, and frustrating to deal with, is fragmentation of the large object heap. In this article Chris Morter explains what LOH fragmentation is, why it’s a problem, and what you can do to avoid it.
This post is more for self-reference than anything else. Basically, I tend to forget some options for mapping relations with Entity Framework Code First, so I wrote this. If in doing so it helps someone, even better!
Here’s how I built a quick single entity CRUD grid with AngularJS, WebAPI, Entity Framework, Bootstrap, Font Awesome & Toastr. I spent a more time than I should have getting this all wired up, so I thought I’d share the code to save you some time.
As you can see, the CRUD Grid loads data from EF and Works with sort by columns, is easy to ADD, UPDATE, DELETE new registries.
AngularJS is a sweet web app framework. It comes with decent official documentation and samples, it looks superior among a large number of frameworks in an almost-real-world application test (the famousTodoMVC project), and there are cool presentations and screencasts about it all over the web.
* Not a Library * Declarative, rather than Imperative * Two-way Data Binding * Dependency Injection * Data Access
When writing an add-in or extension for Visual Studio developers have traditionally had to choose between EnvDTE and the IVs interfaces. The former is easy to use but limited; the latter exposes all of Visual Studio but contains “a lot of COM baggage”. In an attempt to create library that is both powerful and easy to use Clarius Labs is offering Clide which they call an “Enjoyable Visual Studio Automation API”.
Clide relies on modern .NET API coding styles such as the use of LINQ and extension methods. Here is a sample provided by Daniel Cazzulino that demonstrates finding all of the project names in a solution.
There are three different approaches to representing an inheritance hierarchy:
Table per Hierarchy (TPH): Enable polymorphism by denormalizing the SQL schema, and utilize a type discriminator column that holds type information.Table per Type (TPT): Represent "is a" (inheritance) relationships as "has a" (foreign key) relationships.Table per Concrete class (TPC): Discard polymorphism and inheritance relationships completely from the SQL schema.
I will explain each of these strategies in a series of posts and this one is dedicated to TPH. In this series we'll deeply dig into each of these strategies and will learn about "why" to choose them as well as "how" to implement them. Hopefully it will give you a better idea about which strategy to choose in a particular scenario.
Palestra sobre tendências em desenvolvimento de aplicativos com base nas predições do Gartner.
Arthur Minduca's insight:
These are the slides (pt-BR) of a talk I gave at the Universidade Brasileira de Tecnologia on Gartner predictions about major development trends for the next years. The nexus of forces, hype cycles, personal cloud, In-memory databases, big data, hybrid mobile development, responsive design, user-generated content, personalized user experience and internet of things were topics of this talk.
"Mudança é a única certeza que temos em relação ao mercado de Tecnologia da Informação. E acompanhar essas mudanças, tentar antecipar-se a elas, representa o grande desafio para todos aqueles que se aventuram nessa área. Aqueles que conseguem adequar seu perfil as realidades futuras do mercado são os grandes vencedores."
Arthur Minduca's insight:
Gartner predictions about major trends in software development for the coming years.
Stack Exchange This Q&A is part of a weekly series of posts highlighting common questions encountered by technophiles and answered by users at Stack Exchange, a free, community-powered network of 100+ Q&A sites.
The repository and unit of work patterns are intended to create an abstraction layer between the data access layer and the business logic layer of an application. Implementing these patterns can help insulate your application from changes in the data store and can facilitate automated unit testing or test-driven development (TDD).
Arthur Minduca's insight:
This design pattern is really nice. We abstract the ORM framework and ensure that all data operations related to a service is performed under the same DbContext.