نظرات مطالب
MVC vs 3-Tier Pattern
به نظر من این درست نیست که بگیم mvc کلا در لایه UI می‌باشد، ببینید شما وقتی می‌خواهید یک application را توسعه بدید علاوه بر اهداف بیزینسی application که قصد توسعه ان را دارید یکسری اهداف تکنولوژیکی هم مد نظر دارید، حالا بعضی از این اهداف می‌تواند بسیار پایه ای باشد مانند اینکه شما این application  را بصورت win app , web app یا mobile app یا ترکیبی پیاده سازی کنید، وبعضی تصمیمات هم بعد از این تصمیم گیری انجام میشوند، برای مثال شما در نظر می‌گیرید که می‌خواهید این application را به صورت یک web app پیاده سازی کنید، حال شما ممکن است به عنوان طراح نرم افزار یا یک معمار یکسری concern ریز و درشت دیگر برایتان ایجاد شود، باز هم برای مثال: این application باید SOC را در تمامی سطوح درنظر بگیرد و decoupling به یک سطح مناسب برساند، ویا اینکه هدف این که لایه business را طوری طراحی کنیم که به یک repository خاص یا یک ui framework وابسته نباشد، اما هدف من از این همه اسمان ریسمان‌ها این بود که بگم که مثلا نمی‌توان گفت که فلان تکنولوژی باید در فلان موقعیت و به فلان روش استفاده شود بلکه این شما هستید که بر حسب concern‌های خود چگونه تصمیم بگیرید.
اشتراک‌ها
کتابخانه SmartWizard

Smart Wizard is a flexible and heavily customizable jQuery step wizard plugin with Bootstrap support. It is easy to implement and gives a neat and stylish interface for your forms, checkout screen, registration steps etc. Based on the feedback from our users over the past years we have come up with the best ever built jQuery wizard plugin of all time.  Demo

Features:

  • Bootstrap support
  • Responsive themes
  • Heavily customizable toolbar, option to add extra buttons
  • Theme support with various themes included
  • Customizable css styles
  • Url navigation and step selection
  • Public methods for external function call
  • Enhanced event support
  • In-built wizard reset method
  • Ajax content loading with option to specify individual url for steps
  • Keyboard navigation
کتابخانه SmartWizard
نظرات مطالب
شروع به کار با AngularJS 2.0 و TypeScript - قسمت دوازدهم - توزیع برنامه
روش فعال سازی متد require به این صورت است:
الف) نیاز است typings مربوط به nodejs اضافه شود؛ جهت شناسایی متد require و همچنین شیء process در فایل main.ts جدید. بنابراین باید فایل typings.json جهت افزودن سطر جدید node، ویرایش شود:
{
    "ambientDependencies": {
        "es6-shim": "registry:dt/es6-shim#0.31.2+20160317120654",
        "jasmine": "registry:dt/jasmine#2.2.0+20160412134438",
        "node": "registry:dt/node#4.0.0+20160509154515"
    }
}
با ذخیره سازی فایل package.json مداخل فوق اضافه خواهند شد.

ب) اینبار فایل main.ts چنین شکلی را پیدا می‌کند:
/// <reference path="../typings/browser/ambient/es6-shim/index.d.ts" />
/// <reference path="../typings/browser/ambient/node/index.d.ts" /> 
 
import { bootstrap } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
 
// Our main component
import { AppComponent } from "./app.component";
 
if (process.env.ENV === "production") {
    enableProdMode();
}
 
bootstrap(AppComponent, []);
در اینجا ذکر ambient/node/index.d.ts به همراه import و اجرای متد enableProdMode، جدید هستند.

ج) مداخل تعاریف قالب‌ها و شیوه نامه‌ها، به صورت زیر اصلاح می‌شوند و مسیر آن‌ها باید به نحو ذیل مقدار دهی شود (از ابتدای پوشه‌ی جاری):
@Component({
    selector: 'pm-products',
    //templateUrl: 'app/products/product-list.component.html',
    template: require('./product-list.component.html'),
    //styleUrls: ['app/products/product-list.component.css'],
    styles: [require('./product-list.component.css')],
    pipes: [ProductFilterPipe],
    directives: [StarComponent, ROUTER_DIRECTIVES]
})
نظرات اشتراک‌ها
جزئیات تغییرات در نسخه جدید Bootstrap 3
به نظر می‌رسد تغییرات صورت گرفته دست کم برای کسانی که از نسخه 2 استفاده می‌کنند به نظر در جهت بهبود نبوده است.
فی المثل برای کلیه المانهای فرم می‌بایست از کلاس form-control استفاده شود و بدون آن، استایل پیشفرض بوت استرپ به المانهای textbox، combobox، button و ... اعمال نمی‌شود. استفاده از class selector‌ها بجای element selector‌ها موجب افزایش حجم کدهای نوشته شده می‌شود.
علاوه بر آن در MVC با استفاده از Scaffolder هایی که از Html.EditorFor استفاده می‌کنند، با توجه به عدم پشتیبانی از HtmlAttributes در متد فوق الذکر، کار کمی دشوار می‌شود.
همچنین در برخی از مؤلفه‌های Bootstrap تغییرات صورت گرفته آنچنان اساسی است که بجای ارتقای ورژن، می‌بایست کل کدهای View‌ها مجدداً تولید گردد. از جمله این تغییرات می‌توان navbar را مثال زد که در نسخه 3 آن، دیگر از المانهای sibling پشتیبانی نشده و المانها می‌بایست nested (تودرتو) تعریف شوند. (به دلیل تغییر خصوصیت display از inline-block به block) و موارد بسیاری از این دست.
تقریباً هر کدی که با بوت استرپ 2 تولید شده دیگر قابل استفاده نبوده و دور ریختنی است.
اشتراک‌ها
کتابی در مورد Angular و Firebase

What you will learn in this eBook?
We will cover the following Angular concepts in this book:
- Using Cloud Firestore with an Angular application
- Angular Material and Bootstrap
- Template-driven forms
- Form validation
- Custom pipes
- Auth-guards in Angular
- Authentication and Authorization
- Login with Google using Firebase
- Social share option using ngx-share
- Client-Side pagination using ngx-pagination
- Deploying an Angular app in Firebase 

کتابی در مورد Angular و Firebase
اشتراک‌ها
فرآیند رندر شدن در Angular2
So how exactly is Angular2 built such that it allows for custom renderers to be created? The first thing to understand is that the internal bits of Angular2 are split into two areas: the worker (core) area and the UI area. The worker (core) area is responsible for building out the components, directives, filters, services and bootstrap code; The UI area is responible for rendering out the application in the DOM.
فرآیند رندر شدن در Angular2
اشتراک‌ها
دوره آموزشی TypeScript ،ASP.NET Web API ، AngularJS Bootcamp هفته دوم

We finished week 2 of the 9-week boot camp. This week was AngularJS week. We covered building the front-end of a Single Page App with the AngularJS framework. In particular, we covered topics such as client-side routing, making Ajax calls using the $http service and the $route factory, building custom AngularJS services, working with Google Maps, using Angular UI Bootstrap, and uploading files to services such as FilePicker.io. 

دوره آموزشی TypeScript ،ASP.NET Web API ، AngularJS Bootcamp هفته دوم
نظرات مطالب
ارتقاء به ASP.NET Core 1.0 - قسمت 19 - بومی سازی
در این حالت بومی سازی وقتی از کتابخانه DNTBreadCrumb.Core برای نمایش bread crumb و مشخص کردن عمق صفحه‌ی جاری می‌خواهیم استفاده کنیم چطوری می‌توانیم نام کنترلرها که در عمق قرار گرفتند رو از منابع (Resources) مربوط به همان زبان نمایش بدیم؟

البته نام اصلی سایت و نام Action از طریق تکه کد زیر از منابع لود میشه و درست نمایش داده میشه 
<breadcrumb asp-homepage-title="@localizer["MyApp"]"
            asp-homepage-url="@Url.Action("Index", "Home", values: new { area = "" })"
            asp-bootstrap-version="V3"
            asp-homepage-glyphicon="glyphicon glyphicon-home"></breadcrumb>
@localizer["About"]
ولی نامی که بالای کنترلر‌ها قرار میگیره رو نمیشه از Resources لود کرد (منظورم وقتی هست که مثلا تکه کد زیر بالای نام کنترلر قرار بگیر)
[BreadCrumb(Title = "Home", UseDefaultRouteUrl = true, Order = 0)]
public class HomeController : Controller
{
}  
نظرات مطالب
شروع به کار با AngularJS 2.0 و TypeScript - قسمت دوم - معرفی کامپوننت‌ها
چند نکته‌ی تکمیلی
- با ارائه‌ی نگارش RC، مداخل ذکر شده‌ی در صفحه‌ی index.html کاهش یافته و به فایل systemjs.config.js منتقل شده‌اند.
- با استفاده از فایل systemjs.config.js دیگر نیازی به ذکر متد ({})  System.config در فایل index.html نیست.
- تعاریف فایل main.ts اینبار از مسیر ذیل خوانده می‌شوند:
/// <reference path="../typings/es6-shim.d.ts" />
import {bootstrap} from '@angular/platform-browser-dynamic';
- دیگر نیازی به ذکر typings/browser.d.ts نیست. همینقدر که فایل typings.json را به همراه تنظیم ذیل در فایل Package.json داشته باشید، مشکلی برای کامپایل فایل‌ها و مداخل مرتبط با ES 6 نخواهید داشت.
"scripts": {
    "postinstall": "typings install"
  },
نظرات مطالب
استفاده از pjax بجای ajax در ASP.NET MVC
با سلام
از کمک شما ممنون
بالاخره خطا رو پیدا کردم
The following sections have been defined but have not been rendered for the layout page "~/Views/Shared/_PjaxLayout.cshtml": "Scripts".
ولی دلیلش چی می‌تونه باشه مگه فقط نمیاد قسمت مثلا main در کد زیر را جایگذاری کنه؟
<div id="main">
            @RenderBody()
        </div>
//********** @Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("Scripts", required: false)
و برای فراخوانی لینک‌های pjax نوشته شده:
<script type="text/javascript">
        $(function () {
            $(document).pjax('a[withpjax]', '#main', { timeout: 5000 });

و لینک هم به اینصورت:
@Html.ActionLink("ارتباط با ما","Contact", "Home"
                                      , null,new { withpjax="with-pjax" })