<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://logicwiki.co.uk/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=85.199.239.140</id>
		<title>Logic Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://logicwiki.co.uk/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=85.199.239.140"/>
		<link rel="alternate" type="text/html" href="https://logicwiki.co.uk/Special:Contributions/85.199.239.140"/>
		<updated>2026-05-01T08:19:36Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://logicwiki.co.uk/index.php?title=Senior_Application_Developer&amp;diff=458</id>
		<title>Senior Application Developer</title>
		<link rel="alternate" type="text/html" href="https://logicwiki.co.uk/index.php?title=Senior_Application_Developer&amp;diff=458"/>
				<updated>2014-08-20T15:36:37Z</updated>
		
		<summary type="html">&lt;p&gt;85.199.239.140: Created page with &amp;quot;Category:Extreme Programming  Senior application developers manage teams of computer software engineers to create and update programs used by business professionals. They...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Extreme Programming]]&lt;br /&gt;
&lt;br /&gt;
Senior application developers manage teams of computer software engineers to create and update programs used by business professionals. They must establish what a customer needs, delegate projects to team members and follow up to verify all projects are completed on time and as requested.&lt;br /&gt;
&lt;br /&gt;
== Job Description for a Senior Application Developer ==&lt;br /&gt;
Senior application developers (SADs) work in the computer industry supervising other application and system developers. The U.S. Bureau of Labor Statistics (BLS) states that these computer application software engineers focus on the user's needs in regard to the functions of business-related computer software programs (www.bls.gov).&lt;br /&gt;
&lt;br /&gt;
Working with individual clients or larger companies, SADs examine the company's goals and review the current technology to determine what upgrades can be made or what new programs should be installed to help improve efficiency. Since SADs act as supervisors, they often delegate the duties of upgrading and installing new systems to a team of application software engineers.&lt;br /&gt;
&lt;br /&gt;
According to O*NET Online, SADs are engineer managers in charge of assigning projects to lower-level engineers (www.online.onetcenter.org). Usually SADs participate in the hiring process and routinely evaluate the progress of their team members.&lt;br /&gt;
&lt;br /&gt;
== Job Duties of Senior Application Developers ==&lt;br /&gt;
SADs maintain the job duties of a supervisor as well as a lower-level application developer or engineer. These duties can include regular consultations with clients concerning software, creating new programs and testing newly installed programs to verify functionality.&lt;br /&gt;
&lt;br /&gt;
The managerial side of being a SAD can include writing reports on team progress and presenting those reports to upper executive committees, per O*NET. Some SADs review budgetary issues and assist on negotiating contracts with new customers. SADs also make executive level decisions for their department, ensure company policies are being followed and counsel employees as needed.&lt;br /&gt;
&lt;br /&gt;
== Requirements == &lt;br /&gt;
Although software application engineers only require a bachelor's degree, according to the BLS, a senior-level position may require a master's degree in information technology or computer sciences. Combining a bachelor's degree with certification in computer languages and software programs may supplement a graduate degree for some SAD positions.&lt;br /&gt;
&lt;br /&gt;
O*NET shows that this position requires at least five years experience in the technology industry with some experience in management. Most employers also require various levels of certification, especially related to software programs, according to the BLS. Many technology companies require SADs to know several programming languages, such as Java, HTML, C++ and Perl.&lt;/div&gt;</summary>
		<author><name>85.199.239.140</name></author>	</entry>

	<entry>
		<id>https://logicwiki.co.uk/index.php?title=Razor&amp;diff=26</id>
		<title>Razor</title>
		<link rel="alternate" type="text/html" href="https://logicwiki.co.uk/index.php?title=Razor&amp;diff=26"/>
				<updated>2014-08-15T12:57:06Z</updated>
		
		<summary type="html">&lt;p&gt;85.199.239.140: Created page with &amp;quot;Category:MVC Category:ASP.NET Category:CSharp Category:TODO  Razor is a template syntax that allows you to combine code and content in a fluid and expressive m...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MVC]]&lt;br /&gt;
[[Category:ASP.NET]]&lt;br /&gt;
[[Category:CSharp]]&lt;br /&gt;
[[Category:TODO]]&lt;br /&gt;
&lt;br /&gt;
Razor is a template syntax that allows you to combine code and content in a fluid and expressive manner. Though it introduces a few symbols and keywords, Razor is not a new language. Instead, Razor lets you write code using languages you probably already know, such as C# or Visual Basic .NET. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div&amp;gt;This page rendered at @DateTime.Now&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 @if(User.IsAuthenticated) &lt;br /&gt;
 {    &lt;br /&gt;
   &amp;lt;span&amp;gt;Hello, @User.Username!&amp;lt;/span&amp;gt; &lt;br /&gt;
 } &lt;br /&gt;
 else &lt;br /&gt;
 {&lt;br /&gt;
   &amp;lt;span&amp;gt;Please @Html.ActionLink(&amp;quot;log in&amp;quot;)&amp;lt;/span&amp;gt; &lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Differentiating Code and Markup ==&lt;br /&gt;
Razor provides two ways to differentiate code from markup: code nuggets and code blocks.&lt;br /&gt;
=== Code Nuggets ===&lt;br /&gt;
Code nuggets are simple expressions that are evaluated and rendered inline. They can be mixed with text and look like this: &lt;br /&gt;
&lt;br /&gt;
 Not Logged In: @Html.ActionLink(&amp;quot;Login&amp;quot;, &amp;quot;Login&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
The expression begins immediately after the @ symbol, and Razor is smart enough to know that the closing parenthesis indicates the end of this particular statement. The previous example will render this output: &lt;br /&gt;
 Not Logged In: &amp;lt;a href=&amp;quot;/Login&amp;quot;&amp;gt;Login&amp;lt;/a&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Explicit code nuggets ==== &lt;br /&gt;
The explicit code nugget syntax (@( )) allows you to wrap a code statement, unambiguously marking the beginning and end of the statement.&lt;br /&gt;
&lt;br /&gt;
=== Code Blocks ===&lt;br /&gt;
A code block is a section of the view that contains strictly code rather than a combi- nation of markup and code. Razor defines a code block as any section of a Razor template wrapped in @{ } characters. The @{ characters mark the beginning of the block, followed by any number of lines of code. The } character closes the code block. Keep in mind that the code within a code block is not like code in a code nugget. It is fully-formed code that must follow the rules of the current language; for example, each line of code written in C# must include a semicolon (;) at the end, just as if it lived within a class in a .cs file. Here is an example of a typical code block: &lt;br /&gt;
&lt;br /&gt;
 @{ &lt;br /&gt;
    LayoutPage = &amp;quot;~/Views/Shared/_Layout.cshtml&amp;quot;; &lt;br /&gt;
    View.Title = &amp;quot;Product Details for &amp;quot; + Model.ProductName; &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== The @: character sequence ==&lt;br /&gt;
The @: character sequence The @: character sequence indicates a transition, telling Razor to assume that the con- tent that follows the sequence is content, not code&lt;br /&gt;
&lt;br /&gt;
 @if(User.IsAuthenticated) &lt;br /&gt;
 {    &lt;br /&gt;
    @:Hello, @User.Name! &lt;br /&gt;
 } &lt;br /&gt;
 else &lt;br /&gt;
 {    &lt;br /&gt;
   @:Please login &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== The &amp;lt;text&amp;gt; block == &lt;br /&gt;
The &amp;lt;text&amp;gt; block is an alternative to the @: character sequence that allows you to denote that an entire portion of a template is content.  &lt;br /&gt;
&lt;br /&gt;
 @if(!User.IsAuthenticated) &lt;br /&gt;
 {    &lt;br /&gt;
   &amp;lt;text&amp;gt;    &lt;br /&gt;
      Guests are not allowed to view this content.    &lt;br /&gt;
      Please @Html.ActionLink(&amp;quot;login&amp;quot;, &amp;quot;Login&amp;quot;) to view. &lt;br /&gt;
   &amp;lt;/text&amp;gt; &lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
 @* *@&lt;br /&gt;
&lt;br /&gt;
== Organizing Razor Templates ==&lt;br /&gt;
=== Layouts ===&lt;br /&gt;
A layout template typically includes the main markup (scripts, CSS stylesheets, and structural HTML elements, such as navigation and content containers), specifying lo- cations within the markup in which pages can define content. Each page in the site refers to this layout, including only the content within the locations the layout has indicated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Take a look at a typical Razor layout file (_Layout.cshtml): &lt;br /&gt;
 &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;meta charset=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;@View.Title&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;&lt;br /&gt;
            @RenderSection(&amp;quot;Header&amp;quot;)&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        @RenderBody()&lt;br /&gt;
        &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
            @RenderSection(&amp;quot;Footer&amp;quot;)&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Once a Razor layout is defined, pages reference the layout and supply content for the sections defined within the layout. The following is a basic content page that refers to the previously defined _Layout.cshtml file: &lt;br /&gt;
 @{ Layout = &amp;quot;~/_Layout.cshtml&amp;quot;; }&lt;br /&gt;
 @section Header {    &lt;br /&gt;
    &amp;lt;h1&amp;gt;My Blog&amp;lt;h1&amp;gt; &lt;br /&gt;
 }&lt;br /&gt;
 @section Footer {&lt;br /&gt;
    Copyright 2011 &lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;div class=&amp;quot;main&amp;quot;&amp;gt;   &lt;br /&gt;
    This is the main content.&lt;br /&gt;
 &amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Sections ===&lt;br /&gt;
Syntax : &lt;br /&gt;
 @section [Section Name] &lt;br /&gt;
 {&lt;br /&gt;
    [ Razor content, code, and markup ] &lt;br /&gt;
 } &lt;br /&gt;
==== IsSectionDefined ====&lt;br /&gt;
Determines whether a section of a given name is defined in the content view. &lt;br /&gt;
 @RenderBody()&lt;br /&gt;
    @if(IsSectionDefined(&amp;quot;Footer&amp;quot;))&lt;br /&gt;
    {&lt;br /&gt;
        &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
            @RenderSection(&amp;quot;Footer&amp;quot;, required: false)&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
=== Nested Layouts  ===&lt;br /&gt;
Layouts can also be “nested.” A nested layout is any layout that refers to another, outer layout. &lt;br /&gt;
&lt;br /&gt;
=== Partial Views  ===&lt;br /&gt;
  RenderPage(&amp;quot;Posts/_Post.cshtml&amp;quot;, new { Post = post }) &lt;br /&gt;
&lt;br /&gt;
=== Razor Helpers ===&lt;/div&gt;</summary>
		<author><name>85.199.239.140</name></author>	</entry>

	<entry>
		<id>https://logicwiki.co.uk/index.php?title=Fowler%E2%80%99s_Enterprise_Design_Patterns&amp;diff=378</id>
		<title>Fowler’s Enterprise Design Patterns</title>
		<link rel="alternate" type="text/html" href="https://logicwiki.co.uk/index.php?title=Fowler%E2%80%99s_Enterprise_Design_Patterns&amp;diff=378"/>
				<updated>2014-08-15T12:11:51Z</updated>
		
		<summary type="html">&lt;p&gt;85.199.239.140: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Design Patterns]]&lt;br /&gt;
[[Category:Extreme Programming]]&lt;br /&gt;
Martin Fowler’s ''Patterns of Enterprise Application Architecture'' book is a best practice and patterns reference for building enterprise-level applications. As with the GoF patterns book, experienced developers will no doubt already be following many of the catalogued patterns. The value in Fowler’s work, however, is the categorization of these patterns along with a common language for describing them. The book is split into two sections. The first half deals with n-tier applications and the organiz- ing of data access, middleware, and presentation layers. The second half is a patterns reference rather like the GoF patterns book but more implementation specific. &lt;br /&gt;
&lt;br /&gt;
Throughout this book, you will be looking at the ASP.NET implementations of Fowler’s patterns. The following sections examine what the rest of the book will tackle.&lt;br /&gt;
&lt;br /&gt;
=== Layering === &lt;br /&gt;
Chapter 3 covers the options at your disposal to layer an enterprise ASP.NET application. You will look at the problems with the traditional code behind the model of web forms, and how to separate the concerns of presentation, business logic, and data access with a traditional layered approach. &lt;br /&gt;
&lt;br /&gt;
=== Domain logic Patterns ===&lt;br /&gt;
Chapter 4 examines three popular methods for organizing your business logic: Transaction Script, Active Record, and Domain Model.&lt;br /&gt;
&lt;br /&gt;
==== Transaction script ====&lt;br /&gt;
Transaction Script is the organization of business logic in a linear, procedural fashion. It maps fine- grained business use cases to fine-grained methods. &lt;br /&gt;
&lt;br /&gt;
==== Active record ====&lt;br /&gt;
Active Record organizes business logic in a way that closely matches the underlying data structure, namely an object that represents a row in a table.&lt;br /&gt;
&lt;br /&gt;
==== Domain Model ====&lt;br /&gt;
 The Domain Model pattern is an abstraction of real domain objects. Both data and behavior are modeled. Complex relationships between objects can exist that match the real domain. You will look at how to use each of these patterns in ASP.NET and when it is appropriate to choose one pattern over another.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Chapters are reference to &amp;quot;'''The Pattern for Successful applications'''&amp;quot;&lt;/div&gt;</summary>
		<author><name>85.199.239.140</name></author>	</entry>

	<entry>
		<id>https://logicwiki.co.uk/index.php?title=Common_Design_Principles&amp;diff=376</id>
		<title>Common Design Principles</title>
		<link rel="alternate" type="text/html" href="https://logicwiki.co.uk/index.php?title=Common_Design_Principles&amp;diff=376"/>
				<updated>2014-08-15T10:59:56Z</updated>
		
		<summary type="html">&lt;p&gt;85.199.239.140: Created page with &amp;quot;Category:Extreme Programming Category:Design Patterns  == Common Design Principles ==   There are a number of common design principles that, like design patterns, have...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Extreme Programming]]&lt;br /&gt;
[[Category:Design Patterns]]&lt;br /&gt;
&lt;br /&gt;
== Common Design Principles ==&lt;br /&gt;
 &lt;br /&gt;
There are a number of common design principles that, like design patterns, have become best practice over the years and helped to form a foundation onto which enterprise-level and maintainable software can be built. The following sections preview some of the more widely known principles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Keep it simple stupid (Kiss) ===&lt;br /&gt;
An all-too-common issue in software programming is the need to overcomplicate a solution. The goal of the KISS principle is concerned with the need to keep code simple but not simplistic, thus avoiding any unnecessary complexities.&lt;br /&gt;
&lt;br /&gt;
=== Don’t repeat Yourself (DrY) === &lt;br /&gt;
The DRY principle aims to avoiding repetition of any part of a system by abstracting out things that are common and placing those things in a single location. This principle is not only concerned with code but any logic that is duplicated in a system; ultimately there should only be one representation for every piece of knowledge in a system.&lt;br /&gt;
&lt;br /&gt;
=== Tell, Don’t ask === &lt;br /&gt;
The Tell, Don’t Ask principle is closely aligned with encapsulation and the assigning of responsi- bilities to their correct classes. The principle states that you should to tell objects what actions you want them to perform rather than asking questions about the state of the object and then making a decision yourself on what action you want to perform. This helps to align the responsibilities and avoid tight coupling between classes.&lt;br /&gt;
&lt;br /&gt;
=== You ain’t Gonna need it (YaGni) ===&lt;br /&gt;
The YAGNI principle refers to the need to only include functionality that is necessary for the applica- tion and put off any temptation to add other features that you may think you need. A design meth- odology that adheres to YAGNI is test-driven development (TDD). TDD is all about writing tests that prove the functionality of a system and then writing only the code to get the test to pass. TDD is discussed a little later in this chapter.&lt;br /&gt;
&lt;br /&gt;
=== Separation of Concerns (soC) === &lt;br /&gt;
SoC is the process of dissecting a piece of software into distinct features that encapsulate unique behav- ior and data that can be used by other classes. Generally, a concern represents a feature or behavior of a class. The act of separating a program into discrete responsibilities significantly increases code reuse, maintenance, and testability. The remainder of this book refers back to these principles so you can see how they are implemented and help form clean and maintainable object-oriented systems. The next group of design principles you will look at were collected together under the grouping of the S.O.L.I.D. design principles.&lt;/div&gt;</summary>
		<author><name>85.199.239.140</name></author>	</entry>

	<entry>
		<id>https://logicwiki.co.uk/index.php?title=Repository_Pattern&amp;diff=14</id>
		<title>Repository Pattern</title>
		<link rel="alternate" type="text/html" href="https://logicwiki.co.uk/index.php?title=Repository_Pattern&amp;diff=14"/>
				<updated>2014-08-12T07:16:19Z</updated>
		
		<summary type="html">&lt;p&gt;85.199.239.140: CRUD,&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Design Patterns]]&lt;br /&gt;
[[Category:CSharp]]&lt;br /&gt;
[[Category:ASP.NET]]&lt;br /&gt;
Reporsitory pattern is a layer between application and data storage. With this pattern application doesn't need to know how to delete, update or write data to database.&lt;br /&gt;
&lt;br /&gt;
Sample pattern : &lt;br /&gt;
&lt;br /&gt;
 using System;&lt;br /&gt;
 using System.Linq;&lt;br /&gt;
 using System.Linq.Expressions;&lt;br /&gt;
 namespace Remondo.Database.Repositories&lt;br /&gt;
  {&lt;br /&gt;
    public interface IRepository&amp;lt;T&amp;gt;&lt;br /&gt;
    {&lt;br /&gt;
        void Insert(T entity);&lt;br /&gt;
        void Delete(T entity);&lt;br /&gt;
        IQueryable&amp;lt;T&amp;gt; SearchFor(Expression&amp;lt;Func&amp;lt;T, bool&amp;gt;&amp;gt; predicate);&lt;br /&gt;
        IQueryable&amp;lt;T&amp;gt; GetAll();&lt;br /&gt;
        T GetById(int id);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
The generic GetById() method explicitly needs all our entities to implement the IEntity interface. This is because we need them to provide us with an Id property to make our generic search for a specific Id possible.&lt;br /&gt;
&lt;br /&gt;
 namespace Remondo.Database&lt;br /&gt;
 {&lt;br /&gt;
    public interface IEntity&lt;br /&gt;
    {&lt;br /&gt;
        int ID { get; }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Since we already have LINQ to SQL entities with an Id property, declaring the IEntity interface is sufficient. Since these are partial classes, they will not be overridden by LINQ to SQL code generation tools.&lt;br /&gt;
&lt;br /&gt;
 namespace Remondo.Database&lt;br /&gt;
 {&lt;br /&gt;
    partial class City : IEntity&lt;br /&gt;
    {&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    partial class Hotel : IEntity&lt;br /&gt;
    {&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Sample Implementation &lt;br /&gt;
&lt;br /&gt;
 using System;&lt;br /&gt;
 using System.Data.Entity;&lt;br /&gt;
 using System.Linq;&lt;br /&gt;
 using System.Linq.Expressions;&lt;br /&gt;
 &lt;br /&gt;
 namespace Remondo.Database.Repositories&lt;br /&gt;
 {&lt;br /&gt;
    public class Repository&amp;lt;T&amp;gt; : IRepository&amp;lt;T&amp;gt; where T : class&lt;br /&gt;
    {&lt;br /&gt;
        protected DbSet&amp;lt;T&amp;gt; DbSet;&lt;br /&gt;
 &lt;br /&gt;
        public Repository(DbContext dataContext)&lt;br /&gt;
        {&lt;br /&gt;
            DbSet = dataContext.Set&amp;lt;T&amp;gt;();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        #region IRepository&amp;lt;T&amp;gt; Members&lt;br /&gt;
 &lt;br /&gt;
        public void Insert(T entity)&lt;br /&gt;
        {&lt;br /&gt;
            DbSet.Add(entity);&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        public void Delete(T entity)&lt;br /&gt;
        {&lt;br /&gt;
            DbSet.Remove(entity);&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        public IQueryable&amp;lt;T&amp;gt; SearchFor(Expression&amp;lt;Func&amp;lt;T, bool&amp;gt;&amp;gt; predicate)&lt;br /&gt;
        {&lt;br /&gt;
            return DbSet.Where(predicate);&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        public IQueryable&amp;lt;T&amp;gt; GetAll()&lt;br /&gt;
        {&lt;br /&gt;
            return DbSet;&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        public T GetById(int id)&lt;br /&gt;
        {&lt;br /&gt;
            return DbSet.Find(id);&lt;br /&gt;
        }&lt;br /&gt;
        #endregion&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>85.199.239.140</name></author>	</entry>

	</feed>